├── .editorconfig ├── .eslintrc ├── .gitignore ├── .travis.yml ├── Gruntfile.js ├── README.md ├── bower.json ├── dist └── jquery.jscroll.min.js ├── docs ├── .nojekyll ├── CNAME ├── README.md ├── _coverpage.md ├── _sidebar.md ├── configuration.md ├── contributing.md ├── css │ └── docs.css ├── img │ ├── favicons │ │ ├── apple-touch-icon-114x114.png │ │ ├── apple-touch-icon-120x120.png │ │ ├── apple-touch-icon-144x144.png │ │ ├── apple-touch-icon-152x152.png │ │ ├── apple-touch-icon-57x57.png │ │ ├── apple-touch-icon-60x60.png │ │ ├── apple-touch-icon-72x72.png │ │ ├── apple-touch-icon-76x76.png │ │ ├── favicon-128.png │ │ ├── favicon-16x16.png │ │ ├── favicon-196x196.png │ │ ├── favicon-32x32.png │ │ ├── favicon-96x96.png │ │ ├── mstile-144x144.png │ │ ├── mstile-150x150.png │ │ ├── mstile-310x150.png │ │ ├── mstile-310x310.png │ │ └── mstile-70x70.png │ └── jscroll.png ├── index.html ├── installation.md ├── js │ └── docs.js └── usage.md ├── jquery.jscroll.js ├── package-lock.json └── package.json /.editorconfig: -------------------------------------------------------------------------------- 1 | [*] 2 | indent_style = space 3 | indent_size = 4 4 | end_of_line = lf 5 | charset = utf-8 6 | trim_trailing_whitespace = true 7 | insert_final_newline = false -------------------------------------------------------------------------------- /.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "browser": true 4 | }, 5 | "globals": { 6 | "jQuery": true 7 | }, 8 | "rules": { 9 | "curly": [ 10 | 2, 11 | "all" 12 | ], 13 | "eqeqeq": 2, 14 | "no-eq-null": 2, 15 | "guard-for-in": 2, 16 | "no-unused-vars": [ 17 | 2, 18 | { 19 | "args": "none" 20 | } 21 | ], 22 | "strict": [ 23 | 2, 24 | "safe" 25 | ], 26 | "no-use-before-define": [ 27 | 2, 28 | { 29 | "functions": false, 30 | "variables": false 31 | } 32 | ], 33 | "operator-linebreak": [ 34 | 2, 35 | "after" 36 | ], 37 | "max-len": [ 38 | 2, 39 | { 40 | "code": 200, 41 | "tabWidth": 4, 42 | "ignoreComments": true 43 | } 44 | ], 45 | "indent": [ 46 | 2, 47 | 4, 48 | { 49 | "SwitchCase": 1 50 | } 51 | ], 52 | "quotes": [ 53 | 2, 54 | "single" 55 | ], 56 | "no-multi-str": 2, 57 | "no-mixed-spaces-and-tabs": 2, 58 | "no-trailing-spaces": 2, 59 | "space-unary-ops": [ 60 | 2, 61 | { 62 | "nonwords": false, 63 | "overrides": {} 64 | } 65 | ], 66 | "brace-style": [ 67 | 2, 68 | "1tbs", 69 | { 70 | "allowSingleLine": true 71 | } 72 | ], 73 | "comma-spacing": [ 74 | 2, 75 | { 76 | "before": false, 77 | "after": true 78 | } 79 | ], 80 | "comma-dangle": [ 81 | 2, 82 | "never" 83 | ], 84 | "comma-style": [ 85 | "error", 86 | "last" 87 | ], 88 | "keyword-spacing": [ 89 | 2, 90 | {} 91 | ], 92 | "space-infix-ops": 2, 93 | "space-before-blocks": [ 94 | 2, 95 | "always" 96 | ], 97 | "space-before-function-paren": [ 98 | 2, 99 | { 100 | "anonymous": "ignore", 101 | "named": "never" 102 | } 103 | ], 104 | "array-bracket-spacing": [ 105 | 2, 106 | "never" 107 | ], 108 | "space-in-parens": [ 109 | 2, 110 | "never" 111 | ], 112 | "no-multiple-empty-lines": 2, 113 | "no-with": 2, 114 | "no-spaced-func": 2, 115 | "key-spacing": [ 116 | 2, 117 | { 118 | "beforeColon": false, 119 | "afterColon": true 120 | } 121 | ], 122 | "dot-notation": 2, 123 | "semi": [ 124 | 2, 125 | "always" 126 | ], 127 | "eol-last": ["error", "never"] 128 | } 129 | } -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .idea/ 2 | .project 3 | .settings/ 4 | bower_components/ 5 | node_modules/ -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "stable" 4 | before_script: 5 | - npm install -g grunt-cli 6 | notifications: 7 | webhooks: 8 | urls: 9 | - https://webhooks.gitter.im/e/7b6dee6d870a12710299 10 | on_success: change # options: [always|never|change] default: always 11 | on_failure: always # options: [always|never|change] default: always 12 | on_start: never # options: [always|never|change] default: always -------------------------------------------------------------------------------- /Gruntfile.js: -------------------------------------------------------------------------------- 1 | module.exports = function(grunt) { 2 | 3 | 'use strict'; 4 | 5 | grunt.initConfig({ 6 | 7 | pkg: grunt.file.readJSON('package.json'), 8 | 9 | /** 10 | * https://github.com/gyandeeps/gruntify-eslint 11 | */ 12 | eslint: { 13 | options: { 14 | configFile: '.eslintrc' 15 | }, 16 | src: ['Gruntfile.js', 'jquery.jscroll.js'] 17 | }, 18 | 19 | /** 20 | * https://github.com/gruntjs/grunt-contrib-uglify 21 | */ 22 | uglify: { 23 | options: { 24 | output: { 25 | comments: 'some' 26 | } 27 | }, 28 | jscroll: { 29 | files: { 30 | 'dist/jquery.jscroll.min.js': [ 31 | 'jquery.jscroll.js' 32 | ] 33 | } 34 | } 35 | } 36 | 37 | }); 38 | 39 | grunt.loadNpmTasks('gruntify-eslint'); 40 | grunt.loadNpmTasks('grunt-contrib-uglify'); 41 | grunt.registerTask('default', ['eslint', 'uglify']); 42 | }; -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # jScroll - jQuery Plugin for Infinite Scrolling / Auto-Paging 2 | 3 | [![Build Status](https://travis-ci.org/pklauzinski/jscroll.svg?branch=master)](https://travis-ci.org/pklauzinski/jscroll) 4 | [![npm version](https://img.shields.io/npm/v/jscroll.svg)](https://www.npmjs.com/package/jscroll) 5 | [![Bower version](https://img.shields.io/bower/v/jscroll.svg)](https://github.com/pklauzinski/jscroll) 6 | [![Join the chat at https://gitter.im/pklauzinski/jscroll](https://badges.gitter.im/pklauzinski/jscroll.svg)](https://gitter.im/pklauzinski/jscroll?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) 7 | 8 | Official site at [jscroll.com](https://jscroll.com/). 9 | 10 | * Copyright © [Philip Klauzinski](https://webtopian.com) 11 | * Dual licensed under the MIT and GPL Version 2 licenses. 12 | * http://www.opensource.org/licenses/mit-license.php 13 | * http://www.gnu.org/licenses/gpl-2.0.html 14 | 15 | > Requires jQuery v1.8.0+ 16 | 17 | ## Facebook Page 18 | 19 | Follow us on Facebook for commit updates: https://www.facebook.com/jScroll.Infinite.Scrolling 20 | 21 | ## Usage 22 | 23 | The `jscroll` method is called on the selector for which you want your scrollable content contained within. For example: 24 | 25 | ```javascript 26 | $('.jscroll').jscroll(); 27 | ``` 28 | 29 | The `jscroll` method takes an optional object literal as a parameter for overriding the default options. An example of how this can be done is shown below. 30 | 31 | ```javascript 32 | $('.jscroll').jscroll({ 33 | loadingHtml: 'Loading Loading...', 34 | padding: 20, 35 | nextSelector: 'a.jscroll-next:last', 36 | contentSelector: 'li' 37 | }); 38 | ``` 39 | 40 | ## Options 41 | 42 | * `debug (false)` - When set to true, outputs useful information to the console display if the `console` object exists. 43 | * `autoTrigger (true)` - When set to true, triggers the loading of the next set of content automatically when the user scrolls to the bottom of the containing element. When set to false, the required next link will trigger the loading of the next set of content when clicked. 44 | * `autoTriggerUntil (false)` - Set to an integer greater than 0 to turn off `autoTrigger` of paging after the specified number of pages. Requires `autoTrigger` to be `true`. 45 | * `loadingHtml ('Loading...')` - The HTML to show at the bottom of the content while loading the next set. 46 | * `loadingFunction` (false) - A JavaScript function to run after the loadingHtml has been drawn. 47 | * `padding (0)` - The distance from the bottom of the scrollable content at which to trigger the loading of the next set of content. This only applies when autoTrigger is set to true. 48 | * `nextSelector ('a:last')` - The selector to use for finding the link which contains the href pointing to the next set of content. If this selector is not found, or if it does not contain a href attribute, jScroll will self-destroy and unbind from the element upon which it was called. 49 | * `contentSelector ('')` - A convenience selector for loading only part of the content in the response for the next set of content. This selector will be ignored if left blank and will apply the entire response to the DOM. 50 | * `pagingSelector ('')` - Optionally define a selector for your paging controls so that they will be hidden, instead of just hiding the next page link. 51 | * `callback (false)` - Optionally define a callback function to be called after a set of content has been loaded. 52 | 53 | For more information on the `contentSelector` option and how it loads a response fragment, see the [jQuery documentation for the .load() method](https://api.jquery.com/load/). 54 | 55 | ## Contributing 56 | 57 | In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using [grunt](https://gruntjs.com). 58 | 59 | 60 | ## LICENSES: 61 | 62 | * MIT: http://www.opensource.org/licenses/mit-license.php 63 | * GPL-2.0: http://www.gnu.org/licenses/gpl-2.0.html 64 | -------------------------------------------------------------------------------- /bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jscroll", 3 | "homepage": "http://jscroll.com", 4 | "authors": [ 5 | { 6 | "name": "Philip Klauzinski", 7 | "homepage": "http://webtopian.com" 8 | } 9 | ], 10 | "repository": { 11 | "type": "git", 12 | "url": "https://github.com/pklauzinski/jscroll" 13 | }, 14 | "description": "jScroll - jQuery Plugin for Infinite Scrolling / Auto-Paging", 15 | "main": "jquery.jscroll.js", 16 | "dependencies": { 17 | "jquery": ">=1.4.3" 18 | }, 19 | "moduleType": [ 20 | "globals" 21 | ], 22 | "keywords": [ 23 | "jscroll", 24 | "infinite-scroll", 25 | "infinite-scrolling", 26 | "infinite-ajax-scroll", 27 | "jquery-scrolling", 28 | "ajax-scrolling", 29 | "scrolling", 30 | "auto-paging", 31 | "jquery-plugin", 32 | "ecosystem:jquery" 33 | ], 34 | "license": ["MIT", "GPL-2.0"], 35 | "ignore": [ 36 | "**/.*", 37 | "node_modules", 38 | "bower_components", 39 | "test", 40 | "tests", 41 | "Gruntfile.js" 42 | ] 43 | } 44 | -------------------------------------------------------------------------------- /dist/jquery.jscroll.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * jScroll - jQuery Plugin for Infinite Scrolling / Auto-Paging 3 | * @see @link{https://jscroll.com} 4 | * 5 | * @copyright Philip Klauzinski 6 | * @license Dual licensed under the MIT and GPL Version 2 licenses 7 | * @author Philip Klauzinski (https://webtopian.com) 8 | * @version 2.4.1 9 | * @requires jQuery v1.8.0+ 10 | * @preserve 11 | */ 12 | !function(m){"use strict";m.jscroll={defaults:{debug:!1,autoTrigger:!0,autoTriggerUntil:!1,loadingHtml:"Loading...",loadingFunction:!1,padding:0,nextSelector:"a:last",contentSelector:"",pagingSelector:"",callback:!1}};var l=function(a,t){var n,e=a.data("jscroll"),l="function"==typeof t?{callback:t}:t,s=m.extend({},m.jscroll.defaults,l,e||{}),d="visible"===a.css("overflow-y"),o=a.find(s.nextSelector).first(),r=m(window),i=m("body"),f=d?r:a,c=m.trim(o.prop("href")+" "+s.contentSelector),g=function(){a.find(".jscroll-inner").length||a.contents().wrapAll('
')},u=function(t){s.pagingSelector?t.closest(s.pagingSelector).hide():t.parent().not(".jscroll-inner,.jscroll-added").addClass("jscroll-next-parent").hide().length||t.wrap('
').parent().hide()},p=function(){return f.unbind(".jscroll").removeData("jscroll").find(".jscroll-inner").children().unwrap().filter(".jscroll-added").children().unwrap()},j=function(){if(a.is(":visible")){g();var t=a.find("div.jscroll-inner").first(),n=a.data("jscroll"),e=parseInt(a.css("borderTopWidth"),10),l=isNaN(e)?0:e,o=parseInt(a.css("paddingTop"),10)+l,r=d?f.scrollTop():a.offset().top,i=t.length?t.offset().top:0,c=Math.ceil(r-i+f.height()+o);if(!n.waiting&&c+s.padding>=t.outerHeight())return b("info","jScroll:",t.outerHeight()-c,"from bottom. Loading next request..."),v()}},h=function(){var t=a.find(s.nextSelector).first();if(t.length)if(s.autoTrigger&&(!1===s.autoTriggerUntil||0').children(".jscroll-added").last().html('
'+s.loadingHtml+"
").promise().done(function(){s.loadingFunction&&s.loadingFunction()}),a.animate({scrollTop:t.outerHeight()},0,function(){var o=r.nextHref;t.find("div.jscroll-added").last().load(o,function(t,n){if("error"===n)return p();var e,l=m(this).find(s.nextSelector).first();r.waiting=!1,r.nextHref=!!l.prop("href")&&m.trim(l.prop("href")+" "+s.contentSelector),m(".jscroll-next-parent",a).remove(),(e=e||a.data("jscroll"))&&e.nextHref?h():(b("warn","jScroll: nextSelector not found - destroying"),p()),s.callback&&s.callback.call(this,o),b("dir",r)})})},b=function(t){if(s.debug&&"object"==typeof console&&("object"==typeof t||"function"==typeof console[t]))if("object"==typeof t){var n=[];for(var e in t)"function"==typeof console[e]?(n=t[e].length?t[e]:[t[e]],console[e].apply(console,n)):console.log.apply(console,n)}else console[t].apply(console,Array.prototype.slice.call(arguments,1))};return a.data("jscroll",m.extend({},e,{initialized:!0,waiting:!1,nextHref:c})),g(),(n=m(s.loadingHtml).filter("img").attr("src"))&&((new Image).src=n),h(),m.extend(a.jscroll,{destroy:p}),a};m.fn.jscroll=function(e){return this.each(function(){var t=m(this),n=t.data("jscroll");n&&n.initialized||l(t,e)})}}(jQuery); -------------------------------------------------------------------------------- /docs/.nojekyll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pklauzinski/jscroll/406b127a9354aee6d2c733f42fdd05b3a10d3bbb/docs/.nojekyll -------------------------------------------------------------------------------- /docs/CNAME: -------------------------------------------------------------------------------- 1 | jscroll.com -------------------------------------------------------------------------------- /docs/README.md: -------------------------------------------------------------------------------- 1 | ## Introduction 2 | 3 | **jScroll** is a jQuery plugin for infinite scrolling, written by [Philip Klauzinski](https://philip.klauzinski.com). Infinite scrolling; also known as lazy loading, endless scrolling, autopager, endless pages, etc.; is the ability to load content via AJAX within the current page or content area as you scroll down. The new content can be loaded automatically each time you scroll to the end of the existing content, or it can be triggered to load by clicking a navigation link at the end of the existing content. 4 | 5 | An example of infinite scrolling is your Facebook "News Feed" page. You may notice that when you scroll to the bottom of this page, new content will often load automatically, or you will be given a link to "Older Posts" which will load more content when clicked. 6 | 7 | [Continue to Installation →](installation.md) 8 | 9 | ## Twitter 10 | 11 | ?> Follow me on Twitter [@webtopian](https://twitter.com/webtopian) for updates on jScroll and other projects I'm working on. 12 | 13 | ## jScroll Facebook Page 14 | 15 | ?> [Follow jScroll on Facebook](https://www.facebook.com/jScroll.Infinite.Scrolling) for version updates and other announcements. -------------------------------------------------------------------------------- /docs/_coverpage.md: -------------------------------------------------------------------------------- 1 | ![jScroll logo](img/jscroll.png) 2 | 3 | # jScroll 4 | 5 |
6 | 7 | [GitHub](https://github.com/pklauzinski/jscroll) 8 | [Get Started](#introduction) -------------------------------------------------------------------------------- /docs/_sidebar.md: -------------------------------------------------------------------------------- 1 | - [Home](/) 2 | - [Installation](installation.md) 3 | - [Usage](usage.md) 4 | - [Configuration](configuration.md) 5 | - [Contributing](contributing.md) -------------------------------------------------------------------------------- /docs/configuration.md: -------------------------------------------------------------------------------- 1 | # Configuration 2 | 3 | ## debug 4 | 5 | - Type: `Boolean` 6 | - Default: `false` 7 | 8 | When set to `true`, outputs useful information to the console display if the `console` object exists. 9 | 10 | ## autoTrigger 11 | 12 | - Type: `Boolean` 13 | - Default: `true` 14 | 15 | When set to `true`, triggers the loading of the next set of content automatically when the user scrolls to the bottom of the containing element. When set to `false`, the required next link will trigger the loading of the next set of content when clicked. 16 | 17 | ## autoTriggerUntil 18 | 19 | - Type: `Boolean|Number` 20 | - Default: `false` 21 | 22 | Set to an integer greater than `0` to turn off `autoTrigger` of paging after the specified number of pages. Requires `autoTrigger` to be `true`. 23 | 24 | ## loadingHtml 25 | 26 | - Type: `String` 27 | - Default: `Loading...` 28 | 29 | The HTML to show at the bottom of the content while loading the next set. 30 | 31 | ## loadingFunction 32 | 33 | - Type: `Function|Boolean` 34 | - Default: `false` 35 | 36 | A JavaScript function to run after the `loadingHtml` has been drawn. 37 | 38 | ## padding 39 | 40 | - Type: `Number` 41 | - Default: `0` 42 | 43 | The distance from the bottom of the scrollable content at which to trigger the loading of the next set of content. This only applies when `autoTrigger` is set to `true`. 44 | 45 | ## nextSelector 46 | 47 | - Type: `String` 48 | - Default: `a:last` 49 | 50 | The selector to use for finding the link which contains the `href` pointing to the next set of content. If this selector is not found, or if it does not contain an `href` attribute, jScroll will self-destroy and unbind from the element upon which it was called. 51 | 52 | ## contentSelector 53 | 54 | - Type: `String` 55 | - Default: `''` 56 | 57 | A convenience selector for loading only part of the content in the response for the next set of content. This selector will be ignored if left blank and will apply the entire response to the DOM. 58 | 59 | !> For more information on the `contentSelector` option and how it loads a response fragment, see the [jQuery documentation for the .load() method](http://api.jquery.com/load/). 60 | 61 | ## pagingSelector 62 | 63 | - Type: `String` 64 | - Default: `''` 65 | 66 | Optionally define a selector for your paging controls so that they will be hidden, instead of just hiding the next page link. 67 | 68 | ## callback 69 | 70 | - Type: `Function|Boolean` 71 | - Default: `false` 72 | 73 | Optionally define a callback function to be called after a set of content has been loaded. -------------------------------------------------------------------------------- /docs/contributing.md: -------------------------------------------------------------------------------- 1 | # Contributing 2 | 3 | ## Coding style 4 | 5 | In lieu of a formal styleguide, take care to maintain the existing coding style and adhere to the [eslint config](https://github.com/pklauzinski/jscroll/blob/master/.eslintrc). Lint and test your code using [NPM](https://npmjs.org) and [grunt](https://gruntjs.com). 6 | 7 | ## Test 8 | 9 | NPM will run linting tests automatically, as configured in `package.json`. 10 | 11 | ```bash 12 | npm test 13 | ``` 14 | 15 | Ensure that all tests pass before submitting a [pull request](https://github.com/pklauzinski/jscroll/pulls). -------------------------------------------------------------------------------- /docs/css/docs.css: -------------------------------------------------------------------------------- 1 | .content { 2 | padding-top: 20px; 3 | } 4 | .markdown-section { 5 | padding: 1.5em; 6 | } 7 | .cover img { 8 | max-width: 100px; 9 | } 10 | @media (min-height: 600px) { 11 | .cover img { 12 | max-width: 200px; 13 | } 14 | } 15 | #carbon, .markdown-section p.warn:first-child { 16 | max-width: 400px; 17 | } 18 | #carbon { 19 | margin: 1em auto; 20 | padding: 1em; 21 | background: rgba(0, 0, 0, 0.05); 22 | text-align: left; 23 | } 24 | #carbonads { 25 | position: relative; 26 | } 27 | .carbon-img { 28 | margin-right: 1em; 29 | } 30 | .carbon-text { 31 | max-width: 200px; 32 | line-height: 1.2; 33 | } 34 | #carbonads a { 35 | text-decoration: none; 36 | font-weight: normal; 37 | } 38 | #carbonads img { 39 | display: block; 40 | } 41 | .carbon-wrap { 42 | display: flex; 43 | } 44 | .carbon-wrap a { 45 | display: block; 46 | } 47 | .carbon-poweredby { 48 | position: absolute; 49 | right: 0; 50 | bottom: 0; 51 | font-size: 11px; 52 | line-height: 1; 53 | font-style: italic; 54 | } 55 | .sidebar h1 a { 56 | display: block; 57 | } 58 | .sidebar h1 a img { 59 | max-width:100px; 60 | display: block; 61 | margin: 0 auto; 62 | } 63 | .sidebar-nav { 64 | border-top: 1px solid rgba(0,0,0,.07); 65 | } -------------------------------------------------------------------------------- /docs/img/favicons/apple-touch-icon-114x114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pklauzinski/jscroll/406b127a9354aee6d2c733f42fdd05b3a10d3bbb/docs/img/favicons/apple-touch-icon-114x114.png -------------------------------------------------------------------------------- /docs/img/favicons/apple-touch-icon-120x120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pklauzinski/jscroll/406b127a9354aee6d2c733f42fdd05b3a10d3bbb/docs/img/favicons/apple-touch-icon-120x120.png -------------------------------------------------------------------------------- /docs/img/favicons/apple-touch-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pklauzinski/jscroll/406b127a9354aee6d2c733f42fdd05b3a10d3bbb/docs/img/favicons/apple-touch-icon-144x144.png -------------------------------------------------------------------------------- /docs/img/favicons/apple-touch-icon-152x152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pklauzinski/jscroll/406b127a9354aee6d2c733f42fdd05b3a10d3bbb/docs/img/favicons/apple-touch-icon-152x152.png -------------------------------------------------------------------------------- /docs/img/favicons/apple-touch-icon-57x57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pklauzinski/jscroll/406b127a9354aee6d2c733f42fdd05b3a10d3bbb/docs/img/favicons/apple-touch-icon-57x57.png -------------------------------------------------------------------------------- /docs/img/favicons/apple-touch-icon-60x60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pklauzinski/jscroll/406b127a9354aee6d2c733f42fdd05b3a10d3bbb/docs/img/favicons/apple-touch-icon-60x60.png -------------------------------------------------------------------------------- /docs/img/favicons/apple-touch-icon-72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pklauzinski/jscroll/406b127a9354aee6d2c733f42fdd05b3a10d3bbb/docs/img/favicons/apple-touch-icon-72x72.png -------------------------------------------------------------------------------- /docs/img/favicons/apple-touch-icon-76x76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pklauzinski/jscroll/406b127a9354aee6d2c733f42fdd05b3a10d3bbb/docs/img/favicons/apple-touch-icon-76x76.png -------------------------------------------------------------------------------- /docs/img/favicons/favicon-128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pklauzinski/jscroll/406b127a9354aee6d2c733f42fdd05b3a10d3bbb/docs/img/favicons/favicon-128.png -------------------------------------------------------------------------------- /docs/img/favicons/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pklauzinski/jscroll/406b127a9354aee6d2c733f42fdd05b3a10d3bbb/docs/img/favicons/favicon-16x16.png -------------------------------------------------------------------------------- /docs/img/favicons/favicon-196x196.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pklauzinski/jscroll/406b127a9354aee6d2c733f42fdd05b3a10d3bbb/docs/img/favicons/favicon-196x196.png -------------------------------------------------------------------------------- /docs/img/favicons/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pklauzinski/jscroll/406b127a9354aee6d2c733f42fdd05b3a10d3bbb/docs/img/favicons/favicon-32x32.png -------------------------------------------------------------------------------- /docs/img/favicons/favicon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pklauzinski/jscroll/406b127a9354aee6d2c733f42fdd05b3a10d3bbb/docs/img/favicons/favicon-96x96.png -------------------------------------------------------------------------------- /docs/img/favicons/mstile-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pklauzinski/jscroll/406b127a9354aee6d2c733f42fdd05b3a10d3bbb/docs/img/favicons/mstile-144x144.png -------------------------------------------------------------------------------- /docs/img/favicons/mstile-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pklauzinski/jscroll/406b127a9354aee6d2c733f42fdd05b3a10d3bbb/docs/img/favicons/mstile-150x150.png -------------------------------------------------------------------------------- /docs/img/favicons/mstile-310x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pklauzinski/jscroll/406b127a9354aee6d2c733f42fdd05b3a10d3bbb/docs/img/favicons/mstile-310x150.png -------------------------------------------------------------------------------- /docs/img/favicons/mstile-310x310.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pklauzinski/jscroll/406b127a9354aee6d2c733f42fdd05b3a10d3bbb/docs/img/favicons/mstile-310x310.png -------------------------------------------------------------------------------- /docs/img/favicons/mstile-70x70.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pklauzinski/jscroll/406b127a9354aee6d2c733f42fdd05b3a10d3bbb/docs/img/favicons/mstile-70x70.png -------------------------------------------------------------------------------- /docs/img/jscroll.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pklauzinski/jscroll/406b127a9354aee6d2c733f42fdd05b3a10d3bbb/docs/img/jscroll.png -------------------------------------------------------------------------------- /docs/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | jScroll - jQuery plugin for infinite scrolling / auto-paging 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 |
Loading …
34 | 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /docs/installation.md: -------------------------------------------------------------------------------- 1 | # Installation 2 | 3 | ## Dependencies 4 | 5 | jScroll requires [jQuery](https://jquery.com) **v1.8.0** or higher as a **peer dependency**. 6 | 7 | ## CDN 8 | 9 | ### Unpkg 10 | 11 | Include the script from [unpkg](https://unpkg.com/) with the version number specified, where `#.#.#` represents the [semver](https://semver.org). 12 | 13 | ```html 14 | 15 | ``` 16 | 17 | Alternatively, you may omit the version tag to load the latest released version. 18 | 19 | ```html 20 | 21 | ``` 22 | 23 | ### CDNJS 24 | 25 | Include the script from [cdnjs](https://cdnjs.com/libraries/jscroll) with the version number specified, where `#.#.#` represents the [semver](https://semver.org). 26 | 27 | ```html 28 | 29 | ``` 30 | 31 | ## Package Managers 32 | 33 | ### NPM 34 | 35 | ```bash 36 | $ npm install jscroll --save 37 | ``` 38 | ### Yarn 39 | 40 | ```bash 41 | $ yarn add jscroll 42 | ``` 43 | 44 | ### Bower 45 | 46 | ```bash 47 | $ bower install jscroll --save 48 | ``` -------------------------------------------------------------------------------- /docs/js/docs.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | window.$docsify = { 3 | name: 'jScroll', 4 | repo: 'https://github.com/pklauzinski/jscroll', 5 | executeScript: true, 6 | search: 'auto', 7 | //coverpage: true, 8 | loadSidebar: true, 9 | maxLevel: 4, 10 | subMaxLevel: 2, 11 | auto2top: true, 12 | ga: 'UA-23834740-2', 13 | plugins: [ 14 | function(hook, vm) { 15 | hook.ready(function() { 16 | var title = document.querySelector('.sidebar h1 a'), 17 | logo = document.createElement('img'); 18 | 19 | logo.src = 'img/jscroll.png'; 20 | title.insertBefore(logo, title.firstChild); 21 | }); 22 | hook.doneEach(function() { 23 | var p = document.createElement('p'), 24 | content = document.querySelector('.markdown-section'); 25 | 26 | p.id = 'carbon-top'; 27 | p.className = 'warn'; 28 | content.insertBefore(p, content.firstChild); 29 | adCarbon('carbon-top'); 30 | }); 31 | } 32 | ] 33 | }; 34 | 35 | function adCarbon(id) { 36 | var carbon = document.getElementById(id), 37 | script = document.createElement(('script')); 38 | 39 | if (carbon) { 40 | script.id = '_carbonads_js'; 41 | script.async = true; 42 | script.src = '//cdn.carbonads.com/carbon.js?serve=CKYILKJE&placement=jscrollcom'; 43 | carbon.appendChild(script); 44 | } 45 | } 46 | })(); -------------------------------------------------------------------------------- /docs/usage.md: -------------------------------------------------------------------------------- 1 | # Usage 2 | 3 | ## Initialization 4 | 5 | The `jscroll` method is called on the selector for which you want your scrollable content contained within. Always ensure that the content you want to call jScroll on has already been rendered in the DOM before initializing it. 6 | 7 | To initialize jScroll on the `DOMContentLoaded` event: 8 | 9 | ```javascript 10 | $(function() { 11 | $('.jscroll').jscroll(); 12 | }); 13 | ``` 14 | 15 | ## Customizing 16 | 17 | The `jscroll` method takes an optional object literal as a parameter for overriding the default options. An example of how this can be done is shown below. 18 | 19 | ```javascript 20 | var options = { 21 | loadingHtml: 'Loading Loading...', 22 | padding: 20, 23 | nextSelector: 'a.jscroll-next:last', 24 | contentSelector: 'li' 25 | }; 26 | 27 | $('.jscroll').jscroll(options); 28 | ``` 29 | 30 | See [configuration](configuration.md) for a listing of all options. -------------------------------------------------------------------------------- /jquery.jscroll.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * jScroll - jQuery Plugin for Infinite Scrolling / Auto-Paging 3 | * @see @link{https://jscroll.com} 4 | * 5 | * @copyright Philip Klauzinski 6 | * @license Dual licensed under the MIT and GPL Version 2 licenses 7 | * @author Philip Klauzinski (https://webtopian.com) 8 | * @version 2.4.1 9 | * @requires jQuery v1.8.0+ 10 | * @preserve 11 | */ 12 | (function($) { 13 | 14 | 'use strict'; 15 | 16 | // Define the jscroll namespace and default settings 17 | $.jscroll = { 18 | defaults: { 19 | debug: false, 20 | autoTrigger: true, 21 | autoTriggerUntil: false, 22 | loadingHtml: 'Loading...', 23 | loadingFunction: false, 24 | padding: 0, 25 | nextSelector: 'a:last', 26 | contentSelector: '', 27 | pagingSelector: '', 28 | callback: false 29 | } 30 | }; 31 | 32 | // Constructor 33 | var jScroll = function($e, options) { 34 | 35 | // Private vars and methods 36 | var _data = $e.data('jscroll'), 37 | _userOptions = (typeof options === 'function') ? { callback: options } : options, 38 | _options = $.extend({}, $.jscroll.defaults, _userOptions, _data || {}), 39 | _isWindow = ($e.css('overflow-y') === 'visible'), 40 | _$next = $e.find(_options.nextSelector).first(), 41 | _$window = $(window), 42 | _$body = $('body'), 43 | _$scroll = _isWindow ? _$window : $e, 44 | _nextHref = $.trim(_$next.prop('href') + ' ' + _options.contentSelector), 45 | 46 | // Check if a loading image is defined and preload 47 | _preloadImage = function() { 48 | var src = $(_options.loadingHtml).filter('img').attr('src'); 49 | if (src) { 50 | var image = new Image(); 51 | image.src = src; 52 | } 53 | }, 54 | 55 | // Wrap inner content, if it isn't already 56 | _wrapInnerContent = function() { 57 | if (!$e.find('.jscroll-inner').length) { 58 | $e.contents().wrapAll('
'); 59 | } 60 | }, 61 | 62 | // Find the next link's parent, or add one, and hide it 63 | _nextWrap = function($next) { 64 | var $parent; 65 | if (_options.pagingSelector) { 66 | $next.closest(_options.pagingSelector).hide(); 67 | } else { 68 | $parent = $next.parent().not('.jscroll-inner,.jscroll-added').addClass('jscroll-next-parent').hide(); 69 | if (!$parent.length) { 70 | $next.wrap('
').parent().hide(); 71 | } 72 | } 73 | }, 74 | 75 | // Remove the jscroll behavior and data from an element 76 | _destroy = function() { 77 | return _$scroll.unbind('.jscroll') 78 | .removeData('jscroll') 79 | .find('.jscroll-inner').children().unwrap() 80 | .filter('.jscroll-added').children().unwrap(); 81 | }, 82 | 83 | // Observe the scroll event for when to trigger the next load 84 | _observe = function() { 85 | if ($e.is(':visible')) { 86 | _wrapInnerContent(); 87 | var $inner = $e.find('div.jscroll-inner').first(), 88 | data = $e.data('jscroll'), 89 | borderTopWidth = parseInt($e.css('borderTopWidth'), 10), 90 | borderTopWidthInt = isNaN(borderTopWidth) ? 0 : borderTopWidth, 91 | iContainerTop = parseInt($e.css('paddingTop'), 10) + borderTopWidthInt, 92 | iTopHeight = _isWindow ? _$scroll.scrollTop() : $e.offset().top, 93 | innerTop = $inner.length ? $inner.offset().top : 0, 94 | iTotalHeight = Math.ceil(iTopHeight - innerTop + _$scroll.height() + iContainerTop); 95 | 96 | if (!data.waiting && iTotalHeight + _options.padding >= $inner.outerHeight()) { 97 | _debug('info', 'jScroll:', $inner.outerHeight() - iTotalHeight, 'from bottom. Loading next request...'); 98 | return _load(); 99 | } 100 | } 101 | }, 102 | 103 | // Check if the href for the next set of content has been set 104 | _checkNextHref = function(data) { 105 | data = data || $e.data('jscroll'); 106 | if (!data || !data.nextHref) { 107 | _debug('warn', 'jScroll: nextSelector not found - destroying'); 108 | _destroy(); 109 | return false; 110 | } else { 111 | _setBindings(); 112 | return true; 113 | } 114 | }, 115 | 116 | _setBindings = function() { 117 | var $next = $e.find(_options.nextSelector).first(); 118 | if (!$next.length) { 119 | return; 120 | } 121 | if (_options.autoTrigger && (_options.autoTriggerUntil === false || _options.autoTriggerUntil > 0)) { 122 | _nextWrap($next); 123 | var scrollingBodyHeight = _$body.height() - $e.offset().top, 124 | scrollingHeight = ($e.height() < scrollingBodyHeight) ? $e.height() : scrollingBodyHeight, 125 | windowHeight = ($e.offset().top - _$window.scrollTop() > 0) ? _$window.height() - ($e.offset().top - $(window).scrollTop()) : _$window.height(); 126 | if (scrollingHeight <= windowHeight) { 127 | _observe(); 128 | } 129 | _$scroll.unbind('.jscroll').bind('scroll.jscroll', function() { 130 | return _observe(); 131 | }); 132 | if (_options.autoTriggerUntil > 0) { 133 | _options.autoTriggerUntil--; 134 | } 135 | } else { 136 | _$scroll.unbind('.jscroll'); 137 | $next.bind('click.jscroll', function() { 138 | _nextWrap($next); 139 | _load(); 140 | return false; 141 | }); 142 | } 143 | }, 144 | 145 | // Load the next set of content, if available 146 | _load = function() { 147 | var $inner = $e.find('div.jscroll-inner').first(), 148 | data = $e.data('jscroll'); 149 | 150 | data.waiting = true; 151 | $inner.append('
') 152 | .children('.jscroll-added').last() 153 | .html('
' + _options.loadingHtml + '
') 154 | .promise() 155 | .done(function() { 156 | if (_options.loadingFunction) { 157 | _options.loadingFunction(); 158 | } 159 | }); 160 | 161 | return $e.animate({scrollTop: $inner.outerHeight()}, 0, function() { 162 | var nextHref = data.nextHref; 163 | $inner.find('div.jscroll-added').last().load(nextHref, function(r, status) { 164 | if (status === 'error') { 165 | return _destroy(); 166 | } 167 | var $next = $(this).find(_options.nextSelector).first(); 168 | data.waiting = false; 169 | data.nextHref = $next.prop('href') ? $.trim($next.prop('href') + ' ' + _options.contentSelector) : false; 170 | $('.jscroll-next-parent', $e).remove(); // Remove the previous next link now that we have a new one 171 | _checkNextHref(); 172 | if (_options.callback) { 173 | _options.callback.call(this, nextHref); 174 | } 175 | _debug('dir', data); 176 | }); 177 | }); 178 | }, 179 | 180 | // Safe console debug - http://klauzinski.com/javascript/safe-firebug-console-in-javascript 181 | _debug = function(m) { 182 | if (_options.debug && typeof console === 'object' && (typeof m === 'object' || typeof console[m] === 'function')) { 183 | if (typeof m === 'object') { 184 | var args = []; 185 | for (var sMethod in m) { 186 | if (typeof console[sMethod] === 'function') { 187 | args = (m[sMethod].length) ? m[sMethod] : [m[sMethod]]; 188 | console[sMethod].apply(console, args); 189 | } else { 190 | console.log.apply(console, args); 191 | } 192 | } 193 | } else { 194 | console[m].apply(console, Array.prototype.slice.call(arguments, 1)); 195 | } 196 | } 197 | }; 198 | 199 | // Initialization 200 | $e.data('jscroll', $.extend({}, _data, {initialized: true, waiting: false, nextHref: _nextHref})); 201 | _wrapInnerContent(); 202 | _preloadImage(); 203 | _setBindings(); 204 | 205 | // Expose API methods via the jQuery.jscroll namespace, e.g. $('sel').jscroll.method() 206 | $.extend($e.jscroll, { 207 | destroy: _destroy 208 | }); 209 | return $e; 210 | }; 211 | 212 | // Define the jscroll plugin method and loop 213 | $.fn.jscroll = function(m) { 214 | return this.each(function() { 215 | var $this = $(this), 216 | data = $this.data('jscroll'); 217 | 218 | // Instantiate jScroll on this element if it hasn't been already 219 | if (data && data.initialized) { 220 | return; 221 | } 222 | jScroll($this, m); 223 | }); 224 | }; 225 | 226 | })(jQuery); -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jscroll", 3 | "version": "2.4.1", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "abbrev": { 8 | "version": "1.1.1", 9 | "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", 10 | "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", 11 | "dev": true 12 | }, 13 | "acorn": { 14 | "version": "5.5.3", 15 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.5.3.tgz", 16 | "integrity": "sha512-jd5MkIUlbbmb07nXH0DT3y7rDVtkzDi4XZOUVWAer8ajmF/DTSSbl5oNFyDOl/OXA33Bl79+ypHhl2pN20VeOQ==", 17 | "dev": true 18 | }, 19 | "acorn-jsx": { 20 | "version": "3.0.1", 21 | "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", 22 | "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", 23 | "dev": true, 24 | "requires": { 25 | "acorn": "3.3.0" 26 | }, 27 | "dependencies": { 28 | "acorn": { 29 | "version": "3.3.0", 30 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", 31 | "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", 32 | "dev": true 33 | } 34 | } 35 | }, 36 | "ajv": { 37 | "version": "5.5.2", 38 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", 39 | "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", 40 | "dev": true, 41 | "requires": { 42 | "co": "4.6.0", 43 | "fast-deep-equal": "1.1.0", 44 | "fast-json-stable-stringify": "2.0.0", 45 | "json-schema-traverse": "0.3.1" 46 | } 47 | }, 48 | "ajv-keywords": { 49 | "version": "2.1.1", 50 | "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", 51 | "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", 52 | "dev": true 53 | }, 54 | "ansi-escapes": { 55 | "version": "3.1.0", 56 | "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", 57 | "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==", 58 | "dev": true 59 | }, 60 | "ansi-regex": { 61 | "version": "2.1.1", 62 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", 63 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", 64 | "dev": true 65 | }, 66 | "ansi-styles": { 67 | "version": "2.2.1", 68 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", 69 | "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", 70 | "dev": true 71 | }, 72 | "argparse": { 73 | "version": "1.0.10", 74 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", 75 | "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", 76 | "dev": true, 77 | "requires": { 78 | "sprintf-js": "1.0.3" 79 | }, 80 | "dependencies": { 81 | "sprintf-js": { 82 | "version": "1.0.3", 83 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", 84 | "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", 85 | "dev": true 86 | } 87 | } 88 | }, 89 | "array-find-index": { 90 | "version": "1.0.2", 91 | "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", 92 | "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", 93 | "dev": true 94 | }, 95 | "array-union": { 96 | "version": "1.0.2", 97 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", 98 | "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", 99 | "dev": true, 100 | "requires": { 101 | "array-uniq": "1.0.3" 102 | } 103 | }, 104 | "array-uniq": { 105 | "version": "1.0.3", 106 | "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", 107 | "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", 108 | "dev": true 109 | }, 110 | "arrify": { 111 | "version": "1.0.1", 112 | "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", 113 | "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", 114 | "dev": true 115 | }, 116 | "async": { 117 | "version": "1.5.2", 118 | "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", 119 | "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", 120 | "dev": true 121 | }, 122 | "babel-code-frame": { 123 | "version": "6.26.0", 124 | "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", 125 | "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", 126 | "dev": true, 127 | "requires": { 128 | "chalk": "1.1.3", 129 | "esutils": "2.0.2", 130 | "js-tokens": "3.0.2" 131 | } 132 | }, 133 | "balanced-match": { 134 | "version": "1.0.0", 135 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 136 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", 137 | "dev": true 138 | }, 139 | "brace-expansion": { 140 | "version": "1.1.11", 141 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 142 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 143 | "dev": true, 144 | "requires": { 145 | "balanced-match": "1.0.0", 146 | "concat-map": "0.0.1" 147 | } 148 | }, 149 | "browserify-zlib": { 150 | "version": "0.1.4", 151 | "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", 152 | "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=", 153 | "dev": true, 154 | "requires": { 155 | "pako": "0.2.9" 156 | } 157 | }, 158 | "buffer-from": { 159 | "version": "1.0.0", 160 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.0.0.tgz", 161 | "integrity": "sha512-83apNb8KK0Se60UE1+4Ukbe3HbfELJ6UlI4ldtOGs7So4KD26orJM8hIY9lxdzP+UpItH1Yh/Y8GUvNFWFFRxA==", 162 | "dev": true 163 | }, 164 | "builtin-modules": { 165 | "version": "1.1.1", 166 | "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", 167 | "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", 168 | "dev": true 169 | }, 170 | "caller-path": { 171 | "version": "0.1.0", 172 | "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", 173 | "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", 174 | "dev": true, 175 | "requires": { 176 | "callsites": "0.2.0" 177 | } 178 | }, 179 | "callsites": { 180 | "version": "0.2.0", 181 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", 182 | "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", 183 | "dev": true 184 | }, 185 | "camelcase": { 186 | "version": "2.1.1", 187 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", 188 | "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", 189 | "dev": true 190 | }, 191 | "camelcase-keys": { 192 | "version": "2.1.0", 193 | "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", 194 | "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", 195 | "dev": true, 196 | "requires": { 197 | "camelcase": "2.1.1", 198 | "map-obj": "1.0.1" 199 | } 200 | }, 201 | "chalk": { 202 | "version": "1.1.3", 203 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", 204 | "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", 205 | "dev": true, 206 | "requires": { 207 | "ansi-styles": "2.2.1", 208 | "escape-string-regexp": "1.0.5", 209 | "has-ansi": "2.0.0", 210 | "strip-ansi": "3.0.1", 211 | "supports-color": "2.0.0" 212 | } 213 | }, 214 | "chardet": { 215 | "version": "0.4.2", 216 | "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", 217 | "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", 218 | "dev": true 219 | }, 220 | "circular-json": { 221 | "version": "0.3.3", 222 | "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", 223 | "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", 224 | "dev": true 225 | }, 226 | "cli-cursor": { 227 | "version": "2.1.0", 228 | "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", 229 | "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", 230 | "dev": true, 231 | "requires": { 232 | "restore-cursor": "2.0.0" 233 | } 234 | }, 235 | "cli-width": { 236 | "version": "2.2.0", 237 | "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", 238 | "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", 239 | "dev": true 240 | }, 241 | "co": { 242 | "version": "4.6.0", 243 | "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", 244 | "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", 245 | "dev": true 246 | }, 247 | "coffeescript": { 248 | "version": "1.10.0", 249 | "resolved": "https://registry.npmjs.org/coffeescript/-/coffeescript-1.10.0.tgz", 250 | "integrity": "sha1-56qDAZF+9iGzXYo580jc3R234z4=", 251 | "dev": true 252 | }, 253 | "color-convert": { 254 | "version": "1.9.1", 255 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", 256 | "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", 257 | "dev": true, 258 | "requires": { 259 | "color-name": "1.1.3" 260 | } 261 | }, 262 | "color-name": { 263 | "version": "1.1.3", 264 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 265 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", 266 | "dev": true 267 | }, 268 | "colors": { 269 | "version": "1.1.2", 270 | "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", 271 | "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", 272 | "dev": true 273 | }, 274 | "commander": { 275 | "version": "2.15.1", 276 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", 277 | "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", 278 | "dev": true 279 | }, 280 | "concat-map": { 281 | "version": "0.0.1", 282 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 283 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 284 | "dev": true 285 | }, 286 | "concat-stream": { 287 | "version": "1.6.2", 288 | "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", 289 | "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", 290 | "dev": true, 291 | "requires": { 292 | "buffer-from": "1.0.0", 293 | "inherits": "2.0.3", 294 | "readable-stream": "2.3.6", 295 | "typedarray": "0.0.6" 296 | } 297 | }, 298 | "core-util-is": { 299 | "version": "1.0.2", 300 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 301 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", 302 | "dev": true 303 | }, 304 | "cross-spawn": { 305 | "version": "5.1.0", 306 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", 307 | "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", 308 | "dev": true, 309 | "requires": { 310 | "lru-cache": "4.1.2", 311 | "shebang-command": "1.2.0", 312 | "which": "1.2.14" 313 | } 314 | }, 315 | "currently-unhandled": { 316 | "version": "0.4.1", 317 | "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", 318 | "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", 319 | "dev": true, 320 | "requires": { 321 | "array-find-index": "1.0.2" 322 | } 323 | }, 324 | "dateformat": { 325 | "version": "1.0.12", 326 | "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz", 327 | "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=", 328 | "dev": true, 329 | "requires": { 330 | "get-stdin": "4.0.1", 331 | "meow": "3.7.0" 332 | } 333 | }, 334 | "debug": { 335 | "version": "3.1.0", 336 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", 337 | "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", 338 | "dev": true, 339 | "requires": { 340 | "ms": "2.0.0" 341 | } 342 | }, 343 | "decamelize": { 344 | "version": "1.2.0", 345 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", 346 | "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", 347 | "dev": true 348 | }, 349 | "deep-is": { 350 | "version": "0.1.3", 351 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", 352 | "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", 353 | "dev": true 354 | }, 355 | "del": { 356 | "version": "2.2.2", 357 | "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", 358 | "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", 359 | "dev": true, 360 | "requires": { 361 | "globby": "5.0.0", 362 | "is-path-cwd": "1.0.0", 363 | "is-path-in-cwd": "1.0.1", 364 | "object-assign": "4.1.1", 365 | "pify": "2.3.0", 366 | "pinkie-promise": "2.0.1", 367 | "rimraf": "2.2.8" 368 | } 369 | }, 370 | "doctrine": { 371 | "version": "2.1.0", 372 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", 373 | "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", 374 | "dev": true, 375 | "requires": { 376 | "esutils": "2.0.2" 377 | } 378 | }, 379 | "error-ex": { 380 | "version": "1.3.1", 381 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", 382 | "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", 383 | "dev": true, 384 | "requires": { 385 | "is-arrayish": "0.2.1" 386 | } 387 | }, 388 | "escape-string-regexp": { 389 | "version": "1.0.5", 390 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 391 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 392 | "dev": true 393 | }, 394 | "eslint": { 395 | "version": "4.19.1", 396 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz", 397 | "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==", 398 | "dev": true, 399 | "requires": { 400 | "ajv": "5.5.2", 401 | "babel-code-frame": "6.26.0", 402 | "chalk": "2.3.2", 403 | "concat-stream": "1.6.2", 404 | "cross-spawn": "5.1.0", 405 | "debug": "3.1.0", 406 | "doctrine": "2.1.0", 407 | "eslint-scope": "3.7.1", 408 | "eslint-visitor-keys": "1.0.0", 409 | "espree": "3.5.4", 410 | "esquery": "1.0.1", 411 | "esutils": "2.0.2", 412 | "file-entry-cache": "2.0.0", 413 | "functional-red-black-tree": "1.0.1", 414 | "glob": "7.1.2", 415 | "globals": "11.4.0", 416 | "ignore": "3.3.7", 417 | "imurmurhash": "0.1.4", 418 | "inquirer": "3.3.0", 419 | "is-resolvable": "1.1.0", 420 | "js-yaml": "3.11.0", 421 | "json-stable-stringify-without-jsonify": "1.0.1", 422 | "levn": "0.3.0", 423 | "lodash": "4.17.5", 424 | "minimatch": "3.0.4", 425 | "mkdirp": "0.5.1", 426 | "natural-compare": "1.4.0", 427 | "optionator": "0.8.2", 428 | "path-is-inside": "1.0.2", 429 | "pluralize": "7.0.0", 430 | "progress": "2.0.0", 431 | "regexpp": "1.1.0", 432 | "require-uncached": "1.0.3", 433 | "semver": "5.5.0", 434 | "strip-ansi": "4.0.0", 435 | "strip-json-comments": "2.0.1", 436 | "table": "4.0.2", 437 | "text-table": "0.2.0" 438 | }, 439 | "dependencies": { 440 | "ansi-regex": { 441 | "version": "3.0.0", 442 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", 443 | "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", 444 | "dev": true 445 | }, 446 | "ansi-styles": { 447 | "version": "3.2.1", 448 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 449 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 450 | "dev": true, 451 | "requires": { 452 | "color-convert": "1.9.1" 453 | } 454 | }, 455 | "chalk": { 456 | "version": "2.3.2", 457 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", 458 | "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", 459 | "dev": true, 460 | "requires": { 461 | "ansi-styles": "3.2.1", 462 | "escape-string-regexp": "1.0.5", 463 | "supports-color": "5.3.0" 464 | } 465 | }, 466 | "esprima": { 467 | "version": "4.0.0", 468 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", 469 | "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", 470 | "dev": true 471 | }, 472 | "glob": { 473 | "version": "7.1.2", 474 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", 475 | "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", 476 | "dev": true, 477 | "requires": { 478 | "fs.realpath": "1.0.0", 479 | "inflight": "1.0.6", 480 | "inherits": "2.0.3", 481 | "minimatch": "3.0.4", 482 | "once": "1.4.0", 483 | "path-is-absolute": "1.0.1" 484 | } 485 | }, 486 | "js-yaml": { 487 | "version": "3.11.0", 488 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.11.0.tgz", 489 | "integrity": "sha512-saJstZWv7oNeOyBh3+Dx1qWzhW0+e6/8eDzo7p5rDFqxntSztloLtuKu+Ejhtq82jsilwOIZYsCz+lIjthg1Hw==", 490 | "dev": true, 491 | "requires": { 492 | "argparse": "1.0.10", 493 | "esprima": "4.0.0" 494 | } 495 | }, 496 | "strip-ansi": { 497 | "version": "4.0.0", 498 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", 499 | "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", 500 | "dev": true, 501 | "requires": { 502 | "ansi-regex": "3.0.0" 503 | } 504 | }, 505 | "supports-color": { 506 | "version": "5.3.0", 507 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", 508 | "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", 509 | "dev": true, 510 | "requires": { 511 | "has-flag": "3.0.0" 512 | } 513 | } 514 | } 515 | }, 516 | "eslint-scope": { 517 | "version": "3.7.1", 518 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz", 519 | "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", 520 | "dev": true, 521 | "requires": { 522 | "esrecurse": "4.2.1", 523 | "estraverse": "4.2.0" 524 | } 525 | }, 526 | "eslint-visitor-keys": { 527 | "version": "1.0.0", 528 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", 529 | "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==", 530 | "dev": true 531 | }, 532 | "espree": { 533 | "version": "3.5.4", 534 | "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", 535 | "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", 536 | "dev": true, 537 | "requires": { 538 | "acorn": "5.5.3", 539 | "acorn-jsx": "3.0.1" 540 | } 541 | }, 542 | "esprima": { 543 | "version": "2.7.3", 544 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", 545 | "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", 546 | "dev": true 547 | }, 548 | "esquery": { 549 | "version": "1.0.1", 550 | "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", 551 | "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", 552 | "dev": true, 553 | "requires": { 554 | "estraverse": "4.2.0" 555 | } 556 | }, 557 | "esrecurse": { 558 | "version": "4.2.1", 559 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", 560 | "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", 561 | "dev": true, 562 | "requires": { 563 | "estraverse": "4.2.0" 564 | } 565 | }, 566 | "estraverse": { 567 | "version": "4.2.0", 568 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", 569 | "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", 570 | "dev": true 571 | }, 572 | "esutils": { 573 | "version": "2.0.2", 574 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", 575 | "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", 576 | "dev": true 577 | }, 578 | "eventemitter2": { 579 | "version": "0.4.14", 580 | "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", 581 | "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=", 582 | "dev": true 583 | }, 584 | "exit": { 585 | "version": "0.1.2", 586 | "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", 587 | "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", 588 | "dev": true 589 | }, 590 | "external-editor": { 591 | "version": "2.2.0", 592 | "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", 593 | "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", 594 | "dev": true, 595 | "requires": { 596 | "chardet": "0.4.2", 597 | "iconv-lite": "0.4.21", 598 | "tmp": "0.0.33" 599 | } 600 | }, 601 | "fast-deep-equal": { 602 | "version": "1.1.0", 603 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", 604 | "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", 605 | "dev": true 606 | }, 607 | "fast-json-stable-stringify": { 608 | "version": "2.0.0", 609 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", 610 | "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", 611 | "dev": true 612 | }, 613 | "fast-levenshtein": { 614 | "version": "2.0.6", 615 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", 616 | "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", 617 | "dev": true 618 | }, 619 | "figures": { 620 | "version": "2.0.0", 621 | "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", 622 | "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", 623 | "dev": true, 624 | "requires": { 625 | "escape-string-regexp": "1.0.5" 626 | } 627 | }, 628 | "file-entry-cache": { 629 | "version": "2.0.0", 630 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", 631 | "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", 632 | "dev": true, 633 | "requires": { 634 | "flat-cache": "1.3.0", 635 | "object-assign": "4.1.1" 636 | } 637 | }, 638 | "find-up": { 639 | "version": "1.1.2", 640 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", 641 | "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", 642 | "dev": true, 643 | "requires": { 644 | "path-exists": "2.1.0", 645 | "pinkie-promise": "2.0.1" 646 | } 647 | }, 648 | "findup-sync": { 649 | "version": "0.3.0", 650 | "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.3.0.tgz", 651 | "integrity": "sha1-N5MKpdgWt3fANEXhlmzGeQpMCxY=", 652 | "dev": true, 653 | "requires": { 654 | "glob": "5.0.15" 655 | }, 656 | "dependencies": { 657 | "glob": { 658 | "version": "5.0.15", 659 | "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", 660 | "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", 661 | "dev": true, 662 | "requires": { 663 | "inflight": "1.0.6", 664 | "inherits": "2.0.3", 665 | "minimatch": "3.0.4", 666 | "once": "1.4.0", 667 | "path-is-absolute": "1.0.1" 668 | } 669 | } 670 | } 671 | }, 672 | "flat-cache": { 673 | "version": "1.3.0", 674 | "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", 675 | "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", 676 | "dev": true, 677 | "requires": { 678 | "circular-json": "0.3.3", 679 | "del": "2.2.2", 680 | "graceful-fs": "4.1.11", 681 | "write": "0.2.1" 682 | } 683 | }, 684 | "fs.realpath": { 685 | "version": "1.0.0", 686 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 687 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 688 | "dev": true 689 | }, 690 | "functional-red-black-tree": { 691 | "version": "1.0.1", 692 | "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", 693 | "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", 694 | "dev": true 695 | }, 696 | "get-stdin": { 697 | "version": "4.0.1", 698 | "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", 699 | "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", 700 | "dev": true 701 | }, 702 | "getobject": { 703 | "version": "0.1.0", 704 | "resolved": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz", 705 | "integrity": "sha1-BHpEl4n6Fg0Bj1SG7ZEyC27HiFw=", 706 | "dev": true 707 | }, 708 | "glob": { 709 | "version": "7.0.6", 710 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz", 711 | "integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=", 712 | "dev": true, 713 | "requires": { 714 | "fs.realpath": "1.0.0", 715 | "inflight": "1.0.6", 716 | "inherits": "2.0.3", 717 | "minimatch": "3.0.4", 718 | "once": "1.4.0", 719 | "path-is-absolute": "1.0.1" 720 | } 721 | }, 722 | "globals": { 723 | "version": "11.4.0", 724 | "resolved": "https://registry.npmjs.org/globals/-/globals-11.4.0.tgz", 725 | "integrity": "sha512-Dyzmifil8n/TmSqYDEXbm+C8yitzJQqQIlJQLNRMwa+BOUJpRC19pyVeN12JAjt61xonvXjtff+hJruTRXn5HA==", 726 | "dev": true 727 | }, 728 | "globby": { 729 | "version": "5.0.0", 730 | "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", 731 | "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", 732 | "dev": true, 733 | "requires": { 734 | "array-union": "1.0.2", 735 | "arrify": "1.0.1", 736 | "glob": "7.0.6", 737 | "object-assign": "4.1.1", 738 | "pify": "2.3.0", 739 | "pinkie-promise": "2.0.1" 740 | } 741 | }, 742 | "graceful-fs": { 743 | "version": "4.1.11", 744 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", 745 | "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", 746 | "dev": true 747 | }, 748 | "grunt": { 749 | "version": "1.0.2", 750 | "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.0.2.tgz", 751 | "integrity": "sha1-TmpeaVtwRy/VME9fqeNCNoNqc7w=", 752 | "dev": true, 753 | "requires": { 754 | "coffeescript": "1.10.0", 755 | "dateformat": "1.0.12", 756 | "eventemitter2": "0.4.14", 757 | "exit": "0.1.2", 758 | "findup-sync": "0.3.0", 759 | "glob": "7.0.6", 760 | "grunt-cli": "1.2.0", 761 | "grunt-known-options": "1.1.0", 762 | "grunt-legacy-log": "1.0.1", 763 | "grunt-legacy-util": "1.0.0", 764 | "iconv-lite": "0.4.21", 765 | "js-yaml": "3.5.5", 766 | "minimatch": "3.0.4", 767 | "nopt": "3.0.6", 768 | "path-is-absolute": "1.0.1", 769 | "rimraf": "2.2.8" 770 | }, 771 | "dependencies": { 772 | "grunt-cli": { 773 | "version": "1.2.0", 774 | "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.2.0.tgz", 775 | "integrity": "sha1-VisRnrsGndtGSs4oRVAb6Xs1tqg=", 776 | "dev": true, 777 | "requires": { 778 | "findup-sync": "0.3.0", 779 | "grunt-known-options": "1.1.0", 780 | "nopt": "3.0.6", 781 | "resolve": "1.1.7" 782 | } 783 | } 784 | } 785 | }, 786 | "grunt-contrib-uglify": { 787 | "version": "3.3.0", 788 | "resolved": "https://registry.npmjs.org/grunt-contrib-uglify/-/grunt-contrib-uglify-3.3.0.tgz", 789 | "integrity": "sha512-W9O7lJE3PlD8VCc5fyaf98QV7f5wEDiU4PBIh0+/6UBbk2LhgzEFS0/p+taH5UD3+PlEn7QPN0o06Z0To6SqXw==", 790 | "dev": true, 791 | "requires": { 792 | "chalk": "1.1.3", 793 | "maxmin": "1.1.0", 794 | "uglify-js": "3.3.20", 795 | "uri-path": "1.0.0" 796 | } 797 | }, 798 | "grunt-known-options": { 799 | "version": "1.1.0", 800 | "resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-1.1.0.tgz", 801 | "integrity": "sha1-pCdO6zL6dl2lp6OxcSYXzjsUQUk=", 802 | "dev": true 803 | }, 804 | "grunt-legacy-log": { 805 | "version": "1.0.1", 806 | "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-1.0.1.tgz", 807 | "integrity": "sha512-rwuyqNKlI0IPz0DvxzJjcEiQEBaBNVeb1LFoZKxSmHLETFUwhwUrqOsPIxURTKSwNZHZ4ht1YLBYmVU0YZAzHQ==", 808 | "dev": true, 809 | "requires": { 810 | "colors": "1.1.2", 811 | "grunt-legacy-log-utils": "1.0.0", 812 | "hooker": "0.2.3", 813 | "lodash": "4.17.5", 814 | "underscore.string": "3.3.4" 815 | } 816 | }, 817 | "grunt-legacy-log-utils": { 818 | "version": "1.0.0", 819 | "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-1.0.0.tgz", 820 | "integrity": "sha1-p7ji0Ps1taUPSvmG/BEnSevJbz0=", 821 | "dev": true, 822 | "requires": { 823 | "chalk": "1.1.3", 824 | "lodash": "4.3.0" 825 | }, 826 | "dependencies": { 827 | "lodash": { 828 | "version": "4.3.0", 829 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.3.0.tgz", 830 | "integrity": "sha1-79nEpuxT87BUEkKZFcPkgk5NJaQ=", 831 | "dev": true 832 | } 833 | } 834 | }, 835 | "grunt-legacy-util": { 836 | "version": "1.0.0", 837 | "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-1.0.0.tgz", 838 | "integrity": "sha1-OGqnjcbtUJhsKxiVcmWxtIq7m4Y=", 839 | "dev": true, 840 | "requires": { 841 | "async": "1.5.2", 842 | "exit": "0.1.2", 843 | "getobject": "0.1.0", 844 | "hooker": "0.2.3", 845 | "lodash": "4.3.0", 846 | "underscore.string": "3.2.3", 847 | "which": "1.2.14" 848 | }, 849 | "dependencies": { 850 | "lodash": { 851 | "version": "4.3.0", 852 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.3.0.tgz", 853 | "integrity": "sha1-79nEpuxT87BUEkKZFcPkgk5NJaQ=", 854 | "dev": true 855 | }, 856 | "underscore.string": { 857 | "version": "3.2.3", 858 | "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.2.3.tgz", 859 | "integrity": "sha1-gGmSYzZl1eX8tNsfs6hi62jp5to=", 860 | "dev": true 861 | } 862 | } 863 | }, 864 | "gruntify-eslint": { 865 | "version": "4.0.0", 866 | "resolved": "https://registry.npmjs.org/gruntify-eslint/-/gruntify-eslint-4.0.0.tgz", 867 | "integrity": "sha512-wEa2WjMGVDzQbq1QmOiDX51/CfaAIS5xx1oSKIjfWVLl/fYbV7PtfWsUhuaQrPIy1se4Crpg3kZFZndw02l16g==", 868 | "dev": true, 869 | "requires": { 870 | "eslint": "4.19.1" 871 | } 872 | }, 873 | "gzip-size": { 874 | "version": "1.0.0", 875 | "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-1.0.0.tgz", 876 | "integrity": "sha1-Zs+LEBBHInuVus5uodoMF37Vwi8=", 877 | "dev": true, 878 | "requires": { 879 | "browserify-zlib": "0.1.4", 880 | "concat-stream": "1.6.2" 881 | } 882 | }, 883 | "has-ansi": { 884 | "version": "2.0.0", 885 | "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", 886 | "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", 887 | "dev": true, 888 | "requires": { 889 | "ansi-regex": "2.1.1" 890 | } 891 | }, 892 | "has-flag": { 893 | "version": "3.0.0", 894 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 895 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", 896 | "dev": true 897 | }, 898 | "hooker": { 899 | "version": "0.2.3", 900 | "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz", 901 | "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=", 902 | "dev": true 903 | }, 904 | "hosted-git-info": { 905 | "version": "2.6.0", 906 | "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.6.0.tgz", 907 | "integrity": "sha512-lIbgIIQA3lz5XaB6vxakj6sDHADJiZadYEJB+FgA+C4nubM1NwcuvUr9EJPmnH1skZqpqUzWborWo8EIUi0Sdw==", 908 | "dev": true 909 | }, 910 | "iconv-lite": { 911 | "version": "0.4.21", 912 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.21.tgz", 913 | "integrity": "sha512-En5V9za5mBt2oUA03WGD3TwDv0MKAruqsuxstbMUZaj9W9k/m1CV/9py3l0L5kw9Bln8fdHQmzHSYtvpvTLpKw==", 914 | "dev": true, 915 | "requires": { 916 | "safer-buffer": "2.1.0" 917 | } 918 | }, 919 | "ignore": { 920 | "version": "3.3.7", 921 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.7.tgz", 922 | "integrity": "sha512-YGG3ejvBNHRqu0559EOxxNFihD0AjpvHlC/pdGKd3X3ofe+CoJkYazwNJYTNebqpPKN+VVQbh4ZFn1DivMNuHA==", 923 | "dev": true 924 | }, 925 | "imurmurhash": { 926 | "version": "0.1.4", 927 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 928 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", 929 | "dev": true 930 | }, 931 | "indent-string": { 932 | "version": "2.1.0", 933 | "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", 934 | "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", 935 | "dev": true, 936 | "requires": { 937 | "repeating": "2.0.1" 938 | } 939 | }, 940 | "inflight": { 941 | "version": "1.0.6", 942 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 943 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 944 | "dev": true, 945 | "requires": { 946 | "once": "1.4.0", 947 | "wrappy": "1.0.2" 948 | } 949 | }, 950 | "inherits": { 951 | "version": "2.0.3", 952 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 953 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", 954 | "dev": true 955 | }, 956 | "inquirer": { 957 | "version": "3.3.0", 958 | "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", 959 | "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", 960 | "dev": true, 961 | "requires": { 962 | "ansi-escapes": "3.1.0", 963 | "chalk": "2.3.2", 964 | "cli-cursor": "2.1.0", 965 | "cli-width": "2.2.0", 966 | "external-editor": "2.2.0", 967 | "figures": "2.0.0", 968 | "lodash": "4.17.5", 969 | "mute-stream": "0.0.7", 970 | "run-async": "2.3.0", 971 | "rx-lite": "4.0.8", 972 | "rx-lite-aggregates": "4.0.8", 973 | "string-width": "2.1.1", 974 | "strip-ansi": "4.0.0", 975 | "through": "2.3.8" 976 | }, 977 | "dependencies": { 978 | "ansi-regex": { 979 | "version": "3.0.0", 980 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", 981 | "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", 982 | "dev": true 983 | }, 984 | "ansi-styles": { 985 | "version": "3.2.1", 986 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 987 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 988 | "dev": true, 989 | "requires": { 990 | "color-convert": "1.9.1" 991 | } 992 | }, 993 | "chalk": { 994 | "version": "2.3.2", 995 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", 996 | "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", 997 | "dev": true, 998 | "requires": { 999 | "ansi-styles": "3.2.1", 1000 | "escape-string-regexp": "1.0.5", 1001 | "supports-color": "5.3.0" 1002 | } 1003 | }, 1004 | "strip-ansi": { 1005 | "version": "4.0.0", 1006 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", 1007 | "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", 1008 | "dev": true, 1009 | "requires": { 1010 | "ansi-regex": "3.0.0" 1011 | } 1012 | }, 1013 | "supports-color": { 1014 | "version": "5.3.0", 1015 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", 1016 | "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", 1017 | "dev": true, 1018 | "requires": { 1019 | "has-flag": "3.0.0" 1020 | } 1021 | } 1022 | } 1023 | }, 1024 | "is-arrayish": { 1025 | "version": "0.2.1", 1026 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", 1027 | "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", 1028 | "dev": true 1029 | }, 1030 | "is-builtin-module": { 1031 | "version": "1.0.0", 1032 | "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", 1033 | "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", 1034 | "dev": true, 1035 | "requires": { 1036 | "builtin-modules": "1.1.1" 1037 | } 1038 | }, 1039 | "is-finite": { 1040 | "version": "1.0.2", 1041 | "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", 1042 | "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", 1043 | "dev": true, 1044 | "requires": { 1045 | "number-is-nan": "1.0.1" 1046 | } 1047 | }, 1048 | "is-fullwidth-code-point": { 1049 | "version": "2.0.0", 1050 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", 1051 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", 1052 | "dev": true 1053 | }, 1054 | "is-path-cwd": { 1055 | "version": "1.0.0", 1056 | "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", 1057 | "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", 1058 | "dev": true 1059 | }, 1060 | "is-path-in-cwd": { 1061 | "version": "1.0.1", 1062 | "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", 1063 | "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", 1064 | "dev": true, 1065 | "requires": { 1066 | "is-path-inside": "1.0.1" 1067 | } 1068 | }, 1069 | "is-path-inside": { 1070 | "version": "1.0.1", 1071 | "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", 1072 | "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", 1073 | "dev": true, 1074 | "requires": { 1075 | "path-is-inside": "1.0.2" 1076 | } 1077 | }, 1078 | "is-promise": { 1079 | "version": "2.1.0", 1080 | "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", 1081 | "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", 1082 | "dev": true 1083 | }, 1084 | "is-resolvable": { 1085 | "version": "1.1.0", 1086 | "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", 1087 | "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", 1088 | "dev": true 1089 | }, 1090 | "is-utf8": { 1091 | "version": "0.2.1", 1092 | "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", 1093 | "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", 1094 | "dev": true 1095 | }, 1096 | "isarray": { 1097 | "version": "1.0.0", 1098 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 1099 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", 1100 | "dev": true 1101 | }, 1102 | "isexe": { 1103 | "version": "2.0.0", 1104 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 1105 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", 1106 | "dev": true 1107 | }, 1108 | "js-tokens": { 1109 | "version": "3.0.2", 1110 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", 1111 | "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", 1112 | "dev": true 1113 | }, 1114 | "js-yaml": { 1115 | "version": "3.5.5", 1116 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.5.5.tgz", 1117 | "integrity": "sha1-A3fDgBfKvHMisNH7zSWkkWQfL74=", 1118 | "dev": true, 1119 | "requires": { 1120 | "argparse": "1.0.10", 1121 | "esprima": "2.7.3" 1122 | } 1123 | }, 1124 | "json-schema-traverse": { 1125 | "version": "0.3.1", 1126 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", 1127 | "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", 1128 | "dev": true 1129 | }, 1130 | "json-stable-stringify-without-jsonify": { 1131 | "version": "1.0.1", 1132 | "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", 1133 | "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", 1134 | "dev": true 1135 | }, 1136 | "levn": { 1137 | "version": "0.3.0", 1138 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", 1139 | "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", 1140 | "dev": true, 1141 | "requires": { 1142 | "prelude-ls": "1.1.2", 1143 | "type-check": "0.3.2" 1144 | } 1145 | }, 1146 | "load-json-file": { 1147 | "version": "1.1.0", 1148 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", 1149 | "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", 1150 | "dev": true, 1151 | "requires": { 1152 | "graceful-fs": "4.1.11", 1153 | "parse-json": "2.2.0", 1154 | "pify": "2.3.0", 1155 | "pinkie-promise": "2.0.1", 1156 | "strip-bom": "2.0.0" 1157 | } 1158 | }, 1159 | "lodash": { 1160 | "version": "4.17.5", 1161 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", 1162 | "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", 1163 | "dev": true 1164 | }, 1165 | "loud-rejection": { 1166 | "version": "1.6.0", 1167 | "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", 1168 | "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", 1169 | "dev": true, 1170 | "requires": { 1171 | "currently-unhandled": "0.4.1", 1172 | "signal-exit": "3.0.2" 1173 | } 1174 | }, 1175 | "lru-cache": { 1176 | "version": "4.1.2", 1177 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.2.tgz", 1178 | "integrity": "sha512-wgeVXhrDwAWnIF/yZARsFnMBtdFXOg1b8RIrhilp+0iDYN4mdQcNZElDZ0e4B64BhaxeQ5zN7PMyvu7we1kPeQ==", 1179 | "dev": true, 1180 | "requires": { 1181 | "pseudomap": "1.0.2", 1182 | "yallist": "2.1.2" 1183 | } 1184 | }, 1185 | "map-obj": { 1186 | "version": "1.0.1", 1187 | "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", 1188 | "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", 1189 | "dev": true 1190 | }, 1191 | "maxmin": { 1192 | "version": "1.1.0", 1193 | "resolved": "https://registry.npmjs.org/maxmin/-/maxmin-1.1.0.tgz", 1194 | "integrity": "sha1-cTZehKmd2Piz99X94vANHn9zvmE=", 1195 | "dev": true, 1196 | "requires": { 1197 | "chalk": "1.1.3", 1198 | "figures": "1.7.0", 1199 | "gzip-size": "1.0.0", 1200 | "pretty-bytes": "1.0.4" 1201 | }, 1202 | "dependencies": { 1203 | "figures": { 1204 | "version": "1.7.0", 1205 | "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", 1206 | "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", 1207 | "dev": true, 1208 | "requires": { 1209 | "escape-string-regexp": "1.0.5", 1210 | "object-assign": "4.1.1" 1211 | } 1212 | } 1213 | } 1214 | }, 1215 | "meow": { 1216 | "version": "3.7.0", 1217 | "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", 1218 | "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", 1219 | "dev": true, 1220 | "requires": { 1221 | "camelcase-keys": "2.1.0", 1222 | "decamelize": "1.2.0", 1223 | "loud-rejection": "1.6.0", 1224 | "map-obj": "1.0.1", 1225 | "minimist": "1.2.0", 1226 | "normalize-package-data": "2.4.0", 1227 | "object-assign": "4.1.1", 1228 | "read-pkg-up": "1.0.1", 1229 | "redent": "1.0.0", 1230 | "trim-newlines": "1.0.0" 1231 | } 1232 | }, 1233 | "mimic-fn": { 1234 | "version": "1.2.0", 1235 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", 1236 | "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", 1237 | "dev": true 1238 | }, 1239 | "minimatch": { 1240 | "version": "3.0.4", 1241 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 1242 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 1243 | "dev": true, 1244 | "requires": { 1245 | "brace-expansion": "1.1.11" 1246 | } 1247 | }, 1248 | "minimist": { 1249 | "version": "1.2.0", 1250 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", 1251 | "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", 1252 | "dev": true 1253 | }, 1254 | "mkdirp": { 1255 | "version": "0.5.1", 1256 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", 1257 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", 1258 | "dev": true, 1259 | "requires": { 1260 | "minimist": "0.0.8" 1261 | }, 1262 | "dependencies": { 1263 | "minimist": { 1264 | "version": "0.0.8", 1265 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", 1266 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", 1267 | "dev": true 1268 | } 1269 | } 1270 | }, 1271 | "ms": { 1272 | "version": "2.0.0", 1273 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 1274 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", 1275 | "dev": true 1276 | }, 1277 | "mute-stream": { 1278 | "version": "0.0.7", 1279 | "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", 1280 | "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", 1281 | "dev": true 1282 | }, 1283 | "natural-compare": { 1284 | "version": "1.4.0", 1285 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", 1286 | "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", 1287 | "dev": true 1288 | }, 1289 | "nopt": { 1290 | "version": "3.0.6", 1291 | "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", 1292 | "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", 1293 | "dev": true, 1294 | "requires": { 1295 | "abbrev": "1.1.1" 1296 | } 1297 | }, 1298 | "normalize-package-data": { 1299 | "version": "2.4.0", 1300 | "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", 1301 | "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", 1302 | "dev": true, 1303 | "requires": { 1304 | "hosted-git-info": "2.6.0", 1305 | "is-builtin-module": "1.0.0", 1306 | "semver": "5.5.0", 1307 | "validate-npm-package-license": "3.0.3" 1308 | } 1309 | }, 1310 | "number-is-nan": { 1311 | "version": "1.0.1", 1312 | "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", 1313 | "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", 1314 | "dev": true 1315 | }, 1316 | "object-assign": { 1317 | "version": "4.1.1", 1318 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 1319 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", 1320 | "dev": true 1321 | }, 1322 | "once": { 1323 | "version": "1.4.0", 1324 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 1325 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 1326 | "dev": true, 1327 | "requires": { 1328 | "wrappy": "1.0.2" 1329 | } 1330 | }, 1331 | "onetime": { 1332 | "version": "2.0.1", 1333 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", 1334 | "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", 1335 | "dev": true, 1336 | "requires": { 1337 | "mimic-fn": "1.2.0" 1338 | } 1339 | }, 1340 | "optionator": { 1341 | "version": "0.8.2", 1342 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", 1343 | "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", 1344 | "dev": true, 1345 | "requires": { 1346 | "deep-is": "0.1.3", 1347 | "fast-levenshtein": "2.0.6", 1348 | "levn": "0.3.0", 1349 | "prelude-ls": "1.1.2", 1350 | "type-check": "0.3.2", 1351 | "wordwrap": "1.0.0" 1352 | } 1353 | }, 1354 | "os-tmpdir": { 1355 | "version": "1.0.2", 1356 | "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", 1357 | "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", 1358 | "dev": true 1359 | }, 1360 | "pako": { 1361 | "version": "0.2.9", 1362 | "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", 1363 | "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=", 1364 | "dev": true 1365 | }, 1366 | "parse-json": { 1367 | "version": "2.2.0", 1368 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", 1369 | "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", 1370 | "dev": true, 1371 | "requires": { 1372 | "error-ex": "1.3.1" 1373 | } 1374 | }, 1375 | "path-exists": { 1376 | "version": "2.1.0", 1377 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", 1378 | "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", 1379 | "dev": true, 1380 | "requires": { 1381 | "pinkie-promise": "2.0.1" 1382 | } 1383 | }, 1384 | "path-is-absolute": { 1385 | "version": "1.0.1", 1386 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 1387 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 1388 | "dev": true 1389 | }, 1390 | "path-is-inside": { 1391 | "version": "1.0.2", 1392 | "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", 1393 | "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", 1394 | "dev": true 1395 | }, 1396 | "path-type": { 1397 | "version": "1.1.0", 1398 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", 1399 | "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", 1400 | "dev": true, 1401 | "requires": { 1402 | "graceful-fs": "4.1.11", 1403 | "pify": "2.3.0", 1404 | "pinkie-promise": "2.0.1" 1405 | } 1406 | }, 1407 | "pify": { 1408 | "version": "2.3.0", 1409 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 1410 | "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", 1411 | "dev": true 1412 | }, 1413 | "pinkie": { 1414 | "version": "2.0.4", 1415 | "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", 1416 | "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", 1417 | "dev": true 1418 | }, 1419 | "pinkie-promise": { 1420 | "version": "2.0.1", 1421 | "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", 1422 | "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", 1423 | "dev": true, 1424 | "requires": { 1425 | "pinkie": "2.0.4" 1426 | } 1427 | }, 1428 | "pluralize": { 1429 | "version": "7.0.0", 1430 | "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", 1431 | "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", 1432 | "dev": true 1433 | }, 1434 | "prelude-ls": { 1435 | "version": "1.1.2", 1436 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", 1437 | "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", 1438 | "dev": true 1439 | }, 1440 | "pretty-bytes": { 1441 | "version": "1.0.4", 1442 | "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-1.0.4.tgz", 1443 | "integrity": "sha1-CiLoIQYJrTVUL4yNXSFZr/B1HIQ=", 1444 | "dev": true, 1445 | "requires": { 1446 | "get-stdin": "4.0.1", 1447 | "meow": "3.7.0" 1448 | } 1449 | }, 1450 | "process-nextick-args": { 1451 | "version": "2.0.0", 1452 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", 1453 | "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", 1454 | "dev": true 1455 | }, 1456 | "progress": { 1457 | "version": "2.0.0", 1458 | "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz", 1459 | "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=", 1460 | "dev": true 1461 | }, 1462 | "pseudomap": { 1463 | "version": "1.0.2", 1464 | "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", 1465 | "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", 1466 | "dev": true 1467 | }, 1468 | "read-pkg": { 1469 | "version": "1.1.0", 1470 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", 1471 | "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", 1472 | "dev": true, 1473 | "requires": { 1474 | "load-json-file": "1.1.0", 1475 | "normalize-package-data": "2.4.0", 1476 | "path-type": "1.1.0" 1477 | } 1478 | }, 1479 | "read-pkg-up": { 1480 | "version": "1.0.1", 1481 | "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", 1482 | "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", 1483 | "dev": true, 1484 | "requires": { 1485 | "find-up": "1.1.2", 1486 | "read-pkg": "1.1.0" 1487 | } 1488 | }, 1489 | "readable-stream": { 1490 | "version": "2.3.6", 1491 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", 1492 | "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", 1493 | "dev": true, 1494 | "requires": { 1495 | "core-util-is": "1.0.2", 1496 | "inherits": "2.0.3", 1497 | "isarray": "1.0.0", 1498 | "process-nextick-args": "2.0.0", 1499 | "safe-buffer": "5.1.1", 1500 | "string_decoder": "1.1.1", 1501 | "util-deprecate": "1.0.2" 1502 | } 1503 | }, 1504 | "redent": { 1505 | "version": "1.0.0", 1506 | "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", 1507 | "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", 1508 | "dev": true, 1509 | "requires": { 1510 | "indent-string": "2.1.0", 1511 | "strip-indent": "1.0.1" 1512 | } 1513 | }, 1514 | "regexpp": { 1515 | "version": "1.1.0", 1516 | "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz", 1517 | "integrity": "sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw==", 1518 | "dev": true 1519 | }, 1520 | "repeating": { 1521 | "version": "2.0.1", 1522 | "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", 1523 | "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", 1524 | "dev": true, 1525 | "requires": { 1526 | "is-finite": "1.0.2" 1527 | } 1528 | }, 1529 | "require-uncached": { 1530 | "version": "1.0.3", 1531 | "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", 1532 | "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", 1533 | "dev": true, 1534 | "requires": { 1535 | "caller-path": "0.1.0", 1536 | "resolve-from": "1.0.1" 1537 | } 1538 | }, 1539 | "resolve": { 1540 | "version": "1.1.7", 1541 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", 1542 | "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", 1543 | "dev": true 1544 | }, 1545 | "resolve-from": { 1546 | "version": "1.0.1", 1547 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", 1548 | "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", 1549 | "dev": true 1550 | }, 1551 | "restore-cursor": { 1552 | "version": "2.0.0", 1553 | "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", 1554 | "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", 1555 | "dev": true, 1556 | "requires": { 1557 | "onetime": "2.0.1", 1558 | "signal-exit": "3.0.2" 1559 | } 1560 | }, 1561 | "rimraf": { 1562 | "version": "2.2.8", 1563 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz", 1564 | "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=", 1565 | "dev": true 1566 | }, 1567 | "run-async": { 1568 | "version": "2.3.0", 1569 | "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", 1570 | "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", 1571 | "dev": true, 1572 | "requires": { 1573 | "is-promise": "2.1.0" 1574 | } 1575 | }, 1576 | "rx-lite": { 1577 | "version": "4.0.8", 1578 | "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", 1579 | "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", 1580 | "dev": true 1581 | }, 1582 | "rx-lite-aggregates": { 1583 | "version": "4.0.8", 1584 | "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", 1585 | "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", 1586 | "dev": true, 1587 | "requires": { 1588 | "rx-lite": "4.0.8" 1589 | } 1590 | }, 1591 | "safe-buffer": { 1592 | "version": "5.1.1", 1593 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", 1594 | "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", 1595 | "dev": true 1596 | }, 1597 | "safer-buffer": { 1598 | "version": "2.1.0", 1599 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.0.tgz", 1600 | "integrity": "sha512-HQhCIIl7TrF1aa7d352EXG+xumPERvoIWxOqq2CagDId0FVGtlG/fuQ7kZT+wZ7ytyGiP3pnYUVni5otBzOVmA==", 1601 | "dev": true 1602 | }, 1603 | "semver": { 1604 | "version": "5.5.0", 1605 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", 1606 | "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", 1607 | "dev": true 1608 | }, 1609 | "shebang-command": { 1610 | "version": "1.2.0", 1611 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", 1612 | "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", 1613 | "dev": true, 1614 | "requires": { 1615 | "shebang-regex": "1.0.0" 1616 | } 1617 | }, 1618 | "shebang-regex": { 1619 | "version": "1.0.0", 1620 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", 1621 | "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", 1622 | "dev": true 1623 | }, 1624 | "signal-exit": { 1625 | "version": "3.0.2", 1626 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", 1627 | "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", 1628 | "dev": true 1629 | }, 1630 | "slice-ansi": { 1631 | "version": "1.0.0", 1632 | "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", 1633 | "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", 1634 | "dev": true, 1635 | "requires": { 1636 | "is-fullwidth-code-point": "2.0.0" 1637 | } 1638 | }, 1639 | "source-map": { 1640 | "version": "0.6.1", 1641 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 1642 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 1643 | "dev": true 1644 | }, 1645 | "spdx-correct": { 1646 | "version": "3.0.0", 1647 | "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", 1648 | "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", 1649 | "dev": true, 1650 | "requires": { 1651 | "spdx-expression-parse": "3.0.0", 1652 | "spdx-license-ids": "3.0.0" 1653 | } 1654 | }, 1655 | "spdx-exceptions": { 1656 | "version": "2.1.0", 1657 | "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", 1658 | "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==", 1659 | "dev": true 1660 | }, 1661 | "spdx-expression-parse": { 1662 | "version": "3.0.0", 1663 | "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", 1664 | "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", 1665 | "dev": true, 1666 | "requires": { 1667 | "spdx-exceptions": "2.1.0", 1668 | "spdx-license-ids": "3.0.0" 1669 | } 1670 | }, 1671 | "spdx-license-ids": { 1672 | "version": "3.0.0", 1673 | "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", 1674 | "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==", 1675 | "dev": true 1676 | }, 1677 | "sprintf-js": { 1678 | "version": "1.1.1", 1679 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.1.tgz", 1680 | "integrity": "sha1-Nr54Mgr+WAH2zqPueLblqrlA6gw=", 1681 | "dev": true 1682 | }, 1683 | "string-width": { 1684 | "version": "2.1.1", 1685 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", 1686 | "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", 1687 | "dev": true, 1688 | "requires": { 1689 | "is-fullwidth-code-point": "2.0.0", 1690 | "strip-ansi": "4.0.0" 1691 | }, 1692 | "dependencies": { 1693 | "ansi-regex": { 1694 | "version": "3.0.0", 1695 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", 1696 | "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", 1697 | "dev": true 1698 | }, 1699 | "strip-ansi": { 1700 | "version": "4.0.0", 1701 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", 1702 | "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", 1703 | "dev": true, 1704 | "requires": { 1705 | "ansi-regex": "3.0.0" 1706 | } 1707 | } 1708 | } 1709 | }, 1710 | "string_decoder": { 1711 | "version": "1.1.1", 1712 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 1713 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 1714 | "dev": true, 1715 | "requires": { 1716 | "safe-buffer": "5.1.1" 1717 | } 1718 | }, 1719 | "strip-ansi": { 1720 | "version": "3.0.1", 1721 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", 1722 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", 1723 | "dev": true, 1724 | "requires": { 1725 | "ansi-regex": "2.1.1" 1726 | } 1727 | }, 1728 | "strip-bom": { 1729 | "version": "2.0.0", 1730 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", 1731 | "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", 1732 | "dev": true, 1733 | "requires": { 1734 | "is-utf8": "0.2.1" 1735 | } 1736 | }, 1737 | "strip-indent": { 1738 | "version": "1.0.1", 1739 | "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", 1740 | "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", 1741 | "dev": true, 1742 | "requires": { 1743 | "get-stdin": "4.0.1" 1744 | } 1745 | }, 1746 | "strip-json-comments": { 1747 | "version": "2.0.1", 1748 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", 1749 | "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", 1750 | "dev": true 1751 | }, 1752 | "supports-color": { 1753 | "version": "2.0.0", 1754 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", 1755 | "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", 1756 | "dev": true 1757 | }, 1758 | "table": { 1759 | "version": "4.0.2", 1760 | "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", 1761 | "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", 1762 | "dev": true, 1763 | "requires": { 1764 | "ajv": "5.5.2", 1765 | "ajv-keywords": "2.1.1", 1766 | "chalk": "2.3.2", 1767 | "lodash": "4.17.5", 1768 | "slice-ansi": "1.0.0", 1769 | "string-width": "2.1.1" 1770 | }, 1771 | "dependencies": { 1772 | "ansi-styles": { 1773 | "version": "3.2.1", 1774 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 1775 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 1776 | "dev": true, 1777 | "requires": { 1778 | "color-convert": "1.9.1" 1779 | } 1780 | }, 1781 | "chalk": { 1782 | "version": "2.3.2", 1783 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", 1784 | "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", 1785 | "dev": true, 1786 | "requires": { 1787 | "ansi-styles": "3.2.1", 1788 | "escape-string-regexp": "1.0.5", 1789 | "supports-color": "5.3.0" 1790 | } 1791 | }, 1792 | "supports-color": { 1793 | "version": "5.3.0", 1794 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", 1795 | "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", 1796 | "dev": true, 1797 | "requires": { 1798 | "has-flag": "3.0.0" 1799 | } 1800 | } 1801 | } 1802 | }, 1803 | "text-table": { 1804 | "version": "0.2.0", 1805 | "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", 1806 | "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", 1807 | "dev": true 1808 | }, 1809 | "through": { 1810 | "version": "2.3.8", 1811 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", 1812 | "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", 1813 | "dev": true 1814 | }, 1815 | "tmp": { 1816 | "version": "0.0.33", 1817 | "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", 1818 | "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", 1819 | "dev": true, 1820 | "requires": { 1821 | "os-tmpdir": "1.0.2" 1822 | } 1823 | }, 1824 | "trim-newlines": { 1825 | "version": "1.0.0", 1826 | "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", 1827 | "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", 1828 | "dev": true 1829 | }, 1830 | "type-check": { 1831 | "version": "0.3.2", 1832 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", 1833 | "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", 1834 | "dev": true, 1835 | "requires": { 1836 | "prelude-ls": "1.1.2" 1837 | } 1838 | }, 1839 | "typedarray": { 1840 | "version": "0.0.6", 1841 | "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", 1842 | "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", 1843 | "dev": true 1844 | }, 1845 | "uglify-js": { 1846 | "version": "3.3.20", 1847 | "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.3.20.tgz", 1848 | "integrity": "sha512-WpLkWCf9sGvGZnIvBV0PNID9BATQNT/IXKAmqegfKzIPcTmTV3FP8NQpoogQkt/Y402x2sOFdaHUmqFY9IZp+g==", 1849 | "dev": true, 1850 | "requires": { 1851 | "commander": "2.15.1", 1852 | "source-map": "0.6.1" 1853 | } 1854 | }, 1855 | "underscore.string": { 1856 | "version": "3.3.4", 1857 | "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.4.tgz", 1858 | "integrity": "sha1-LCo/n4PmR2L9xF5s6sZRQoZCE9s=", 1859 | "dev": true, 1860 | "requires": { 1861 | "sprintf-js": "1.1.1", 1862 | "util-deprecate": "1.0.2" 1863 | } 1864 | }, 1865 | "uri-path": { 1866 | "version": "1.0.0", 1867 | "resolved": "https://registry.npmjs.org/uri-path/-/uri-path-1.0.0.tgz", 1868 | "integrity": "sha1-l0fwGDWJM8Md4PzP2C0TjmcmLjI=", 1869 | "dev": true 1870 | }, 1871 | "util-deprecate": { 1872 | "version": "1.0.2", 1873 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 1874 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", 1875 | "dev": true 1876 | }, 1877 | "validate-npm-package-license": { 1878 | "version": "3.0.3", 1879 | "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", 1880 | "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", 1881 | "dev": true, 1882 | "requires": { 1883 | "spdx-correct": "3.0.0", 1884 | "spdx-expression-parse": "3.0.0" 1885 | } 1886 | }, 1887 | "which": { 1888 | "version": "1.2.14", 1889 | "resolved": "https://registry.npmjs.org/which/-/which-1.2.14.tgz", 1890 | "integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=", 1891 | "dev": true, 1892 | "requires": { 1893 | "isexe": "2.0.0" 1894 | } 1895 | }, 1896 | "wordwrap": { 1897 | "version": "1.0.0", 1898 | "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", 1899 | "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", 1900 | "dev": true 1901 | }, 1902 | "wrappy": { 1903 | "version": "1.0.2", 1904 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 1905 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 1906 | "dev": true 1907 | }, 1908 | "write": { 1909 | "version": "0.2.1", 1910 | "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", 1911 | "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", 1912 | "dev": true, 1913 | "requires": { 1914 | "mkdirp": "0.5.1" 1915 | } 1916 | }, 1917 | "yallist": { 1918 | "version": "2.1.2", 1919 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", 1920 | "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", 1921 | "dev": true 1922 | } 1923 | } 1924 | } 1925 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jscroll", 3 | "version": "2.4.1", 4 | "description": "jScroll is a jQuery plugin for infinite scrolling / auto-paging.", 5 | "main": "jquery.jscroll.js", 6 | "scripts": { 7 | "build": "grunt", 8 | "test": "grunt eslint" 9 | }, 10 | "repository": { 11 | "type": "git", 12 | "url": "https://github.com/pklauzinski/jscroll.git" 13 | }, 14 | "keywords": [ 15 | "jscroll", 16 | "infinite-scroll", 17 | "infinite-scrolling", 18 | "jquery-scrolling", 19 | "ajax-scrolling", 20 | "scrolling", 21 | "auto-paging", 22 | "lazy-loading", 23 | "jquery-plugin", 24 | "ecosystem:jquery" 25 | ], 26 | "author": { 27 | "name": "Philip Klauzinski", 28 | "url": "https://webtopian.com" 29 | }, 30 | "license": "MIT", 31 | "bugs": { 32 | "url": "https://github.com/pklauzinski/jscroll/issues" 33 | }, 34 | "homepage": "https://jscroll.com", 35 | "peerDependencies": { 36 | "jquery": ">=1.8.0" 37 | }, 38 | "devDependencies": { 39 | "grunt": "^1.0.2", 40 | "grunt-contrib-uglify": "3.3.0", 41 | "gruntify-eslint": "^4.0.0" 42 | } 43 | } 44 | --------------------------------------------------------------------------------