From f592d3a9674ed60522ca0d0063a947aa00be86f9 Mon Sep 17 00:00:00 2001 From: Eisbehr Date: Wed, 2 May 2018 11:18:11 +0200 Subject: [PATCH] 1.7.8 - added config parameter 'ajaxCreateData' to ajax loader - added 'PUT' request to ajax loader - fixed jsDoc in main file on some functions - closed all open single-line 'if' and 'for' - switched whole project to single quote - fixed strict check in script plugin --- README.md | 8 +- bower.json | 2 +- jquery.lazy.js | 170 +-- jquery.lazy.min.js | 2 +- jquery.lazy.plugins.js | 240 ++-- jquery.lazy.plugins.min.js | 4 +- package-lock.json | 2012 ++++++++++++++++++++++++++++ package.json | 2 +- plugins/README.md | 21 +- plugins/jquery.lazy.ajax.js | 47 +- plugins/jquery.lazy.ajax.min.js | 4 +- plugins/jquery.lazy.av.js | 47 +- plugins/jquery.lazy.av.min.js | 2 +- plugins/jquery.lazy.iframe.js | 28 +- plugins/jquery.lazy.iframe.min.js | 2 +- plugins/jquery.lazy.noop.js | 8 +- plugins/jquery.lazy.noop.min.js | 2 +- plugins/jquery.lazy.picture.js | 71 +- plugins/jquery.lazy.picture.min.js | 2 +- plugins/jquery.lazy.script.js | 13 +- plugins/jquery.lazy.script.min.js | 4 +- plugins/jquery.lazy.vimeo.js | 13 +- plugins/jquery.lazy.vimeo.min.js | 2 +- plugins/jquery.lazy.youtube.js | 13 +- plugins/jquery.lazy.youtube.min.js | 2 +- 25 files changed, 2402 insertions(+), 319 deletions(-) create mode 100644 package-lock.json diff --git a/README.md b/README.md index 3f3b82b..46c0ee2 100644 --- a/README.md +++ b/README.md @@ -65,12 +65,12 @@ Some examples below: Lazy and all plugins are available over [cdnjs](http://cdnjs.com) and [jsDelivr](http://jsdelivr.com) CDN and can directly included to every page. ```HTML - - + + - - + + ``` #### Self-Hosted diff --git a/bower.json b/bower.json index 5c59327..2175c6b 100644 --- a/bower.json +++ b/bower.json @@ -1,7 +1,7 @@ { "name": "jquery-lazy", "description": "Lazy is a fast, feature-rich and lightweight delayed content loading plugin for jQuery and Zepto. It's designed to speed up page loading times and decrease traffic to your users by only loading the content in view. You can use Lazy in all vertical and horizontal scroll ways. It supports images in 'img' tags and backgrounds, supplied with css like 'background-image', by default. On those elements Lazy can set an default image or a placeholder while loading and supports retina displays as well. But Lazy is even able to load any other content you want by plugins and custom loaders.", - "version": "1.7.7", + "version": "1.7.8", "main": "jquery.lazy.min.js", "license": [ "MIT", diff --git a/jquery.lazy.js b/jquery.lazy.js index fa26a87..3e0f16f 100644 --- a/jquery.lazy.js +++ b/jquery.lazy.js @@ -1,8 +1,8 @@ /*! - * jQuery & Zepto Lazy - v1.7.7 + * jQuery & Zepto Lazy - v1.7.8 * http://jquery.eisbehr.de/lazy/ * - * Copyright 2012 - 2017, Daniel 'Eisbehr' Kern + * Copyright 2012 - 2018, Daniel 'Eisbehr' Kern * * Dual licensed under the MIT and GPL-2.0 licenses: * http://www.opensource.org/licenses/mit-license.php @@ -38,7 +38,7 @@ * @access public * @type {function} * @param {object} settings - * @return void + * @return {LazyPlugin} */ $.fn.Lazy = $.fn.lazy = function(settings) { return new LazyPlugin(this, settings); @@ -49,19 +49,19 @@ * @access public * @type {function} * @param {string|Array} names - * @param {string|Array} [elements] + * @param {string|Array|function} [elements] * @param {function} loader * @return void */ $.Lazy = $.lazy = function(names, elements, loader) { // make second parameter optional - if( $.isFunction(elements) ) { + if ($.isFunction(elements)) { loader = elements; elements = []; } // exit here if parameter is not a callable function - if( !$.isFunction(loader) ) { + if (!$.isFunction(loader)) { return; } @@ -73,14 +73,14 @@ forced = config._f || (config._f = {}); // add the loader plugin for every name - for( var i = 0, l = names.length; i < l; i++ ) { - if( config[names[i]] === undefined || $.isFunction(config[names[i]]) ) { + for (var i = 0, l = names.length; i < l; i++) { + if (config[names[i]] === undefined || $.isFunction(config[names[i]])) { config[names[i]] = loader; } } // add forced elements loader - for( var c = 0, a = elements.length; c < a; c++ ) { + for (var c = 0, a = elements.length; c < a; c++) { forced[elements[c]] = names[0]; } }; @@ -131,56 +131,56 @@ * @access private * @type {string} */ - _afterLoad = "afterLoad", + _afterLoad = 'afterLoad', /** * dictionary entry for better minimization * @access private * @type {string} */ - _load = "load", + _load = 'load', /** * dictionary entry for better minimization * @access private * @type {string} */ - _error = "error", + _error = 'error', /** * dictionary entry for better minimization * @access private * @type {string} */ - _img = "img", + _img = 'img', /** * dictionary entry for better minimization * @access private * @type {string} */ - _src = "src", + _src = 'src', /** * dictionary entry for better minimization * @access private * @type {string} */ - _srcset = "srcset", + _srcset = 'srcset', /** * dictionary entry for better minimization * @access private * @type {string} */ - _sizes = "sizes", + _sizes = 'sizes', /** * dictionary entry for better minimization * @access private * @type {string} */ - _backgroundImage = "background-image"; + _backgroundImage = 'background-image'; /** * initialize plugin @@ -197,18 +197,18 @@ items = _prepareItems(items); // if delay time is set load all items at once after delay time - if( config.delay >= 0 ) { + if (config.delay >= 0) { setTimeout(function() { _lazyLoadItems(true); }, config.delay); } // if no delay is set or combine usage is active bind events - if( config.delay < 0 || config.combined ) { + if (config.delay < 0 || config.combined) { // create unique event function events.e = _throttle(config.throttle, function(event) { // reset detected window size on resize event - if( event.type === "resize" ) { + if (event.type === 'resize') { _actualWidth = _actualHeight = -1; } @@ -232,7 +232,7 @@ // create function to force loading elements events.f = function(forcedItems) { - for( var i = 0; i < forcedItems.length; i++ ) { + for (var i = 0; i < forcedItems.length; i++) { // only handle item if available in current instance // use a compare function, because Zepto can't handle object parameter for filter // var item = items.filter(forcedItems[i]); @@ -241,7 +241,7 @@ return this === forcedItems[i]; }); - if( item.length ) { + if (item.length) { _lazyLoadItems(false, item); } } @@ -252,7 +252,7 @@ // bind lazy load functions to scroll and resize event // noinspection JSUnresolvedVariable - $(config.appendScroll).on("scroll." + namespace + " resize." + namespace, events.e); + $(config.appendScroll).on('scroll.' + namespace + ' resize.' + namespace, events.e); } } @@ -281,30 +281,30 @@ }) // append plugin instance to all elements - .data("plugin_" + config.name, instance); + .data('plugin_' + config.name, instance); - for( var i = 0, l = items.length; i < l; i++ ) { + for (var i = 0, l = items.length; i < l; i++) { var element = $(items[i]), tag = _getElementTagName(items[i]), elementImageBase = element.attr(config.imageBaseAttribute) || imageBase; // generate and update source set if an image base is set - if( tag === _img && elementImageBase && element.attr(srcsetAttribute) ) { + if (tag === _img && elementImageBase && element.attr(srcsetAttribute)) { element.attr(srcsetAttribute, _getCorrectedSrcSet(element.attr(srcsetAttribute), elementImageBase)); } // add loader to forced element types - if( forcedTags[tag] !== undefined && !element.attr(loaderAttribute) ) { + if (forcedTags[tag] !== undefined && !element.attr(loaderAttribute)) { element.attr(loaderAttribute, forcedTags[tag]); } // set default image on every element without source - if( tag === _img && defaultImage && !element.attr(_src) ) { + if (tag === _img && defaultImage && !element.attr(_src)) { element.attr(_src, defaultImage); } // set placeholder on every element without background image - else if( tag !== _img && placeholder && (!element.css(_backgroundImage) || element.css(_backgroundImage) === "none") ) { + else if (tag !== _img && placeholder && (!element.css(_backgroundImage) || element.css(_backgroundImage) === 'none')) { element.css(_backgroundImage, "url('" + placeholder + "')"); } } @@ -321,9 +321,9 @@ */ function _lazyLoadItems(allItems, forced) { // skip if no items where left - if( !items.length ) { + if (!items.length) { // destroy instance if option is enabled - if( config.autoDestroy ) { + if (config.autoDestroy) { // noinspection JSUnresolvedFunction instance.destroy(); } @@ -333,14 +333,14 @@ var elements = forced || items, loadTriggered = false, - imageBase = config.imageBase || "", + imageBase = config.imageBase || '', srcsetAttribute = config.srcsetAttribute, handledName = config.handledName; // loop all available items - for( var i = 0; i < elements.length; i++ ) { + for (var i = 0; i < elements.length; i++) { // item is at least in loadable area - if( allItems || forced || _isInLoadableArea(elements[i]) ) { + if (allItems || forced || _isInLoadableArea(elements[i])) { var element = $(elements[i]), tag = _getElementTagName(elements[i]), attribute = element.attr(config.attribute), @@ -348,9 +348,9 @@ customLoader = element.attr(config.loaderAttribute); // is not already handled - if( !element.data(handledName) && + if (!element.data(handledName) && // and is visible or visibility doesn't matter - (!config.visibleOnly || element.is(":visible")) && ( + (!config.visibleOnly || element.is(':visible')) && ( // and image source or source set attribute is available (attribute || element.attr(srcsetAttribute)) && ( // and is image tag where attribute is not equal source or source set @@ -359,7 +359,7 @@ (tag !== _img && elementImageBase + attribute !== element.css(_backgroundImage)) ) || // or custom loader is available - customLoader )) + customLoader)) { // mark element always as handled as this point to prevent double handling loadTriggered = true; @@ -372,7 +372,7 @@ } // when something was loaded remove them from remaining items - if( loadTriggered ) { + if (loadTriggered) { items = $(items).filter(function() { return !$(this).data(handledName); }); @@ -394,7 +394,7 @@ // extended error callback for correct 'onFinishedAll' handling var errorCallback = function() { - _triggerCallback("onError", element); + _triggerCallback('onError', element); _reduceAwaiting(); // prevent further callback calls @@ -402,7 +402,7 @@ }; // trigger function before loading image - _triggerCallback("beforeLoad", element); + _triggerCallback('beforeLoad', element); // fetch all double used data here for better code minimization var srcAttribute = config.attribute, @@ -414,11 +414,11 @@ elementRetina = element.attr(retinaAttribute); // handle custom loader - if( customLoader ) { + if (customLoader) { // on load callback var loadCallback = function() { // remove attribute from element - if( removeAttribute ) { + if (removeAttribute) { element.removeAttr(config.loaderAttribute); } @@ -443,8 +443,8 @@ .one(_load, loadCallback); // trigger custom loader and handle response - if( !_triggerCallback(customLoader, element, function(response) { - if( response ) { + if (!_triggerCallback(customLoader, element, function(response) { + if(response) { element.off(_load); loadCallback(); } @@ -452,7 +452,9 @@ element.off(_error); errorCallback(); } - })) element.trigger(_error); + })) { + element.trigger(_error); + } } // handle images @@ -470,7 +472,7 @@ // set image back to element // do it as single 'attr' calls, to be sure 'src' is set after 'srcset' - if( tag === _img ) { + if (tag === _img) { element.attr(_sizes, imageObj.attr(_sizes)) .attr(_srcset, imageObj.attr(_srcset)) .attr(_src, imageObj.attr(_src)); @@ -483,11 +485,11 @@ element[config.effect](config.effectTime); // remove attribute from element - if( removeAttribute ) { - element.removeAttr(srcAttribute + " " + srcsetAttribute + " " + retinaAttribute + " " + config.imageBaseAttribute); + if (removeAttribute) { + element.removeAttr(srcAttribute + ' ' + srcsetAttribute + ' ' + retinaAttribute + ' ' + config.imageBaseAttribute); // only remove 'sizes' attribute, if it was a custom one - if( sizesAttribute !== _sizes ) { + if (sizesAttribute !== _sizes) { element.removeAttr(sizesAttribute); } } @@ -507,7 +509,7 @@ // set sources // do it as single 'attr' calls, to be sure 'src' is set after 'srcset' - var imageSrc = (_isRetinaDisplay && elementRetina ? elementRetina : element.attr(srcAttribute)) || ""; + var imageSrc = (_isRetinaDisplay && elementRetina ? elementRetina : element.attr(srcAttribute)) || ''; imageObj.attr(_sizes, element.attr(sizesAttribute)) .attr(_srcset, element.attr(srcsetAttribute)) .attr(_src, imageSrc ? imageBase + imageSrc : null); @@ -536,10 +538,10 @@ // check if element is even in loadable area from right (-threshold < elementBound.right); - if( direction === "vertical" ) { + if (direction === 'vertical') { return vertical; } - else if( direction === "horizontal" ) { + else if (direction === 'horizontal') { return horizontal; } @@ -582,13 +584,13 @@ * @returns {string} */ function _getCorrectedSrcSet(srcset, imageBase) { - if( imageBase ) { + if (imageBase) { // trim, remove unnecessary spaces and split entries - var entries = srcset.split(","); - srcset = ""; + var entries = srcset.split(','); + srcset = ''; - for( var i = 0, l = entries.length; i < l; i++ ) { - srcset += imageBase + entries[i].trim() + (i !== l - 1 ? "," : ""); + for (var i = 0, l = entries.length; i < l; i++) { + srcset += imageBase + entries[i].trim() + (i !== l - 1 ? ',' : ''); } } @@ -617,7 +619,7 @@ timeout && clearTimeout(timeout); // jshint ignore : line - if( elapsed > delay || !config.enableThrottle || ignoreThrottle ) { + if (elapsed > delay || !config.enableThrottle || ignoreThrottle) { run(); } else { @@ -635,8 +637,8 @@ --_awaitingAfterLoad; // if no items were left trigger finished event - if( !items.length && !_awaitingAfterLoad ) { - _triggerCallback("onFinishedAll"); + if (!items.length && !_awaitingAfterLoad) { + _triggerCallback('onFinishedAll'); } } @@ -649,7 +651,7 @@ * @return {boolean} */ function _triggerCallback(callback, element, args) { - if( (callback = config[callback]) ) { + if ((callback = config[callback])) { // jQuery's internal '$(arguments).slice(1)' are causing problems at least on old iPads // below is shorthand of 'Array.prototype.slice.call(arguments, 1)' callback.apply(instance, [].slice.call(arguments, 1)); @@ -660,14 +662,14 @@ } // if event driven or window is already loaded don't wait for page loading - if( config.bind === "event" || windowLoaded ) { + if (config.bind === 'event' || windowLoaded) { _initialize(); } // otherwise load initial items and start lazy after page load else { // noinspection JSUnresolvedVariable - $(window).on(_load + "." + namespace, _initialize); + $(window).on(_load + '.' + namespace, _initialize); } } @@ -707,7 +709,7 @@ * @access private * @type {string} */ - _namespace = _config.name + "-" + (++lazyInstanceId); + _namespace = _config.name + '-' + (++lazyInstanceId); // noinspection JSUndefinedPropertyAssignment /** @@ -720,7 +722,7 @@ * @return {LazyPlugin|*} */ _instance.config = function(entryName, value) { - if( value === undefined ) { + if (value === undefined) { return _config[entryName]; } @@ -736,7 +738,7 @@ * @return {LazyPlugin} */ _instance.addItems = function(items) { - _events.a && _events.a($.type(items) === "string" ? $(items) : items); // jshint ignore : line + _events.a && _events.a($.type(items) === 'string' ? $(items) : items); // jshint ignore : line return _instance; }; @@ -772,7 +774,7 @@ * @return {LazyPlugin} */ _instance.force = function(items) { - _events.f && _events.f($.type(items) === "string" ? $(items) : items); // jshint ignore : line + _events.f && _events.f($.type(items) === 'string' ? $(items) : items); // jshint ignore : line return _instance; }; @@ -799,9 +801,9 @@ _instance.destroy = function() { // unbind instance generated events // noinspection JSUnresolvedFunction, JSUnresolvedVariable - $(_config.appendScroll).off("." + _namespace, _events.e); + $(_config.appendScroll).off('.' + _namespace, _events.e); // noinspection JSUnresolvedVariable - $(window).off("." + _namespace); + $(window).off('.' + _namespace); // clear events _events = {}; @@ -818,37 +820,37 @@ /** * settings and configuration data * @access public - * @type {object} + * @type {object|*} */ LazyPlugin.prototype.config = { // general - name : "lazy", + name : 'lazy', chainable : true, autoDestroy : true, - bind : "load", + bind : 'load', threshold : 500, visibleOnly : false, appendScroll : window, - scrollDirection : "both", + scrollDirection : 'both', imageBase : null, - defaultImage : "data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==", + defaultImage : 'data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==', placeholder : null, delay : -1, combined : false, // attributes - attribute : "data-src", - srcsetAttribute : "data-srcset", - sizesAttribute : "data-sizes", - retinaAttribute : "data-retina", - loaderAttribute : "data-loader", - imageBaseAttribute : "data-imagebase", + attribute : 'data-src', + srcsetAttribute : 'data-srcset', + sizesAttribute : 'data-sizes', + retinaAttribute : 'data-retina', + loaderAttribute : 'data-loader', + imageBaseAttribute : 'data-imagebase', removeAttribute : true, - handledName : "handled", - loadedName : "loaded", + handledName : 'handled', + loadedName : 'loaded', // effect - effect : "show", + effect : 'show', effectTime : 0, // throttle @@ -864,7 +866,7 @@ // register window load event globally to prevent not loading elements // since jQuery 3.X ready state is fully async and may be executed after 'load' - $(window).on("load", function() { + $(window).on('load', function() { windowLoaded = true; }); })(window); \ No newline at end of file diff --git a/jquery.lazy.min.js b/jquery.lazy.min.js index f20a61f..8c40b15 100644 --- a/jquery.lazy.min.js +++ b/jquery.lazy.min.js @@ -1,2 +1,2 @@ -/*! jQuery & Zepto Lazy v1.7.7 - http://jquery.eisbehr.de/lazy - MIT&GPL-2.0 license - Copyright 2012-2017 Daniel 'Eisbehr' Kern */ +/*! jQuery & Zepto Lazy v1.7.8 - http://jquery.eisbehr.de/lazy - MIT&GPL-2.0 license - Copyright 2012-2018 Daniel 'Eisbehr' Kern */ !function(t,e){"use strict";function r(r,a,i,u,l){function f(){L=t.devicePixelRatio>1,i=c(i),a.delay>=0&&setTimeout(function(){s(!0)},a.delay),(a.delay<0||a.combined)&&(u.e=v(a.throttle,function(t){"resize"===t.type&&(w=B=-1),s(t.all)}),u.a=function(t){t=c(t),i.push.apply(i,t)},u.g=function(){return i=n(i).filter(function(){return!n(this).data(a.loadedName)})},u.f=function(t){for(var e=0;ee.top&&-ne.left&&-n=0?w:w=n(t).width()}function h(){return B>=0?B:B=n(t).height()}function m(t){return t.tagName.toLowerCase()}function b(t,e){if(e){var r=t.split(",");t="";for(var a=0,n=r.length;at||!a.enableThrottle||u?l():n=setTimeout(l,t-f)}}function p(){--z,i.length||z||y("onFinishedAll")}function y(t,e,n){return!!(t=a[t])&&(t.apply(r,[].slice.call(arguments,1)),!0)}var z=0,w=-1,B=-1,L=!1,T="afterLoad",D="load",I="error",N="img",E="src",F="srcset",C="sizes",O="background-image";"event"===a.bind||o?f():n(t).on(D+"."+l,f)}function a(a,o){var u=this,l=n.extend({},u.config,o),f={},c=l.name+"-"+ ++i;return u.config=function(t,r){return r===e?l[t]:(l[t]=r,u)},u.addItems=function(t){return f.a&&f.a("string"===n.type(t)?n(t):t),u},u.getItems=function(){return f.g?f.g():{}},u.update=function(t){return f.e&&f.e({},!t),u},u.force=function(t){return f.f&&f.f("string"===n.type(t)?n(t):t),u},u.loadAll=function(){return f.e&&f.e({all:!0},!0),u},u.destroy=function(){return n(l.appendScroll).off("."+c,f.e),n(t).off("."+c),f={},e},r(u,l,a,f,c),l.chainable?a:u}var n=t.jQuery||t.Zepto,i=0,o=!1;n.fn.Lazy=n.fn.lazy=function(t){return new a(this,t)},n.Lazy=n.lazy=function(t,r,i){if(n.isFunction(r)&&(i=r,r=[]),n.isFunction(i)){t=n.isArray(t)?t:[t],r=n.isArray(r)?r:[r];for(var o=a.prototype.config,u=o._f||(o._f={}),l=0,f=t.length;l - $.lazy("ajax", function(element, response) { - ajaxRequest(this, element, response, element.attr("data-method")); + //
+ $.lazy('ajax', function(element, response) { + ajaxRequest(this, element, response, element.attr('data-method')); }); // load data by ajax get request and pass them to elements inner html, like: - //
- $.lazy("get", function(element, response) { - ajaxRequest(this, element, response, "get"); + //
+ $.lazy('get', function(element, response) { + ajaxRequest(this, element, response, 'GET'); }); // load data by ajax post request and pass them to elements inner html, like: - //
- $.lazy("post", function(element, response) { - ajaxRequest(this, element, response, "post"); + //
+ $.lazy('post', function(element, response) { + ajaxRequest(this, element, response, 'POST'); + }); + + // load data by ajax put request and pass them to elements inner html, like: + //
+ $.lazy('put', function(element, response) { + ajaxRequest(this, element, response, 'PUT'); }); /** @@ -35,10 +41,18 @@ * @param {string} [method] */ function ajaxRequest(instance, element, response, method) { + method = method.toUpperCase(); + + var data; + if ((method === 'POST' || method === 'PUT') && instance.config('ajaxCreateData')) { + data = instance.config('ajaxCreateData').apply(instance, [element]); + } + $.ajax({ - url: element.attr("data-src"), - type: method || "get", - dataType: element.attr("data-type") || "html", + url: element.attr('data-src'), + type: method === 'POST' || method === 'PUT' ? method : 'GET', + data: data, + dataType: element.attr('data-type') || 'html', /** * success callback @@ -54,8 +68,9 @@ response(true); // remove attributes - if( instance.config("removeAttribute") ) - element.removeAttr("data-src data-method data-type"); + if (instance.config('removeAttribute')) { + element.removeAttr('data-src data-method data-type'); + } }, /** @@ -76,7 +91,7 @@ * jQuery & Zepto Lazy - AV Plugin - v1.4 * http://jquery.eisbehr.de/lazy/ * - * Copyright 2012 - 2017, Daniel 'Eisbehr' Kern + * Copyright 2012 - 2018, Daniel 'Eisbehr' Kern * * Dual licensed under the MIT and GPL-2.0 licenses: * http://www.opensource.org/licenses/mit-license.php @@ -104,30 +119,32 @@ // // // - $.lazy(["av", "audio", "video"], ["audio", "video"], function(element, response) { + $.lazy(['av', 'audio', 'video'], ['audio', 'video'], function(element, response) { var elementTagName = element[0].tagName.toLowerCase(); - if( elementTagName === "audio" || elementTagName === "video" ) { - var srcAttr = "data-src", + if (elementTagName === 'audio' || elementTagName === 'video') { + var srcAttr = 'data-src', sources = element.find(srcAttr), - tracks = element.find("data-track"), + tracks = element.find('data-track'), sourcesInError = 0, // create on error callback for sources onError = function() { - if( ++sourcesInError === sources.length ) + if (++sourcesInError === sources.length) { response(false); + } }, // create callback to handle a source or track entry handleSource = function() { var source = $(this), type = source[0].tagName.toLowerCase(), - attributes = source.prop("attributes"), - target = $(type === srcAttr ? "" : ""); + attributes = source.prop('attributes'), + target = $(type === srcAttr ? '' : ''); - if( type === srcAttr ) - target.one("error", onError); + if (type === srcAttr) { + target.one('error', onError); + } $.each(attributes, function(index, attribute) { target.attr(attribute.name, attribute.value); @@ -137,36 +154,38 @@ }; // create event for successfull load - element.one("loadedmetadata", function() { + element.one('loadedmetadata', function() { response(true); }) // remove default callbacks to ignore loading poster image - .off("load error") + .off('load error') // load poster image - .attr("poster", element.attr("data-poster")); + .attr('poster', element.attr('data-poster')); // load by child tags - if( sources.length ) + if (sources.length) { sources.each(handleSource); + } // load by attribute - else if( element.attr(srcAttr) ) { + else if (element.attr(srcAttr)) { // split for every entry by comma - $.each(element.attr(srcAttr).split(","), function(index, value) { + $.each(element.attr(srcAttr).split(','), function(index, value) { // split again for file and file type - var parts = value.split("|"); + var parts = value.split('|'); // create a source entry - element.append($("") - .one("error", onError) + element.append($('') + .one('error', onError) .attr({src: parts[0].trim(), type: parts[1].trim()})); }); // remove now obsolete attribute - if( this.config("removeAttribute") ) + if (this.config('removeAttribute')) { element.removeAttr(srcAttr); + } } else { @@ -176,8 +195,9 @@ } // load optional tracks - if( tracks.length ) + if (tracks.length) { tracks.each(handleSource); + } } else { @@ -192,7 +212,7 @@ * jQuery & Zepto Lazy - iFrame Plugin - v1.5 * http://jquery.eisbehr.de/lazy/ * - * Copyright 2012 - 2017, Daniel 'Eisbehr' Kern + * Copyright 2012 - 2018, Daniel 'Eisbehr' Kern * * Dual licensed under the MIT and GPL-2.0 licenses: * http://www.opensource.org/licenses/mit-license.php @@ -204,29 +224,30 @@ // // enable content error check with: // - $.lazy(["frame", "iframe"], "iframe", function(element, response) { + $.lazy(['frame', 'iframe'], 'iframe', function(element, response) { var instance = this; - if( element[0].tagName.toLowerCase() === "iframe" ) { - var srcAttr = "data-src", - errorDetectAttr = "data-error-detect", + if (element[0].tagName.toLowerCase() === 'iframe') { + var srcAttr = 'data-src', + errorDetectAttr = 'data-error-detect', errorDetect = element.attr(errorDetectAttr); // default way, just replace the 'src' attribute - if( errorDetect !== "true" && errorDetect !== "1" ) { + if (errorDetect !== 'true' && errorDetect !== '1') { // set iframe source - element.attr("src", element.attr(srcAttr)); + element.attr('src', element.attr(srcAttr)); // remove attributes - if( instance.config("removeAttribute") ) - element.removeAttr(srcAttr + " " + errorDetectAttr); + if (instance.config('removeAttribute')) { + element.removeAttr(srcAttr + ' ' + errorDetectAttr); + } } // extended way, even check if the document is available else { $.ajax({ url: element.attr(srcAttr), - dataType: "html", + dataType: 'html', crossDomain: true, xhrFields: {withCredentials: true}, @@ -241,11 +262,12 @@ element.html(content) // change iframe src - .attr("src", element.attr(srcAttr)); + .attr('src', element.attr(srcAttr)); // remove attributes - if( instance.config("removeAttribute") ) - element.removeAttr(srcAttr + " " + errorDetectAttr); + if (instance.config('removeAttribute')) { + element.removeAttr(srcAttr + ' ' + errorDetectAttr); + } }, /** @@ -274,7 +296,7 @@ * jQuery & Zepto Lazy - NOOP Plugin - v1.2 * http://jquery.eisbehr.de/lazy/ * - * Copyright 2012 - 2017, Daniel 'Eisbehr' Kern + * Copyright 2012 - 2018, Daniel 'Eisbehr' Kern * * Dual licensed under the MIT and GPL-2.0 licenses: * http://www.opensource.org/licenses/mit-license.php @@ -286,16 +308,16 @@ //
// does not do anything, just a 'no-operation' helper ;) - $.lazy("noop", function() {}); + $.lazy('noop', function() {}); // does nothing, but response a successfull loading - $.lazy("noop-success", function(element, response) { + $.lazy('noop-success', function(element, response) { // use response function for Zepto response(true); }); // does nothing, but response a failed loading - $.lazy("noop-error", function(element, response) { + $.lazy('noop-error', function(element, response) { // use response function for Zepto response(false); }); @@ -305,18 +327,18 @@ * jQuery & Zepto Lazy - Picture Plugin - v1.3 * http://jquery.eisbehr.de/lazy/ * - * Copyright 2012 - 2017, Daniel 'Eisbehr' Kern + * Copyright 2012 - 2018, Daniel 'Eisbehr' Kern * * Dual licensed under the MIT and GPL-2.0 licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl-2.0.html */ ;(function($) { - var srcAttr = "data-src", - srcsetAttr = "data-srcset", - mediaAttr = "data-media", - sizesAttr = "data-sizes", - typeAttr = "data-type"; + var srcAttr = 'data-src', + srcsetAttr = 'data-srcset', + mediaAttr = 'data-media', + sizesAttr = 'data-sizes', + typeAttr = 'data-type'; // loads picture elements like: // @@ -333,45 +355,46 @@ // // or just with attributes in one line: // - $.lazy(["pic", "picture"], ["picture"], function(element, response) { + $.lazy(['pic', 'picture'], ['picture'], function(element, response) { var elementTagName = element[0].tagName.toLowerCase(); - if( elementTagName === "picture" ) { + if (elementTagName === 'picture') { var sources = element.find(srcAttr), - image = element.find("data-img"), - imageBase = this.config("imageBase") || ""; + image = element.find('data-img'), + imageBase = this.config('imageBase') || ''; // handle as child elements - if( sources.length ) { + if (sources.length) { sources.each(function() { - renameElementTag($(this), "source", imageBase); + renameElementTag($(this), 'source', imageBase); }); // create img tag from child - if( image.length === 1 ) { - image = renameElementTag(image, "img", imageBase); + if (image.length === 1) { + image = renameElementTag(image, 'img', imageBase); // bind event callbacks to new image tag - image.on("load", function() { + image.on('load', function() { response(true); - }).on("error", function() { + }).on('error', function() { response(false); }); - image.attr("src", image.attr(srcAttr)); + image.attr('src', image.attr(srcAttr)); - if( this.config("removeAttribute") ) { + if (this.config('removeAttribute')) { image.removeAttr(srcAttr); } } // create img tag from attribute - else if( element.attr(srcAttr) ) { + else if (element.attr(srcAttr)) { // create image tag createImageObject(element, imageBase + element.attr(srcAttr), response); - if( this.config("removeAttribute") ) + if (this.config('removeAttribute')) { element.removeAttr(srcAttr); + } } // pass error state @@ -384,7 +407,7 @@ // handle as attributes else if( element.attr(srcsetAttr) ) { // create source elements before img tag - $("").attr({ + $('').attr({ media: element.attr(mediaAttr), sizes: element.attr(sizesAttr), type: element.attr(typeAttr), @@ -396,8 +419,8 @@ createImageObject(element, imageBase + element.attr(srcAttr), response); // remove attributes from parent picture element - if( this.config("removeAttribute") ) { - element.removeAttr(srcAttr + " " + srcsetAttr + " " + mediaAttr + " " + sizesAttr + " " + typeAttr); + if (this.config('removeAttribute')) { + element.removeAttr(srcAttr + ' ' + srcsetAttr + ' ' + mediaAttr + ' ' + sizesAttr + ' ' + typeAttr); } } @@ -423,12 +446,12 @@ * @return {jQuery|object} */ function renameElementTag(element, toType, imageBase) { - var attributes = element.prop("attributes"), - target = $("<" + toType + ">"); + var attributes = element.prop('attributes'), + target = $('<' + toType + '>'); $.each(attributes, function(index, attribute) { // build srcset with image base - if( attribute.name === "srcset" || attribute.name === srcAttr ) { + if (attribute.name === 'srcset' || attribute.name === srcAttr) { attribute.value = getCorrectedSrcSet(attribute.value, imageBase); } @@ -448,13 +471,13 @@ */ function createImageObject(parent, src, response) { // create image tag - var imageObj = $("") + var imageObj = $('') // create image tag an bind callbacks for correct response - .one("load", function() { + .one('load', function() { response(true); }) - .one("error", function() { + .one('error', function() { response(false); }) @@ -462,7 +485,7 @@ .appendTo(parent) // set src attribute at last to prevent early kick-in - .attr("src", src); + .attr('src', src); // call after load even on cached image imageObj.complete && imageObj.load(); // jshint ignore : line @@ -475,13 +498,13 @@ * @returns {string} */ function getCorrectedSrcSet(srcset, imageBase) { - if( imageBase ) { + if (imageBase) { // trim, remove unnecessary spaces and split entries - var entries = srcset.split(","); - srcset = ""; + var entries = srcset.split(','); + srcset = ''; - for( var i = 0, l = entries.length; i < l; i++ ) { - srcset += imageBase + entries[i].trim() + (i !== l - 1 ? "," : ""); + for (var i = 0, l = entries.length; i < l; i++) { + srcset += imageBase + entries[i].trim() + (i !== l - 1 ? ',' : ''); } } @@ -493,7 +516,7 @@ * jQuery & Zepto Lazy - Script Plugin - v1.2 * http://jquery.eisbehr.de/lazy/ * - * Copyright 2012 - 2017, Daniel 'Eisbehr' Kern + * Copyright 2012 - 2018, Daniel 'Eisbehr' Kern * * Dual licensed under the MIT and GPL-2.0 licenses: * http://www.opensource.org/licenses/mit-license.php @@ -502,13 +525,14 @@ ;(function($) { // loads javascript files for script tags, like: // - $.lazy(["js", "javascript", "script"], "script", function(element, response) { - if( element[0].tagName.toLowerCase() == "script" ) { - element.attr("src", element.attr("data-src")); + $.lazy(['js', 'javascript', 'script'], 'script', function(element, response) { + if (element[0].tagName.toLowerCase() === 'script') { + element.attr('src', element.attr('data-src')); // remove attribute - if( this.config("removeAttribute") ) - element.removeAttr("data-src"); + if (this.config('removeAttribute')) { + element.removeAttr('data-src'); + } } else { // use response function for Zepto @@ -521,7 +545,7 @@ * jQuery & Zepto Lazy - Vimeo Plugin - v1.1 * http://jquery.eisbehr.de/lazy/ * - * Copyright 2012 - 2017, Daniel 'Eisbehr' Kern + * Copyright 2012 - 2018, Daniel 'Eisbehr' Kern * * Dual licensed under the MIT and GPL-2.0 licenses: * http://www.opensource.org/licenses/mit-license.php @@ -530,14 +554,15 @@ ;(function($) { // load vimeo video iframe, like: // - $.lazy("vimeo", function(element, response) { - if( element[0].tagName.toLowerCase() === "iframe" ) { + $.lazy('vimeo', function(element, response) { + if (element[0].tagName.toLowerCase() === 'iframe') { // pass source to iframe - element.attr("src", "https://player.vimeo.com/video/" + element.attr("data-src")); + element.attr('src', 'https://player.vimeo.com/video/' + element.attr('data-src')); // remove attribute - if( this.config("removeAttribute") ) - element.removeAttr("data-src"); + if (this.config('removeAttribute')) { + element.removeAttr('data-src'); + } } else { @@ -552,7 +577,7 @@ * jQuery & Zepto Lazy - YouTube Plugin - v1.4 * http://jquery.eisbehr.de/lazy/ * - * Copyright 2012 - 2017, Daniel 'Eisbehr' Kern + * Copyright 2012 - 2018, Daniel 'Eisbehr' Kern * * Dual licensed under the MIT and GPL-2.0 licenses: * http://www.opensource.org/licenses/mit-license.php @@ -561,14 +586,15 @@ ;(function($) { // load youtube video iframe, like: // - $.lazy(["yt", "youtube"], function(element, response) { - if( element[0].tagName.toLowerCase() === "iframe" ) { + $.lazy(['yt', 'youtube'], function(element, response) { + if (element[0].tagName.toLowerCase() === 'iframe') { // pass source to iframe - element.attr("src", "https://www.youtube.com/embed/" + element.attr("data-src") + "?rel=0&showinfo=0"); + element.attr('src', 'https://www.youtube.com/embed/' + element.attr('data-src') + '?rel=0&showinfo=0'); // remove attribute - if( this.config("removeAttribute") ) - element.removeAttr("data-src"); + if (this.config('removeAttribute')) { + element.removeAttr('data-src'); + } } else { diff --git a/jquery.lazy.plugins.min.js b/jquery.lazy.plugins.min.js index 3767df7..7ef41a5 100644 --- a/jquery.lazy.plugins.min.js +++ b/jquery.lazy.plugins.min.js @@ -1,2 +1,2 @@ -/*! jQuery & Zepto Lazy - All Plugins v1.7.7 - http://jquery.eisbehr.de/lazy - MIT&GPL-2.0 license - Copyright 2012-2017 Daniel 'Eisbehr' Kern */ -!function(t){function a(a,e,r,o){t.ajax({url:e.attr("data-src"),type:o||"get",dataType:e.attr("data-type")||"html",success:function(t){e.html(t),r(!0),a.config("removeAttribute")&&e.removeAttr("data-src data-method data-type")},error:function(){r(!1)}})}t.lazy("ajax",function(t,e){a(this,t,e,t.attr("data-method"))}),t.lazy("get",function(t,e){a(this,t,e,"get")}),t.lazy("post",function(t,e){a(this,t,e,"post")})}(window.jQuery||window.Zepto),function(t){t.lazy(["av","audio","video"],["audio","video"],function(a,e){var r=a[0].tagName.toLowerCase();if("audio"===r||"video"===r){var o=a.find("data-src"),i=a.find("data-track"),n=0,c=function(){++n===o.length&&e(!1)},s=function(){var a=t(this),e=a[0].tagName.toLowerCase(),r=a.prop("attributes"),o=t("data-src"===e?"":"");"data-src"===e&&o.one("error",c),t.each(r,function(t,a){o.attr(a.name,a.value)}),a.replaceWith(o)};a.one("loadedmetadata",function(){e(!0)}).off("load error").attr("poster",a.attr("data-poster")),o.length?o.each(s):a.attr("data-src")?(t.each(a.attr("data-src").split(","),function(e,r){var o=r.split("|");a.append(t("").one("error",c).attr({src:o[0].trim(),type:o[1].trim()}))}),this.config("removeAttribute")&&a.removeAttr("data-src")):e(!1),i.length&&i.each(s)}else e(!1)})}(window.jQuery||window.Zepto),function(t){t.lazy(["frame","iframe"],"iframe",function(a,e){var r=this;if("iframe"===a[0].tagName.toLowerCase()){var o=a.attr("data-error-detect");"true"!==o&&"1"!==o?(a.attr("src",a.attr("data-src")),r.config("removeAttribute")&&a.removeAttr("data-src data-error-detect")):t.ajax({url:a.attr("data-src"),dataType:"html",crossDomain:!0,xhrFields:{withCredentials:!0},success:function(t){a.html(t).attr("src",a.attr("data-src")),r.config("removeAttribute")&&a.removeAttr("data-src data-error-detect")},error:function(){e(!1)}})}else e(!1)})}(window.jQuery||window.Zepto),function(t){t.lazy("noop",function(){}),t.lazy("noop-success",function(t,a){a(!0)}),t.lazy("noop-error",function(t,a){a(!1)})}(window.jQuery||window.Zepto),function(t){function a(a,e,i){var n=a.prop("attributes"),c=t("<"+e+">");return t.each(n,function(t,a){"srcset"!==a.name&&a.name!==o||(a.value=r(a.value,i)),c.attr(a.name,a.value)}),a.replaceWith(c),c}function e(a,e,r){var o=t("").one("load",function(){r(!0)}).one("error",function(){r(!1)}).appendTo(a).attr("src",e);o.complete&&o.load()}function r(t,a){if(a){var e=t.split(",");t="";for(var r=0,o=e.length;r").attr({media:i.attr("data-media"),sizes:i.attr("data-sizes"),type:i.attr("data-type"),srcset:r(i.attr("data-srcset"),d)}).appendTo(i),e(i,d+i.attr(o),n),this.config("removeAttribute")&&i.removeAttr(o+" data-srcset data-media data-sizes data-type")):n(!1)}else n(!1)})}(window.jQuery||window.Zepto),function(t){t.lazy(["js","javascript","script"],"script",function(t,a){"script"==t[0].tagName.toLowerCase()?(t.attr("src",t.attr("data-src")),this.config("removeAttribute")&&t.removeAttr("data-src")):a(!1)})}(window.jQuery||window.Zepto),function(t){t.lazy("vimeo",function(t,a){"iframe"===t[0].tagName.toLowerCase()?(t.attr("src","https://player.vimeo.com/video/"+t.attr("data-src")),this.config("removeAttribute")&&t.removeAttr("data-src")):a(!1)})}(window.jQuery||window.Zepto),function(t){t.lazy(["yt","youtube"],function(t,a){"iframe"===t[0].tagName.toLowerCase()?(t.attr("src","https://www.youtube.com/embed/"+t.attr("data-src")+"?rel=0&showinfo=0"),this.config("removeAttribute")&&t.removeAttr("data-src")):a(!1)})}(window.jQuery||window.Zepto); \ No newline at end of file +/*! jQuery & Zepto Lazy - All Plugins v1.7.8 - http://jquery.eisbehr.de/lazy - MIT&GPL-2.0 license - Copyright 2012-2018 Daniel 'Eisbehr' Kern */ +!function(t){function a(a,e,r,o){o=o.toUpperCase();var i;"POST"!==o&&"PUT"!==o||!a.config("ajaxCreateData")||(i=a.config("ajaxCreateData").apply(a,[e])),t.ajax({url:e.attr("data-src"),type:"POST"===o||"PUT"===o?o:"GET",data:i,dataType:e.attr("data-type")||"html",success:function(t){e.html(t),r(!0),a.config("removeAttribute")&&e.removeAttr("data-src data-method data-type")},error:function(){r(!1)}})}t.lazy("ajax",function(t,e){a(this,t,e,t.attr("data-method"))}),t.lazy("get",function(t,e){a(this,t,e,"GET")}),t.lazy("post",function(t,e){a(this,t,e,"POST")}),t.lazy("put",function(t,e){a(this,t,e,"PUT")})}(window.jQuery||window.Zepto),function(t){t.lazy(["av","audio","video"],["audio","video"],function(a,e){var r=a[0].tagName.toLowerCase();if("audio"===r||"video"===r){var o=a.find("data-src"),i=a.find("data-track"),n=0,c=function(){++n===o.length&&e(!1)},s=function(){var a=t(this),e=a[0].tagName.toLowerCase(),r=a.prop("attributes"),o=t("data-src"===e?"":"");"data-src"===e&&o.one("error",c),t.each(r,function(t,a){o.attr(a.name,a.value)}),a.replaceWith(o)};a.one("loadedmetadata",function(){e(!0)}).off("load error").attr("poster",a.attr("data-poster")),o.length?o.each(s):a.attr("data-src")?(t.each(a.attr("data-src").split(","),function(e,r){var o=r.split("|");a.append(t("").one("error",c).attr({src:o[0].trim(),type:o[1].trim()}))}),this.config("removeAttribute")&&a.removeAttr("data-src")):e(!1),i.length&&i.each(s)}else e(!1)})}(window.jQuery||window.Zepto),function(t){t.lazy(["frame","iframe"],"iframe",function(a,e){var r=this;if("iframe"===a[0].tagName.toLowerCase()){var o=a.attr("data-error-detect");"true"!==o&&"1"!==o?(a.attr("src",a.attr("data-src")),r.config("removeAttribute")&&a.removeAttr("data-src data-error-detect")):t.ajax({url:a.attr("data-src"),dataType:"html",crossDomain:!0,xhrFields:{withCredentials:!0},success:function(t){a.html(t).attr("src",a.attr("data-src")),r.config("removeAttribute")&&a.removeAttr("data-src data-error-detect")},error:function(){e(!1)}})}else e(!1)})}(window.jQuery||window.Zepto),function(t){t.lazy("noop",function(){}),t.lazy("noop-success",function(t,a){a(!0)}),t.lazy("noop-error",function(t,a){a(!1)})}(window.jQuery||window.Zepto),function(t){function a(a,e,i){var n=a.prop("attributes"),c=t("<"+e+">");return t.each(n,function(t,a){"srcset"!==a.name&&a.name!==o||(a.value=r(a.value,i)),c.attr(a.name,a.value)}),a.replaceWith(c),c}function e(a,e,r){var o=t("").one("load",function(){r(!0)}).one("error",function(){r(!1)}).appendTo(a).attr("src",e);o.complete&&o.load()}function r(t,a){if(a){var e=t.split(",");t="";for(var r=0,o=e.length;r").attr({media:i.attr("data-media"),sizes:i.attr("data-sizes"),type:i.attr("data-type"),srcset:r(i.attr("data-srcset"),d)}).appendTo(i),e(i,d+i.attr(o),n),this.config("removeAttribute")&&i.removeAttr(o+" data-srcset data-media data-sizes data-type")):n(!1)}else n(!1)})}(window.jQuery||window.Zepto),function(t){t.lazy(["js","javascript","script"],"script",function(t,a){"script"===t[0].tagName.toLowerCase()?(t.attr("src",t.attr("data-src")),this.config("removeAttribute")&&t.removeAttr("data-src")):a(!1)})}(window.jQuery||window.Zepto),function(t){t.lazy("vimeo",function(t,a){"iframe"===t[0].tagName.toLowerCase()?(t.attr("src","https://player.vimeo.com/video/"+t.attr("data-src")),this.config("removeAttribute")&&t.removeAttr("data-src")):a(!1)})}(window.jQuery||window.Zepto),function(t){t.lazy(["yt","youtube"],function(t,a){"iframe"===t[0].tagName.toLowerCase()?(t.attr("src","https://www.youtube.com/embed/"+t.attr("data-src")+"?rel=0&showinfo=0"),this.config("removeAttribute")&&t.removeAttr("data-src")):a(!1)})}(window.jQuery||window.Zepto); \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..3215dde --- /dev/null +++ b/package-lock.json @@ -0,0 +1,2012 @@ +{ + "name": "jquery-lazy", + "version": "1.7.6", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "align-text": { + "version": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "dev": true, + "requires": { + "kind-of": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.0.tgz", + "longest": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "repeat-string": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz" + } + }, + "ansi-regex": { + "version": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "archy": { + "version": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", + "dev": true + }, + "arr-diff": { + "version": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "dev": true, + "requires": { + "arr-flatten": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.3.tgz" + } + }, + "arr-flatten": { + "version": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.3.tgz", + "integrity": "sha1-onTthawIhJtr14R8RYB0XcUa37E=", + "dev": true + }, + "array-differ": { + "version": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", + "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=", + "dev": true + }, + "array-uniq": { + "version": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true + }, + "array-unique": { + "version": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "dev": true + }, + "balanced-match": { + "version": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", + "dev": true + }, + "beeper": { + "version": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz", + "integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak=", + "dev": true + }, + "brace-expansion": { + "version": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz", + "integrity": "sha1-Pv/DxQ4ABTH7cg6v+A8K6O8jz1k=", + "dev": true, + "requires": { + "balanced-match": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "concat-map": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + } + }, + "braces": { + "version": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "dev": true, + "requires": { + "expand-range": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "preserve": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "repeat-element": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz" + } + }, + "buffer-shims": { + "version": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", + "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=", + "dev": true + }, + "camelcase": { + "version": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "dev": true + }, + "center-align": { + "version": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "dev": true, + "requires": { + "align-text": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "lazy-cache": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz" + } + }, + "chalk": { + "version": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "has-ansi": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "supports-color": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" + } + }, + "cli": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cli/-/cli-1.0.1.tgz", + "integrity": "sha1-IoF1NPJL+klQw01TLUjsvGIbjBQ=", + "dev": true, + "requires": { + "exit": "0.1.2", + "glob": "7.1.2" + }, + "dependencies": { + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "minimatch": "3.0.4", + "once": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", + "path-is-absolute": "1.0.1" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz" + } + } + } + }, + "cliui": { + "version": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "dev": true, + "requires": { + "center-align": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "right-align": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "wordwrap": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz" + } + }, + "clone": { + "version": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz", + "integrity": "sha1-Jgt6meux7f4kdTgXX3gyQ8sZ0Uk=", + "dev": true + }, + "clone-stats": { + "version": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", + "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=", + "dev": true + }, + "concat-map": { + "version": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "concat-with-sourcemaps": { + "version": "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.0.4.tgz", + "integrity": "sha1-9Vs74q60dgGxCi1SWcz7cP0vHdY=", + "dev": true, + "requires": { + "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz" + } + }, + "console-browserify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", + "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", + "dev": true, + "requires": { + "date-now": "0.1.4" + } + }, + "core-util-is": { + "version": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "date-now": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", + "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", + "dev": true + }, + "dateformat": { + "version": "https://registry.npmjs.org/dateformat/-/dateformat-2.0.0.tgz", + "integrity": "sha1-J0Pjq7XD/CRi5SfcpEXgTp9N7hc=", + "dev": true + }, + "decamelize": { + "version": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "defaults": { + "version": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "dev": true, + "requires": { + "clone": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz" + } + }, + "deprecated": { + "version": "https://registry.npmjs.org/deprecated/-/deprecated-0.0.1.tgz", + "integrity": "sha1-+cmvVGSvoeepcUWKi97yqpTVuxk=", + "dev": true + }, + "detect-file": { + "version": "https://registry.npmjs.org/detect-file/-/detect-file-0.1.0.tgz", + "integrity": "sha1-STXe39lIhkjgBrASlWbpOGcR6mM=", + "dev": true, + "requires": { + "fs-exists-sync": "https://registry.npmjs.org/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz" + } + }, + "dom-serializer": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", + "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", + "dev": true, + "requires": { + "domelementtype": "1.1.3", + "entities": "1.1.1" + }, + "dependencies": { + "domelementtype": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", + "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=", + "dev": true + }, + "entities": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", + "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=", + "dev": true + } + } + }, + "domelementtype": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", + "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=", + "dev": true + }, + "domhandler": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz", + "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=", + "dev": true, + "requires": { + "domelementtype": "1.3.0" + } + }, + "domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "dev": true, + "requires": { + "dom-serializer": "0.1.0", + "domelementtype": "1.3.0" + } + }, + "duplexer2": { + "version": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", + "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=", + "dev": true, + "requires": { + "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz" + } + }, + "duplexify": { + "version": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.0.tgz", + "integrity": "sha1-GqdzAC4VeEV+nZ1KULDMquvL1gQ=", + "dev": true, + "requires": { + "end-of-stream": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.0.0.tgz", + "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz", + "stream-shift": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz" + }, + "dependencies": { + "end-of-stream": { + "version": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.0.0.tgz", + "integrity": "sha1-1FlucCc0qT5A6a+GQxnqvZn/Lw4=", + "dev": true, + "requires": { + "once": "https://registry.npmjs.org/once/-/once-1.3.3.tgz" + } + }, + "isarray": { + "version": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz", + "integrity": "sha1-z3jsb0ptHrQ9JkiMrJfwQudLf8g=", + "dev": true, + "requires": { + "buffer-shims": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", + "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "process-nextick-args": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.0.tgz", + "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + } + }, + "string_decoder": { + "version": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.0.tgz", + "integrity": "sha1-8G9BFXtmTYYGn4S9vcmw2KsoFmc=", + "dev": true, + "requires": { + "buffer-shims": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz" + } + } + } + }, + "end-of-stream": { + "version": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-0.1.5.tgz", + "integrity": "sha1-jhdyBsPICDfYVjLouTWd/osvbq8=", + "dev": true, + "requires": { + "once": "https://registry.npmjs.org/once/-/once-1.3.3.tgz" + } + }, + "entities": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz", + "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY=", + "dev": true + }, + "escape-string-regexp": { + "version": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true + }, + "expand-brackets": { + "version": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "dev": true, + "requires": { + "is-posix-bracket": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz" + } + }, + "expand-range": { + "version": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "dev": true, + "requires": { + "fill-range": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz" + } + }, + "expand-tilde": { + "version": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-1.2.2.tgz", + "integrity": "sha1-C4HrqJflo9MdHD0QL48BRB5VlEk=", + "dev": true, + "requires": { + "os-homedir": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz" + } + }, + "extend": { + "version": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz", + "integrity": "sha1-WkdDU7nzNT3dgXbf03uRyDpG8dQ=", + "dev": true + }, + "extglob": { + "version": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dev": true, + "requires": { + "is-extglob": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz" + } + }, + "fancy-log": { + "version": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.0.tgz", + "integrity": "sha1-Rb4X0Cu5kX1gzP/UmVyZnmyMmUg=", + "dev": true, + "requires": { + "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "time-stamp": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.0.1.tgz" + } + }, + "filename-regex": { + "version": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.0.tgz", + "integrity": "sha1-mW4+gEebmLmJfxWopYs9CE6SZ3U=", + "dev": true + }, + "fill-range": { + "version": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", + "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", + "dev": true, + "requires": { + "is-number": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "isobject": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "randomatic": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.6.tgz", + "repeat-element": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "repeat-string": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz" + } + }, + "find-index": { + "version": "https://registry.npmjs.org/find-index/-/find-index-0.1.1.tgz", + "integrity": "sha1-Z101iyyjiS15Whq0cjL4tuLg3eQ=", + "dev": true + }, + "findup-sync": { + "version": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.4.3.tgz", + "integrity": "sha1-QAQ5Kee8YK3wt/SCfExudaDeyhI=", + "dev": true, + "requires": { + "detect-file": "https://registry.npmjs.org/detect-file/-/detect-file-0.1.0.tgz", + "is-glob": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "micromatch": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "resolve-dir": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-0.1.1.tgz" + } + }, + "fined": { + "version": "https://registry.npmjs.org/fined/-/fined-1.0.2.tgz", + "integrity": "sha1-WyhCS3YNdZiWC374SA3/itNmDpc=", + "dev": true, + "requires": { + "expand-tilde": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-1.2.2.tgz", + "lodash.assignwith": "https://registry.npmjs.org/lodash.assignwith/-/lodash.assignwith-4.2.0.tgz", + "lodash.isempty": "https://registry.npmjs.org/lodash.isempty/-/lodash.isempty-4.4.0.tgz", + "lodash.isplainobject": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "lodash.isstring": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "lodash.pick": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", + "parse-filepath": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.1.tgz" + } + }, + "first-chunk-stream": { + "version": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz", + "integrity": "sha1-Wb+1DNkF9g18OUzT2ayqtOatk04=", + "dev": true + }, + "flagged-respawn": { + "version": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-0.3.2.tgz", + "integrity": "sha1-/xke3c1wiKZ1smEP/8l2vpuAdLU=", + "dev": true + }, + "for-in": { + "version": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "for-own": { + "version": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "dev": true, + "requires": { + "for-in": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz" + } + }, + "fork-stream": { + "version": "https://registry.npmjs.org/fork-stream/-/fork-stream-0.0.4.tgz", + "integrity": "sha1-24Sfznf2cIpfjzhq5TOgkHtUrnA=", + "dev": true + }, + "fs-exists-sync": { + "version": "https://registry.npmjs.org/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz", + "integrity": "sha1-mC1ok6+RjnLQjeyehnP/K1qNat0=", + "dev": true + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "gaze": { + "version": "https://registry.npmjs.org/gaze/-/gaze-0.5.2.tgz", + "integrity": "sha1-QLcJU30k0dRXZ9takIaJ3+aaxE8=", + "dev": true, + "requires": { + "globule": "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz" + } + }, + "glob": { + "version": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz", + "integrity": "sha1-xstz0yJsHv7wTePFbQEvAzd+4V8=", + "dev": true, + "requires": { + "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", + "once": "https://registry.npmjs.org/once/-/once-1.3.3.tgz" + } + }, + "glob-base": { + "version": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "dev": true, + "requires": { + "glob-parent": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "is-glob": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz" + } + }, + "glob-parent": { + "version": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "dev": true, + "requires": { + "is-glob": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz" + } + }, + "glob-stream": { + "version": "https://registry.npmjs.org/glob-stream/-/glob-stream-3.1.18.tgz", + "integrity": "sha1-kXCl8St5Awb9/lmPMT+PeVT9FDs=", + "dev": true, + "requires": { + "glob": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz", + "glob2base": "https://registry.npmjs.org/glob2base/-/glob2base-0.0.12.tgz", + "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", + "ordered-read-streams": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz", + "through2": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "unique-stream": "https://registry.npmjs.org/unique-stream/-/unique-stream-1.0.0.tgz" + }, + "dependencies": { + "readable-stream": { + "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "isarray": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" + } + }, + "through2": { + "version": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "dev": true, + "requires": { + "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "xtend": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" + } + } + } + }, + "glob-watcher": { + "version": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-0.0.6.tgz", + "integrity": "sha1-uVtKjfdLOcgymLDAXJeLTZo7cQs=", + "dev": true, + "requires": { + "gaze": "https://registry.npmjs.org/gaze/-/gaze-0.5.2.tgz" + } + }, + "glob2base": { + "version": "https://registry.npmjs.org/glob2base/-/glob2base-0.0.12.tgz", + "integrity": "sha1-nUGbPijxLoOjYhZKJ3BVkiycDVY=", + "dev": true, + "requires": { + "find-index": "https://registry.npmjs.org/find-index/-/find-index-0.1.1.tgz" + } + }, + "global-modules": { + "version": "https://registry.npmjs.org/global-modules/-/global-modules-0.2.3.tgz", + "integrity": "sha1-6lo77ULG1s6ZWk+KEmm12uIjgo0=", + "dev": true, + "requires": { + "global-prefix": "https://registry.npmjs.org/global-prefix/-/global-prefix-0.1.5.tgz", + "is-windows": "https://registry.npmjs.org/is-windows/-/is-windows-0.2.0.tgz" + } + }, + "global-prefix": { + "version": "https://registry.npmjs.org/global-prefix/-/global-prefix-0.1.5.tgz", + "integrity": "sha1-jTvGuNo8qBEqFg2NSW/wRiv+948=", + "dev": true, + "requires": { + "homedir-polyfill": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz", + "ini": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", + "is-windows": "https://registry.npmjs.org/is-windows/-/is-windows-0.2.0.tgz", + "which": "https://registry.npmjs.org/which/-/which-1.2.14.tgz" + } + }, + "globule": { + "version": "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz", + "integrity": "sha1-2cjt3h2nnRJaFRt5UzuXhnY0auU=", + "dev": true, + "requires": { + "glob": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz", + "lodash": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz", + "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz" + }, + "dependencies": { + "glob": { + "version": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz", + "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=", + "dev": true, + "requires": { + "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz", + "inherits": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz", + "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz" + } + }, + "graceful-fs": { + "version": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz", + "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=", + "dev": true + }, + "inherits": { + "version": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz", + "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=", + "dev": true + }, + "minimatch": { + "version": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", + "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=", + "dev": true, + "requires": { + "lru-cache": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", + "sigmund": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz" + } + } + } + }, + "glogg": { + "version": "https://registry.npmjs.org/glogg/-/glogg-1.0.0.tgz", + "integrity": "sha1-f+DxmfV6yQbPUS/urY+Q7kooT8U=", + "dev": true, + "requires": { + "sparkles": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.0.tgz" + } + }, + "graceful-fs": { + "version": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz", + "integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=", + "dev": true, + "requires": { + "natives": "https://registry.npmjs.org/natives/-/natives-1.1.0.tgz" + } + }, + "gulp": { + "version": "https://registry.npmjs.org/gulp/-/gulp-3.9.1.tgz", + "integrity": "sha1-VxzkWSjdQK9lFPxAEYZgFsE4RbQ=", + "dev": true, + "requires": { + "archy": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "deprecated": "https://registry.npmjs.org/deprecated/-/deprecated-0.0.1.tgz", + "gulp-util": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz", + "interpret": "https://registry.npmjs.org/interpret/-/interpret-1.0.3.tgz", + "liftoff": "https://registry.npmjs.org/liftoff/-/liftoff-2.3.0.tgz", + "minimist": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "orchestrator": "https://registry.npmjs.org/orchestrator/-/orchestrator-0.3.8.tgz", + "pretty-hrtime": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "semver": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", + "tildify": "https://registry.npmjs.org/tildify/-/tildify-1.2.0.tgz", + "v8flags": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", + "vinyl-fs": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-0.3.14.tgz" + } + }, + "gulp-concat-util": { + "version": "https://registry.npmjs.org/gulp-concat-util/-/gulp-concat-util-0.5.5.tgz", + "integrity": "sha1-yPBjO05ulQ/5PEdbPI07hL4Dt9w=", + "dev": true, + "requires": { + "concat-with-sourcemaps": "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.0.4.tgz", + "gulp-if": "https://registry.npmjs.org/gulp-if/-/gulp-if-2.0.2.tgz", + "gulp-util": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz", + "lodash.assign": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-3.2.0.tgz", + "stream-combiner2": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", + "through2": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz" + } + }, + "gulp-data": { + "version": "https://registry.npmjs.org/gulp-data/-/gulp-data-1.2.1.tgz", + "integrity": "sha1-qUtU3n1PO46h9A74WXScJFeM8Ss=", + "dev": true, + "requires": { + "gulp-util": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz", + "through2": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", + "util-extend": "https://registry.npmjs.org/util-extend/-/util-extend-1.0.3.tgz" + } + }, + "gulp-header": { + "version": "1.8.9", + "resolved": "https://registry.npmjs.org/gulp-header/-/gulp-header-1.8.9.tgz", + "integrity": "sha1-yfEP7gYy2B6Tl4nG7PRaFRvzCYs=", + "dev": true, + "requires": { + "concat-with-sourcemaps": "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.0.4.tgz", + "gulp-util": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz", + "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", + "through2": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz" + } + }, + "gulp-if": { + "version": "https://registry.npmjs.org/gulp-if/-/gulp-if-2.0.2.tgz", + "integrity": "sha1-pJe351cwBQQcqivIt92jyARE1ik=", + "dev": true, + "requires": { + "gulp-match": "https://registry.npmjs.org/gulp-match/-/gulp-match-1.0.3.tgz", + "ternary-stream": "https://registry.npmjs.org/ternary-stream/-/ternary-stream-2.0.1.tgz", + "through2": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz" + } + }, + "gulp-jshint": { + "version": "https://registry.npmjs.org/gulp-jshint/-/gulp-jshint-2.0.4.tgz", + "integrity": "sha1-84KxhWSxBy3vDJqvdTwUba208Og=", + "dev": true, + "requires": { + "gulp-util": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz", + "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz", + "rcloader": "https://registry.npmjs.org/rcloader/-/rcloader-0.2.2.tgz", + "through2": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz" + }, + "dependencies": { + "lodash": { + "version": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true + }, + "minimatch": { + "version": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha1-Kk5AkLlrLbBqnX3wEFWmKnfJt3Q=", + "dev": true, + "requires": { + "brace-expansion": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz" + } + } + } + }, + "gulp-match": { + "version": "https://registry.npmjs.org/gulp-match/-/gulp-match-1.0.3.tgz", + "integrity": "sha1-kcfA1/Kb7NZgbVfYCn+Hdqh6uo4=", + "dev": true, + "requires": { + "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz" + }, + "dependencies": { + "minimatch": { + "version": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha1-Kk5AkLlrLbBqnX3wEFWmKnfJt3Q=", + "dev": true, + "requires": { + "brace-expansion": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz" + } + } + } + }, + "gulp-noop": { + "version": "https://registry.npmjs.org/gulp-noop/-/gulp-noop-1.0.0.tgz", + "integrity": "sha1-CCsRQkk1Es5cWrLh7D57tItXXHk=", + "dev": true, + "requires": { + "through2": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz" + } + }, + "gulp-rename": { + "version": "https://registry.npmjs.org/gulp-rename/-/gulp-rename-1.2.2.tgz", + "integrity": "sha1-OtRCh2PwXidk3sHGfYaNsnVoeBc=", + "dev": true + }, + "gulp-uglify": { + "version": "https://registry.npmjs.org/gulp-uglify/-/gulp-uglify-2.1.2.tgz", + "integrity": "sha1-bbhbHQ7mPRgFhZK2WGSdZcLsRUE=", + "dev": true, + "requires": { + "gulplog": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", + "has-gulplog": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz", + "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "make-error-cause": "https://registry.npmjs.org/make-error-cause/-/make-error-cause-1.2.2.tgz", + "through2": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", + "uglify-js": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.22.tgz", + "uglify-save-license": "https://registry.npmjs.org/uglify-save-license/-/uglify-save-license-0.4.1.tgz", + "vinyl-sourcemaps-apply": "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz" + }, + "dependencies": { + "lodash": { + "version": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true + } + } + }, + "gulp-util": { + "version": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz", + "integrity": "sha1-AFTh50RQLifATBh8PsxQXdVLu08=", + "dev": true, + "requires": { + "array-differ": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", + "array-uniq": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "beeper": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz", + "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "dateformat": "https://registry.npmjs.org/dateformat/-/dateformat-2.0.0.tgz", + "fancy-log": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.0.tgz", + "gulplog": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", + "has-gulplog": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz", + "lodash._reescape": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz", + "lodash._reevaluate": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz", + "lodash._reinterpolate": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", + "lodash.template": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz", + "minimist": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "multipipe": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz", + "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", + "replace-ext": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", + "through2": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", + "vinyl": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz" + } + }, + "gulplog": { + "version": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", + "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", + "dev": true, + "requires": { + "glogg": "https://registry.npmjs.org/glogg/-/glogg-1.0.0.tgz" + } + }, + "has-ansi": { + "version": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz" + } + }, + "has-gulplog": { + "version": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz", + "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=", + "dev": true, + "requires": { + "sparkles": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.0.tgz" + } + }, + "homedir-polyfill": { + "version": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz", + "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=", + "dev": true, + "requires": { + "parse-passwd": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz" + } + }, + "htmlparser2": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz", + "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=", + "dev": true, + "requires": { + "domelementtype": "1.3.0", + "domhandler": "2.3.0", + "domutils": "1.5.1", + "entities": "1.0.0", + "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz" + } + }, + "inflight": { + "version": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", + "wrappy": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + } + }, + "inherits": { + "version": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "ini": { + "version": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", + "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=", + "dev": true + }, + "interpret": { + "version": "https://registry.npmjs.org/interpret/-/interpret-1.0.3.tgz", + "integrity": "sha1-y8NcYu7uc/Gat7EKgBURQBr8D5A=", + "dev": true + }, + "irregular-plurals": { + "version": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-1.2.0.tgz", + "integrity": "sha1-OPKZg0uowAwwvpxVThNyaXUv86w=", + "dev": true + }, + "is-absolute": { + "version": "https://registry.npmjs.org/is-absolute/-/is-absolute-0.2.6.tgz", + "integrity": "sha1-IN5p89uULvLYe5wto28XIjWxtes=", + "dev": true, + "requires": { + "is-relative": "https://registry.npmjs.org/is-relative/-/is-relative-0.2.1.tgz", + "is-windows": "https://registry.npmjs.org/is-windows/-/is-windows-0.2.0.tgz" + } + }, + "is-buffer": { + "version": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz", + "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=", + "dev": true + }, + "is-dotfile": { + "version": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.2.tgz", + "integrity": "sha1-LBMjg/ORmfjtwmjKAbmwB9IFzE0=", + "dev": true + }, + "is-equal-shallow": { + "version": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "dev": true, + "requires": { + "is-primitive": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz" + } + }, + "is-extendable": { + "version": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-glob": { + "version": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz" + } + }, + "is-number": { + "version": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "dev": true, + "requires": { + "kind-of": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.0.tgz" + } + }, + "is-posix-bracket": { + "version": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", + "dev": true + }, + "is-primitive": { + "version": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", + "dev": true + }, + "is-relative": { + "version": "https://registry.npmjs.org/is-relative/-/is-relative-0.2.1.tgz", + "integrity": "sha1-0n9MfVFtF1+2ENuEu+7yPDvJeqU=", + "dev": true, + "requires": { + "is-unc-path": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-0.1.2.tgz" + } + }, + "is-unc-path": { + "version": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-0.1.2.tgz", + "integrity": "sha1-arBTpyVzwQJQ/0FqOBTDUXivObk=", + "dev": true, + "requires": { + "unc-path-regex": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz" + } + }, + "is-utf8": { + "version": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, + "is-windows": { + "version": "https://registry.npmjs.org/is-windows/-/is-windows-0.2.0.tgz", + "integrity": "sha1-3hqm1j6indJIc3tp8f+LgALSEIw=", + "dev": true + }, + "isarray": { + "version": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "isexe": { + "version": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" + }, + "dependencies": { + "isarray": { + "version": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + } + } + }, + "jquery": { + "version": "https://registry.npmjs.org/jquery/-/jquery-3.2.1.tgz", + "integrity": "sha1-XE2d5lKvbNCncBVKYxu6ErAVx4c=" + }, + "jshint": { + "version": "2.9.5", + "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.9.5.tgz", + "integrity": "sha1-HnJSkVzmgbQIJ+4UJIxG006apiw=", + "dev": true, + "requires": { + "cli": "1.0.1", + "console-browserify": "1.1.0", + "exit": "0.1.2", + "htmlparser2": "3.8.3", + "lodash": "3.7.0", + "minimatch": "3.0.4", + "shelljs": "0.3.0", + "strip-json-comments": "1.0.4" + }, + "dependencies": { + "lodash": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.7.0.tgz", + "integrity": "sha1-Nni9irmVBXwHreg27S7wh9qBHUU=", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz" + } + } + } + }, + "jshint-stylish": { + "version": "https://registry.npmjs.org/jshint-stylish/-/jshint-stylish-2.2.1.tgz", + "integrity": "sha1-JCCCosA1rgP9gQROBXDMQgjPbmE=", + "dev": true, + "requires": { + "beeper": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz", + "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "log-symbols": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", + "plur": "https://registry.npmjs.org/plur/-/plur-2.1.2.tgz", + "string-length": "https://registry.npmjs.org/string-length/-/string-length-1.0.1.tgz", + "text-table": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" + } + }, + "kind-of": { + "version": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.0.tgz", + "integrity": "sha1-tYq+TVwEStM3JqjBUltIz4kb/wc=", + "dev": true, + "requires": { + "is-buffer": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz" + } + }, + "lazy-cache": { + "version": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "dev": true + }, + "liftoff": { + "version": "https://registry.npmjs.org/liftoff/-/liftoff-2.3.0.tgz", + "integrity": "sha1-qY8v9nGD2Lp8+soQVIvX/wVQs4U=", + "dev": true, + "requires": { + "extend": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz", + "findup-sync": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.4.3.tgz", + "fined": "https://registry.npmjs.org/fined/-/fined-1.0.2.tgz", + "flagged-respawn": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-0.3.2.tgz", + "lodash.isplainobject": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "lodash.isstring": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "lodash.mapvalues": "https://registry.npmjs.org/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz", + "rechoir": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "resolve": "https://registry.npmjs.org/resolve/-/resolve-1.3.3.tgz" + } + }, + "lodash": { + "version": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz", + "integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE=", + "dev": true + }, + "lodash._baseassign": { + "version": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz", + "integrity": "sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=", + "dev": true, + "requires": { + "lodash._basecopy": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", + "lodash.keys": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz" + } + }, + "lodash._basecopy": { + "version": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", + "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=", + "dev": true + }, + "lodash._basetostring": { + "version": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz", + "integrity": "sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U=", + "dev": true + }, + "lodash._basevalues": { + "version": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz", + "integrity": "sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc=", + "dev": true + }, + "lodash._bindcallback": { + "version": "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz", + "integrity": "sha1-5THCdkTPi1epnhftlbNcdIeJOS4=", + "dev": true + }, + "lodash._createassigner": { + "version": "https://registry.npmjs.org/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz", + "integrity": "sha1-g4pbri/aymOsIt7o4Z+k5taXCxE=", + "dev": true, + "requires": { + "lodash._bindcallback": "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz", + "lodash._isiterateecall": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", + "lodash.restparam": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz" + } + }, + "lodash._getnative": { + "version": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", + "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=", + "dev": true + }, + "lodash._isiterateecall": { + "version": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", + "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=", + "dev": true + }, + "lodash._reescape": { + "version": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz", + "integrity": "sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo=", + "dev": true + }, + "lodash._reevaluate": { + "version": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz", + "integrity": "sha1-WLx0xAZklTrgsSTYBpltrKQx4u0=", + "dev": true + }, + "lodash._reinterpolate": { + "version": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", + "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", + "dev": true + }, + "lodash._root": { + "version": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", + "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=", + "dev": true + }, + "lodash.assign": { + "version": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-3.2.0.tgz", + "integrity": "sha1-POnwI0tLIiPilrj6CsH+6OvKZPo=", + "dev": true, + "requires": { + "lodash._baseassign": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz", + "lodash._createassigner": "https://registry.npmjs.org/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz", + "lodash.keys": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz" + } + }, + "lodash.assignwith": { + "version": "https://registry.npmjs.org/lodash.assignwith/-/lodash.assignwith-4.2.0.tgz", + "integrity": "sha1-EnqX8CrcQXUalU0ksN4X4QDgOOs=", + "dev": true + }, + "lodash.clonedeep": { + "version": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", + "dev": true + }, + "lodash.escape": { + "version": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz", + "integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=", + "dev": true, + "requires": { + "lodash._root": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz" + } + }, + "lodash.isarguments": { + "version": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", + "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=", + "dev": true + }, + "lodash.isarray": { + "version": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", + "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=", + "dev": true + }, + "lodash.isempty": { + "version": "https://registry.npmjs.org/lodash.isempty/-/lodash.isempty-4.4.0.tgz", + "integrity": "sha1-b4bL7di+TsmHvpqvM8loTbGzHn4=", + "dev": true + }, + "lodash.isobject": { + "version": "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-3.0.2.tgz", + "integrity": "sha1-PI+41bW/S/kK4G4U8qUwpO2TXh0=", + "dev": true + }, + "lodash.isplainobject": { + "version": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=", + "dev": true + }, + "lodash.isstring": { + "version": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=", + "dev": true + }, + "lodash.keys": { + "version": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", + "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", + "dev": true, + "requires": { + "lodash._getnative": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", + "lodash.isarguments": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", + "lodash.isarray": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz" + } + }, + "lodash.mapvalues": { + "version": "https://registry.npmjs.org/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz", + "integrity": "sha1-G6+lAF3p3W9PJmaMMMo3IwzJaJw=", + "dev": true + }, + "lodash.merge": { + "version": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.0.tgz", + "integrity": "sha1-aYhLoUSsM/5plzemCG3v+t0PicU=", + "dev": true + }, + "lodash.pick": { + "version": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", + "integrity": "sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=", + "dev": true + }, + "lodash.restparam": { + "version": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", + "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=", + "dev": true + }, + "lodash.template": { + "version": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz", + "integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=", + "dev": true, + "requires": { + "lodash._basecopy": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", + "lodash._basetostring": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz", + "lodash._basevalues": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz", + "lodash._isiterateecall": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", + "lodash._reinterpolate": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", + "lodash.escape": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz", + "lodash.keys": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", + "lodash.restparam": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", + "lodash.templatesettings": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz" + } + }, + "lodash.templatesettings": { + "version": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz", + "integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=", + "dev": true, + "requires": { + "lodash._reinterpolate": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", + "lodash.escape": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz" + } + }, + "log-symbols": { + "version": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", + "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", + "dev": true, + "requires": { + "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz" + } + }, + "longest": { + "version": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "dev": true + }, + "lru-cache": { + "version": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", + "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=", + "dev": true + }, + "make-error": { + "version": "https://registry.npmjs.org/make-error/-/make-error-1.2.3.tgz", + "integrity": "sha1-bEQC33MuCXesb691SlB0s9Kx0Z0=", + "dev": true + }, + "make-error-cause": { + "version": "https://registry.npmjs.org/make-error-cause/-/make-error-cause-1.2.2.tgz", + "integrity": "sha1-3wOI/NCzeBbf8KX7gQiTl3fcvJ0=", + "dev": true, + "requires": { + "make-error": "https://registry.npmjs.org/make-error/-/make-error-1.2.3.tgz" + } + }, + "map-cache": { + "version": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "merge-stream": { + "version": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz", + "integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=", + "dev": true, + "requires": { + "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz" + }, + "dependencies": { + "isarray": { + "version": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz", + "integrity": "sha1-z3jsb0ptHrQ9JkiMrJfwQudLf8g=", + "dev": true, + "requires": { + "buffer-shims": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", + "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "process-nextick-args": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.0.tgz", + "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + } + }, + "string_decoder": { + "version": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.0.tgz", + "integrity": "sha1-8G9BFXtmTYYGn4S9vcmw2KsoFmc=", + "dev": true, + "requires": { + "buffer-shims": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz" + } + } + } + }, + "micromatch": { + "version": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "dev": true, + "requires": { + "arr-diff": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "array-unique": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "braces": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "expand-brackets": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "extglob": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "filename-regex": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.0.tgz", + "is-extglob": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "is-glob": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "kind-of": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.0.tgz", + "normalize-path": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "object.omit": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "parse-glob": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "regex-cache": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz" + } + }, + "minimatch": { + "version": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", + "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=", + "dev": true, + "requires": { + "brace-expansion": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz" + } + }, + "minimist": { + "version": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "mkdirp": { + "version": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" + }, + "dependencies": { + "minimist": { + "version": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + } + } + }, + "multipipe": { + "version": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz", + "integrity": "sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s=", + "dev": true, + "requires": { + "duplexer2": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz" + } + }, + "natives": { + "version": "https://registry.npmjs.org/natives/-/natives-1.1.0.tgz", + "integrity": "sha1-6f+EFBimsux6SV6TmYT3jxY+bjE=", + "dev": true + }, + "normalize-path": { + "version": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.0.1.tgz" + } + }, + "object-assign": { + "version": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", + "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", + "dev": true + }, + "object.omit": { + "version": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "dev": true, + "requires": { + "for-own": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "is-extendable": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz" + } + }, + "once": { + "version": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", + "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", + "dev": true, + "requires": { + "wrappy": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + } + }, + "orchestrator": { + "version": "https://registry.npmjs.org/orchestrator/-/orchestrator-0.3.8.tgz", + "integrity": "sha1-FOfp4nZPcxX7rBhOUGx6pt+UrX4=", + "dev": true, + "requires": { + "end-of-stream": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-0.1.5.tgz", + "sequencify": "https://registry.npmjs.org/sequencify/-/sequencify-0.0.7.tgz", + "stream-consume": "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.0.tgz" + } + }, + "ordered-read-streams": { + "version": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz", + "integrity": "sha1-/VZamvjrRHO6abbtijQ1LLVS8SY=", + "dev": true + }, + "os-homedir": { + "version": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, + "parse-filepath": { + "version": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.1.tgz", + "integrity": "sha1-FZ1hVdQ5BNFsEO9piRHaHpGWm3M=", + "dev": true, + "requires": { + "is-absolute": "https://registry.npmjs.org/is-absolute/-/is-absolute-0.2.6.tgz", + "map-cache": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "path-root": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz" + } + }, + "parse-glob": { + "version": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "dev": true, + "requires": { + "glob-base": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "is-dotfile": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.2.tgz", + "is-extglob": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "is-glob": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz" + } + }, + "parse-passwd": { + "version": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-parse": { + "version": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "dev": true + }, + "path-root": { + "version": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", + "dev": true, + "requires": { + "path-root-regex": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz" + } + }, + "path-root-regex": { + "version": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", + "dev": true + }, + "plur": { + "version": "https://registry.npmjs.org/plur/-/plur-2.1.2.tgz", + "integrity": "sha1-dIJFLBoPUI4+NE6uwxLJHCncZVo=", + "dev": true, + "requires": { + "irregular-plurals": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-1.2.0.tgz" + } + }, + "preserve": { + "version": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", + "dev": true + }, + "pretty-hrtime": { + "version": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", + "dev": true + }, + "process-nextick-args": { + "version": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", + "dev": true + }, + "randomatic": { + "version": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.6.tgz", + "integrity": "sha1-EQ3Kv/OX6dz/fAeJzMCkmt8exbs=", + "dev": true, + "requires": { + "is-number": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "kind-of": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.0.tgz" + } + }, + "rcfinder": { + "version": "https://registry.npmjs.org/rcfinder/-/rcfinder-0.1.9.tgz", + "integrity": "sha1-8+gPOH3fmugK4wpBADKWQuroERU=", + "dev": true, + "requires": { + "lodash.clonedeep": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz" + } + }, + "rcloader": { + "version": "https://registry.npmjs.org/rcloader/-/rcloader-0.2.2.tgz", + "integrity": "sha1-WNIpi0YtC5v9ITPSoex0+9cFxxc=", + "dev": true, + "requires": { + "lodash.assign": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", + "lodash.isobject": "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-3.0.2.tgz", + "lodash.merge": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.0.tgz", + "rcfinder": "https://registry.npmjs.org/rcfinder/-/rcfinder-0.1.9.tgz" + }, + "dependencies": { + "lodash.assign": { + "version": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", + "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=", + "dev": true + } + } + }, + "readable-stream": { + "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true, + "requires": { + "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "isarray": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" + } + }, + "rechoir": { + "version": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "dev": true, + "requires": { + "resolve": "https://registry.npmjs.org/resolve/-/resolve-1.3.3.tgz" + } + }, + "regex-cache": { + "version": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz", + "integrity": "sha1-mxpsNdTQ3871cRrmUejp09cRQUU=", + "dev": true, + "requires": { + "is-equal-shallow": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "is-primitive": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz" + } + }, + "remove-trailing-separator": { + "version": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.0.1.tgz", + "integrity": "sha1-YV67lq9VlVLUv0BXyENtSGq2PMQ=", + "dev": true + }, + "repeat-element": { + "version": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "dev": true + }, + "repeat-string": { + "version": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "replace-ext": { + "version": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", + "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=", + "dev": true + }, + "resolve": { + "version": "https://registry.npmjs.org/resolve/-/resolve-1.3.3.tgz", + "integrity": "sha1-ZVkHw0aahoDcLeOidaj91paR8OU=", + "dev": true, + "requires": { + "path-parse": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz" + } + }, + "resolve-dir": { + "version": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-0.1.1.tgz", + "integrity": "sha1-shklmlYC+sXFxJatiUpujMQwJh4=", + "dev": true, + "requires": { + "expand-tilde": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-1.2.2.tgz", + "global-modules": "https://registry.npmjs.org/global-modules/-/global-modules-0.2.3.tgz" + } + }, + "right-align": { + "version": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "dev": true, + "requires": { + "align-text": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz" + } + }, + "semver": { + "version": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", + "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=", + "dev": true + }, + "sequencify": { + "version": "https://registry.npmjs.org/sequencify/-/sequencify-0.0.7.tgz", + "integrity": "sha1-kM/xnQLgcCf9dn9erT57ldHnOAw=", + "dev": true + }, + "shelljs": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz", + "integrity": "sha1-NZbmMHp4FUT1kfN9phg2DzHbV7E=", + "dev": true + }, + "sigmund": { + "version": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", + "dev": true + }, + "source-map": { + "version": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", + "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", + "dev": true + }, + "sparkles": { + "version": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.0.tgz", + "integrity": "sha1-Gsu/tZJDbRC76PeFt8xvgoFQEsM=", + "dev": true + }, + "stream-combiner2": { + "version": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", + "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", + "dev": true, + "requires": { + "duplexer2": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz" + }, + "dependencies": { + "duplexer2": { + "version": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", + "dev": true, + "requires": { + "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz" + } + }, + "isarray": { + "version": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz", + "integrity": "sha1-z3jsb0ptHrQ9JkiMrJfwQudLf8g=", + "dev": true, + "requires": { + "buffer-shims": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", + "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "process-nextick-args": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.0.tgz", + "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + } + }, + "string_decoder": { + "version": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.0.tgz", + "integrity": "sha1-8G9BFXtmTYYGn4S9vcmw2KsoFmc=", + "dev": true, + "requires": { + "buffer-shims": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz" + } + } + } + }, + "stream-consume": { + "version": "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.0.tgz", + "integrity": "sha1-pB6tGm1ggc63n2WwYZAbbY89HQ8=", + "dev": true + }, + "stream-shift": { + "version": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", + "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", + "dev": true + }, + "string-length": { + "version": "https://registry.npmjs.org/string-length/-/string-length-1.0.1.tgz", + "integrity": "sha1-VpcPscOFWOnnC3KL894mmsRa36w=", + "dev": true, + "requires": { + "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz" + } + }, + "string_decoder": { + "version": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "strip-ansi": { + "version": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz" + } + }, + "strip-bom": { + "version": "https://registry.npmjs.org/strip-bom/-/strip-bom-1.0.0.tgz", + "integrity": "sha1-hbiGLzhEtabV7IRnqTWYFzo295Q=", + "dev": true, + "requires": { + "first-chunk-stream": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz", + "is-utf8": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz" + } + }, + "strip-json-comments": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz", + "integrity": "sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=", + "dev": true + }, + "supports-color": { + "version": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "ternary-stream": { + "version": "https://registry.npmjs.org/ternary-stream/-/ternary-stream-2.0.1.tgz", + "integrity": "sha1-Bk5Im0tb9gumpre8fy9cJ07Pgmk=", + "dev": true, + "requires": { + "duplexify": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.0.tgz", + "fork-stream": "https://registry.npmjs.org/fork-stream/-/fork-stream-0.0.4.tgz", + "merge-stream": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz", + "through2": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz" + } + }, + "text-table": { + "version": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "through2": { + "version": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", + "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "dev": true, + "requires": { + "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz", + "xtend": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" + }, + "dependencies": { + "isarray": { + "version": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz", + "integrity": "sha1-z3jsb0ptHrQ9JkiMrJfwQudLf8g=", + "dev": true, + "requires": { + "buffer-shims": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", + "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "process-nextick-args": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.0.tgz", + "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + } + }, + "string_decoder": { + "version": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.0.tgz", + "integrity": "sha1-8G9BFXtmTYYGn4S9vcmw2KsoFmc=", + "dev": true, + "requires": { + "buffer-shims": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz" + } + } + } + }, + "tildify": { + "version": "https://registry.npmjs.org/tildify/-/tildify-1.2.0.tgz", + "integrity": "sha1-3OwD9V3Km3qj5bBPIYF+tW5jWIo=", + "dev": true, + "requires": { + "os-homedir": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz" + } + }, + "time-stamp": { + "version": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.0.1.tgz", + "integrity": "sha1-n0vSNVnJNllm8zAtu6KwfGuZsVE=", + "dev": true + }, + "uglify-js": { + "version": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.22.tgz", + "integrity": "sha1-1Uk0d4qNoUkD+imjJvskwKtRoaA=", + "dev": true, + "requires": { + "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", + "uglify-to-browserify": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "yargs": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz" + } + }, + "uglify-save-license": { + "version": "https://registry.npmjs.org/uglify-save-license/-/uglify-save-license-0.4.1.tgz", + "integrity": "sha1-lXJsF8xv0XHDYX479NjYKqjEzOE=", + "dev": true + }, + "uglify-to-browserify": { + "version": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "dev": true, + "optional": true + }, + "unc-path-regex": { + "version": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", + "dev": true + }, + "unique-stream": { + "version": "https://registry.npmjs.org/unique-stream/-/unique-stream-1.0.0.tgz", + "integrity": "sha1-1ZpKdUJ0R9mqbJHnAmP40mpLEEs=", + "dev": true + }, + "user-home": { + "version": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", + "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", + "dev": true + }, + "util-deprecate": { + "version": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "util-extend": { + "version": "https://registry.npmjs.org/util-extend/-/util-extend-1.0.3.tgz", + "integrity": "sha1-p8IW0mdUUWljeztu3GypEZ4v+T8=", + "dev": true + }, + "v8flags": { + "version": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", + "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", + "dev": true, + "requires": { + "user-home": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz" + } + }, + "vinyl": { + "version": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz", + "integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=", + "dev": true, + "requires": { + "clone": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz", + "clone-stats": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", + "replace-ext": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz" + } + }, + "vinyl-fs": { + "version": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-0.3.14.tgz", + "integrity": "sha1-mmhRzhysHBzqX+hsCTHWIMLPqeY=", + "dev": true, + "requires": { + "defaults": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "glob-stream": "https://registry.npmjs.org/glob-stream/-/glob-stream-3.1.18.tgz", + "glob-watcher": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-0.0.6.tgz", + "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz", + "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "strip-bom": "https://registry.npmjs.org/strip-bom/-/strip-bom-1.0.0.tgz", + "through2": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "vinyl": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz" + }, + "dependencies": { + "clone": { + "version": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", + "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=", + "dev": true + }, + "readable-stream": { + "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "isarray": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" + } + }, + "through2": { + "version": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "dev": true, + "requires": { + "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "xtend": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" + } + }, + "vinyl": { + "version": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz", + "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=", + "dev": true, + "requires": { + "clone": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", + "clone-stats": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz" + } + } + } + }, + "vinyl-sourcemaps-apply": { + "version": "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz", + "integrity": "sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU=", + "dev": true, + "requires": { + "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz" + } + }, + "which": { + "version": "https://registry.npmjs.org/which/-/which-1.2.14.tgz", + "integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=", + "dev": true, + "requires": { + "isexe": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" + } + }, + "window-size": { + "version": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "dev": true + }, + "wordwrap": { + "version": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "dev": true + }, + "wrappy": { + "version": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "xtend": { + "version": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true + }, + "yargs": { + "version": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "dev": true, + "requires": { + "camelcase": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "cliui": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "decamelize": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "window-size": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz" + } + } + } +} diff --git a/package.json b/package.json index 5949ff8..e3a65d2 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "jquery-lazy", "title": "jQuery & Zepto Lazy - Delayed Content, Image and Background Loader", - "version": "1.7.7", + "version": "1.7.8", "description": "Lazy is a fast, feature-rich and lightweight delayed content loading plugin for jQuery and Zepto. It's designed to speed up page loading times and decrease traffic to your users by only loading the content in view.", "main": "jquery.lazy.js", "homepage": "http://jquery.eisbehr.de/lazy", diff --git a/plugins/README.md b/plugins/README.md index 9979fbf..f851e6a 100644 --- a/plugins/README.md +++ b/plugins/README.md @@ -100,14 +100,14 @@ For more examples, take a look at the [existing plugins](https://github.com/eisb ## AJAX Loader -**Names:** `ajax`, `get`, `post` +**Names:** `ajax`, `get`, `post`, `put` **Parameters:** `data-src`, `data-method`, `data-type` **Default for:** - The AJAX loader can receive data from a given url and paste the response to the inner html of the element. This is useful, when you want do load a bigger amount of content. Use `ajax` as the loader name by default. -But there are even some shorthand names for specific request types `GET` and `POST` too. +But there are even some shorthand names for specific request types `GET`, `POST` and `PUT` too. ```HTML
@@ -120,6 +120,23 @@ But there are even some shorthand names for specific request types `GET` and `PO
+ + +
+``` + +On `POST` and `PUT` requests, the callback `ajaxCreateData` will be executed before every AJAX call. +If used, the callback function should return the value for the `data` parameter of jQuery's AJAX function. +```HTML +
+``` + +```JS +$('div').Lazy({ + ajaxCreateData: function(element) { + return {name: element.data('value')}; + } +}); ``` diff --git a/plugins/jquery.lazy.ajax.js b/plugins/jquery.lazy.ajax.js index 519c454..2c17534 100644 --- a/plugins/jquery.lazy.ajax.js +++ b/plugins/jquery.lazy.ajax.js @@ -1,8 +1,8 @@ /*! - * jQuery & Zepto Lazy - AJAX Plugin - v1.2 + * jQuery & Zepto Lazy - AJAX Plugin - v1.3 * http://jquery.eisbehr.de/lazy/ * - * Copyright 2012 - 2017, Daniel 'Eisbehr' Kern + * Copyright 2012 - 2018, Daniel 'Eisbehr' Kern * * Dual licensed under the MIT and GPL-2.0 licenses: * http://www.opensource.org/licenses/mit-license.php @@ -10,21 +10,27 @@ */ ;(function($) { // load data by ajax request and pass them to elements inner html, like: - //
- $.lazy("ajax", function(element, response) { - ajaxRequest(this, element, response, element.attr("data-method")); + //
+ $.lazy('ajax', function(element, response) { + ajaxRequest(this, element, response, element.attr('data-method')); }); // load data by ajax get request and pass them to elements inner html, like: - //
- $.lazy("get", function(element, response) { - ajaxRequest(this, element, response, "get"); + //
+ $.lazy('get', function(element, response) { + ajaxRequest(this, element, response, 'GET'); }); // load data by ajax post request and pass them to elements inner html, like: - //
- $.lazy("post", function(element, response) { - ajaxRequest(this, element, response, "post"); + //
+ $.lazy('post', function(element, response) { + ajaxRequest(this, element, response, 'POST'); + }); + + // load data by ajax put request and pass them to elements inner html, like: + //
+ $.lazy('put', function(element, response) { + ajaxRequest(this, element, response, 'PUT'); }); /** @@ -35,10 +41,18 @@ * @param {string} [method] */ function ajaxRequest(instance, element, response, method) { + method = method.toUpperCase(); + + var data; + if ((method === 'POST' || method === 'PUT') && instance.config('ajaxCreateData')) { + data = instance.config('ajaxCreateData').apply(instance, [element]); + } + $.ajax({ - url: element.attr("data-src"), - type: method || "get", - dataType: element.attr("data-type") || "html", + url: element.attr('data-src'), + type: method === 'POST' || method === 'PUT' ? method : 'GET', + data: data, + dataType: element.attr('data-type') || 'html', /** * success callback @@ -54,8 +68,9 @@ response(true); // remove attributes - if( instance.config("removeAttribute") ) - element.removeAttr("data-src data-method data-type"); + if (instance.config('removeAttribute')) { + element.removeAttr('data-src data-method data-type'); + } }, /** diff --git a/plugins/jquery.lazy.ajax.min.js b/plugins/jquery.lazy.ajax.min.js index 720f4ee..dbdc7f5 100644 --- a/plugins/jquery.lazy.ajax.min.js +++ b/plugins/jquery.lazy.ajax.min.js @@ -1,2 +1,2 @@ -/*! jQuery & Zepto Lazy - AJAX Plugin v1.2 - http://jquery.eisbehr.de/lazy - MIT&GPL-2.0 license - Copyright 2012-2017 Daniel 'Eisbehr' Kern */ -!function(t){function a(a,e,o,n){t.ajax({url:e.attr("data-src"),type:n||"get",dataType:e.attr("data-type")||"html",success:function(t){e.html(t),o(!0),a.config("removeAttribute")&&e.removeAttr("data-src data-method data-type")},error:function(){o(!1)}})}t.lazy("ajax",function(t,e){a(this,t,e,t.attr("data-method"))}),t.lazy("get",function(t,e){a(this,t,e,"get")}),t.lazy("post",function(t,e){a(this,t,e,"post")})}(window.jQuery||window.Zepto); \ No newline at end of file +/*! jQuery & Zepto Lazy - AJAX Plugin v1.3 - http://jquery.eisbehr.de/lazy - MIT&GPL-2.0 license - Copyright 2012-2018 Daniel 'Eisbehr' Kern */ +!function(t){function a(a,e,n,o){o=o.toUpperCase();var i;"POST"!==o&&"PUT"!==o||!a.config("ajaxCreateData")||(i=a.config("ajaxCreateData").apply(a,[e])),t.ajax({url:e.attr("data-src"),type:"POST"===o||"PUT"===o?o:"GET",data:i,dataType:e.attr("data-type")||"html",success:function(t){e.html(t),n(!0),a.config("removeAttribute")&&e.removeAttr("data-src data-method data-type")},error:function(){n(!1)}})}t.lazy("ajax",function(t,e){a(this,t,e,t.attr("data-method"))}),t.lazy("get",function(t,e){a(this,t,e,"GET")}),t.lazy("post",function(t,e){a(this,t,e,"POST")}),t.lazy("put",function(t,e){a(this,t,e,"PUT")})}(window.jQuery||window.Zepto); \ No newline at end of file diff --git a/plugins/jquery.lazy.av.js b/plugins/jquery.lazy.av.js index 1229103..2556be2 100644 --- a/plugins/jquery.lazy.av.js +++ b/plugins/jquery.lazy.av.js @@ -2,7 +2,7 @@ * jQuery & Zepto Lazy - AV Plugin - v1.4 * http://jquery.eisbehr.de/lazy/ * - * Copyright 2012 - 2017, Daniel 'Eisbehr' Kern + * Copyright 2012 - 2018, Daniel 'Eisbehr' Kern * * Dual licensed under the MIT and GPL-2.0 licenses: * http://www.opensource.org/licenses/mit-license.php @@ -30,30 +30,32 @@ // // // - $.lazy(["av", "audio", "video"], ["audio", "video"], function(element, response) { + $.lazy(['av', 'audio', 'video'], ['audio', 'video'], function(element, response) { var elementTagName = element[0].tagName.toLowerCase(); - if( elementTagName === "audio" || elementTagName === "video" ) { - var srcAttr = "data-src", + if (elementTagName === 'audio' || elementTagName === 'video') { + var srcAttr = 'data-src', sources = element.find(srcAttr), - tracks = element.find("data-track"), + tracks = element.find('data-track'), sourcesInError = 0, // create on error callback for sources onError = function() { - if( ++sourcesInError === sources.length ) + if (++sourcesInError === sources.length) { response(false); + } }, // create callback to handle a source or track entry handleSource = function() { var source = $(this), type = source[0].tagName.toLowerCase(), - attributes = source.prop("attributes"), - target = $(type === srcAttr ? "" : ""); + attributes = source.prop('attributes'), + target = $(type === srcAttr ? '' : ''); - if( type === srcAttr ) - target.one("error", onError); + if (type === srcAttr) { + target.one('error', onError); + } $.each(attributes, function(index, attribute) { target.attr(attribute.name, attribute.value); @@ -63,36 +65,38 @@ }; // create event for successfull load - element.one("loadedmetadata", function() { + element.one('loadedmetadata', function() { response(true); }) // remove default callbacks to ignore loading poster image - .off("load error") + .off('load error') // load poster image - .attr("poster", element.attr("data-poster")); + .attr('poster', element.attr('data-poster')); // load by child tags - if( sources.length ) + if (sources.length) { sources.each(handleSource); + } // load by attribute - else if( element.attr(srcAttr) ) { + else if (element.attr(srcAttr)) { // split for every entry by comma - $.each(element.attr(srcAttr).split(","), function(index, value) { + $.each(element.attr(srcAttr).split(','), function(index, value) { // split again for file and file type - var parts = value.split("|"); + var parts = value.split('|'); // create a source entry - element.append($("") - .one("error", onError) + element.append($('') + .one('error', onError) .attr({src: parts[0].trim(), type: parts[1].trim()})); }); // remove now obsolete attribute - if( this.config("removeAttribute") ) + if (this.config('removeAttribute')) { element.removeAttr(srcAttr); + } } else { @@ -102,8 +106,9 @@ } // load optional tracks - if( tracks.length ) + if (tracks.length) { tracks.each(handleSource); + } } else { diff --git a/plugins/jquery.lazy.av.min.js b/plugins/jquery.lazy.av.min.js index 4f21ae0..5f9e878 100644 --- a/plugins/jquery.lazy.av.min.js +++ b/plugins/jquery.lazy.av.min.js @@ -1,2 +1,2 @@ -/*! jQuery & Zepto Lazy - AV Plugin v1.4 - http://jquery.eisbehr.de/lazy - MIT&GPL-2.0 license - Copyright 2012-2017 Daniel 'Eisbehr' Kern */ +/*! jQuery & Zepto Lazy - AV Plugin v1.4 - http://jquery.eisbehr.de/lazy - MIT&GPL-2.0 license - Copyright 2012-2018 Daniel 'Eisbehr' Kern */ !function(t){t.lazy(["av","audio","video"],["audio","video"],function(a,e){var r=a[0].tagName.toLowerCase();if("audio"===r||"video"===r){var o=a.find("data-src"),i=a.find("data-track"),n=0,c=function(){++n===o.length&&e(!1)},d=function(){var a=t(this),e=a[0].tagName.toLowerCase(),r=a.prop("attributes"),o=t("data-src"===e?"":"");"data-src"===e&&o.one("error",c),t.each(r,function(t,a){o.attr(a.name,a.value)}),a.replaceWith(o)};a.one("loadedmetadata",function(){e(!0)}).off("load error").attr("poster",a.attr("data-poster")),o.length?o.each(d):a.attr("data-src")?(t.each(a.attr("data-src").split(","),function(e,r){var o=r.split("|");a.append(t("").one("error",c).attr({src:o[0].trim(),type:o[1].trim()}))}),this.config("removeAttribute")&&a.removeAttr("data-src")):e(!1),i.length&&i.each(d)}else e(!1)})}(window.jQuery||window.Zepto); \ No newline at end of file diff --git a/plugins/jquery.lazy.iframe.js b/plugins/jquery.lazy.iframe.js index 7dba729..1cf898d 100644 --- a/plugins/jquery.lazy.iframe.js +++ b/plugins/jquery.lazy.iframe.js @@ -2,7 +2,7 @@ * jQuery & Zepto Lazy - iFrame Plugin - v1.5 * http://jquery.eisbehr.de/lazy/ * - * Copyright 2012 - 2017, Daniel 'Eisbehr' Kern + * Copyright 2012 - 2018, Daniel 'Eisbehr' Kern * * Dual licensed under the MIT and GPL-2.0 licenses: * http://www.opensource.org/licenses/mit-license.php @@ -14,29 +14,30 @@ // // enable content error check with: // - $.lazy(["frame", "iframe"], "iframe", function(element, response) { + $.lazy(['frame', 'iframe'], 'iframe', function(element, response) { var instance = this; - if( element[0].tagName.toLowerCase() === "iframe" ) { - var srcAttr = "data-src", - errorDetectAttr = "data-error-detect", + if (element[0].tagName.toLowerCase() === 'iframe') { + var srcAttr = 'data-src', + errorDetectAttr = 'data-error-detect', errorDetect = element.attr(errorDetectAttr); // default way, just replace the 'src' attribute - if( errorDetect !== "true" && errorDetect !== "1" ) { + if (errorDetect !== 'true' && errorDetect !== '1') { // set iframe source - element.attr("src", element.attr(srcAttr)); + element.attr('src', element.attr(srcAttr)); // remove attributes - if( instance.config("removeAttribute") ) - element.removeAttr(srcAttr + " " + errorDetectAttr); + if (instance.config('removeAttribute')) { + element.removeAttr(srcAttr + ' ' + errorDetectAttr); + } } // extended way, even check if the document is available else { $.ajax({ url: element.attr(srcAttr), - dataType: "html", + dataType: 'html', crossDomain: true, xhrFields: {withCredentials: true}, @@ -51,11 +52,12 @@ element.html(content) // change iframe src - .attr("src", element.attr(srcAttr)); + .attr('src', element.attr(srcAttr)); // remove attributes - if( instance.config("removeAttribute") ) - element.removeAttr(srcAttr + " " + errorDetectAttr); + if (instance.config('removeAttribute')) { + element.removeAttr(srcAttr + ' ' + errorDetectAttr); + } }, /** diff --git a/plugins/jquery.lazy.iframe.min.js b/plugins/jquery.lazy.iframe.min.js index b433364..d3f7bac 100644 --- a/plugins/jquery.lazy.iframe.min.js +++ b/plugins/jquery.lazy.iframe.min.js @@ -1,2 +1,2 @@ -/*! jQuery & Zepto Lazy - iFrame Plugin v1.5 - http://jquery.eisbehr.de/lazy - MIT&GPL-2.0 license - Copyright 2012-2017 Daniel 'Eisbehr' Kern */ +/*! jQuery & Zepto Lazy - iFrame Plugin v1.5 - http://jquery.eisbehr.de/lazy - MIT&GPL-2.0 license - Copyright 2012-2018 Daniel 'Eisbehr' Kern */ !function(t){t.lazy(["frame","iframe"],"iframe",function(r,a){var e=this;if("iframe"===r[0].tagName.toLowerCase()){var o=r.attr("data-error-detect");"true"!==o&&"1"!==o?(r.attr("src",r.attr("data-src")),e.config("removeAttribute")&&r.removeAttr("data-src data-error-detect")):t.ajax({url:r.attr("data-src"),dataType:"html",crossDomain:!0,xhrFields:{withCredentials:!0},success:function(t){r.html(t).attr("src",r.attr("data-src")),e.config("removeAttribute")&&r.removeAttr("data-src data-error-detect")},error:function(){a(!1)}})}else a(!1)})}(window.jQuery||window.Zepto); \ No newline at end of file diff --git a/plugins/jquery.lazy.noop.js b/plugins/jquery.lazy.noop.js index e2b02a2..fe97263 100644 --- a/plugins/jquery.lazy.noop.js +++ b/plugins/jquery.lazy.noop.js @@ -2,7 +2,7 @@ * jQuery & Zepto Lazy - NOOP Plugin - v1.2 * http://jquery.eisbehr.de/lazy/ * - * Copyright 2012 - 2017, Daniel 'Eisbehr' Kern + * Copyright 2012 - 2018, Daniel 'Eisbehr' Kern * * Dual licensed under the MIT and GPL-2.0 licenses: * http://www.opensource.org/licenses/mit-license.php @@ -14,16 +14,16 @@ //
// does not do anything, just a 'no-operation' helper ;) - $.lazy("noop", function() {}); + $.lazy('noop', function() {}); // does nothing, but response a successfull loading - $.lazy("noop-success", function(element, response) { + $.lazy('noop-success', function(element, response) { // use response function for Zepto response(true); }); // does nothing, but response a failed loading - $.lazy("noop-error", function(element, response) { + $.lazy('noop-error', function(element, response) { // use response function for Zepto response(false); }); diff --git a/plugins/jquery.lazy.noop.min.js b/plugins/jquery.lazy.noop.min.js index e783aeb..39f4b5a 100644 --- a/plugins/jquery.lazy.noop.min.js +++ b/plugins/jquery.lazy.noop.min.js @@ -1,2 +1,2 @@ -/*! jQuery & Zepto Lazy - NOOP Plugin v1.2 - http://jquery.eisbehr.de/lazy - MIT&GPL-2.0 license - Copyright 2012-2017 Daniel 'Eisbehr' Kern */ +/*! jQuery & Zepto Lazy - NOOP Plugin v1.2 - http://jquery.eisbehr.de/lazy - MIT&GPL-2.0 license - Copyright 2012-2018 Daniel 'Eisbehr' Kern */ !function(o){o.lazy("noop",function(){}),o.lazy("noop-success",function(o,n){n(!0)}),o.lazy("noop-error",function(o,n){n(!1)})}(window.jQuery||window.Zepto); \ No newline at end of file diff --git a/plugins/jquery.lazy.picture.js b/plugins/jquery.lazy.picture.js index 67bc9be..81c225f 100644 --- a/plugins/jquery.lazy.picture.js +++ b/plugins/jquery.lazy.picture.js @@ -2,18 +2,18 @@ * jQuery & Zepto Lazy - Picture Plugin - v1.3 * http://jquery.eisbehr.de/lazy/ * - * Copyright 2012 - 2017, Daniel 'Eisbehr' Kern + * Copyright 2012 - 2018, Daniel 'Eisbehr' Kern * * Dual licensed under the MIT and GPL-2.0 licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl-2.0.html */ ;(function($) { - var srcAttr = "data-src", - srcsetAttr = "data-srcset", - mediaAttr = "data-media", - sizesAttr = "data-sizes", - typeAttr = "data-type"; + var srcAttr = 'data-src', + srcsetAttr = 'data-srcset', + mediaAttr = 'data-media', + sizesAttr = 'data-sizes', + typeAttr = 'data-type'; // loads picture elements like: // @@ -30,45 +30,46 @@ // // or just with attributes in one line: // - $.lazy(["pic", "picture"], ["picture"], function(element, response) { + $.lazy(['pic', 'picture'], ['picture'], function(element, response) { var elementTagName = element[0].tagName.toLowerCase(); - if( elementTagName === "picture" ) { + if (elementTagName === 'picture') { var sources = element.find(srcAttr), - image = element.find("data-img"), - imageBase = this.config("imageBase") || ""; + image = element.find('data-img'), + imageBase = this.config('imageBase') || ''; // handle as child elements - if( sources.length ) { + if (sources.length) { sources.each(function() { - renameElementTag($(this), "source", imageBase); + renameElementTag($(this), 'source', imageBase); }); // create img tag from child - if( image.length === 1 ) { - image = renameElementTag(image, "img", imageBase); + if (image.length === 1) { + image = renameElementTag(image, 'img', imageBase); // bind event callbacks to new image tag - image.on("load", function() { + image.on('load', function() { response(true); - }).on("error", function() { + }).on('error', function() { response(false); }); - image.attr("src", image.attr(srcAttr)); + image.attr('src', image.attr(srcAttr)); - if( this.config("removeAttribute") ) { + if (this.config('removeAttribute')) { image.removeAttr(srcAttr); } } // create img tag from attribute - else if( element.attr(srcAttr) ) { + else if (element.attr(srcAttr)) { // create image tag createImageObject(element, imageBase + element.attr(srcAttr), response); - if( this.config("removeAttribute") ) + if (this.config('removeAttribute')) { element.removeAttr(srcAttr); + } } // pass error state @@ -81,7 +82,7 @@ // handle as attributes else if( element.attr(srcsetAttr) ) { // create source elements before img tag - $("").attr({ + $('').attr({ media: element.attr(mediaAttr), sizes: element.attr(sizesAttr), type: element.attr(typeAttr), @@ -93,8 +94,8 @@ createImageObject(element, imageBase + element.attr(srcAttr), response); // remove attributes from parent picture element - if( this.config("removeAttribute") ) { - element.removeAttr(srcAttr + " " + srcsetAttr + " " + mediaAttr + " " + sizesAttr + " " + typeAttr); + if (this.config('removeAttribute')) { + element.removeAttr(srcAttr + ' ' + srcsetAttr + ' ' + mediaAttr + ' ' + sizesAttr + ' ' + typeAttr); } } @@ -120,12 +121,12 @@ * @return {jQuery|object} */ function renameElementTag(element, toType, imageBase) { - var attributes = element.prop("attributes"), - target = $("<" + toType + ">"); + var attributes = element.prop('attributes'), + target = $('<' + toType + '>'); $.each(attributes, function(index, attribute) { // build srcset with image base - if( attribute.name === "srcset" || attribute.name === srcAttr ) { + if (attribute.name === 'srcset' || attribute.name === srcAttr) { attribute.value = getCorrectedSrcSet(attribute.value, imageBase); } @@ -145,13 +146,13 @@ */ function createImageObject(parent, src, response) { // create image tag - var imageObj = $("") + var imageObj = $('') // create image tag an bind callbacks for correct response - .one("load", function() { + .one('load', function() { response(true); }) - .one("error", function() { + .one('error', function() { response(false); }) @@ -159,7 +160,7 @@ .appendTo(parent) // set src attribute at last to prevent early kick-in - .attr("src", src); + .attr('src', src); // call after load even on cached image imageObj.complete && imageObj.load(); // jshint ignore : line @@ -172,13 +173,13 @@ * @returns {string} */ function getCorrectedSrcSet(srcset, imageBase) { - if( imageBase ) { + if (imageBase) { // trim, remove unnecessary spaces and split entries - var entries = srcset.split(","); - srcset = ""; + var entries = srcset.split(','); + srcset = ''; - for( var i = 0, l = entries.length; i < l; i++ ) { - srcset += imageBase + entries[i].trim() + (i !== l - 1 ? "," : ""); + for (var i = 0, l = entries.length; i < l; i++) { + srcset += imageBase + entries[i].trim() + (i !== l - 1 ? ',' : ''); } } diff --git a/plugins/jquery.lazy.picture.min.js b/plugins/jquery.lazy.picture.min.js index 4705b3e..b1152be 100644 --- a/plugins/jquery.lazy.picture.min.js +++ b/plugins/jquery.lazy.picture.min.js @@ -1,2 +1,2 @@ -/*! jQuery & Zepto Lazy - Picture Plugin v1.3 - http://jquery.eisbehr.de/lazy - MIT&GPL-2.0 license - Copyright 2012-2017 Daniel 'Eisbehr' Kern */ +/*! jQuery & Zepto Lazy - Picture Plugin v1.3 - http://jquery.eisbehr.de/lazy - MIT&GPL-2.0 license - Copyright 2012-2018 Daniel 'Eisbehr' Kern */ !function(t){function e(e,a,n){var o=e.prop("attributes"),c=t("<"+a+">");return t.each(o,function(t,e){"srcset"!==e.name&&e.name!==i||(e.value=r(e.value,n)),c.attr(e.name,e.value)}),e.replaceWith(c),c}function a(e,a,r){var i=t("").one("load",function(){r(!0)}).one("error",function(){r(!1)}).appendTo(e).attr("src",a);i.complete&&i.load()}function r(t,e){if(e){var a=t.split(",");t="";for(var r=0,i=a.length;r").attr({media:n.attr("data-media"),sizes:n.attr("data-sizes"),type:n.attr("data-type"),srcset:r(n.attr("data-srcset"),u)}).appendTo(n),a(n,u+n.attr(i),o),this.config("removeAttribute")&&n.removeAttr(i+" data-srcset data-media data-sizes data-type")):o(!1)}else o(!1)})}(window.jQuery||window.Zepto); \ No newline at end of file diff --git a/plugins/jquery.lazy.script.js b/plugins/jquery.lazy.script.js index 9d6c23b..c732301 100644 --- a/plugins/jquery.lazy.script.js +++ b/plugins/jquery.lazy.script.js @@ -2,7 +2,7 @@ * jQuery & Zepto Lazy - Script Plugin - v1.2 * http://jquery.eisbehr.de/lazy/ * - * Copyright 2012 - 2017, Daniel 'Eisbehr' Kern + * Copyright 2012 - 2018, Daniel 'Eisbehr' Kern * * Dual licensed under the MIT and GPL-2.0 licenses: * http://www.opensource.org/licenses/mit-license.php @@ -11,13 +11,14 @@ ;(function($) { // loads javascript files for script tags, like: // - $.lazy(["js", "javascript", "script"], "script", function(element, response) { - if( element[0].tagName.toLowerCase() == "script" ) { - element.attr("src", element.attr("data-src")); + $.lazy(['js', 'javascript', 'script'], 'script', function(element, response) { + if (element[0].tagName.toLowerCase() === 'script') { + element.attr('src', element.attr('data-src')); // remove attribute - if( this.config("removeAttribute") ) - element.removeAttr("data-src"); + if (this.config('removeAttribute')) { + element.removeAttr('data-src'); + } } else { // use response function for Zepto diff --git a/plugins/jquery.lazy.script.min.js b/plugins/jquery.lazy.script.min.js index c840456..d66597a 100644 --- a/plugins/jquery.lazy.script.min.js +++ b/plugins/jquery.lazy.script.min.js @@ -1,2 +1,2 @@ -/*! jQuery & Zepto Lazy - Script Plugin v1.2 - http://jquery.eisbehr.de/lazy - MIT&GPL-2.0 license - Copyright 2012-2017 Daniel 'Eisbehr' Kern */ -!function(t){t.lazy(["js","javascript","script"],"script",function(t,r){"script"==t[0].tagName.toLowerCase()?(t.attr("src",t.attr("data-src")),this.config("removeAttribute")&&t.removeAttr("data-src")):r(!1)})}(window.jQuery||window.Zepto); \ No newline at end of file +/*! jQuery & Zepto Lazy - Script Plugin v1.2 - http://jquery.eisbehr.de/lazy - MIT&GPL-2.0 license - Copyright 2012-2018 Daniel 'Eisbehr' Kern */ +!function(t){t.lazy(["js","javascript","script"],"script",function(t,r){"script"===t[0].tagName.toLowerCase()?(t.attr("src",t.attr("data-src")),this.config("removeAttribute")&&t.removeAttr("data-src")):r(!1)})}(window.jQuery||window.Zepto); \ No newline at end of file diff --git a/plugins/jquery.lazy.vimeo.js b/plugins/jquery.lazy.vimeo.js index d6efbd1..2128894 100644 --- a/plugins/jquery.lazy.vimeo.js +++ b/plugins/jquery.lazy.vimeo.js @@ -2,7 +2,7 @@ * jQuery & Zepto Lazy - Vimeo Plugin - v1.1 * http://jquery.eisbehr.de/lazy/ * - * Copyright 2012 - 2017, Daniel 'Eisbehr' Kern + * Copyright 2012 - 2018, Daniel 'Eisbehr' Kern * * Dual licensed under the MIT and GPL-2.0 licenses: * http://www.opensource.org/licenses/mit-license.php @@ -11,14 +11,15 @@ ;(function($) { // load vimeo video iframe, like: // - $.lazy("vimeo", function(element, response) { - if( element[0].tagName.toLowerCase() === "iframe" ) { + $.lazy('vimeo', function(element, response) { + if (element[0].tagName.toLowerCase() === 'iframe') { // pass source to iframe - element.attr("src", "https://player.vimeo.com/video/" + element.attr("data-src")); + element.attr('src', 'https://player.vimeo.com/video/' + element.attr('data-src')); // remove attribute - if( this.config("removeAttribute") ) - element.removeAttr("data-src"); + if (this.config('removeAttribute')) { + element.removeAttr('data-src'); + } } else { diff --git a/plugins/jquery.lazy.vimeo.min.js b/plugins/jquery.lazy.vimeo.min.js index 0b15ea2..896845d 100644 --- a/plugins/jquery.lazy.vimeo.min.js +++ b/plugins/jquery.lazy.vimeo.min.js @@ -1,2 +1,2 @@ -/*! jQuery & Zepto Lazy - Vimeo Plugin v1.1 - http://jquery.eisbehr.de/lazy - MIT&GPL-2.0 license - Copyright 2012-2017 Daniel 'Eisbehr' Kern */ +/*! jQuery & Zepto Lazy - Vimeo Plugin v1.1 - http://jquery.eisbehr.de/lazy - MIT&GPL-2.0 license - Copyright 2012-2018 Daniel 'Eisbehr' Kern */ !function(t){t.lazy("vimeo",function(t,e){"iframe"===t[0].tagName.toLowerCase()?(t.attr("src","https://player.vimeo.com/video/"+t.attr("data-src")),this.config("removeAttribute")&&t.removeAttr("data-src")):e(!1)})}(window.jQuery||window.Zepto); \ No newline at end of file diff --git a/plugins/jquery.lazy.youtube.js b/plugins/jquery.lazy.youtube.js index bf9f076..b7f95c4 100644 --- a/plugins/jquery.lazy.youtube.js +++ b/plugins/jquery.lazy.youtube.js @@ -2,7 +2,7 @@ * jQuery & Zepto Lazy - YouTube Plugin - v1.4 * http://jquery.eisbehr.de/lazy/ * - * Copyright 2012 - 2017, Daniel 'Eisbehr' Kern + * Copyright 2012 - 2018, Daniel 'Eisbehr' Kern * * Dual licensed under the MIT and GPL-2.0 licenses: * http://www.opensource.org/licenses/mit-license.php @@ -11,14 +11,15 @@ ;(function($) { // load youtube video iframe, like: // - $.lazy(["yt", "youtube"], function(element, response) { - if( element[0].tagName.toLowerCase() === "iframe" ) { + $.lazy(['yt', 'youtube'], function(element, response) { + if (element[0].tagName.toLowerCase() === 'iframe') { // pass source to iframe - element.attr("src", "https://www.youtube.com/embed/" + element.attr("data-src") + "?rel=0&showinfo=0"); + element.attr('src', 'https://www.youtube.com/embed/' + element.attr('data-src') + '?rel=0&showinfo=0'); // remove attribute - if( this.config("removeAttribute") ) - element.removeAttr("data-src"); + if (this.config('removeAttribute')) { + element.removeAttr('data-src'); + } } else { diff --git a/plugins/jquery.lazy.youtube.min.js b/plugins/jquery.lazy.youtube.min.js index 846f298..d6a484a 100644 --- a/plugins/jquery.lazy.youtube.min.js +++ b/plugins/jquery.lazy.youtube.min.js @@ -1,2 +1,2 @@ -/*! jQuery & Zepto Lazy - YouTube Plugin v1.4 - http://jquery.eisbehr.de/lazy - MIT&GPL-2.0 license - Copyright 2012-2017 Daniel 'Eisbehr' Kern */ +/*! jQuery & Zepto Lazy - YouTube Plugin v1.4 - http://jquery.eisbehr.de/lazy - MIT&GPL-2.0 license - Copyright 2012-2018 Daniel 'Eisbehr' Kern */ !function(t){t.lazy(["yt","youtube"],function(t,e){"iframe"===t[0].tagName.toLowerCase()?(t.attr("src","https://www.youtube.com/embed/"+t.attr("data-src")+"?rel=0&showinfo=0"),this.config("removeAttribute")&&t.removeAttr("data-src")):e(!1)})}(window.jQuery||window.Zepto); \ No newline at end of file