From d44e180dbc7e1c6c3310bb5371a1dd1f6ec3fa90 Mon Sep 17 00:00:00 2001 From: MARCOS VINICIUS ROCHA BAESSE Date: Mon, 25 Sep 2017 10:08:53 -0300 Subject: [PATCH 01/42] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d09f76b2..7f362758 100644 --- a/README.md +++ b/README.md @@ -104,7 +104,7 @@ Before opening a new [issue](https://github.com/igorescobar/jQuery-Mask-Plugin/i #### [E-mail mask?](https://github.com/igorescobar/jQuery-Mask-Plugin/issues/582) ## Bugs? -Did you read our [docs](https://igorescobar.github.io/jQuery-Mask-Plugin/)? Yes? Cool! So now... make sure that you have a *functional* [jsfiddle](http://jsfiddle.net/) exemplifying your problem and open an [issue](https://github.com/igorescobar/jQuery-Mask-Plugin/issues) for us. Don't know how to do it? Use this [fiddle example](http://jsfiddle.net/igorescobar/6pco4om7/). +Did you read our [docs](https://igorescobar.github.io/jQuery-Mask-Plugin/docs.html)? Yes? Cool! So now... make sure that you have a *functional* [jsfiddle](http://jsfiddle.net/) exemplifying your problem and open an [issue](https://github.com/igorescobar/jQuery-Mask-Plugin/issues) for us. Don't know how to do it? Use this [fiddle example](http://jsfiddle.net/igorescobar/6pco4om7/). ## Contributing * **Bug Reporting**: Yes! You can contribute opening [issues](https://github.com/igorescobar/jQuery-Mask-Plugin/issues)! From b68d6b569af690c82e23c5bda0167189b82eb98f Mon Sep 17 00:00:00 2001 From: Igor Escobar Date: Thu, 28 Sep 2017 11:50:07 +0100 Subject: [PATCH 02/42] trying to fix caret position for those who type as fast as a thunder. --- src/jquery.mask.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/jquery.mask.js b/src/jquery.mask.js index d60966fc..a94944a9 100755 --- a/src/jquery.mask.js +++ b/src/jquery.mask.js @@ -230,7 +230,7 @@ if (caretPosNew > oldValL) { // if the cursor is at the end keep it there - caretPosNew = newValL; + caretPosNew = newValL * 10; } else if (caretPosOld >= caretPosNew && caretPosOld !== oldValL) { if (!p.maskDigitPosMapOld[caretPosNew]) { From 8a865403ee0dd1eb105d06fc2b7d2f360834ab1e Mon Sep 17 00:00:00 2001 From: Igor Escobar Date: Wed, 4 Oct 2017 09:56:12 +0100 Subject: [PATCH 03/42] adding a few comments for the future me --- src/jquery.mask.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/jquery.mask.js b/src/jquery.mask.js index a94944a9..5ea4a059 100755 --- a/src/jquery.mask.js +++ b/src/jquery.mask.js @@ -228,11 +228,10 @@ } } + // if the cursor is at the end keep it there if (caretPosNew > oldValL) { - // if the cursor is at the end keep it there caretPosNew = newValL * 10; - } - else if (caretPosOld >= caretPosNew && caretPosOld !== oldValL) { + } else if (caretPosOld >= caretPosNew && caretPosOld !== oldValL) { if (!p.maskDigitPosMapOld[caretPosNew]) { var caretPos = caretPosNew; caretPosNew -= maskDigitsBeforeCaretAllOld - maskDigitsBeforeCaretAll; @@ -259,6 +258,8 @@ var newVal = p.getMasked(), caretPos = p.getCaret(); + // this is a compensation to devices/browsers that don't compensate + // caret positioning the right way setTimeout(function() { p.setCaret(p.calculateCaretPosition()); }, 10); From 1526015318a7d6f852ff4aecfec21cb220b6c206 Mon Sep 17 00:00:00 2001 From: Igor Escobar Date: Wed, 4 Oct 2017 09:57:05 +0100 Subject: [PATCH 04/42] generating jquery mask files v1.14.12 --- bower.json | 2 +- component.json | 2 +- dist/jquery.mask.js | 11 ++++++----- dist/jquery.mask.min.js | 6 +++--- package.js | 2 +- package.json | 2 +- src/jquery.mask.js | 2 +- 7 files changed, 14 insertions(+), 13 deletions(-) diff --git a/bower.json b/bower.json index c3bffbe4..b7bc19f5 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "jquery-mask-plugin", - "version": "1.14.11", + "version": "1.14.12", "main": "dist/jquery.mask.js", "ignore": [ "deploy.rb", diff --git a/component.json b/component.json index 2dba21c3..88db6736 100644 --- a/component.json +++ b/component.json @@ -1,7 +1,7 @@ { "name": "jQuery-Mask-Plugin", "description": "A jQuery Plugin to make masks on form fields and HTML elements.", - "version": "1.14.11", + "version": "1.14.12", "keywords": ["javascript", "mask", "form"], "scripts": [ "dist/jquery.mask.js" diff --git a/dist/jquery.mask.js b/dist/jquery.mask.js index d60966fc..b96fecae 100755 --- a/dist/jquery.mask.js +++ b/dist/jquery.mask.js @@ -1,6 +1,6 @@ /** * jquery.mask.js - * @version: v1.14.11 + * @version: v1.14.12 * @author: Igor Escobar * * Created by Igor Escobar on 2012-03-10. Please report any bug at http://blog.igorescobar.com @@ -228,11 +228,10 @@ } } + // if the cursor is at the end keep it there if (caretPosNew > oldValL) { - // if the cursor is at the end keep it there - caretPosNew = newValL; - } - else if (caretPosOld >= caretPosNew && caretPosOld !== oldValL) { + caretPosNew = newValL * 10; + } else if (caretPosOld >= caretPosNew && caretPosOld !== oldValL) { if (!p.maskDigitPosMapOld[caretPosNew]) { var caretPos = caretPosNew; caretPosNew -= maskDigitsBeforeCaretAllOld - maskDigitsBeforeCaretAll; @@ -259,6 +258,8 @@ var newVal = p.getMasked(), caretPos = p.getCaret(); + // this is a compensation to devices/browsers that don't compensate + // caret positioning the right way setTimeout(function() { p.setCaret(p.calculateCaretPosition()); }, 10); diff --git a/dist/jquery.mask.min.js b/dist/jquery.mask.min.js index cd8e10a7..ca630c82 100644 --- a/dist/jquery.mask.min.js +++ b/dist/jquery.mask.min.js @@ -1,4 +1,4 @@ -// jQuery Mask Plugin v1.14.11 +// jQuery Mask Plugin v1.14.12 // github.com/igorescobar/jQuery-Mask-Plugin var $jscomp={scope:{},findInternal:function(a,l,d){a instanceof String&&(a=String(a));for(var p=a.length,h=0;hd?g=e:f>=g&&f!==d?c.maskDigitPosMapOld[g]||(f=g,g=g-(l-h)-a,c.maskDigitPosMap[g]&&(g=f)):g>f&&(g= -g+(h-l)+m)}return g},behaviour:function(f){f=f||window.event;c.invalid=[];var e=b.data("mask-keycode");if(-1===a.inArray(e,m.byPassKeys)){var e=c.getMasked(),g=c.getCaret();setTimeout(function(){c.setCaret(c.calculateCaretPosition())},10);c.val(e);c.setCaret(g);return c.callbacks(f)}},getMasked:function(a,b){var g=[],d=void 0===b?c.val():b+"",n=0,h=e.length,q=0,l=d.length,k=1,r="push",p=-1,t=0,y=[],v,z;f.reverse?(r="unshift",k=-1,v=0,n=h-1,q=l-1,z=function(){return-1d?g=10*e:f>=g&&f!==d?c.maskDigitPosMapOld[g]||(f=g,g=g-(l-h)-a,c.maskDigitPosMap[g]&&(g=f)):g>f&& +(g=g+(h-l)+m)}return g},behaviour:function(f){f=f||window.event;c.invalid=[];var e=b.data("mask-keycode");if(-1===a.inArray(e,m.byPassKeys)){var e=c.getMasked(),g=c.getCaret();setTimeout(function(){c.setCaret(c.calculateCaretPosition())},10);c.val(e);c.setCaret(g);return c.callbacks(f)}},getMasked:function(a,b){var g=[],d=void 0===b?c.val():b+"",n=0,h=e.length,q=0,l=d.length,k=1,r="push",p=-1,t=0,y=[],v,z;f.reverse?(r="unshift",k=-1,v=0,n=h-1,q=l-1,z=function(){return-1", "homepage": "http://igorescobar.github.io/jQuery-Mask-Plugin/", diff --git a/src/jquery.mask.js b/src/jquery.mask.js index 5ea4a059..b96fecae 100755 --- a/src/jquery.mask.js +++ b/src/jquery.mask.js @@ -1,6 +1,6 @@ /** * jquery.mask.js - * @version: v1.14.11 + * @version: v1.14.12 * @author: Igor Escobar * * Created by Igor Escobar on 2012-03-10. Please report any bug at http://blog.igorescobar.com From 2e4b1c00fd5c3ce3b130b7d55f136b18e92c2af8 Mon Sep 17 00:00:00 2001 From: Igor Escobar Date: Wed, 4 Oct 2017 09:57:30 +0100 Subject: [PATCH 05/42] upgrading changelog --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 593efb1f..26b4153b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +== v1.14.12 (Oct/04 2017 09:57 +0100 by Igor Escobar) == + +Bugfixes: + +* bug fixing on caret positioning on some devices + == v1.14.11 (May/30 2017 21:53 +0100 by Igor Escobar) == Bugfixes: From e8285dfdedb06ed7df8d0e90d6787c4afd38e2b9 Mon Sep 17 00:00:00 2001 From: Lukas Drgon Date: Mon, 9 Oct 2017 20:24:42 +0200 Subject: [PATCH 06/42] Add jsDelivr hits badge --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7f362758..4fd4c22f 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,7 @@ A jQuery Plugin to make masks on form fields and HTML elements. [![Build Status](https://travis-ci.org/igorescobar/jQuery-Mask-Plugin.png)](https://travis-ci.org/igorescobar/jQuery-Mask-Plugin) [![Code Climate](https://codeclimate.com/github/igorescobar/jQuery-Mask-Plugin.png)](https://codeclimate.com/github/igorescobar/jQuery-Mask-Plugin) +[![jsDelivr Hits](https://data.jsdelivr.com/v1/package/npm/jquery-mask-plugin/badge?style=rounded)](https://www.jsdelivr.com/package/npm/jquery-mask-plugin) # Documentation, Demos & Usage Examples https://igorescobar.github.io/jQuery-Mask-Plugin/ From 8e75c35c647d9d86f79dc95923c482fac4db5700 Mon Sep 17 00:00:00 2001 From: Igor Escobar Date: Tue, 17 Oct 2017 09:44:01 +0100 Subject: [PATCH 07/42] fixing umd link on the code comments --- src/jquery.mask.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/jquery.mask.js b/src/jquery.mask.js index b96fecae..2d38e6a0 100755 --- a/src/jquery.mask.js +++ b/src/jquery.mask.js @@ -38,7 +38,7 @@ 'use strict'; // UMD (Universal Module Definition) patterns for JavaScript modules that work everywhere. -// https://github.com/umdjs/umd/blob/master/jqueryPluginCommonjs.js +// https://github.com/umdjs/umd/blob/master/templates/jqueryPlugin.js (function (factory, jQuery, Zepto) { if (typeof define === 'function' && define.amd) { From 074995e2b85aa674a0d96f8d38b5ed250f9e8022 Mon Sep 17 00:00:00 2001 From: Igor Escobar Date: Tue, 17 Oct 2017 14:19:42 +0100 Subject: [PATCH 08/42] fixing some links on source code comments --- src/jquery.mask.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/jquery.mask.js b/src/jquery.mask.js index 2d38e6a0..04b3126b 100755 --- a/src/jquery.mask.js +++ b/src/jquery.mask.js @@ -3,9 +3,9 @@ * @version: v1.14.12 * @author: Igor Escobar * - * Created by Igor Escobar on 2012-03-10. Please report any bug at http://blog.igorescobar.com + * Created by Igor Escobar on 2012-03-10. Please report any bug at github.com/igorescobar/jQuery-Mask-Plugin * - * Copyright (c) 2012 Igor Escobar http://blog.igorescobar.com + * Copyright (c) 2012 Igor Escobar http://igorescobar.com * * The MIT License (http://www.opensource.org/licenses/mit-license.php) * From 67857574bbbe3ad25d582fcf26019d9dddfa4958 Mon Sep 17 00:00:00 2001 From: Onur Adsay Date: Mon, 11 Dec 2017 14:04:08 +0300 Subject: [PATCH 09/42] Fix caret jumping bug Caret was jumping a letter when translation and recursive options are used together. --- src/jquery.mask.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/jquery.mask.js b/src/jquery.mask.js index 04b3126b..7b2aef6d 100755 --- a/src/jquery.mask.js +++ b/src/jquery.mask.js @@ -309,7 +309,7 @@ if (translation.recursive) { if (resetPos === -1) { resetPos = m; - } else if (m === lastMaskChar) { + } else if (m === lastMaskChar && m !== resetPos) { m = resetPos - offset; } From 57168b4a8b2a03f45ec108af1261bea638e60bfa Mon Sep 17 00:00:00 2001 From: Igor Escobar Date: Mon, 11 Dec 2017 12:08:39 +0000 Subject: [PATCH 10/42] fixing use strict issue --- .jshintrc | 2 +- src/jquery.mask.js | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/.jshintrc b/.jshintrc index e21c8547..9ad374f2 100644 --- a/.jshintrc +++ b/.jshintrc @@ -27,7 +27,7 @@ "quotmark": "single", "regexp": true, "smarttabs": true, - "strict": true, + "strict": false, "trailing": true, "undef": true, "unused": true diff --git a/src/jquery.mask.js b/src/jquery.mask.js index 7b2aef6d..c6f414aa 100755 --- a/src/jquery.mask.js +++ b/src/jquery.mask.js @@ -35,8 +35,6 @@ /* jshint maxcomplexity:17 */ /* global define */ -'use strict'; - // UMD (Universal Module Definition) patterns for JavaScript modules that work everywhere. // https://github.com/umdjs/umd/blob/master/templates/jqueryPlugin.js (function (factory, jQuery, Zepto) { @@ -50,6 +48,7 @@ } }(function ($) { + 'use strict'; var Mask = function (el, mask, options) { From 91b53a210c1010d88baf06cf3d57f4e5b03c9dd7 Mon Sep 17 00:00:00 2001 From: Igor Escobar Date: Mon, 11 Dec 2017 13:47:52 +0000 Subject: [PATCH 11/42] upgrading node --- .travis.yml | 2 +- package-lock.json | 2351 +++++++++++++++++++++++++++++++++++++++++++++ package.json | 3 +- 3 files changed, 2354 insertions(+), 2 deletions(-) create mode 100644 package-lock.json diff --git a/.travis.yml b/.travis.yml index 71a129e6..62ddc766 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,6 @@ language: node_js node_js: - - "0.10" + - "8.9.3" before_script: - npm install -g grunt-cli - npm install diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..d2c13816 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,2351 @@ +{ + "name": "jquery-mask-plugin", + "version": "1.14.12", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "accepts": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz", + "integrity": "sha1-hiRnWMfdbSGmR0/whKR0DsBesh8=", + "dev": true, + "requires": { + "mime-types": "2.1.17", + "negotiator": "0.6.1" + } + }, + "ajv": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", + "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", + "dev": true, + "requires": { + "co": "4.6.0", + "json-stable-stringify": "1.0.1" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "argparse": { + "version": "0.1.16", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-0.1.16.tgz", + "integrity": "sha1-z9AeD7uj1srtBJ+9dY1A9lGW9Xw=", + "dev": true, + "requires": { + "underscore": "1.7.0", + "underscore.string": "2.4.0" + }, + "dependencies": { + "underscore.string": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.4.0.tgz", + "integrity": "sha1-jN2PusTi0uoefi6Al8QvRCKA+Fs=", + "dev": true + } + } + }, + "array-differ": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", + "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=", + "dev": true + }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "dev": true + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "1.0.3" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + }, + "asn1": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", + "dev": true + }, + "assert-plus": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", + "dev": true + }, + "async": { + "version": "0.1.22", + "resolved": "https://registry.npmjs.org/async/-/async-0.1.22.tgz", + "integrity": "sha1-D8GqoIig4+8Ovi2IMbqw3PiEUGE=", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "aws-sign2": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", + "dev": true + }, + "aws4": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", + "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "basic-auth": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.0.tgz", + "integrity": "sha1-AV2z81PgLlY3d1X5YnQuiYHnu7o=", + "dev": true, + "requires": { + "safe-buffer": "5.1.1" + } + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", + "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", + "dev": true, + "optional": true, + "requires": { + "tweetnacl": "0.14.5" + } + }, + "boom": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "dev": true, + "requires": { + "hoek": "2.16.3" + } + }, + "brace-expansion": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", + "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", + "dev": true, + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + } + }, + "browserify-zlib": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", + "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=", + "dev": true, + "requires": { + "pako": "0.2.9" + } + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true + }, + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "dev": true + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "dev": true, + "requires": { + "camelcase": "2.1.1", + "map-obj": "1.0.1" + } + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + } + }, + "cli": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/cli/-/cli-0.6.6.tgz", + "integrity": "sha1-Aq1Eo4Cr8nraxebwzdewQ9dMU+M=", + "dev": true, + "requires": { + "exit": "0.1.2", + "glob": "3.2.11" + }, + "dependencies": { + "glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz", + "integrity": "sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=", + "dev": true, + "requires": { + "inherits": "2.0.3", + "minimatch": "0.3.0" + } + }, + "minimatch": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz", + "integrity": "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=", + "dev": true, + "requires": { + "lru-cache": "2.7.3", + "sigmund": "1.0.1" + } + } + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true + }, + "coffee-script": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.3.3.tgz", + "integrity": "sha1-FQ1rTLUiiUNp7+1qIQHCC8f0pPQ=", + "dev": true + }, + "colors": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz", + "integrity": "sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w=", + "dev": true + }, + "combined-stream": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", + "dev": true, + "requires": { + "delayed-stream": "1.0.0" + } + }, + "commander": { + "version": "2.12.2", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.12.2.tgz", + "integrity": "sha512-BFnaq5ZOGcDN7FlrtBT4xxkgIToalIIxwjxLWVJ8bGTpe1LroqMiqQXdA7ygc7CRvaYS+9zfPGFnJqFSayx+AA==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "concat-stream": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", + "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", + "dev": true, + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.3.3", + "typedarray": "0.0.6" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "safe-buffer": "5.1.1", + "string_decoder": "1.0.3", + "util-deprecate": "1.0.2" + } + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "dev": true, + "requires": { + "safe-buffer": "5.1.1" + } + } + } + }, + "connect": { + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.6.5.tgz", + "integrity": "sha1-+43ee6B2OHfQ7J352sC0tA5yx9o=", + "dev": true, + "requires": { + "debug": "2.6.9", + "finalhandler": "1.0.6", + "parseurl": "1.3.2", + "utils-merge": "1.0.1" + } + }, + "connect-livereload": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/connect-livereload/-/connect-livereload-0.5.4.tgz", + "integrity": "sha1-gBV9E3HJ83zBQDmrGJWXDRGdw7w=", + "dev": true + }, + "console-browserify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", + "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", + "dev": true, + "requires": { + "date-now": "0.1.4" + } + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "cryptiles": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "dev": true, + "requires": { + "boom": "2.10.1" + } + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "dev": true, + "requires": { + "array-find-index": "1.0.2" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "date-now": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", + "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", + "dev": true + }, + "date-time": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/date-time/-/date-time-1.1.0.tgz", + "integrity": "sha1-GIdtC9pMGf5w3Tv0sDTygbEqQLY=", + "dev": true, + "requires": { + "time-zone": "0.1.0" + } + }, + "dateformat": { + "version": "1.0.2-1.2.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.2-1.2.3.tgz", + "integrity": "sha1-sCIMAt6YYXQztyhRz0fePfLNvuk=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "depd": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", + "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=", + "dev": true + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, + "dom-serializer": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", + "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", + "dev": true, + "requires": { + "domelementtype": "1.1.3", + "entities": "1.1.1" + }, + "dependencies": { + "domelementtype": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", + "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=", + "dev": true + }, + "entities": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", + "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=", + "dev": true + } + } + }, + "domelementtype": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", + "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=", + "dev": true + }, + "domhandler": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz", + "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=", + "dev": true, + "requires": { + "domelementtype": "1.3.0" + } + }, + "domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "dev": true, + "requires": { + "dom-serializer": "0.1.0", + "domelementtype": "1.3.0" + } + }, + "ecc-jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "dev": true, + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "encodeurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", + "integrity": "sha1-eePVhlU0aQn+bw9Fpd5oEDspTSA=", + "dev": true + }, + "entities": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz", + "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY=", + "dev": true + }, + "error-ex": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", + "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "dev": true, + "requires": { + "is-arrayish": "0.2.1" + } + }, + "es6-promise": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.1.1.tgz", + "integrity": "sha512-OaU1hHjgJf+b0NzsxCg7NdIYERD6Hy/PEmFLTjw+b65scuisG3Kt4QoTvJ66BBkPZ581gr0kpoVzKnxniM8nng==", + "dev": true + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "esprima": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", + "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "dev": true + }, + "eventemitter2": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", + "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=", + "dev": true + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true + }, + "extend": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", + "dev": true + }, + "extract-zip": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.6.tgz", + "integrity": "sha1-EpDt6NINCHK0Kf0/NRyhKOxe+Fw=", + "dev": true, + "requires": { + "concat-stream": "1.6.0", + "debug": "2.6.9", + "mkdirp": "0.5.0", + "yauzl": "2.4.1" + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "fd-slicer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", + "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", + "dev": true, + "requires": { + "pend": "1.2.0" + } + }, + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "dev": true, + "requires": { + "escape-string-regexp": "1.0.5", + "object-assign": "4.1.1" + } + }, + "finalhandler": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.0.6.tgz", + "integrity": "sha1-AHrqM9Gk0+QgF/YkhIrVjSEvgU8=", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "on-finished": "2.3.0", + "parseurl": "1.3.2", + "statuses": "1.3.1", + "unpipe": "1.0.0" + } + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" + } + }, + "findup-sync": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.1.3.tgz", + "integrity": "sha1-fz56l7gjksZTvwZYm9hRkOk8NoM=", + "dev": true, + "requires": { + "glob": "3.2.11", + "lodash": "2.4.2" + }, + "dependencies": { + "glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz", + "integrity": "sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=", + "dev": true, + "requires": { + "inherits": "2.0.3", + "minimatch": "0.3.0" + } + }, + "lodash": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz", + "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=", + "dev": true + }, + "minimatch": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz", + "integrity": "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=", + "dev": true, + "requires": { + "lru-cache": "2.7.3", + "sigmund": "1.0.1" + } + } + } + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "dev": true, + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.17" + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true + }, + "fs-extra": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz", + "integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "2.4.0", + "klaw": "1.3.1" + }, + "dependencies": { + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + } + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "dev": true + }, + "getobject": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz", + "integrity": "sha1-BHpEl4n6Fg0Bj1SG7ZEyC27HiFw=", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "glob": { + "version": "3.1.21", + "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz", + "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=", + "dev": true, + "requires": { + "graceful-fs": "1.2.3", + "inherits": "1.0.2", + "minimatch": "0.2.14" + }, + "dependencies": { + "inherits": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz", + "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=", + "dev": true + } + } + }, + "graceful-fs": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz", + "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=", + "dev": true + }, + "grunt": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/grunt/-/grunt-0.4.5.tgz", + "integrity": "sha1-VpN81RlDJK3/bSB2MYMqnWuk5/A=", + "dev": true, + "requires": { + "async": "0.1.22", + "coffee-script": "1.3.3", + "colors": "0.6.2", + "dateformat": "1.0.2-1.2.3", + "eventemitter2": "0.4.14", + "exit": "0.1.2", + "findup-sync": "0.1.3", + "getobject": "0.1.0", + "glob": "3.1.21", + "grunt-legacy-log": "0.1.3", + "grunt-legacy-util": "0.2.0", + "hooker": "0.2.3", + "iconv-lite": "0.2.11", + "js-yaml": "2.0.5", + "lodash": "0.9.2", + "minimatch": "0.2.14", + "nopt": "1.0.10", + "rimraf": "2.2.8", + "underscore.string": "2.2.1", + "which": "1.0.9" + } + }, + "grunt-contrib-connect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/grunt-contrib-connect/-/grunt-contrib-connect-1.0.2.tgz", + "integrity": "sha1-XPkzuRpnOGBEJzwLJERgPNmIebo=", + "dev": true, + "requires": { + "async": "1.5.2", + "connect": "3.6.5", + "connect-livereload": "0.5.4", + "http2": "3.3.7", + "morgan": "1.9.0", + "opn": "4.0.2", + "portscanner": "1.2.0", + "serve-index": "1.9.1", + "serve-static": "1.13.1" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + } + } + }, + "grunt-contrib-jshint": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/grunt-contrib-jshint/-/grunt-contrib-jshint-0.11.3.tgz", + "integrity": "sha1-gDaBgdzNVRGG5bg4XAEc7iTWQKA=", + "dev": true, + "requires": { + "hooker": "0.2.3", + "jshint": "2.8.0" + } + }, + "grunt-contrib-qunit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-qunit/-/grunt-contrib-qunit-2.0.0.tgz", + "integrity": "sha1-VKUbSyyE/uYsO34AFFySjR7Ct+w=", + "dev": true, + "requires": { + "grunt-lib-phantomjs": "1.1.0" + } + }, + "grunt-contrib-uglify": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/grunt-contrib-uglify/-/grunt-contrib-uglify-3.2.1.tgz", + "integrity": "sha512-xBPwg8wuA/m+HiSh2uMADuadKEnFQt9N5OhEy35vIl945yG6095oY1H1Og3ucg0wBSOieIBn3raqStvIcwKqHg==", + "dev": true, + "requires": { + "chalk": "1.1.3", + "maxmin": "1.1.0", + "uglify-js": "3.2.2", + "uri-path": "1.0.0" + } + }, + "grunt-legacy-log": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-0.1.3.tgz", + "integrity": "sha1-7ClCboAwIa9ZAp+H0vnNczWgVTE=", + "dev": true, + "requires": { + "colors": "0.6.2", + "grunt-legacy-log-utils": "0.1.1", + "hooker": "0.2.3", + "lodash": "2.4.2", + "underscore.string": "2.3.3" + }, + "dependencies": { + "lodash": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz", + "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=", + "dev": true + }, + "underscore.string": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz", + "integrity": "sha1-ccCL9rQosRM/N+ePo6Icgvcymw0=", + "dev": true + } + } + }, + "grunt-legacy-log-utils": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-0.1.1.tgz", + "integrity": "sha1-wHBrndkGThFvNvI/5OawSGcsD34=", + "dev": true, + "requires": { + "colors": "0.6.2", + "lodash": "2.4.2", + "underscore.string": "2.3.3" + }, + "dependencies": { + "lodash": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz", + "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=", + "dev": true + }, + "underscore.string": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz", + "integrity": "sha1-ccCL9rQosRM/N+ePo6Icgvcymw0=", + "dev": true + } + } + }, + "grunt-legacy-util": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-0.2.0.tgz", + "integrity": "sha1-kzJIhNv343qf98Am3/RR2UqeVUs=", + "dev": true, + "requires": { + "async": "0.1.22", + "exit": "0.1.2", + "getobject": "0.1.0", + "hooker": "0.2.3", + "lodash": "0.9.2", + "underscore.string": "2.2.1", + "which": "1.0.9" + } + }, + "grunt-lib-phantomjs": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/grunt-lib-phantomjs/-/grunt-lib-phantomjs-1.1.0.tgz", + "integrity": "sha1-np7c3Z/S3UDgwYHJQ3HVcqpe6tI=", + "dev": true, + "requires": { + "eventemitter2": "0.4.14", + "phantomjs-prebuilt": "2.1.16", + "rimraf": "2.6.2", + "semver": "5.4.1", + "temporary": "0.0.8" + }, + "dependencies": { + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.8" + } + }, + "rimraf": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "dev": true, + "requires": { + "glob": "7.1.2" + } + } + } + }, + "gzip-size": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-1.0.0.tgz", + "integrity": "sha1-Zs+LEBBHInuVus5uodoMF37Vwi8=", + "dev": true, + "requires": { + "browserify-zlib": "0.1.4", + "concat-stream": "1.6.0" + } + }, + "har-schema": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", + "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", + "dev": true + }, + "har-validator": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", + "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", + "dev": true, + "requires": { + "ajv": "4.11.8", + "har-schema": "1.0.5" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "hasha": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-2.2.0.tgz", + "integrity": "sha1-eNfL/B5tZjA/55g3NlmEUXsvbuE=", + "dev": true, + "requires": { + "is-stream": "1.1.0", + "pinkie-promise": "2.0.1" + } + }, + "hawk": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "dev": true, + "requires": { + "boom": "2.10.1", + "cryptiles": "2.0.5", + "hoek": "2.16.3", + "sntp": "1.0.9" + } + }, + "hoek": { + "version": "2.16.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", + "dev": true + }, + "hooker": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz", + "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=", + "dev": true + }, + "hosted-git-info": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", + "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==", + "dev": true + }, + "htmlparser2": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz", + "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=", + "dev": true, + "requires": { + "domelementtype": "1.3.0", + "domhandler": "2.3.0", + "domutils": "1.5.1", + "entities": "1.0.0", + "readable-stream": "1.1.14" + } + }, + "http-errors": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", + "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", + "dev": true, + "requires": { + "depd": "1.1.1", + "inherits": "2.0.3", + "setprototypeof": "1.0.3", + "statuses": "1.3.1" + } + }, + "http-signature": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "dev": true, + "requires": { + "assert-plus": "0.2.0", + "jsprim": "1.4.1", + "sshpk": "1.13.1" + } + }, + "http2": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/http2/-/http2-3.3.7.tgz", + "integrity": "sha512-puSi8M8WNlFJm9Pk4c/Mbz9Gwparuj3gO9/RRO5zv6piQ0FY+9Qywp0PdWshYgsMJSalixFY7eC6oPu0zRxLAQ==", + "dev": true + }, + "iconv-lite": { + "version": "0.2.11", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.2.11.tgz", + "integrity": "sha1-HOYKOleGSiktEyH/RgnKS7llrcg=", + "dev": true + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-builtin-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "dev": true, + "requires": { + "builtin-modules": "1.1.1" + } + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "js-yaml": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-2.0.5.tgz", + "integrity": "sha1-olrmUJmZ6X3yeMZxnaEb0Gh3Q6g=", + "dev": true, + "requires": { + "argparse": "0.1.16", + "esprima": "1.0.4" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true, + "optional": true + }, + "jshint": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.8.0.tgz", + "integrity": "sha1-HQmjvZE8TK36gb8Y1YK9hb/+DUQ=", + "dev": true, + "requires": { + "cli": "0.6.6", + "console-browserify": "1.1.0", + "exit": "0.1.2", + "htmlparser2": "3.8.3", + "lodash": "3.7.0", + "minimatch": "2.0.10", + "shelljs": "0.3.0", + "strip-json-comments": "1.0.4" + }, + "dependencies": { + "lodash": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.7.0.tgz", + "integrity": "sha1-Nni9irmVBXwHreg27S7wh9qBHUU=", + "dev": true + }, + "minimatch": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", + "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=", + "dev": true, + "requires": { + "brace-expansion": "1.1.8" + } + } + } + }, + "jshint-stylish": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/jshint-stylish/-/jshint-stylish-1.0.2.tgz", + "integrity": "sha1-6Z88w0CvsY4qdwL4eY10AMoxRGo=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "log-symbols": "1.0.2", + "string-length": "1.0.1", + "text-table": "0.2.0" + } + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "json-stable-stringify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "dev": true, + "requires": { + "jsonify": "0.0.0" + } + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + }, + "dependencies": { + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true, + "optional": true + } + } + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "dev": true + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "kew": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/kew/-/kew-0.7.0.tgz", + "integrity": "sha1-edk9LTM2PW/dKXCzNdkUGtWR15s=", + "dev": true + }, + "klaw": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", + "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + }, + "dependencies": { + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true, + "optional": true + } + } + }, + "load-grunt-tasks": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/load-grunt-tasks/-/load-grunt-tasks-3.5.2.tgz", + "integrity": "sha1-ByhWEYD9IP+KaSdQWFL8WKrqDIg=", + "dev": true, + "requires": { + "arrify": "1.0.1", + "multimatch": "2.1.0", + "pkg-up": "1.0.0", + "resolve-pkg": "0.1.0" + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "strip-bom": "2.0.0" + }, + "dependencies": { + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + } + } + }, + "lodash": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-0.9.2.tgz", + "integrity": "sha1-jzSZxSRdNG1oLlsNO0B2fgnxqSw=", + "dev": true + }, + "log-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", + "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", + "dev": true, + "requires": { + "chalk": "1.1.3" + } + }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "dev": true, + "requires": { + "currently-unhandled": "0.4.1", + "signal-exit": "3.0.2" + } + }, + "lru-cache": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", + "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=", + "dev": true + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + }, + "maxmin": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/maxmin/-/maxmin-1.1.0.tgz", + "integrity": "sha1-cTZehKmd2Piz99X94vANHn9zvmE=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "figures": "1.7.0", + "gzip-size": "1.0.0", + "pretty-bytes": "1.0.4" + } + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "dev": true, + "requires": { + "camelcase-keys": "2.1.0", + "decamelize": "1.2.0", + "loud-rejection": "1.6.0", + "map-obj": "1.0.1", + "minimist": "1.2.0", + "normalize-package-data": "2.4.0", + "object-assign": "4.1.1", + "read-pkg-up": "1.0.1", + "redent": "1.0.0", + "trim-newlines": "1.0.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "mime": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", + "dev": true + }, + "mime-db": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz", + "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=", + "dev": true + }, + "mime-types": { + "version": "2.1.17", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz", + "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=", + "dev": true, + "requires": { + "mime-db": "1.30.0" + } + }, + "minimatch": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", + "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=", + "dev": true, + "requires": { + "lru-cache": "2.7.3", + "sigmund": "1.0.1" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + }, + "mkdirp": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz", + "integrity": "sha1-HXMHam35hs2TROFecfzAWkyavxI=", + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "morgan": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.9.0.tgz", + "integrity": "sha1-0B+mxlhZt2/PMbPLU6OCGjEdgFE=", + "dev": true, + "requires": { + "basic-auth": "2.0.0", + "debug": "2.6.9", + "depd": "1.1.1", + "on-finished": "2.3.0", + "on-headers": "1.0.1" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "multimatch": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz", + "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=", + "dev": true, + "requires": { + "array-differ": "1.0.0", + "array-union": "1.0.2", + "arrify": "1.0.1", + "minimatch": "3.0.4" + }, + "dependencies": { + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.8" + } + } + } + }, + "negotiator": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", + "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", + "dev": true + }, + "nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "dev": true, + "requires": { + "abbrev": "1.1.1" + } + }, + "normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "dev": true, + "requires": { + "hosted-git-info": "2.5.0", + "is-builtin-module": "1.0.0", + "semver": "5.4.1", + "validate-npm-package-license": "3.0.1" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "oauth-sign": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz", + "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "opn": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/opn/-/opn-4.0.2.tgz", + "integrity": "sha1-erwi5kTf9jsKltWrfyeQwPAavJU=", + "dev": true, + "requires": { + "object-assign": "4.1.1", + "pinkie-promise": "2.0.1" + } + }, + "package": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package/-/package-1.0.1.tgz", + "integrity": "sha1-0lofmeJQbcsn1nBLg9yooxLk7cw=", + "dev": true + }, + "pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=", + "dev": true + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "1.3.1" + } + }, + "parse-ms": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-1.0.1.tgz", + "integrity": "sha1-VjRtR0nXjyNDDKDHE4UK75GqNh0=", + "dev": true + }, + "parseurl": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", + "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=", + "dev": true + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "2.0.1" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + }, + "dependencies": { + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + } + } + }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", + "dev": true + }, + "performance-now": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", + "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", + "dev": true + }, + "phantomjs-prebuilt": { + "version": "2.1.16", + "resolved": "https://registry.npmjs.org/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.16.tgz", + "integrity": "sha1-79ISpKOWbTZHaE6ouniFSb4q7+8=", + "dev": true, + "requires": { + "es6-promise": "4.1.1", + "extract-zip": "1.6.6", + "fs-extra": "1.0.0", + "hasha": "2.2.0", + "kew": "0.7.0", + "progress": "1.1.8", + "request": "2.81.0", + "request-progress": "2.0.1", + "which": "1.3.0" + }, + "dependencies": { + "which": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", + "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", + "dev": true, + "requires": { + "isexe": "2.0.0" + } + } + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "2.0.4" + } + }, + "pkg-up": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-1.0.0.tgz", + "integrity": "sha1-Pgj7RhUlxEIWJKM7n35tCvWwWiY=", + "dev": true, + "requires": { + "find-up": "1.1.2" + } + }, + "plur": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/plur/-/plur-1.0.0.tgz", + "integrity": "sha1-24XGgU9eXlo7Se/CjWBP7GKXUVY=", + "dev": true + }, + "portscanner": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/portscanner/-/portscanner-1.2.0.tgz", + "integrity": "sha1-sUu9olfRTDEPqcwJaCrwLUCWGAI=", + "dev": true, + "requires": { + "async": "1.5.2" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + } + } + }, + "pretty-bytes": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-1.0.4.tgz", + "integrity": "sha1-CiLoIQYJrTVUL4yNXSFZr/B1HIQ=", + "dev": true, + "requires": { + "get-stdin": "4.0.1", + "meow": "3.7.0" + } + }, + "pretty-ms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-2.1.0.tgz", + "integrity": "sha1-QlfCVt8/sLRR1q/6qwIYhBJpgdw=", + "dev": true, + "requires": { + "is-finite": "1.0.2", + "parse-ms": "1.0.1", + "plur": "1.0.0" + } + }, + "process-nextick-args": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", + "dev": true + }, + "progress": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz", + "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=", + "dev": true + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + }, + "qs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", + "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", + "dev": true + }, + "range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=", + "dev": true + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, + "requires": { + "load-json-file": "1.1.0", + "normalize-package-data": "2.4.0", + "path-type": "1.1.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "requires": { + "find-up": "1.1.2", + "read-pkg": "1.1.0" + } + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "dev": true, + "requires": { + "indent-string": "2.1.0", + "strip-indent": "1.0.1" + } + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "request": { + "version": "2.81.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", + "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", + "dev": true, + "requires": { + "aws-sign2": "0.6.0", + "aws4": "1.6.0", + "caseless": "0.12.0", + "combined-stream": "1.0.5", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.1.4", + "har-validator": "4.2.1", + "hawk": "3.1.3", + "http-signature": "1.1.1", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.17", + "oauth-sign": "0.8.2", + "performance-now": "0.2.0", + "qs": "6.4.0", + "safe-buffer": "5.1.1", + "stringstream": "0.0.5", + "tough-cookie": "2.3.3", + "tunnel-agent": "0.6.0", + "uuid": "3.1.0" + } + }, + "request-progress": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-2.0.1.tgz", + "integrity": "sha1-XTa7V5YcZzqlt4jbyBQf3yO0Tgg=", + "dev": true, + "requires": { + "throttleit": "1.0.0" + } + }, + "resolve-from": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", + "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=", + "dev": true + }, + "resolve-pkg": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/resolve-pkg/-/resolve-pkg-0.1.0.tgz", + "integrity": "sha1-AsyZNBDik2livZcWahsHfalyVTE=", + "dev": true, + "requires": { + "resolve-from": "2.0.0" + } + }, + "rimraf": { + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz", + "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=", + "dev": true + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", + "dev": true + }, + "semver": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", + "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", + "dev": true + }, + "send": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.16.1.tgz", + "integrity": "sha512-ElCLJdJIKPk6ux/Hocwhk7NFHpI3pVm/IZOYWqUmoxcgeyM+MpxHHKhb8QmlJDX1pU6WrgaHBkVNm73Sv7uc2A==", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "1.1.1", + "destroy": "1.0.4", + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "etag": "1.8.1", + "fresh": "0.5.2", + "http-errors": "1.6.2", + "mime": "1.4.1", + "ms": "2.0.0", + "on-finished": "2.3.0", + "range-parser": "1.2.0", + "statuses": "1.3.1" + } + }, + "serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "dev": true, + "requires": { + "accepts": "1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "1.0.3", + "http-errors": "1.6.2", + "mime-types": "2.1.17", + "parseurl": "1.3.2" + } + }, + "serve-static": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.1.tgz", + "integrity": "sha512-hSMUZrsPa/I09VYFJwa627JJkNs0NrfL1Uzuup+GqHfToR2KcsXFymXSV90hoyw3M+msjFuQly+YzIH/q0MGlQ==", + "dev": true, + "requires": { + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "parseurl": "1.3.2", + "send": "0.16.1" + } + }, + "setprototypeof": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", + "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=", + "dev": true + }, + "shelljs": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz", + "integrity": "sha1-NZbmMHp4FUT1kfN9phg2DzHbV7E=", + "dev": true + }, + "sigmund": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, + "sntp": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "dev": true, + "requires": { + "hoek": "2.16.3" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "spdx-correct": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", + "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", + "dev": true, + "requires": { + "spdx-license-ids": "1.2.2" + } + }, + "spdx-expression-parse": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", + "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=", + "dev": true + }, + "spdx-license-ids": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", + "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=", + "dev": true + }, + "sshpk": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", + "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", + "dev": true, + "requires": { + "asn1": "0.2.3", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.1", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.1", + "getpass": "0.1.7", + "jsbn": "0.1.1", + "tweetnacl": "0.14.5" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "statuses": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", + "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=", + "dev": true + }, + "string-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-1.0.1.tgz", + "integrity": "sha1-VpcPscOFWOnnC3KL894mmsRa36w=", + "dev": true, + "requires": { + "strip-ansi": "3.0.1" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "stringstream": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", + "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "requires": { + "is-utf8": "0.2.1" + } + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "dev": true, + "requires": { + "get-stdin": "4.0.1" + } + }, + "strip-json-comments": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz", + "integrity": "sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=", + "dev": true + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "temporary": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/temporary/-/temporary-0.0.8.tgz", + "integrity": "sha1-oYqYHSi6jKNgJ/s8MFOMPst0CsA=", + "dev": true, + "requires": { + "package": "1.0.1" + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "throttleit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz", + "integrity": "sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=", + "dev": true + }, + "time-grunt": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/time-grunt/-/time-grunt-1.4.0.tgz", + "integrity": "sha1-BiIT5mDJB+hvRAVWwB6mWXtxJCA=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "date-time": "1.1.0", + "figures": "1.7.0", + "hooker": "0.2.3", + "number-is-nan": "1.0.1", + "pretty-ms": "2.1.0", + "text-table": "0.2.0" + } + }, + "time-zone": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/time-zone/-/time-zone-0.1.0.tgz", + "integrity": "sha1-Sncotqwo2w4Aj1FAQ/1VW9VXO0Y=", + "dev": true + }, + "tough-cookie": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz", + "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=", + "dev": true, + "requires": { + "punycode": "1.4.1" + } + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "dev": true + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "requires": { + "safe-buffer": "5.1.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true, + "optional": true + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "uglify-js": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.2.2.tgz", + "integrity": "sha512-++1NO/zZIEdWf6cDIGceSJQPX31SqIpbVAHwFG5+240MtZqPG/NIPoinj8zlXQtAfMBqEt1Jyv2FiLP3n9gVhQ==", + "dev": true, + "requires": { + "commander": "2.12.2", + "source-map": "0.6.1" + } + }, + "underscore": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz", + "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=", + "dev": true + }, + "underscore.string": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.2.1.tgz", + "integrity": "sha1-18D6KvXVoaZ/QlPa7pgTLnM/Dxk=", + "dev": true + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true + }, + "uri-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/uri-path/-/uri-path-1.0.0.tgz", + "integrity": "sha1-l0fwGDWJM8Md4PzP2C0TjmcmLjI=", + "dev": true + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true + }, + "uuid": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", + "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==", + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", + "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", + "dev": true, + "requires": { + "spdx-correct": "1.0.2", + "spdx-expression-parse": "1.0.4" + } + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "1.3.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "which": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/which/-/which-1.0.9.tgz", + "integrity": "sha1-RgwdoPgQED0DIam2M6+eV15kSG8=", + "dev": true + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "yauzl": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz", + "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=", + "dev": true, + "requires": { + "fd-slicer": "1.0.1" + } + } + } +} diff --git a/package.json b/package.json index 6820f71b..aae1c86c 100644 --- a/package.json +++ b/package.json @@ -28,6 +28,7 @@ "grunt-contrib-uglify": "*", "jshint-stylish": "^1.0.0", "load-grunt-tasks": "^3.1.0", - "time-grunt": "^1.0.0" + "time-grunt": "^1.0.0", + "request": "2.81.0" } } From fb667bba4dfd71e4d51db33209bf8e95c094f901 Mon Sep 17 00:00:00 2001 From: Igor Escobar Date: Mon, 11 Dec 2017 18:59:07 +0000 Subject: [PATCH 12/42] fixing read me --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 4fd4c22f..db823a19 100644 --- a/README.md +++ b/README.md @@ -86,7 +86,7 @@ To install, open terminal and navigate to your working directory. ### Typescript 2.x users * Use npm `npm install --save-dev @types/jquery-mask-plugin`. -For configuration options and troubleshooting refer to these repositories: +For configuration options and troubleshooting refer to these repositories: * [Typings](https://github.com/typings/typings) * [DefinitelyTyped](https://github.com/DefinitelyTyped/DefinitelyTyped) * [Typescript](https://github.com/Microsoft/TypeScript) @@ -101,7 +101,7 @@ Before opening a new [issue](https://github.com/igorescobar/jQuery-Mask-Plugin/i #### [Prefix or sufix on the Mask](https://github.com/igorescobar/jQuery-Mask-Plugin/issues/166) #### [Add validation?](https://github.com/igorescobar/jQuery-Mask-Plugin/issues/387#issuecomment-192998092) #### [Field type number, email not working?](https://github.com/igorescobar/jQuery-Mask-Plugin/issues/450#issuecomment-253225719) -#### [Want to keep the placeholder as the user types?](https://github.com/igorescobar/jQuery-Mask-Plugin/issues/450#issuecomment-253225719) +#### [Want to keep the placeholder as the user types?](https://github.com/igorescobar/jQuery-Mask-Plugin/issues/633#issuecomment-350819224) #### [E-mail mask?](https://github.com/igorescobar/jQuery-Mask-Plugin/issues/582) ## Bugs? From a830299701b33f619088fd36a85f6a93eccb6ce2 Mon Sep 17 00:00:00 2001 From: Igor Escobar Date: Mon, 11 Dec 2017 18:59:37 +0000 Subject: [PATCH 13/42] generating jquery mask files v1.14.13 --- bower.json | 2 +- component.json | 2 +- dist/jquery.mask.js | 13 ++++++------- dist/jquery.mask.min.js | 4 ++-- package.js | 2 +- package.json | 2 +- src/jquery.mask.js | 2 +- 7 files changed, 13 insertions(+), 14 deletions(-) diff --git a/bower.json b/bower.json index b7bc19f5..f246d553 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "jquery-mask-plugin", - "version": "1.14.12", + "version": "1.14.13", "main": "dist/jquery.mask.js", "ignore": [ "deploy.rb", diff --git a/component.json b/component.json index 88db6736..1a72374e 100644 --- a/component.json +++ b/component.json @@ -1,7 +1,7 @@ { "name": "jQuery-Mask-Plugin", "description": "A jQuery Plugin to make masks on form fields and HTML elements.", - "version": "1.14.12", + "version": "1.14.13", "keywords": ["javascript", "mask", "form"], "scripts": [ "dist/jquery.mask.js" diff --git a/dist/jquery.mask.js b/dist/jquery.mask.js index b96fecae..0f385fef 100755 --- a/dist/jquery.mask.js +++ b/dist/jquery.mask.js @@ -1,11 +1,11 @@ /** * jquery.mask.js - * @version: v1.14.12 + * @version: v1.14.13 * @author: Igor Escobar * - * Created by Igor Escobar on 2012-03-10. Please report any bug at http://blog.igorescobar.com + * Created by Igor Escobar on 2012-03-10. Please report any bug at github.com/igorescobar/jQuery-Mask-Plugin * - * Copyright (c) 2012 Igor Escobar http://blog.igorescobar.com + * Copyright (c) 2012 Igor Escobar http://igorescobar.com * * The MIT License (http://www.opensource.org/licenses/mit-license.php) * @@ -35,10 +35,8 @@ /* jshint maxcomplexity:17 */ /* global define */ -'use strict'; - // UMD (Universal Module Definition) patterns for JavaScript modules that work everywhere. -// https://github.com/umdjs/umd/blob/master/jqueryPluginCommonjs.js +// https://github.com/umdjs/umd/blob/master/templates/jqueryPlugin.js (function (factory, jQuery, Zepto) { if (typeof define === 'function' && define.amd) { @@ -50,6 +48,7 @@ } }(function ($) { + 'use strict'; var Mask = function (el, mask, options) { @@ -309,7 +308,7 @@ if (translation.recursive) { if (resetPos === -1) { resetPos = m; - } else if (m === lastMaskChar) { + } else if (m === lastMaskChar && m !== resetPos) { m = resetPos - offset; } diff --git a/dist/jquery.mask.min.js b/dist/jquery.mask.min.js index ca630c82..4f3efa5e 100644 --- a/dist/jquery.mask.min.js +++ b/dist/jquery.mask.min.js @@ -1,4 +1,4 @@ -// jQuery Mask Plugin v1.14.12 +// jQuery Mask Plugin v1.14.13 // github.com/igorescobar/jQuery-Mask-Plugin var $jscomp={scope:{},findInternal:function(a,l,d){a instanceof String&&(a=String(a));for(var p=a.length,h=0;hd?g=10*e:f>=g&&f!==d?c.maskDigitPosMapOld[g]||(f=g,g=g-(l-h)-a,c.maskDigitPosMap[g]&&(g=f)):g>f&& (g=g+(h-l)+m)}return g},behaviour:function(f){f=f||window.event;c.invalid=[];var e=b.data("mask-keycode");if(-1===a.inArray(e,m.byPassKeys)){var e=c.getMasked(),g=c.getCaret();setTimeout(function(){c.setCaret(c.calculateCaretPosition())},10);c.val(e);c.setCaret(g);return c.callbacks(f)}},getMasked:function(a,b){var g=[],d=void 0===b?c.val():b+"",n=0,h=e.length,q=0,l=d.length,k=1,r="push",p=-1,t=0,y=[],v,z;f.reverse?(r="unshift",k=-1,v=0,n=h-1,q=l-1,z=function(){return-1", "homepage": "http://igorescobar.github.io/jQuery-Mask-Plugin/", diff --git a/src/jquery.mask.js b/src/jquery.mask.js index c6f414aa..0f385fef 100755 --- a/src/jquery.mask.js +++ b/src/jquery.mask.js @@ -1,6 +1,6 @@ /** * jquery.mask.js - * @version: v1.14.12 + * @version: v1.14.13 * @author: Igor Escobar * * Created by Igor Escobar on 2012-03-10. Please report any bug at github.com/igorescobar/jQuery-Mask-Plugin From 681c519524ae42e897f87392a01eaa1f26cd2578 Mon Sep 17 00:00:00 2001 From: Igor Escobar Date: Mon, 11 Dec 2017 19:00:01 +0000 Subject: [PATCH 14/42] upgrading changelog --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 26b4153b..58ec01a9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +== v1.14.13 (Dec/11 2017 18:59 +0000 by Igor Escobar) == + +Bugfixes: + +* fixes caret issue explained on #636 +* fixing use strict issue + == v1.14.12 (Oct/04 2017 09:57 +0100 by Igor Escobar) == Bugfixes: From cdeb4ba21de67dac9042b0790f234d2f5e059ab5 Mon Sep 17 00:00:00 2001 From: Samina Fu Date: Sun, 24 Dec 2017 00:19:10 +0800 Subject: [PATCH 15/42] Add CDNJS version badge in README.md This badge will show the version on CDNJS --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index db823a19..cabb0468 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,7 @@ A jQuery Plugin to make masks on form fields and HTML elements. [![Build Status](https://travis-ci.org/igorescobar/jQuery-Mask-Plugin.png)](https://travis-ci.org/igorescobar/jQuery-Mask-Plugin) [![Code Climate](https://codeclimate.com/github/igorescobar/jQuery-Mask-Plugin.png)](https://codeclimate.com/github/igorescobar/jQuery-Mask-Plugin) [![jsDelivr Hits](https://data.jsdelivr.com/v1/package/npm/jquery-mask-plugin/badge?style=rounded)](https://www.jsdelivr.com/package/npm/jquery-mask-plugin) +[![CDNJS](https://img.shields.io/cdnjs/v/jquery.mask.svg)](https://cdnjs.com/libraries/jquery.mask) # Documentation, Demos & Usage Examples https://igorescobar.github.io/jQuery-Mask-Plugin/ From 1ef022ab49cf706fa8f1475248fb5926ead9ab42 Mon Sep 17 00:00:00 2001 From: Igor Escobar Date: Wed, 24 Jan 2018 10:33:03 +0000 Subject: [PATCH 16/42] fixing typescript definitions link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index cabb0468..6132d582 100644 --- a/README.md +++ b/README.md @@ -77,7 +77,7 @@ jQuery Mask Plugin has been tested with jQuery 1.7+ on all major browsers: * Android Default Browser v4+ ## Typescript support -Definition can be found [here](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/jquery-mask-plugin). +Definition can be found [here](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/jquery-mask-plugin). To install, open terminal and navigate to your working directory. From b8bc710a3d0b87c9c75a59e48c9e06fe78c3b606 Mon Sep 17 00:00:00 2001 From: Igor Escobar Date: Fri, 2 Mar 2018 16:47:16 +0000 Subject: [PATCH 17/42] fixing mask positioning delays --- src/jquery.mask.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/jquery.mask.js b/src/jquery.mask.js index 0f385fef..aa7dfda7 100755 --- a/src/jquery.mask.js +++ b/src/jquery.mask.js @@ -254,17 +254,15 @@ var keyCode = el.data('mask-keycode'); if ($.inArray(keyCode, jMask.byPassKeys) === -1) { - var newVal = p.getMasked(), - caretPos = p.getCaret(); + var newVal = p.getMasked(); // this is a compensation to devices/browsers that don't compensate // caret positioning the right way setTimeout(function() { p.setCaret(p.calculateCaretPosition()); - }, 10); + }, $.jMaskGlobals.keyStrokeCompensation); p.val(newVal); - p.setCaret(caretPos); return p.callbacks(e); } }, @@ -568,6 +566,7 @@ dataMask: true, watchInterval: 300, watchInputs: true, + keyStrokeCompensation: 10, // old versions of chrome dont work great with input event useInput: !/Chrome\/[2-4][0-9]|SamsungBrowser/.test(window.navigator.userAgent) && eventSupported('input'), watchDataMask: false, From 9daae586d7697193f49ee91e5c149497b9a225c0 Mon Sep 17 00:00:00 2001 From: Igor Escobar Date: Fri, 2 Mar 2018 16:47:58 +0000 Subject: [PATCH 18/42] unmask: also removing place holder if added on the first place. --- src/jquery.mask.js | 3 +++ test/jquery.mask.test.js | 7 ++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/jquery.mask.js b/src/jquery.mask.js index aa7dfda7..aa77740e 100755 --- a/src/jquery.mask.js +++ b/src/jquery.mask.js @@ -393,6 +393,9 @@ jMask.options = options; jMask.remove = function() { var caret = p.getCaret(); + if (jMask.options.placeholder) { + el.removeAttr('placeholder'); + } p.destroyEvents(); p.val(jMask.getCleanVal()); p.setCaret(caret); diff --git a/test/jquery.mask.test.js b/test/jquery.mask.test.js index bcf845f4..11e1123b 100644 --- a/test/jquery.mask.test.js +++ b/test/jquery.mask.test.js @@ -326,11 +326,12 @@ $(document).ready(function(){ module('Removing mask'); test("when I get the unmasked value", function(){ - testfield.mask('(00) 0000-0000'); + testfield.mask('(00) 0000-0000', { placeholder: '(__) ____-____' }); - equal( typeTest("1299999999"), "(12) 9999-9999"); + equal(typeTest("1299999999"), "(12) 9999-9999"); testfield.unmask() - equal( testfield.val(), "1299999999"); + equal(testfield.val(), "1299999999"); + equal(testfield.attr('placeholder'), undefined); }); module('Getting Unmasked Value'); From 25d8d6845f2c6b19fada94eaed80afd590089afe Mon Sep 17 00:00:00 2001 From: Igor Escobar Date: Fri, 2 Mar 2018 16:54:04 +0000 Subject: [PATCH 19/42] unmask: unsetting maxlength if we set it in the first place --- src/jquery.mask.js | 5 ++++- test/jquery.mask.test.js | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/jquery.mask.js b/src/jquery.mask.js index aa77740e..e51020b5 100755 --- a/src/jquery.mask.js +++ b/src/jquery.mask.js @@ -396,6 +396,9 @@ if (jMask.options.placeholder) { el.removeAttr('placeholder'); } + if (el.data('mask-maxlength')) { + el.removeAttr('maxlength'); + } p.destroyEvents(); p.val(jMask.getCleanVal()); p.setCaret(caret); @@ -450,7 +453,7 @@ } if (maxlength) { - el.attr('maxlength', mask.length); + el.attr('maxlength', mask.length).data('mask-maxlength', true); } p.destroyEvents(); diff --git a/test/jquery.mask.test.js b/test/jquery.mask.test.js index 11e1123b..f04c9d5b 100644 --- a/test/jquery.mask.test.js +++ b/test/jquery.mask.test.js @@ -332,6 +332,7 @@ $(document).ready(function(){ testfield.unmask() equal(testfield.val(), "1299999999"); equal(testfield.attr('placeholder'), undefined); + equal(testfield.attr('maxlength'), undefined); }); module('Getting Unmasked Value'); From 62ca6f68ee757f3e54d7af9189db4dca9b9c2c8d Mon Sep 17 00:00:00 2001 From: Igor Escobar Date: Fri, 2 Mar 2018 16:55:00 +0000 Subject: [PATCH 20/42] generating jquery mask files v1.14.14 --- bower.json | 2 +- component.json | 2 +- dist/jquery.mask.js | 17 +++++++++++------ dist/jquery.mask.min.js | 34 +++++++++++++++++----------------- package.js | 2 +- package.json | 2 +- src/jquery.mask.js | 2 +- 7 files changed, 33 insertions(+), 28 deletions(-) diff --git a/bower.json b/bower.json index f246d553..f810d136 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "jquery-mask-plugin", - "version": "1.14.13", + "version": "1.14.14", "main": "dist/jquery.mask.js", "ignore": [ "deploy.rb", diff --git a/component.json b/component.json index 1a72374e..7353b051 100644 --- a/component.json +++ b/component.json @@ -1,7 +1,7 @@ { "name": "jQuery-Mask-Plugin", "description": "A jQuery Plugin to make masks on form fields and HTML elements.", - "version": "1.14.13", + "version": "1.14.14", "keywords": ["javascript", "mask", "form"], "scripts": [ "dist/jquery.mask.js" diff --git a/dist/jquery.mask.js b/dist/jquery.mask.js index 0f385fef..714c3035 100755 --- a/dist/jquery.mask.js +++ b/dist/jquery.mask.js @@ -1,6 +1,6 @@ /** * jquery.mask.js - * @version: v1.14.13 + * @version: v1.14.14 * @author: Igor Escobar * * Created by Igor Escobar on 2012-03-10. Please report any bug at github.com/igorescobar/jQuery-Mask-Plugin @@ -254,17 +254,15 @@ var keyCode = el.data('mask-keycode'); if ($.inArray(keyCode, jMask.byPassKeys) === -1) { - var newVal = p.getMasked(), - caretPos = p.getCaret(); + var newVal = p.getMasked(); // this is a compensation to devices/browsers that don't compensate // caret positioning the right way setTimeout(function() { p.setCaret(p.calculateCaretPosition()); - }, 10); + }, $.jMaskGlobals.keyStrokeCompensation); p.val(newVal); - p.setCaret(caretPos); return p.callbacks(e); } }, @@ -395,6 +393,12 @@ jMask.options = options; jMask.remove = function() { var caret = p.getCaret(); + if (jMask.options.placeholder) { + el.removeAttr('placeholder'); + } + if (el.data('mask-maxlength')) { + el.removeAttr('maxlength'); + } p.destroyEvents(); p.val(jMask.getCleanVal()); p.setCaret(caret); @@ -449,7 +453,7 @@ } if (maxlength) { - el.attr('maxlength', mask.length); + el.attr('maxlength', mask.length).data('mask-maxlength', true); } p.destroyEvents(); @@ -568,6 +572,7 @@ dataMask: true, watchInterval: 300, watchInputs: true, + keyStrokeCompensation: 10, // old versions of chrome dont work great with input event useInput: !/Chrome\/[2-4][0-9]|SamsungBrowser/.test(window.navigator.userAgent) && eventSupported('input'), watchDataMask: false, diff --git a/dist/jquery.mask.min.js b/dist/jquery.mask.min.js index 4f3efa5e..79dd596e 100644 --- a/dist/jquery.mask.min.js +++ b/dist/jquery.mask.min.js @@ -1,19 +1,19 @@ -// jQuery Mask Plugin v1.14.13 +// jQuery Mask Plugin v1.14.14 // github.com/igorescobar/jQuery-Mask-Plugin -var $jscomp={scope:{},findInternal:function(a,l,d){a instanceof String&&(a=String(a));for(var p=a.length,h=0;hd?g=10*e:f>=g&&f!==d?c.maskDigitPosMapOld[g]||(f=g,g=g-(l-h)-a,c.maskDigitPosMap[g]&&(g=f)):g>f&& -(g=g+(h-l)+m)}return g},behaviour:function(f){f=f||window.event;c.invalid=[];var e=b.data("mask-keycode");if(-1===a.inArray(e,m.byPassKeys)){var e=c.getMasked(),g=c.getCaret();setTimeout(function(){c.setCaret(c.calculateCaretPosition())},10);c.val(e);c.setCaret(g);return c.callbacks(f)}},getMasked:function(a,b){var g=[],d=void 0===b?c.val():b+"",n=0,h=e.length,q=0,l=d.length,k=1,r="push",p=-1,t=0,y=[],v,z;f.reverse?(r="unshift",k=-1,v=0,n=h-1,q=l-1,z=function(){return-1k?e=10*f:d>=e&&d!==k?c.maskDigitPosMapOld[e]||(d=e,e=e-(g-h)-a,c.maskDigitPosMap[e]&&(e=d)):e>d&& +(e=e+(h-g)+m)}return e},behaviour:function(e){e=e||window.event;c.invalid=[];var f=b.data("mask-keycode");if(-1===a.inArray(f,m.byPassKeys))return f=c.getMasked(),setTimeout(function(){c.setCaret(c.calculateCaretPosition())},a.jMaskGlobals.keyStrokeCompensation),c.val(f),c.callbacks(e)},getMasked:function(a,b){var d=[],p=void 0===b?c.val():b+"",k=0,h=f.length,g=0,q=p.length,l=1,n="push",t=-1,w=0,y=[],u,z;e.reverse?(n="unshift",l=-1,u=0,k=h-1,g=q-1,z=function(){return-1", "homepage": "http://igorescobar.github.io/jQuery-Mask-Plugin/", diff --git a/src/jquery.mask.js b/src/jquery.mask.js index e51020b5..714c3035 100755 --- a/src/jquery.mask.js +++ b/src/jquery.mask.js @@ -1,6 +1,6 @@ /** * jquery.mask.js - * @version: v1.14.13 + * @version: v1.14.14 * @author: Igor Escobar * * Created by Igor Escobar on 2012-03-10. Please report any bug at github.com/igorescobar/jQuery-Mask-Plugin From 48ac194b474317d96cba1375be35bae317519375 Mon Sep 17 00:00:00 2001 From: Igor Escobar Date: Fri, 2 Mar 2018 16:55:28 +0000 Subject: [PATCH 21/42] upgrading changelog --- CHANGELOG.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 58ec01a9..fb693aaf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,11 @@ +== v1.14.14 (Mar/02 2018 16:55 +0000 by Igor Escobar) == + +Bugfixes: + +* fixing mask positioning delays +* unmask: also removing place holder if added on the first place. +* unmask: unsetting maxlength if we set it in the first place + == v1.14.13 (Dec/11 2017 18:59 +0000 by Igor Escobar) == Bugfixes: From d27f8b03daa16216e1a881e3764b357126830e1d Mon Sep 17 00:00:00 2001 From: Igor Escobar Date: Fri, 2 Mar 2018 17:11:59 +0000 Subject: [PATCH 22/42] fixing tests for zepto.js --- .travis.yml | 2 +- test/jquery.mask.test.js | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 62ddc766..c6ea430d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,4 +4,4 @@ node_js: before_script: - npm install -g grunt-cli - npm install -script: grunt test -v -d +script: grunt test diff --git a/test/jquery.mask.test.js b/test/jquery.mask.test.js index f04c9d5b..378aebb2 100644 --- a/test/jquery.mask.test.js +++ b/test/jquery.mask.test.js @@ -331,8 +331,14 @@ $(document).ready(function(){ equal(typeTest("1299999999"), "(12) 9999-9999"); testfield.unmask() equal(testfield.val(), "1299999999"); - equal(testfield.attr('placeholder'), undefined); - equal(testfield.attr('maxlength'), undefined); + + if (window.Zepto) { + equal(testfield.attr('placeholder'), ''); + equal(testfield.attr('maxlength'), null); + } else { + equal(testfield.attr('placeholder'), undefined); + equal(testfield.attr('maxlength'), undefined); + } }); module('Getting Unmasked Value'); From 68fcf26939c141fc1e47dbfca1c5803ae981663d Mon Sep 17 00:00:00 2001 From: Igor Escobar Date: Thu, 8 Mar 2018 22:54:00 +0000 Subject: [PATCH 23/42] =?UTF-8?q?rolling=20back=20change=20to=20fix=20care?= =?UTF-8?q?t=20positioning.=20it=20didn=E2=80=99t=20worked=20on=20some=20d?= =?UTF-8?q?evices?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/jquery.mask.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/jquery.mask.js b/src/jquery.mask.js index 714c3035..d0dc2f76 100755 --- a/src/jquery.mask.js +++ b/src/jquery.mask.js @@ -254,7 +254,8 @@ var keyCode = el.data('mask-keycode'); if ($.inArray(keyCode, jMask.byPassKeys) === -1) { - var newVal = p.getMasked(); + var newVal = p.getMasked(), + caretPos = p.getCaret(); // this is a compensation to devices/browsers that don't compensate // caret positioning the right way @@ -263,6 +264,7 @@ }, $.jMaskGlobals.keyStrokeCompensation); p.val(newVal); + p.setCaret(caretPos); return p.callbacks(e); } }, From be8c1bb3b9f6040ff923ee81f7b57fe12a0f15e4 Mon Sep 17 00:00:00 2001 From: Igor Escobar Date: Thu, 8 Mar 2018 22:58:48 +0000 Subject: [PATCH 24/42] generating jquery mask files v1.14.15 --- bower.json | 2 +- component.json | 2 +- dist/jquery.mask.js | 6 ++++-- dist/jquery.mask.min.js | 34 +++++++++++++++++----------------- package.js | 2 +- package.json | 2 +- src/jquery.mask.js | 2 +- 7 files changed, 26 insertions(+), 24 deletions(-) diff --git a/bower.json b/bower.json index f810d136..6d909412 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "jquery-mask-plugin", - "version": "1.14.14", + "version": "1.14.15", "main": "dist/jquery.mask.js", "ignore": [ "deploy.rb", diff --git a/component.json b/component.json index 7353b051..970995a0 100644 --- a/component.json +++ b/component.json @@ -1,7 +1,7 @@ { "name": "jQuery-Mask-Plugin", "description": "A jQuery Plugin to make masks on form fields and HTML elements.", - "version": "1.14.14", + "version": "1.14.15", "keywords": ["javascript", "mask", "form"], "scripts": [ "dist/jquery.mask.js" diff --git a/dist/jquery.mask.js b/dist/jquery.mask.js index 714c3035..019f2ec2 100755 --- a/dist/jquery.mask.js +++ b/dist/jquery.mask.js @@ -1,6 +1,6 @@ /** * jquery.mask.js - * @version: v1.14.14 + * @version: v1.14.15 * @author: Igor Escobar * * Created by Igor Escobar on 2012-03-10. Please report any bug at github.com/igorescobar/jQuery-Mask-Plugin @@ -254,7 +254,8 @@ var keyCode = el.data('mask-keycode'); if ($.inArray(keyCode, jMask.byPassKeys) === -1) { - var newVal = p.getMasked(); + var newVal = p.getMasked(), + caretPos = p.getCaret(); // this is a compensation to devices/browsers that don't compensate // caret positioning the right way @@ -263,6 +264,7 @@ }, $.jMaskGlobals.keyStrokeCompensation); p.val(newVal); + p.setCaret(caretPos); return p.callbacks(e); } }, diff --git a/dist/jquery.mask.min.js b/dist/jquery.mask.min.js index 79dd596e..ce86d08b 100644 --- a/dist/jquery.mask.min.js +++ b/dist/jquery.mask.min.js @@ -1,19 +1,19 @@ -// jQuery Mask Plugin v1.14.14 +// jQuery Mask Plugin v1.14.15 // github.com/igorescobar/jQuery-Mask-Plugin -var $jscomp={scope:{},findInternal:function(a,g,d){a instanceof String&&(a=String(a));for(var n=a.length,h=0;hk?e=10*f:d>=e&&d!==k?c.maskDigitPosMapOld[e]||(d=e,e=e-(g-h)-a,c.maskDigitPosMap[e]&&(e=d)):e>d&& -(e=e+(h-g)+m)}return e},behaviour:function(e){e=e||window.event;c.invalid=[];var f=b.data("mask-keycode");if(-1===a.inArray(f,m.byPassKeys))return f=c.getMasked(),setTimeout(function(){c.setCaret(c.calculateCaretPosition())},a.jMaskGlobals.keyStrokeCompensation),c.val(f),c.callbacks(e)},getMasked:function(a,b){var d=[],p=void 0===b?c.val():b+"",k=0,h=f.length,g=0,q=p.length,l=1,n="push",t=-1,w=0,y=[],u,z;e.reverse?(n="unshift",l=-1,u=0,k=h-1,g=q-1,z=function(){return-1d?g=10*e:f>=g&&f!==d?c.maskDigitPosMapOld[g]||(f=g,g=g-(l-h)-a,c.maskDigitPosMap[g]&&(g=f)):g>f&& +(g=g+(h-l)+m)}return g},behaviour:function(f){f=f||window.event;c.invalid=[];var e=b.data("mask-keycode");if(-1===a.inArray(e,m.byPassKeys)){var e=c.getMasked(),g=c.getCaret();setTimeout(function(){c.setCaret(c.calculateCaretPosition())},a.jMaskGlobals.keyStrokeCompensation);c.val(e);c.setCaret(g);return c.callbacks(f)}},getMasked:function(a,b){var g=[],d=void 0===b?c.val():b+"",n=0,h=e.length,q=0,l=d.length,k=1,r="push",p=-1,t=0,y=[],v,z;f.reverse?(r="unshift",k=-1,v=0,n=h-1,q=l-1,z=function(){return-1< +n&&-1", "homepage": "http://igorescobar.github.io/jQuery-Mask-Plugin/", diff --git a/src/jquery.mask.js b/src/jquery.mask.js index d0dc2f76..019f2ec2 100755 --- a/src/jquery.mask.js +++ b/src/jquery.mask.js @@ -1,6 +1,6 @@ /** * jquery.mask.js - * @version: v1.14.14 + * @version: v1.14.15 * @author: Igor Escobar * * Created by Igor Escobar on 2012-03-10. Please report any bug at github.com/igorescobar/jQuery-Mask-Plugin From 73199b3f5988c40383d916a88b1d8603a4f379cd Mon Sep 17 00:00:00 2001 From: Igor Escobar Date: Thu, 8 Mar 2018 22:59:13 +0000 Subject: [PATCH 25/42] upgrading changelog --- CHANGELOG.md | 921 +-------------------------------------------------- 1 file changed, 1 insertion(+), 920 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fb693aaf..ccd3e9f5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,920 +1 @@ -== v1.14.14 (Mar/02 2018 16:55 +0000 by Igor Escobar) == - -Bugfixes: - -* fixing mask positioning delays -* unmask: also removing place holder if added on the first place. -* unmask: unsetting maxlength if we set it in the first place - -== v1.14.13 (Dec/11 2017 18:59 +0000 by Igor Escobar) == - -Bugfixes: - -* fixes caret issue explained on #636 -* fixing use strict issue - -== v1.14.12 (Oct/04 2017 09:57 +0100 by Igor Escobar) == - -Bugfixes: - -* bug fixing on caret positioning on some devices - -== v1.14.11 (May/30 2017 21:53 +0100 by Igor Escobar) == - -Bugfixes: - -* fixing a lot of caret positioning issues. Thanks to @onuradsay - -== v1.14.10 (Feb/13 2017 14:18 +0000 by Igor Escobar) == - -Bugfixes: - -* fixing exception when oValue in undefined - -== v1.14.9 (Jan/25 2017 11:17 +0000 by Igor Escobar) == - -Bugfixes: - -* don’t use input event when using samsung browser or old chrome versions - -== v1.14.8 (Dec/26 2016 13:18 +0000 by Igor Escobar) == - -Bugfixes: - -* fixing caret on android with chrome 28 - -== v1.14.7 (Dec/25 2016 03:51 +0000 by Igor Escobar) == - -Bugfixes: - -* improving caret positioning when cursor is on the middle - -== v1.14.6 (Dec/24 2016 17:14 +0000 by Igor Escobar) == - -Bugfixes: - -* fix caret positioning with multiple mask chars - -== v1.14.5 (Dec/24 2016 14:42 +0000 by Igor Escobar) == - -Changes: - -* fixing reserved word - -== v1.14.4 (Dec/24 2016 14:38 +0000 by Igor Escobar) == - -Bugfixes: - -* fixing android cursor positioning (special thanks to @felipejunges and @fernandobandeira) - -== v1.14.3 (Nov/28 2016 11:53 +0000 by Igor Escobar) == - -Bugfixes: - -* fixing caret positioning on safari - -== v1.14.2 (Nov/27 2016 20:04 +0000 by Igor Escobar) == - -Bugfixes: - -* apply auto maxlength in case the mask doesn't have recursive pattern - -== v1.14.1 (Nov/27 2016 19:20 +0000 by Igor Escobar) == - -Bugfixes: - -* Fix input value mangling when inserting before a static mask character -* fixing caret position issue - -== v1.14.0 (Apr/03 2016 17:52 +0100 by Igor Escobar) == - -Bugfixes: - -* Fix cursor jumping while editing in non-IE browsers. Thanks to @archwyrm - -Features: - -* adding masked function for better angular use - -== v1.13.9 (Mar/20 2016 16:17 +0000 by Igor Escobar) == - -Changes: - -* giving the opportunity to pass watchInputs locally - -== v1.13.8 (Mar/06 2016 23:25 +0000 by Igor Escobar) == - -Changes: - -* adding support for meteor - -== v1.13.7 (Mar/06 2016 22:46 +0000 by Igor Escobar) == - -Bugfixes: - -* fixing onChange behaviour - -== v1.13.6 (Mar/06 2016 22:14 +0000 by Igor Escobar) == - -Bugfixes: - -* fixing deploy procedure - -== v1.13.5 (Mar/06 2016 22:01 +0000 by Igor Escobar) == - -Changes: - -* adding clearIfNotMatch to globalOptions - -Bugfixes: - -* fixing some bugs when using non-input elements -* fixing mobile issues at #348. -* using input event when supported - -== v1.13.4 (Aug/07 2015 14:21 +0100 by Igor Escobar) == - -Bugfixes: - -* Add check to ensure that there are input elements before using them - -== v1.13.3 (Jul/16 2015 16:11 +0100 by Igor Escobar) == - -Changes: - -* adding main property to package.json - -== v1.13.2 (Jul/16 2015 16:06 +0100 by Igor Escobar) == - -Bugfixes: - -* change event wasnt being triggered in some cases - -== v1.13.1 (Jul/07 2015 15:38 +0100 by Igor Escobar) == - -Bugfixes: - -* destroying input event too - -== v1.13.0 (Jul/07 2015 15:26 +0100 by Igor Escobar) == - -Changes: - -* removing the autocomplete default. - -Bugfixes: - -* fixing bower file thanks to @lazyants - -Features: - -* prevent glitch when invalid chars. -* turning off autocomplete when browsers doesn't support oninput event. - -== v1.12.0 (Jul/07 2015 11:37 +0100 by Igor Escobar) == - -Features: - -* giving an alternative to the autocomplete/autofill problem. - -== v1.11.4 (Feb/26 2015 22:11 +0000 by Igor Escobar) == - -Changes: - -* grunt, jshint and better applyDataMask. Thanks to @lagden -* automated deploy to npm - -== v1.11.3 (Jan/28 2015 15:41 +0000 by Igor Escobar) == - -Changes: - -* Added commonjs module definition - -== v1.11.2 (Dec/26 2014 15:36 +0000 by Igor Escobar) == - -Bugfixes: - -* unreachable code - -== v1.11.1 (Dec/26 2014 15:34 +0000 by Igor Escobar) == - -Bugfixes: - -* unreachable code - -== v1.11.0 (Dec/26 2014 15:33 +0000 by Igor Escobar) == - -Features: - -* implementing selectOnFocus and data-mask-selectonfocus option -* adding public method called: .applyDataMask in case you want to decide whether to apply masks in data-mask fields - -== v1.10.13 (Nov/19 2014 16:06 +0000 by Igor Escobar) == - -Bugfixes: - -* fixing bug with watchInputs feature when mask is used as a function and not a string. - -== v1.10.12 (Nov/06 2014 13:08 +0000 by Igor Escobar) == - -Changes: - -* making a few improvements to make selection, copy events easier - -== v1.10.11 (Nov/06 2014 11:26 +0000 by Igor Escobar) == - -Bugfixes: - -* we need to revaluate dataMask flags everytime - -== v1.10.10 (Nov/06 2014 10:41 +0000 by Igor Escobar) == - -Bugfixes: - -* fixing dynamically data-mask added elements - -== v1.10.9 (Nov/05 2014 10:52 +0000 by Igor Escobar) == - -Bugfixes: - -* data-mask wasnt working - -== v1.10.8 (Nov/01 2014 13:49 +0000 by Igor Escobar) == - -Changes: - -* we dont need to seek for data-mask every time - -== v1.10.7 (Nov/01 2014 13:18 +0000 by Igor Escobar) == - -Changes: - -* little optimization - -== v1.10.6 (Oct/28 2014 13:59 +0000 by Igor Escobar) == - -Bugfixes: - -* fixing weird cursor problems in weird cases. -* dynamically added inputs wasnt working - -== v1.10.5 (Oct/23 2014 11:41 +0100 by Igor Escobar) == - -Bugfixes: - -* fixing weird cursor problems in weird cases. - -== v1.10.4 (Oct/23 2014 11:02 +0100 by Igor Escobar) == - -Bugfixes: - -* fixing on the fly mask change feature. - -== v1.10.3 (Oct/22 2014 09:50 +0100 by Igor Escobar) == - -Bugfixes: - -* fixing unmask method. - -== v1.10.2 (Oct/20 2014 16:38 +0100 by Igor Escobar) == - -Bugfixes: - -* onChange event fired at the wrong time when the field already has a value. - -== v1.10.1 (Oct/20 2014 16:08 +0100 by Igor Escobar) == - -Bugfixes: - -* fixing onChange event behaviour - -== v1.10.0 (Oct/20 2014 10:56 +0100 by Igor Escobar) == - -Features: - -* adding a way to change global settings like translation object and the byPassKeys object. - -== v1.9.2 (Oct/20 2014 10:08 +0100 by Igor Escobar) == - -Bugfixes: - -* fixing fallback digits implementation. Thanks @A1rPun - -== v1.9.1 (Oct/18 2014 12:27 +0100 by Igor Escobar) == - -Bugfixes: - -* cant convert circular json exception - -== v1.9.0 (Oct/18 2014 12:07 +0100 by Igor Escobar) == - -Features: - -* adding onInvalid callback - -== v1.8.0 (Oct/17 2014 11:35 +0100 by Igor Escobar) == - -Changes: - -* removing automatic maxlength support -* making a few optimizations to make it faster and retro compatible with other libraries -* creating globalOptions to make it more fast and flexible - -Bugfixes: - -* fixing issue #196 - -Features: - -* adding the fallback translation option - -== v1.7.8 (Oct/15 2014 10:55 +0100 by Igor Escobar) == - -Bugfixes: - -* change event may experience issues -* avoid maximum call stack trace error - -== v1.7.7 (Sep/10 2014 22:31 +0100 by Igor Escobar) == - -Bugfixes: - -* fixing clojure compile issue - -== v1.7.6 (Sep/10 2014 22:14 +0100 by Igor Escobar) == - -Bugfixes: - -* fixing clearifnotmatch in masks with literal digits - -== v1.7.5 (Sep/09 2014 15:43 +0100 by Igor Escobar) == - -Bugfixes: - -* fixing paste inside of empty fields. - -== v1.7.4 (Aug/11 2014 14:53 +0100 by Igor Escobar) == - -Changes: - -* smaller and reliable code - -== v1.7.3 (Aug/11 2014 11:28 +0100 by Igor Escobar) == - -Bugfixes: - -* fixing issue #185 - -== v1.7.2 (Aug/08 2014 11:11 +0100 by Igor Escobar) == - -Changes: - -* smaller code - -Bugfixes: - -* fixing remove bug - -== v1.7.1 (Aug/08 2014 00:55 +0100 by Igor Escobar) == - -Changes: - -* upgrading zepto, smaller syntax and fixing build - -== v1.7.0 (Aug/07 2014 23:56 +0100 by Igor Escobar) == - -Features: - -* applying masks to dynamically added elements. (html/javascript notation) - -== v1.6.5 (Jun/30 2014 10:24 +0100 by Igor Escobar) == - -Bugfixes: - -* fixing clearIfNotMatch feature in cases of optional and recursive digits - -== v1.6.4 (May/08 2014 23:54 +0100 by Igor Escobar) == - -Changes: - -* testing some deployment stunts - -== v1.6.3 (May/08 2014 23:51 +0100 by Igor Escobar) == - -Changes: - -* testing some deployment stunts - -== v1.6.2 (May/08 2014 23:45 +0100 by Igor Escobar) == - -Bugfixes: - -* fuckin typo - -== v1.6.1 (May/08 2014 23:39 +0100 by Igor Escobar) == - -Bugfixes: - -* fixing autofocus bug - -== v1.6.0 (May/07 2014 21:13 +0100 by Igor Escobar) == - -Bugfixes: - -* fixing autofocus bug - -Features: - -* adding support to the clearIfNotMatch option -* HTML5 placeholder support - -== v1.5.7 (May/01 2014 18:37 +0100 by Igor Escobar) == - -Changes: - -* some cleanup and stuff - -== v1.5.6 (May/01 2014 18:30 +0100 by Igor Escobar) == - -Bugfixes: - -* Bug in calculating difference between mask characters between old and new field values -* Fix stack limit exceeded - -== v1.5.5 (Apr/27 2014 13:47 +0100 by Igor Escobar) == - -Changes: - -* UMD (Universal Module Definition) patterns for JavaScript modules - -Bugfixes: - -* caret position correction -* 114 - Fix onChange Event error - -== v1.5.4 (Feb/09 2014 12:02 +0000 by Igor Escobar) == - -Changes: - -* optmizing code - -== v1.5.3 (Feb/08 2014 14:59 +0000 by Igor Escobar) == - -Bugfixes: - -* fixing ctrl a bug - -== v1.5.2 (Dec/20 2013 16:35 +0000 by Igor Escobar) == - -Changes: - -* smaller source code - -== v1.5.1 (Dec/18 2013 22:34 +0000 by Igor Escobar) == - -Changes: - -* fixing some code climate problems - -== v1.5.0 (Dec/18 2013 22:10 +0000 by Igor Escobar) == - -Bugfixes: - -* fixing getCleanVal() - -Features: - -* new public method called cleanVal - -== v1.4.2 (Dec/16 2013 15:48 +0000 by Igor Escobar) == - -Bugfixes: - -* Dirty fix for masks not completing with a literal - -== v1.4.1 (Dec/09 2013 21:23 +0000 by Igor Escobar) == - -Changes: - -* revising ignored keys - -== v1.4.0 (Nov/28 2013 18:06 +0000 by Igor Escobar) == - -Features: - -* caret positioning implementation - -== v1.3.1 (Oct/08 2013 20:38 +0100 by Igor Escobar) == - -Changes: - -* adding more keys to ignore list to make the char navigation smoothly - -Bugfixes: - -* Sounds like 'options' has disappeared for some reason - -== v1.3.0 (Sep/13 2013 10:37 +0100 by Igor Escobar) == - -Features: - -* creating the maxlength option - -== v1.2.0 (Sep/07 2013 12:07 +0100 by Igor Escobar) == - -Features: - -* adding the possibility to put recursive digits inside masks - -== v1.1.3 (Sep/04 2013 21:21 +0100 by Igor Escobar) == - -Bugfixes: - -* fixing late masking - -== v1.1.2 (Aug/26 2013 15:08 +0100 by Igor Escobar) == - -Bugfixes: - -* fixing mask on div,span etc - -== v1.1.1 (Aug/26 2013 14:42 +0100 by Igor Escobar) == - -Bugfixes: - -* better callback handling - -== v1.1.0 (Aug/24 2013 15:59 +0100 by Igor Escobar) == - -Features: - -* adding onchange support - -== v1.0.3 (Aug/23 2013 23:10 +0100 by Igor Escobar) == - -Changes: - -* optimizations to mask on non html fields - -== v1.0.2 (Aug/23 2013 22:46 +0100 by Igor Escobar) == - -Bugfixes: - -* adding remask method do improve callback performance - -== v1.0.1 (Aug/23 2013 22:01 +0100 by Igor Escobar) == - -Changes: - -* normal releases again - -== v1.0.0 (Aug/23 2013 21:59 +0100 by Igor Escobar) == - -Features: - -* huge refactoring focusing no reduce source code weight and bugfixing - -== v0.11.5 (Aug/20 2013 17:11 +0100 by Igor Escobar) == - -Bugfixes: - -* bug fixing when mask range is bigger than 2 digits. - -== v0.11.4 (Aug/19 2013 10:24 +0100 by Igor Escobar) == - -Changes: - -* adding de delete key to byPassKeys - -== v0.11.3 (Aug/18 2013 00:48 +0100 by Igor Escobar) == - -Bugfixes: - -* fixing zepto compatibily - -== v0.11.2 (Aug/17 2013 18:39 +0100 by Igor Escobar) == - -Bugfixes: - -* jmask iterate all items - -== v0.11.1 (Aug/17 2013 18:32 +0100 by Igor Escobar) == - -Changes: - -* a little bit smaller source code - -== v0.11.0 (Aug/16 2013 21:27 +0100 by Igor Escobar) == - -Bugfixes: - -* Altered "ignored keys" hook to run events (i.e. onKeyPress) afterwards. Otherwise, we miss key triggered events when the user deletes the entire text box, etc. - -Features: - -* adding support to method getCleanVal - -== v0.10.1 (Jul/26 2013 09:35 +0100 by ) == - - - -== v0.10.0 (Jul/19 2013 23:07 +0100 by Igor Escobar) == - -Features: - -* adding data-mask support - -== v0.9.1 (Jul/19 2013 22:35 +0100 by Igor Escobar) == - -Changes: - -* jQuery-Mask-Plugin is now available at bower.io - -Bugfixes: - -* fixing addEventListener on IE7 - -== v0.9.0 (Apr/24 2013 07:44 +0100 by Igor Escobar) == - -Features: - -* Adding compatibility with Zepto.js - -== v0.8.0 (Apr/07 2013 18:39 +0100 by Igor Escobar) == - -Features: - -* applying masks anything != than input :) -* implementing the possibility of range chars ex: A{1,3} - -== v0.7.11 (Apr/05 2013 22:12 +0100 by Igor Escobar) == - -Changes: - -* now when you type a wrong char, the plugin will make your text fit inside of the mask instead of lose your data. - -== v0.7.10 (Apr/04 2013 22:14 +0100 by Igor Escobar) == - -Changes: - -* changing yui-compressor to clojure-compiler - -== v0.7.9 (Apr/04 2013 22:04 +0100 by Igor Escobar) == - -Changes: - -* refactoring and implementation of optional mask digits - -Bugfixes: - -* fixing maxlength and adding a smarter mask removal. issue #18 - -== v0.7.8 (Mar/30 2013 00:48 +0000 by Igor Escobar) == - -Changes: - -* a few changes to get the code smallest possible. -* removing unnecessary methods and making code smaller. - -== v0.7.7 (Mar/29 2013 12:38 +0000 by Igor Escobar) == - -Bugfixes: - -* fixing copy and paste problem related on issue #15 - -== v0.7.6 (Mar/29 2013 00:28 +0000 by Igor Escobar) == - -Bugfixes: - -* correcting mask formatationg problem related on issue #16 - -== v0.7.5 (Mar/03 2013 20:56 +0000 by Igor Escobar) == - -Changes: - -* generating .gz file on deploy - -== v0.7.4 (Mar/03 2013 20:38 +0000 by Igor Escobar) == - -Changes: - -* changing minifier jsmin to yui compressor. - -== v0.7.3 (Mar/02 2013 01:12 +0000 by Igor Escobar) == - -Bugfixes: - -* bug fixing when typed wrong data type on mixing masks. - -== v0.7.2 (Feb/24 2013 22:02 +0000 by Igor Escobar) == - -Bugfixes: - -* fuckin stupid comma. - -== v0.7.1 (Feb/24 2013 21:57 +0000 by Igor Escobar) == - -Changes: - -* testing the private method maskToRegex -* a little bit of changes to make the code more testable - -== v0.7.0 (Feb/12 2013 00:30 +0000 by Igor Escobar) == - -Features: - -* Now you can decide for jquery mask plugin how to interpret 0 to 9, A and S and even teach him how to reconize patterns. - -== v0.6.3 (Feb/11 2013 12:20 +0000 by Igor Escobar) == - -Bugfixes: - -* When the user paste a text and the last char is valid sanitize may fail - -== v0.6.2 (Feb/11 2013 00:02 +0000 by Igor Escobar) == - -Bugfixes: - -* allowing the user type the same character as the mask without erasing it. - -== v0.6.1 (Jan/20 2013 23:57 +0000 by Igor Escobar) == - -Changes: - -* changing the way ta deployment occurs to correct jquery plugins deployments. - -== v0.6.0 (Jan/18 2013 17:19 +0000 by Igor Escobar) == - -Changes: - -* Now pushing jQuery Mask Plugin to jQuery Plugins Repository - -== v0.5.4 (Jan/17 2013 23:06 +0000 by Igor Escobar) == - -Changes: - -* upgrading jquery plugins manifest file - -== v0.5.3 (Jan/17 2013 22:48 +0000 by Igor Escobar) == - -Bugfixes: - -* correctly generating jmask version inside of jquery mask source - -== v0.5.2 (Jan/17 2013 22:43 +0000 by Igor Escobar) == - -Changes: - -* Now pushing to jQuery Plugin Repository - -== v0.5.1 (Jan/07 2013 23:33 +0000 by Igor Escobar) == - -Changes: - -* improving the deploy process with the new stepup's upgrade. - -== v0.5.0 (Oct/27 2012 13:40 +0100 by Igor Escobar) == - -Bugfixes: - -* Bug fixes on OnSupport method with Firefox. - -Features: - -* the first parameter of the .mask() function, now accepts a string or a anonymous function - -== v0.4.7 (Aug/06 2012 22:56 +0100 by Igor Escobar) == - -Changes: - -* Nothing big, just class refactoring - -== v0.4.6 (Aug/06 2012 01:25 +0100 by Igor Escobar) == - -Changes: - -- better OOP design -- implementing the jquery data object on each mask field -- implementing the public method .remove to disable and remove the mask - -== v0.4.5 (Aug/04 2012 01:31 +0100 by Igor Escobar) == - -Changes: - -- improving support to complex jquery selectors -- performance improvement. -- callback handling improvement - -== v0.4.4 (Jun/03 2012 21:01 +0100 by Igor Escobar) == - -Bugfixes: - -* Bug fixes on Internet Explorer 8. - -== v0.4.3 (Mar/19 2012 21:52 +0000 by Igor Escobar) == - -Bugfixes: - -* Corrigindo bug para mascaras com + - -== v0.4.2 (Mar/18 2012 15:28 +0000 by Igor Escobar) == - -Bugfixes: - -* Mascara não pararecia no firefox - -== v0.4.1 (Mar/18 2012 15:01 +0000 by Igor Escobar) == - -Bugfixes: - -* Corrigindo tim das macaras. - -== v0.4.0 (Mar/18 2012 14:51 +0000 by Igor Escobar) == - -Features: - -* Implementado mascara reversa para moeda/cpf/rg/etc. -* Nova engine. - -== v0.3.0 (Mar/14 2012 10:14 +0000 by Igor Escobar) == - -Changes: - -* License and comments up to date. - -Features: - -* On-the-fly mask change. -* onComplete and onKeyPress new callbacks. - -== v0.2.5 (Mar/13 2012 22:55 +0000 by Igor Escobar) == - -Bugfixes: - -- Corrigindo ctrl+v com mascara errada. - Cortando dados que exceder a mascara no ctrl+v ou se segurar alguma tecla. - Refatorando algumas partes do código. - -== v0.2.4 (Mar/13 2012 11:06 +0000 by Igor Escobar) == - -Changes: - -* Codigo refatorado, otimizado, validação mais precisa e efetiva. - -== v0.2.3 (Mar/13 2012 01:01 +0000 by Igor Escobar) == - -Changes: - -* Melhorando expressoes regulares. - -== v0.2.2 (Mar/13 2012 00:50 +0000 by Igor Escobar) == - -Bugfixes: - -* Corrindo regex de validação - -== v0.2.1 (Mar/13 2012 00:41 +0000 by Igor Escobar) == - -Bugfixes: - -* Corrigida validação alphanumerica. - -== v0.2.0 (Mar/13 2012 00:24 +0000 by Igor Escobar) == - -Features: - -- Input Data Type Validation. -- Automatic MaxLength (When are not defined). -- Live Event Implemented for Ajax-based Apps. -- Mixed mask with validation. -* S for string digit -* A for alphanumeric digit -* 0 to 9 for numeric digit. - -== v0.1.1.1 (Mar/10 2012 21:49 +0000 by Igor Escobar) == - -- Isolando instancia do jQuery para dentro do Plugin -- Crossbrowser keyCode -- Implementando mascaras sequencias -- Aprimorando preenchimento das mascaras -- Adicionando as setas do teclado como byPassKeys - -== v0.1.1 (Mar/10 2012 14:05 +0000 by Igor Escobar) == - -Bugfixes: - -* Implementando Crossbrowser event handling. - -== v0.1.0 (Mar/10 2012 13:10 +0000 by Igor Escobar) == - -Features: - -* Implementando mascaras com espaço para data e hora - -== v0.0.1 (Mar/10 2012 04:42 +0000 by Igor Escobar) == - -Changes: - -* Refatorando o codigo para suportar multiplas instancias - -== v0.0.0.1 (Mar/10 2012 01:13 +0000 by Igor Escobar) == - -Primeira versão do jQuery-Mask-Plugin. +StepUp Exception: undefined method `parse' for Time:Class From 16a1b61fd9824a2b7f05f0812f5cea802930b1f9 Mon Sep 17 00:00:00 2001 From: Igor Escobar Date: Wed, 18 Apr 2018 11:00:33 +0100 Subject: [PATCH 26/42] fixing changelog --- .ruby-version | 2 +- CHANGELOG.md | 915 +++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 915 insertions(+), 2 deletions(-) diff --git a/.ruby-version b/.ruby-version index c82eec79..68b3a4cd 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -1.9.3-p448 +1.9.3-p551 diff --git a/CHANGELOG.md b/CHANGELOG.md index ccd3e9f5..848ac30a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1 +1,914 @@ -StepUp Exception: undefined method `parse' for Time:Class +== v1.14.15 (Mar/08 2018 22:59 +0000 by Igor Escobar) == + +Bugfixes: + +* rolling back change to fix caret positioning. it didn’t worked on some devices + +== v1.14.14 (Mar/02 2018 16:55 +0000 by Igor Escobar) == + +Bugfixes: + +* fixing mask positioning delays +* unmask: also removing place holder if added on the first place. +* unmask: unsetting maxlength if we set it in the first place + +== v1.14.13 (Dec/11 2017 18:59 +0000 by Igor Escobar) == + +Bugfixes: + +* fixes caret issue explained on #636 +* fixing use strict issue + +== v1.14.12 (Oct/04 2017 09:57 +0100 by Igor Escobar) == + +Bugfixes: + +* bug fixing on caret positioning on some devices + +== v1.14.11 (May/30 2017 21:53 +0100 by Igor Escobar) == + +Bugfixes: + +* fixing a lot of caret positioning issues. Thanks to @onuradsay + +== v1.14.10 (Feb/13 2017 14:18 +0000 by Igor Escobar) == + +Bugfixes: + +* fixing exception when oValue in undefined + +== v1.14.9 (Jan/25 2017 11:17 +0000 by Igor Escobar) == + +Bugfixes: + +* don’t use input event when using samsung browser or old chrome versions + +== v1.14.8 (Dec/26 2016 13:18 +0000 by Igor Escobar) == + +Bugfixes: + +* fixing caret on android with chrome 28 + +== v1.14.7 (Dec/25 2016 03:51 +0000 by Igor Escobar) == + +Bugfixes: + +* improving caret positioning when cursor is on the middle + +== v1.14.6 (Dec/24 2016 17:14 +0000 by Igor Escobar) == + +Bugfixes: + +* fix caret positioning with multiple mask chars + +== v1.14.5 (Dec/24 2016 14:42 +0000 by Igor Escobar) == + +Changes: + +* fixing reserved word + +== v1.14.4 (Dec/24 2016 14:38 +0000 by Igor Escobar) == + +Bugfixes: + +* fixing android cursor positioning (special thanks to @felipejunges and @fernandobandeira) + +== v1.14.3 (Nov/28 2016 11:53 +0000 by Igor Escobar) == + +Bugfixes: + +* fixing caret positioning on safari + +== v1.14.2 (Nov/27 2016 20:04 +0000 by Igor Escobar) == + +Bugfixes: + +* apply auto maxlength in case the mask doesn't have recursive pattern + +== v1.14.1 (Nov/27 2016 19:20 +0000 by Igor Escobar) == + +Bugfixes: + +* Fix input value mangling when inserting before a static mask character +* fixing caret position issue + +== v1.14.0 (Apr/03 2016 17:52 +0100 by Igor Escobar) == + +Bugfixes: + +* Fix cursor jumping while editing in non-IE browsers. Thanks to @archwyrm + +Features: + +* adding masked function for better angular use + +== v1.13.9 (Mar/20 2016 16:17 +0000 by Igor Escobar) == + +Changes: + +* giving the opportunity to pass watchInputs locally + +== v1.13.8 (Mar/06 2016 23:25 +0000 by Igor Escobar) == + +Changes: + +* adding support for meteor + +== v1.13.7 (Mar/06 2016 22:46 +0000 by Igor Escobar) == + +Bugfixes: + +* fixing onChange behaviour + +== v1.13.6 (Mar/06 2016 22:14 +0000 by Igor Escobar) == + +Bugfixes: + +* fixing deploy procedure + +== v1.13.5 (Mar/06 2016 22:01 +0000 by Igor Escobar) == + +Changes: + +* adding clearIfNotMatch to globalOptions + +Bugfixes: + +* fixing some bugs when using non-input elements +* fixing mobile issues at #348. +* using input event when supported + +== v1.13.4 (Aug/07 2015 14:21 +0100 by Igor Escobar) == + +Bugfixes: + +* Add check to ensure that there are input elements before using them + +== v1.13.3 (Jul/16 2015 16:11 +0100 by Igor Escobar) == + +Changes: + +* adding main property to package.json + +== v1.13.2 (Jul/16 2015 16:06 +0100 by Igor Escobar) == + +Bugfixes: + +* change event wasnt being triggered in some cases + +== v1.13.1 (Jul/07 2015 15:38 +0100 by Igor Escobar) == + +Bugfixes: + +* destroying input event too + +== v1.13.0 (Jul/07 2015 15:26 +0100 by Igor Escobar) == + +Changes: + +* removing the autocomplete default. + +Bugfixes: + +* fixing bower file thanks to @lazyants + +Features: + +* prevent glitch when invalid chars. +* turning off autocomplete when browsers doesn't support oninput event. + +== v1.12.0 (Jul/07 2015 11:37 +0100 by Igor Escobar) == + +Features: + +* giving an alternative to the autocomplete/autofill problem. + +== v1.11.4 (Feb/26 2015 22:11 +0000 by Igor Escobar) == + +Changes: + +* grunt, jshint and better applyDataMask. Thanks to @lagden +* automated deploy to npm + +== v1.11.3 (Jan/28 2015 15:41 +0000 by Igor Escobar) == + +Changes: + +* Added commonjs module definition + +== v1.11.2 (Dec/26 2014 15:36 +0000 by Igor Escobar) == + +Bugfixes: + +* unreachable code + +== v1.11.1 (Dec/26 2014 15:34 +0000 by Igor Escobar) == + +Bugfixes: + +* unreachable code + +== v1.11.0 (Dec/26 2014 15:33 +0000 by Igor Escobar) == + +Features: + +* implementing selectOnFocus and data-mask-selectonfocus option +* adding public method called: .applyDataMask in case you want to decide whether to apply masks in data-mask fields + +== v1.10.13 (Nov/19 2014 16:06 +0000 by Igor Escobar) == + +Bugfixes: + +* fixing bug with watchInputs feature when mask is used as a function and not a string. + +== v1.10.12 (Nov/06 2014 13:08 +0000 by Igor Escobar) == + +Changes: + +* making a few improvements to make selection, copy events easier + +== v1.10.11 (Nov/06 2014 11:26 +0000 by Igor Escobar) == + +Bugfixes: + +* we need to revaluate dataMask flags everytime + +== v1.10.10 (Nov/06 2014 10:41 +0000 by Igor Escobar) == + +Bugfixes: + +* fixing dynamically data-mask added elements + +== v1.10.9 (Nov/05 2014 10:52 +0000 by Igor Escobar) == + +Bugfixes: + +* data-mask wasnt working + +== v1.10.8 (Nov/01 2014 13:49 +0000 by Igor Escobar) == + +Changes: + +* we dont need to seek for data-mask every time + +== v1.10.7 (Nov/01 2014 13:18 +0000 by Igor Escobar) == + +Changes: + +* little optimization + +== v1.10.6 (Oct/28 2014 13:59 +0000 by Igor Escobar) == + +Bugfixes: + +* fixing weird cursor problems in weird cases. +* dynamically added inputs wasnt working + +== v1.10.5 (Oct/23 2014 11:41 +0100 by Igor Escobar) == + +Bugfixes: + +* fixing weird cursor problems in weird cases. + +== v1.10.4 (Oct/23 2014 11:02 +0100 by Igor Escobar) == + +Bugfixes: + +* fixing on the fly mask change feature. + +== v1.10.3 (Oct/22 2014 09:50 +0100 by Igor Escobar) == + +Bugfixes: + +* fixing unmask method. + +== v1.10.2 (Oct/20 2014 16:38 +0100 by Igor Escobar) == + +Bugfixes: + +* onChange event fired at the wrong time when the field already has a value. + +== v1.10.1 (Oct/20 2014 16:08 +0100 by Igor Escobar) == + +Bugfixes: + +* fixing onChange event behaviour + +== v1.10.0 (Oct/20 2014 10:56 +0100 by Igor Escobar) == + +Features: + +* adding a way to change global settings like translation object and the byPassKeys object. + +== v1.9.2 (Oct/20 2014 10:08 +0100 by Igor Escobar) == + +Bugfixes: + +* fixing fallback digits implementation. Thanks @A1rPun + +== v1.9.1 (Oct/18 2014 12:27 +0100 by Igor Escobar) == + +Bugfixes: + +* cant convert circular json exception + +== v1.9.0 (Oct/18 2014 12:07 +0100 by Igor Escobar) == + +Features: + +* adding onInvalid callback + +== v1.8.0 (Oct/17 2014 11:35 +0100 by Igor Escobar) == + +Changes: + +* removing automatic maxlength support +* making a few optimizations to make it faster and retro compatible with other libraries +* creating globalOptions to make it more fast and flexible + +Bugfixes: + +* fixing issue #196 + +Features: + +* adding the fallback translation option + +== v1.7.8 (Oct/15 2014 10:55 +0100 by Igor Escobar) == + +Bugfixes: + +* change event may experience issues +* avoid maximum call stack trace error + +== v1.7.7 (Sep/10 2014 22:31 +0100 by Igor Escobar) == + +Bugfixes: + +* fixing clojure compile issue + +== v1.7.6 (Sep/10 2014 22:14 +0100 by Igor Escobar) == + +Bugfixes: + +* fixing clearifnotmatch in masks with literal digits + +== v1.7.5 (Sep/09 2014 15:43 +0100 by Igor Escobar) == + +Bugfixes: + +* fixing paste inside of empty fields. + +== v1.7.4 (Aug/11 2014 14:53 +0100 by Igor Escobar) == + +Changes: + +* smaller and reliable code + +== v1.7.3 (Aug/11 2014 11:28 +0100 by Igor Escobar) == + +Bugfixes: + +* fixing issue #185 + +== v1.7.2 (Aug/08 2014 11:11 +0100 by Igor Escobar) == + +Changes: + +* smaller code + +Bugfixes: + +* fixing remove bug + +== v1.7.1 (Aug/08 2014 00:55 +0100 by Igor Escobar) == + +Changes: + +* upgrading zepto, smaller syntax and fixing build + +== v1.7.0 (Aug/07 2014 23:56 +0100 by Igor Escobar) == + +Features: + +* applying masks to dynamically added elements. (html/javascript notation) + +== v1.6.5 (Jun/30 2014 10:24 +0100 by Igor Escobar) == + +Bugfixes: + +* fixing clearIfNotMatch feature in cases of optional and recursive digits + +== v1.6.4 (May/08 2014 23:54 +0100 by Igor Escobar) == + +Changes: + +* testing some deployment stunts + +== v1.6.3 (May/08 2014 23:51 +0100 by Igor Escobar) == + +Changes: + +* testing some deployment stunts + +== v1.6.2 (May/08 2014 23:45 +0100 by Igor Escobar) == + +Bugfixes: + +* fuckin typo + +== v1.6.1 (May/08 2014 23:39 +0100 by Igor Escobar) == + +Bugfixes: + +* fixing autofocus bug + +== v1.6.0 (May/07 2014 21:13 +0100 by Igor Escobar) == + +Bugfixes: + +* fixing autofocus bug + +Features: + +* adding support to the clearIfNotMatch option +* HTML5 placeholder support + +== v1.5.7 (May/01 2014 18:37 +0100 by Igor Escobar) == + +Changes: + +* some cleanup and stuff + +== v1.5.6 (May/01 2014 18:30 +0100 by Igor Escobar) == + +Bugfixes: + +* Bug in calculating difference between mask characters between old and new field values +* Fix stack limit exceeded + +== v1.5.5 (Apr/27 2014 13:47 +0100 by Igor Escobar) == + +Changes: + +* UMD (Universal Module Definition) patterns for JavaScript modules + +Bugfixes: + +* caret position correction +* 114 - Fix onChange Event error + +== v1.5.4 (Feb/09 2014 12:02 +0000 by Igor Escobar) == + +Changes: + +* optmizing code + +== v1.5.3 (Feb/08 2014 14:59 +0000 by Igor Escobar) == + +Bugfixes: + +* fixing ctrl a bug + +== v1.5.2 (Dec/20 2013 16:35 +0000 by Igor Escobar) == + +Changes: + +* smaller source code + +== v1.5.1 (Dec/18 2013 22:34 +0000 by Igor Escobar) == + +Changes: + +* fixing some code climate problems + +== v1.5.0 (Dec/18 2013 22:10 +0000 by Igor Escobar) == + +Bugfixes: + +* fixing getCleanVal() + +Features: + +* new public method called cleanVal + +== v1.4.2 (Dec/16 2013 15:48 +0000 by Igor Escobar) == + +Bugfixes: + +* Dirty fix for masks not completing with a literal + +== v1.4.1 (Dec/09 2013 21:23 +0000 by Igor Escobar) == + +Changes: + +* revising ignored keys + +== v1.4.0 (Nov/28 2013 18:06 +0000 by Igor Escobar) == + +Features: + +* caret positioning implementation + +== v1.3.1 (Oct/08 2013 20:38 +0100 by Igor Escobar) == + +Changes: + +* adding more keys to ignore list to make the char navigation smoothly + +Bugfixes: + +* Sounds like 'options' has disappeared for some reason + +== v1.3.0 (Sep/13 2013 10:37 +0100 by Igor Escobar) == + +Features: + +* creating the maxlength option + +== v1.2.0 (Sep/07 2013 12:07 +0100 by Igor Escobar) == + +Features: + +* adding the possibility to put recursive digits inside masks + +== v1.1.3 (Sep/04 2013 21:21 +0100 by Igor Escobar) == + +Bugfixes: + +* fixing late masking + +== v1.1.2 (Aug/26 2013 15:08 +0100 by Igor Escobar) == + +Bugfixes: + +* fixing mask on div,span etc + +== v1.1.1 (Aug/26 2013 14:42 +0100 by Igor Escobar) == + +Bugfixes: + +* better callback handling + +== v1.1.0 (Aug/24 2013 15:59 +0100 by Igor Escobar) == + +Features: + +* adding onchange support + +== v1.0.3 (Aug/23 2013 23:10 +0100 by Igor Escobar) == + +Changes: + +* optimizations to mask on non html fields + +== v1.0.2 (Aug/23 2013 22:46 +0100 by Igor Escobar) == + +Bugfixes: + +* adding remask method do improve callback performance + +== v1.0.1 (Aug/23 2013 22:01 +0100 by Igor Escobar) == + +Changes: + +* normal releases again + +== v1.0.0 (Aug/23 2013 21:59 +0100 by Igor Escobar) == + +Features: + +* huge refactoring focusing no reduce source code weight and bugfixing + +== v0.11.5 (Aug/20 2013 17:11 +0100 by Igor Escobar) == + +Bugfixes: + +* bug fixing when mask range is bigger than 2 digits. + +== v0.11.4 (Aug/19 2013 10:24 +0100 by Igor Escobar) == + +Changes: + +* adding de delete key to byPassKeys + +== v0.11.3 (Aug/18 2013 00:48 +0100 by Igor Escobar) == + +Bugfixes: + +* fixing zepto compatibily + +== v0.11.2 (Aug/17 2013 18:39 +0100 by Igor Escobar) == + +Bugfixes: + +* jmask iterate all items + +== v0.11.1 (Aug/17 2013 18:32 +0100 by Igor Escobar) == + +Changes: + +* a little bit smaller source code + +== v0.11.0 (Aug/16 2013 21:27 +0100 by Igor Escobar) == + +Bugfixes: + +* Altered "ignored keys" hook to run events (i.e. onKeyPress) afterwards. Otherwise, we miss key triggered events when the user deletes the entire text box, etc. + +Features: + +* adding support to method getCleanVal + +== v0.10.1 (Jul/26 2013 09:35 +0100 by ) == + + + +== v0.10.0 (Jul/19 2013 23:07 +0100 by Igor Escobar) == + +Features: + +* adding data-mask support + +== v0.9.1 (Jul/19 2013 22:35 +0100 by Igor Escobar) == + +Changes: + +* jQuery-Mask-Plugin is now available at bower.io + +Bugfixes: + +* fixing addEventListener on IE7 + +== v0.9.0 (Apr/24 2013 07:44 +0100 by Igor Escobar) == + +Features: + +* Adding compatibility with Zepto.js + +== v0.8.0 (Apr/07 2013 18:39 +0100 by Igor Escobar) == + +Features: + +* applying masks anything != than input :) +* implementing the possibility of range chars ex: A{1,3} + +== v0.7.11 (Apr/05 2013 22:12 +0100 by Igor Escobar) == + +Changes: + +* now when you type a wrong char, the plugin will make your text fit inside of the mask instead of lose your data. + +== v0.7.10 (Apr/04 2013 22:14 +0100 by Igor Escobar) == + +Changes: + +* changing yui-compressor to clojure-compiler + +== v0.7.9 (Apr/04 2013 22:04 +0100 by Igor Escobar) == + +Changes: + +* refactoring and implementation of optional mask digits + +Bugfixes: + +* fixing maxlength and adding a smarter mask removal. issue #18 + +== v0.7.8 (Mar/30 2013 00:48 +0000 by Igor Escobar) == + +Changes: + +* a few changes to get the code smallest possible. +* removing unnecessary methods and making code smaller. + +== v0.7.7 (Mar/29 2013 12:38 +0000 by Igor Escobar) == + +Bugfixes: + +* fixing copy and paste problem related on issue #15 + +== v0.7.6 (Mar/29 2013 00:28 +0000 by Igor Escobar) == + +Bugfixes: + +* correcting mask formatationg problem related on issue #16 + +== v0.7.5 (Mar/03 2013 20:56 +0000 by Igor Escobar) == + +Changes: + +* generating .gz file on deploy + +== v0.7.4 (Mar/03 2013 20:38 +0000 by Igor Escobar) == + +Changes: + +* changing minifier jsmin to yui compressor. + +== v0.7.3 (Mar/02 2013 01:12 +0000 by Igor Escobar) == + +Bugfixes: + +* bug fixing when typed wrong data type on mixing masks. + +== v0.7.2 (Feb/24 2013 22:02 +0000 by Igor Escobar) == + +Bugfixes: + +* fuckin stupid comma. + +== v0.7.1 (Feb/24 2013 21:57 +0000 by Igor Escobar) == + +Changes: + +* testing the private method maskToRegex +* a little bit of changes to make the code more testable + +== v0.7.0 (Feb/12 2013 00:30 +0000 by Igor Escobar) == + +Features: + +* Now you can decide for jquery mask plugin how to interpret 0 to 9, A and S and even teach him how to reconize patterns. + +== v0.6.3 (Feb/11 2013 12:20 +0000 by Igor Escobar) == + +Bugfixes: + +* When the user paste a text and the last char is valid sanitize may fail + +== v0.6.2 (Feb/11 2013 00:02 +0000 by Igor Escobar) == + +Bugfixes: + +* allowing the user type the same character as the mask without erasing it. + +== v0.6.1 (Jan/20 2013 23:57 +0000 by Igor Escobar) == + +Changes: + +* changing the way ta deployment occurs to correct jquery plugins deployments. + +== v0.6.0 (Jan/18 2013 17:19 +0000 by Igor Escobar) == + +Changes: + +* Now pushing jQuery Mask Plugin to jQuery Plugins Repository + +== v0.5.4 (Jan/17 2013 23:06 +0000 by Igor Escobar) == + +Changes: + +* upgrading jquery plugins manifest file + +== v0.5.3 (Jan/17 2013 22:48 +0000 by Igor Escobar) == + +Bugfixes: + +* correctly generating jmask version inside of jquery mask source + +== v0.5.2 (Jan/17 2013 22:43 +0000 by Igor Escobar) == + +Changes: + +* Now pushing to jQuery Plugin Repository + +== v0.5.1 (Jan/07 2013 23:33 +0000 by Igor Escobar) == + +Changes: + +* improving the deploy process with the new stepup's upgrade. + +== v0.5.0 (Oct/27 2012 13:40 +0100 by Igor Escobar) == + +Bugfixes: + +* Bug fixes on OnSupport method with Firefox. + +Features: + +* the first parameter of the .mask() function, now accepts a string or a anonymous function + +== v0.4.7 (Aug/06 2012 22:56 +0100 by Igor Escobar) == + +Changes: + +* Nothing big, just class refactoring + +== v0.4.6 (Aug/06 2012 01:25 +0100 by Igor Escobar) == + +Changes: + +- better OOP design +- implementing the jquery data object on each mask field +- implementing the public method .remove to disable and remove the mask + +== v0.4.5 (Aug/04 2012 01:31 +0100 by Igor Escobar) == + +Changes: + +- improving support to complex jquery selectors +- performance improvement. +- callback handling improvement + +== v0.4.4 (Jun/03 2012 21:01 +0100 by Igor Escobar) == + +Bugfixes: + +* Bug fixes on Internet Explorer 8. + +== v0.4.3 (Mar/19 2012 21:52 +0000 by Igor Escobar) == + +Bugfixes: + +* Corrigindo bug para mascaras com + + +== v0.4.2 (Mar/18 2012 15:28 +0000 by Igor Escobar) == + +Bugfixes: + +* Mascara não pararecia no firefox + +== v0.4.1 (Mar/18 2012 15:01 +0000 by Igor Escobar) == + +Bugfixes: + +* Corrigindo tim das macaras. + +== v0.4.0 (Mar/18 2012 14:51 +0000 by Igor Escobar) == + +Features: + +* Implementado mascara reversa para moeda/cpf/rg/etc. +* Nova engine. + +== v0.3.0 (Mar/14 2012 10:14 +0000 by Igor Escobar) == + +Changes: + +* License and comments up to date. + +Features: + +* On-the-fly mask change. +* onComplete and onKeyPress new callbacks. + +== v0.2.5 (Mar/13 2012 22:55 +0000 by Igor Escobar) == + +Bugfixes: + +- Corrigindo ctrl+v com mascara errada. - Cortando dados que exceder a mascara no ctrl+v ou se segurar alguma tecla. - Refatorando algumas partes do código. + +== v0.2.4 (Mar/13 2012 11:06 +0000 by Igor Escobar) == + +Changes: + +* Codigo refatorado, otimizado, validação mais precisa e efetiva. + +== v0.2.3 (Mar/13 2012 01:01 +0000 by Igor Escobar) == + +Changes: + +* Melhorando expressoes regulares. + +== v0.2.2 (Mar/13 2012 00:50 +0000 by Igor Escobar) == + +Bugfixes: + +* Corrindo regex de validação + +== v0.2.1 (Mar/13 2012 00:41 +0000 by Igor Escobar) == + +Bugfixes: + +* Corrigida validação alphanumerica. + +== v0.2.0 (Mar/13 2012 00:24 +0000 by Igor Escobar) == + +Features: + +- Input Data Type Validation. +- Automatic MaxLength (When are not defined). +- Live Event Implemented for Ajax-based Apps. +- Mixed mask with validation. +* S for string digit +* A for alphanumeric digit +* 0 to 9 for numeric digit. + +== v0.1.1 (Mar/10 2012 14:05 +0000 by Igor Escobar) == + +Bugfixes: + +* Implementando Crossbrowser event handling. + +== v0.1.0 (Mar/10 2012 13:10 +0000 by Igor Escobar) == + +Features: + +* Implementando mascaras com espaço para data e hora + +== v0.0.1 (Mar/10 2012 04:42 +0000 by Igor Escobar) == + +Changes: + +* Refatorando o codigo para suportar multiplas instancias From 2335b402b0c3fdd698e6a48780e2762394737054 Mon Sep 17 00:00:00 2001 From: Ankur Kumar Date: Wed, 4 Jul 2018 15:25:28 +0530 Subject: [PATCH 27/42] Add vue js component link https://github.com/ankurk91/vue-jquery-mask --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6132d582..144513cb 100644 --- a/README.md +++ b/README.md @@ -97,6 +97,7 @@ For configuration options and troubleshooting refer to these repositories: Before opening a new [issue](https://github.com/igorescobar/jQuery-Mask-Plugin/issues) take a look on those frequently asked questions: #### [How to integrate with React.js?](https://github.com/igorescobar/jQuery-Mask-Plugin/issues/498) #### [How to integrate with Angular.js?](https://github.com/igorescobar/jQuery-Mask-Plugin/issues/499) +#### [How to integrate with Vue.js?](https://github.com/ankurk91/vue-jquery-mask) #### [Problems with old versions of Android keyboard](https://github.com/igorescobar/jQuery-Mask-Plugin/issues/135) #### [Negative numbers, or currency related problems](https://github.com/igorescobar/jQuery-Mask-Plugin/issues/436#issuecomment-253176511) #### [Prefix or sufix on the Mask](https://github.com/igorescobar/jQuery-Mask-Plugin/issues/166) From 2db4ea4901d2a8ef551ce3406b59bb08779cfc28 Mon Sep 17 00:00:00 2001 From: csmith93 Date: Wed, 15 May 2019 09:08:10 -0400 Subject: [PATCH 28/42] Fixed oldVal being updated prior to caret position calculation Fixed an issue that's occurring in at least Chrome 74. Symptoms were the same as igorescobar/jQuery-Mask-Plugin#602. --- src/jquery.mask.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/jquery.mask.js b/src/jquery.mask.js index 019f2ec2..6836d6ed 100755 --- a/src/jquery.mask.js +++ b/src/jquery.mask.js @@ -187,9 +187,8 @@ return r; }, - calculateCaretPosition: function() { - var oldVal = el.data('mask-previus-value') || '', - newVal = p.getMasked(), + calculateCaretPosition: function(oldVal='') { + var newVal = p.getMasked(), caretPosNew = p.getCaret(); if (oldVal !== newVal) { var caretPosOld = el.data('mask-previus-caret-pos') || 0, @@ -255,12 +254,13 @@ if ($.inArray(keyCode, jMask.byPassKeys) === -1) { var newVal = p.getMasked(), - caretPos = p.getCaret(); + caretPos = p.getCaret(), + oldVal = el.data('mask-previus-value'); // this is a compensation to devices/browsers that don't compensate // caret positioning the right way setTimeout(function() { - p.setCaret(p.calculateCaretPosition()); + p.setCaret(p.calculateCaretPosition(oldVal)); }, $.jMaskGlobals.keyStrokeCompensation); p.val(newVal); From 6da9d0ac089f76858953b46892af64e5e809e4a5 Mon Sep 17 00:00:00 2001 From: csmith93 Date: Wed, 15 May 2019 09:11:00 -0400 Subject: [PATCH 29/42] set oldVal to empty string if data is null --- src/jquery.mask.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/jquery.mask.js b/src/jquery.mask.js index 6836d6ed..0ccdc1ea 100755 --- a/src/jquery.mask.js +++ b/src/jquery.mask.js @@ -255,7 +255,7 @@ if ($.inArray(keyCode, jMask.byPassKeys) === -1) { var newVal = p.getMasked(), caretPos = p.getCaret(), - oldVal = el.data('mask-previus-value'); + oldVal = el.data('mask-previus-value') || ''; // this is a compensation to devices/browsers that don't compensate // caret positioning the right way From 19a8b29cfa22dd55ac0be5b21023bffc30334786 Mon Sep 17 00:00:00 2001 From: csmith93 Date: Wed, 15 May 2019 09:42:01 -0400 Subject: [PATCH 30/42] delete default value was unneeded and failing tests --- src/jquery.mask.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/jquery.mask.js b/src/jquery.mask.js index 0ccdc1ea..2eaf9257 100755 --- a/src/jquery.mask.js +++ b/src/jquery.mask.js @@ -187,7 +187,7 @@ return r; }, - calculateCaretPosition: function(oldVal='') { + calculateCaretPosition: function(oldVal) { var newVal = p.getMasked(), caretPosNew = p.getCaret(); if (oldVal !== newVal) { From 68839f2c141ae1d383ee80cfe23859ec3e56c02d Mon Sep 17 00:00:00 2001 From: Juan Pablo Kutianski Date: Tue, 18 Jun 2019 11:19:22 -0300 Subject: [PATCH 31/42] Change `api.addFiles()` to load files only on the client side Solve https://github.com/igorescobar/jQuery-Mask-Plugin/issues/528 ``` ReferenceError: window is not defined ``` --- package.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.js b/package.js index 2962920a..f204652b 100644 --- a/package.js +++ b/package.js @@ -9,6 +9,6 @@ Package.describe({ Package.onUse(function(api) { api.versionsFrom('1.2.1'); api.use('ecmascript'); - api.addFiles('dist/jquery.mask.js'); - api.addFiles('dist/jquery.mask.min.js'); + api.addFiles('dist/jquery.mask.js', 'client'); + api.addFiles('dist/jquery.mask.min.js', 'client'); }); From c5f280de2b41689da6d2995cac7b01649e528203 Mon Sep 17 00:00:00 2001 From: Juan Pablo Kutianski Date: Tue, 18 Jun 2019 12:37:43 -0300 Subject: [PATCH 32/42] Solve loading JQuery as module on Meteor --- dist/jquery.mask.js | 2 +- dist/jquery.mask.min.js | 20 +------------------- src/jquery.mask.js | 2 +- 3 files changed, 3 insertions(+), 21 deletions(-) diff --git a/dist/jquery.mask.js b/dist/jquery.mask.js index 019f2ec2..df8f13ba 100755 --- a/dist/jquery.mask.js +++ b/dist/jquery.mask.js @@ -41,7 +41,7 @@ if (typeof define === 'function' && define.amd) { define(['jquery'], factory); - } else if (typeof exports === 'object') { + } else if (typeof exports === 'object' && typeof Meteor === 'undefined') { module.exports = factory(require('jquery')); } else { factory(jQuery || Zepto); diff --git a/dist/jquery.mask.min.js b/dist/jquery.mask.min.js index ce86d08b..6c8a3044 100644 --- a/dist/jquery.mask.min.js +++ b/dist/jquery.mask.min.js @@ -1,19 +1 @@ -// jQuery Mask Plugin v1.14.15 -// github.com/igorescobar/jQuery-Mask-Plugin -var $jscomp={scope:{},findInternal:function(a,l,d){a instanceof String&&(a=String(a));for(var p=a.length,h=0;hd?g=10*e:f>=g&&f!==d?c.maskDigitPosMapOld[g]||(f=g,g=g-(l-h)-a,c.maskDigitPosMap[g]&&(g=f)):g>f&& -(g=g+(h-l)+m)}return g},behaviour:function(f){f=f||window.event;c.invalid=[];var e=b.data("mask-keycode");if(-1===a.inArray(e,m.byPassKeys)){var e=c.getMasked(),g=c.getCaret();setTimeout(function(){c.setCaret(c.calculateCaretPosition())},a.jMaskGlobals.keyStrokeCompensation);c.val(e);c.setCaret(g);return c.callbacks(f)}},getMasked:function(a,b){var g=[],d=void 0===b?c.val():b+"",n=0,h=e.length,q=0,l=d.length,k=1,r="push",p=-1,t=0,y=[],v,z;f.reverse?(r="unshift",k=-1,v=0,n=h-1,q=l-1,z=function(){return-1< -n&&-1 Date: Tue, 18 Jun 2019 13:58:56 -0300 Subject: [PATCH 33/42] Delete jquery.mask.min.js Autogenerated --- dist/jquery.mask.min.js | 1 - 1 file changed, 1 deletion(-) delete mode 100644 dist/jquery.mask.min.js diff --git a/dist/jquery.mask.min.js b/dist/jquery.mask.min.js deleted file mode 100644 index 6c8a3044..00000000 --- a/dist/jquery.mask.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(t,a,e){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof exports&&"undefined"==typeof Meteor?module.exports=t(require("jquery")):t(a||e)}(function(i){"use strict";function l(f,b,w){var C={invalid:[],getCaret:function(){try{var t,a=0,e=f.get(0),n=document.selection,s=e.selectionStart;return n&&-1===navigator.appVersion.indexOf("MSIE 10")?((t=n.createRange()).moveStart("character",-C.val().length),a=t.text.length):!s&&"0"!==s||(a=s),a}catch(t){}},setCaret:function(t){try{if(f.is(":focus")){var a,e=f.get(0);e.setSelectionRange?e.setSelectionRange(t,t):((a=e.createTextRange()).collapse(!0),a.moveEnd("character",t),a.moveStart("character",t),a.select())}}catch(t){}},events:function(){f.on("keydown.mask",function(t){f.data("mask-keycode",t.keyCode||t.which),f.data("mask-previus-value",f.val()),f.data("mask-previus-caret-pos",C.getCaret()),C.maskDigitPosMapOld=C.maskDigitPosMap}).on(i.jMaskGlobals.useInput?"input.mask":"keyup.mask",C.behaviour).on("paste.mask drop.mask",function(){setTimeout(function(){f.keydown().keyup()},100)}).on("change.mask",function(){f.data("changed",!0)}).on("blur.mask",function(){o===C.val()||f.data("changed")||f.trigger("change"),f.data("changed",!1)}).on("blur.mask",function(){o=C.val()}).on("focus.mask",function(t){!0===w.selectOnFocus&&i(t.target).select()}).on("focusout.mask",function(){w.clearIfNotMatch&&!r.test(C.val())&&C.val("")})},getRegexMask:function(){for(var t,a,e,n,s,r,o=[],i=0;i Date: Tue, 18 Jun 2019 13:59:31 -0300 Subject: [PATCH 34/42] Delete jquery.mask.js Autogenerated --- dist/jquery.mask.js | 604 -------------------------------------------- 1 file changed, 604 deletions(-) delete mode 100755 dist/jquery.mask.js diff --git a/dist/jquery.mask.js b/dist/jquery.mask.js deleted file mode 100755 index df8f13ba..00000000 --- a/dist/jquery.mask.js +++ /dev/null @@ -1,604 +0,0 @@ -/** - * jquery.mask.js - * @version: v1.14.15 - * @author: Igor Escobar - * - * Created by Igor Escobar on 2012-03-10. Please report any bug at github.com/igorescobar/jQuery-Mask-Plugin - * - * Copyright (c) 2012 Igor Escobar http://igorescobar.com - * - * The MIT License (http://www.opensource.org/licenses/mit-license.php) - * - * Permission is hereby granted, free of charge, to any person - * obtaining a copy of this software and associated documentation - * files (the "Software"), to deal in the Software without - * restriction, including without limitation the rights to use, - * copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following - * conditions: - * - * The above copyright notice and this permission notice shall be - * included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES - * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - */ - -/* jshint laxbreak: true */ -/* jshint maxcomplexity:17 */ -/* global define */ - -// UMD (Universal Module Definition) patterns for JavaScript modules that work everywhere. -// https://github.com/umdjs/umd/blob/master/templates/jqueryPlugin.js -(function (factory, jQuery, Zepto) { - - if (typeof define === 'function' && define.amd) { - define(['jquery'], factory); - } else if (typeof exports === 'object' && typeof Meteor === 'undefined') { - module.exports = factory(require('jquery')); - } else { - factory(jQuery || Zepto); - } - -}(function ($) { - 'use strict'; - - var Mask = function (el, mask, options) { - - var p = { - invalid: [], - getCaret: function () { - try { - var sel, - pos = 0, - ctrl = el.get(0), - dSel = document.selection, - cSelStart = ctrl.selectionStart; - - // IE Support - if (dSel && navigator.appVersion.indexOf('MSIE 10') === -1) { - sel = dSel.createRange(); - sel.moveStart('character', -p.val().length); - pos = sel.text.length; - } - // Firefox support - else if (cSelStart || cSelStart === '0') { - pos = cSelStart; - } - - return pos; - } catch (e) {} - }, - setCaret: function(pos) { - try { - if (el.is(':focus')) { - var range, ctrl = el.get(0); - - // Firefox, WebKit, etc.. - if (ctrl.setSelectionRange) { - ctrl.setSelectionRange(pos, pos); - } else { // IE - range = ctrl.createTextRange(); - range.collapse(true); - range.moveEnd('character', pos); - range.moveStart('character', pos); - range.select(); - } - } - } catch (e) {} - }, - events: function() { - el - .on('keydown.mask', function(e) { - el.data('mask-keycode', e.keyCode || e.which); - el.data('mask-previus-value', el.val()); - el.data('mask-previus-caret-pos', p.getCaret()); - p.maskDigitPosMapOld = p.maskDigitPosMap; - }) - .on($.jMaskGlobals.useInput ? 'input.mask' : 'keyup.mask', p.behaviour) - .on('paste.mask drop.mask', function() { - setTimeout(function() { - el.keydown().keyup(); - }, 100); - }) - .on('change.mask', function(){ - el.data('changed', true); - }) - .on('blur.mask', function(){ - if (oldValue !== p.val() && !el.data('changed')) { - el.trigger('change'); - } - el.data('changed', false); - }) - // it's very important that this callback remains in this position - // otherwhise oldValue it's going to work buggy - .on('blur.mask', function() { - oldValue = p.val(); - }) - // select all text on focus - .on('focus.mask', function (e) { - if (options.selectOnFocus === true) { - $(e.target).select(); - } - }) - // clear the value if it not complete the mask - .on('focusout.mask', function() { - if (options.clearIfNotMatch && !regexMask.test(p.val())) { - p.val(''); - } - }); - }, - getRegexMask: function() { - var maskChunks = [], translation, pattern, optional, recursive, oRecursive, r; - - for (var i = 0; i < mask.length; i++) { - translation = jMask.translation[mask.charAt(i)]; - - if (translation) { - - pattern = translation.pattern.toString().replace(/.{1}$|^.{1}/g, ''); - optional = translation.optional; - recursive = translation.recursive; - - if (recursive) { - maskChunks.push(mask.charAt(i)); - oRecursive = {digit: mask.charAt(i), pattern: pattern}; - } else { - maskChunks.push(!optional && !recursive ? pattern : (pattern + '?')); - } - - } else { - maskChunks.push(mask.charAt(i).replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&')); - } - } - - r = maskChunks.join(''); - - if (oRecursive) { - r = r.replace(new RegExp('(' + oRecursive.digit + '(.*' + oRecursive.digit + ')?)'), '($1)?') - .replace(new RegExp(oRecursive.digit, 'g'), oRecursive.pattern); - } - - return new RegExp(r); - }, - destroyEvents: function() { - el.off(['input', 'keydown', 'keyup', 'paste', 'drop', 'blur', 'focusout', ''].join('.mask ')); - }, - val: function(v) { - var isInput = el.is('input'), - method = isInput ? 'val' : 'text', - r; - - if (arguments.length > 0) { - if (el[method]() !== v) { - el[method](v); - } - r = el; - } else { - r = el[method](); - } - - return r; - }, - calculateCaretPosition: function() { - var oldVal = el.data('mask-previus-value') || '', - newVal = p.getMasked(), - caretPosNew = p.getCaret(); - if (oldVal !== newVal) { - var caretPosOld = el.data('mask-previus-caret-pos') || 0, - newValL = newVal.length, - oldValL = oldVal.length, - maskDigitsBeforeCaret = 0, - maskDigitsAfterCaret = 0, - maskDigitsBeforeCaretAll = 0, - maskDigitsBeforeCaretAllOld = 0, - i = 0; - - for (i = caretPosNew; i < newValL; i++) { - if (!p.maskDigitPosMap[i]) { - break; - } - maskDigitsAfterCaret++; - } - - for (i = caretPosNew - 1; i >= 0; i--) { - if (!p.maskDigitPosMap[i]) { - break; - } - maskDigitsBeforeCaret++; - } - - for (i = caretPosNew - 1; i >= 0; i--) { - if (p.maskDigitPosMap[i]) { - maskDigitsBeforeCaretAll++; - } - } - - for (i = caretPosOld - 1; i >= 0; i--) { - if (p.maskDigitPosMapOld[i]) { - maskDigitsBeforeCaretAllOld++; - } - } - - // if the cursor is at the end keep it there - if (caretPosNew > oldValL) { - caretPosNew = newValL * 10; - } else if (caretPosOld >= caretPosNew && caretPosOld !== oldValL) { - if (!p.maskDigitPosMapOld[caretPosNew]) { - var caretPos = caretPosNew; - caretPosNew -= maskDigitsBeforeCaretAllOld - maskDigitsBeforeCaretAll; - caretPosNew -= maskDigitsBeforeCaret; - if (p.maskDigitPosMap[caretPosNew]) { - caretPosNew = caretPos; - } - } - } - else if (caretPosNew > caretPosOld) { - caretPosNew += maskDigitsBeforeCaretAll - maskDigitsBeforeCaretAllOld; - caretPosNew += maskDigitsAfterCaret; - } - } - return caretPosNew; - }, - behaviour: function(e) { - e = e || window.event; - p.invalid = []; - - var keyCode = el.data('mask-keycode'); - - if ($.inArray(keyCode, jMask.byPassKeys) === -1) { - var newVal = p.getMasked(), - caretPos = p.getCaret(); - - // this is a compensation to devices/browsers that don't compensate - // caret positioning the right way - setTimeout(function() { - p.setCaret(p.calculateCaretPosition()); - }, $.jMaskGlobals.keyStrokeCompensation); - - p.val(newVal); - p.setCaret(caretPos); - return p.callbacks(e); - } - }, - getMasked: function(skipMaskChars, val) { - var buf = [], - value = val === undefined ? p.val() : val + '', - m = 0, maskLen = mask.length, - v = 0, valLen = value.length, - offset = 1, addMethod = 'push', - resetPos = -1, - maskDigitCount = 0, - maskDigitPosArr = [], - lastMaskChar, - check; - - if (options.reverse) { - addMethod = 'unshift'; - offset = -1; - lastMaskChar = 0; - m = maskLen - 1; - v = valLen - 1; - check = function () { - return m > -1 && v > -1; - }; - } else { - lastMaskChar = maskLen - 1; - check = function () { - return m < maskLen && v < valLen; - }; - } - - var lastUntranslatedMaskChar; - while (check()) { - var maskDigit = mask.charAt(m), - valDigit = value.charAt(v), - translation = jMask.translation[maskDigit]; - - if (translation) { - if (valDigit.match(translation.pattern)) { - buf[addMethod](valDigit); - if (translation.recursive) { - if (resetPos === -1) { - resetPos = m; - } else if (m === lastMaskChar && m !== resetPos) { - m = resetPos - offset; - } - - if (lastMaskChar === resetPos) { - m -= offset; - } - } - m += offset; - } else if (valDigit === lastUntranslatedMaskChar) { - // matched the last untranslated (raw) mask character that we encountered - // likely an insert offset the mask character from the last entry; fall - // through and only increment v - maskDigitCount--; - lastUntranslatedMaskChar = undefined; - } else if (translation.optional) { - m += offset; - v -= offset; - } else if (translation.fallback) { - buf[addMethod](translation.fallback); - m += offset; - v -= offset; - } else { - p.invalid.push({p: v, v: valDigit, e: translation.pattern}); - } - v += offset; - } else { - if (!skipMaskChars) { - buf[addMethod](maskDigit); - } - - if (valDigit === maskDigit) { - maskDigitPosArr.push(v); - v += offset; - } else { - lastUntranslatedMaskChar = maskDigit; - maskDigitPosArr.push(v + maskDigitCount); - maskDigitCount++; - } - - m += offset; - } - } - - var lastMaskCharDigit = mask.charAt(lastMaskChar); - if (maskLen === valLen + 1 && !jMask.translation[lastMaskCharDigit]) { - buf.push(lastMaskCharDigit); - } - - var newVal = buf.join(''); - p.mapMaskdigitPositions(newVal, maskDigitPosArr, valLen); - return newVal; - }, - mapMaskdigitPositions: function(newVal, maskDigitPosArr, valLen) { - var maskDiff = options.reverse ? newVal.length - valLen : 0; - p.maskDigitPosMap = {}; - for (var i = 0; i < maskDigitPosArr.length; i++) { - p.maskDigitPosMap[maskDigitPosArr[i] + maskDiff] = 1; - } - }, - callbacks: function (e) { - var val = p.val(), - changed = val !== oldValue, - defaultArgs = [val, e, el, options], - callback = function(name, criteria, args) { - if (typeof options[name] === 'function' && criteria) { - options[name].apply(this, args); - } - }; - - callback('onChange', changed === true, defaultArgs); - callback('onKeyPress', changed === true, defaultArgs); - callback('onComplete', val.length === mask.length, defaultArgs); - callback('onInvalid', p.invalid.length > 0, [val, e, el, p.invalid, options]); - } - }; - - el = $(el); - var jMask = this, oldValue = p.val(), regexMask; - - mask = typeof mask === 'function' ? mask(p.val(), undefined, el, options) : mask; - - // public methods - jMask.mask = mask; - jMask.options = options; - jMask.remove = function() { - var caret = p.getCaret(); - if (jMask.options.placeholder) { - el.removeAttr('placeholder'); - } - if (el.data('mask-maxlength')) { - el.removeAttr('maxlength'); - } - p.destroyEvents(); - p.val(jMask.getCleanVal()); - p.setCaret(caret); - return el; - }; - - // get value without mask - jMask.getCleanVal = function() { - return p.getMasked(true); - }; - - // get masked value without the value being in the input or element - jMask.getMaskedVal = function(val) { - return p.getMasked(false, val); - }; - - jMask.init = function(onlyMask) { - onlyMask = onlyMask || false; - options = options || {}; - - jMask.clearIfNotMatch = $.jMaskGlobals.clearIfNotMatch; - jMask.byPassKeys = $.jMaskGlobals.byPassKeys; - jMask.translation = $.extend({}, $.jMaskGlobals.translation, options.translation); - - jMask = $.extend(true, {}, jMask, options); - - regexMask = p.getRegexMask(); - - if (onlyMask) { - p.events(); - p.val(p.getMasked()); - } else { - if (options.placeholder) { - el.attr('placeholder' , options.placeholder); - } - - // this is necessary, otherwise if the user submit the form - // and then press the "back" button, the autocomplete will erase - // the data. Works fine on IE9+, FF, Opera, Safari. - if (el.data('mask')) { - el.attr('autocomplete', 'off'); - } - - // detect if is necessary let the user type freely. - // for is a lot faster than forEach. - for (var i = 0, maxlength = true; i < mask.length; i++) { - var translation = jMask.translation[mask.charAt(i)]; - if (translation && translation.recursive) { - maxlength = false; - break; - } - } - - if (maxlength) { - el.attr('maxlength', mask.length).data('mask-maxlength', true); - } - - p.destroyEvents(); - p.events(); - - var caret = p.getCaret(); - p.val(p.getMasked()); - p.setCaret(caret); - } - }; - - jMask.init(!el.is('input')); - }; - - $.maskWatchers = {}; - var HTMLAttributes = function () { - var input = $(this), - options = {}, - prefix = 'data-mask-', - mask = input.attr('data-mask'); - - if (input.attr(prefix + 'reverse')) { - options.reverse = true; - } - - if (input.attr(prefix + 'clearifnotmatch')) { - options.clearIfNotMatch = true; - } - - if (input.attr(prefix + 'selectonfocus') === 'true') { - options.selectOnFocus = true; - } - - if (notSameMaskObject(input, mask, options)) { - return input.data('mask', new Mask(this, mask, options)); - } - }, - notSameMaskObject = function(field, mask, options) { - options = options || {}; - var maskObject = $(field).data('mask'), - stringify = JSON.stringify, - value = $(field).val() || $(field).text(); - try { - if (typeof mask === 'function') { - mask = mask(value); - } - return typeof maskObject !== 'object' || stringify(maskObject.options) !== stringify(options) || maskObject.mask !== mask; - } catch (e) {} - }, - eventSupported = function(eventName) { - var el = document.createElement('div'), isSupported; - - eventName = 'on' + eventName; - isSupported = (eventName in el); - - if ( !isSupported ) { - el.setAttribute(eventName, 'return;'); - isSupported = typeof el[eventName] === 'function'; - } - el = null; - - return isSupported; - }; - - $.fn.mask = function(mask, options) { - options = options || {}; - var selector = this.selector, - globals = $.jMaskGlobals, - interval = globals.watchInterval, - watchInputs = options.watchInputs || globals.watchInputs, - maskFunction = function() { - if (notSameMaskObject(this, mask, options)) { - return $(this).data('mask', new Mask(this, mask, options)); - } - }; - - $(this).each(maskFunction); - - if (selector && selector !== '' && watchInputs) { - clearInterval($.maskWatchers[selector]); - $.maskWatchers[selector] = setInterval(function(){ - $(document).find(selector).each(maskFunction); - }, interval); - } - return this; - }; - - $.fn.masked = function(val) { - return this.data('mask').getMaskedVal(val); - }; - - $.fn.unmask = function() { - clearInterval($.maskWatchers[this.selector]); - delete $.maskWatchers[this.selector]; - return this.each(function() { - var dataMask = $(this).data('mask'); - if (dataMask) { - dataMask.remove().removeData('mask'); - } - }); - }; - - $.fn.cleanVal = function() { - return this.data('mask').getCleanVal(); - }; - - $.applyDataMask = function(selector) { - selector = selector || $.jMaskGlobals.maskElements; - var $selector = (selector instanceof $) ? selector : $(selector); - $selector.filter($.jMaskGlobals.dataMaskAttr).each(HTMLAttributes); - }; - - var globals = { - maskElements: 'input,td,span,div', - dataMaskAttr: '*[data-mask]', - dataMask: true, - watchInterval: 300, - watchInputs: true, - keyStrokeCompensation: 10, - // old versions of chrome dont work great with input event - useInput: !/Chrome\/[2-4][0-9]|SamsungBrowser/.test(window.navigator.userAgent) && eventSupported('input'), - watchDataMask: false, - byPassKeys: [9, 16, 17, 18, 36, 37, 38, 39, 40, 91], - translation: { - '0': {pattern: /\d/}, - '9': {pattern: /\d/, optional: true}, - '#': {pattern: /\d/, recursive: true}, - 'A': {pattern: /[a-zA-Z0-9]/}, - 'S': {pattern: /[a-zA-Z]/} - } - }; - - $.jMaskGlobals = $.jMaskGlobals || {}; - globals = $.jMaskGlobals = $.extend(true, {}, globals, $.jMaskGlobals); - - // looking for inputs with data-mask attribute - if (globals.dataMask) { - $.applyDataMask(); - } - - setInterval(function() { - if ($.jMaskGlobals.watchDataMask) { - $.applyDataMask(); - } - }, globals.watchInterval); -}, window.jQuery, window.Zepto)); From f234a88040eb69fe524da61c5a897b62a7e52678 Mon Sep 17 00:00:00 2001 From: Juan Pablo Kutianski Date: Tue, 18 Jun 2019 14:06:17 -0300 Subject: [PATCH 35/42] Revert "Merge pull request #1 from jkutianski/issue-528" This reverts commit f1820859a1fc34fede6d6e697ce1ccc711c99007, reversing changes made to 9244e3f15894b1fdca0be3fa96d14bf407380e0f. # Conflicts: # dist/jquery.mask.js # dist/jquery.mask.min.js --- dist/jquery.mask.js | 604 ++++++++++++++++++++++++++++++++++++++++ dist/jquery.mask.min.js | 19 ++ src/jquery.mask.js | 2 +- 3 files changed, 624 insertions(+), 1 deletion(-) create mode 100755 dist/jquery.mask.js create mode 100644 dist/jquery.mask.min.js diff --git a/dist/jquery.mask.js b/dist/jquery.mask.js new file mode 100755 index 00000000..019f2ec2 --- /dev/null +++ b/dist/jquery.mask.js @@ -0,0 +1,604 @@ +/** + * jquery.mask.js + * @version: v1.14.15 + * @author: Igor Escobar + * + * Created by Igor Escobar on 2012-03-10. Please report any bug at github.com/igorescobar/jQuery-Mask-Plugin + * + * Copyright (c) 2012 Igor Escobar http://igorescobar.com + * + * The MIT License (http://www.opensource.org/licenses/mit-license.php) + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +/* jshint laxbreak: true */ +/* jshint maxcomplexity:17 */ +/* global define */ + +// UMD (Universal Module Definition) patterns for JavaScript modules that work everywhere. +// https://github.com/umdjs/umd/blob/master/templates/jqueryPlugin.js +(function (factory, jQuery, Zepto) { + + if (typeof define === 'function' && define.amd) { + define(['jquery'], factory); + } else if (typeof exports === 'object') { + module.exports = factory(require('jquery')); + } else { + factory(jQuery || Zepto); + } + +}(function ($) { + 'use strict'; + + var Mask = function (el, mask, options) { + + var p = { + invalid: [], + getCaret: function () { + try { + var sel, + pos = 0, + ctrl = el.get(0), + dSel = document.selection, + cSelStart = ctrl.selectionStart; + + // IE Support + if (dSel && navigator.appVersion.indexOf('MSIE 10') === -1) { + sel = dSel.createRange(); + sel.moveStart('character', -p.val().length); + pos = sel.text.length; + } + // Firefox support + else if (cSelStart || cSelStart === '0') { + pos = cSelStart; + } + + return pos; + } catch (e) {} + }, + setCaret: function(pos) { + try { + if (el.is(':focus')) { + var range, ctrl = el.get(0); + + // Firefox, WebKit, etc.. + if (ctrl.setSelectionRange) { + ctrl.setSelectionRange(pos, pos); + } else { // IE + range = ctrl.createTextRange(); + range.collapse(true); + range.moveEnd('character', pos); + range.moveStart('character', pos); + range.select(); + } + } + } catch (e) {} + }, + events: function() { + el + .on('keydown.mask', function(e) { + el.data('mask-keycode', e.keyCode || e.which); + el.data('mask-previus-value', el.val()); + el.data('mask-previus-caret-pos', p.getCaret()); + p.maskDigitPosMapOld = p.maskDigitPosMap; + }) + .on($.jMaskGlobals.useInput ? 'input.mask' : 'keyup.mask', p.behaviour) + .on('paste.mask drop.mask', function() { + setTimeout(function() { + el.keydown().keyup(); + }, 100); + }) + .on('change.mask', function(){ + el.data('changed', true); + }) + .on('blur.mask', function(){ + if (oldValue !== p.val() && !el.data('changed')) { + el.trigger('change'); + } + el.data('changed', false); + }) + // it's very important that this callback remains in this position + // otherwhise oldValue it's going to work buggy + .on('blur.mask', function() { + oldValue = p.val(); + }) + // select all text on focus + .on('focus.mask', function (e) { + if (options.selectOnFocus === true) { + $(e.target).select(); + } + }) + // clear the value if it not complete the mask + .on('focusout.mask', function() { + if (options.clearIfNotMatch && !regexMask.test(p.val())) { + p.val(''); + } + }); + }, + getRegexMask: function() { + var maskChunks = [], translation, pattern, optional, recursive, oRecursive, r; + + for (var i = 0; i < mask.length; i++) { + translation = jMask.translation[mask.charAt(i)]; + + if (translation) { + + pattern = translation.pattern.toString().replace(/.{1}$|^.{1}/g, ''); + optional = translation.optional; + recursive = translation.recursive; + + if (recursive) { + maskChunks.push(mask.charAt(i)); + oRecursive = {digit: mask.charAt(i), pattern: pattern}; + } else { + maskChunks.push(!optional && !recursive ? pattern : (pattern + '?')); + } + + } else { + maskChunks.push(mask.charAt(i).replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&')); + } + } + + r = maskChunks.join(''); + + if (oRecursive) { + r = r.replace(new RegExp('(' + oRecursive.digit + '(.*' + oRecursive.digit + ')?)'), '($1)?') + .replace(new RegExp(oRecursive.digit, 'g'), oRecursive.pattern); + } + + return new RegExp(r); + }, + destroyEvents: function() { + el.off(['input', 'keydown', 'keyup', 'paste', 'drop', 'blur', 'focusout', ''].join('.mask ')); + }, + val: function(v) { + var isInput = el.is('input'), + method = isInput ? 'val' : 'text', + r; + + if (arguments.length > 0) { + if (el[method]() !== v) { + el[method](v); + } + r = el; + } else { + r = el[method](); + } + + return r; + }, + calculateCaretPosition: function() { + var oldVal = el.data('mask-previus-value') || '', + newVal = p.getMasked(), + caretPosNew = p.getCaret(); + if (oldVal !== newVal) { + var caretPosOld = el.data('mask-previus-caret-pos') || 0, + newValL = newVal.length, + oldValL = oldVal.length, + maskDigitsBeforeCaret = 0, + maskDigitsAfterCaret = 0, + maskDigitsBeforeCaretAll = 0, + maskDigitsBeforeCaretAllOld = 0, + i = 0; + + for (i = caretPosNew; i < newValL; i++) { + if (!p.maskDigitPosMap[i]) { + break; + } + maskDigitsAfterCaret++; + } + + for (i = caretPosNew - 1; i >= 0; i--) { + if (!p.maskDigitPosMap[i]) { + break; + } + maskDigitsBeforeCaret++; + } + + for (i = caretPosNew - 1; i >= 0; i--) { + if (p.maskDigitPosMap[i]) { + maskDigitsBeforeCaretAll++; + } + } + + for (i = caretPosOld - 1; i >= 0; i--) { + if (p.maskDigitPosMapOld[i]) { + maskDigitsBeforeCaretAllOld++; + } + } + + // if the cursor is at the end keep it there + if (caretPosNew > oldValL) { + caretPosNew = newValL * 10; + } else if (caretPosOld >= caretPosNew && caretPosOld !== oldValL) { + if (!p.maskDigitPosMapOld[caretPosNew]) { + var caretPos = caretPosNew; + caretPosNew -= maskDigitsBeforeCaretAllOld - maskDigitsBeforeCaretAll; + caretPosNew -= maskDigitsBeforeCaret; + if (p.maskDigitPosMap[caretPosNew]) { + caretPosNew = caretPos; + } + } + } + else if (caretPosNew > caretPosOld) { + caretPosNew += maskDigitsBeforeCaretAll - maskDigitsBeforeCaretAllOld; + caretPosNew += maskDigitsAfterCaret; + } + } + return caretPosNew; + }, + behaviour: function(e) { + e = e || window.event; + p.invalid = []; + + var keyCode = el.data('mask-keycode'); + + if ($.inArray(keyCode, jMask.byPassKeys) === -1) { + var newVal = p.getMasked(), + caretPos = p.getCaret(); + + // this is a compensation to devices/browsers that don't compensate + // caret positioning the right way + setTimeout(function() { + p.setCaret(p.calculateCaretPosition()); + }, $.jMaskGlobals.keyStrokeCompensation); + + p.val(newVal); + p.setCaret(caretPos); + return p.callbacks(e); + } + }, + getMasked: function(skipMaskChars, val) { + var buf = [], + value = val === undefined ? p.val() : val + '', + m = 0, maskLen = mask.length, + v = 0, valLen = value.length, + offset = 1, addMethod = 'push', + resetPos = -1, + maskDigitCount = 0, + maskDigitPosArr = [], + lastMaskChar, + check; + + if (options.reverse) { + addMethod = 'unshift'; + offset = -1; + lastMaskChar = 0; + m = maskLen - 1; + v = valLen - 1; + check = function () { + return m > -1 && v > -1; + }; + } else { + lastMaskChar = maskLen - 1; + check = function () { + return m < maskLen && v < valLen; + }; + } + + var lastUntranslatedMaskChar; + while (check()) { + var maskDigit = mask.charAt(m), + valDigit = value.charAt(v), + translation = jMask.translation[maskDigit]; + + if (translation) { + if (valDigit.match(translation.pattern)) { + buf[addMethod](valDigit); + if (translation.recursive) { + if (resetPos === -1) { + resetPos = m; + } else if (m === lastMaskChar && m !== resetPos) { + m = resetPos - offset; + } + + if (lastMaskChar === resetPos) { + m -= offset; + } + } + m += offset; + } else if (valDigit === lastUntranslatedMaskChar) { + // matched the last untranslated (raw) mask character that we encountered + // likely an insert offset the mask character from the last entry; fall + // through and only increment v + maskDigitCount--; + lastUntranslatedMaskChar = undefined; + } else if (translation.optional) { + m += offset; + v -= offset; + } else if (translation.fallback) { + buf[addMethod](translation.fallback); + m += offset; + v -= offset; + } else { + p.invalid.push({p: v, v: valDigit, e: translation.pattern}); + } + v += offset; + } else { + if (!skipMaskChars) { + buf[addMethod](maskDigit); + } + + if (valDigit === maskDigit) { + maskDigitPosArr.push(v); + v += offset; + } else { + lastUntranslatedMaskChar = maskDigit; + maskDigitPosArr.push(v + maskDigitCount); + maskDigitCount++; + } + + m += offset; + } + } + + var lastMaskCharDigit = mask.charAt(lastMaskChar); + if (maskLen === valLen + 1 && !jMask.translation[lastMaskCharDigit]) { + buf.push(lastMaskCharDigit); + } + + var newVal = buf.join(''); + p.mapMaskdigitPositions(newVal, maskDigitPosArr, valLen); + return newVal; + }, + mapMaskdigitPositions: function(newVal, maskDigitPosArr, valLen) { + var maskDiff = options.reverse ? newVal.length - valLen : 0; + p.maskDigitPosMap = {}; + for (var i = 0; i < maskDigitPosArr.length; i++) { + p.maskDigitPosMap[maskDigitPosArr[i] + maskDiff] = 1; + } + }, + callbacks: function (e) { + var val = p.val(), + changed = val !== oldValue, + defaultArgs = [val, e, el, options], + callback = function(name, criteria, args) { + if (typeof options[name] === 'function' && criteria) { + options[name].apply(this, args); + } + }; + + callback('onChange', changed === true, defaultArgs); + callback('onKeyPress', changed === true, defaultArgs); + callback('onComplete', val.length === mask.length, defaultArgs); + callback('onInvalid', p.invalid.length > 0, [val, e, el, p.invalid, options]); + } + }; + + el = $(el); + var jMask = this, oldValue = p.val(), regexMask; + + mask = typeof mask === 'function' ? mask(p.val(), undefined, el, options) : mask; + + // public methods + jMask.mask = mask; + jMask.options = options; + jMask.remove = function() { + var caret = p.getCaret(); + if (jMask.options.placeholder) { + el.removeAttr('placeholder'); + } + if (el.data('mask-maxlength')) { + el.removeAttr('maxlength'); + } + p.destroyEvents(); + p.val(jMask.getCleanVal()); + p.setCaret(caret); + return el; + }; + + // get value without mask + jMask.getCleanVal = function() { + return p.getMasked(true); + }; + + // get masked value without the value being in the input or element + jMask.getMaskedVal = function(val) { + return p.getMasked(false, val); + }; + + jMask.init = function(onlyMask) { + onlyMask = onlyMask || false; + options = options || {}; + + jMask.clearIfNotMatch = $.jMaskGlobals.clearIfNotMatch; + jMask.byPassKeys = $.jMaskGlobals.byPassKeys; + jMask.translation = $.extend({}, $.jMaskGlobals.translation, options.translation); + + jMask = $.extend(true, {}, jMask, options); + + regexMask = p.getRegexMask(); + + if (onlyMask) { + p.events(); + p.val(p.getMasked()); + } else { + if (options.placeholder) { + el.attr('placeholder' , options.placeholder); + } + + // this is necessary, otherwise if the user submit the form + // and then press the "back" button, the autocomplete will erase + // the data. Works fine on IE9+, FF, Opera, Safari. + if (el.data('mask')) { + el.attr('autocomplete', 'off'); + } + + // detect if is necessary let the user type freely. + // for is a lot faster than forEach. + for (var i = 0, maxlength = true; i < mask.length; i++) { + var translation = jMask.translation[mask.charAt(i)]; + if (translation && translation.recursive) { + maxlength = false; + break; + } + } + + if (maxlength) { + el.attr('maxlength', mask.length).data('mask-maxlength', true); + } + + p.destroyEvents(); + p.events(); + + var caret = p.getCaret(); + p.val(p.getMasked()); + p.setCaret(caret); + } + }; + + jMask.init(!el.is('input')); + }; + + $.maskWatchers = {}; + var HTMLAttributes = function () { + var input = $(this), + options = {}, + prefix = 'data-mask-', + mask = input.attr('data-mask'); + + if (input.attr(prefix + 'reverse')) { + options.reverse = true; + } + + if (input.attr(prefix + 'clearifnotmatch')) { + options.clearIfNotMatch = true; + } + + if (input.attr(prefix + 'selectonfocus') === 'true') { + options.selectOnFocus = true; + } + + if (notSameMaskObject(input, mask, options)) { + return input.data('mask', new Mask(this, mask, options)); + } + }, + notSameMaskObject = function(field, mask, options) { + options = options || {}; + var maskObject = $(field).data('mask'), + stringify = JSON.stringify, + value = $(field).val() || $(field).text(); + try { + if (typeof mask === 'function') { + mask = mask(value); + } + return typeof maskObject !== 'object' || stringify(maskObject.options) !== stringify(options) || maskObject.mask !== mask; + } catch (e) {} + }, + eventSupported = function(eventName) { + var el = document.createElement('div'), isSupported; + + eventName = 'on' + eventName; + isSupported = (eventName in el); + + if ( !isSupported ) { + el.setAttribute(eventName, 'return;'); + isSupported = typeof el[eventName] === 'function'; + } + el = null; + + return isSupported; + }; + + $.fn.mask = function(mask, options) { + options = options || {}; + var selector = this.selector, + globals = $.jMaskGlobals, + interval = globals.watchInterval, + watchInputs = options.watchInputs || globals.watchInputs, + maskFunction = function() { + if (notSameMaskObject(this, mask, options)) { + return $(this).data('mask', new Mask(this, mask, options)); + } + }; + + $(this).each(maskFunction); + + if (selector && selector !== '' && watchInputs) { + clearInterval($.maskWatchers[selector]); + $.maskWatchers[selector] = setInterval(function(){ + $(document).find(selector).each(maskFunction); + }, interval); + } + return this; + }; + + $.fn.masked = function(val) { + return this.data('mask').getMaskedVal(val); + }; + + $.fn.unmask = function() { + clearInterval($.maskWatchers[this.selector]); + delete $.maskWatchers[this.selector]; + return this.each(function() { + var dataMask = $(this).data('mask'); + if (dataMask) { + dataMask.remove().removeData('mask'); + } + }); + }; + + $.fn.cleanVal = function() { + return this.data('mask').getCleanVal(); + }; + + $.applyDataMask = function(selector) { + selector = selector || $.jMaskGlobals.maskElements; + var $selector = (selector instanceof $) ? selector : $(selector); + $selector.filter($.jMaskGlobals.dataMaskAttr).each(HTMLAttributes); + }; + + var globals = { + maskElements: 'input,td,span,div', + dataMaskAttr: '*[data-mask]', + dataMask: true, + watchInterval: 300, + watchInputs: true, + keyStrokeCompensation: 10, + // old versions of chrome dont work great with input event + useInput: !/Chrome\/[2-4][0-9]|SamsungBrowser/.test(window.navigator.userAgent) && eventSupported('input'), + watchDataMask: false, + byPassKeys: [9, 16, 17, 18, 36, 37, 38, 39, 40, 91], + translation: { + '0': {pattern: /\d/}, + '9': {pattern: /\d/, optional: true}, + '#': {pattern: /\d/, recursive: true}, + 'A': {pattern: /[a-zA-Z0-9]/}, + 'S': {pattern: /[a-zA-Z]/} + } + }; + + $.jMaskGlobals = $.jMaskGlobals || {}; + globals = $.jMaskGlobals = $.extend(true, {}, globals, $.jMaskGlobals); + + // looking for inputs with data-mask attribute + if (globals.dataMask) { + $.applyDataMask(); + } + + setInterval(function() { + if ($.jMaskGlobals.watchDataMask) { + $.applyDataMask(); + } + }, globals.watchInterval); +}, window.jQuery, window.Zepto)); diff --git a/dist/jquery.mask.min.js b/dist/jquery.mask.min.js new file mode 100644 index 00000000..ce86d08b --- /dev/null +++ b/dist/jquery.mask.min.js @@ -0,0 +1,19 @@ +// jQuery Mask Plugin v1.14.15 +// github.com/igorescobar/jQuery-Mask-Plugin +var $jscomp={scope:{},findInternal:function(a,l,d){a instanceof String&&(a=String(a));for(var p=a.length,h=0;hd?g=10*e:f>=g&&f!==d?c.maskDigitPosMapOld[g]||(f=g,g=g-(l-h)-a,c.maskDigitPosMap[g]&&(g=f)):g>f&& +(g=g+(h-l)+m)}return g},behaviour:function(f){f=f||window.event;c.invalid=[];var e=b.data("mask-keycode");if(-1===a.inArray(e,m.byPassKeys)){var e=c.getMasked(),g=c.getCaret();setTimeout(function(){c.setCaret(c.calculateCaretPosition())},a.jMaskGlobals.keyStrokeCompensation);c.val(e);c.setCaret(g);return c.callbacks(f)}},getMasked:function(a,b){var g=[],d=void 0===b?c.val():b+"",n=0,h=e.length,q=0,l=d.length,k=1,r="push",p=-1,t=0,y=[],v,z;f.reverse?(r="unshift",k=-1,v=0,n=h-1,q=l-1,z=function(){return-1< +n&&-1 Date: Tue, 18 Jun 2019 14:12:13 -0300 Subject: [PATCH 36/42] Solve loading JQuery as module on Meteor --- src/jquery.mask.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/jquery.mask.js b/src/jquery.mask.js index 019f2ec2..8944c346 100755 --- a/src/jquery.mask.js +++ b/src/jquery.mask.js @@ -41,7 +41,8 @@ if (typeof define === 'function' && define.amd) { define(['jquery'], factory); - } else if (typeof exports === 'object') { + } else if ( + (typeof exports === 'object' && typeof Meteor === 'undefined') { module.exports = factory(require('jquery')); } else { factory(jQuery || Zepto); From f3cec8a051552dfc6b28cc5a91a1e415855cf220 Mon Sep 17 00:00:00 2001 From: Juan Pablo Kutianski Date: Tue, 18 Jun 2019 14:15:17 -0300 Subject: [PATCH 37/42] Solve extra '(' --- src/jquery.mask.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/jquery.mask.js b/src/jquery.mask.js index 8944c346..df8f13ba 100755 --- a/src/jquery.mask.js +++ b/src/jquery.mask.js @@ -41,8 +41,7 @@ if (typeof define === 'function' && define.amd) { define(['jquery'], factory); - } else if ( - (typeof exports === 'object' && typeof Meteor === 'undefined') { + } else if (typeof exports === 'object' && typeof Meteor === 'undefined') { module.exports = factory(require('jquery')); } else { factory(jQuery || Zepto); From d84519ebfe86479b1c357343b8c9ef89393f5fbb Mon Sep 17 00:00:00 2001 From: Igor Escobar Date: Wed, 31 Jul 2019 16:30:32 +0100 Subject: [PATCH 38/42] Updating ruby --- .ruby-version | 2 +- package-lock.json | 664 +++++++++++++++++++++++----------------------- 2 files changed, 333 insertions(+), 333 deletions(-) diff --git a/.ruby-version b/.ruby-version index 68b3a4cd..600bcfd1 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -1.9.3-p551 +2.0.0p598 diff --git a/package-lock.json b/package-lock.json index d2c13816..77c22649 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "jquery-mask-plugin", - "version": "1.14.12", + "version": "1.14.15", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -16,7 +16,7 @@ "integrity": "sha1-hiRnWMfdbSGmR0/whKR0DsBesh8=", "dev": true, "requires": { - "mime-types": "2.1.17", + "mime-types": "~2.1.16", "negotiator": "0.6.1" } }, @@ -26,8 +26,8 @@ "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", "dev": true, "requires": { - "co": "4.6.0", - "json-stable-stringify": "1.0.1" + "co": "^4.6.0", + "json-stable-stringify": "^1.0.1" } }, "ansi-regex": { @@ -48,8 +48,8 @@ "integrity": "sha1-z9AeD7uj1srtBJ+9dY1A9lGW9Xw=", "dev": true, "requires": { - "underscore": "1.7.0", - "underscore.string": "2.4.0" + "underscore": "~1.7.0", + "underscore.string": "~2.4.0" }, "dependencies": { "underscore.string": { @@ -78,7 +78,7 @@ "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "dev": true, "requires": { - "array-uniq": "1.0.3" + "array-uniq": "^1.0.1" } }, "array-uniq": { @@ -157,7 +157,7 @@ "dev": true, "optional": true, "requires": { - "tweetnacl": "0.14.5" + "tweetnacl": "^0.14.3" } }, "boom": { @@ -166,7 +166,7 @@ "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", "dev": true, "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "brace-expansion": { @@ -175,7 +175,7 @@ "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", "dev": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -185,7 +185,7 @@ "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=", "dev": true, "requires": { - "pako": "0.2.9" + "pako": "~0.2.0" } }, "builtin-modules": { @@ -206,8 +206,8 @@ "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", "dev": true, "requires": { - "camelcase": "2.1.1", - "map-obj": "1.0.1" + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" } }, "caseless": { @@ -222,11 +222,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } }, "cli": { @@ -236,7 +236,7 @@ "dev": true, "requires": { "exit": "0.1.2", - "glob": "3.2.11" + "glob": "~ 3.2.1" }, "dependencies": { "glob": { @@ -245,8 +245,8 @@ "integrity": "sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=", "dev": true, "requires": { - "inherits": "2.0.3", - "minimatch": "0.3.0" + "inherits": "2", + "minimatch": "0.3" } }, "minimatch": { @@ -255,8 +255,8 @@ "integrity": "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=", "dev": true, "requires": { - "lru-cache": "2.7.3", - "sigmund": "1.0.1" + "lru-cache": "2", + "sigmund": "~1.0.0" } } } @@ -285,7 +285,7 @@ "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", "dev": true, "requires": { - "delayed-stream": "1.0.0" + "delayed-stream": "~1.0.0" } }, "commander": { @@ -306,9 +306,9 @@ "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", "dev": true, "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.3", - "typedarray": "0.0.6" + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" }, "dependencies": { "isarray": { @@ -323,13 +323,13 @@ "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", "dev": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.0.3", + "util-deprecate": "~1.0.1" } }, "string_decoder": { @@ -338,7 +338,7 @@ "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", "dev": true, "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "~5.1.0" } } } @@ -351,7 +351,7 @@ "requires": { "debug": "2.6.9", "finalhandler": "1.0.6", - "parseurl": "1.3.2", + "parseurl": "~1.3.2", "utils-merge": "1.0.1" } }, @@ -367,7 +367,7 @@ "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", "dev": true, "requires": { - "date-now": "0.1.4" + "date-now": "^0.1.4" } }, "core-util-is": { @@ -382,7 +382,7 @@ "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", "dev": true, "requires": { - "boom": "2.10.1" + "boom": "2.x.x" } }, "currently-unhandled": { @@ -391,7 +391,7 @@ "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", "dev": true, "requires": { - "array-find-index": "1.0.2" + "array-find-index": "^1.0.1" } }, "dashdash": { @@ -400,7 +400,7 @@ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "dev": true, "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" }, "dependencies": { "assert-plus": { @@ -423,7 +423,7 @@ "integrity": "sha1-GIdtC9pMGf5w3Tv0sDTygbEqQLY=", "dev": true, "requires": { - "time-zone": "0.1.0" + "time-zone": "^0.1.0" } }, "dateformat": { @@ -471,8 +471,8 @@ "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", "dev": true, "requires": { - "domelementtype": "1.1.3", - "entities": "1.1.1" + "domelementtype": "~1.1.1", + "entities": "~1.1.1" }, "dependencies": { "domelementtype": { @@ -501,7 +501,7 @@ "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=", "dev": true, "requires": { - "domelementtype": "1.3.0" + "domelementtype": "1" } }, "domutils": { @@ -510,8 +510,8 @@ "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", "dev": true, "requires": { - "dom-serializer": "0.1.0", - "domelementtype": "1.3.0" + "dom-serializer": "0", + "domelementtype": "1" } }, "ecc-jsbn": { @@ -521,7 +521,7 @@ "dev": true, "optional": true, "requires": { - "jsbn": "0.1.1" + "jsbn": "~0.1.0" } }, "ee-first": { @@ -548,7 +548,7 @@ "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", "dev": true, "requires": { - "is-arrayish": "0.2.1" + "is-arrayish": "^0.2.1" } }, "es6-promise": { @@ -623,7 +623,7 @@ "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", "dev": true, "requires": { - "pend": "1.2.0" + "pend": "~1.2.0" } }, "figures": { @@ -632,8 +632,8 @@ "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", "dev": true, "requires": { - "escape-string-regexp": "1.0.5", - "object-assign": "4.1.1" + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" } }, "finalhandler": { @@ -643,12 +643,12 @@ "dev": true, "requires": { "debug": "2.6.9", - "encodeurl": "1.0.1", - "escape-html": "1.0.3", - "on-finished": "2.3.0", - "parseurl": "1.3.2", - "statuses": "1.3.1", - "unpipe": "1.0.0" + "encodeurl": "~1.0.1", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "statuses": "~1.3.1", + "unpipe": "~1.0.0" } }, "find-up": { @@ -657,8 +657,8 @@ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "dev": true, "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "findup-sync": { @@ -667,8 +667,8 @@ "integrity": "sha1-fz56l7gjksZTvwZYm9hRkOk8NoM=", "dev": true, "requires": { - "glob": "3.2.11", - "lodash": "2.4.2" + "glob": "~3.2.9", + "lodash": "~2.4.1" }, "dependencies": { "glob": { @@ -677,8 +677,8 @@ "integrity": "sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=", "dev": true, "requires": { - "inherits": "2.0.3", - "minimatch": "0.3.0" + "inherits": "2", + "minimatch": "0.3" } }, "lodash": { @@ -693,8 +693,8 @@ "integrity": "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=", "dev": true, "requires": { - "lru-cache": "2.7.3", - "sigmund": "1.0.1" + "lru-cache": "2", + "sigmund": "~1.0.0" } } } @@ -711,9 +711,9 @@ "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", "dev": true, "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.17" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.12" } }, "fresh": { @@ -728,9 +728,9 @@ "integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "jsonfile": "2.4.0", - "klaw": "1.3.1" + "graceful-fs": "^4.1.2", + "jsonfile": "^2.1.0", + "klaw": "^1.0.0" }, "dependencies": { "graceful-fs": { @@ -765,7 +765,7 @@ "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "dev": true, "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" }, "dependencies": { "assert-plus": { @@ -782,9 +782,9 @@ "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=", "dev": true, "requires": { - "graceful-fs": "1.2.3", - "inherits": "1.0.2", - "minimatch": "0.2.14" + "graceful-fs": "~1.2.0", + "inherits": "1", + "minimatch": "~0.2.11" }, "dependencies": { "inherits": { @@ -807,26 +807,26 @@ "integrity": "sha1-VpN81RlDJK3/bSB2MYMqnWuk5/A=", "dev": true, "requires": { - "async": "0.1.22", - "coffee-script": "1.3.3", - "colors": "0.6.2", + "async": "~0.1.22", + "coffee-script": "~1.3.3", + "colors": "~0.6.2", "dateformat": "1.0.2-1.2.3", - "eventemitter2": "0.4.14", - "exit": "0.1.2", - "findup-sync": "0.1.3", - "getobject": "0.1.0", - "glob": "3.1.21", - "grunt-legacy-log": "0.1.3", - "grunt-legacy-util": "0.2.0", - "hooker": "0.2.3", - "iconv-lite": "0.2.11", - "js-yaml": "2.0.5", - "lodash": "0.9.2", - "minimatch": "0.2.14", - "nopt": "1.0.10", - "rimraf": "2.2.8", - "underscore.string": "2.2.1", - "which": "1.0.9" + "eventemitter2": "~0.4.13", + "exit": "~0.1.1", + "findup-sync": "~0.1.2", + "getobject": "~0.1.0", + "glob": "~3.1.21", + "grunt-legacy-log": "~0.1.0", + "grunt-legacy-util": "~0.2.0", + "hooker": "~0.2.3", + "iconv-lite": "~0.2.11", + "js-yaml": "~2.0.5", + "lodash": "~0.9.2", + "minimatch": "~0.2.12", + "nopt": "~1.0.10", + "rimraf": "~2.2.8", + "underscore.string": "~2.2.1", + "which": "~1.0.5" } }, "grunt-contrib-connect": { @@ -835,15 +835,15 @@ "integrity": "sha1-XPkzuRpnOGBEJzwLJERgPNmIebo=", "dev": true, "requires": { - "async": "1.5.2", - "connect": "3.6.5", - "connect-livereload": "0.5.4", - "http2": "3.3.7", - "morgan": "1.9.0", - "opn": "4.0.2", - "portscanner": "1.2.0", - "serve-index": "1.9.1", - "serve-static": "1.13.1" + "async": "^1.5.2", + "connect": "^3.4.0", + "connect-livereload": "^0.5.0", + "http2": "^3.3.4", + "morgan": "^1.6.1", + "opn": "^4.0.0", + "portscanner": "^1.0.0", + "serve-index": "^1.7.1", + "serve-static": "^1.10.0" }, "dependencies": { "async": { @@ -860,8 +860,8 @@ "integrity": "sha1-gDaBgdzNVRGG5bg4XAEc7iTWQKA=", "dev": true, "requires": { - "hooker": "0.2.3", - "jshint": "2.8.0" + "hooker": "^0.2.3", + "jshint": "~2.8.0" } }, "grunt-contrib-qunit": { @@ -870,7 +870,7 @@ "integrity": "sha1-VKUbSyyE/uYsO34AFFySjR7Ct+w=", "dev": true, "requires": { - "grunt-lib-phantomjs": "1.1.0" + "grunt-lib-phantomjs": "^1.0.0" } }, "grunt-contrib-uglify": { @@ -879,10 +879,10 @@ "integrity": "sha512-xBPwg8wuA/m+HiSh2uMADuadKEnFQt9N5OhEy35vIl945yG6095oY1H1Og3ucg0wBSOieIBn3raqStvIcwKqHg==", "dev": true, "requires": { - "chalk": "1.1.3", - "maxmin": "1.1.0", - "uglify-js": "3.2.2", - "uri-path": "1.0.0" + "chalk": "^1.0.0", + "maxmin": "^1.1.0", + "uglify-js": "~3.2.0", + "uri-path": "^1.0.0" } }, "grunt-legacy-log": { @@ -891,11 +891,11 @@ "integrity": "sha1-7ClCboAwIa9ZAp+H0vnNczWgVTE=", "dev": true, "requires": { - "colors": "0.6.2", - "grunt-legacy-log-utils": "0.1.1", - "hooker": "0.2.3", - "lodash": "2.4.2", - "underscore.string": "2.3.3" + "colors": "~0.6.2", + "grunt-legacy-log-utils": "~0.1.1", + "hooker": "~0.2.3", + "lodash": "~2.4.1", + "underscore.string": "~2.3.3" }, "dependencies": { "lodash": { @@ -918,9 +918,9 @@ "integrity": "sha1-wHBrndkGThFvNvI/5OawSGcsD34=", "dev": true, "requires": { - "colors": "0.6.2", - "lodash": "2.4.2", - "underscore.string": "2.3.3" + "colors": "~0.6.2", + "lodash": "~2.4.1", + "underscore.string": "~2.3.3" }, "dependencies": { "lodash": { @@ -943,13 +943,13 @@ "integrity": "sha1-kzJIhNv343qf98Am3/RR2UqeVUs=", "dev": true, "requires": { - "async": "0.1.22", - "exit": "0.1.2", - "getobject": "0.1.0", - "hooker": "0.2.3", - "lodash": "0.9.2", - "underscore.string": "2.2.1", - "which": "1.0.9" + "async": "~0.1.22", + "exit": "~0.1.1", + "getobject": "~0.1.0", + "hooker": "~0.2.3", + "lodash": "~0.9.2", + "underscore.string": "~2.2.1", + "which": "~1.0.5" } }, "grunt-lib-phantomjs": { @@ -958,11 +958,11 @@ "integrity": "sha1-np7c3Z/S3UDgwYHJQ3HVcqpe6tI=", "dev": true, "requires": { - "eventemitter2": "0.4.14", - "phantomjs-prebuilt": "2.1.16", - "rimraf": "2.6.2", - "semver": "5.4.1", - "temporary": "0.0.8" + "eventemitter2": "^0.4.9", + "phantomjs-prebuilt": "^2.1.3", + "rimraf": "^2.5.2", + "semver": "^5.1.0", + "temporary": "^0.0.8" }, "dependencies": { "glob": { @@ -971,12 +971,12 @@ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "minimatch": { @@ -985,7 +985,7 @@ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "brace-expansion": "1.1.8" + "brace-expansion": "^1.1.7" } }, "rimraf": { @@ -994,7 +994,7 @@ "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "dev": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } } } @@ -1005,8 +1005,8 @@ "integrity": "sha1-Zs+LEBBHInuVus5uodoMF37Vwi8=", "dev": true, "requires": { - "browserify-zlib": "0.1.4", - "concat-stream": "1.6.0" + "browserify-zlib": "^0.1.4", + "concat-stream": "^1.4.1" } }, "har-schema": { @@ -1021,8 +1021,8 @@ "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", "dev": true, "requires": { - "ajv": "4.11.8", - "har-schema": "1.0.5" + "ajv": "^4.9.1", + "har-schema": "^1.0.5" } }, "has-ansi": { @@ -1031,7 +1031,7 @@ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "hasha": { @@ -1040,8 +1040,8 @@ "integrity": "sha1-eNfL/B5tZjA/55g3NlmEUXsvbuE=", "dev": true, "requires": { - "is-stream": "1.1.0", - "pinkie-promise": "2.0.1" + "is-stream": "^1.0.1", + "pinkie-promise": "^2.0.0" } }, "hawk": { @@ -1050,10 +1050,10 @@ "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", "dev": true, "requires": { - "boom": "2.10.1", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "sntp": "1.0.9" + "boom": "2.x.x", + "cryptiles": "2.x.x", + "hoek": "2.x.x", + "sntp": "1.x.x" } }, "hoek": { @@ -1080,11 +1080,11 @@ "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=", "dev": true, "requires": { - "domelementtype": "1.3.0", - "domhandler": "2.3.0", - "domutils": "1.5.1", - "entities": "1.0.0", - "readable-stream": "1.1.14" + "domelementtype": "1", + "domhandler": "2.3", + "domutils": "1.5", + "entities": "1.0", + "readable-stream": "1.1" } }, "http-errors": { @@ -1096,7 +1096,7 @@ "depd": "1.1.1", "inherits": "2.0.3", "setprototypeof": "1.0.3", - "statuses": "1.3.1" + "statuses": ">= 1.3.1 < 2" } }, "http-signature": { @@ -1105,9 +1105,9 @@ "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", "dev": true, "requires": { - "assert-plus": "0.2.0", - "jsprim": "1.4.1", - "sshpk": "1.13.1" + "assert-plus": "^0.2.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "http2": { @@ -1128,7 +1128,7 @@ "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", "dev": true, "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "inflight": { @@ -1137,8 +1137,8 @@ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -1159,7 +1159,7 @@ "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "dev": true, "requires": { - "builtin-modules": "1.1.1" + "builtin-modules": "^1.0.0" } }, "is-finite": { @@ -1168,7 +1168,7 @@ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-stream": { @@ -1213,8 +1213,8 @@ "integrity": "sha1-olrmUJmZ6X3yeMZxnaEb0Gh3Q6g=", "dev": true, "requires": { - "argparse": "0.1.16", - "esprima": "1.0.4" + "argparse": "~ 0.1.11", + "esprima": "~ 1.0.2" } }, "jsbn": { @@ -1230,14 +1230,14 @@ "integrity": "sha1-HQmjvZE8TK36gb8Y1YK9hb/+DUQ=", "dev": true, "requires": { - "cli": "0.6.6", - "console-browserify": "1.1.0", - "exit": "0.1.2", - "htmlparser2": "3.8.3", - "lodash": "3.7.0", - "minimatch": "2.0.10", - "shelljs": "0.3.0", - "strip-json-comments": "1.0.4" + "cli": "0.6.x", + "console-browserify": "1.1.x", + "exit": "0.1.x", + "htmlparser2": "3.8.x", + "lodash": "3.7.x", + "minimatch": "2.0.x", + "shelljs": "0.3.x", + "strip-json-comments": "1.0.x" }, "dependencies": { "lodash": { @@ -1252,7 +1252,7 @@ "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=", "dev": true, "requires": { - "brace-expansion": "1.1.8" + "brace-expansion": "^1.0.0" } } } @@ -1263,10 +1263,10 @@ "integrity": "sha1-6Z88w0CvsY4qdwL4eY10AMoxRGo=", "dev": true, "requires": { - "chalk": "1.1.3", - "log-symbols": "1.0.2", - "string-length": "1.0.1", - "text-table": "0.2.0" + "chalk": "^1.0.0", + "log-symbols": "^1.0.0", + "string-length": "^1.0.0", + "text-table": "^0.2.0" } }, "json-schema": { @@ -1281,7 +1281,7 @@ "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", "dev": true, "requires": { - "jsonify": "0.0.0" + "jsonify": "~0.0.0" } }, "json-stringify-safe": { @@ -1296,7 +1296,7 @@ "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", "dev": true, "requires": { - "graceful-fs": "4.1.11" + "graceful-fs": "^4.1.6" }, "dependencies": { "graceful-fs": { @@ -1346,7 +1346,7 @@ "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", "dev": true, "requires": { - "graceful-fs": "4.1.11" + "graceful-fs": "^4.1.9" }, "dependencies": { "graceful-fs": { @@ -1364,10 +1364,10 @@ "integrity": "sha1-ByhWEYD9IP+KaSdQWFL8WKrqDIg=", "dev": true, "requires": { - "arrify": "1.0.1", - "multimatch": "2.1.0", - "pkg-up": "1.0.0", - "resolve-pkg": "0.1.0" + "arrify": "^1.0.0", + "multimatch": "^2.0.0", + "pkg-up": "^1.0.0", + "resolve-pkg": "^0.1.0" } }, "load-json-file": { @@ -1376,11 +1376,11 @@ "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "strip-bom": "2.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" }, "dependencies": { "graceful-fs": { @@ -1403,7 +1403,7 @@ "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", "dev": true, "requires": { - "chalk": "1.1.3" + "chalk": "^1.0.0" } }, "loud-rejection": { @@ -1412,8 +1412,8 @@ "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", "dev": true, "requires": { - "currently-unhandled": "0.4.1", - "signal-exit": "3.0.2" + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" } }, "lru-cache": { @@ -1434,10 +1434,10 @@ "integrity": "sha1-cTZehKmd2Piz99X94vANHn9zvmE=", "dev": true, "requires": { - "chalk": "1.1.3", - "figures": "1.7.0", - "gzip-size": "1.0.0", - "pretty-bytes": "1.0.4" + "chalk": "^1.0.0", + "figures": "^1.0.1", + "gzip-size": "^1.0.0", + "pretty-bytes": "^1.0.0" } }, "meow": { @@ -1446,16 +1446,16 @@ "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", "dev": true, "requires": { - "camelcase-keys": "2.1.0", - "decamelize": "1.2.0", - "loud-rejection": "1.6.0", - "map-obj": "1.0.1", - "minimist": "1.2.0", - "normalize-package-data": "2.4.0", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "redent": "1.0.0", - "trim-newlines": "1.0.0" + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" }, "dependencies": { "minimist": { @@ -1484,7 +1484,7 @@ "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=", "dev": true, "requires": { - "mime-db": "1.30.0" + "mime-db": "~1.30.0" } }, "minimatch": { @@ -1493,8 +1493,8 @@ "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=", "dev": true, "requires": { - "lru-cache": "2.7.3", - "sigmund": "1.0.1" + "lru-cache": "2", + "sigmund": "~1.0.0" } }, "minimist": { @@ -1518,11 +1518,11 @@ "integrity": "sha1-0B+mxlhZt2/PMbPLU6OCGjEdgFE=", "dev": true, "requires": { - "basic-auth": "2.0.0", + "basic-auth": "~2.0.0", "debug": "2.6.9", - "depd": "1.1.1", - "on-finished": "2.3.0", - "on-headers": "1.0.1" + "depd": "~1.1.1", + "on-finished": "~2.3.0", + "on-headers": "~1.0.1" } }, "ms": { @@ -1537,10 +1537,10 @@ "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=", "dev": true, "requires": { - "array-differ": "1.0.0", - "array-union": "1.0.2", - "arrify": "1.0.1", - "minimatch": "3.0.4" + "array-differ": "^1.0.0", + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "minimatch": "^3.0.0" }, "dependencies": { "minimatch": { @@ -1549,7 +1549,7 @@ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "brace-expansion": "1.1.8" + "brace-expansion": "^1.1.7" } } } @@ -1566,7 +1566,7 @@ "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", "dev": true, "requires": { - "abbrev": "1.1.1" + "abbrev": "1" } }, "normalize-package-data": { @@ -1575,10 +1575,10 @@ "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", "dev": true, "requires": { - "hosted-git-info": "2.5.0", - "is-builtin-module": "1.0.0", - "semver": "5.4.1", - "validate-npm-package-license": "3.0.1" + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, "number-is-nan": { @@ -1620,7 +1620,7 @@ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "opn": { @@ -1629,8 +1629,8 @@ "integrity": "sha1-erwi5kTf9jsKltWrfyeQwPAavJU=", "dev": true, "requires": { - "object-assign": "4.1.1", - "pinkie-promise": "2.0.1" + "object-assign": "^4.0.1", + "pinkie-promise": "^2.0.0" } }, "package": { @@ -1651,7 +1651,7 @@ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "dev": true, "requires": { - "error-ex": "1.3.1" + "error-ex": "^1.2.0" } }, "parse-ms": { @@ -1672,7 +1672,7 @@ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "dev": true, "requires": { - "pinkie-promise": "2.0.1" + "pinkie-promise": "^2.0.0" } }, "path-is-absolute": { @@ -1687,9 +1687,9 @@ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" }, "dependencies": { "graceful-fs": { @@ -1718,15 +1718,15 @@ "integrity": "sha1-79ISpKOWbTZHaE6ouniFSb4q7+8=", "dev": true, "requires": { - "es6-promise": "4.1.1", - "extract-zip": "1.6.6", - "fs-extra": "1.0.0", - "hasha": "2.2.0", - "kew": "0.7.0", - "progress": "1.1.8", - "request": "2.81.0", - "request-progress": "2.0.1", - "which": "1.3.0" + "es6-promise": "^4.0.3", + "extract-zip": "^1.6.5", + "fs-extra": "^1.0.0", + "hasha": "^2.2.0", + "kew": "^0.7.0", + "progress": "^1.1.8", + "request": "^2.81.0", + "request-progress": "^2.0.1", + "which": "^1.2.10" }, "dependencies": { "which": { @@ -1735,7 +1735,7 @@ "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", "dev": true, "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } } } @@ -1758,7 +1758,7 @@ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } }, "pkg-up": { @@ -1767,7 +1767,7 @@ "integrity": "sha1-Pgj7RhUlxEIWJKM7n35tCvWwWiY=", "dev": true, "requires": { - "find-up": "1.1.2" + "find-up": "^1.0.0" } }, "plur": { @@ -1799,8 +1799,8 @@ "integrity": "sha1-CiLoIQYJrTVUL4yNXSFZr/B1HIQ=", "dev": true, "requires": { - "get-stdin": "4.0.1", - "meow": "3.7.0" + "get-stdin": "^4.0.1", + "meow": "^3.1.0" } }, "pretty-ms": { @@ -1809,9 +1809,9 @@ "integrity": "sha1-QlfCVt8/sLRR1q/6qwIYhBJpgdw=", "dev": true, "requires": { - "is-finite": "1.0.2", - "parse-ms": "1.0.1", - "plur": "1.0.0" + "is-finite": "^1.0.1", + "parse-ms": "^1.0.0", + "plur": "^1.0.0" } }, "process-nextick-args": { @@ -1850,9 +1850,9 @@ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", "dev": true, "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.4.0", - "path-type": "1.1.0" + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" } }, "read-pkg-up": { @@ -1861,8 +1861,8 @@ "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", "dev": true, "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" } }, "readable-stream": { @@ -1871,10 +1871,10 @@ "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "dev": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", "isarray": "0.0.1", - "string_decoder": "0.10.31" + "string_decoder": "~0.10.x" } }, "redent": { @@ -1883,8 +1883,8 @@ "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", "dev": true, "requires": { - "indent-string": "2.1.0", - "strip-indent": "1.0.1" + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" } }, "repeating": { @@ -1893,7 +1893,7 @@ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "dev": true, "requires": { - "is-finite": "1.0.2" + "is-finite": "^1.0.0" } }, "request": { @@ -1902,28 +1902,28 @@ "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", "dev": true, "requires": { - "aws-sign2": "0.6.0", - "aws4": "1.6.0", - "caseless": "0.12.0", - "combined-stream": "1.0.5", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.1.4", - "har-validator": "4.2.1", - "hawk": "3.1.3", - "http-signature": "1.1.1", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.17", - "oauth-sign": "0.8.2", - "performance-now": "0.2.0", - "qs": "6.4.0", - "safe-buffer": "5.1.1", - "stringstream": "0.0.5", - "tough-cookie": "2.3.3", - "tunnel-agent": "0.6.0", - "uuid": "3.1.0" + "aws-sign2": "~0.6.0", + "aws4": "^1.2.1", + "caseless": "~0.12.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.0", + "forever-agent": "~0.6.1", + "form-data": "~2.1.1", + "har-validator": "~4.2.1", + "hawk": "~3.1.3", + "http-signature": "~1.1.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.7", + "oauth-sign": "~0.8.1", + "performance-now": "^0.2.0", + "qs": "~6.4.0", + "safe-buffer": "^5.0.1", + "stringstream": "~0.0.4", + "tough-cookie": "~2.3.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.0.0" } }, "request-progress": { @@ -1932,7 +1932,7 @@ "integrity": "sha1-XTa7V5YcZzqlt4jbyBQf3yO0Tgg=", "dev": true, "requires": { - "throttleit": "1.0.0" + "throttleit": "^1.0.0" } }, "resolve-from": { @@ -1947,7 +1947,7 @@ "integrity": "sha1-AsyZNBDik2livZcWahsHfalyVTE=", "dev": true, "requires": { - "resolve-from": "2.0.0" + "resolve-from": "^2.0.0" } }, "rimraf": { @@ -1975,18 +1975,18 @@ "dev": true, "requires": { "debug": "2.6.9", - "depd": "1.1.1", - "destroy": "1.0.4", - "encodeurl": "1.0.1", - "escape-html": "1.0.3", - "etag": "1.8.1", + "depd": "~1.1.1", + "destroy": "~1.0.4", + "encodeurl": "~1.0.1", + "escape-html": "~1.0.3", + "etag": "~1.8.1", "fresh": "0.5.2", - "http-errors": "1.6.2", + "http-errors": "~1.6.2", "mime": "1.4.1", "ms": "2.0.0", - "on-finished": "2.3.0", - "range-parser": "1.2.0", - "statuses": "1.3.1" + "on-finished": "~2.3.0", + "range-parser": "~1.2.0", + "statuses": "~1.3.1" } }, "serve-index": { @@ -1995,13 +1995,13 @@ "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", "dev": true, "requires": { - "accepts": "1.3.4", + "accepts": "~1.3.4", "batch": "0.6.1", "debug": "2.6.9", - "escape-html": "1.0.3", - "http-errors": "1.6.2", - "mime-types": "2.1.17", - "parseurl": "1.3.2" + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" } }, "serve-static": { @@ -2010,9 +2010,9 @@ "integrity": "sha512-hSMUZrsPa/I09VYFJwa627JJkNs0NrfL1Uzuup+GqHfToR2KcsXFymXSV90hoyw3M+msjFuQly+YzIH/q0MGlQ==", "dev": true, "requires": { - "encodeurl": "1.0.1", - "escape-html": "1.0.3", - "parseurl": "1.3.2", + "encodeurl": "~1.0.1", + "escape-html": "~1.0.3", + "parseurl": "~1.3.2", "send": "0.16.1" } }, @@ -2046,7 +2046,7 @@ "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", "dev": true, "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "source-map": { @@ -2061,7 +2061,7 @@ "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", "dev": true, "requires": { - "spdx-license-ids": "1.2.2" + "spdx-license-ids": "^1.0.2" } }, "spdx-expression-parse": { @@ -2082,14 +2082,14 @@ "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", "dev": true, "requires": { - "asn1": "0.2.3", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.1", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.1", - "getpass": "0.1.7", - "jsbn": "0.1.1", - "tweetnacl": "0.14.5" + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "tweetnacl": "~0.14.0" }, "dependencies": { "assert-plus": { @@ -2112,7 +2112,7 @@ "integrity": "sha1-VpcPscOFWOnnC3KL894mmsRa36w=", "dev": true, "requires": { - "strip-ansi": "3.0.1" + "strip-ansi": "^3.0.0" } }, "string_decoder": { @@ -2133,7 +2133,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-bom": { @@ -2142,7 +2142,7 @@ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "dev": true, "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.0" } }, "strip-indent": { @@ -2151,7 +2151,7 @@ "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", "dev": true, "requires": { - "get-stdin": "4.0.1" + "get-stdin": "^4.0.1" } }, "strip-json-comments": { @@ -2172,7 +2172,7 @@ "integrity": "sha1-oYqYHSi6jKNgJ/s8MFOMPst0CsA=", "dev": true, "requires": { - "package": "1.0.1" + "package": ">= 1.0.0 < 1.2.0" } }, "text-table": { @@ -2193,13 +2193,13 @@ "integrity": "sha1-BiIT5mDJB+hvRAVWwB6mWXtxJCA=", "dev": true, "requires": { - "chalk": "1.1.3", - "date-time": "1.1.0", - "figures": "1.7.0", - "hooker": "0.2.3", - "number-is-nan": "1.0.1", - "pretty-ms": "2.1.0", - "text-table": "0.2.0" + "chalk": "^1.0.0", + "date-time": "^1.1.0", + "figures": "^1.0.0", + "hooker": "^0.2.3", + "number-is-nan": "^1.0.0", + "pretty-ms": "^2.1.0", + "text-table": "^0.2.0" } }, "time-zone": { @@ -2214,7 +2214,7 @@ "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=", "dev": true, "requires": { - "punycode": "1.4.1" + "punycode": "^1.4.1" } }, "trim-newlines": { @@ -2229,7 +2229,7 @@ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "dev": true, "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "^5.0.1" } }, "tweetnacl": { @@ -2251,8 +2251,8 @@ "integrity": "sha512-++1NO/zZIEdWf6cDIGceSJQPX31SqIpbVAHwFG5+240MtZqPG/NIPoinj8zlXQtAfMBqEt1Jyv2FiLP3n9gVhQ==", "dev": true, "requires": { - "commander": "2.12.2", - "source-map": "0.6.1" + "commander": "~2.12.1", + "source-map": "~0.6.1" } }, "underscore": { @@ -2303,8 +2303,8 @@ "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", "dev": true, "requires": { - "spdx-correct": "1.0.2", - "spdx-expression-parse": "1.0.4" + "spdx-correct": "~1.0.0", + "spdx-expression-parse": "~1.0.0" } }, "verror": { @@ -2313,9 +2313,9 @@ "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "dev": true, "requires": { - "assert-plus": "1.0.0", + "assert-plus": "^1.0.0", "core-util-is": "1.0.2", - "extsprintf": "1.3.0" + "extsprintf": "^1.2.0" }, "dependencies": { "assert-plus": { @@ -2344,7 +2344,7 @@ "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=", "dev": true, "requires": { - "fd-slicer": "1.0.1" + "fd-slicer": "~1.0.1" } } } From bb89c434e72030ce520764060f74b85b7ddce76e Mon Sep 17 00:00:00 2001 From: Igor Escobar Date: Wed, 31 Jul 2019 16:32:24 +0100 Subject: [PATCH 39/42] generating jquery mask files v1.14.16 --- bower.json | 2 +- component.json | 2 +- dist/jquery.mask.js | 14 +++++++------- dist/jquery.mask.min.js | 36 ++++++++++++++++++------------------ package.js | 2 +- package.json | 2 +- src/jquery.mask.js | 2 +- 7 files changed, 30 insertions(+), 30 deletions(-) diff --git a/bower.json b/bower.json index 6d909412..1ec7ea6f 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "jquery-mask-plugin", - "version": "1.14.15", + "version": "1.14.16", "main": "dist/jquery.mask.js", "ignore": [ "deploy.rb", diff --git a/component.json b/component.json index 970995a0..d8263ef0 100644 --- a/component.json +++ b/component.json @@ -1,7 +1,7 @@ { "name": "jQuery-Mask-Plugin", "description": "A jQuery Plugin to make masks on form fields and HTML elements.", - "version": "1.14.15", + "version": "1.14.16", "keywords": ["javascript", "mask", "form"], "scripts": [ "dist/jquery.mask.js" diff --git a/dist/jquery.mask.js b/dist/jquery.mask.js index 019f2ec2..7e0216cb 100755 --- a/dist/jquery.mask.js +++ b/dist/jquery.mask.js @@ -1,6 +1,6 @@ /** * jquery.mask.js - * @version: v1.14.15 + * @version: v1.14.16 * @author: Igor Escobar * * Created by Igor Escobar on 2012-03-10. Please report any bug at github.com/igorescobar/jQuery-Mask-Plugin @@ -41,7 +41,7 @@ if (typeof define === 'function' && define.amd) { define(['jquery'], factory); - } else if (typeof exports === 'object') { + } else if (typeof exports === 'object' && typeof Meteor === 'undefined') { module.exports = factory(require('jquery')); } else { factory(jQuery || Zepto); @@ -187,9 +187,8 @@ return r; }, - calculateCaretPosition: function() { - var oldVal = el.data('mask-previus-value') || '', - newVal = p.getMasked(), + calculateCaretPosition: function(oldVal) { + var newVal = p.getMasked(), caretPosNew = p.getCaret(); if (oldVal !== newVal) { var caretPosOld = el.data('mask-previus-caret-pos') || 0, @@ -255,12 +254,13 @@ if ($.inArray(keyCode, jMask.byPassKeys) === -1) { var newVal = p.getMasked(), - caretPos = p.getCaret(); + caretPos = p.getCaret(), + oldVal = el.data('mask-previus-value') || ''; // this is a compensation to devices/browsers that don't compensate // caret positioning the right way setTimeout(function() { - p.setCaret(p.calculateCaretPosition()); + p.setCaret(p.calculateCaretPosition(oldVal)); }, $.jMaskGlobals.keyStrokeCompensation); p.val(newVal); diff --git a/dist/jquery.mask.min.js b/dist/jquery.mask.min.js index ce86d08b..1f22376e 100644 --- a/dist/jquery.mask.min.js +++ b/dist/jquery.mask.min.js @@ -1,19 +1,19 @@ -// jQuery Mask Plugin v1.14.15 +// jQuery Mask Plugin v1.14.16 // github.com/igorescobar/jQuery-Mask-Plugin -var $jscomp={scope:{},findInternal:function(a,l,d){a instanceof String&&(a=String(a));for(var p=a.length,h=0;hd?g=10*e:f>=g&&f!==d?c.maskDigitPosMapOld[g]||(f=g,g=g-(l-h)-a,c.maskDigitPosMap[g]&&(g=f)):g>f&& -(g=g+(h-l)+m)}return g},behaviour:function(f){f=f||window.event;c.invalid=[];var e=b.data("mask-keycode");if(-1===a.inArray(e,m.byPassKeys)){var e=c.getMasked(),g=c.getCaret();setTimeout(function(){c.setCaret(c.calculateCaretPosition())},a.jMaskGlobals.keyStrokeCompensation);c.val(e);c.setCaret(g);return c.callbacks(f)}},getMasked:function(a,b){var g=[],d=void 0===b?c.val():b+"",n=0,h=e.length,q=0,l=d.length,k=1,r="push",p=-1,t=0,y=[],v,z;f.reverse?(r="unshift",k=-1,v=0,n=h-1,q=l-1,z=function(){return-1< -n&&-1g?h=10*d:e>=h&&e!==g?c.maskDigitPosMapOld[h]||(e=h,h=h-(k-l)-a,c.maskDigitPosMap[h]&&(h=e)):h>e&&(h=h+(l-k)+f)}return h},behaviour:function(d){d= +d||window.event;c.invalid=[];var e=b.data("mask-keycode");if(-1===a.inArray(e,l.byPassKeys)){e=c.getMasked();var h=c.getCaret(),g=b.data("mask-previus-value")||"";setTimeout(function(){c.setCaret(c.calculateCaretPosition(g))},a.jMaskGlobals.keyStrokeCompensation);c.val(e);c.setCaret(h);return c.callbacks(d)}},getMasked:function(a,b){var h=[],f=void 0===b?c.val():b+"",g=0,k=d.length,n=0,p=f.length,m=1,r="push",u=-1,w=0;b=[];if(e.reverse){r="unshift";m=-1;var x=0;g=k-1;n=p-1;var A=function(){return-1< +g&&-1", "homepage": "http://igorescobar.github.io/jQuery-Mask-Plugin/", diff --git a/src/jquery.mask.js b/src/jquery.mask.js index a6a747a5..7e0216cb 100755 --- a/src/jquery.mask.js +++ b/src/jquery.mask.js @@ -1,6 +1,6 @@ /** * jquery.mask.js - * @version: v1.14.15 + * @version: v1.14.16 * @author: Igor Escobar * * Created by Igor Escobar on 2012-03-10. Please report any bug at github.com/igorescobar/jQuery-Mask-Plugin From 305caca3674dd17784a68df3efaab3c9d3d66231 Mon Sep 17 00:00:00 2001 From: Igor Escobar Date: Wed, 31 Jul 2019 16:32:50 +0100 Subject: [PATCH 40/42] upgrading changelog --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 848ac30a..a1d00616 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +== v1.14.16 (Jul/31 2019 16:32 +0100 by Igor Escobar) == + +Bugfixes: + +* Fixed oldVal being updated prior to caret position calculation +* Solve loading JQuery as module on Meteor + == v1.14.15 (Mar/08 2018 22:59 +0000 by Igor Escobar) == Bugfixes: From d4b031bdcfe367d4372fc13de0dff024e2bef768 Mon Sep 17 00:00:00 2001 From: Igor Escobar Date: Wed, 31 Jul 2019 16:56:36 +0100 Subject: [PATCH 41/42] Solving security issues on package.json --- .jshintrc | 2 +- Gruntfile.js | 3 +- package-lock.json | 1341 +++++++++++++++++++++++---------------------- package.json | 10 +- 4 files changed, 693 insertions(+), 663 deletions(-) diff --git a/.jshintrc b/.jshintrc index 9ad374f2..79f07e04 100644 --- a/.jshintrc +++ b/.jshintrc @@ -17,7 +17,7 @@ }, "immed": true, "indent": 4, - "latedef": true, + "latedef": false, "maxcomplexity": 15, "newcap": true, "noarg": true, diff --git a/Gruntfile.js b/Gruntfile.js index 35917c40..e89370fe 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -3,7 +3,6 @@ module.exports = function(grunt) { require('time-grunt')(grunt); grunt.initConfig({ - jshint: { options: { jshintrc: '.jshintrc', @@ -40,4 +39,4 @@ module.exports = function(grunt) { grunt.registerTask('test', ['jshint', 'connect', 'qunit']); grunt.registerTask('default', ['test']); -}; \ No newline at end of file +}; diff --git a/package-lock.json b/package-lock.json index 77c22649..5c0e902b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "jquery-mask-plugin", - "version": "1.14.15", + "version": "1.14.16", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -20,14 +20,25 @@ "negotiator": "0.6.1" } }, + "agent-base": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", + "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", + "dev": true, + "requires": { + "es6-promisify": "^5.0.0" + } + }, "ajv": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", - "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", + "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", "dev": true, "requires": { - "co": "^4.6.0", - "json-stable-stringify": "^1.0.1" + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, "ansi-regex": { @@ -43,19 +54,18 @@ "dev": true }, "argparse": { - "version": "0.1.16", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-0.1.16.tgz", - "integrity": "sha1-z9AeD7uj1srtBJ+9dY1A9lGW9Xw=", + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "requires": { - "underscore": "~1.7.0", - "underscore.string": "~2.4.0" + "sprintf-js": "~1.0.2" }, "dependencies": { - "underscore.string": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.4.0.tgz", - "integrity": "sha1-jN2PusTi0uoefi6Al8QvRCKA+Fs=", + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true } } @@ -94,21 +104,30 @@ "dev": true }, "asn1": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", - "dev": true + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } }, "assert-plus": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", - "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "dev": true }, "async": { - "version": "0.1.22", - "resolved": "https://registry.npmjs.org/async/-/async-0.1.22.tgz", - "integrity": "sha1-D8GqoIig4+8Ovi2IMbqw3PiEUGE=", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, + "async-limiter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", + "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==", "dev": true }, "asynckit": { @@ -118,15 +137,15 @@ "dev": true }, "aws-sign2": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", "dev": true }, "aws4": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", - "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", "dev": true }, "balanced-match": { @@ -136,12 +155,20 @@ "dev": true }, "basic-auth": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.0.tgz", - "integrity": "sha1-AV2z81PgLlY3d1X5YnQuiYHnu7o=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", + "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", "dev": true, "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "5.1.2" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + } } }, "batch": { @@ -151,24 +178,14 @@ "dev": true }, "bcrypt-pbkdf": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", - "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "dev": true, - "optional": true, "requires": { "tweetnacl": "^0.14.3" } }, - "boom": { - "version": "2.10.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", - "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", - "dev": true, - "requires": { - "hoek": "2.x.x" - } - }, "brace-expansion": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", @@ -188,6 +205,12 @@ "pako": "~0.2.0" } }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true + }, "builtin-modules": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", @@ -230,59 +253,62 @@ } }, "cli": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/cli/-/cli-0.6.6.tgz", - "integrity": "sha1-Aq1Eo4Cr8nraxebwzdewQ9dMU+M=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cli/-/cli-1.0.1.tgz", + "integrity": "sha1-IoF1NPJL+klQw01TLUjsvGIbjBQ=", "dev": true, "requires": { "exit": "0.1.2", - "glob": "~ 3.2.1" + "glob": "^7.1.1" }, "dependencies": { "glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz", - "integrity": "sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=", + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", "dev": true, "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", "inherits": "2", - "minimatch": "0.3" - } - }, - "minimatch": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz", - "integrity": "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=", - "dev": true, - "requires": { - "lru-cache": "2", - "sigmund": "~1.0.0" + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } } } }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "coffeescript": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/coffeescript/-/coffeescript-1.10.0.tgz", + "integrity": "sha1-56qDAZF+9iGzXYo580jc3R234z4=", "dev": true }, - "coffee-script": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.3.3.tgz", - "integrity": "sha1-FQ1rTLUiiUNp7+1qIQHCC8f0pPQ=", + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, "colors": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz", - "integrity": "sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w=", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", + "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", "dev": true }, "combined-stream": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", - "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "dev": true, "requires": { "delayed-stream": "~1.0.0" @@ -376,15 +402,6 @@ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, - "cryptiles": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", - "dev": true, - "requires": { - "boom": "2.x.x" - } - }, "currently-unhandled": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", @@ -401,14 +418,6 @@ "dev": true, "requires": { "assert-plus": "^1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - } } }, "date-now": { @@ -427,10 +436,14 @@ } }, "dateformat": { - "version": "1.0.2-1.2.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.2-1.2.3.tgz", - "integrity": "sha1-sCIMAt6YYXQztyhRz0fePfLNvuk=", - "dev": true + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz", + "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=", + "dev": true, + "requires": { + "get-stdin": "^4.0.1", + "meow": "^3.3.0" + } }, "debug": { "version": "2.6.9", @@ -466,33 +479,27 @@ "dev": true }, "dom-serializer": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", - "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", + "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", "dev": true, "requires": { - "domelementtype": "~1.1.1", - "entities": "~1.1.1" + "domelementtype": "^1.3.0", + "entities": "^1.1.1" }, "dependencies": { - "domelementtype": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", - "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=", - "dev": true - }, "entities": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", - "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", "dev": true } } }, "domelementtype": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", - "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", "dev": true }, "domhandler": { @@ -515,13 +522,13 @@ } }, "ecc-jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", - "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", "dev": true, - "optional": true, "requires": { - "jsbn": "~0.1.0" + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" } }, "ee-first": { @@ -552,11 +559,20 @@ } }, "es6-promise": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.1.1.tgz", - "integrity": "sha512-OaU1hHjgJf+b0NzsxCg7NdIYERD6Hy/PEmFLTjw+b65scuisG3Kt4QoTvJ66BBkPZ581gr0kpoVzKnxniM8nng==", + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", "dev": true }, + "es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", + "dev": true, + "requires": { + "es6-promise": "^4.0.3" + } + }, "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", @@ -570,9 +586,9 @@ "dev": true }, "esprima": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", - "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true }, "etag": { @@ -594,21 +610,71 @@ "dev": true }, "extend": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "dev": true }, "extract-zip": { - "version": "1.6.6", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.6.tgz", - "integrity": "sha1-EpDt6NINCHK0Kf0/NRyhKOxe+Fw=", + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.7.tgz", + "integrity": "sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=", "dev": true, "requires": { - "concat-stream": "1.6.0", + "concat-stream": "1.6.2", "debug": "2.6.9", - "mkdirp": "0.5.0", + "mkdirp": "0.5.1", "yauzl": "2.4.1" + }, + "dependencies": { + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } } }, "extsprintf": { @@ -617,6 +683,18 @@ "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", "dev": true }, + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "dev": true + }, "fd-slicer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", @@ -662,39 +740,25 @@ } }, "findup-sync": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.1.3.tgz", - "integrity": "sha1-fz56l7gjksZTvwZYm9hRkOk8NoM=", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.3.0.tgz", + "integrity": "sha1-N5MKpdgWt3fANEXhlmzGeQpMCxY=", "dev": true, "requires": { - "glob": "~3.2.9", - "lodash": "~2.4.1" + "glob": "~5.0.0" }, "dependencies": { "glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz", - "integrity": "sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=", + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", "dev": true, "requires": { + "inflight": "^1.0.4", "inherits": "2", - "minimatch": "0.3" - } - }, - "lodash": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz", - "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=", - "dev": true - }, - "minimatch": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz", - "integrity": "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=", - "dev": true, - "requires": { - "lru-cache": "2", - "sigmund": "~1.0.0" + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } } } @@ -706,13 +770,13 @@ "dev": true }, "form-data": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", - "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", "dev": true, "requires": { "asynckit": "^0.4.0", - "combined-stream": "^1.0.5", + "combined-stream": "^1.0.6", "mime-types": "^2.1.12" } }, @@ -722,25 +786,6 @@ "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", "dev": true }, - "fs-extra": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz", - "integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^2.1.0", - "klaw": "^1.0.0" - }, - "dependencies": { - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", - "dev": true - } - } - }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -766,67 +811,68 @@ "dev": true, "requires": { "assert-plus": "^1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - } } }, "glob": { - "version": "3.1.21", - "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz", - "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz", + "integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=", "dev": true, "requires": { - "graceful-fs": "~1.2.0", - "inherits": "1", - "minimatch": "~0.2.11" - }, - "dependencies": { - "inherits": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz", - "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=", - "dev": true - } + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.2", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, - "graceful-fs": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz", - "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=", - "dev": true - }, "grunt": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/grunt/-/grunt-0.4.5.tgz", - "integrity": "sha1-VpN81RlDJK3/bSB2MYMqnWuk5/A=", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.0.4.tgz", + "integrity": "sha512-PYsMOrOC+MsdGEkFVwMaMyc6Ob7pKmq+deg1Sjr+vvMWp35sztfwKE7qoN51V+UEtHsyNuMcGdgMLFkBHvMxHQ==", "dev": true, "requires": { - "async": "~0.1.22", - "coffee-script": "~1.3.3", - "colors": "~0.6.2", - "dateformat": "1.0.2-1.2.3", + "coffeescript": "~1.10.0", + "dateformat": "~1.0.12", "eventemitter2": "~0.4.13", "exit": "~0.1.1", - "findup-sync": "~0.1.2", - "getobject": "~0.1.0", - "glob": "~3.1.21", - "grunt-legacy-log": "~0.1.0", - "grunt-legacy-util": "~0.2.0", - "hooker": "~0.2.3", - "iconv-lite": "~0.2.11", - "js-yaml": "~2.0.5", - "lodash": "~0.9.2", - "minimatch": "~0.2.12", - "nopt": "~1.0.10", - "rimraf": "~2.2.8", - "underscore.string": "~2.2.1", - "which": "~1.0.5" + "findup-sync": "~0.3.0", + "glob": "~7.0.0", + "grunt-cli": "~1.2.0", + "grunt-known-options": "~1.1.0", + "grunt-legacy-log": "~2.0.0", + "grunt-legacy-util": "~1.1.1", + "iconv-lite": "~0.4.13", + "js-yaml": "~3.13.0", + "minimatch": "~3.0.2", + "mkdirp": "~0.5.1", + "nopt": "~3.0.6", + "path-is-absolute": "~1.0.0", + "rimraf": "~2.6.2" + }, + "dependencies": { + "grunt-cli": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.2.0.tgz", + "integrity": "sha1-VisRnrsGndtGSs4oRVAb6Xs1tqg=", + "dev": true, + "requires": { + "findup-sync": "~0.3.0", + "grunt-known-options": "~1.1.0", + "nopt": "~3.0.6", + "resolve": "~1.1.0" + } + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + } + } } }, "grunt-contrib-connect": { @@ -855,22 +901,64 @@ } }, "grunt-contrib-jshint": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/grunt-contrib-jshint/-/grunt-contrib-jshint-0.11.3.tgz", - "integrity": "sha1-gDaBgdzNVRGG5bg4XAEc7iTWQKA=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-jshint/-/grunt-contrib-jshint-2.1.0.tgz", + "integrity": "sha512-65S2/C/6RfjY/umTxfwXXn+wVvaYmykHkHSsW6Q6rhkbv3oudTEgqnFFZvWzWCoHUb+3GMZLbP3oSrNyvshmIQ==", "dev": true, "requires": { + "chalk": "^2.4.2", "hooker": "^0.2.3", - "jshint": "~2.8.0" + "jshint": "~2.10.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "grunt-contrib-qunit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/grunt-contrib-qunit/-/grunt-contrib-qunit-2.0.0.tgz", - "integrity": "sha1-VKUbSyyE/uYsO34AFFySjR7Ct+w=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-qunit/-/grunt-contrib-qunit-3.1.0.tgz", + "integrity": "sha512-mdk8UltH6mxCD63E0hTXMAts42DOi4z4bBBrY7qnuHiShflMF7IueSMYe0zWaZ2dO8mgujh57Zfny2EbigJhRg==", "dev": true, "requires": { - "grunt-lib-phantomjs": "^1.0.0" + "eventemitter2": "^5.0.1", + "p-each-series": "^1.0.0", + "puppeteer": "^1.11.0" + }, + "dependencies": { + "eventemitter2": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-5.0.1.tgz", + "integrity": "sha1-YZegldX7a1folC9v1+qtY6CclFI=", + "dev": true + } } }, "grunt-contrib-uglify": { @@ -885,120 +973,80 @@ "uri-path": "^1.0.0" } }, + "grunt-known-options": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-1.1.1.tgz", + "integrity": "sha512-cHwsLqoighpu7TuYj5RonnEuxGVFnztcUqTqp5rXFGYL4OuPFofwC4Ycg7n9fYwvK6F5WbYgeVOwph9Crs2fsQ==", + "dev": true + }, "grunt-legacy-log": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-0.1.3.tgz", - "integrity": "sha1-7ClCboAwIa9ZAp+H0vnNczWgVTE=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-2.0.0.tgz", + "integrity": "sha512-1m3+5QvDYfR1ltr8hjiaiNjddxGdQWcH0rw1iKKiQnF0+xtgTazirSTGu68RchPyh1OBng1bBUjLmX8q9NpoCw==", "dev": true, "requires": { - "colors": "~0.6.2", - "grunt-legacy-log-utils": "~0.1.1", + "colors": "~1.1.2", + "grunt-legacy-log-utils": "~2.0.0", "hooker": "~0.2.3", - "lodash": "~2.4.1", - "underscore.string": "~2.3.3" - }, - "dependencies": { - "lodash": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz", - "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=", - "dev": true - }, - "underscore.string": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz", - "integrity": "sha1-ccCL9rQosRM/N+ePo6Icgvcymw0=", - "dev": true - } + "lodash": "~4.17.5" } }, "grunt-legacy-log-utils": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-0.1.1.tgz", - "integrity": "sha1-wHBrndkGThFvNvI/5OawSGcsD34=", - "dev": true, - "requires": { - "colors": "~0.6.2", - "lodash": "~2.4.1", - "underscore.string": "~2.3.3" - }, - "dependencies": { - "lodash": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz", - "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=", - "dev": true - }, - "underscore.string": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz", - "integrity": "sha1-ccCL9rQosRM/N+ePo6Icgvcymw0=", - "dev": true - } - } - }, - "grunt-legacy-util": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-0.2.0.tgz", - "integrity": "sha1-kzJIhNv343qf98Am3/RR2UqeVUs=", - "dev": true, - "requires": { - "async": "~0.1.22", - "exit": "~0.1.1", - "getobject": "~0.1.0", - "hooker": "~0.2.3", - "lodash": "~0.9.2", - "underscore.string": "~2.2.1", - "which": "~1.0.5" - } - }, - "grunt-lib-phantomjs": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/grunt-lib-phantomjs/-/grunt-lib-phantomjs-1.1.0.tgz", - "integrity": "sha1-np7c3Z/S3UDgwYHJQ3HVcqpe6tI=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-2.0.1.tgz", + "integrity": "sha512-o7uHyO/J+i2tXG8r2bZNlVk20vlIFJ9IEYyHMCQGfWYru8Jv3wTqKZzvV30YW9rWEjq0eP3cflQ1qWojIe9VFA==", "dev": true, "requires": { - "eventemitter2": "^0.4.9", - "phantomjs-prebuilt": "^2.1.3", - "rimraf": "^2.5.2", - "semver": "^5.1.0", - "temporary": "^0.0.8" + "chalk": "~2.4.1", + "lodash": "~4.17.10" }, "dependencies": { - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "color-convert": "^1.9.0" } }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { - "brace-expansion": "^1.1.7" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, - "rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { - "glob": "^7.0.5" + "has-flag": "^3.0.0" } } } }, + "grunt-legacy-util": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-1.1.1.tgz", + "integrity": "sha512-9zyA29w/fBe6BIfjGENndwoe1Uy31BIXxTH3s8mga0Z5Bz2Sp4UCjkeyv2tI449ymkx3x26B+46FV4fXEddl5A==", + "dev": true, + "requires": { + "async": "~1.5.2", + "exit": "~0.1.1", + "getobject": "~0.1.0", + "hooker": "~0.2.3", + "lodash": "~4.17.10", + "underscore.string": "~3.3.4", + "which": "~1.3.0" + } + }, "gzip-size": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-1.0.0.tgz", @@ -1010,19 +1058,19 @@ } }, "har-schema": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", - "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", "dev": true }, "har-validator": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", - "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", "dev": true, "requires": { - "ajv": "^4.9.1", - "har-schema": "^1.0.5" + "ajv": "^6.5.5", + "har-schema": "^2.0.0" } }, "has-ansi": { @@ -1034,32 +1082,10 @@ "ansi-regex": "^2.0.0" } }, - "hasha": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/hasha/-/hasha-2.2.0.tgz", - "integrity": "sha1-eNfL/B5tZjA/55g3NlmEUXsvbuE=", - "dev": true, - "requires": { - "is-stream": "^1.0.1", - "pinkie-promise": "^2.0.0" - } - }, - "hawk": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", - "dev": true, - "requires": { - "boom": "2.x.x", - "cryptiles": "2.x.x", - "hoek": "2.x.x", - "sntp": "1.x.x" - } - }, - "hoek": { - "version": "2.16.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, "hooker": { @@ -1100,12 +1126,12 @@ } }, "http-signature": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "dev": true, "requires": { - "assert-plus": "^0.2.0", + "assert-plus": "^1.0.0", "jsprim": "^1.2.2", "sshpk": "^1.7.0" } @@ -1116,11 +1142,41 @@ "integrity": "sha512-puSi8M8WNlFJm9Pk4c/Mbz9Gwparuj3gO9/RRO5zv6piQ0FY+9Qywp0PdWshYgsMJSalixFY7eC6oPu0zRxLAQ==", "dev": true }, + "https-proxy-agent": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.2.tgz", + "integrity": "sha512-c8Ndjc9Bkpfx/vCJueCPy0jlP4ccCCSNDp8xwCZzPjKJUm+B+u9WX2x98Qx4n1PiMNTWo3D7KK5ifNV/yJyRzg==", + "dev": true, + "requires": { + "agent-base": "^4.3.0", + "debug": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, "iconv-lite": { - "version": "0.2.11", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.2.11.tgz", - "integrity": "sha1-HOYKOleGSiktEyH/RgnKS7llrcg=", - "dev": true + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } }, "indent-string": { "version": "2.1.0", @@ -1171,12 +1227,6 @@ "number-is-nan": "^1.0.0" } }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", @@ -1208,53 +1258,35 @@ "dev": true }, "js-yaml": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-2.0.5.tgz", - "integrity": "sha1-olrmUJmZ6X3yeMZxnaEb0Gh3Q6g=", + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", "dev": true, "requires": { - "argparse": "~ 0.1.11", - "esprima": "~ 1.0.2" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, "jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true, - "optional": true + "dev": true }, "jshint": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.8.0.tgz", - "integrity": "sha1-HQmjvZE8TK36gb8Y1YK9hb/+DUQ=", + "version": "2.10.2", + "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.10.2.tgz", + "integrity": "sha512-e7KZgCSXMJxznE/4WULzybCMNXNAd/bf5TSrvVEq78Q/K8ZwFpmBqQeDtNiHc3l49nV4E/+YeHU/JZjSUIrLAA==", "dev": true, "requires": { - "cli": "0.6.x", + "cli": "~1.0.0", "console-browserify": "1.1.x", "exit": "0.1.x", "htmlparser2": "3.8.x", - "lodash": "3.7.x", - "minimatch": "2.0.x", + "lodash": "~4.17.11", + "minimatch": "~3.0.2", "shelljs": "0.3.x", "strip-json-comments": "1.0.x" - }, - "dependencies": { - "lodash": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.7.0.tgz", - "integrity": "sha1-Nni9irmVBXwHreg27S7wh9qBHUU=", - "dev": true - }, - "minimatch": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", - "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=", - "dev": true, - "requires": { - "brace-expansion": "^1.0.0" - } - } } }, "jshint-stylish": { @@ -1275,14 +1307,11 @@ "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", "dev": true }, - "json-stable-stringify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", - "dev": true, - "requires": { - "jsonify": "~0.0.0" - } + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true }, "json-stringify-safe": { "version": "5.0.1", @@ -1290,30 +1319,6 @@ "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", "dev": true }, - "jsonfile": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - }, - "dependencies": { - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", - "dev": true, - "optional": true - } - } - }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", - "dev": true - }, "jsprim": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", @@ -1324,38 +1329,6 @@ "extsprintf": "1.3.0", "json-schema": "0.2.3", "verror": "1.10.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - } - } - }, - "kew": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/kew/-/kew-0.7.0.tgz", - "integrity": "sha1-edk9LTM2PW/dKXCzNdkUGtWR15s=", - "dev": true - }, - "klaw": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", - "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.9" - }, - "dependencies": { - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", - "dev": true, - "optional": true - } } }, "load-grunt-tasks": { @@ -1392,9 +1365,9 @@ } }, "lodash": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-0.9.2.tgz", - "integrity": "sha1-jzSZxSRdNG1oLlsNO0B2fgnxqSw=", + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", "dev": true }, "log-symbols": { @@ -1416,12 +1389,6 @@ "signal-exit": "^3.0.0" } }, - "lru-cache": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", - "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=", - "dev": true - }, "map-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", @@ -1488,13 +1455,12 @@ } }, "minimatch": { - "version": "0.2.14", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", - "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "lru-cache": "2", - "sigmund": "~1.0.0" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -1504,25 +1470,33 @@ "dev": true }, "mkdirp": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz", - "integrity": "sha1-HXMHam35hs2TROFecfzAWkyavxI=", + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "dev": true, "requires": { "minimist": "0.0.8" } }, "morgan": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.9.0.tgz", - "integrity": "sha1-0B+mxlhZt2/PMbPLU6OCGjEdgFE=", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.9.1.tgz", + "integrity": "sha512-HQStPIV4y3afTiCYVxirakhlCfGkI161c76kKFca7Fk1JusM//Qeo1ej2XaMniiNeaZklMVrh3vTtIzpzwbpmA==", "dev": true, "requires": { "basic-auth": "~2.0.0", "debug": "2.6.9", - "depd": "~1.1.1", + "depd": "~1.1.2", "on-finished": "~2.3.0", "on-headers": "~1.0.1" + }, + "dependencies": { + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true + } } }, "ms": { @@ -1561,9 +1535,9 @@ "dev": true }, "nopt": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", "dev": true, "requires": { "abbrev": "1" @@ -1588,9 +1562,9 @@ "dev": true }, "oauth-sign": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", "dev": true }, "object-assign": { @@ -1609,9 +1583,9 @@ } }, "on-headers": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz", - "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", "dev": true }, "once": { @@ -1633,10 +1607,19 @@ "pinkie-promise": "^2.0.0" } }, - "package": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/package/-/package-1.0.1.tgz", - "integrity": "sha1-0lofmeJQbcsn1nBLg9yooxLk7cw=", + "p-each-series": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-1.0.0.tgz", + "integrity": "sha1-kw89Et0fUOdDRFeiLNbwSsatf3E=", + "dev": true, + "requires": { + "p-reduce": "^1.0.0" + } + }, + "p-reduce": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz", + "integrity": "sha1-GMKw3ZNqRpClKfgjH1ig/bakffo=", "dev": true }, "pako": { @@ -1707,39 +1690,11 @@ "dev": true }, "performance-now": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", - "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", "dev": true }, - "phantomjs-prebuilt": { - "version": "2.1.16", - "resolved": "https://registry.npmjs.org/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.16.tgz", - "integrity": "sha1-79ISpKOWbTZHaE6ouniFSb4q7+8=", - "dev": true, - "requires": { - "es6-promise": "^4.0.3", - "extract-zip": "^1.6.5", - "fs-extra": "^1.0.0", - "hasha": "^2.2.0", - "kew": "^0.7.0", - "progress": "^1.1.8", - "request": "^2.81.0", - "request-progress": "^2.0.1", - "which": "^1.2.10" - }, - "dependencies": { - "which": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", - "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, "pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", @@ -1821,21 +1776,72 @@ "dev": true }, "progress": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz", - "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true + }, + "proxy-from-env": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", + "integrity": "sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4=", + "dev": true + }, + "psl": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.2.0.tgz", + "integrity": "sha512-GEn74ZffufCmkDDLNcl3uuyF/aSD6exEyh1v/ZSdAomB82t6G9hzJVRx0jBmLDW+VfZqks3aScmMw9DszwUalA==", "dev": true }, "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "dev": true }, + "puppeteer": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-1.19.0.tgz", + "integrity": "sha512-2S6E6ygpoqcECaagDbBopoSOPDv0pAZvTbnBgUY+6hq0/XDFDOLEMNlHF/SKJlzcaZ9ckiKjKDuueWI3FN/WXw==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "extract-zip": "^1.6.6", + "https-proxy-agent": "^2.2.1", + "mime": "^2.0.3", + "progress": "^2.0.1", + "proxy-from-env": "^1.0.0", + "rimraf": "^2.6.1", + "ws": "^6.1.0" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "mime": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", + "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, "qs": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", - "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", "dev": true }, "range-parser": { @@ -1897,43 +1903,61 @@ } }, "request": { - "version": "2.81.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", - "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", + "version": "2.88.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", "dev": true, "requires": { - "aws-sign2": "~0.6.0", - "aws4": "^1.2.1", + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", "caseless": "~0.12.0", - "combined-stream": "~1.0.5", - "extend": "~3.0.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", "forever-agent": "~0.6.1", - "form-data": "~2.1.1", - "har-validator": "~4.2.1", - "hawk": "~3.1.3", - "http-signature": "~1.1.0", + "form-data": "~2.3.2", + "har-validator": "~5.1.0", + "http-signature": "~1.2.0", "is-typedarray": "~1.0.0", "isstream": "~0.1.2", "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.7", - "oauth-sign": "~0.8.1", - "performance-now": "^0.2.0", - "qs": "~6.4.0", - "safe-buffer": "^5.0.1", - "stringstream": "~0.0.4", - "tough-cookie": "~2.3.0", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", "tunnel-agent": "^0.6.0", - "uuid": "^3.0.0" + "uuid": "^3.3.2" + }, + "dependencies": { + "mime-db": { + "version": "1.40.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", + "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==", + "dev": true + }, + "mime-types": { + "version": "2.1.24", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", + "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", + "dev": true, + "requires": { + "mime-db": "1.40.0" + } + }, + "safe-buffer": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", + "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==", + "dev": true + } } }, - "request-progress": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-2.0.1.tgz", - "integrity": "sha1-XTa7V5YcZzqlt4jbyBQf3yO0Tgg=", - "dev": true, - "requires": { - "throttleit": "^1.0.0" - } + "resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", + "dev": true }, "resolve-from": { "version": "2.0.0", @@ -1951,10 +1975,29 @@ } }, "rimraf": { - "version": "2.2.8", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz", - "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=", - "dev": true + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + }, + "dependencies": { + "glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } }, "safe-buffer": { "version": "5.1.1", @@ -1962,6 +2005,12 @@ "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", "dev": true }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, "semver": { "version": "5.4.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", @@ -2028,27 +2077,12 @@ "integrity": "sha1-NZbmMHp4FUT1kfN9phg2DzHbV7E=", "dev": true }, - "sigmund": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", - "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", - "dev": true - }, "signal-exit": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "dev": true }, - "sntp": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", - "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", - "dev": true, - "requires": { - "hoek": "2.x.x" - } - }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -2076,10 +2110,16 @@ "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=", "dev": true }, + "sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", + "dev": true + }, "sshpk": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", - "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", "dev": true, "requires": { "asn1": "~0.2.3", @@ -2089,15 +2129,8 @@ "ecc-jsbn": "~0.1.1", "getpass": "^0.1.1", "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", "tweetnacl": "~0.14.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - } } }, "statuses": { @@ -2121,12 +2154,6 @@ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", "dev": true }, - "stringstream": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", - "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", - "dev": true - }, "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", @@ -2166,27 +2193,12 @@ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", "dev": true }, - "temporary": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/temporary/-/temporary-0.0.8.tgz", - "integrity": "sha1-oYqYHSi6jKNgJ/s8MFOMPst0CsA=", - "dev": true, - "requires": { - "package": ">= 1.0.0 < 1.2.0" - } - }, "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", "dev": true }, - "throttleit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz", - "integrity": "sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=", - "dev": true - }, "time-grunt": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/time-grunt/-/time-grunt-1.4.0.tgz", @@ -2209,12 +2221,21 @@ "dev": true }, "tough-cookie": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz", - "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=", + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", + "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", "dev": true, "requires": { + "psl": "^1.1.24", "punycode": "^1.4.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + } } }, "trim-newlines": { @@ -2236,8 +2257,7 @@ "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true, - "optional": true + "dev": true }, "typedarray": { "version": "0.0.6", @@ -2255,17 +2275,15 @@ "source-map": "~0.6.1" } }, - "underscore": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz", - "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=", - "dev": true - }, "underscore.string": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.2.1.tgz", - "integrity": "sha1-18D6KvXVoaZ/QlPa7pgTLnM/Dxk=", - "dev": true + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.5.tgz", + "integrity": "sha512-g+dpmgn+XBneLmXXo+sGlW5xQEt4ErkS3mgeN2GFbremYeMBSJKr9Wf2KJplQVaiPY/f7FN6atosWYNm9ovrYg==", + "dev": true, + "requires": { + "sprintf-js": "^1.0.3", + "util-deprecate": "^1.0.2" + } }, "unpipe": { "version": "1.0.0", @@ -2273,6 +2291,15 @@ "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", "dev": true }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, "uri-path": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/uri-path/-/uri-path-1.0.0.tgz", @@ -2292,9 +2319,9 @@ "dev": true }, "uuid": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", - "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", "dev": true }, "validate-npm-package-license": { @@ -2316,21 +2343,16 @@ "assert-plus": "^1.0.0", "core-util-is": "1.0.2", "extsprintf": "^1.2.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - } } }, "which": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/which/-/which-1.0.9.tgz", - "integrity": "sha1-RgwdoPgQED0DIam2M6+eV15kSG8=", - "dev": true + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } }, "wrappy": { "version": "1.0.2", @@ -2338,6 +2360,15 @@ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, + "ws": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", + "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0" + } + }, "yauzl": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz", diff --git a/package.json b/package.json index fb64af16..4e4c6d78 100644 --- a/package.json +++ b/package.json @@ -21,14 +21,14 @@ ], "license": "MIT", "devDependencies": { - "grunt": "~0.4.1", + "grunt": "^1.0.4", "grunt-contrib-connect": "*", - "grunt-contrib-jshint": "^0.11.0", - "grunt-contrib-qunit": "*", + "grunt-contrib-jshint": "^2.1.0", + "grunt-contrib-qunit": "^3.1.0", "grunt-contrib-uglify": "*", "jshint-stylish": "^1.0.0", "load-grunt-tasks": "^3.1.0", - "time-grunt": "^1.0.0", - "request": "2.81.0" + "request": "2.88.0", + "time-grunt": "^1.0.0" } } From a649f165b7efaae0bc4f56bd8c78cd911e93b645 Mon Sep 17 00:00:00 2001 From: Martijn Cuppens Date: Tue, 24 Mar 2020 15:16:38 +0100 Subject: [PATCH 42/42] Remove asterisk It's 100% redundant --- src/jquery.mask.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/jquery.mask.js b/src/jquery.mask.js index 7e0216cb..54f171c9 100755 --- a/src/jquery.mask.js +++ b/src/jquery.mask.js @@ -570,7 +570,7 @@ var globals = { maskElements: 'input,td,span,div', - dataMaskAttr: '*[data-mask]', + dataMaskAttr: '[data-mask]', dataMask: true, watchInterval: 300, watchInputs: true,