├── .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 | [](https://travis-ci.org/pklauzinski/jscroll)
4 | [](https://www.npmjs.com/package/jscroll)
5 | [](https://github.com/pklauzinski/jscroll)
6 | [](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...',
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 | 
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...',
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 |
--------------------------------------------------------------------------------