diff --git a/.gitignore b/.gitignore
index 9e436b36f..fb2cf11a7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,5 +5,7 @@ demo
.idea
.DS_Store
release.txt
+.idea
+*.log
fixtures/bower.json
-fixtures/package.json
\ No newline at end of file
+fixtures/package.json
diff --git a/CHANGELOG.md b/CHANGELOG.md
index ced95fa81..7c0e00b9c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,585 +1,62 @@
-
-## v2.1.1 (2015-07-29)
+Check http://github.com/DaftMonk/generator-angular-fullstack for the upstream changes
+
+### 0.2.23 (2018-02-02)
+* Adds missing dependency for reports
-#### Bug Fixes
+
+### 0.2.22 (2017-12-11)
+* Gets rid of deprecation message
-* **app:** use 0.0.0.0 for default IP ([2cd1c24d](http://github.com/DaftMonk/generator-angular-fullstack/commit/2cd1c24d2224e46fa68f8da834e86ac3ed80de8e))
+
+### 0.2.21 (2017-12-10)
+* Support for Node 8
-
-## v2.1.0 (2015-07-15)
+
+### 0.2.20 (2017-12-09)
+
+### 0.2.19 (2017-12-09)
-#### Bug Fixes
+
+### 0.2.18 (2017-12-08)
-* **app:** missing event.preventDefault ([c90d7621](http://github.com/DaftMonk/generator-angular-fullstack/commit/c90d7621b8f17f6e74f8a59f02fd78a8fcf628aa))
-* **demo:** include bootstrap in demo ([19e21331](http://github.com/DaftMonk/generator-angular-fullstack/commit/19e213319ecdf27041948133fe4c9642184133d8))
-* **express:** support new options of updated connect-mongo ([727d6616](http://github.com/DaftMonk/generator-angular-fullstack/commit/727d661642441d5ee76e4fba9ebcbba134e43058))
-* **jshint:** Removed 'regexp' from server and client jshintrc (I couldn't find it in the docs ([e02f0940](http://github.com/DaftMonk/generator-angular-fullstack/commit/e02f09405de2423d7be92e5ca0f9be740becb693))
-* **travis:**
- * Remove unicode stuff from file creation test expectations, and add nodejs 0.12 t ([bf9a9737](http://github.com/DaftMonk/generator-angular-fullstack/commit/bf9a9737721d1ea72f3f7b9689d6781e78b4c606))
- * Add nodejs 12 to travis.yml ([acecde9d](http://github.com/DaftMonk/generator-angular-fullstack/commit/acecde9d0e02b579d4b0a2a33d7c0f24067258ec))
+
+### 0.2.17 (2017-02-17)
+
+### 0.2.16 (2017-02-06)
-#### Features
+
+### 0.2.15 (2016-05-18)
-* **app:**
- * additional app generator option for ES6 preprocessing using babel ([cbb06a48](http://github.com/DaftMonk/generator-angular-fullstack/commit/cbb06a48e28c594a53f61e49857cbb711bd74ce9))
- * additional app generator option for ES6 preprocessing using babel ([bc03aba9](http://github.com/DaftMonk/generator-angular-fullstack/commit/bc03aba9ee82812f29f4ec9f86daf3b8d1c531b8))
- * add mongodb error handling to quit app if unable to connect with mongodb server ([31bee73c](http://github.com/DaftMonk/generator-angular-fullstack/commit/31bee73c1085c3a3f3c8e4e6f1f45db28fa9f94b))
-* **build:** add gitter webhook for travis ([6b88efdf](http://github.com/DaftMonk/generator-angular-fullstack/commit/6b88efdfb1d6b3b2dcbf47e0517bfc5117247d12))
-* **gen:** Remove global jQuery dependency ([a9230ca2](http://github.com/DaftMonk/generator-angular-fullstack/commit/a9230ca2ba1b2727abdc466a11096ec513fd7085))
-* **readme:** add david-dm badge & move badges to new line ([f8f32f4f](http://github.com/DaftMonk/generator-angular-fullstack/commit/f8f32f4f67938a5f7416e2a07d7b24d71a12585f))
+
+### v0.2.13 (2015-12-30) (upstream - v2.1.1 e9d3a3e34268519f6992f285112f0edc8284dbb1)
+* Added blueimp overrides in _bower.json
-
-### v2.0.13 (2014-08-29)
+
+### v0.2.6 (2015-10-15) (upstream - v2.1.1 e9d3a3e34268519f6992f285112f0edc8284dbb1)
+
+### v0.2.4 (2015-03-13) (upstream - v2.0.13 0994fcba8859e7b291f4de1ee45c9b5cdde3a4d1)
-#### Bug Fixes
-
-* **gen:**
- * use bool for bootstrap filters ([a5decbc3](http://github.com/DaftMonk/generator-angular-fullstack/commit/a5decbc36e933f94c69d9e9bb58bd8e07148c34d), closes [#496](http://github.com/DaftMonk/generator-angular-fullstack/issues/496))
- * fix build when not selecting socket.io ([fdf063c6](http://github.com/DaftMonk/generator-angular-fullstack/commit/fdf063c6cc2ec4eeef252f13b2e0d301931fa83c))
-
-
-### v2.0.12 (2014-08-25)
-
-#### Bug Fixes
-
-* revert multiple strategies per account, which shouldn't go in a patch release
-
-
-### v2.0.11 (2014-08-25)
-
-
-#### Bug Fixes
-
-* **app:** Use parentheses to fix string concat in config ([c6a50ce7](http://github.com/DaftMonk/generator-angular-fullstack/commit/c6a50ce791ab633a17654ce9b0090007d7152463), closes [#466](http://github.com/DaftMonk/generator-angular-fullstack/issues/466))
- * improve jshint usage ([35fcf490](http://github.com/DaftMonk/generator-angular-fullstack/commit/35fcf4902dbbdab2ca6b394ab87ef8e3cc3d052b), closes [#463](http://github.com/DaftMonk/generator-angular-fullstack/issues/463), [#486](http://github.com/DaftMonk/generator-angular-fullstack/issues/486))
-* **gen:** use more restrictive version range for ng-component ([19698973](http://github.com/DaftMonk/generator-angular-fullstack/commit/196989730c8922fa5e1dc9caa45eb85052535e30))
-
-
-#### Features
-
-* **socket.io:** build socket.io into vendor.js ([06f2e46e](http://github.com/DaftMonk/generator-angular-fullstack/commit/06f2e46ef382b5af1691f34b6cf504f1e5640b86))
-* **docs:** Inform users/developers of the `canary` branch ([74693623](http://github.com/DaftMonk/generator-angular-fullstack/commit/74693623eb23c9399495a3baff7e3479a1d9f3ba))
-* **gen:** make generator tests faster, and easier to run ([84acb744](http://github.com/DaftMonk/generator-angular-fullstack/commit/84acb7448ccc7c55b72bdd19bfae50c33d527296))
-* **app:** add additional node version to travis.yml ([e4f00b08](http://github.com/DaftMonk/generator-angular-fullstack/commit/e4f00b083a880713ca563e3447b9fb3f56a54ebc))
-* **uibootstrap:** add basic modal service and template when using uibootstrap ([7c14bed4](http://github.com/DaftMonk/generator-angular-fullstack/commit/7c14bed4873b92124bcbe422fed918836b8f5df5))
-
-
-### v2.0.10 (2014-08-16)
-
-
-#### Bug Fixes
-
-* **server:** undefined domain env variable causing issues ([cb683dde](http://github.com/DaftMonk/generator-angular-fullstack/commit/cb683dde6814959328a58267215ce477aa723e35))
-
-
-### v2.0.9 (2014-08-15)
-
-
-#### Bug Fixes
-
-* **app:**
- * add .idea folder to gitignore ([2e1f1182](http://github.com/DaftMonk/generator-angular-fullstack/commit/2e1f1182684594300ac5ca85ffab175bfcafd3ec))
- * Missing user response code ([c1766604](http://github.com/DaftMonk/generator-angular-fullstack/commit/c1766604d7ae7ab1eb8713f37285d13341dc8ae1))
- * use `''` instead `null` as URL to open ioSocket ([0f0d0fdc](http://github.com/DaftMonk/generator-angular-fullstack/commit/0f0d0fdce38d42f04f71d9e1174400adfb699061))
- * save the version of the generator that was used ([2b76b17b](http://github.com/DaftMonk/generator-angular-fullstack/commit/2b76b17bb5fa1980b449498beec87ab58ceee012))
-* **gruntfile:** incorrect path to index.html for cdnify ([0ad646cb](http://github.com/DaftMonk/generator-angular-fullstack/commit/0ad646cbd48dbb2f65fc00b930a9f243174611be))
-* **openshift:** fix issues with openshift deployment ([ace07238](http://github.com/DaftMonk/generator-angular-fullstack/commit/ace07238e3299d6002337ba12f7862ce84beafd8))
-
-
-#### Features
-
-* **gen:** add automatic demo releases with grunt task ([44852233](http://github.com/DaftMonk/generator-angular-fullstack/commit/44852233fcf28d5ff8681fcabc3bfb4130778a22))
-* **gruntfile:** add grunt buildcontrol tasks to app, for easier deployment ([036478df](http://github.com/DaftMonk/generator-angular-fullstack/commit/036478dfd7067d38ab19ca86c0c5196678412799))
-* **heroku:** provide prompt to set the deployment region ([13cd5e7d](http://github.com/DaftMonk/generator-angular-fullstack/commit/13cd5e7d42f2845268f38ba19e0d253ae675c594))
-* **server:** add sample env config file that can be tracked by git ([c9f80bcd](http://github.com/DaftMonk/generator-angular-fullstack/commit/c9f80bcd67d6e3eef2c78ccbceff78f763ae88d1))
-
-
-### v2.0.8 (2014-07-31)
-
-
-#### Bug Fixes
-
-* **coffee:** update socket service to match javascript version ([c27cefe2](http://github.com/DaftMonk/generator-angular-fullstack/commit/c27cefe24d8ec64d905f908c66a56bf602303dce))
-* **gen:** Fixed missing `oauth` property in `.yo-rc.json` after 2.0.5 update ([11d324b9](http://github.com/DaftMonk/generator-angular-fullstack/commit/11d324b95992b68bd19f402401e98f5936cdb343))
-* **travis:** install sass gem if sass is enabled ([ceeac27b](http://github.com/DaftMonk/generator-angular-fullstack/commit/ceeac27b8f912aa6dec2caf3bf20dd7551f2d754))
-* **twitter:** revert mongoose connection change ([8675a002](http://github.com/DaftMonk/generator-angular-fullstack/commit/8675a002e301957569374fdcad87aab0bff6b3b4))
-
-
-#### Features
-
-* **user-management:** use the User $resource to populate users for the admin page ([708f0729](http://github.com/DaftMonk/generator-angular-fullstack/commit/708f07290d98d6bd73723f9db49cce7758c3d12b))
-
-
-### v2.0.7 (2014-07-27)
-
-
-#### Bug Fixes
-
-* **gruntfile:** grunt tasks should run if no local config exists ([422d6bca](http://github.com/DaftMonk/generator-angular-fullstack/commit/422d6bca07283057b0fa275dba0de447c9f4f167))
-* **server:** fix setting TTL index on collection : sessions error ([0581ed09](http://github.com/DaftMonk/generator-angular-fullstack/commit/0581ed094b2c6141ab9e0c016eda22aa49e1d075))
-
-
-### v2.0.6 (2014-07-27)
-
-
-#### Bug Fixes
-
-* **app:**
- * `things` made a little bit more responsive ([58aa7a48](http://github.com/DaftMonk/generator-angular-fullstack/commit/58aa7a489ae28c22be59b3a61db027ccf2f1ae46))
-* **dependencies:** change ngmin to ng-annotate ([dd023fa5](http://github.com/DaftMonk/generator-angular-fullstack/commit/dd023fa5fd90b8b541b8cc60c87186ee619e4844))
-* **bootstrap:** removed styles breaking responsiveness for high-res screens ([053fedb8](http://github.com/DaftMonk/generator-angular-fullstack/commit/053fedb89f64294a55538ad9b806b2d7de4d1c7f))
-* **socketio:** fallback for servers where `socket.handshake.address` is not provided ([f6a19348](http://github.com/DaftMonk/generator-angular-fullstack/commit/f6a19348ad404aa72c31eef8dc84aac8db0e904a))
-* **stylus:** remove bootstrap css import in stylus when bootstrap is not selected ([f7c3d0ad](http://github.com/DaftMonk/generator-angular-fullstack/commit/f7c3d0ad41da5f0072c2cf64ff5c9a894052d194), closes [#368](http://github.com/DaftMonk/generator-angular-fullstack/issues/368))
-
-
-#### Features
-
-* **oauth:** remove code according to user prompts ([316bd9dd](http://github.com/DaftMonk/generator-angular-fullstack/commit/316bd9dd3632622b0fb434cacfc4150f01d18e4c))
-
-
-### v2.0.5 (2014-07-17)
-
-#### Bug Fixes
-
-* **account:** add authentication requirement for settings view ([9105c0fd](http://github.com/DaftMonk/generator-angular-fullstack/commit/9105c0fdbabdbde68fb6cf0fe0d6993ead6e7095), closes [#327](http://github.com/DaftMonk/generator-angular-fullstack/issues/327))
-* **app:**
- * use correct path for font awesome and glyphicons ([1917ba31](http://github.com/DaftMonk/generator-angular-fullstack/commit/1917ba31264fc90bea0fce36b8d144f897e8bf08))
- * wait for currentUser to resolve before checking if logged in on route changes ([6d6090d9](http://github.com/DaftMonk/generator-angular-fullstack/commit/6d6090d9c4dcd5d8a1f6ecb2cf5dc0bb4c8598fe))
- * bootstrap glyphicons not correctly linked on grunt build ([53d193d0](http://github.com/DaftMonk/generator-angular-fullstack/commit/53d193d011c7c1ea8c9477e8f17ad56cc4214362))
-* **dependencies:** include certain dependencies only when answering yes to their respective prompts ([040c57de](http://github.com/DaftMonk/generator-angular-fullstack/commit/040c57de8689f2e0fc35410d0b6935363aaa8458))
-* **server:**
- * fix seeding of db in test mode causing tests to randomly fail ([05f7f433](http://github.com/DaftMonk/generator-angular-fullstack/commit/05f7f43372bc3bd54bead811952b775adeec1f05))
- * make user tests run more consistently ([addb5061](http://github.com/DaftMonk/generator-angular-fullstack/commit/addb5061f62696c7a0078a8d2c7443d428e69376))
- * warnings that express was using deprecated features ([8dc2f1e4](http://github.com/DaftMonk/generator-angular-fullstack/commit/8dc2f1e48503c27cbd2aac3c455adac7781a6539))
- * missing `res` param for handleError ([eb7d50c8](http://github.com/DaftMonk/generator-angular-fullstack/commit/eb7d50c8d27820a6b26caf2a1aaa0e4fa8eee367))
-
-#### Features
-
-* **app:**
- * added oath buttons to signup page ([a408f58e](http://github.com/DaftMonk/generator-angular-fullstack/commit/a408f58edb923cd14bf7c7b3411b874dce5f0724))
- * upgrade socket.io to use v1.0.6
-* **gen:**
- * add option for Stylus as a preprocessor ([1b90c448](http://github.com/DaftMonk/generator-angular-fullstack/commit/1b90c448fbf374287fe07f782f9788dfb9a23613))
- * make bootstrap and bootstrap ui optional ([f50d0942](http://github.com/DaftMonk/generator-angular-fullstack/commit/f50d094226fdbf6a7e65ba3783a26efc8544ba08))
-
-
-### v2.0.4 (2014-07-08)
-
-
-#### Bug Fixes
-
-* **app:** fix dependency injection minsafe problem in auth service coffeescript. ([03742a80](http://github.com/DaftMonk/generator-angular-fullstack/commit/03742a8000f19efdf14791ff1aae52a90e86c149))
-* **gen:** heroku and openshift generators requiring .yo-rc file to work ([88ebfc8c](http://github.com/DaftMonk/generator-angular-fullstack/commit/88ebfc8c835ac6ec04b6d42fcf9357cfb0bcc47d))
-
-
-### v2.0.3 (2014-07-04)
-
-
-#### Bug Fixes
-
-* **server:** only enable sessions if twitter oauth was selected ([bcd00dc0](http://github.com/DaftMonk/generator-angular-fullstack/commit/bcd00dc02d270486adafe6dbf973a4ec25499a5e))
-
-
-### v2.0.2 (2014-07-02)
-
-#### Bug Fixes
-
-* **gen:endpoint**
- * fix endpoint spec not properly adjusting to users route url
- * fix some valid route urls causing failing tests
-
-
-## v2.0.0 (2014-07-02)
-
-#### Features
-
-* **app:**
- * Follow googles AngularJS project recommendations to make a very modular app structure.
- * New look for generated app
- * Add basic crud interface to app
- * Support for UI Router
- * Support for LESS
- * Built in support for protractor e2e tests
- * Add angular-bootstrap and lodash to default app
- * More consistent and understandable naming conventions for files
-* **server:**
- * Modular project structure for express server
- * Support for social auths with facebook/twitter/google
- * Role based authentication
- * Replace session based authentication with JWT authentication
- * Optional integration with socket.io
- * Added config file, ignored by git, for setting local environment variables, api keys, secrets.. etc.
-* **gruntfile:**
- * Optimizations to the gruntfile
- * Automate injection of new scripts into index file with grunt
- * Use ng-templates to concatenate all the html/jade views into the javascript payload
-* **gen:**
- * Abstract client-side generators into generator-ng-component, use new composition feature of yeoman to keep them available in the generator.
- * Add useful tests to the generator, start using travis CI
- * use .yo-rc file to keep track of generated configurations
- * Add endpoint generator to angular-fullstack, generates model / route / controller / test / socket updates
-
-#### Breaking Changes
- * New project structure
- * Deprecated value and constant sub generators
- * Sub-generators generate components in a single directory and don't inject themselves into the index file (this is done by a grunt task now)
-
-
-### v1.4.3 (2014-05-25)
-
-
-#### Bug Fixes
-
-* **config:** fix issue where `config.ip` is undefined in non-production environments ([087f5bca](http://github.com/DaftMonk/generator-angular-fullstack/commit/087f5bca1610e8250de50ce11a16e879908e3177))
-* **package:** update connect-mongo to correct version
-* **app:** add require attribute to login.html inputs so it validates on client side
-* **gen:** use lowercase filenames for scripts
-
-
-### v1.4.2 (2014-04-16)
-
-
-#### Bug Fixes
-
-* **gen:** typo in heroku generator was preventing it from working on unix based systems ([9d3b5738](http://github.com/DaftMonk/generator-angular-fullstack/commit/9d3b5738528497f74d37d22c304b0d46cd5007fa))
-
-
-### v1.4.1 (2014-04-15)
-
-
-#### Bug Fixes
-
-* **server:**
- * grunt test was incorrectly using dev config, fixes #179 ([62d8492f](http://github.com/DaftMonk/generator-angular-fullstack/commit/62d8492fd9fcfde653bab0f65b46f9961b8016bc))
- * emails are no longer case sensitive ([dafd8db1](https://github.com/DaftMonk/generator-angular-fullstack/commit/dafd8db1f529b86322ef60f65897761cef92841a))
-
-
-## v1.4.0 (2014-04-13)
-
-#### Features
-
-* **server:** updated Express to v4.x
-* **app:** matching angular dependencies to the latest verison, now that bower excludes pre-releases ([94c0c636](http://github.com/DaftMonk/generator-angular-fullstack/commit/94c0c63691976eaf7136c33365f611b465ba7f61))
-* **gen:**
- * Added `angular-fullstack:openshift` generator, for deploying your app to OpenShift
- * Added `angular-fullstack:heroku` generator, which improves upon the former `:deploy` generator for deploying to Heroku
-
-#### Bug Fixes
-
-* **server:** fixed possible DB flushing when mochaTest is called by watch, first call 'env:test' task before 'mochaTest'
-([2f0320fe](http://github.com/DaftMonk/generator-angular-fullstack/commit/2f0320feb89f3a5f1757f8adcae4b8c0d5599c95))
-
-#### Breaking Changes
-
-* The `angular-fullstack:deploy` generator is deprecated. Instead use `angular-fullstack:heroku` or `angular-fullstack:openshift`.
-
-
-### v1.3.3 (2014-03-29)
-
-#### Features
-
-* **server:** enable response compression ([1547ac6f](http://github.com/DaftMonk/generator-angular-fullstack/commit/1547ac6f794ce06d2a9329531bec5dae73441f04))
-
-#### Bug Fixes
-
-* **config:** change default port in config to 9000 ([480515f6](http://github.com/DaftMonk/generator-angular-fullstack/commit/480515f6cc8d7600003a570f9b1f0530fd178ac5))
-* **gruntfile:**
- * update gruntfile to use port from config ([c8aa2d5f](http://github.com/DaftMonk/generator-angular-fullstack/commit/c8aa2d5feda90a2c1e7528165b1bd22e9eab5e77))
- * workaround imagemin bug by disabling caching ([3e435fa7](http://github.com/DaftMonk/generator-angular-fullstack/commit/3e435fa74b1574223f129867621a9a800cea2af9))
-* **package:** update required generator-karma dependency to the correct version ([0c0e8a52](http://github.com/DaftMonk/generator-angular-fullstack/commit/0c0e8a522ffa94ea0bd9c0df9994c23340a957f7))
-
-
-### v1.3.2 (2014-03-01)
-
-
-#### Bug Fixes
-
-* **package.json:** updated dependencies that were causing issues with npm install ([1874cdf1](http://github.com/DaftMonk/generator-angular-fullstack/commit/1874cdf16c9d1670d0492db8db1be77e43222de4))
-
-
-### v1.3.1 (2014-03-01)
+* Demonstrates authentication
+* Slight improvements to styling
+
+### v0.2.3 (2015-01-19) (upstream - v2.0.13)
-#### Bug Fixes
+* Make tests work with ui-select2
-* **gruntfile:** configured jshint for client tests ([4ee92b9a](http://github.com/DaftMonk/generator-angular-fullstack/commit/4ee92b9a4c466982b171bc777c3ba6ba5a477633))
+
+### v0.2.1 (2015-01-15) (upstream - v2.0.13)
-
-## v1.3.0 (2014-02-27)
-
-
-#### Bug Fixes
-
-* **grunt:**
- * fixed clean:dist task ([e390cac0](http://github.com/DaftMonk/generator-angular-fullstack/commit/e390cac015974f691ab51261128b4215e878b25f))
-* **server:**
- * config all and env specific are now correctly deep merged ([31039872](http://github.com/DaftMonk/generator-angular-fullstack/commit/31039872caec541847cb80da8edf3c7ffd83ef48))
- * fix configuration so that (express) errorHandler works ([0116cb35](http://github.com/DaftMonk/generator-angular-fullstack/commit/0116cb35524afb2ee5b8a599f6bc76dbe04febc5))
-
-
-#### Features
-
-* **app:**
- * added `grunt serve:debug` task that launches the server with a node-inspector tab ([de3e7a8b](http://github.com/DaftMonk/generator-angular-fullstack/commit/de3e7a8b7e63c54090c8fbc2f51998965b2e274f))
- * update to bootstrap sass official ([3799c13c](http://github.com/DaftMonk/generator-angular-fullstack/commit/3799c13c3b65fcc2abfbacb5292b192543558d52))
-* **server:**
- * added tests for user model ([4c894b65](http://github.com/DaftMonk/generator-angular-fullstack/commit/4c894b65ec6a6d8de2b7290521f25b134ac30f40))
- * added mocha test configuration ([458a2f6a](http://github.com/DaftMonk/generator-angular-fullstack/commit/458a2f6a28485a8791815f8795e726af3c308efe))
-
-
-### v1.2.7 (2014-02-15)
-
-
-#### Features
-
-* **server:** undefined api routes now return a 404 ([ec829fe2](http://github.com/DaftMonk/generator-angular-fullstack/commit/ec829fe2221dbe001c12983c95576c20f0e63a30))
-
-
-### v1.2.6 (2014-02-14)
-
-
-#### Bug Fixes
-
-* **app:**
- * redirect to login only on 401s ([64b7bace](http://github.com/DaftMonk/generator-angular-fullstack/commit/64b7bacea98e59cb72a44627b57ca331d9bf051d))
- * fixed incorrect css path for usemin in gruntfile ([46fca240](http://github.com/DaftMonk/generator-angular-fullstack/commit/46fca240009d2c61aa07b5cef2275e4095033a10))
-* **grunt:** include partial sub-directories in htmlmin ([77564ba3](http://github.com/DaftMonk/generator-angular-fullstack/commit/77564ba3b59baa52546f3b1170ee9cad16b7d413))
-* **server:**
- * fixed connect-mongo error ([c12db5b3](http://github.com/DaftMonk/generator-angular-fullstack/commit/c12db5b3e9b7475ba4581f23f9c20e4ce701b855))
- * livereload now waits for server to finish restarting ([71d63f0a](http://github.com/DaftMonk/generator-angular-fullstack/commit/71d63f0a704a2773cee368b1af24c188e04d0ae3))
- * exposed configured passport from passport module ([772133de](http://github.com/DaftMonk/generator-angular-fullstack/commit/772133de1f86c8a6a8c93179673deb4359e30c94))
- * only require models if they are coffescript or js files ([ce2ee236](http://github.com/DaftMonk/generator-angular-fullstack/commit/ce2ee2369ff0c4aedc1a13d04359d918ea1b3d8d))
-
-
-#### Features
-
-* **deps:** upgrade angular to 1.2.11, and jquery to 1.11.0 ([cd5c3030](http://github.com/DaftMonk/generator-angular-fullstack/commit/cd5c303023f57de423ca69067b1105db17d066e3))
-* **app:** switched sass-bootstrap to offical bootstrap-sass ([024fee88](http://github.com/DaftMonk/generator-angular-fullstack/commit/024fee8831c4a32962283878b6b9dbd444874ec0))
-
-
-### v1.2.5 (2014-01-27)
-
-
-#### Bug Fixes
-
-* **app:**
- * fixed coffee service so it's min-safe ([c18c9da4](http://github.com/DaftMonk/generator-angular-fullstack/commit/c18c9da4475e8e48507746f441186edf9fde18b1))
- * fixed bootstrap css being imported rather than compass bootstrap ([f2739987](http://github.com/DaftMonk/generator-angular-fullstack/commit/f27399879e84daf7230d9cd953c19e93bcd22746))
-* **server:**
- * replaced deprecated bodyparser ([788fda04](http://github.com/DaftMonk/generator-angular-fullstack/commit/788fda04ebd1ed7d24190aacda44c252fd1ae002))
- * updated node version dependency ([b19a0997](http://github.com/DaftMonk/generator-angular-fullstack/commit/b19a0997c6db08a47a56069621756129e07c5915))
-* **gen:** updated generator dependencies ([115008d3](http://github.com/DaftMonk/generator-angular-fullstack/commit/115008d378a9fd9cc47561f451cd9153f4f2c566))
-
-
-### v1.2.4 (2014-01-16)
-
-
-#### Bug Fixes
-
-* **grunt:** fixed incorrect templating expression ([2a59e070](http://github.com/DaftMonk/generator-angular-fullstack/commit/2a59e070bb89abb4ea83e165f8a29b8de94621f1))
-
-
-### v1.2.3 (2014-01-16)
-
-
-#### Bug Fixes
-
-* **app:** fixed jshint warning in user model ([f668fdc7](http://github.com/DaftMonk/generator-angular-fullstack/commit/f668fdc7f798e2656a9576f249836f7c91d27f1a))
-
-
-### v1.2.2 (2014-01-16)
-
-
-#### Bug Fixes
-
-* **app:**
- * replaced bcrypt with crypto for windows users ([af20c3ab](http://github.com/DaftMonk/generator-angular-fullstack/commit/af20c3ab6fd63e41475175e333810d09b3e9c3ea))
- * added karma dependencies directly to package template ([13ea60e7](http://github.com/DaftMonk/generator-angular-fullstack/commit/13ea60e7ec5763fb7f96900464df1bf26ee6912c))
-
-
-### v1.2.1 (2014-01-12)
-
-
-## v1.2.0 (2014-01-11)
-
-#### Features
-
-* **app:**
- * restructured project for easier configuration ([0a2bf2ab](http://github.com/DaftMonk/generator-angular-fullstack/commit/0a2bf2abe04de834c786402b8945d247b4f951aa))
- * grunt build now moves all files into dist folder ([e6eff5d5](http://github.com/DaftMonk/generator-angular-fullstack/commit/e6eff5d56bf2a784feb3de6218e74b5390df319f))
-* **server:** added jshint error checking before livereload occurs ([7e001d31](http://github.com/DaftMonk/generator-angular-fullstack/commit/7e001d3156d778022e7b6847cc65934432fb9200))
-* **gen:** added passport question for scaffolding out user account creation ([87841064](http://github.com/DaftMonk/generator-angular-fullstack/commit/8784106409e51cddf8fcdc6ab52b1e81137cda19))
-
-#### Bug Fixes
-
-* **app:** removed async dependency ([d5636d71](http://github.com/DaftMonk/generator-angular-fullstack/commit/d5636d712a984948fb92b82794681c07d43d830d))
-* **gitignore:** fix app/views being ignored by git ([7fa82ff9](http://github.com/DaftMonk/generator-angular-fullstack/commit/7fa82ff953e9f1368b8f9d6c3dadb5fe83bec002))
-* **server:**
- * config wasn't added to default project ([79c5e027](http://github.com/DaftMonk/generator-angular-fullstack/commit/79c5e027719507a74497c2f6be77375a513316c4))
- * removed typo and cleaned up extra whitespace ([1a132c28](http://github.com/DaftMonk/generator-angular-fullstack/commit/1a132c2822fd4973068b8beae075d0c8ec3efd42))
- * fixed style issues that were tripping up jshint
-
-#### Breaking Changes
-
-* `grunt heroku` is deprecated. Use `grunt build` instead.
-
-
-### v1.1.1 (2013-12-25)
-
-#### Bug Fixes
-
-* **views:**
- * Replaced deprecated jade tags.
-
-#### Features
-
-* **app:**
- * Updgrade to AngularJS 1.2.6
-
-
-## v1.1.0 (2013-12-22)
-
-
-#### Bug Fixes
-
-* **app:**
- * only copy CSS if Compass is not installed ([7e586745](http://github.com/DaftMonk/generator-angular-fullstack/commit/7e58674585e138c0f2eb81f46ef2cc4f1b9a3bf8))
- * services use classified names ([56a71a83](http://github.com/DaftMonk/generator-angular-fullstack/commit/56a71a83cdf90f81bb37b422ba4d40e75d28e1fe), closes [#484](http://github.com/DaftMonk/generator-angular-fullstack/issues/484))
- * reload JS files in watch ([d20f5bd2](http://github.com/DaftMonk/generator-angular-fullstack/commit/d20f5bd20ba95d47447f8acceee491a0a0ba9724))
-* **build:** deselecting ngRoute does remove route stuff ([a358c1ae](http://github.com/DaftMonk/generator-angular-fullstack/commit/a358c1ae69bff6a7708ea0a77248698f931f2e4d), closes [#486](http://github.com/DaftMonk/generator-angular-fullstack/issues/486))
-* **gen:**
- * updated all conflicts, and fixed some bugs, from merging with upstream ([d07c829d](http://github.com/DaftMonk/generator-angular-fullstack/commit/d07c829db283eaa4986774f9664243b50b3b5171))
- * fix bower install prompt during project gen ([706f1336](http://github.com/DaftMonk/generator-angular-fullstack/commit/706f1336852923e409d669ae6fc6faeda7bbb017), closes [#505](http://github.com/DaftMonk/generator-angular-fullstack/issues/505))
-* **package:** fix imagemin for windows users ([b3cec228](http://github.com/DaftMonk/generator-angular-fullstack/commit/b3cec228b4354343929ca07fd7225526cdab74d9))
-* **views:**
- * fix ng includes ([598c69a5](http://github.com/DaftMonk/generator-angular-fullstack/commit/598c69a594e00f598e0cbd435444bc8abaa0d4ee))
- * add compiled views to gitignore ([087ede5f](http://github.com/DaftMonk/generator-angular-fullstack/commit/087ede5f8e2cef4c49f940ef922d71a51d110d51))
- * fix incorrect build path for vendor css ([0ed2a200](http://github.com/DaftMonk/generator-angular-fullstack/commit/0ed2a20018086fa514846ad2503841f6d5b23e16))
-
-
-#### Features
-
-* **app:**
- * add jasmine browser global to test jshintrc ([11b6ed42](http://github.com/DaftMonk/generator-angular-fullstack/commit/11b6ed42b5e941f25cc305eb5c4e8ba49586cf64))
- * use lowercase file names ([23e5d772](http://github.com/DaftMonk/generator-angular-fullstack/commit/23e5d7724e7e02e4b974f4e804f35eca33a53aea), closes [#463](http://github.com/DaftMonk/generator-angular-fullstack/issues/463))
- * use htmlmin for smaller HTML files ([2b85a52a](http://github.com/DaftMonk/generator-angular-fullstack/commit/2b85a52a054ac8cf1ab86ce1cd3de7819d30ea52), closes [#469](http://github.com/DaftMonk/generator-angular-fullstack/issues/469))
- * use grunt-bower-install for dep management ([ba7b5051](http://github.com/DaftMonk/generator-angular-fullstack/commit/ba7b505117307059a6d013d838c8aeff6db0e452), closes [#497](http://github.com/DaftMonk/generator-angular-fullstack/issues/497))
- * Enable Node debug mode ([83ae4a9e](http://github.com/DaftMonk/generator-angular-fullstack/commit/83ae4a9e328a388dd61414634ca5e10c8a0c819b))
-* **gen:**
- * Added navbar to starting template ([b5e94749](http://github.com/DaftMonk/generator-angular-fullstack/commit/b5e94749384ab9a3305991df62d7ed9856bded83))
- * additional work for compass support ([11cb9943](http://github.com/DaftMonk/generator-angular-fullstack/commit/11cb99437271b6e8f6cdaee8fd5fc9cda7a20d1d))
- * add Compass support to the initialization process ([7fac1194](http://github.com/DaftMonk/generator-angular-fullstack/commit/7fac1194179df3181f52258b0aa7333799fec253))
- * add welcome message and dep notice for minsafe ([f0bb8da2](http://github.com/DaftMonk/generator-angular-fullstack/commit/f0bb8da2d67c3f627bf775e2d4f53340b5c980c4), closes [#452](http://github.com/DaftMonk/generator-angular-fullstack/issues/452))
-* **server:**
- * Added middleware for development mode that disables caching of script files ([c082c81c](http://github.com/DaftMonk/generator-angular-fullstack/commit/c082c81c21a9d8d6fd9fccd5001270759fb2a30f))
- * Moved express configuration code out of server.js and into config folder to make it a more high level bootstrap.
-
-
-#### Breaking Changes
-
-* Deselecting ngRoute adds controller and
-ng-include to index.html
- ([a358c1ae](http://github.com/DaftMonk/generator-angular-fullstack/commit/a358c1ae69bff6a7708ea0a77248698f931f2e4d))
-* `--minsafe` flag is now deprecated.
-* `grunt server` is now deprecated. Use `grunt serve` instead
-
-
-### v1.0.1 (2013-11-27)
-
-
-#### Bug Fixes
-
-* **coffee:** updated coffescript templates to point to partials ([f98e84ef](http://github.com/DaftMonk/generator-angular-fullstack/commit/f98e84efdd88243cff1ea449dc3a8e9dbebb7ccc))
-
-
-## v1.0.0 (2013-11-26)
-
-
-#### Bug Fixes
-
-* **build:**
- * use test-specifc jshintrc ([c00c091b](http://github.com/DaftMonk/generator-angular-fullstack/commit/c00c091bdca2b55685d81a2b84b002d73aacbdcc))
- * add webapp upstream features and better coffee ([c23acebb](http://github.com/DaftMonk/generator-angular-fullstack/commit/c23acebbd8fabd391bfeee0d424f26e59f756a03))
- * use grunt-newer for styles and jshint ([b1eeb68a](http://github.com/DaftMonk/generator-angular-fullstack/commit/b1eeb68a8290aee930887fc473034ee7f8e2ccc3))
- * standardize comments and comment out uglify:dist ([d5d3e458](http://github.com/DaftMonk/generator-angular-fullstack/commit/d5d3e458e70d054707c70d058454fdd3d94070fe), closes [#455](http://github.com/DaftMonk/generator-angular-fullstack/issues/455))
-* **deps:** upgrade dependencies ([3a57216f](http://github.com/DaftMonk/generator-angular-fullstack/commit/3a57216ff9e3192db3804634f360253e9fcce69d))
-* **gen:**
- * Fixed jshint errors that were breaking grunt task ([c6ae81c8](http://github.com/DaftMonk/generator-angular-fullstack/commit/c6ae81c8110ee59c9099740ea2f90b0d08b810d3))
-
-#### Features
-
-* **app:**
- * Separate client and server watchers ([0ff8ffb1](http://github.com/DaftMonk/generator-angular-fullstack/commit/0ff8ffb105a2eb1cd079fabafc5a6517d62e861d))
- * imagemin handles gifs ([9341eb9b](http://github.com/DaftMonk/generator-angular-fullstack/commit/9341eb9b710b95c95407dc54ed4af6aa4a496426))
-* **gen:**
- * added support for jade templates ([24a13bfe](http://github.com/DaftMonk/generator-angular-fullstack/commit/24a13bfea0e4a9633f33e37df4a4710fecdea937))
- * Support for server rendering and Angular's HTML5 mode ([5ccdeb7a](http://github.com/DaftMonk/generator-angular-fullstack/commit/5ccdeb7a5543e35c000a54dfc15289004e406866), closes [#18](http://github.com/DaftMonk/generator-angular-fullstack/issues/18), [#17](http://github.com/DaftMonk/generator-angular-fullstack/issues/17))
- * add image file as example ([b161c298](http://github.com/DaftMonk/generator-angular-fullstack/commit/b161c2982d86df1bb3de44cd9fa8aee05fc66ff3))
-* **build:**
- * compile only changed coffeescript files in watch task ([4196e379](http://github.com/DaftMonk/generator-angular-fullstack/commit/4196e37912993ae37812fa19d9378d8b8d2cc9da), closes [#425](http://github.com/DaftMonk/generator-angular-fullstack/issues/425))
- * deprecate server in favor of serve ([ef056319](http://github.com/DaftMonk/generator-angular-fullstack/commit/ef0563192a9e3fc834ae97e7ec68470bcfdf56eb))
-
-#### Breaking Changes
-
-* `angular-fullstack:route`
-* `angular-fullstack:view`
-
-Will now generate views and routes in the views/partials folder.
-
-**For existing projects:**
-
-For generating routes and views, install generator-angular and use it's sub-generators.
-
-They are exactly the same as the generators that you have been using. Example usage: `yo angular:route helloworld`.
-
-**For New projects:**
-
-Continue to use angular-fullstack route and view sub-generators.
-
-The reason for this change in folder structure was to support server page rendering.
-
-
-Closes #18, #17
- ([5ccdeb7a](http://github.com/DaftMonk/generator-angular-fullstack/commit/5ccdeb7a5543e35c000a54dfc15289004e406866))
-
-* `grunt server` is being deprecated
- ([ef056319](http://github.com/DaftMonk/generator-angular-fullstack/commit/ef0563192a9e3fc834ae97e7ec68470bcfdf56eb))
+* Remove Bootstrap 2 option, revert to ui-select2
-## v0.2.0 (2013-11-13)
-
+### v0.2.0 (2015-01-11) (upstream - v2.0.13)
-#### Bug Fixes
+#### Enhancements
-* **bootstrap:** some plugins have ordering dependencies ([3da4a130](http://github.com/DaftMonk/generator-angular-fullstack/commit/3da4a1301e0b744c7a6054fafff26fff16b6442b))
-* **build:** only include sass if sass is selected ([597b8b5c](http://github.com/DaftMonk/generator-angular-fullstack/commit/597b8b5cfab77b78e7f6091140beda2eeee0ed54), closes [#449](http://github.com/DaftMonk/generator-angular-fullstack/issues/449))
-* **css:** remove merge conflicts ([d558af35](http://github.com/DaftMonk/generator-angular-fullstack/commit/d558af351c8a531132ce064a461bc038e0710b25))
* **gen:**
- * script paths use forward slashes ([40aa61dc](http://github.com/DaftMonk/generator-angular-fullstack/commit/40aa61dcc1bf31918bea3d2ce9a84c93554aa64a), closes [#410](http://github.com/DaftMonk/generator-angular-fullstack/issues/410))
- * remove extra "App" from service spec files ([4053f11f](http://github.com/DaftMonk/generator-angular-fullstack/commit/4053f11f800280569f5b7396ad015f0a6bcc7b49))
- * options should have descriptions ([da001832](http://github.com/DaftMonk/generator-angular-fullstack/commit/da001832dbdb268b3bf38f359c72b40c401273e4))
-* **styles:** update path to icon images ([8daad4f2](http://github.com/DaftMonk/generator-angular-fullstack/commit/8daad4f2de9dbde4fcc810527da7c9607e1db8d4))
-* **template:** remove redundant closing tag ([d1e560e0](http://github.com/DaftMonk/generator-angular-fullstack/commit/d1e560e0675ecb70e6c4b59cf4de9df461434a31), closes [#441](http://github.com/DaftMonk/generator-angular-fullstack/issues/441))
-
-
-#### Features
-
-* **app:**
- * run unit tests when test scripts are changed ([94af0b51](http://github.com/DaftMonk/generator-angular-fullstack/commit/94af0b510982b05c5a1939966e96aeccce087500))
- * update to angular 1.2.0 ([77082c6b](http://github.com/DaftMonk/generator-angular-fullstack/commit/77082c6b8d1dda76579f1970a270dffc359f027f))
- * reload grunt server when gruntfile is updated ([50c6abb9](http://github.com/DaftMonk/generator-angular-fullstack/commit/50c6abb9cce09a149253ceb8496feca813a71136))
- * upgrade to Bootstrap 3.0.1 ([59f4b1ba](http://github.com/DaftMonk/generator-angular-fullstack/commit/59f4b1ba73842b758174ad44a7da60af4f4db63f))
-* **gen:**
- * allow app names to have custom suffix ([09f0f7b3](http://github.com/DaftMonk/generator-angular-fullstack/commit/09f0f7b3a8c3264b7527bc9fed8c709becec99eb))
-
-
-
-## v0.1.0 (2013-11-12)
-
-#### Features
-
-* **gen:** include MongoDB as an option When selected, sets up database with Mongoose. Repl ([280cc84d](http://github.com/DaftMonk/generator-angular-fullstack/commit/280cc84d735c60b1c261540dceda34dd7f91c93c), closes [#2](http://github.com/DaftMonk/generator-angular-fullstack/issues/2))
\ No newline at end of file
+ * Adds forms-angular authentication example
diff --git a/app/USAGE b/app/USAGE
index 721ce199b..c16943320 100644
--- a/app/USAGE
+++ b/app/USAGE
@@ -2,4 +2,4 @@ Description:
Creates an full-stack AngularJS + Node app
Example:
- yo angular-fullstack
+ yo fng
diff --git a/app/index.js b/app/index.js
index 194b337a6..d302043cf 100644
--- a/app/index.js
+++ b/app/index.js
@@ -6,13 +6,49 @@ var genUtils = require('../util.js');
var yeoman = require('yeoman-generator');
var chalk = require('chalk');
var wiredep = require('wiredep');
+var __ = require('underscore');
+var _ = require('underscore.string');
+
+var pluginChoices = [{
+ name: 'jQuery UI date picker',
+ value: 'uiDate',
+ dep: '\'ui.date\'',
+ jQueryUI: true,
+ checked: true
+},{
+ name: 'Columnar reporting',
+ value: 'reports',
+ dep: '\'ui.grid\',\n \'ui.grid.selection\'',
+ jQueryUI: false,
+ checked: true
+},{
+ name: 'Fully featured text / HTML editor',
+ value: 'ckeditor',
+ dep: '\'ngCkeditor\'',
+ jQueryUI: true,
+ checked: true
+},{
+ name: 'Enhanced select control',
+ value: 'uiSelect',
+ dep: '\'fng.uiSelect\'',
+ jQueryUI: false,
+ checked: true
+},{
+ name: 'File uploader',
+ value: 'jqUpload',
+ dep: '\'uploadModule\'',
+ jQueryUI: false,
+ checked: true
+}
+];
var AngularFullstackGenerator = yeoman.generators.Base.extend({
init: function () {
+ this._s = _;
this.argument('name', { type: String, required: false });
this.appname = this.name || path.basename(process.cwd());
- this.appname = this._.camelize(this._.slugify(this._.humanize(this.appname)));
+ this.appname = _.camelize(_.slugify(_.humanize(this.appname)));
this.option('app-suffix', {
desc: 'Allow a custom suffix to be added to the module name',
@@ -22,13 +58,15 @@ var AngularFullstackGenerator = yeoman.generators.Base.extend({
this.scriptAppName = this.appname + genUtils.appName(this);
this.appPath = this.env.options.appPath;
this.pkg = require('../package.json');
-
this.filters = {};
},
info: function () {
- this.log(this.yeoman);
- this.log('Out of the box I create an AngularJS app with an Express server.\n');
+ this.log('Forms-Angular Generator');
+ this.log('=======================');
+ this.log(
+ 'Out of the box I include Bootstrap, Mongoose and some AngularJS recommended modules.\n'
+ );
},
checkForConfig: function() {
@@ -39,7 +77,7 @@ var AngularFullstackGenerator = yeoman.generators.Base.extend({
type: "confirm",
name: "skipConfig",
message: "Existing .yo-rc configuration found, would you like to use it?",
- default: true,
+ default: true
}], function (answers) {
this.skipConfig = answers.skipConfig;
@@ -60,12 +98,13 @@ var AngularFullstackGenerator = yeoman.generators.Base.extend({
},
clientPrompts: function() {
+
if(this.skipConfig) return;
var cb = this.async();
this.log('# Client\n');
- this.prompt([{
+ this.prompt([/*{
type: "list",
name: "script",
message: "What would you like to write scripts with?",
@@ -78,13 +117,6 @@ var AngularFullstackGenerator = yeoman.generators.Base.extend({
return filterMap[val];
}
- }, {
- type: "confirm",
- name: "babel",
- message: "Would you like to use Javascript ES6 in your client by preprocessing it with Babel?",
- when: function (answers) {
- return answers.script === 'js';
- }
}, {
type: "list",
name: "markup",
@@ -96,37 +128,57 @@ var AngularFullstackGenerator = yeoman.generators.Base.extend({
name: "stylesheet",
default: 1,
message: "What would you like to write stylesheets with?",
- choices: [ "CSS", "Sass", "Stylus", "Less"],
+ choices: [ "CSS", "Sass", "Less"],
filter: function( val ) { return val.toLowerCase(); }
- }, {
+ },{
+ type: "list",
+ name: "framework",
+ message: "Which CSS framework would you like to use?",
+ choices: [ "Twitter Bootstrap 3.1.1", "Twitter Bootstrap 2.3.2 (deprecated)"],
+ filter: function( val ) {
+ var retVal = 'bs2';
+ if (val === "Twitter Bootstrap 3.1.1") {
+ retVal = 'bs3';
+ }
+ return retVal;
+ }
+ }, */{
+ type: 'checkbox',
+ name: 'plugins',
+ message: 'Which plugins would you like to include?',
+ choices: pluginChoices
+ },{
type: "list",
name: "router",
- default: 1,
+ default: 0,
message: "What Angular router would you like to use?",
choices: [ "ngRoute", "uiRouter"],
filter: function( val ) { return val.toLowerCase(); }
- }, {
- type: "confirm",
- name: "bootstrap",
- message: "Would you like to include Bootstrap?"
- }, {
- type: "confirm",
- name: "uibootstrap",
- message: "Would you like to include UI Bootstrap?",
- when: function (answers) {
- return answers.bootstrap;
- }
- }], function (answers) {
-
- this.filters.babel = !!answers.babel;
- if(this.filters.babel){ this.filters.js = true; }
- this.filters[answers.script] = true;
- this.filters[answers.markup] = true;
- this.filters[answers.stylesheet] = true;
+ }
+ ], function (answers) {
+ answers.framework = 'bs3';
+ this.filters[answers.framework] = true;
+ this.filters.js = true;
+ this.filters.html = true;
+ this.filters.css = true;
this.filters[answers.router] = true;
- this.filters.bootstrap = !!answers.bootstrap;
- this.filters.uibootstrap = !!answers.uibootstrap;
- cb();
+ answers.plugins.forEach(function(chosenPlugin) {
+ var thisPlugin = __.find(pluginChoices, function(choice) {
+ return (choice.value == chosenPlugin);
+ });
+ if (!thisPlugin) { throw new Error("Plugin inconsistency"); }
+ if (thisPlugin.values) {
+ var offset = (answers.framework === 'bs2') ? 0 : 1;
+ this.filters[thisPlugin.values[offset]] = true;
+ thisPlugin.dep = thisPlugin.deps[offset]
+ } else {
+ this.filters[chosenPlugin] = true;
+ }
+ if (thisPlugin.jQueryUI) {
+ this.filters.jQueryUI = true;
+ }
+ }.bind(this));
+ cb();
}.bind(this));
},
@@ -137,17 +189,18 @@ var AngularFullstackGenerator = yeoman.generators.Base.extend({
this.log('\n# Server\n');
- this.prompt([{
+ this.prompt([/*{
type: "confirm",
name: "mongoose",
message: "Would you like to use mongoDB with Mongoose for data modeling?"
- }, {
+ },*/{
type: "confirm",
name: "auth",
- message: "Would you scaffold out an authentication boilerplate?",
+ message: "Would you scaffold out an authentication boilerplate?"/*,
when: function (answers) {
- return answers.mongoose;
- }
+ //return answers.mongoose;
+ return true;
+ }*/
}, {
type: 'checkbox',
name: 'oauth',
@@ -177,13 +230,14 @@ var AngularFullstackGenerator = yeoman.generators.Base.extend({
name: "socketio",
message: "Would you like to use socket.io?",
// to-do: should not be dependent on mongoose
+ /*
when: function (answers) {
return answers.mongoose;
- },
+ },*/
default: true
}], function (answers) {
if(answers.socketio) this.filters.socketio = true;
- if(answers.mongoose) this.filters.mongoose = true;
+ this.filters.mongoose = true;
if(answers.auth) this.filters.auth = true;
if(answers.oauth) {
if(answers.oauth.length) this.filters.oauth = true;
@@ -221,7 +275,6 @@ var AngularFullstackGenerator = yeoman.generators.Base.extend({
if(this.filters.ngroute) filters.push('ngroute');
if(this.filters.uirouter) filters.push('uirouter');
- if(this.filters.babel) extensions.push('babel');
if(this.filters.coffee) extensions.push('coffee');
if(this.filters.js) extensions.push('js');
if(this.filters.html) extensions.push('html');
@@ -245,22 +298,25 @@ var AngularFullstackGenerator = yeoman.generators.Base.extend({
},
ngModules: function() {
- this.filters = this._.defaults(this.config.get('filters'), {
- bootstrap: true,
- uibootstrap: true
- });
-
+ this.filters = this.config.get('filters');
var angModules = [
"'ngCookies'",
+ "'formsAngular'",
"'ngResource'",
- "'ngSanitize'"
+ "'ngSanitize'",
+ "'ui.bootstrap'"
];
- if(this.filters.ngroute) angModules.push("'ngRoute'");
+ if(this.filters.ngroute) angModules.unshift("'ngRoute'"); // routing options need to precede formsangular
if(this.filters.socketio) angModules.push("'btford.socket-io'");
- if(this.filters.uirouter) angModules.push("'ui.router'");
- if(this.filters.uibootstrap) angModules.push("'ui.bootstrap'");
+ if(this.filters.uirouter) angModules.unshift("'ui.router'");
+
+ pluginChoices.forEach(function(plugin) {
+ if (this.filters[plugin.value])
+ angModules.push(plugin.dep);
+ }.bind(this));
- this.angularModules = "\n " + angModules.join(",\n ") +"\n";
+ this.angularModules = '\n ' + angModules.join(',\n ') +'\n';
+this.log(this.angularModules);
},
generate: function() {
diff --git a/app/templates/Gruntfile.js b/app/templates/Gruntfile.js
index 6685f5108..b711479b9 100644
--- a/app/templates/Gruntfile.js
+++ b/app/templates/Gruntfile.js
@@ -127,13 +127,6 @@ module.exports = function (grunt) {
'<%%= yeoman.client %>/{app,components}/**/*.spec.{coffee,litcoffee,coffee.md}'
],
tasks: ['karma']
- },<% } %><% if(filters.babel) { %>
- babel: {
- files: [
- '<%%= yeoman.client %>/{app,components}/**/*.js',
- '!<%%= yeoman.client %>/{app,components}/**/*.spec.js'
- ],
- tasks: ['babel']
},<% } %>
gruntfile: {
files: ['Gruntfile.js']
@@ -142,12 +135,8 @@ module.exports = function (grunt) {
files: [
'{.tmp,<%%= yeoman.client %>}/{app,components}/**/*.css',
'{.tmp,<%%= yeoman.client %>}/{app,components}/**/*.html',
- <% if(filters.babel) { %>
- '.tmp/{app,components}/**/*.js',
- <% } else { %>
'{.tmp,<%%= yeoman.client %>}/{app,components}/**/*.js',
- <% } %>
- '!{.tmp,<%%= yeoman.client %>}{app,components}/**/*.spec.js',
+ '!{.tmp,<%%= yeoman.client %>}/{app,components}/**/*.spec.js',
'!{.tmp,<%%= yeoman.client %>}/{app,components}/**/*.mock.js',
'<%%= yeoman.client %>/assets/images/{,*//*}*.{png,jpg,jpeg,gif,webp,svg}'
],
@@ -247,7 +236,7 @@ module.exports = function (grunt) {
debug: {
script: 'server/app.js',
options: {
- nodeArgs: ['--debug-brk'],
+ nodeArgs: ['--inspect-brk'],
env: {
PORT: process.env.PORT || 9000
},
@@ -272,7 +261,15 @@ module.exports = function (grunt) {
target: {
src: '<%%= yeoman.client %>/index.html',
ignorePath: '<%%= yeoman.client %>/',
- exclude: [/bootstrap-sass-official/, /bootstrap.js/, '/json3/', '/es5-shim/'<% if(!filters.css) { %>, /bootstrap.css/, /font-awesome.css/ <% } %>]
+ exclude: [
+ /bootstrap-sass-official/,
+ /bootstrap.js/,
+ '/json3/',
+ '/es5-shim/'
+ <% if(filters.jqUpload) { %> , /blueimp-file-upload\/js\/jquery.fileupload-ui.js/, /blueimp-file-upload\/js\/jquery.fileupload-jquery-ui.js/ <% } %>
+ <% if(!filters.css) { %>, /bootstrap.css/, /font-awesome.css/ <% } %>
+ <% if(filters.ckeditor) { %>, /ckeditor\/ckeditor.js/ <% } %>
+ ]
}
},
@@ -349,7 +346,7 @@ module.exports = function (grunt) {
files: [{
expand: true,
cwd: '.tmp/concat',
- src: '**/*.js',
+ src: '*/**.js',
dest: '.tmp/concat'
}]
}
@@ -453,16 +450,14 @@ module.exports = function (grunt) {
// Run some tasks in parallel to speed up the build process
concurrent: {
server: [<% if(filters.coffee) { %>
- 'coffee',<% } %><% if(filters.babel) { %>
- 'babel',<% } %><% if(filters.jade) { %>
+ 'coffee',<% } %><% if(filters.jade) { %>
'jade',<% } %><% if(filters.stylus) { %>
'stylus',<% } %><% if(filters.sass) { %>
'sass',<% } %><% if(filters.less) { %>
'less',<% } %>
],
test: [<% if(filters.coffee) { %>
- 'coffee',<% } %><% if(filters.babel) { %>
- 'babel',<% } %><% if(filters.jade) { %>
+ 'coffee',<% } %><% if(filters.jade) { %>
'jade',<% } %><% if(filters.stylus) { %>
'stylus',<% } %><% if(filters.sass) { %>
'sass',<% } %><% if(filters.less) { %>
@@ -478,8 +473,7 @@ module.exports = function (grunt) {
}
},
dist: [<% if(filters.coffee) { %>
- 'coffee',<% } %><% if(filters.babel) { %>
- 'babel',<% } %><% if(filters.jade) { %>
+ 'coffee',<% } %><% if(filters.jade) { %>
'jade',<% } %><% if(filters.stylus) { %>
'stylus',<% } %><% if(filters.sass) { %>
'sass',<% } %><% if(filters.less) { %>
@@ -508,10 +502,10 @@ module.exports = function (grunt) {
options: {
configFile: 'protractor.conf.js'
},
- chrome: {
+ firefox: {
options: {
args: {
- browser: 'chrome'
+ browser: 'firefox'
}
}
}
@@ -565,24 +559,6 @@ module.exports = function (grunt) {
ext: '.js'
}]
}
- },<% } %><% if(filters.babel) { %>
-
- // Compiles ES6 to JavaScript using Babel
- babel: {
- options: {
- sourceMap: true
- },
- server: {
- files: [{
- expand: true,
- cwd: 'client',
- src: [
- '{app,components}/**/*.js',
- '!{app,components}/**/*.spec.js'
- ],
- dest: '.tmp'
- }]
- }
},<% } %><% if(filters.stylus) { %>
// Compiles Stylus to CSS
@@ -652,16 +628,10 @@ module.exports = function (grunt) {
},
files: {
'<%%= yeoman.client %>/index.html': [
- [
- <% if(filters.babel) { %>
- '.tmp/{app,components}/**/*.js',
- <% } else { %>
- '{.tmp,<%%= yeoman.client %>}/{app,components}/**/*.js',
- <% } %>
- '!{.tmp,<%%= yeoman.client %>}/app/app.js',
- '!{.tmp,<%%= yeoman.client %>}/{app,components}/**/*.spec.js',
- '!{.tmp,<%%= yeoman.client %>}/{app,components}/**/*.mock.js'
- ]
+ ['{.tmp,<%%= yeoman.client %>}/{app,components}/**/*.js',
+ '!{.tmp,<%%= yeoman.client %>}/app/app.js',
+ '!{.tmp,<%%= yeoman.client %>}/{app,components}/**/*.spec.js',
+ '!{.tmp,<%%= yeoman.client %>}/{app,components}/**/*.mock.js']
]
}
},<% if(filters.stylus) { %>
diff --git a/app/templates/_.gitignore b/app/templates/_.gitignore
index a5f8174b5..a1574d1a6 100644
--- a/app/templates/_.gitignore
+++ b/app/templates/_.gitignore
@@ -6,4 +6,5 @@ public
client/bower_components
dist
/server/config/local.env.js
+.idea
npm-debug.log
diff --git a/app/templates/_bower.json b/app/templates/_bower.json
index 156d04b32..173a4eed4 100644
--- a/app/templates/_bower.json
+++ b/app/templates/_bower.json
@@ -1,24 +1,40 @@
{
- "name": "<%= _.slugify(_.humanize(appname)) %>",
+ "name": "<%= _s.slugify(_s.humanize(appname)) %>",
"version": "0.0.0",
"dependencies": {
- "angular": ">=1.2.*",
- "json3": "~3.3.1",
- "es5-shim": "~3.0.1",<% if(filters.bootstrap) { %><% if (filters.sass) { %>
- "bootstrap-sass-official": "~3.1.1",<% } %>
- "bootstrap": "~3.1.1",<% } %>
- "angular-resource": ">=1.2.*",
- "angular-cookies": ">=1.2.*",
- "angular-sanitize": ">=1.2.*",<% if(filters.ngroute) { %>
- "angular-route": ">=1.2.*",<% } %><% if(filters.uibootstrap) { %>
- "angular-bootstrap": "~0.11.0",<% } %>
+ "json3": "3.3.2",
+ "forms-angular": "0.11.x",
+ "angular-ui-bootstrap-bower": <% if(filters.bs3) { %>"^2.5.0"<% } %><% if(filters.bs2) { %>"~0.8.0"<% } %>,<% if(filters.bootstrap) { %><% if (filters.sass) { %>
+ "bootstrap-sass-official": "~3.3.5",<% } %>
+ "bootstrap": "~3.3.5",<% } %>
+ "angular-resource": "^1",
+ "angular-cookies": "^1",<% if(filters.ngroute) { %>
+ "angular-route": "^1",<% } %><% if(filters.uibootstrap) { %>
+ "angular-bootstrap": "~0.14.3",<% } %>
"font-awesome": ">=4.1.0",
- "lodash": "~2.4.1"<% if(filters.socketio) { %>,
- "angular-socket-io": "~0.6.0"<% } %><% if(filters.uirouter) { %>,
- "angular-ui-router": "~0.2.15"<% } %>
+ "lodash": ">=4.17.4"<% if(filters.socketio) { %>,
+ "angular-socket-io": "0.7.0"<% } %><% if(filters.uirouter) { %>,
+ "angular-ui-router": "0.2.15"<% } %><% if (filters.uiDate) { %>,
+ "fng-ui-date": "0.11.x"<% } %><% if (filters.jqUpload) { %>,
+ "fng-jq-upload": "0.11.x"<% } %><% if (filters.reports) { %>,
+ "fng-reports": "0.11.x"<% } %><% if (filters.ckeditor) { %>,
+ "ng-ckeditor": "0.2.1",
+ "ckeditor": "*"<% } %><% if (filters.uiSelect) { %>,
+ "fng-ui-select": "0.11.x"<% } %>
},
"devDependencies": {
- "angular-mocks": ">=1.2.*",
- "angular-scenario": ">=1.2.*"
- }
+ "angular-mocks": "^1.6.7"
+ },<% if (filters.jqUpload) { %>
+ "overrides":{
+ "blueimp-load-image":{
+ "main":"js/load-image.all.min.js"
+ },
+ "blueimp-gallery":{
+ "main":["js/jquery.blueimp-gallery.min.js","css/blueimp-gallery.css"]
+ }
+ },<% } %>
+ "resolutions": {
+ "angular": "1.6.7"
+ },
+ "testPath": "test/client/spec"
}
diff --git a/app/templates/_package.json b/app/templates/_package.json
index 88541b924..4b3eae68c 100644
--- a/app/templates/_package.json
+++ b/app/templates/_package.json
@@ -1,99 +1,95 @@
{
- "name": "<%= _.slugify(_.humanize(appname)) %>",
+ "name": "<%= _s.slugify(_s.humanize(appname)) %>",
"version": "0.0.0",
"main": "server/app.js",
"dependencies": {
- "express": "~4.9.0",
- "morgan": "~1.0.0",
- "body-parser": "~1.5.0",
- "method-override": "~1.0.0",
- "serve-favicon": "~2.0.1",
- "cookie-parser": "~1.0.1",
- "express-session": "~1.0.2",
- "errorhandler": "~1.0.0",
- "compression": "~1.0.1",
- "lodash": "~2.4.1",<% if(filters.jade) { %>
- "jade": "~1.2.0",<% } %><% if(filters.html) { %>
- "ejs": "~0.8.4",<% } %><% if(filters.mongoose) { %>
- "mongoose": "~4.0.3",<% } %><% if(filters.auth) { %>
- "jsonwebtoken": "^5.0.0",
- "express-jwt": "^3.0.0",
- "passport": "~0.2.0",
- "passport-local": "~0.1.6",<% } %><% if(filters.facebookAuth) { %>
+ "express": "4.17.1",
+ "morgan": "1.10.0",
+ "body-parser": "1.19.0",
+ "method-override": "3.0.0",
+ "serve-favicon": "2.5.0",
+ "cookie-parser": "1.4.5",
+ "express-session": "1.17.1",
+ "forms-angular": "0.12.0-beta.116",
+ "errorhandler": "1.5.1",
+ "compression": "1.7.4",
+ "lodash": "4.17.20",<% if (filters.jqUpload) { %>
+ "fng-jq-upload": "0.12.0-beta.116",<% } %><% if(filters.html) { %>
+ "ejs": "3.1.5",<% } %><% if(filters.mongoose) { %>
+ "mongoose": "^3.10.0",<% } %><% if(filters.auth) { %>
+ "jsonwebtoken": "5.4.0",
+ "express-jwt": "3.1.0",
+ "passport": "0.3.0",
+ "passport-local": "1.0.0",<% } %><% if(filters.facebookAuth) { %>
"passport-facebook": "latest",<% } %><% if(filters.twitterAuth) { %>
"passport-twitter": "latest",<% } %><% if(filters.googleAuth) { %>
"passport-google-oauth": "latest",<% } %>
- "composable-middleware": "^0.3.0",
- "connect-mongo": "^0.8.1"<% if(filters.socketio) { %>,
- "socket.io": "^1.0.6",
- "socket.io-client": "^1.0.6",
- "socketio-jwt": "^3.0.0"<% } %>
+ "composable-middleware": "0.3.0",
+ "connect-mongo": "3.2.0"<% if(filters.socketio) { %>,
+ "socket.io": "1.3.7",
+ "socket.io-client": "1.3.7",
+ "socketio-jwt": "4.3.2"<% } %>
},
"devDependencies": {
- "grunt": "~0.4.4",
- "grunt-autoprefixer": "~0.7.2",
- "grunt-wiredep": "~1.8.0",
- "grunt-concurrent": "~0.5.0",
- "grunt-contrib-clean": "~0.5.0",
- "grunt-contrib-concat": "~0.4.0",
- "grunt-contrib-copy": "~0.5.0",
- "grunt-contrib-cssmin": "~0.9.0",
- "grunt-contrib-htmlmin": "~0.2.0",
- "grunt-contrib-imagemin": "~0.7.1",
- "grunt-contrib-jshint": "~0.10.0",
- "grunt-contrib-uglify": "~0.4.0",
- "grunt-contrib-watch": "~0.6.1",<% if(filters.coffee) { %>
- "grunt-contrib-coffee": "^0.10.1",<% } %><% if(filters.jade) { %>
- "grunt-contrib-jade": "^0.11.0",<% } %><% if(filters.less) { %>
- "grunt-contrib-less": "^0.11.0",<% } %><% if(filters.babel) { %>
- "karma-babel-preprocessor": "^5.2.1",
- "grunt-babel": "~5.0.0",<% } %>
- "grunt-google-cdn": "~0.4.0",
- "grunt-newer": "~0.7.0",
- "grunt-ng-annotate": "^0.2.3",
- "grunt-rev": "~0.1.0",
- "grunt-svgmin": "~0.4.0",
- "grunt-usemin": "~2.1.1",
- "grunt-env": "~0.4.1",
- "grunt-node-inspector": "~0.1.5",
- "grunt-nodemon": "~0.2.0",
- "grunt-angular-templates": "^0.5.4",
- "grunt-dom-munger": "^3.4.0",
- "grunt-protractor-runner": "^1.1.0",
- "grunt-injector": "~0.5.4",
- "grunt-karma": "~0.8.2",
- "grunt-build-control": "~0.4.0",
- "grunt-mocha-test": "~0.10.2",<% if(filters.sass) { %>
- "grunt-contrib-sass": "^0.7.3",<% } %><% if(filters.stylus) { %>
- "grunt-contrib-stylus": "latest",<% } %>
- "jit-grunt": "^0.5.0",
- "time-grunt": "~0.3.1",
- "grunt-express-server": "~0.4.17",
- "grunt-open": "~0.2.3",
- "open": "~0.0.4",
- "jshint-stylish": "~0.1.5",
- "connect-livereload": "~0.4.0",
- "karma-ng-scenario": "~0.1.0",
- "karma-firefox-launcher": "~0.1.3",
- "karma-script-launcher": "~0.1.0",
- "karma-html2js-preprocessor": "~0.1.0",
- "karma-ng-jade2js-preprocessor": "^0.1.2",
- "karma-jasmine": "~0.1.5",
- "karma-chrome-launcher": "~0.1.3",
- "requirejs": "~2.1.11",
- "karma-requirejs": "~0.2.1",
- "karma-coffee-preprocessor": "~0.2.1",
+ "grunt": "1.3.0",
+ "grunt-autoprefixer": "3.0.4",
+ "grunt-wiredep": "3.0.1",
+ "grunt-concurrent": "3.0.0",
+ "grunt-contrib-clean": "2.0.0",
+ "grunt-contrib-concat": "1.0.1",
+ "grunt-contrib-copy": "1.0.0",
+ "grunt-contrib-cssmin": "3.0.0",
+ "grunt-contrib-htmlmin": "3.1.0",
+ "grunt-contrib-imagemin": "4.0.0",
+ "grunt-contrib-jshint": "3.0.0",
+ "grunt-contrib-uglify": "5.0.0",
+ "grunt-contrib-watch": "1.1.0",
+ "grunt-google-cdn": "0.4.3",
+ "grunt-newer": "1.3.0",
+ "grunt-ng-annotate": "4.0.0",
+ "grunt-rev": "0.1.0",
+ "grunt-svgmin": "6.0.1",
+ "grunt-usemin": "3.1.1",
+ "grunt-env": "1.0.1",
+ "grunt-angular-templates": "1.2.0",
+ "grunt-dom-munger": "3.4.0",
+ "grunt-protractor-runner": "5.0.0",
+ "grunt-injector": "1.1.0",
+ "grunt-karma": "4.0.0",
+ "grunt-build-control": "0.7.1",
+ "grunt-mocha-test": "0.13.3",
+ "jit-grunt": "0.10.0",
+ "time-grunt": "2.0.0",
+ "grunt-express-server": "git://github.com/gintsgints/grunt-express-server#master",
+ "grunt-open": "0.2.4",
+ "open": "7.3.0",
+ "jshint-stylish": "2.2.1",
+ "connect-livereload": "0.6.1",
+ "karma-ng-scenario": "1.0.0",
+ "karma-firefox-launcher": "2.1.0",
+ "karma-script-launcher": "1.0.0",
+ "karma-html2js-preprocessor": "1.1.0",
+ "karma-ng-jade2js-preprocessor": "0.2.1",
+ "karma-jasmine": "4.0.1",
+ "karma-chrome-launcher": "3.1.0",
+ "requirejs": "2.3.6",
+ "karma-requirejs": "01.1.0",
+ "karma-coffee-preprocessor": "1.0.1",
"karma-jade-preprocessor": "0.0.11",
- "karma-phantomjs-launcher": "~0.1.4",
- "karma": "~0.12.9",
- "karma-ng-html2js-preprocessor": "~0.1.0",
- "supertest": "~0.11.0",
- "should": "~3.3.1"
+ "karma-phantomjs-launcher": "1.0.4",
+ "karma": "5.2.3",
+ "karma-ng-html2js-preprocessor": "1.0.0",
+ "supertest": "6.0.1",
+ "should": "7.1.0"
},
"engines": {
"node": ">=0.10.0"
},
+ "resolutions": {
+ "graceful-fs": "^4.2.4"
+ },
"scripts": {
+ "preinstall": "npx npm-force-resolutions",
"start": "node server/app.js",
"test": "grunt test",
"update-webdriver": "node node_modules/grunt-protractor-runner/node_modules/protractor/bin/webdriver-manager update"
diff --git a/app/templates/client/app/account(auth)/login/login(html).html b/app/templates/client/app/account(auth)/login/login(html).html
index 572f2e144..a0ddd63f9 100644
--- a/app/templates/client/app/account(auth)/login/login(html).html
+++ b/app/templates/client/app/account(auth)/login/login(html).html
@@ -1,61 +1,74 @@
-
-
-
Login
-
Accounts are reset on server restart from server/config/seed.js. Default account is test@test.com / test
-
Admin account is admin@admin.com / admin
-
-
\ No newline at end of file
diff --git a/app/templates/client/app/account(auth)/settings/settings(html).html b/app/templates/client/app/account(auth)/settings/settings(html).html
index bb5d8ded0..501f0e5f4 100644
--- a/app/templates/client/app/account(auth)/settings/settings(html).html
+++ b/app/templates/client/app/account(auth)/settings/settings(html).html
@@ -1,39 +1,52 @@
-
-
-
Change Password
-
-
-
+
+
+
Change Password
+
+
+
This simple form uses forms-angular without a mongoose template. Due to time constraints it doesn't have
+ all the functionality you might expect. The original form from the upstream branch is commented out,
+ so you can easily revert to it.
+
+
+
-
+
+
-
+
+
+
+
+
+
+
- {{ message }}
+
+
+
- Save changes
-
+
+
+
+
+
+
+
{{ message }}
+
+
Save changes
+
+
+
-
\ No newline at end of file
diff --git a/app/templates/client/app/account(auth)/signup/signup(html).html b/app/templates/client/app/account(auth)/signup/signup(html).html
index 59faed568..d8ccf92c8 100644
--- a/app/templates/client/app/account(auth)/signup/signup(html).html
+++ b/app/templates/client/app/account(auth)/signup/signup(html).html
@@ -1,82 +1,97 @@
-
-
-
Sign up
-
-
-
+
+
+
Sign up
+
+
+
This simple form uses forms-angular without a mongoose template. Due to time constraints it doesn't have
+ all the functionality you might expect. The original form from the upstream branch is commented out,
+ so you can easily revert to it.
+
+
-
+
-
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <% if(filters.facebookAuth || filters.twitterAuth || filters.googleAuth) {%>
+
+
+ <% } %>
+
-
-<% if(filters.oauth) {%>
-
-
<% } %>
-
-
-
+
diff --git a/app/templates/client/app/admin(auth)/admin(html).html b/app/templates/client/app/admin(auth)/admin(html).html
index 5c27c7af2..1e6e0a9cd 100644
--- a/app/templates/client/app/admin(auth)/admin(html).html
+++ b/app/templates/client/app/admin(auth)/admin(html).html
@@ -1,5 +1,7 @@
+
+
The delete user and user index api routes are restricted to users with the 'admin' role.
-
\ No newline at end of file
+
diff --git a/app/templates/client/app/app(css).css b/app/templates/client/app/app(css).css
index f1a61a918..df935ca5d 100644
--- a/app/templates/client/app/app(css).css
+++ b/app/templates/client/app/app(css).css
@@ -37,10 +37,21 @@
color: #000;
padding: 0.2em 0;
}
-<% if (!filters.bootstrap) { %>
+
+body {
+ padding-top: 40px;
+}
+
+.navbar-default form {
+ border-color: inherited;
+}
+
/* Responsive: Portrait tablets and up */
@media screen and (min-width: 768px) {
+ .list-body, .edit-body {
+ padding-top: 130px;
+ }
.container {
max-width: 730px;
}
-}<% } %>
\ No newline at end of file
+}
diff --git a/app/templates/client/app/app(js).js b/app/templates/client/app/app(js).js
index c8850ed07..1c7fac8ac 100644
--- a/app/templates/client/app/app(js).js
+++ b/app/templates/client/app/app(js).js
@@ -1,19 +1,16 @@
'use strict';
-angular.module('<%= scriptAppName %>', [<%= angularModules %>])
- <% if(filters.ngroute) { %>.config(function ($routeProvider, $locationProvider<% if(filters.auth) { %>, $httpProvider<% } %>) {
- $routeProvider
- .otherwise({
- redirectTo: '/'
- });
+angular.module('<%= scriptAppName %>', [<%- angularModules %>])
+ <% if(filters.ngroute) { %>.config(function ($routeProvider<% if(filters.auth) { %>, $httpProvider<% } %>) {
+ $routeProvider.otherwise({redirectTo: '/'});
- $locationProvider.html5Mode(true);<% if(filters.auth) { %>
+ <% if(filters.auth) { %>
$httpProvider.interceptors.push('authInterceptor');<% } %>
})<% } %><% if(filters.uirouter) { %>.config(function ($stateProvider, $urlRouterProvider, $locationProvider<% if(filters.auth) { %>, $httpProvider<% } %>) {
$urlRouterProvider
.otherwise('/');
- $locationProvider.html5Mode(true);<% if(filters.auth) { %>
+ <% if(filters.auth) { %>
$httpProvider.interceptors.push('authInterceptor');<% } %>
})<% } %><% if(filters.auth) { %>
@@ -54,3 +51,15 @@ angular.module('<%= scriptAppName %>', [<%= angularModules %>])
});
});
})<% } %>;
+
+ formsAngular.config(['cssFrameworkServiceProvider', 'routingServiceProvider', function (cssFrameworkService, routingService) {
+ routingService.start(
+ {
+ html5Mode: true,
+<% if(filters.auth) { %>add2fngRoutes: {authenticate: true} , <% } %>
+ prefix:'/data',
+ routing: '<% if(filters.ngroute) { %>ngroute<% } %><% if(filters.uirouter) { %>uirouter<% } %>'
+ }
+ );
+ cssFrameworkService.setOptions({framework: '<% if(filters.bs3) { %>bs3<% } %><% if(filters.bs2) { %>bs2<% } %>'});
+ }]);
diff --git a/app/templates/client/app/app(less).less b/app/templates/client/app/app(less).less
index 30639f539..50464fe06 100644
--- a/app/templates/client/app/app(less).less
+++ b/app/templates/client/app/app(less).less
@@ -14,16 +14,24 @@
color: #000;
padding: 0.2em 0;
}
-<% if (!filters.bootstrap) { %>
+
+
+.navbar-default form {
+ border-color: inherited;
+}
+
/* Responsive: Portrait tablets and up */
@media screen and (min-width: 768px) {
- .container {
- max-width: 730px;
- }
+ .list-body, .edit-body {
+ padding-top: 130px;
+ }
+ .container {
+ max-width: 730px;
+ }
}
-<% } %>
+
// injector
@import 'account/login/login.less';
@import 'admin/admin.less';
@import 'main/main.less';
-// endinjector
\ No newline at end of file
+// endinjector
diff --git a/app/templates/client/app/app(sass).scss b/app/templates/client/app/app(sass).scss
index 4b8ae7a04..dc31f93af 100644
--- a/app/templates/client/app/app(sass).scss
+++ b/app/templates/client/app/app(sass).scss
@@ -26,5 +26,6 @@ $fa-font-path: "/bower_components/font-awesome/fonts";
// injector
@import 'account/login/login.scss';
@import 'admin/admin.scss';
+@import 'partials/applicant.scss';
@import 'main/main.scss';
-// endinjector
\ No newline at end of file
+// endinjector
diff --git a/app/templates/client/app/main/main(html).html b/app/templates/client/app/main/main(html).html
index cd0f185b2..e2042e68f 100644
--- a/app/templates/client/app/main/main(html).html
+++ b/app/templates/client/app/main/main(html).html
@@ -3,8 +3,15 @@
'Allo, 'Allo!
-
Kick-start your next web app with Angular Fullstack
-
+
+ Always a pleasure scaffolding your apps.
+ Speaking of apps, I have taken the liberty of creating a database of applicants for the under-butler position and adding it to the menu above
+<% if(filters.auth) { %>
+ (it only displays when you are logged in).
+
.
+<% } %>
+ Kick-start your next web app with yeoman and forms-angular
+
@@ -13,7 +20,7 @@
'Allo, 'Allo!
<% if(filters.socketio) { %>
@@ -31,8 +38,8 @@
diff --git a/app/templates/client/app/main/main.controller(js).js b/app/templates/client/app/main/main.controller(js).js
index 433a10fe4..2b605be85 100644
--- a/app/templates/client/app/main/main.controller(js).js
+++ b/app/templates/client/app/main/main.controller(js).js
@@ -4,8 +4,8 @@ angular.module('<%= scriptAppName %>')
.controller('MainCtrl', function ($scope, $http<% if(filters.socketio) { %>, socket<% } %>) {
$scope.awesomeThings = [];
- $http.get('/api/things').success(function(awesomeThings) {
- $scope.awesomeThings = awesomeThings;<% if(filters.socketio) { %>
+ $http.get('/api/things').then(function(response) {
+ $scope.awesomeThings = response.data;<% if(filters.socketio) { %>
socket.syncUpdates('thing', $scope.awesomeThings);<% } %>
});
<% if(filters.mongoose) { %>
diff --git a/app/templates/client/assets/images/!yeoman.png b/app/templates/client/assets/images/!yeoman.png
deleted file mode 100644
index 7d0a1ac71..000000000
Binary files a/app/templates/client/assets/images/!yeoman.png and /dev/null differ
diff --git a/app/templates/client/components/auth(auth)/auth.service(js).js b/app/templates/client/components/auth(auth)/auth.service(js).js
index 9afb12da9..5758bb80e 100644
--- a/app/templates/client/components/auth(auth)/auth.service(js).js
+++ b/app/templates/client/components/auth(auth)/auth.service(js).js
@@ -23,18 +23,20 @@ angular.module('<%= scriptAppName %>')
$http.post('/auth/local', {
email: user.email,
password: user.password
- }).
- success(function(data) {
- $cookieStore.put('token', data.token);
- currentUser = User.get();
- deferred.resolve(data);
- return cb();
- }).
- error(function(err) {
- this.logout();
- deferred.reject(err);
- return cb(err);
- }.bind(this));
+ })
+ .then(
+ function(response) {
+ $cookieStore.put('token', response.data.token);
+ currentUser = User.get();
+ deferred.resolve(response.data);
+ return cb();
+ },
+ function(err) {
+ this.logout();
+ deferred.reject(err);
+ return cb(err);
+ }.bind(this)
+ );
return deferred.promise;
},
diff --git a/app/templates/client/components/navbar/navbar(html).html b/app/templates/client/components/navbar/navbar(html).html
index 71f8606dd..5e567eefb 100644
--- a/app/templates/client/components/navbar/navbar(html).html
+++ b/app/templates/client/components/navbar/navbar(html).html
@@ -1,29 +1,48 @@
-
-
-
-
-
-
+
+
+
+
+
+
<% if(filters.auth) { %>
-
-
<% } %>
+
+
ng-show="isLoggedIn()" <% } %>uib-dropdown class="dropdown">
+ Applicants
+
+
+ <% if(filters.auth) { %>
+
Admin
+ <% } %>
+
+
+
+
diff --git a/app/templates/client/components/navbar/navbar(jade).jade b/app/templates/client/components/navbar/navbar(jade).jade
index 2b17f29c3..73a8202b3 100644
--- a/app/templates/client/components/navbar/navbar(jade).jade
+++ b/app/templates/client/components/navbar/navbar(jade).jade
@@ -6,7 +6,7 @@ div.navbar.navbar-default.navbar-static-top(ng-controller='NavbarCtrl')
span.icon-bar
span.icon-bar
span.icon-bar
- a.navbar-brand(href='/') <%= _.slugify(_.humanize(appname)) %>
+ a.navbar-brand(href='/') <%= _.slugify(_s.humanize(appname)) %>
div#navbar-main.navbar-collapse.collapse(collapse='isCollapsed')
ul.nav.navbar-nav
@@ -31,4 +31,4 @@ div.navbar.navbar-default.navbar-static-top(ng-controller='NavbarCtrl')
span.glyphicon.glyphicon-cog
li(ng-show='isLoggedIn()', ng-class='{active: isActive("/logout")}')
- a(href='', ng-click='logout()') Logout<% } %>
\ No newline at end of file
+ a(href='', ng-click='logout()') Logout<% } %>
diff --git a/app/templates/client/index.html b/app/templates/client/index.html
index e9dcd5729..888e96038 100644
--- a/app/templates/client/index.html
+++ b/app/templates/client/index.html
@@ -12,16 +12,18 @@
+
+
-
+ <% if (filters.jQueryUI) { %> <% } %>
+
-
-
+
@@ -50,11 +52,9 @@
<% } %>
- <% if(filters.babel) { %>
-
- <% } else { %>
+ <% if(filters.ckeditor) { %><% } %>
+
- <% } %>
diff --git a/app/templates/karma.conf.js b/app/templates/karma.conf.js
index e7307a90a..80f16b6d9 100644
--- a/app/templates/karma.conf.js
+++ b/app/templates/karma.conf.js
@@ -13,6 +13,10 @@ module.exports = function(config) {
files: [
'client/bower_components/jquery/dist/jquery.js',
'client/bower_components/angular/angular.js',
+ 'client/bower_components/forms-angular/dist/forms-angular.js',
+ 'client/bower_components/ngInfiniteScroll/build/ng-infinite-scroll.js',
+ 'client/bower_components/angular-elastic/elastic.js',
+ 'client/bower_components/angular-ui-bootstrap-bower/ui-bootstrap-tpls.js',
'client/bower_components/angular-mocks/angular-mocks.js',
'client/bower_components/angular-resource/angular-resource.js',
'client/bower_components/angular-cookies/angular-cookies.js',
@@ -21,24 +25,28 @@ module.exports = function(config) {
'client/bower_components/angular-bootstrap/ui-bootstrap-tpls.js',<% } %>
'client/bower_components/lodash/dist/lodash.compat.js',<% if(filters.socketio) { %>
'client/bower_components/angular-socket-io/socket.js',<% } %><% if(filters.uirouter) { %>
- 'client/bower_components/angular-ui-router/release/angular-ui-router.js',<% } %>
+ 'client/bower_components/angular-ui-router/release/angular-ui-router.js',<% } %><% if (filters.uiDate) { %>
+ 'client/bower_components/angular-ui-date/src/date.js',<% } %><% if (filters.jqUpload) { %>
+ 'client/bower_components/blueimp-file-upload/js/vendor/jquery.ui.widget.js',
+ 'client/bower_components/blueimp-file-upload/js/jquery.fileupload.js',
+ 'client/bower_components/blueimp-file-upload/js/jquery.fileupload-angular.js',
+ 'client/bower_components/fng-jq-upload/dist/fng-jq-upload.js',<% } %><% if (filters.reports) { %>
+ 'client/bower_components/ng-grid/build/ng-grid.min.js',<% } %><% if (filters.ckeditor) { %>
+ 'client/bower_components/ckeditor/ckeditor.js',
+ 'client/bower_components/ng-ckeditor/ng-ckeditor.js',<% } %><% if (filters.uiSelect) { %>
+ 'client/bower_components/angular-ui-select/dist/select.js',
+ 'client/bower_components/fng-ui-select/src/fng-ui-select.js',<% } %><% if (filters.select2) { %>
+ 'client/bower_components/select2/select2.js',
+ 'client/bower_components/angular-ui-select2/src/select2.js',<% } %>
'client/app/app.js',
- 'client/app/app.coffee',
'client/app/**/*.js',
- 'client/app/**/*.coffee',
'client/components/**/*.js',
- 'client/components/**/*.coffee',
- 'client/app/**/*.jade',
- 'client/components/**/*.jade',
'client/app/**/*.html',
'client/components/**/*.html'
],
preprocessors: {
- '**/*.jade': 'ng-jade2js',
- '**/*.html': 'html2js',<% if(filters.babel) { %>
- 'client/app/**/*.js': 'babel',<% } %>
- '**/*.coffee': 'coffee',
+ '**/*.html': 'html2js'
},
ngHtml2JsPreprocessor: {
@@ -49,20 +57,6 @@ module.exports = function(config) {
stripPrefix: 'client/'
},
- <% if(filters.babel) { %>
- babelPreprocessor: {
- options: {
- sourceMap: 'inline'
- },
- filename: function (file) {
- return file.originalPath.replace(/\.js$/, '.es5.js');
- },
- sourceFileName: function (file) {
- return file.originalPath;
- }
- },
- <% } %>
-
// list of files / patterns to exclude
exclude: [],
diff --git a/app/templates/protractor.conf.js b/app/templates/protractor.conf.js
index cb66c67c1..ab92ba84d 100644
--- a/app/templates/protractor.conf.js
+++ b/app/templates/protractor.conf.js
@@ -12,10 +12,6 @@ exports.config = {
// with relative paths will be prepended with this.
baseUrl: 'http://localhost:' + (process.env.PORT || '9000'),
- // If true, only chromedriver will be started, not a standalone selenium.
- // Tests for browsers other than chrome will not run.
- chromeOnly: true,
-
// list of files / patterns to load in the browser
specs: [
'e2e/**/*.spec.js'
@@ -31,7 +27,7 @@ exports.config = {
// and
// https://code.google.com/p/selenium/source/browse/javascript/webdriver/capabilities.js
capabilities: {
- 'browserName': 'chrome'
+ 'browserName': 'firefox'
},
// ----- The test framework -----
diff --git a/app/templates/server/api/thing/thing.controller.js b/app/templates/server/api/thing/thing.controller.js
index 0adc6211c..bc1338c29 100644
--- a/app/templates/server/api/thing/thing.controller.js
+++ b/app/templates/server/api/thing/thing.controller.js
@@ -17,10 +17,10 @@ exports.index = function(req, res) {<% if (!filters.mongoose) { %>
res.json([
{
name : 'Development Tools',
- info : 'Integration with popular tools such as Bower, Grunt, Karma, Mocha, JSHint, Node Inspector, Livereload, Protractor, Jade, Stylus, Sass, CoffeeScript, and Less.'
+ info : 'Integration with popular tools such as Bower, Grunt, Karma, Mocha, JSHint, Node Inspector, Livereload, Protractor and Less.'
}, {
name : 'Server and Client integration',
- info : 'Built with a powerful and fun stack: MongoDB, Express, AngularJS, and Node.'
+ info : 'Built with a powerful and fun stack: MongoDB, Express, AngularJS, and Node (MEAN Stack) with the forms-angular library.'
}, {
name : 'Smart Build System',
info : 'Build system ignores `spec` files, allowing you to keep tests alongside code. Automatic injection of scripts and styles into your index.html'
diff --git a/app/templates/server/api/user(auth)/user.model.js b/app/templates/server/api/user(auth)/user.model.js
index cc8d59263..69922c254 100644
--- a/app/templates/server/api/user(auth)/user.model.js
+++ b/app/templates/server/api/user(auth)/user.model.js
@@ -78,17 +78,20 @@ UserSchema
// Validate email is not taken
UserSchema
.path('email')
- .validate(function(value, respond) {
- var self = this;
- this.constructor.findOne({email: value}, function(err, user) {
- if(err) throw err;
- if(user) {
- if(self.id === user.id) return respond(true);
- return respond(false);
- }
- respond(true);
- });
-}, 'The specified email address is already in use.');
+ .validate({
+ isAsync: true,
+ validator: function (value, respond) {
+ var self = this;
+ this.constructor.findOne({email: value}, function (err, user) {
+ if (err) throw err;
+ if (user) {
+ if (self.id === user.id) return respond(true);
+ return respond(false, 'The specified email address is already in use.');
+ }
+ respond(true);
+ })
+ }
+ });
var validatePresenceOf = function(value) {
return value && value.length;
@@ -142,7 +145,7 @@ UserSchema.methods = {
encryptPassword: function(password) {
if (!password || !this.salt) return '';
var salt = new Buffer(this.salt, 'base64');
- return crypto.pbkdf2Sync(password, salt, 10000, 64).toString('base64');
+ return crypto.pbkdf2Sync(password, salt, 10000, 64, 'sha512').toString('base64');
}
};
diff --git a/app/templates/server/app.js b/app/templates/server/app.js
index f677d7a43..115b99c17 100644
--- a/app/templates/server/app.js
+++ b/app/templates/server/app.js
@@ -7,10 +7,16 @@
// Set default node environment to development
process.env.NODE_ENV = process.env.NODE_ENV || 'development';
-var express = require('express');<% if (filters.mongoose) { %>
-var mongoose = require('mongoose');<% } %>
+var express = require('express');
+var mongoose = require('mongoose');
+var fs = require('fs');
+var path = require('path');
+var formsAngular = require('forms-angular');
+var errors = require('./components/errors');
var config = require('./config/environment');
-<% if (filters.mongoose) { %>
+<% if(filters.auth) { %>
+ var auth = require('./auth/auth.service');
+<% } %>
// Connect to database
mongoose.connect(config.mongo.uri, config.mongo.options);
mongoose.connection.on('error', function(err) {
@@ -21,7 +27,7 @@ mongoose.connection.on('error', function(err) {
// Populate DB with sample data
if(config.seedDB) { require('./config/seed'); }
-<% } %>// Setup server
+// Setup server
var app = express();
var server = require('http').createServer(app);<% if (filters.socketio) { %>
var socketio = require('socket.io')(server, {
@@ -32,6 +38,34 @@ require('./config/socketio')(socketio);<% } %>
require('./config/express')(app);
require('./routes')(app);
+
+var DataFormHandler = new (formsAngular)(mongoose, app, {
+ urlPrefix: '/api/',
+ <% if(filters.jqUpload) { %>plugins: {
+ JQMongoFileUploader: { plugin: require('fng-jq-upload').Controller <% if(filters.auth) { %>, options: { inhibitAuthentication: true} <% } %>}
+ }<% } %><% if(filters.auth) { %> ,
+ authentication: auth.isAuthenticated()<% } %>
+});
+
+ var modelsPath = path.join(__dirname, 'forms-angular-models');
+fs.readdirSync(modelsPath).forEach(function (file) {
+ var fname = modelsPath + '/' + file;
+ if (fs.statSync(fname).isFile()) {
+ DataFormHandler.newResource(require(fname));
+ }
+ });
+
+ // All undefined asset or api routes should return a 404
+ app.route('/:url(auth|components|app|bower_components|assets)/*')
+ .get(errors[404]);
+
+ // All other routes should redirect to the index.html
+ app.route('/*')
+ .get(function(req, res) {
+ res.sendFile(app.get('appPath') + '/index.html');
+ });
+
+
// Start server
server.listen(config.port, config.ip, function () {
console.log('Express server listening on %d, in %s mode', config.port, app.get('env'));
diff --git a/app/templates/server/auth(auth)/auth.service.js b/app/templates/server/auth(auth)/auth.service.js
index 370dac51e..adc37fb7b 100644
--- a/app/templates/server/auth(auth)/auth.service.js
+++ b/app/templates/server/auth(auth)/auth.service.js
@@ -57,7 +57,7 @@ function hasRole(roleRequired) {
* Returns a jwt token signed by the app secret
*/
function signToken(id) {
- return jwt.sign({ _id: id }, config.secrets.session, { expiresInMinutes: 60*5 });
+ return jwt.sign({ _id: id }, config.secrets.session, { expiresIn: 60*60*5 });
}
/**
@@ -73,4 +73,4 @@ function setTokenCookie(req, res) {
exports.isAuthenticated = isAuthenticated;
exports.hasRole = hasRole;
exports.signToken = signToken;
-exports.setTokenCookie = setTokenCookie;
\ No newline at end of file
+exports.setTokenCookie = setTokenCookie;
diff --git a/app/templates/server/config/_local.env.js b/app/templates/server/config/_local.env.js
index c24fffd3a..89a3efbb2 100644
--- a/app/templates/server/config/_local.env.js
+++ b/app/templates/server/config/_local.env.js
@@ -7,7 +7,7 @@
module.exports = {
DOMAIN: 'http://localhost:9000',
- SESSION_SECRET: "<%= _.slugify(appname) + '-secret' %>",<% if (filters.facebookAuth) { %>
+ SESSION_SECRET: "<%= _s.slugify(appname) + '-secret' %>",<% if (filters.facebookAuth) { %>
FACEBOOK_ID: 'app-id',
FACEBOOK_SECRET: 'secret',<% } if (filters.twitterAuth) { %>
diff --git a/app/templates/server/config/_local.env.sample.js b/app/templates/server/config/_local.env.sample.js
index ac5a52a2e..f92300376 100644
--- a/app/templates/server/config/_local.env.sample.js
+++ b/app/templates/server/config/_local.env.sample.js
@@ -7,7 +7,7 @@
module.exports = {
DOMAIN: 'http://localhost:9000',
- SESSION_SECRET: '<%= _.slugify(appname) + "-secret" %>',<% if (filters.facebookAuth) { %>
+ SESSION_SECRET: '<%= _s.slugify(appname) + "-secret" %>',<% if (filters.facebookAuth) { %>
FACEBOOK_ID: 'app-id',
FACEBOOK_SECRET: 'secret',<% } if (filters.twitterAuth) { %>
diff --git a/app/templates/server/config/environment/development.js b/app/templates/server/config/environment/development.js
index fb33d6eab..e8189b0ea 100644
--- a/app/templates/server/config/environment/development.js
+++ b/app/templates/server/config/environment/development.js
@@ -5,7 +5,7 @@
module.exports = {
// MongoDB connection options
mongo: {
- uri: 'mongodb://localhost/<%= _.slugify(appname) %>-dev'
+ uri: 'mongodb://localhost/<%= _s.slugify(appname) %>-dev'
},
seedDB: true
diff --git a/app/templates/server/config/environment/index.js b/app/templates/server/config/environment/index.js
index a57261ddc..212de5842 100644
--- a/app/templates/server/config/environment/index.js
+++ b/app/templates/server/config/environment/index.js
@@ -29,7 +29,7 @@ var all = {
// Secret for session, you will want to change this and make it an environment variable
secrets: {
- session: '<%= _.slugify(_.humanize(appname)) + '-secret' %>'
+ session: '<%= appname + '-secret' %>'
},
// List of user roles
@@ -38,9 +38,7 @@ var all = {
// MongoDB connection options
mongo: {
options: {
- db: {
- safe: true
- }
+ useMongoClient: true
}
},
<% if(filters.facebookAuth) { %>
diff --git a/app/templates/server/config/environment/production.js b/app/templates/server/config/environment/production.js
index 1704df619..f22b36e40 100644
--- a/app/templates/server/config/environment/production.js
+++ b/app/templates/server/config/environment/production.js
@@ -18,6 +18,6 @@ module.exports = {
uri: process.env.MONGOLAB_URI ||
process.env.MONGOHQ_URL ||
process.env.OPENSHIFT_MONGODB_DB_URL+process.env.OPENSHIFT_APP_NAME ||
- 'mongodb://localhost/<%= _.slugify(appname) %>'
+ 'mongodb://localhost/<%= _s.slugify(appname) %>'
}
-};
\ No newline at end of file
+};
diff --git a/app/templates/server/config/environment/test.js b/app/templates/server/config/environment/test.js
index 711c98660..0ffe76da6 100644
--- a/app/templates/server/config/environment/test.js
+++ b/app/templates/server/config/environment/test.js
@@ -5,6 +5,6 @@
module.exports = {
// MongoDB connection options
mongo: {
- uri: 'mongodb://localhost/<%= _.slugify(appname) %>-test'
+ uri: 'mongodb://localhost/<%= _s.slugify(appname) %>-test'
}
-};
\ No newline at end of file
+};
diff --git a/app/templates/server/config/express.js b/app/templates/server/config/express.js
index f04098387..6b6233828 100644
--- a/app/templates/server/config/express.js
+++ b/app/templates/server/config/express.js
@@ -41,7 +41,7 @@ module.exports = function(app) {
saveUninitialized: true,
store: new mongoStore({
mongooseConnection: mongoose.connection,
- db: '<%= _.slugify(_.humanize(appname)) %>'
+ db: '<%= appname %>'
})
}));
<% } %>
@@ -60,4 +60,4 @@ module.exports = function(app) {
app.use(morgan('dev'));
app.use(errorHandler()); // Error handler - has to be last
}
-};
\ No newline at end of file
+};
diff --git a/app/templates/server/config/seed(mongoose).js b/app/templates/server/config/seed(mongoose).js
index 27ab19417..4eb00313d 100644
--- a/app/templates/server/config/seed(mongoose).js
+++ b/app/templates/server/config/seed(mongoose).js
@@ -11,10 +11,10 @@ var Thing = require('../api/thing/thing.model');
Thing.find({}).remove(function() {
Thing.create({
name : 'Development Tools',
- info : 'Integration with popular tools such as Bower, Grunt, Karma, Mocha, JSHint, Node Inspector, Livereload, Protractor, Jade, Stylus, Sass, CoffeeScript, and Less.'
+ info : 'Integration with popular tools such as Bower, Grunt, Karma, Mocha, JSHint, Node Inspector, Livereload, Protractor and Less.'
}, {
name : 'Server and Client integration',
- info : 'Built with a powerful and fun stack: MongoDB, Express, AngularJS, and Node.'
+ info : 'Built with a powerful and fun stack: MongoDB, Express, AngularJS, and Node (MEAN Stack) with the forms-angular library.'
}, {
name : 'Smart Build System',
info : 'Build system ignores `spec` files, allowing you to keep tests alongside code. Automatic injection of scripts and styles into your index.html'
@@ -46,4 +46,4 @@ User.find({}).remove(function() {
console.log('finished populating users');
}
);
-});<% } %>
\ No newline at end of file
+});<% } %>
diff --git a/app/templates/server/config/socketio(socketio).js b/app/templates/server/config/socketio(socketio).js
index 2fbbc07d6..b72f0fa29 100644
--- a/app/templates/server/config/socketio(socketio).js
+++ b/app/templates/server/config/socketio(socketio).js
@@ -54,4 +54,4 @@ module.exports = function (socketio) {
onConnect(socket);
console.info('[%s] CONNECTED', socket.address);
});
-};
\ No newline at end of file
+};
diff --git a/app/templates/server/forms-angular-models/applicant.js b/app/templates/server/forms-angular-models/applicant.js
new file mode 100644
index 000000000..977117a4f
--- /dev/null
+++ b/app/templates/server/forms-angular-models/applicant.js
@@ -0,0 +1,25 @@
+'use strict';
+
+var mongoose = require('mongoose');
+var Schema = mongoose.Schema;
+<% if(filters.jqUpload) { %>var jqUploads = require('fng-jq-upload');<% } %>
+
+var ApplicantSchema = new Schema({
+ surname: {type:String, required:true, index:true},
+ forename: {type:String, index:true}<% if(filters.uiDate) { %>,
+ dateOfBirth: {type:Date}<% } %><% if(filters.jqUpload) { %>,
+ photo: {type: [new Schema(jqUploads.FileSchema)], form: { directive: 'fng-jq-upload-form', fngJqUploadForm:{sizeLimit:524288, autoUpload:true, single:true, width: 100, height: 100 }}}<% } %><% if(filters.ckeditor) { %>,
+ whyApplied: {type: String, form: {type: 'textarea', editor: 'ckEditor'}}<% } %>,
+ status: {type: String, default:'Pending', enum:['Pending','Rejected','Shortlist']<% if(filters.select2) { %>, form: {select2: {}}<% } %><% if(filters.uiSelect) { %>, form: {size: 'small', directive: 'fng-ui-select', fngUiSelect:{theme: "bootstrap"}}<% } %>}
+});
+
+var Applicant;
+var modelName = 'Applicant';
+
+try {
+ Applicant = mongoose.model(modelName);
+} catch(e) {
+ Applicant = mongoose.model(modelName, ApplicantSchema);
+}
+
+module.exports = Applicant;
diff --git a/app/templates/server/routes.js b/app/templates/server/routes.js
index ebcd79dc6..43dd80e05 100644
--- a/app/templates/server/routes.js
+++ b/app/templates/server/routes.js
@@ -4,9 +4,6 @@
'use strict';
-var errors = require('./components/errors');
-var path = require('path');
-
module.exports = function(app) {
// Insert routes below
@@ -15,13 +12,4 @@ module.exports = function(app) {
app.use('/auth', require('./auth'));
<% } %>
- // All undefined asset or api routes should return a 404
- app.route('/:url(api|auth|components|app|bower_components|assets)/*')
- .get(errors[404]);
-
- // All other routes should redirect to the index.html
- app.route('/*')
- .get(function(req, res) {
- res.sendFile(path.resolve(app.get('appPath') + '/index.html'));
- });
};
diff --git a/generators/deploy/index.js b/generators/deploy/index.js
index 6a3d5ec9c..0a428d8ff 100644
--- a/generators/deploy/index.js
+++ b/generators/deploy/index.js
@@ -10,6 +10,6 @@ var Generator = module.exports = function Generator() {
util.inherits(Generator, yeoman.generators.NamedBase);
Generator.prototype.deprecated = function deprecated() {
- this.log(chalk.yellow(chalk.bold('yo angular-fullstack:deploy') + ' is deprecated, instead use: \n') +
- chalk.green('yo angular-fullstack:heroku') + ' or ' + chalk.green('yo angular-fullstack:openshift'));
-};
\ No newline at end of file
+ this.log(chalk.yellow(chalk.bold('yo fng:deploy') + ' is deprecated, instead use: \n') +
+ chalk.green('yo fng:heroku') + ' or ' + chalk.green('yo fng:openshift'));
+};
diff --git a/heroku/USAGE b/heroku/USAGE
index 85c5450ce..64bdaf29e 100644
--- a/heroku/USAGE
+++ b/heroku/USAGE
@@ -2,7 +2,7 @@ Description:
Initalizes a heroku app and generates a `dist` folder which is ready to push to heroku.
Example:
- yo angular-fullstack:heroku
+ yo fng:heroku
This will create:
a dist folder and initialize a heroku app
diff --git a/openshift/USAGE b/openshift/USAGE
index b3dd18759..ad2254185 100644
--- a/openshift/USAGE
+++ b/openshift/USAGE
@@ -2,7 +2,7 @@ Description:
Initalizes an openshift app and generates a `dist` folder and pushes it to openshift.
Example:
- yo angular-fullstack:openshift
+ yo fng:openshift
This will create:
- a dist folder and initialize an openshift app
\ No newline at end of file
+ a dist folder and initialize an openshift app
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 000000000..52f5a4ba0
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,6511 @@
+{
+ "name": "generator-fng",
+ "version": "0.2.23",
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "JSONStream": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.0.tgz",
+ "integrity": "sha1-aAq5rGVyqKGiB+CzhyHbHHeyFeU=",
+ "dev": true,
+ "requires": {
+ "jsonparse": "^1.2.0",
+ "through": ">=2.2.7 <3"
+ }
+ },
+ "abbrev": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz",
+ "integrity": "sha1-kbR5JYinc4wl813W9jdSovh3YTU="
+ },
+ "acorn": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz",
+ "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo="
+ },
+ "acorn-jsx": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz",
+ "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=",
+ "requires": {
+ "acorn": "^3.0.4"
+ }
+ },
+ "add-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz",
+ "integrity": "sha1-anmQQ3ynNtXhKI25K9MmbV9csqo=",
+ "dev": true
+ },
+ "align-text": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
+ "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "kind-of": "^3.0.2",
+ "longest": "^1.0.1",
+ "repeat-string": "^1.5.2"
+ }
+ },
+ "amdefine": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
+ "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU="
+ },
+ "ansi": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.1.tgz",
+ "integrity": "sha1-DELU+xcWDVqa8eSEus4cZpIsGyE="
+ },
+ "ansi-escapes": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz",
+ "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4="
+ },
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
+ },
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
+ },
+ "archive-type": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/archive-type/-/archive-type-3.2.0.tgz",
+ "integrity": "sha1-nNnABpV+vpX62tW9YJiUKoE3N/Y=",
+ "requires": {
+ "file-type": "^3.1.0"
+ }
+ },
+ "are-we-there-yet": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.2.tgz",
+ "integrity": "sha1-gORw6VoIR5T+GJkmLFZnxuiN4bM=",
+ "requires": {
+ "delegates": "^1.0.0",
+ "readable-stream": "^2.0.0 || ^1.1.13"
+ }
+ },
+ "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": {
+ "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.4.0",
+ "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.4.0.tgz",
+ "integrity": "sha1-jN2PusTi0uoefi6Al8QvRCKA+Fs=",
+ "dev": true
+ }
+ }
+ },
+ "arr-diff": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
+ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
+ "requires": {
+ "arr-flatten": "^1.0.1"
+ }
+ },
+ "arr-flatten": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.1.tgz",
+ "integrity": "sha1-5f/lTUXhnzLyFukeuZyM6JK7YEs="
+ },
+ "array-differ": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz",
+ "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE="
+ },
+ "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="
+ },
+ "array-ify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz",
+ "integrity": "sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4=",
+ "dev": true
+ },
+ "array-union": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
+ "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
+ "requires": {
+ "array-uniq": "^1.0.1"
+ }
+ },
+ "array-uniq": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
+ "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY="
+ },
+ "array-unique": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
+ "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM="
+ },
+ "arrify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
+ "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0="
+ },
+ "asn1": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz",
+ "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y="
+ },
+ "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="
+ },
+ "assertion-error": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.0.2.tgz",
+ "integrity": "sha1-E8pRXYYgbaC6xm6DTdOX2HWBCUw=",
+ "dev": true
+ },
+ "ast-query": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ast-query/-/ast-query-2.0.0.tgz",
+ "integrity": "sha1-NYjnmtjeB85Q3x54HMK9of1ppFM=",
+ "requires": {
+ "acorn-jsx": "^3.0.1",
+ "class-extend": "^0.1.1",
+ "escodegen-wallaby": "^1.6.7",
+ "lodash": "^4.6.1",
+ "traverse": "^0.6.6"
+ },
+ "dependencies": {
+ "lodash": {
+ "version": "4.17.4",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
+ "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4="
+ }
+ }
+ },
+ "async": {
+ "version": "0.9.2",
+ "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz",
+ "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0="
+ },
+ "asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
+ },
+ "aws-sign2": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz",
+ "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8="
+ },
+ "aws4": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.5.0.tgz",
+ "integrity": "sha1-Cin/t5wxyecS7rCH6OemS0pW11U="
+ },
+ "balanced-match": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz",
+ "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg="
+ },
+ "bcrypt-pbkdf": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz",
+ "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=",
+ "optional": true,
+ "requires": {
+ "tweetnacl": "^0.14.3"
+ }
+ },
+ "beeper": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz",
+ "integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak="
+ },
+ "bin-version": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/bin-version/-/bin-version-1.0.4.tgz",
+ "integrity": "sha1-nrSY7m/Xb3q5p8FgQ2+JV5Q1144=",
+ "requires": {
+ "find-versions": "^1.0.0"
+ }
+ },
+ "bin-version-check": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/bin-version-check/-/bin-version-check-2.1.0.tgz",
+ "integrity": "sha1-5OXfKQuQaffRETJAMe/BP90RpbA=",
+ "requires": {
+ "bin-version": "^1.0.0",
+ "minimist": "^1.1.0",
+ "semver": "^4.0.3",
+ "semver-truncate": "^1.0.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "4.3.6",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz",
+ "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto="
+ }
+ }
+ },
+ "binaryextensions": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-1.0.1.tgz",
+ "integrity": "sha1-HmN0iLNbWL2l9HdL+WpSEqjJB1U="
+ },
+ "bl": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.0.tgz",
+ "integrity": "sha1-E5fn7ELF9dw4dHDFAONKn2vp6pg=",
+ "requires": {
+ "readable-stream": "^2.0.5"
+ }
+ },
+ "bluebird": {
+ "version": "3.4.7",
+ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz",
+ "integrity": "sha1-9y12C+Cbf3bQjtj66Ysomo0F+rM=",
+ "dev": true
+ },
+ "boolbase": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
+ "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24="
+ },
+ "boom": {
+ "version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz",
+ "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=",
+ "requires": {
+ "hoek": "2.x.x"
+ }
+ },
+ "bower-config": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/bower-config/-/bower-config-0.5.2.tgz",
+ "integrity": "sha1-H30uiZ6ZtwwpphPnDUxkWQQUsi4=",
+ "requires": {
+ "graceful-fs": "~2.0.0",
+ "mout": "~0.9.0",
+ "optimist": "~0.6.0",
+ "osenv": "0.0.3"
+ },
+ "dependencies": {
+ "graceful-fs": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-2.0.3.tgz",
+ "integrity": "sha1-fNLNsiiko/Nule+mzBQt59GhNtA="
+ }
+ }
+ },
+ "boxen": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/boxen/-/boxen-0.3.1.tgz",
+ "integrity": "sha1-p9iYJDrmIvertrtgTXQKdsalRhs=",
+ "requires": {
+ "chalk": "^1.1.1",
+ "filled-array": "^1.0.0",
+ "object-assign": "^4.0.1",
+ "repeating": "^2.0.0",
+ "string-width": "^1.0.1",
+ "widest-line": "^1.0.0"
+ },
+ "dependencies": {
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
+ }
+ }
+ },
+ "brace-expansion": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz",
+ "integrity": "sha1-cZfX6qm4fmSDkOph/GbIRCdCDfk=",
+ "requires": {
+ "balanced-match": "^0.4.1",
+ "concat-map": "0.0.1"
+ }
+ },
+ "braces": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
+ "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
+ "requires": {
+ "expand-range": "^1.8.1",
+ "preserve": "^0.2.0",
+ "repeat-element": "^1.1.2"
+ }
+ },
+ "buffer-crc32": {
+ "version": "0.2.13",
+ "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
+ "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI="
+ },
+ "buffer-shims": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz",
+ "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E="
+ },
+ "buffer-to-vinyl": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/buffer-to-vinyl/-/buffer-to-vinyl-1.1.0.tgz",
+ "integrity": "sha1-APFfruOreh3aLN5tkSG//dB7ImI=",
+ "requires": {
+ "file-type": "^3.1.0",
+ "readable-stream": "^2.0.2",
+ "uuid": "^2.0.1",
+ "vinyl": "^1.0.0"
+ }
+ },
+ "builtin-modules": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
+ "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8="
+ },
+ "camelcase": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
+ "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8="
+ },
+ "camelcase-keys": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
+ "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
+ "requires": {
+ "camelcase": "^2.0.0",
+ "map-obj": "^1.0.0"
+ }
+ },
+ "capture-stack-trace": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz",
+ "integrity": "sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0="
+ },
+ "caseless": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz",
+ "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c="
+ },
+ "caw": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/caw/-/caw-1.2.0.tgz",
+ "integrity": "sha1-/7Im/n78VHKI3GLuPpcHPCEtEDQ=",
+ "requires": {
+ "get-proxy": "^1.0.1",
+ "is-obj": "^1.0.0",
+ "object-assign": "^3.0.0",
+ "tunnel-agent": "^0.4.0"
+ },
+ "dependencies": {
+ "object-assign": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz",
+ "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I="
+ }
+ }
+ },
+ "center-align": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
+ "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "align-text": "^0.1.3",
+ "lazy-cache": "^1.0.3"
+ }
+ },
+ "chai": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/chai/-/chai-3.5.0.tgz",
+ "integrity": "sha1-TQJjewZ/6Vi9v906QOxW/vc3Mkc=",
+ "dev": true,
+ "requires": {
+ "assertion-error": "^1.0.1",
+ "deep-eql": "^0.1.3",
+ "type-detect": "^1.0.0"
+ }
+ },
+ "chalk": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.1.tgz",
+ "integrity": "sha1-UJr7ZwZudJn36zU1x3RFdyri0Bk=",
+ "requires": {
+ "ansi-styles": "^2.1.0",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ }
+ },
+ "cheerio": {
+ "version": "0.19.0",
+ "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.19.0.tgz",
+ "integrity": "sha1-dy5wFfLuKZZQltcepBdbdas1SSU=",
+ "requires": {
+ "css-select": "~1.0.0",
+ "dom-serializer": "~0.1.0",
+ "entities": "~1.1.1",
+ "htmlparser2": "~3.8.1",
+ "lodash": "^3.2.0"
+ }
+ },
+ "class-extend": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/class-extend/-/class-extend-0.1.2.tgz",
+ "integrity": "sha1-gFeoKwD1P4Kl1ixQ74z/3sb6vDQ=",
+ "requires": {
+ "object-assign": "^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.1"
+ },
+ "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",
+ "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"
+ }
+ }
+ }
+ },
+ "cli-boxes": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz",
+ "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM="
+ },
+ "cli-cursor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz",
+ "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=",
+ "requires": {
+ "restore-cursor": "^1.0.1"
+ }
+ },
+ "cli-list": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmjs.org/cli-list/-/cli-list-0.1.8.tgz",
+ "integrity": "sha1-rubUXExZv4AGi7loCJ+wbxrt3Ao="
+ },
+ "cli-table": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.1.tgz",
+ "integrity": "sha1-9TsFJmqLGguTSz0IIebi3FkUriM=",
+ "requires": {
+ "colors": "1.0.3"
+ }
+ },
+ "cli-width": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-1.1.1.tgz",
+ "integrity": "sha1-pNKT72frt7iNSk1CwMzwDE0eNm0="
+ },
+ "cliui": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
+ "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "center-align": "^0.1.1",
+ "right-align": "^0.1.1",
+ "wordwrap": "0.0.2"
+ },
+ "dependencies": {
+ "wordwrap": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz",
+ "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "clone": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz",
+ "integrity": "sha1-Jgt6meux7f4kdTgXX3gyQ8sZ0Uk="
+ },
+ "clone-regexp": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-1.0.0.tgz",
+ "integrity": "sha1-6uCiQT9VwJQvgYwin+/OhF1/Oxw=",
+ "requires": {
+ "is-regexp": "^1.0.0",
+ "is-supported-regexp-flag": "^1.0.0"
+ }
+ },
+ "clone-stats": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz",
+ "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE="
+ },
+ "co": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/co/-/co-3.1.0.tgz",
+ "integrity": "sha1-TqVOpaCJOBUxheFSEMaNkJK8G3g="
+ },
+ "code-point-at": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
+ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
+ },
+ "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": "1.0.3",
+ "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz",
+ "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs="
+ },
+ "combined-stream": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz",
+ "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=",
+ "requires": {
+ "delayed-stream": "~1.0.0"
+ }
+ },
+ "commander": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz",
+ "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=",
+ "requires": {
+ "graceful-readlink": ">= 1.0.0"
+ }
+ },
+ "commondir": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
+ "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs="
+ },
+ "compare-func": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-1.3.2.tgz",
+ "integrity": "sha1-md0LpFfh+bxyKxLAjsM+6rMfpkg=",
+ "dev": true,
+ "requires": {
+ "array-ify": "^1.0.0",
+ "dot-prop": "^3.0.0"
+ }
+ },
+ "component-emitter": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
+ "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=",
+ "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="
+ },
+ "concat-stream": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz",
+ "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=",
+ "requires": {
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.2.2",
+ "typedarray": "^0.0.6"
+ }
+ },
+ "config-chain": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.11.tgz",
+ "integrity": "sha1-q6CXR9++TD5w52am5BWG4YWfxvI=",
+ "requires": {
+ "ini": "^1.3.4",
+ "proto-list": "~1.2.1"
+ }
+ },
+ "configstore": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/configstore/-/configstore-1.4.0.tgz",
+ "integrity": "sha1-w1eB0FAdJowlxUuLF/YkDopPsCE=",
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "mkdirp": "^0.5.0",
+ "object-assign": "^4.0.1",
+ "os-tmpdir": "^1.0.0",
+ "osenv": "^0.1.0",
+ "uuid": "^2.0.1",
+ "write-file-atomic": "^1.1.2",
+ "xdg-basedir": "^2.0.0"
+ },
+ "dependencies": {
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
+ },
+ "osenv": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz",
+ "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=",
+ "requires": {
+ "os-homedir": "^1.0.0",
+ "os-tmpdir": "^1.0.0"
+ }
+ },
+ "xdg-basedir": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-2.0.0.tgz",
+ "integrity": "sha1-7byQPMOF/ARSPZZqM1UEtVBNG9I=",
+ "requires": {
+ "os-homedir": "^1.0.0"
+ }
+ }
+ }
+ },
+ "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"
+ }
+ },
+ "conventional-changelog": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-0.5.3.tgz",
+ "integrity": "sha1-V8CdeLY5EUntIQ2lxBAIZnD9uYI=",
+ "dev": true,
+ "requires": {
+ "add-stream": "^1.0.0",
+ "compare-func": "^1.3.1",
+ "conventional-changelog-writer": "^0.4.1",
+ "conventional-commits-parser": "^0.1.0",
+ "dateformat": "^1.0.11",
+ "get-pkg-repo": "^0.1.0",
+ "git-raw-commits": "^0.1.2",
+ "git-semver-tags": "^1.0.0",
+ "lodash": "^3.9.3",
+ "meow": "^3.3.0",
+ "q": "^1.4.1",
+ "read-pkg": "^1.1.0",
+ "read-pkg-up": "^1.0.1",
+ "semver": "^5.0.1",
+ "tempfile": "^1.1.1",
+ "through2": "^2.0.0"
+ },
+ "dependencies": {
+ "through2": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
+ "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
+ "dev": true,
+ "requires": {
+ "readable-stream": "^2.1.5",
+ "xtend": "~4.0.1"
+ }
+ }
+ }
+ },
+ "conventional-changelog-writer": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-0.4.2.tgz",
+ "integrity": "sha1-zLA8Xr0XzrlKI2y4Cyf072vudzE=",
+ "dev": true,
+ "requires": {
+ "compare-func": "^1.3.1",
+ "conventional-commits-filter": "^0.1.0",
+ "dateformat": "^1.0.11",
+ "handlebars": "^4.0.2",
+ "lodash": "^4.0.0",
+ "meow": "^3.3.0",
+ "semver": "^5.0.1",
+ "split": "^1.0.0",
+ "through2": "^2.0.0"
+ },
+ "dependencies": {
+ "lodash": {
+ "version": "4.17.4",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
+ "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=",
+ "dev": true
+ },
+ "through2": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
+ "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
+ "dev": true,
+ "requires": {
+ "readable-stream": "^2.1.5",
+ "xtend": "~4.0.1"
+ }
+ }
+ }
+ },
+ "conventional-commits-filter": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-0.1.1.tgz",
+ "integrity": "sha1-2dJsdZn4nePSScuj3veRH8UcDas=",
+ "dev": true,
+ "requires": {
+ "is-subset": "^0.1.1",
+ "modify-values": "^1.0.0"
+ }
+ },
+ "conventional-commits-parser": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-0.1.2.tgz",
+ "integrity": "sha1-SmJAEGNPAhIlIOy68ZyguiMSBDc=",
+ "dev": true,
+ "requires": {
+ "JSONStream": "^1.0.4",
+ "is-text-path": "^1.0.0",
+ "lodash": "^3.3.1",
+ "meow": "^3.3.0",
+ "split": "^1.0.0",
+ "through2": "^2.0.0",
+ "trim-off-newlines": "^1.0.0"
+ },
+ "dependencies": {
+ "through2": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
+ "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
+ "dev": true,
+ "requires": {
+ "readable-stream": "^2.1.5",
+ "xtend": "~4.0.1"
+ }
+ }
+ }
+ },
+ "convert-source-map": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.3.0.tgz",
+ "integrity": "sha1-6fPpxuJyjvwmdmlqcOs4L3MQamc="
+ },
+ "cookiejar": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.0.6.tgz",
+ "integrity": "sha1-Cr81atANHFohnYjURRgEbdAmrP4=",
+ "dev": true
+ },
+ "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="
+ },
+ "create-error-class": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz",
+ "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=",
+ "requires": {
+ "capture-stack-trace": "^1.0.0"
+ }
+ },
+ "cross-spawn": {
+ "version": "0.2.9",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-0.2.9.tgz",
+ "integrity": "sha1-vWf5bAfvtjA7f+lMHpefiEeOCjk=",
+ "requires": {
+ "lru-cache": "^2.5.0"
+ }
+ },
+ "cross-spawn-async": {
+ "version": "2.2.5",
+ "resolved": "https://registry.npmjs.org/cross-spawn-async/-/cross-spawn-async-2.2.5.tgz",
+ "integrity": "sha1-hF/wwINKPe2dFg2sptOQkGuyiMw=",
+ "requires": {
+ "lru-cache": "^4.0.0",
+ "which": "^1.2.8"
+ },
+ "dependencies": {
+ "lru-cache": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.2.tgz",
+ "integrity": "sha1-HRdnnAac2l0ECZGgnbwsDbN35V4=",
+ "requires": {
+ "pseudomap": "^1.0.1",
+ "yallist": "^2.0.0"
+ }
+ }
+ }
+ },
+ "cryptiles": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz",
+ "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=",
+ "requires": {
+ "boom": "2.x.x"
+ }
+ },
+ "css-select": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.0.0.tgz",
+ "integrity": "sha1-sRIcpRhI3SZOIkTQWM7iVN7rRLA=",
+ "requires": {
+ "boolbase": "~1.0.0",
+ "css-what": "1.0",
+ "domutils": "1.4",
+ "nth-check": "~1.0.0"
+ }
+ },
+ "css-what": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-1.0.0.tgz",
+ "integrity": "sha1-18wt9FGAZm+Z0rFEYmOUaeAPc2w="
+ },
+ "currently-unhandled": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
+ "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
+ "requires": {
+ "array-find-index": "^1.0.1"
+ }
+ },
+ "dargs": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/dargs/-/dargs-4.1.0.tgz",
+ "integrity": "sha1-A6nbtLXC8Tm/FK5T8LiipqhvThc=",
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ }
+ },
+ "dashdash": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
+ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
+ "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="
+ }
+ }
+ },
+ "date-now": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz",
+ "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=",
+ "dev": true
+ },
+ "dateformat": {
+ "version": "1.0.12",
+ "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz",
+ "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=",
+ "requires": {
+ "get-stdin": "^4.0.1",
+ "meow": "^3.3.0"
+ }
+ },
+ "debug": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.0.tgz",
+ "integrity": "sha1-vFlryr52F/Edn6FTYe3tVgi4SZs=",
+ "requires": {
+ "ms": "0.7.2"
+ }
+ },
+ "decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
+ },
+ "decompress": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/decompress/-/decompress-3.0.0.tgz",
+ "integrity": "sha1-rx3VDQbjv8QyRh033hGzjA2ZG+0=",
+ "requires": {
+ "buffer-to-vinyl": "^1.0.0",
+ "concat-stream": "^1.4.6",
+ "decompress-tar": "^3.0.0",
+ "decompress-tarbz2": "^3.0.0",
+ "decompress-targz": "^3.0.0",
+ "decompress-unzip": "^3.0.0",
+ "stream-combiner2": "^1.1.1",
+ "vinyl-assign": "^1.0.1",
+ "vinyl-fs": "^2.2.0"
+ }
+ },
+ "decompress-tar": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-3.1.0.tgz",
+ "integrity": "sha1-IXx4n5uURQ76rcXF5TeXj8MzxGY=",
+ "requires": {
+ "is-tar": "^1.0.0",
+ "object-assign": "^2.0.0",
+ "strip-dirs": "^1.0.0",
+ "tar-stream": "^1.1.1",
+ "through2": "^0.6.1",
+ "vinyl": "^0.4.3"
+ },
+ "dependencies": {
+ "clone": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz",
+ "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8="
+ },
+ "vinyl": {
+ "version": "0.4.6",
+ "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz",
+ "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=",
+ "requires": {
+ "clone": "^0.2.0",
+ "clone-stats": "^0.0.1"
+ }
+ }
+ }
+ },
+ "decompress-tarbz2": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-3.1.0.tgz",
+ "integrity": "sha1-iyOTVoE1X58YnYclag+L3ZbZZm0=",
+ "requires": {
+ "is-bzip2": "^1.0.0",
+ "object-assign": "^2.0.0",
+ "seek-bzip": "^1.0.3",
+ "strip-dirs": "^1.0.0",
+ "tar-stream": "^1.1.1",
+ "through2": "^0.6.1",
+ "vinyl": "^0.4.3"
+ },
+ "dependencies": {
+ "clone": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz",
+ "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8="
+ },
+ "vinyl": {
+ "version": "0.4.6",
+ "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz",
+ "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=",
+ "requires": {
+ "clone": "^0.2.0",
+ "clone-stats": "^0.0.1"
+ }
+ }
+ }
+ },
+ "decompress-targz": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-3.1.0.tgz",
+ "integrity": "sha1-ssE9+YFmJomRtxXWRH9kLpaW9aA=",
+ "requires": {
+ "is-gzip": "^1.0.0",
+ "object-assign": "^2.0.0",
+ "strip-dirs": "^1.0.0",
+ "tar-stream": "^1.1.1",
+ "through2": "^0.6.1",
+ "vinyl": "^0.4.3"
+ },
+ "dependencies": {
+ "clone": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz",
+ "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8="
+ },
+ "vinyl": {
+ "version": "0.4.6",
+ "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz",
+ "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=",
+ "requires": {
+ "clone": "^0.2.0",
+ "clone-stats": "^0.0.1"
+ }
+ }
+ }
+ },
+ "decompress-unzip": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-3.4.0.tgz",
+ "integrity": "sha1-YUdbQVIGa74/7hL51inRX+ZHjus=",
+ "requires": {
+ "is-zip": "^1.0.0",
+ "read-all-stream": "^3.0.0",
+ "stat-mode": "^0.2.0",
+ "strip-dirs": "^1.0.0",
+ "through2": "^2.0.0",
+ "vinyl": "^1.0.0",
+ "yauzl": "^2.2.1"
+ },
+ "dependencies": {
+ "through2": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
+ "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
+ "requires": {
+ "readable-stream": "^2.1.5",
+ "xtend": "~4.0.1"
+ }
+ }
+ }
+ },
+ "deep-eql": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz",
+ "integrity": "sha1-71WKyrjeJSBs1xOQbXTlaTDrafI=",
+ "dev": true,
+ "requires": {
+ "type-detect": "0.1.1"
+ },
+ "dependencies": {
+ "type-detect": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-0.1.1.tgz",
+ "integrity": "sha1-C6XsKohWQORw6k6FBZcZANrFiCI=",
+ "dev": true
+ }
+ }
+ },
+ "deep-extend": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.1.tgz",
+ "integrity": "sha1-7+QRPQgIX05vlod1mBD4B0aeIlM="
+ },
+ "deep-is": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
+ "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ="
+ },
+ "default-uid": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/default-uid/-/default-uid-1.0.0.tgz",
+ "integrity": "sha1-/O+p359axAyJFtkS3R/hFGqjxZ4="
+ },
+ "delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
+ },
+ "delegates": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
+ "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o="
+ },
+ "detect-conflict": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/detect-conflict/-/detect-conflict-1.0.1.tgz",
+ "integrity": "sha1-CIZXpmqWHAUBnbfEIwiDsca0F24="
+ },
+ "detect-newline": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-1.0.3.tgz",
+ "integrity": "sha1-6XsQA4d9cMCa8a81v63/Fo3kkg0=",
+ "requires": {
+ "get-stdin": "^4.0.1",
+ "minimist": "^1.1.0"
+ }
+ },
+ "diff": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-1.4.0.tgz",
+ "integrity": "sha1-fyjS657nsVqX79ic5j3P2qPMur8="
+ },
+ "dom-serializer": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz",
+ "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=",
+ "requires": {
+ "domelementtype": "~1.1.1",
+ "entities": "~1.1.1"
+ },
+ "dependencies": {
+ "domelementtype": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz",
+ "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs="
+ }
+ }
+ },
+ "domelementtype": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz",
+ "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI="
+ },
+ "domhandler": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz",
+ "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=",
+ "requires": {
+ "domelementtype": "1"
+ }
+ },
+ "domutils": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.4.3.tgz",
+ "integrity": "sha1-CGVRN5bGswYDGFDhdVFrr4C3Km8=",
+ "requires": {
+ "domelementtype": "1"
+ }
+ },
+ "dot-prop": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-3.0.0.tgz",
+ "integrity": "sha1-G3CK8JSknJoOfbyteQq6U52sEXc=",
+ "requires": {
+ "is-obj": "^1.0.0"
+ }
+ },
+ "downgrade-root": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/downgrade-root/-/downgrade-root-1.2.2.tgz",
+ "integrity": "sha1-UxMZcVsOgf/MIusoR4uidkPhLGw=",
+ "requires": {
+ "default-uid": "^1.0.0",
+ "is-root": "^1.0.0"
+ }
+ },
+ "download": {
+ "version": "4.4.3",
+ "resolved": "https://registry.npmjs.org/download/-/download-4.4.3.tgz",
+ "integrity": "sha1-qlX9rTktldS2jowr4D4MKqIbqaw=",
+ "requires": {
+ "caw": "^1.0.1",
+ "concat-stream": "^1.4.7",
+ "each-async": "^1.0.0",
+ "filenamify": "^1.0.1",
+ "got": "^5.0.0",
+ "gulp-decompress": "^1.2.0",
+ "gulp-rename": "^1.2.0",
+ "is-url": "^1.2.0",
+ "object-assign": "^4.0.1",
+ "read-all-stream": "^3.0.0",
+ "readable-stream": "^2.0.2",
+ "stream-combiner2": "^1.1.1",
+ "vinyl": "^1.0.0",
+ "vinyl-fs": "^2.2.0",
+ "ware": "^1.2.0"
+ },
+ "dependencies": {
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
+ }
+ }
+ },
+ "duplexer2": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
+ "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=",
+ "requires": {
+ "readable-stream": "^2.0.2"
+ }
+ },
+ "duplexify": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.0.tgz",
+ "integrity": "sha1-GqdzAC4VeEV+nZ1KULDMquvL1gQ=",
+ "requires": {
+ "end-of-stream": "1.0.0",
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.0",
+ "stream-shift": "^1.0.0"
+ },
+ "dependencies": {
+ "end-of-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.0.0.tgz",
+ "integrity": "sha1-1FlucCc0qT5A6a+GQxnqvZn/Lw4=",
+ "requires": {
+ "once": "~1.3.0"
+ }
+ }
+ }
+ },
+ "each-async": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/each-async/-/each-async-1.1.1.tgz",
+ "integrity": "sha1-3uUim98KtrogEqOV4bhpq/iBNHM=",
+ "requires": {
+ "onetime": "^1.0.0",
+ "set-immediate-shim": "^1.0.0"
+ }
+ },
+ "ecc-jsbn": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz",
+ "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=",
+ "optional": true,
+ "requires": {
+ "jsbn": "~0.1.0"
+ }
+ },
+ "editions": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/editions/-/editions-1.3.3.tgz",
+ "integrity": "sha1-CQcQG92iD6w8vjNMJ8vQaI3Jmls="
+ },
+ "ejs": {
+ "version": "2.5.5",
+ "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.5.5.tgz",
+ "integrity": "sha1-bvTpVOp9z1T2aq0v56pCGTLZ7Xc="
+ },
+ "end-of-stream": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.1.0.tgz",
+ "integrity": "sha1-6TUyWLqpEIll78QcsO+K3i88+wc=",
+ "requires": {
+ "once": "~1.3.0"
+ }
+ },
+ "entities": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz",
+ "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA="
+ },
+ "error": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/error/-/error-7.0.2.tgz",
+ "integrity": "sha1-pfdf/02ZJhJt2sDqXcOOaJFTywI=",
+ "requires": {
+ "string-template": "~0.2.1",
+ "xtend": "~4.0.0"
+ }
+ },
+ "error-ex": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.0.tgz",
+ "integrity": "sha1-5ntD8+gsluo6WE/+4Ln8MyXYAtk=",
+ "requires": {
+ "is-arrayish": "^0.2.1"
+ }
+ },
+ "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="
+ },
+ "escodegen-wallaby": {
+ "version": "1.6.10",
+ "resolved": "https://registry.npmjs.org/escodegen-wallaby/-/escodegen-wallaby-1.6.10.tgz",
+ "integrity": "sha1-q//jMBsg3zRiKbUc8egnhzr/HgY=",
+ "requires": {
+ "esprima": "^2.7.1",
+ "estraverse": "^1.9.1",
+ "esutils": "^2.0.2",
+ "optionator": "^0.8.1",
+ "source-map": "~0.2.0"
+ }
+ },
+ "esprima": {
+ "version": "2.7.3",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
+ "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE="
+ },
+ "estraverse": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz",
+ "integrity": "sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q="
+ },
+ "esutils": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
+ "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs="
+ },
+ "eventemitter2": {
+ "version": "0.4.14",
+ "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz",
+ "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=",
+ "dev": true
+ },
+ "execall": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/execall/-/execall-1.0.0.tgz",
+ "integrity": "sha1-c9CQTjlbPKsGWLCNCewlMH8pu3M=",
+ "requires": {
+ "clone-regexp": "^1.0.0"
+ }
+ },
+ "exit": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
+ "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=",
+ "dev": true
+ },
+ "exit-hook": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz",
+ "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g="
+ },
+ "expand-brackets": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
+ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
+ "requires": {
+ "is-posix-bracket": "^0.1.0"
+ }
+ },
+ "expand-range": {
+ "version": "1.8.2",
+ "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz",
+ "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=",
+ "requires": {
+ "fill-range": "^2.1.0"
+ }
+ },
+ "extend": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz",
+ "integrity": "sha1-WkdDU7nzNT3dgXbf03uRyDpG8dQ="
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ },
+ "external-editor": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-1.1.1.tgz",
+ "integrity": "sha1-Etew24UPf/fnCBuvQAVwAGDEYAs=",
+ "requires": {
+ "extend": "^3.0.0",
+ "spawn-sync": "^1.0.15",
+ "tmp": "^0.0.29"
+ }
+ },
+ "extglob": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
+ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
+ "requires": {
+ "is-extglob": "^1.0.0"
+ },
+ "dependencies": {
+ "is-extglob": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
+ "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA="
+ }
+ }
+ },
+ "extsprintf": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz",
+ "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA="
+ },
+ "fancy-log": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.0.tgz",
+ "integrity": "sha1-Rb4X0Cu5kX1gzP/UmVyZnmyMmUg=",
+ "requires": {
+ "chalk": "^1.1.1",
+ "time-stamp": "^1.0.0"
+ }
+ },
+ "fast-levenshtein": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc="
+ },
+ "fd-slicer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz",
+ "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=",
+ "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=",
+ "requires": {
+ "escape-string-regexp": "^1.0.5",
+ "object-assign": "^4.1.0"
+ },
+ "dependencies": {
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
+ }
+ }
+ },
+ "file-type": {
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz",
+ "integrity": "sha1-JXoHg4TR24CHvESdEH1SpSZyuek="
+ },
+ "filename-regex": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.0.tgz",
+ "integrity": "sha1-mW4+gEebmLmJfxWopYs9CE6SZ3U="
+ },
+ "filename-reserved-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-1.0.0.tgz",
+ "integrity": "sha1-5hz4BfDeHJhFZ9A4bcXfUO5a9+Q="
+ },
+ "filenamify": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-1.2.1.tgz",
+ "integrity": "sha1-qfL/0RxQO+0wABUCknI3jx8TZaU=",
+ "requires": {
+ "filename-reserved-regex": "^1.0.0",
+ "strip-outer": "^1.0.0",
+ "trim-repeated": "^1.0.0"
+ }
+ },
+ "fill-range": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz",
+ "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=",
+ "requires": {
+ "is-number": "^2.1.0",
+ "isobject": "^2.0.0",
+ "randomatic": "^1.1.3",
+ "repeat-element": "^1.1.2",
+ "repeat-string": "^1.5.2"
+ }
+ },
+ "filled-array": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/filled-array/-/filled-array-1.1.0.tgz",
+ "integrity": "sha1-w8T2xmO5I0WamqKZEtLQMfFQf4Q="
+ },
+ "find-up": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
+ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
+ "requires": {
+ "path-exists": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
+ }
+ },
+ "find-versions": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-1.2.1.tgz",
+ "integrity": "sha1-y96fEuOFdaCvG+G5osXV/Y8Ya2I=",
+ "requires": {
+ "array-uniq": "^1.0.0",
+ "get-stdin": "^4.0.1",
+ "meow": "^3.5.0",
+ "semver-regex": "^1.0.0"
+ }
+ },
+ "findup-sync": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.2.1.tgz",
+ "integrity": "sha1-4KkKRQB1xJRm7lE3MgV1FLgeh4w=",
+ "requires": {
+ "glob": "~4.3.0"
+ },
+ "dependencies": {
+ "glob": {
+ "version": "4.3.5",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-4.3.5.tgz",
+ "integrity": "sha1-gPuwjKVA8jiszl0R0em8QedRc9M=",
+ "requires": {
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^2.0.1",
+ "once": "^1.3.0"
+ }
+ },
+ "minimatch": {
+ "version": "2.0.10",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz",
+ "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=",
+ "requires": {
+ "brace-expansion": "^1.0.0"
+ }
+ }
+ }
+ },
+ "first-chunk-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz",
+ "integrity": "sha1-Wb+1DNkF9g18OUzT2ayqtOatk04="
+ },
+ "for-in": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.6.tgz",
+ "integrity": "sha1-yfluib+tGKVFr17D7TUqHZ5bTcg="
+ },
+ "for-own": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.4.tgz",
+ "integrity": "sha1-AUm0GjkIjHUV9R6+HBOG1F+TUHI=",
+ "requires": {
+ "for-in": "^0.1.5"
+ }
+ },
+ "foreachasync": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/foreachasync/-/foreachasync-3.0.0.tgz",
+ "integrity": "sha1-VQKYfchxS+M5IJfzLgBxyd7gfPY="
+ },
+ "forever-agent": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+ "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
+ },
+ "form-data": {
+ "version": "1.0.0-rc3",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc3.tgz",
+ "integrity": "sha1-01vGLn+8KTeuePlIqqDTjZBgdXc=",
+ "dev": true,
+ "requires": {
+ "async": "^1.4.0",
+ "combined-stream": "^1.0.5",
+ "mime-types": "^2.1.3"
+ },
+ "dependencies": {
+ "async": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
+ "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
+ "dev": true
+ }
+ }
+ },
+ "formatio": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/formatio/-/formatio-1.1.1.tgz",
+ "integrity": "sha1-XtPM1jZVEJc4NGXZlhmRAOhhYek=",
+ "requires": {
+ "samsam": "~1.1"
+ }
+ },
+ "formidable": {
+ "version": "1.0.17",
+ "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.0.17.tgz",
+ "integrity": "sha1-71SRSQ+UM7cF+qdyScmQKa40hVk=",
+ "dev": true
+ },
+ "fs-extra": {
+ "version": "0.26.5",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.26.5.tgz",
+ "integrity": "sha1-U6x0Znygg/0twXEsgTA5yjLWmn8=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "jsonfile": "^2.1.0",
+ "klaw": "^1.0.0",
+ "path-is-absolute": "^1.0.0",
+ "rimraf": "^2.2.8"
+ }
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
+ },
+ "fullname": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fullname/-/fullname-2.1.0.tgz",
+ "integrity": "sha1-xGvw98PyT9WzNY0A5KQTgO74c1A=",
+ "requires": {
+ "npmconf": "^2.1.1",
+ "pify": "^2.2.0",
+ "pinkie-promise": "^2.0.0"
+ }
+ },
+ "gauge": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/gauge/-/gauge-1.2.7.tgz",
+ "integrity": "sha1-6c7FSD09TuDvRLYKfZnkk14TbZM=",
+ "requires": {
+ "ansi": "^0.3.0",
+ "has-unicode": "^2.0.0",
+ "lodash.pad": "^4.1.0",
+ "lodash.padend": "^4.1.0",
+ "lodash.padstart": "^4.1.0"
+ }
+ },
+ "generate-function": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz",
+ "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ="
+ },
+ "generate-object-property": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz",
+ "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=",
+ "requires": {
+ "is-property": "^1.0.0"
+ }
+ },
+ "generator-ng-component": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/generator-ng-component/-/generator-ng-component-0.1.1.tgz",
+ "integrity": "sha1-mFLZTn4+q4GU91WM0PjPvQ71SGs=",
+ "requires": {
+ "chalk": "~0.4.0",
+ "lodash": "^3.10.1",
+ "underscore.string": "^3.2.2",
+ "yeoman-generator": "~0.19.2"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.0.0.tgz",
+ "integrity": "sha1-yxAt8cVvUSPquLZ817mAJ6AnkXg="
+ },
+ "chalk": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.4.0.tgz",
+ "integrity": "sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8=",
+ "requires": {
+ "ansi-styles": "~1.0.0",
+ "has-color": "~0.1.0",
+ "strip-ansi": "~0.1.0"
+ }
+ },
+ "shelljs": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.4.0.tgz",
+ "integrity": "sha1-GZ/p4t43nv0D00X/FAYlJeSzHsI="
+ },
+ "strip-ansi": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.1.1.tgz",
+ "integrity": "sha1-OeipjQRNFQZgq+SmgIrPcLt7yZE="
+ },
+ "yeoman-generator": {
+ "version": "0.19.2",
+ "resolved": "https://registry.npmjs.org/yeoman-generator/-/yeoman-generator-0.19.2.tgz",
+ "integrity": "sha1-nj8XebU6WfNERpQF0WOzUW7Kmrg=",
+ "requires": {
+ "async": "^0.9.0",
+ "chalk": "^1.0.0",
+ "class-extend": "^0.1.0",
+ "cli-table": "^0.3.1",
+ "cross-spawn": "^0.2.6",
+ "dargs": "^4.0.0",
+ "dateformat": "^1.0.11",
+ "debug": "^2.1.0",
+ "detect-conflict": "^1.0.0",
+ "diff": "^1.0.4",
+ "download": "^4.1.2",
+ "findup-sync": "^0.2.1",
+ "github-username": "^1.0.0",
+ "glob": "^5.0.3",
+ "gruntfile-editor": "^1.0.0",
+ "html-wiring": "^1.0.0",
+ "inquirer": "^0.8.0",
+ "istextorbinary": "^1.0.2",
+ "lodash": "^3.5.0",
+ "mem-fs-editor": "^1.0.0",
+ "mime": "^1.2.9",
+ "mkdirp": "^0.5.0",
+ "nopt": "^3.0.0",
+ "pretty-bytes": "^1.0.2",
+ "read-chunk": "^1.0.1",
+ "rimraf": "^2.2.0",
+ "run-async": "^0.1.0",
+ "shelljs": "^0.4.0",
+ "sinon": "^1.9.1",
+ "text-table": "^0.2.0",
+ "through2": "^0.6.3",
+ "underscore.string": "^3.0.3",
+ "user-home": "^1.1.0",
+ "xdg-basedir": "^1.0.0",
+ "yeoman-assert": "^1.0.0",
+ "yeoman-environment": "^1.1.0",
+ "yeoman-welcome": "^1.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "requires": {
+ "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"
+ }
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ }
+ }
+ }
+ }
+ },
+ "get-pkg-repo": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-0.1.0.tgz",
+ "integrity": "sha1-fwTZaFZL+c0ukBgQV3+Ew38rA70=",
+ "dev": true,
+ "requires": {
+ "hosted-git-info": "^2.1.4",
+ "meow": "^3.3.0",
+ "normalize-package-data": "^2.3.0",
+ "through2": "^2.0.0"
+ },
+ "dependencies": {
+ "through2": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
+ "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
+ "dev": true,
+ "requires": {
+ "readable-stream": "^2.1.5",
+ "xtend": "~4.0.1"
+ }
+ }
+ }
+ },
+ "get-proxy": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/get-proxy/-/get-proxy-1.1.0.tgz",
+ "integrity": "sha1-iUhUSRvFkbDxR9euVw9cZ4tyVus=",
+ "requires": {
+ "rc": "^1.1.2"
+ }
+ },
+ "get-stdin": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
+ "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4="
+ },
+ "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.6",
+ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.6.tgz",
+ "integrity": "sha1-KD/9n8ElaECHUxHBtg6MQBhxEOY=",
+ "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="
+ }
+ }
+ },
+ "gh-got": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/gh-got/-/gh-got-2.4.0.tgz",
+ "integrity": "sha1-qlFBiRHKXk+SQ3EUzRIJODpKoBk=",
+ "requires": {
+ "got": "^5.2.0",
+ "object-assign": "^4.0.1",
+ "pinkie-promise": "^2.0.0"
+ },
+ "dependencies": {
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
+ }
+ }
+ },
+ "git-raw-commits": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-0.1.2.tgz",
+ "integrity": "sha1-K+y9zT+W7wsZ8Whj96L22dirg2k=",
+ "dev": true,
+ "requires": {
+ "dargs": "^4.0.1",
+ "lodash.template": "^3.6.1",
+ "meow": "^3.1.0",
+ "split2": "^1.0.0",
+ "through2": "^2.0.0"
+ },
+ "dependencies": {
+ "through2": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
+ "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
+ "dev": true,
+ "requires": {
+ "readable-stream": "^2.1.5",
+ "xtend": "~4.0.1"
+ }
+ }
+ }
+ },
+ "git-semver-tags": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-1.1.2.tgz",
+ "integrity": "sha1-rs+bGyRHprVI1IZH9T7boKyth58=",
+ "dev": true,
+ "requires": {
+ "meow": "^3.3.0",
+ "semver": "^5.0.1"
+ }
+ },
+ "github-username": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/github-username/-/github-username-1.1.1.tgz",
+ "integrity": "sha1-ubQ9hS22YfvkyFDMdWdowCKlOp4=",
+ "requires": {
+ "get-stdin": "^1.0.0",
+ "got": "^2.3.0"
+ },
+ "dependencies": {
+ "get-stdin": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-1.0.0.tgz",
+ "integrity": "sha1-AL1aSUyBw3L1YpvqEDu//nodo84="
+ },
+ "got": {
+ "version": "2.9.2",
+ "resolved": "https://registry.npmjs.org/got/-/got-2.9.2.tgz",
+ "integrity": "sha1-Lh7ljqHo0gHiWuWAuW5jwV/v1O4=",
+ "requires": {
+ "duplexify": "^3.2.0",
+ "infinity-agent": "^2.0.0",
+ "is-stream": "^1.0.0",
+ "lowercase-keys": "^1.0.0",
+ "nested-error-stacks": "^1.0.0",
+ "object-assign": "^2.0.0",
+ "prepend-http": "^1.0.0",
+ "read-all-stream": "^2.0.0",
+ "statuses": "^1.2.1",
+ "timed-out": "^2.0.0"
+ }
+ },
+ "read-all-stream": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/read-all-stream/-/read-all-stream-2.2.0.tgz",
+ "integrity": "sha1-a4M3BUbFWrat4r916Dxm5FmJu/A=",
+ "requires": {
+ "readable-stream": "^2.0.0"
+ }
+ },
+ "timed-out": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-2.0.0.tgz",
+ "integrity": "sha1-84sK6B03R9YoAB9B2vxlKs5nHAo="
+ }
+ }
+ },
+ "glob": {
+ "version": "5.0.15",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
+ "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
+ "requires": {
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "2 || 3",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "glob-base": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz",
+ "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
+ "requires": {
+ "glob-parent": "^2.0.0",
+ "is-glob": "^2.0.0"
+ },
+ "dependencies": {
+ "glob-parent": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
+ "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
+ "requires": {
+ "is-glob": "^2.0.0"
+ }
+ },
+ "is-extglob": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
+ "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA="
+ },
+ "is-glob": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
+ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
+ "requires": {
+ "is-extglob": "^1.0.0"
+ }
+ }
+ }
+ },
+ "glob-parent": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
+ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
+ "requires": {
+ "is-glob": "^3.1.0",
+ "path-dirname": "^1.0.0"
+ }
+ },
+ "glob-stream": {
+ "version": "5.3.5",
+ "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-5.3.5.tgz",
+ "integrity": "sha1-pVZlqajM3EGRWofHAeMtTgFvrSI=",
+ "requires": {
+ "extend": "^3.0.0",
+ "glob": "^5.0.3",
+ "glob-parent": "^3.0.0",
+ "micromatch": "^2.3.7",
+ "ordered-read-streams": "^0.3.0",
+ "through2": "^0.6.0",
+ "to-absolute-glob": "^0.1.1",
+ "unique-stream": "^2.0.2"
+ }
+ },
+ "globby": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-4.1.0.tgz",
+ "integrity": "sha1-CA9UVJ7BuCpsYOYx/ILhIR2+lfg=",
+ "requires": {
+ "array-union": "^1.0.1",
+ "arrify": "^1.0.0",
+ "glob": "^6.0.1",
+ "object-assign": "^4.0.1",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
+ },
+ "dependencies": {
+ "glob": {
+ "version": "6.0.4",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz",
+ "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=",
+ "requires": {
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "2 || 3",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
+ }
+ }
+ },
+ "glogg": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.0.tgz",
+ "integrity": "sha1-f+DxmfV6yQbPUS/urY+Q7kooT8U=",
+ "requires": {
+ "sparkles": "^1.0.0"
+ }
+ },
+ "got": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/got/-/got-5.7.1.tgz",
+ "integrity": "sha1-X4FjWmHkplifGAVp6k44FoClHzU=",
+ "requires": {
+ "create-error-class": "^3.0.1",
+ "duplexer2": "^0.1.4",
+ "is-redirect": "^1.0.0",
+ "is-retry-allowed": "^1.0.0",
+ "is-stream": "^1.0.0",
+ "lowercase-keys": "^1.0.0",
+ "node-status-codes": "^1.0.0",
+ "object-assign": "^4.0.1",
+ "parse-json": "^2.1.0",
+ "pinkie-promise": "^2.0.0",
+ "read-all-stream": "^3.0.0",
+ "readable-stream": "^2.0.5",
+ "timed-out": "^3.0.0",
+ "unzip-response": "^1.0.2",
+ "url-parse-lax": "^1.0.0"
+ },
+ "dependencies": {
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
+ }
+ }
+ },
+ "graceful-fs": {
+ "version": "4.1.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg="
+ },
+ "graceful-readlink": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
+ "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU="
+ },
+ "grouped-queue": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/grouped-queue/-/grouped-queue-0.3.3.tgz",
+ "integrity": "sha1-wWfSpTGcWg4JZO9qJbfC34mWyFw=",
+ "requires": {
+ "lodash": "^4.17.2"
+ },
+ "dependencies": {
+ "lodash": {
+ "version": "4.17.4",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
+ "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4="
+ }
+ }
+ },
+ "growl": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/growl/-/growl-1.8.1.tgz",
+ "integrity": "sha1-Sy3sjZB+k9szZiTc7AGDUC+MlCg=",
+ "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.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"
+ },
+ "dependencies": {
+ "async": {
+ "version": "0.1.22",
+ "resolved": "https://registry.npmjs.org/async/-/async-0.1.22.tgz",
+ "integrity": "sha1-D8GqoIig4+8Ovi2IMbqw3PiEUGE=",
+ "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
+ },
+ "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
+ },
+ "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.9",
+ "lodash": "~2.4.1"
+ },
+ "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",
+ "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"
+ }
+ }
+ }
+ },
+ "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.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
+ }
+ }
+ },
+ "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
+ },
+ "lodash": {
+ "version": "0.9.2",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-0.9.2.tgz",
+ "integrity": "sha1-jzSZxSRdNG1oLlsNO0B2fgnxqSw=",
+ "dev": true
+ },
+ "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",
+ "sigmund": "~1.0.0"
+ }
+ },
+ "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"
+ }
+ },
+ "rimraf": {
+ "version": "2.2.8",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz",
+ "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=",
+ "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
+ },
+ "which": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.0.9.tgz",
+ "integrity": "sha1-RgwdoPgQED0DIam2M6+eV15kSG8=",
+ "dev": true
+ }
+ }
+ },
+ "grunt-build-control": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/grunt-build-control/-/grunt-build-control-0.6.2.tgz",
+ "integrity": "sha1-kBd/nOH3dYky29tzo1i6+g+a66k=",
+ "dev": true,
+ "requires": {
+ "bluebird": "^3.0.6",
+ "semver": "~4.3.3",
+ "shelljs": "~0.2.6"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "4.3.6",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz",
+ "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=",
+ "dev": true
+ },
+ "shelljs": {
+ "version": "0.2.6",
+ "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.2.6.tgz",
+ "integrity": "sha1-kEktcv/MgVmXa6umL7D2iE8MM3g=",
+ "dev": true
+ }
+ }
+ },
+ "grunt-contrib-clean": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/grunt-contrib-clean/-/grunt-contrib-clean-0.7.0.tgz",
+ "integrity": "sha1-EvynC79SW5GLc+XMsUUPQ762Kc0=",
+ "dev": true,
+ "requires": {
+ "rimraf": "^2.2.1"
+ }
+ },
+ "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-conventional-changelog": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/grunt-conventional-changelog/-/grunt-conventional-changelog-5.0.0.tgz",
+ "integrity": "sha1-vIEsVPfY5lDtpPOAbNn2e2dvBaU=",
+ "dev": true,
+ "requires": {
+ "chalk": "^1.1.0",
+ "concat-stream": "^1.5.0",
+ "conventional-changelog": "^0.5.0",
+ "plur": "^2.0.0",
+ "q": "^1.4.1"
+ }
+ },
+ "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.1",
+ "underscore.string": "~2.3.3"
+ },
+ "dependencies": {
+ "colors": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz",
+ "integrity": "sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w=",
+ "dev": true
+ },
+ "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.1",
+ "underscore.string": "~2.3.3"
+ },
+ "dependencies": {
+ "colors": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz",
+ "integrity": "sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w=",
+ "dev": true
+ },
+ "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"
+ },
+ "dependencies": {
+ "async": {
+ "version": "0.1.22",
+ "resolved": "https://registry.npmjs.org/async/-/async-0.1.22.tgz",
+ "integrity": "sha1-D8GqoIig4+8Ovi2IMbqw3PiEUGE=",
+ "dev": true
+ },
+ "lodash": {
+ "version": "0.9.2",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-0.9.2.tgz",
+ "integrity": "sha1-jzSZxSRdNG1oLlsNO0B2fgnxqSw=",
+ "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
+ },
+ "which": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.0.9.tgz",
+ "integrity": "sha1-RgwdoPgQED0DIam2M6+eV15kSG8=",
+ "dev": true
+ }
+ }
+ },
+ "grunt-mocha-test": {
+ "version": "0.12.7",
+ "resolved": "https://registry.npmjs.org/grunt-mocha-test/-/grunt-mocha-test-0.12.7.tgz",
+ "integrity": "sha1-xhzfMqZ2KVQRX+cSuYPj3Y4MlVQ=",
+ "dev": true,
+ "requires": {
+ "hooker": "~0.2.3",
+ "mkdirp": "^0.5.0"
+ }
+ },
+ "grunt-release": {
+ "version": "0.13.0",
+ "resolved": "https://registry.npmjs.org/grunt-release/-/grunt-release-0.13.0.tgz",
+ "integrity": "sha1-TiC0ihp2slbtFxAx4w/d2x2hwAA=",
+ "dev": true,
+ "requires": {
+ "q": "^1.4.1",
+ "semver": "^4.3.6",
+ "shelljs": "^0.5.1",
+ "superagent": "^1.2.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "4.3.6",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz",
+ "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=",
+ "dev": true
+ }
+ }
+ },
+ "gruntfile-editor": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/gruntfile-editor/-/gruntfile-editor-1.2.1.tgz",
+ "integrity": "sha1-Nm/B+Ty/BFgT4USK7x2p8YKJ1es=",
+ "requires": {
+ "ast-query": "^2.0.0",
+ "lodash": "^4.6.1"
+ },
+ "dependencies": {
+ "lodash": {
+ "version": "4.17.4",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
+ "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4="
+ }
+ }
+ },
+ "gulp-decompress": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/gulp-decompress/-/gulp-decompress-1.2.0.tgz",
+ "integrity": "sha1-jutlpeAV+O2FMsr+KEVJYGJvDcc=",
+ "requires": {
+ "archive-type": "^3.0.0",
+ "decompress": "^3.0.0",
+ "gulp-util": "^3.0.1",
+ "readable-stream": "^2.0.2"
+ }
+ },
+ "gulp-rename": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/gulp-rename/-/gulp-rename-1.2.2.tgz",
+ "integrity": "sha1-OtRCh2PwXidk3sHGfYaNsnVoeBc="
+ },
+ "gulp-sourcemaps": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-1.6.0.tgz",
+ "integrity": "sha1-uG/zSdgBzrVuHZ59x7vLS33uYAw=",
+ "requires": {
+ "convert-source-map": "^1.1.1",
+ "graceful-fs": "^4.1.2",
+ "strip-bom": "^2.0.0",
+ "through2": "^2.0.0",
+ "vinyl": "^1.0.0"
+ },
+ "dependencies": {
+ "through2": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
+ "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
+ "requires": {
+ "readable-stream": "^2.1.5",
+ "xtend": "~4.0.1"
+ }
+ }
+ }
+ },
+ "gulp-util": {
+ "version": "3.0.8",
+ "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz",
+ "integrity": "sha1-AFTh50RQLifATBh8PsxQXdVLu08=",
+ "requires": {
+ "array-differ": "^1.0.0",
+ "array-uniq": "^1.0.2",
+ "beeper": "^1.0.0",
+ "chalk": "^1.0.0",
+ "dateformat": "^2.0.0",
+ "fancy-log": "^1.1.0",
+ "gulplog": "^1.0.0",
+ "has-gulplog": "^0.1.0",
+ "lodash._reescape": "^3.0.0",
+ "lodash._reevaluate": "^3.0.0",
+ "lodash._reinterpolate": "^3.0.0",
+ "lodash.template": "^3.0.0",
+ "minimist": "^1.1.0",
+ "multipipe": "^0.1.2",
+ "object-assign": "^3.0.0",
+ "replace-ext": "0.0.1",
+ "through2": "^2.0.0",
+ "vinyl": "^0.5.0"
+ },
+ "dependencies": {
+ "dateformat": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.0.0.tgz",
+ "integrity": "sha1-J0Pjq7XD/CRi5SfcpEXgTp9N7hc="
+ },
+ "object-assign": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz",
+ "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I="
+ },
+ "through2": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
+ "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
+ "requires": {
+ "readable-stream": "^2.1.5",
+ "xtend": "~4.0.1"
+ }
+ },
+ "vinyl": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz",
+ "integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=",
+ "requires": {
+ "clone": "^1.0.0",
+ "clone-stats": "^0.0.1",
+ "replace-ext": "0.0.1"
+ }
+ }
+ }
+ },
+ "gulplog": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz",
+ "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=",
+ "requires": {
+ "glogg": "^1.0.0"
+ }
+ },
+ "handlebars": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.6.tgz",
+ "integrity": "sha1-LORISFBTf5yXqAJtU5m5NcTtTtc=",
+ "dev": true,
+ "requires": {
+ "async": "^1.4.0",
+ "optimist": "^0.6.1",
+ "source-map": "^0.4.4",
+ "uglify-js": "^2.6"
+ },
+ "dependencies": {
+ "async": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
+ "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.4.4",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
+ "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
+ "dev": true,
+ "requires": {
+ "amdefine": ">=0.0.4"
+ }
+ }
+ }
+ },
+ "har-validator": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz",
+ "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=",
+ "requires": {
+ "chalk": "^1.1.1",
+ "commander": "^2.9.0",
+ "is-my-json-valid": "^2.12.4",
+ "pinkie-promise": "^2.0.0"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz",
+ "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=",
+ "requires": {
+ "graceful-readlink": ">= 1.0.0"
+ }
+ }
+ }
+ },
+ "has-ansi": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
+ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ },
+ "has-color": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz",
+ "integrity": "sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8="
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo="
+ },
+ "has-gulplog": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz",
+ "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=",
+ "requires": {
+ "sparkles": "^1.0.0"
+ }
+ },
+ "has-unicode": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
+ "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk="
+ },
+ "hawk": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz",
+ "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=",
+ "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="
+ },
+ "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.1.5",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.1.5.tgz",
+ "integrity": "sha1-C6gdkNouJas0ozLm7HeTbhWYEYs="
+ },
+ "html-wiring": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/html-wiring/-/html-wiring-1.2.0.tgz",
+ "integrity": "sha1-xfkKd24KJyQdxt+QIsNxhtAnD54=",
+ "requires": {
+ "cheerio": "^0.19.0",
+ "detect-newline": "^1.0.3"
+ }
+ },
+ "htmlparser2": {
+ "version": "3.8.3",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz",
+ "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=",
+ "requires": {
+ "domelementtype": "1",
+ "domhandler": "2.3",
+ "domutils": "1.5",
+ "entities": "1.0",
+ "readable-stream": "1.1"
+ },
+ "dependencies": {
+ "domutils": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
+ "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
+ "requires": {
+ "dom-serializer": "0",
+ "domelementtype": "1"
+ }
+ },
+ "entities": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz",
+ "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY="
+ },
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
+ },
+ "readable-stream": {
+ "version": "1.1.14",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
+ "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
+ }
+ }
+ },
+ "http-signature": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz",
+ "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=",
+ "requires": {
+ "assert-plus": "^0.2.0",
+ "jsprim": "^1.2.2",
+ "sshpk": "^1.7.0"
+ }
+ },
+ "humanize-string": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/humanize-string/-/humanize-string-1.0.1.tgz",
+ "integrity": "sha1-/OLWxUXvwl3qHyMjUYLJjaAYC0I=",
+ "requires": {
+ "decamelize": "^1.0.0"
+ }
+ },
+ "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
+ },
+ "imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o="
+ },
+ "indent-string": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
+ "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
+ "requires": {
+ "repeating": "^2.0.0"
+ }
+ },
+ "infinity-agent": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/infinity-agent/-/infinity-agent-2.0.3.tgz",
+ "integrity": "sha1-ReDi/3qesDCyfWK3SzdEt6esQhY="
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
+ },
+ "ini": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz",
+ "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4="
+ },
+ "inquirer": {
+ "version": "0.8.5",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.8.5.tgz",
+ "integrity": "sha1-29dAz2yjtzEpamPOb22WGFHzNt8=",
+ "requires": {
+ "ansi-regex": "^1.1.1",
+ "chalk": "^1.0.0",
+ "cli-width": "^1.0.1",
+ "figures": "^1.3.5",
+ "lodash": "^3.3.1",
+ "readline2": "^0.1.1",
+ "rx": "^2.4.3",
+ "through": "^2.3.6"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-1.1.1.tgz",
+ "integrity": "sha1-QchHGUZGN15qGl0Qw8oFTvn8mA0="
+ }
+ }
+ },
+ "insight": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/insight/-/insight-0.7.0.tgz",
+ "integrity": "sha1-Bh+RiYNb04qXpgwrduoMazAJn/Y=",
+ "requires": {
+ "async": "^1.4.2",
+ "chalk": "^1.0.0",
+ "configstore": "^1.0.0",
+ "inquirer": "^0.10.0",
+ "lodash.debounce": "^3.0.1",
+ "object-assign": "^4.0.1",
+ "os-name": "^1.0.0",
+ "request": "^2.40.0",
+ "tough-cookie": "^2.0.0"
+ },
+ "dependencies": {
+ "async": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
+ "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo="
+ },
+ "inquirer": {
+ "version": "0.10.1",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.10.1.tgz",
+ "integrity": "sha1-6iXkzmnKFF4FyZ5G3P7AXkASWUo=",
+ "requires": {
+ "ansi-escapes": "^1.1.0",
+ "ansi-regex": "^2.0.0",
+ "chalk": "^1.0.0",
+ "cli-cursor": "^1.0.1",
+ "cli-width": "^1.0.1",
+ "figures": "^1.3.5",
+ "lodash": "^3.3.1",
+ "readline2": "^1.0.1",
+ "run-async": "^0.1.0",
+ "rx-lite": "^3.1.2",
+ "strip-ansi": "^3.0.0",
+ "through": "^2.3.6"
+ }
+ },
+ "mute-stream": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz",
+ "integrity": "sha1-j7+rsKmKJT0xhDMfno3rc3L6xsA="
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
+ },
+ "readline2": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz",
+ "integrity": "sha1-QQWWCP/BVHV7cV2ZidGZ/783LjU=",
+ "requires": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "mute-stream": "0.0.5"
+ }
+ }
+ }
+ },
+ "interpret": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.0.1.tgz",
+ "integrity": "sha1-1Xn7f2k7hYAElHrzn6DbSfeVYCw="
+ },
+ "irregular-plurals": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-1.2.0.tgz",
+ "integrity": "sha1-OPKZg0uowAwwvpxVThNyaXUv86w=",
+ "dev": true
+ },
+ "is-absolute": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-0.1.7.tgz",
+ "integrity": "sha1-hHSREZ/MtftDYhfMc39/qtUPYD8=",
+ "requires": {
+ "is-relative": "^0.1.0"
+ }
+ },
+ "is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0="
+ },
+ "is-buffer": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.4.tgz",
+ "integrity": "sha1-z8hszV3FpS+oBIkRHGkgxFfi2Ys="
+ },
+ "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=",
+ "requires": {
+ "builtin-modules": "^1.0.0"
+ }
+ },
+ "is-bzip2": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-bzip2/-/is-bzip2-1.0.0.tgz",
+ "integrity": "sha1-XuWOqlounIDiFAe+3yOuWsCRs/w="
+ },
+ "is-docker": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-1.1.0.tgz",
+ "integrity": "sha1-8EN01O7lMQ6ajhE78UlUEeRhdqE="
+ },
+ "is-dotfile": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.2.tgz",
+ "integrity": "sha1-LBMjg/ORmfjtwmjKAbmwB9IFzE0="
+ },
+ "is-equal-shallow": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz",
+ "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
+ "requires": {
+ "is-primitive": "^2.0.0"
+ }
+ },
+ "is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik="
+ },
+ "is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI="
+ },
+ "is-finite": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
+ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ }
+ },
+ "is-glob": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
+ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
+ "requires": {
+ "is-extglob": "^2.1.0"
+ }
+ },
+ "is-gzip": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-gzip/-/is-gzip-1.0.0.tgz",
+ "integrity": "sha1-bKiwe5nHeZgCWQDlVc7Y7YCHmoM="
+ },
+ "is-my-json-valid": {
+ "version": "2.15.0",
+ "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.15.0.tgz",
+ "integrity": "sha1-k27do8o8IR/ZjzstPgjaQ/eykVs=",
+ "requires": {
+ "generate-function": "^2.0.0",
+ "generate-object-property": "^1.1.0",
+ "jsonpointer": "^4.0.0",
+ "xtend": "^4.0.0"
+ }
+ },
+ "is-natural-number": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-2.1.1.tgz",
+ "integrity": "sha1-fUxXKDd+84bD4ZSpkRv1fG3DNec="
+ },
+ "is-npm": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz",
+ "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ="
+ },
+ "is-number": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",
+ "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
+ "requires": {
+ "kind-of": "^3.0.2"
+ }
+ },
+ "is-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
+ "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8="
+ },
+ "is-posix-bracket": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz",
+ "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q="
+ },
+ "is-primitive": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz",
+ "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU="
+ },
+ "is-promise": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
+ "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o="
+ },
+ "is-property": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz",
+ "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ="
+ },
+ "is-redirect": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz",
+ "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ="
+ },
+ "is-regexp": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz",
+ "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk="
+ },
+ "is-relative": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-0.1.3.tgz",
+ "integrity": "sha1-kF/uiuhvRbPsYUvDwVyGnfCHboI="
+ },
+ "is-retry-allowed": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz",
+ "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ="
+ },
+ "is-root": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-root/-/is-root-1.0.0.tgz",
+ "integrity": "sha1-B7bCM7w5TNnQK6FclmvWZg1jQtU="
+ },
+ "is-stream": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ="
+ },
+ "is-subset": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz",
+ "integrity": "sha1-ilkRfZMt4d4A8kX83TnOQ/HpOaY=",
+ "dev": true
+ },
+ "is-supported-regexp-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-supported-regexp-flag/-/is-supported-regexp-flag-1.0.0.tgz",
+ "integrity": "sha1-i1IMhfrnolM4LUsCZS4EVXbhO7g="
+ },
+ "is-tar": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-tar/-/is-tar-1.0.0.tgz",
+ "integrity": "sha1-L2suF5LB9bs2UZrKqdZcDSb+hT0="
+ },
+ "is-text-path": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz",
+ "integrity": "sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4=",
+ "dev": true,
+ "requires": {
+ "text-extensions": "^1.0.0"
+ }
+ },
+ "is-typedarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
+ },
+ "is-url": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.2.tgz",
+ "integrity": "sha1-SYkFpZO/R8wtnn9zg3K792lsfyY="
+ },
+ "is-utf8": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
+ "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI="
+ },
+ "is-valid-glob": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-0.3.0.tgz",
+ "integrity": "sha1-1LVcafUYhvm2XHDWwmItN+KfSP4="
+ },
+ "is-zip": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-zip/-/is-zip-1.0.0.tgz",
+ "integrity": "sha1-R7Co/004p2QxzP2ZqOFaTIa6IyU="
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
+ },
+ "isexe": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-1.1.2.tgz",
+ "integrity": "sha1-NvPiLmB1CSD15yQaR2qMakInWtA="
+ },
+ "isobject": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
+ "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
+ "requires": {
+ "isarray": "1.0.0"
+ }
+ },
+ "isstream": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
+ },
+ "istextorbinary": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-1.0.2.tgz",
+ "integrity": "sha1-rOGTVNGpoBc+/rEITOD4ewrX3s8=",
+ "requires": {
+ "binaryextensions": "~1.0.0",
+ "textextensions": "~1.0.0"
+ }
+ },
+ "jade": {
+ "version": "0.26.3",
+ "resolved": "https://registry.npmjs.org/jade/-/jade-0.26.3.tgz",
+ "integrity": "sha1-jxDXl32NefL2/4YqgbBRPMslaGw=",
+ "dev": true,
+ "requires": {
+ "commander": "0.6.1",
+ "mkdirp": "0.3.0"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-0.6.1.tgz",
+ "integrity": "sha1-+mihT2qUXVTbvlDYzbMyDp47GgY=",
+ "dev": true
+ },
+ "mkdirp": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz",
+ "integrity": "sha1-G79asbqCevI1dRQ0kEJkVfSB/h4=",
+ "dev": true
+ }
+ }
+ },
+ "jodid25519": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz",
+ "integrity": "sha1-BtSRIlUJNBlHfUJWM2BuDpB4KWc=",
+ "optional": true,
+ "requires": {
+ "jsbn": "~0.1.0"
+ }
+ },
+ "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.11",
+ "esprima": "~ 1.0.2"
+ },
+ "dependencies": {
+ "esprima": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz",
+ "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=",
+ "dev": true
+ }
+ }
+ },
+ "jsbn": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.0.tgz",
+ "integrity": "sha1-ZQmH2g3XT06/WhE3eiqi0nPpff0=",
+ "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.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": {
+ "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"
+ }
+ },
+ "shelljs": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz",
+ "integrity": "sha1-NZbmMHp4FUT1kfN9phg2DzHbV7E=",
+ "dev": true
+ }
+ }
+ },
+ "json-schema": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
+ "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
+ },
+ "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=",
+ "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="
+ },
+ "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"
+ }
+ },
+ "jsonify": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz",
+ "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM="
+ },
+ "jsonparse": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.0.tgz",
+ "integrity": "sha1-hfwkWx2SWazGlBlguQWt9k594Og=",
+ "dev": true
+ },
+ "jsonpointer": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz",
+ "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk="
+ },
+ "jsprim": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.3.1.tgz",
+ "integrity": "sha1-KnJW9wQSop7jZwqspiWZTE3P8lI=",
+ "requires": {
+ "extsprintf": "1.0.2",
+ "json-schema": "0.2.3",
+ "verror": "1.3.6"
+ }
+ },
+ "kind-of": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.1.0.tgz",
+ "integrity": "sha1-R11pil5J/15T0U4+cyQp3Iv0z0c=",
+ "requires": {
+ "is-buffer": "^1.0.2"
+ }
+ },
+ "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"
+ }
+ },
+ "latest-version": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-2.0.0.tgz",
+ "integrity": "sha1-VvjWE5YghHuAF/jx9NeOIRMkFos=",
+ "requires": {
+ "package-json": "^2.0.0"
+ }
+ },
+ "lazy-cache": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
+ "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=",
+ "dev": true,
+ "optional": true
+ },
+ "lazystream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz",
+ "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=",
+ "requires": {
+ "readable-stream": "^2.0.5"
+ }
+ },
+ "levn": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
+ "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
+ "requires": {
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2"
+ }
+ },
+ "load-grunt-tasks": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/load-grunt-tasks/-/load-grunt-tasks-3.4.0.tgz",
+ "integrity": "sha1-6tSwKoToU39AL2cWkZkQncJmxnA=",
+ "dev": true,
+ "requires": {
+ "arrify": "^1.0.0",
+ "multimatch": "^2.0.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=",
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "parse-json": "^2.2.0",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0",
+ "strip-bom": "^2.0.0"
+ }
+ },
+ "lodash": {
+ "version": "3.10.1",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz",
+ "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y="
+ },
+ "lodash._basecopy": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz",
+ "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY="
+ },
+ "lodash._basetostring": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz",
+ "integrity": "sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U="
+ },
+ "lodash._basevalues": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz",
+ "integrity": "sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc="
+ },
+ "lodash._getnative": {
+ "version": "3.9.1",
+ "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz",
+ "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U="
+ },
+ "lodash._isiterateecall": {
+ "version": "3.0.9",
+ "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz",
+ "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw="
+ },
+ "lodash._reescape": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz",
+ "integrity": "sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo="
+ },
+ "lodash._reevaluate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz",
+ "integrity": "sha1-WLx0xAZklTrgsSTYBpltrKQx4u0="
+ },
+ "lodash._reinterpolate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz",
+ "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0="
+ },
+ "lodash._root": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz",
+ "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI="
+ },
+ "lodash.debounce": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-3.1.1.tgz",
+ "integrity": "sha1-gSIRw3ipTMKdWqTjNGzwv846ffU=",
+ "requires": {
+ "lodash._getnative": "^3.0.0"
+ }
+ },
+ "lodash.escape": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz",
+ "integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=",
+ "requires": {
+ "lodash._root": "^3.0.0"
+ }
+ },
+ "lodash.isarguments": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz",
+ "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo="
+ },
+ "lodash.isarray": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz",
+ "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U="
+ },
+ "lodash.isequal": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
+ "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA="
+ },
+ "lodash.keys": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz",
+ "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=",
+ "requires": {
+ "lodash._getnative": "^3.0.0",
+ "lodash.isarguments": "^3.0.0",
+ "lodash.isarray": "^3.0.0"
+ }
+ },
+ "lodash.pad": {
+ "version": "4.5.1",
+ "resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-4.5.1.tgz",
+ "integrity": "sha1-QzCUmoM6fI2iLMIPaibE1Z3runA="
+ },
+ "lodash.padend": {
+ "version": "4.6.1",
+ "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz",
+ "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4="
+ },
+ "lodash.padstart": {
+ "version": "4.6.1",
+ "resolved": "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.6.1.tgz",
+ "integrity": "sha1-0uPuv/DZ05rVD1y9G1KnvOa7YRs="
+ },
+ "lodash.restparam": {
+ "version": "3.6.1",
+ "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz",
+ "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU="
+ },
+ "lodash.template": {
+ "version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz",
+ "integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=",
+ "requires": {
+ "lodash._basecopy": "^3.0.0",
+ "lodash._basetostring": "^3.0.0",
+ "lodash._basevalues": "^3.0.0",
+ "lodash._isiterateecall": "^3.0.0",
+ "lodash._reinterpolate": "^3.0.0",
+ "lodash.escape": "^3.0.0",
+ "lodash.keys": "^3.0.0",
+ "lodash.restparam": "^3.0.0",
+ "lodash.templatesettings": "^3.0.0"
+ }
+ },
+ "lodash.templatesettings": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz",
+ "integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=",
+ "requires": {
+ "lodash._reinterpolate": "^3.0.0",
+ "lodash.escape": "^3.0.0"
+ }
+ },
+ "log-symbols": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz",
+ "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=",
+ "requires": {
+ "chalk": "^1.0.0"
+ }
+ },
+ "lolex": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/lolex/-/lolex-1.3.2.tgz",
+ "integrity": "sha1-fD2mL/yzDw9agKJWbKJORdigHzE="
+ },
+ "longest": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
+ "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=",
+ "dev": true,
+ "optional": true
+ },
+ "loud-rejection": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
+ "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
+ "requires": {
+ "currently-unhandled": "^0.4.1",
+ "signal-exit": "^3.0.0"
+ }
+ },
+ "lowercase-keys": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz",
+ "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY="
+ },
+ "lru-cache": {
+ "version": "2.7.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz",
+ "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI="
+ },
+ "map-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
+ "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0="
+ },
+ "marked": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.5.tgz",
+ "integrity": "sha1-QROhWsXXvKFYpargciRYe5+hW5Q=",
+ "dev": true
+ },
+ "mem-fs": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/mem-fs/-/mem-fs-1.1.3.tgz",
+ "integrity": "sha1-uK6NLj/Lb10/kWXBLUVRoGXZicw=",
+ "requires": {
+ "through2": "^2.0.0",
+ "vinyl": "^1.1.0",
+ "vinyl-file": "^2.0.0"
+ },
+ "dependencies": {
+ "through2": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
+ "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
+ "requires": {
+ "readable-stream": "^2.1.5",
+ "xtend": "~4.0.1"
+ }
+ }
+ }
+ },
+ "mem-fs-editor": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/mem-fs-editor/-/mem-fs-editor-1.2.3.tgz",
+ "integrity": "sha1-P763BoD7sOtDGssPC7eAZzvc/NU=",
+ "requires": {
+ "glob": "^5.0.3",
+ "lodash": "^3.6.0",
+ "mkdirp": "^0.5.0",
+ "rimraf": "^2.2.8",
+ "sinon": "^1.12.2",
+ "through2": "^0.6.3",
+ "vinyl": "^0.4.3"
+ },
+ "dependencies": {
+ "clone": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz",
+ "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8="
+ },
+ "vinyl": {
+ "version": "0.4.6",
+ "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz",
+ "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=",
+ "requires": {
+ "clone": "^0.2.0",
+ "clone-stats": "^0.0.1"
+ }
+ }
+ }
+ },
+ "meow": {
+ "version": "3.7.0",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
+ "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
+ "requires": {
+ "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": {
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
+ }
+ }
+ },
+ "merge-stream": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz",
+ "integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=",
+ "requires": {
+ "readable-stream": "^2.0.1"
+ }
+ },
+ "methods": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
+ "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=",
+ "dev": true
+ },
+ "micromatch": {
+ "version": "2.3.11",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
+ "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
+ "requires": {
+ "arr-diff": "^2.0.0",
+ "array-unique": "^0.2.1",
+ "braces": "^1.8.2",
+ "expand-brackets": "^0.1.4",
+ "extglob": "^0.3.1",
+ "filename-regex": "^2.0.0",
+ "is-extglob": "^1.0.0",
+ "is-glob": "^2.0.1",
+ "kind-of": "^3.0.2",
+ "normalize-path": "^2.0.1",
+ "object.omit": "^2.0.0",
+ "parse-glob": "^3.0.4",
+ "regex-cache": "^0.4.2"
+ },
+ "dependencies": {
+ "is-extglob": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
+ "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA="
+ },
+ "is-glob": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
+ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
+ "requires": {
+ "is-extglob": "^1.0.0"
+ }
+ }
+ }
+ },
+ "mime": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz",
+ "integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM="
+ },
+ "mime-db": {
+ "version": "1.26.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.26.0.tgz",
+ "integrity": "sha1-6v/NDk/Gk1z4E02iRuLmw1MFrf8="
+ },
+ "mime-types": {
+ "version": "2.1.14",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.14.tgz",
+ "integrity": "sha1-9+99l1g/yvO30oK2+LVnnaselO4=",
+ "requires": {
+ "mime-db": "~1.26.0"
+ }
+ },
+ "minimatch": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz",
+ "integrity": "sha1-Kk5AkLlrLbBqnX3wEFWmKnfJt3Q=",
+ "requires": {
+ "brace-expansion": "^1.0.0"
+ }
+ },
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "requires": {
+ "minimist": "0.0.8"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
+ }
+ }
+ },
+ "mocha": {
+ "version": "2.4.5",
+ "resolved": "https://registry.npmjs.org/mocha/-/mocha-2.4.5.tgz",
+ "integrity": "sha1-FRdo3Sh161G8gpXpgAAm6fK7OY8=",
+ "dev": true,
+ "requires": {
+ "commander": "2.3.0",
+ "debug": "2.2.0",
+ "diff": "1.4.0",
+ "escape-string-regexp": "1.0.2",
+ "glob": "3.2.3",
+ "growl": "1.8.1",
+ "jade": "0.26.3",
+ "mkdirp": "0.5.1",
+ "supports-color": "1.2.0"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.3.0.tgz",
+ "integrity": "sha1-/UMOiJgy7DU7ms0d4hfBHLPu+HM=",
+ "dev": true
+ },
+ "debug": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
+ "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=",
+ "dev": true,
+ "requires": {
+ "ms": "0.7.1"
+ }
+ },
+ "escape-string-regexp": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.2.tgz",
+ "integrity": "sha1-Tbwv5nTnGUnK8/smlc5/LcHZqNE=",
+ "dev": true
+ },
+ "glob": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.3.tgz",
+ "integrity": "sha1-4xPusknHr/qlxHUoaw4RW1mDlGc=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "~2.0.0",
+ "inherits": "2",
+ "minimatch": "~0.2.11"
+ }
+ },
+ "graceful-fs": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-2.0.3.tgz",
+ "integrity": "sha1-fNLNsiiko/Nule+mzBQt59GhNtA=",
+ "dev": true
+ },
+ "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",
+ "sigmund": "~1.0.0"
+ }
+ },
+ "ms": {
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz",
+ "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-1.2.0.tgz",
+ "integrity": "sha1-/x7R5hFp0Gs88tWI4YixjYhH4X4=",
+ "dev": true
+ }
+ }
+ },
+ "modify-values": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.0.tgz",
+ "integrity": "sha1-4rbN65zhn5kxelNyLz2/XfXqqrI=",
+ "dev": true
+ },
+ "mout": {
+ "version": "0.9.1",
+ "resolved": "https://registry.npmjs.org/mout/-/mout-0.9.1.tgz",
+ "integrity": "sha1-hPDz/WrMcxf2PeKv/cwM7gCbBHc="
+ },
+ "ms": {
+ "version": "0.7.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz",
+ "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U="
+ },
+ "multimatch": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz",
+ "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=",
+ "requires": {
+ "array-differ": "^1.0.0",
+ "array-union": "^1.0.1",
+ "arrify": "^1.0.0",
+ "minimatch": "^3.0.0"
+ }
+ },
+ "multipipe": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz",
+ "integrity": "sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s=",
+ "requires": {
+ "duplexer2": "0.0.2"
+ },
+ "dependencies": {
+ "duplexer2": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz",
+ "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=",
+ "requires": {
+ "readable-stream": "~1.1.9"
+ }
+ },
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
+ },
+ "readable-stream": {
+ "version": "1.1.14",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
+ "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
+ }
+ }
+ },
+ "mute-stream": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.4.tgz",
+ "integrity": "sha1-qSGZYKbV1dBGWXruUSUsZlX3F34="
+ },
+ "nested-error-stacks": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-1.0.2.tgz",
+ "integrity": "sha1-GfYZWRUZ8JZ2mlupqG5u7sgjw88=",
+ "requires": {
+ "inherits": "~2.0.1"
+ }
+ },
+ "node-status-codes": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/node-status-codes/-/node-status-codes-1.0.0.tgz",
+ "integrity": "sha1-WuVUHQJGRdMqWPzdyc7s6nrjrC8="
+ },
+ "nopt": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
+ "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
+ "requires": {
+ "abbrev": "1"
+ }
+ },
+ "normalize-package-data": {
+ "version": "2.3.5",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.5.tgz",
+ "integrity": "sha1-jZJPFClg4Xd+f/4XBUNjHMfLAt8=",
+ "requires": {
+ "hosted-git-info": "^2.1.4",
+ "is-builtin-module": "^1.0.0",
+ "semver": "2 || 3 || 4 || 5",
+ "validate-npm-package-license": "^3.0.1"
+ }
+ },
+ "normalize-path": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.0.1.tgz",
+ "integrity": "sha1-R4hqwWYnYNQmG32XnSQXCdPOP3o="
+ },
+ "npm-keyword": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/npm-keyword/-/npm-keyword-4.2.0.tgz",
+ "integrity": "sha1-mP/r/bsTNvJ+9f4brKDcrNCs9sA=",
+ "requires": {
+ "got": "^5.0.0",
+ "object-assign": "^4.0.1",
+ "pinkie-promise": "^2.0.0",
+ "registry-url": "^3.0.3"
+ },
+ "dependencies": {
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
+ }
+ }
+ },
+ "npmconf": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/npmconf/-/npmconf-2.1.2.tgz",
+ "integrity": "sha1-ZmBqSnNvHnegWaoHGnnJSreBhTo=",
+ "requires": {
+ "config-chain": "~1.1.8",
+ "inherits": "~2.0.0",
+ "ini": "^1.2.0",
+ "mkdirp": "^0.5.0",
+ "nopt": "~3.0.1",
+ "once": "~1.3.0",
+ "osenv": "^0.1.0",
+ "semver": "2 || 3 || 4",
+ "uid-number": "0.0.5"
+ },
+ "dependencies": {
+ "osenv": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz",
+ "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=",
+ "requires": {
+ "os-homedir": "^1.0.0",
+ "os-tmpdir": "^1.0.0"
+ }
+ },
+ "semver": {
+ "version": "4.3.6",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz",
+ "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto="
+ }
+ }
+ },
+ "npmlog": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-2.0.4.tgz",
+ "integrity": "sha1-mLUlMPJRTKkNCexbIsiEZyI3VpI=",
+ "requires": {
+ "ansi": "~0.3.1",
+ "are-we-there-yet": "~1.1.2",
+ "gauge": "~1.2.5"
+ }
+ },
+ "nth-check": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz",
+ "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=",
+ "requires": {
+ "boolbase": "~1.0.0"
+ }
+ },
+ "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="
+ },
+ "oauth-sign": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
+ "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM="
+ },
+ "object-assign": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz",
+ "integrity": "sha1-Q8NuXVaf+OSBbE76i+AtJpZ8GKo="
+ },
+ "object-values": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/object-values/-/object-values-1.0.0.tgz",
+ "integrity": "sha1-cq+DljARnluYw7AruMJ+MjcVgQU="
+ },
+ "object.omit": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz",
+ "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=",
+ "requires": {
+ "for-own": "^0.1.4",
+ "is-extendable": "^0.1.1"
+ }
+ },
+ "once": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz",
+ "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=",
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "onetime": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz",
+ "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k="
+ },
+ "opn": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/opn/-/opn-3.0.3.tgz",
+ "integrity": "sha1-ttmec5n3jWXDuq/+8fsojpuFJDo=",
+ "requires": {
+ "object-assign": "^4.0.1"
+ },
+ "dependencies": {
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
+ }
+ }
+ },
+ "optimist": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
+ "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=",
+ "requires": {
+ "minimist": "~0.0.1",
+ "wordwrap": "~0.0.2"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "0.0.10",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz",
+ "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8="
+ },
+ "wordwrap": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
+ "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc="
+ }
+ }
+ },
+ "optionator": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",
+ "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=",
+ "requires": {
+ "deep-is": "~0.1.3",
+ "fast-levenshtein": "~2.0.4",
+ "levn": "~0.3.0",
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2",
+ "wordwrap": "~1.0.0"
+ }
+ },
+ "ordered-read-streams": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.3.0.tgz",
+ "integrity": "sha1-cTfmmzKYuzQiR6G77jiByA4v14s=",
+ "requires": {
+ "is-stream": "^1.0.1",
+ "readable-stream": "^2.0.1"
+ }
+ },
+ "os-homedir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+ "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M="
+ },
+ "os-name": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/os-name/-/os-name-1.0.3.tgz",
+ "integrity": "sha1-GzefZINa98Wn9JizV8uVIVwVnt8=",
+ "requires": {
+ "osx-release": "^1.0.0",
+ "win-release": "^1.0.0"
+ }
+ },
+ "os-shim": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/os-shim/-/os-shim-0.1.3.tgz",
+ "integrity": "sha1-a2LDeRz3kJ6jXtRuF2WLtBfLORc="
+ },
+ "os-tmpdir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
+ },
+ "osenv": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.0.3.tgz",
+ "integrity": "sha1-zWrY3bKQkVrZ4idlV2Al1BHynLY="
+ },
+ "osx-release": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/osx-release/-/osx-release-1.1.0.tgz",
+ "integrity": "sha1-8heRGigTaUmvG/kwiyQeJzfTzWw=",
+ "requires": {
+ "minimist": "^1.1.0"
+ }
+ },
+ "package-json": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/package-json/-/package-json-2.4.0.tgz",
+ "integrity": "sha1-DRW9Z9HLvduyyiIv8u24a8sxqLs=",
+ "requires": {
+ "got": "^5.0.0",
+ "registry-auth-token": "^3.0.1",
+ "registry-url": "^3.0.3",
+ "semver": "^5.1.0"
+ }
+ },
+ "pad-component": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/pad-component/-/pad-component-0.0.1.tgz",
+ "integrity": "sha1-rR8izhvw/cDW3dkIrxfzUaQEuKw="
+ },
+ "parse-glob": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
+ "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
+ "requires": {
+ "glob-base": "^0.3.0",
+ "is-dotfile": "^1.0.0",
+ "is-extglob": "^1.0.0",
+ "is-glob": "^2.0.0"
+ },
+ "dependencies": {
+ "is-extglob": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
+ "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA="
+ },
+ "is-glob": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
+ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
+ "requires": {
+ "is-extglob": "^1.0.0"
+ }
+ }
+ }
+ },
+ "parse-help": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/parse-help/-/parse-help-0.1.1.tgz",
+ "integrity": "sha1-L035Qud6VYG7qZZ8DD9I5MZtfdo=",
+ "requires": {
+ "execall": "^1.0.0"
+ }
+ },
+ "parse-json": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
+ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
+ "requires": {
+ "error-ex": "^1.2.0"
+ }
+ },
+ "path-dirname": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
+ "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA="
+ },
+ "path-exists": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
+ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
+ "requires": {
+ "pinkie-promise": "^2.0.0"
+ }
+ },
+ "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="
+ },
+ "path-type": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
+ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
+ }
+ },
+ "pend": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
+ "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA="
+ },
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw="
+ },
+ "pinkie": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
+ "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA="
+ },
+ "pinkie-promise": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
+ "requires": {
+ "pinkie": "^2.0.0"
+ }
+ },
+ "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.0.0"
+ }
+ },
+ "plur": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/plur/-/plur-2.1.2.tgz",
+ "integrity": "sha1-dIJFLBoPUI4+NE6uwxLJHCncZVo=",
+ "dev": true,
+ "requires": {
+ "irregular-plurals": "^1.0.0"
+ }
+ },
+ "prelude-ls": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
+ "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ="
+ },
+ "prepend-http": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
+ "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw="
+ },
+ "preserve": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz",
+ "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks="
+ },
+ "pretty-bytes": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-1.0.4.tgz",
+ "integrity": "sha1-CiLoIQYJrTVUL4yNXSFZr/B1HIQ=",
+ "requires": {
+ "get-stdin": "^4.0.1",
+ "meow": "^3.1.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="
+ },
+ "propprop": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/propprop/-/propprop-0.3.1.tgz",
+ "integrity": "sha1-oEmjVouJZEAGfRXY7J8zc15XAXg="
+ },
+ "proto-list": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz",
+ "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk="
+ },
+ "pseudomap": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
+ "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM="
+ },
+ "punycode": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+ "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
+ },
+ "q": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz",
+ "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=",
+ "dev": true
+ },
+ "qs": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-2.3.3.tgz",
+ "integrity": "sha1-6eha2+ddoLvkyOBHaghikPhjtAQ=",
+ "dev": true
+ },
+ "randomatic": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.6.tgz",
+ "integrity": "sha1-EQ3Kv/OX6dz/fAeJzMCkmt8exbs=",
+ "requires": {
+ "is-number": "^2.0.2",
+ "kind-of": "^3.0.2"
+ }
+ },
+ "rc": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/rc/-/rc-1.1.6.tgz",
+ "integrity": "sha1-Q2UbdrauU7XIAvEVH6P8OwWZack=",
+ "requires": {
+ "deep-extend": "~0.4.0",
+ "ini": "~1.3.0",
+ "minimist": "^1.2.0",
+ "strip-json-comments": "~1.0.4"
+ }
+ },
+ "read-all-stream": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/read-all-stream/-/read-all-stream-3.1.0.tgz",
+ "integrity": "sha1-NcPhd/IHjveJ7kv6+kNzB06u9Po=",
+ "requires": {
+ "pinkie-promise": "^2.0.0",
+ "readable-stream": "^2.0.0"
+ }
+ },
+ "read-chunk": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/read-chunk/-/read-chunk-1.0.1.tgz",
+ "integrity": "sha1-X2jKswfmY/GZk1J9m1icrORmEZQ="
+ },
+ "read-pkg": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
+ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
+ "requires": {
+ "load-json-file": "^1.0.0",
+ "normalize-package-data": "^2.3.2",
+ "path-type": "^1.0.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=",
+ "requires": {
+ "find-up": "^1.0.0",
+ "read-pkg": "^1.0.0"
+ }
+ },
+ "readable-stream": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.2.tgz",
+ "integrity": "sha1-qeb+w8fdqF+LsbO6cChgRVb8gl4=",
+ "requires": {
+ "buffer-shims": "^1.0.0",
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~1.0.6",
+ "string_decoder": "~0.10.x",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "readline2": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/readline2/-/readline2-0.1.1.tgz",
+ "integrity": "sha1-mUQ7pug7gw7zBRv9fcJBqCco1Wg=",
+ "requires": {
+ "mute-stream": "0.0.4",
+ "strip-ansi": "^2.0.1"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-1.1.1.tgz",
+ "integrity": "sha1-QchHGUZGN15qGl0Qw8oFTvn8mA0="
+ },
+ "strip-ansi": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-2.0.1.tgz",
+ "integrity": "sha1-32LBqpTtLxFOHQ8h/R1QSCt5pg4=",
+ "requires": {
+ "ansi-regex": "^1.0.0"
+ }
+ }
+ }
+ },
+ "rechoir": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
+ "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=",
+ "requires": {
+ "resolve": "^1.1.6"
+ }
+ },
+ "redent": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
+ "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
+ "requires": {
+ "indent-string": "^2.1.0",
+ "strip-indent": "^1.0.1"
+ }
+ },
+ "reduce-component": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/reduce-component/-/reduce-component-1.0.1.tgz",
+ "integrity": "sha1-4Mk1QsV0UhvqE98PlIjtgqt3xdo=",
+ "dev": true
+ },
+ "regex-cache": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz",
+ "integrity": "sha1-mxpsNdTQ3871cRrmUejp09cRQUU=",
+ "requires": {
+ "is-equal-shallow": "^0.1.3",
+ "is-primitive": "^2.0.0"
+ }
+ },
+ "registry-auth-token": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.1.0.tgz",
+ "integrity": "sha1-mXwIJW4MeZmDe5DpRNs52KeQJ2s=",
+ "requires": {
+ "rc": "^1.1.6"
+ }
+ },
+ "registry-url": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz",
+ "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=",
+ "requires": {
+ "rc": "^1.0.1"
+ }
+ },
+ "repeat-element": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz",
+ "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo="
+ },
+ "repeat-string": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
+ "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
+ },
+ "repeating": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
+ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
+ "requires": {
+ "is-finite": "^1.0.0"
+ }
+ },
+ "replace-ext": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz",
+ "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ="
+ },
+ "request": {
+ "version": "2.79.0",
+ "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz",
+ "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=",
+ "requires": {
+ "aws-sign2": "~0.6.0",
+ "aws4": "^1.2.1",
+ "caseless": "~0.11.0",
+ "combined-stream": "~1.0.5",
+ "extend": "~3.0.0",
+ "forever-agent": "~0.6.1",
+ "form-data": "~2.1.1",
+ "har-validator": "~2.0.6",
+ "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",
+ "qs": "~6.3.0",
+ "stringstream": "~0.0.4",
+ "tough-cookie": "~2.3.0",
+ "tunnel-agent": "~0.4.1",
+ "uuid": "^3.0.0"
+ },
+ "dependencies": {
+ "form-data": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.2.tgz",
+ "integrity": "sha1-icNTQAi5fq2ky7FX1Y9vXfAl6uQ=",
+ "requires": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.5",
+ "mime-types": "^2.1.12"
+ }
+ },
+ "qs": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.0.tgz",
+ "integrity": "sha1-9AOyZPI7wBIox0ExtAfxjV6l1EI="
+ },
+ "uuid": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz",
+ "integrity": "sha1-ZUS7ot/ajBzxfmKaOjBeK7H+5sE="
+ }
+ }
+ },
+ "resolve": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.2.0.tgz",
+ "integrity": "sha1-lYnD8vYUnRQXpAvswWY9tuxrwmw="
+ },
+ "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"
+ }
+ },
+ "restore-cursor": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz",
+ "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=",
+ "requires": {
+ "exit-hook": "^1.0.0",
+ "onetime": "^1.0.0"
+ }
+ },
+ "right-align": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
+ "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "align-text": "^0.1.1"
+ }
+ },
+ "rimraf": {
+ "version": "2.5.4",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.5.4.tgz",
+ "integrity": "sha1-loAAk8vxoMhr2VtGJUZ1NcKd+gQ=",
+ "requires": {
+ "glob": "^7.0.5"
+ },
+ "dependencies": {
+ "glob": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz",
+ "integrity": "sha1-gFIR3wT6rxxjo2ADBs31reULLsg=",
+ "requires": {
+ "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"
+ }
+ }
+ }
+ },
+ "root-check": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/root-check/-/root-check-1.0.0.tgz",
+ "integrity": "sha1-xSp5S/Dbn61WdTbkGJjwyeCoZpc=",
+ "requires": {
+ "downgrade-root": "^1.0.0",
+ "sudo-block": "^1.1.0"
+ }
+ },
+ "run-async": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz",
+ "integrity": "sha1-yK1KXhEGYeQCp9IbUw4AnyX444k=",
+ "requires": {
+ "once": "^1.3.0"
+ }
+ },
+ "rx": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/rx/-/rx-2.5.3.tgz",
+ "integrity": "sha1-Ia3H2A8CACr1Da6X/Z2/JIdV9WY="
+ },
+ "rx-lite": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz",
+ "integrity": "sha1-Gc5QLKVyZl87ZHsQk5+X/RYV8QI="
+ },
+ "samsam": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/samsam/-/samsam-1.1.2.tgz",
+ "integrity": "sha1-vsEf3IOp/aBjQBIQ5AF2wwJNFWc="
+ },
+ "seek-bzip": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.5.tgz",
+ "integrity": "sha1-z+kXyz0nS8/6x5J1ivUxc+sfq9w=",
+ "requires": {
+ "commander": "~2.8.1"
+ }
+ },
+ "semver": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.1.0.tgz",
+ "integrity": "sha1-hfLPhVBGXE3wAM99hvawVBBqueU="
+ },
+ "semver-diff": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz",
+ "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=",
+ "requires": {
+ "semver": "^5.0.3"
+ }
+ },
+ "semver-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-1.0.0.tgz",
+ "integrity": "sha1-kqSWkGX5xwxpR1PVUkj8aPj2Usk="
+ },
+ "semver-truncate": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/semver-truncate/-/semver-truncate-1.1.2.tgz",
+ "integrity": "sha1-V/Qd5pcHpicJp+AQS6IRcQnqR+g=",
+ "requires": {
+ "semver": "^5.3.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
+ "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8="
+ }
+ }
+ },
+ "set-immediate-shim": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz",
+ "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E="
+ },
+ "shelljs": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.5.3.tgz",
+ "integrity": "sha1-xUmCuZbHbvDB5rWfvcWCX1txMRM=",
+ "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="
+ },
+ "sinon": {
+ "version": "1.17.7",
+ "resolved": "https://registry.npmjs.org/sinon/-/sinon-1.17.7.tgz",
+ "integrity": "sha1-RUKk9JugxFwF6y6d2dID4rjv4L8=",
+ "requires": {
+ "formatio": "1.1.1",
+ "lolex": "1.3.2",
+ "samsam": "1.1.2",
+ "util": ">=0.10.3 <1"
+ }
+ },
+ "slide": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz",
+ "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc="
+ },
+ "sntp": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz",
+ "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=",
+ "requires": {
+ "hoek": "2.x.x"
+ }
+ },
+ "sort-on": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/sort-on/-/sort-on-1.3.0.tgz",
+ "integrity": "sha1-Df1bNksj338qzYaYXa64ieGnyEA=",
+ "requires": {
+ "arrify": "^1.0.0",
+ "dot-prop": "^2.0.0"
+ },
+ "dependencies": {
+ "dot-prop": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-2.4.0.tgz",
+ "integrity": "sha1-hI4o9/HVB0DGdHqzywdnBGK2+Jw=",
+ "requires": {
+ "is-obj": "^1.0.0"
+ }
+ }
+ }
+ },
+ "source-map": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz",
+ "integrity": "sha1-2rc/vPwrqBm03gO9b26qSBZLP50=",
+ "optional": true,
+ "requires": {
+ "amdefine": ">=0.0.4"
+ }
+ },
+ "sparkles": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.0.tgz",
+ "integrity": "sha1-Gsu/tZJDbRC76PeFt8xvgoFQEsM="
+ },
+ "spawn-sync": {
+ "version": "1.0.15",
+ "resolved": "https://registry.npmjs.org/spawn-sync/-/spawn-sync-1.0.15.tgz",
+ "integrity": "sha1-sAeZVX63+wyDdsKdROih6mfldHY=",
+ "requires": {
+ "concat-stream": "^1.4.7",
+ "os-shim": "^0.1.2"
+ }
+ },
+ "spdx-correct": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz",
+ "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=",
+ "requires": {
+ "spdx-license-ids": "^1.0.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="
+ },
+ "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="
+ },
+ "split": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/split/-/split-1.0.0.tgz",
+ "integrity": "sha1-xDlc5oOrzSVLwo/h2rtuXCfc/64=",
+ "dev": true,
+ "requires": {
+ "through": "2"
+ }
+ },
+ "split2": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/split2/-/split2-1.1.1.tgz",
+ "integrity": "sha1-Fi2bGIZfAqsvKtlYVSLbm1TEgfk=",
+ "dev": true,
+ "requires": {
+ "through2": "~2.0.0"
+ },
+ "dependencies": {
+ "through2": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
+ "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
+ "dev": true,
+ "requires": {
+ "readable-stream": "^2.1.5",
+ "xtend": "~4.0.1"
+ }
+ }
+ }
+ },
+ "sshpk": {
+ "version": "1.10.2",
+ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.10.2.tgz",
+ "integrity": "sha1-1agEziJpVRVjjnmNviMnPeBwpfo=",
+ "requires": {
+ "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",
+ "jodid25519": "^1.0.0",
+ "jsbn": "~0.1.0",
+ "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="
+ }
+ }
+ },
+ "stat-mode": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-0.2.2.tgz",
+ "integrity": "sha1-5sgLYjEj19gM8TLOU480YokHJQI="
+ },
+ "statuses": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz",
+ "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4="
+ },
+ "stream-combiner2": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz",
+ "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=",
+ "requires": {
+ "duplexer2": "~0.1.0",
+ "readable-stream": "^2.0.2"
+ }
+ },
+ "stream-shift": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz",
+ "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI="
+ },
+ "string-length": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/string-length/-/string-length-1.0.1.tgz",
+ "integrity": "sha1-VpcPscOFWOnnC3KL894mmsRa36w=",
+ "requires": {
+ "strip-ansi": "^3.0.0"
+ }
+ },
+ "string-template": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz",
+ "integrity": "sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0="
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "requires": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ }
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
+ },
+ "stringstream": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
+ "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg="
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ },
+ "strip-bom": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
+ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
+ "requires": {
+ "is-utf8": "^0.2.0"
+ }
+ },
+ "strip-bom-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-1.0.0.tgz",
+ "integrity": "sha1-5xRDmFd9Uaa+0PoZlPoF9D/ZiO4=",
+ "requires": {
+ "first-chunk-stream": "^1.0.0",
+ "strip-bom": "^2.0.0"
+ }
+ },
+ "strip-dirs": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-1.1.1.tgz",
+ "integrity": "sha1-lgu9EoeETzl1pFWKoQOoJV4kVqA=",
+ "requires": {
+ "chalk": "^1.0.0",
+ "get-stdin": "^4.0.1",
+ "is-absolute": "^0.1.5",
+ "is-natural-number": "^2.0.0",
+ "minimist": "^1.1.0",
+ "sum-up": "^1.0.1"
+ }
+ },
+ "strip-indent": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
+ "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
+ "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="
+ },
+ "strip-outer": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.0.tgz",
+ "integrity": "sha1-qsC6YNLpDF1PJ1/Yhp/ZotMQ/7g=",
+ "requires": {
+ "escape-string-regexp": "^1.0.2"
+ }
+ },
+ "sudo-block": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/sudo-block/-/sudo-block-1.2.0.tgz",
+ "integrity": "sha1-zFOb+BkWJNT1B9g+60W0zqJ/NGM=",
+ "requires": {
+ "chalk": "^1.0.0",
+ "is-docker": "^1.0.0",
+ "is-root": "^1.0.0"
+ }
+ },
+ "sum-up": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sum-up/-/sum-up-1.0.3.tgz",
+ "integrity": "sha1-HGYfZnBX9jvLeHWqFDi8FiUlFW4=",
+ "requires": {
+ "chalk": "^1.0.0"
+ }
+ },
+ "superagent": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npmjs.org/superagent/-/superagent-1.8.5.tgz",
+ "integrity": "sha1-HA3cOvMOgOuE68BcshItqP6UC1U=",
+ "dev": true,
+ "requires": {
+ "component-emitter": "~1.2.0",
+ "cookiejar": "2.0.6",
+ "debug": "2",
+ "extend": "3.0.0",
+ "form-data": "1.0.0-rc3",
+ "formidable": "~1.0.14",
+ "methods": "~1.1.1",
+ "mime": "1.3.4",
+ "qs": "2.3.3",
+ "readable-stream": "1.0.27-1",
+ "reduce-component": "1.0.1"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "1.0.27-1",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.27-1.tgz",
+ "integrity": "sha1-a2eYPCA1fO/QfwFlABoW1xDZEHg=",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
+ }
+ }
+ },
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="
+ },
+ "tabtab": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/tabtab/-/tabtab-1.3.2.tgz",
+ "integrity": "sha1-u5wspjJPZZ/edjTCyvPAluEYfKc=",
+ "requires": {
+ "debug": "^2.2.0",
+ "inquirer": "^1.0.2",
+ "minimist": "^1.2.0",
+ "mkdirp": "^0.5.1",
+ "npmlog": "^2.0.3",
+ "object-assign": "^4.1.0"
+ },
+ "dependencies": {
+ "cli-width": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.1.0.tgz",
+ "integrity": "sha1-sjTKIJsp72b8UY2bmNWEewDt8Ao="
+ },
+ "inquirer": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-1.2.3.tgz",
+ "integrity": "sha1-TexvMvN+97sLLtPx0aXD9UUHSRg=",
+ "requires": {
+ "ansi-escapes": "^1.1.0",
+ "chalk": "^1.0.0",
+ "cli-cursor": "^1.0.1",
+ "cli-width": "^2.0.0",
+ "external-editor": "^1.1.0",
+ "figures": "^1.3.5",
+ "lodash": "^4.3.0",
+ "mute-stream": "0.0.6",
+ "pinkie-promise": "^2.0.0",
+ "run-async": "^2.2.0",
+ "rx": "^4.1.0",
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.0",
+ "through": "^2.3.6"
+ }
+ },
+ "lodash": {
+ "version": "4.17.4",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
+ "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4="
+ },
+ "mute-stream": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.6.tgz",
+ "integrity": "sha1-SJYrGeFp/R38JAs/HnMXYnu8R9s="
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
+ },
+ "run-async": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
+ "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
+ "requires": {
+ "is-promise": "^2.1.0"
+ }
+ },
+ "rx": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz",
+ "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I="
+ }
+ }
+ },
+ "taketalk": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/taketalk/-/taketalk-1.0.0.tgz",
+ "integrity": "sha1-tNTw3u0gauffd1sSnqLKbeUvJt0=",
+ "requires": {
+ "get-stdin": "^4.0.1",
+ "minimist": "^1.1.0"
+ }
+ },
+ "tar-stream": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.5.2.tgz",
+ "integrity": "sha1-+8bG6DwaGdTLSMfZYXH8JI7/x78=",
+ "requires": {
+ "bl": "^1.0.0",
+ "end-of-stream": "^1.0.0",
+ "readable-stream": "^2.0.0",
+ "xtend": "^4.0.0"
+ }
+ },
+ "tempfile": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/tempfile/-/tempfile-1.1.1.tgz",
+ "integrity": "sha1-W8xOrsxKsscH2LwR2ZzMmiyyh/I=",
+ "dev": true,
+ "requires": {
+ "os-tmpdir": "^1.0.0",
+ "uuid": "^2.0.1"
+ }
+ },
+ "text-extensions": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.4.0.tgz",
+ "integrity": "sha1-w4XS6Ah5/m75eJPhcJ2I2UU3Juk=",
+ "dev": true
+ },
+ "text-table": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ="
+ },
+ "textextensions": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-1.0.2.tgz",
+ "integrity": "sha1-ZUhjk+4fK7A5pgy7oFsLaL2VAdI="
+ },
+ "through": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU="
+ },
+ "through2": {
+ "version": "0.6.5",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
+ "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=",
+ "requires": {
+ "readable-stream": ">=1.0.33-1 <1.1.0-0",
+ "xtend": ">=4.0.0 <4.1.0-0"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
+ },
+ "readable-stream": {
+ "version": "1.0.34",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
+ "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
+ }
+ }
+ },
+ "through2-filter": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-2.0.0.tgz",
+ "integrity": "sha1-YLxVoNrLdghdsfna6Zq0P4PWIuw=",
+ "requires": {
+ "through2": "~2.0.0",
+ "xtend": "~4.0.0"
+ },
+ "dependencies": {
+ "through2": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
+ "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
+ "requires": {
+ "readable-stream": "^2.1.5",
+ "xtend": "~4.0.1"
+ }
+ }
+ }
+ },
+ "time-stamp": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.0.1.tgz",
+ "integrity": "sha1-n0vSNVnJNllm8zAtu6KwfGuZsVE="
+ },
+ "timed-out": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-3.1.3.tgz",
+ "integrity": "sha1-lYYL/MXHbCd/j4Mm/Q9bLiDrohc="
+ },
+ "titleize": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/titleize/-/titleize-1.0.0.tgz",
+ "integrity": "sha1-fTUHIgYYMLpmF2MeDP0+oIOY2Vo="
+ },
+ "tmp": {
+ "version": "0.0.29",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.29.tgz",
+ "integrity": "sha1-8lEl/w3Z2jzLDC3Tce4SiLuRKMA=",
+ "requires": {
+ "os-tmpdir": "~1.0.1"
+ }
+ },
+ "to-absolute-glob": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-0.1.1.tgz",
+ "integrity": "sha1-HN+kcqnvUMI57maZm2YsoOs5k38=",
+ "requires": {
+ "extend-shallow": "^2.0.1"
+ }
+ },
+ "tough-cookie": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz",
+ "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=",
+ "requires": {
+ "punycode": "^1.4.1"
+ }
+ },
+ "traverse": {
+ "version": "0.6.6",
+ "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz",
+ "integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc="
+ },
+ "trim-newlines": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
+ "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM="
+ },
+ "trim-off-newlines": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz",
+ "integrity": "sha1-n5up2e+odkw4dpi8v+sshI8RrbM=",
+ "dev": true
+ },
+ "trim-repeated": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz",
+ "integrity": "sha1-42RqLqTokTEr9+rObPsFOAvAHCE=",
+ "requires": {
+ "escape-string-regexp": "^1.0.2"
+ }
+ },
+ "tunnel-agent": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz",
+ "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us="
+ },
+ "tweetnacl": {
+ "version": "0.14.5",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
+ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
+ "optional": true
+ },
+ "twig": {
+ "version": "0.8.9",
+ "resolved": "https://registry.npmjs.org/twig/-/twig-0.8.9.tgz",
+ "integrity": "sha1-sVlPACtoTl8CnePlToe+xPCEtsI=",
+ "requires": {
+ "minimatch": "3.0.x",
+ "walk": "2.3.x"
+ }
+ },
+ "type-check": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
+ "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
+ "requires": {
+ "prelude-ls": "~1.1.2"
+ }
+ },
+ "type-detect": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-1.0.0.tgz",
+ "integrity": "sha1-diIXzAbbJY7EiQihKY6LlRIejqI=",
+ "dev": true
+ },
+ "typedarray": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
+ },
+ "uglify-js": {
+ "version": "2.7.5",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.7.5.tgz",
+ "integrity": "sha1-RhLAx7qu4rp8SH3kkErhIgefLKg=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "async": "~0.2.6",
+ "source-map": "~0.5.1",
+ "uglify-to-browserify": "~1.0.0",
+ "yargs": "~3.10.0"
+ },
+ "dependencies": {
+ "async": {
+ "version": "0.2.10",
+ "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
+ "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=",
+ "dev": true,
+ "optional": true
+ },
+ "source-map": {
+ "version": "0.5.6",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz",
+ "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "uglify-to-browserify": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
+ "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=",
+ "dev": true,
+ "optional": true
+ },
+ "uid-number": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.5.tgz",
+ "integrity": "sha1-Wj2yPvXb1VuB/ODsmirG/M3ruB4="
+ },
+ "underscore": {
+ "version": "1.8.3",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz",
+ "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI="
+ },
+ "underscore.string": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.2.3.tgz",
+ "integrity": "sha1-gGmSYzZl1eX8tNsfs6hi62jp5to="
+ },
+ "unique-stream": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.2.1.tgz",
+ "integrity": "sha1-WqADz76Uxf+GbE59ZouxxNuts2k=",
+ "requires": {
+ "json-stable-stringify": "^1.0.0",
+ "through2-filter": "^2.0.0"
+ }
+ },
+ "untildify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/untildify/-/untildify-2.1.0.tgz",
+ "integrity": "sha1-F+soB5h/dpUunASF/DEdBqgmouA=",
+ "requires": {
+ "os-homedir": "^1.0.0"
+ }
+ },
+ "unzip-response": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-1.0.2.tgz",
+ "integrity": "sha1-uYTwh3/AqJwsdzzB73tbIytbBv4="
+ },
+ "update-notifier": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-0.6.3.tgz",
+ "integrity": "sha1-d23sjaoT6WKjQeih2YNUMGtnrgg=",
+ "requires": {
+ "boxen": "^0.3.1",
+ "chalk": "^1.0.0",
+ "configstore": "^2.0.0",
+ "is-npm": "^1.0.0",
+ "latest-version": "^2.0.0",
+ "semver-diff": "^2.0.0"
+ },
+ "dependencies": {
+ "configstore": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/configstore/-/configstore-2.1.0.tgz",
+ "integrity": "sha1-c3o6cDbpiGECqmCZ5HuzOrGroaE=",
+ "requires": {
+ "dot-prop": "^3.0.0",
+ "graceful-fs": "^4.1.2",
+ "mkdirp": "^0.5.0",
+ "object-assign": "^4.0.1",
+ "os-tmpdir": "^1.0.0",
+ "osenv": "^0.1.0",
+ "uuid": "^2.0.1",
+ "write-file-atomic": "^1.1.2",
+ "xdg-basedir": "^2.0.0"
+ }
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
+ },
+ "osenv": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz",
+ "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=",
+ "requires": {
+ "os-homedir": "^1.0.0",
+ "os-tmpdir": "^1.0.0"
+ }
+ },
+ "xdg-basedir": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-2.0.0.tgz",
+ "integrity": "sha1-7byQPMOF/ARSPZZqM1UEtVBNG9I=",
+ "requires": {
+ "os-homedir": "^1.0.0"
+ }
+ }
+ }
+ },
+ "url-parse-lax": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz",
+ "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=",
+ "requires": {
+ "prepend-http": "^1.0.1"
+ }
+ },
+ "user-home": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz",
+ "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA="
+ },
+ "util": {
+ "version": "0.10.3",
+ "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
+ "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
+ "requires": {
+ "inherits": "2.0.1"
+ },
+ "dependencies": {
+ "inherits": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+ "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE="
+ }
+ }
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
+ },
+ "uuid": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz",
+ "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho="
+ },
+ "vali-date": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/vali-date/-/vali-date-1.0.0.tgz",
+ "integrity": "sha1-G5BKWWCfsyjvB4E4Qgk09rhnCaY="
+ },
+ "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=",
+ "requires": {
+ "spdx-correct": "~1.0.0",
+ "spdx-expression-parse": "~1.0.0"
+ }
+ },
+ "verror": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz",
+ "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=",
+ "requires": {
+ "extsprintf": "1.0.2"
+ }
+ },
+ "vinyl": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz",
+ "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=",
+ "requires": {
+ "clone": "^1.0.0",
+ "clone-stats": "^0.0.1",
+ "replace-ext": "0.0.1"
+ }
+ },
+ "vinyl-assign": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/vinyl-assign/-/vinyl-assign-1.2.1.tgz",
+ "integrity": "sha1-TRmIkbVRWRHXcajNnFSApGoHSkU=",
+ "requires": {
+ "object-assign": "^4.0.1",
+ "readable-stream": "^2.0.0"
+ },
+ "dependencies": {
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
+ }
+ }
+ },
+ "vinyl-file": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/vinyl-file/-/vinyl-file-2.0.0.tgz",
+ "integrity": "sha1-p+v1/779obfRjRQPyweyI++2dRo=",
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "pify": "^2.3.0",
+ "pinkie-promise": "^2.0.0",
+ "strip-bom": "^2.0.0",
+ "strip-bom-stream": "^2.0.0",
+ "vinyl": "^1.1.0"
+ },
+ "dependencies": {
+ "first-chunk-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz",
+ "integrity": "sha1-G97NuOCDwGZLkZRVgVd6Q6nzHXA=",
+ "requires": {
+ "readable-stream": "^2.0.2"
+ }
+ },
+ "strip-bom-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz",
+ "integrity": "sha1-+H217yYT9paKpUWr/h7HKLaoKco=",
+ "requires": {
+ "first-chunk-stream": "^2.0.0",
+ "strip-bom": "^2.0.0"
+ }
+ }
+ }
+ },
+ "vinyl-fs": {
+ "version": "2.4.4",
+ "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-2.4.4.tgz",
+ "integrity": "sha1-vm/zJwy1Xf19MGNkDegfJddTIjk=",
+ "requires": {
+ "duplexify": "^3.2.0",
+ "glob-stream": "^5.3.2",
+ "graceful-fs": "^4.0.0",
+ "gulp-sourcemaps": "1.6.0",
+ "is-valid-glob": "^0.3.0",
+ "lazystream": "^1.0.0",
+ "lodash.isequal": "^4.0.0",
+ "merge-stream": "^1.0.0",
+ "mkdirp": "^0.5.0",
+ "object-assign": "^4.0.0",
+ "readable-stream": "^2.0.4",
+ "strip-bom": "^2.0.0",
+ "strip-bom-stream": "^1.0.0",
+ "through2": "^2.0.0",
+ "through2-filter": "^2.0.0",
+ "vali-date": "^1.0.0",
+ "vinyl": "^1.0.0"
+ },
+ "dependencies": {
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
+ },
+ "through2": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
+ "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
+ "requires": {
+ "readable-stream": "^2.1.5",
+ "xtend": "~4.0.1"
+ }
+ }
+ }
+ },
+ "walk": {
+ "version": "2.3.9",
+ "resolved": "https://registry.npmjs.org/walk/-/walk-2.3.9.tgz",
+ "integrity": "sha1-MbTbZnjyrgHDnqn7hyWpAx5Vins=",
+ "requires": {
+ "foreachasync": "^3.0.0"
+ }
+ },
+ "ware": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/ware/-/ware-1.3.0.tgz",
+ "integrity": "sha1-0bFPOdLiy0q4xAmPdW/ksWTkc9Q=",
+ "requires": {
+ "wrap-fn": "^0.1.0"
+ }
+ },
+ "which": {
+ "version": "1.2.12",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.2.12.tgz",
+ "integrity": "sha1-3me15FAmnxlJCe8j7OTr5Bb6EZI=",
+ "requires": {
+ "isexe": "^1.1.1"
+ }
+ },
+ "widest-line": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-1.0.0.tgz",
+ "integrity": "sha1-DAnIXCqUaD0Nfq+O4JfVZL8OEFw=",
+ "requires": {
+ "string-width": "^1.0.1"
+ }
+ },
+ "win-release": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/win-release/-/win-release-1.1.1.tgz",
+ "integrity": "sha1-X6VeAr58qTTt/BJmVjLoSbcuUgk=",
+ "requires": {
+ "semver": "^5.0.1"
+ }
+ },
+ "window-size": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
+ "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=",
+ "dev": true,
+ "optional": true
+ },
+ "wiredep": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/wiredep/-/wiredep-3.0.0.tgz",
+ "integrity": "sha1-FYIjQdp7qIDqaaHmSGi+rrc9yVk=",
+ "requires": {
+ "bower-config": "^0.5.0",
+ "chalk": "^0.5.1",
+ "glob": "^4.0.5",
+ "lodash": "^2.4.1",
+ "minimist": "^1.1.0",
+ "propprop": "^0.3.0",
+ "through2": "^0.6.1"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-0.2.1.tgz",
+ "integrity": "sha1-DY6UaWej2BQ/k+JOKYUl/BsiNfk="
+ },
+ "ansi-styles": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.1.0.tgz",
+ "integrity": "sha1-6uy/Zs1waIJ2Cy9GkVgrj1XXp94="
+ },
+ "chalk": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.5.1.tgz",
+ "integrity": "sha1-Zjs6ZItotV0EaQ1JFnqoN4WPIXQ=",
+ "requires": {
+ "ansi-styles": "^1.1.0",
+ "escape-string-regexp": "^1.0.0",
+ "has-ansi": "^0.1.0",
+ "strip-ansi": "^0.3.0",
+ "supports-color": "^0.2.0"
+ }
+ },
+ "glob": {
+ "version": "4.5.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz",
+ "integrity": "sha1-xstz0yJsHv7wTePFbQEvAzd+4V8=",
+ "requires": {
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^2.0.1",
+ "once": "^1.3.0"
+ }
+ },
+ "has-ansi": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-0.1.0.tgz",
+ "integrity": "sha1-hPJlqujA5qiKEtcCKJS3VoiUxi4=",
+ "requires": {
+ "ansi-regex": "^0.2.0"
+ }
+ },
+ "lodash": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz",
+ "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4="
+ },
+ "minimatch": {
+ "version": "2.0.10",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz",
+ "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=",
+ "requires": {
+ "brace-expansion": "^1.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.3.0.tgz",
+ "integrity": "sha1-JfSOoiynkYfzF0pNuHWTR7sSYiA=",
+ "requires": {
+ "ansi-regex": "^0.2.1"
+ }
+ },
+ "supports-color": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz",
+ "integrity": "sha1-2S3iaU6z9nMjlz1649i1W0wiGQo="
+ }
+ }
+ },
+ "wordwrap": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
+ "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus="
+ },
+ "wrap-ansi": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
+ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
+ "requires": {
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1"
+ }
+ },
+ "wrap-fn": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/wrap-fn/-/wrap-fn-0.1.5.tgz",
+ "integrity": "sha1-8htuQQFv9KfjFyDbxjoJAWvfmEU=",
+ "requires": {
+ "co": "3.1.0"
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
+ },
+ "write-file-atomic": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.1.tgz",
+ "integrity": "sha1-fUW6MjFjKN0ex9kPYOvA2EW7dZo=",
+ "requires": {
+ "graceful-fs": "^4.1.11",
+ "imurmurhash": "^0.1.4",
+ "slide": "^1.1.5"
+ }
+ },
+ "xdg-basedir": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-1.0.1.tgz",
+ "integrity": "sha1-FP+PY6T9vLBdW27qIrNvMDO58E4=",
+ "requires": {
+ "user-home": "^1.0.0"
+ }
+ },
+ "xtend": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
+ "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68="
+ },
+ "yallist": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.0.0.tgz",
+ "integrity": "sha1-MGxUODXwnuGkyyO3vOmrNByRzdQ="
+ },
+ "yargs": {
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
+ "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "camelcase": "^1.0.2",
+ "cliui": "^2.1.0",
+ "decamelize": "^1.0.0",
+ "window-size": "0.1.0"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
+ "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "yauzl": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.7.0.tgz",
+ "integrity": "sha1-4h2EeGi0lvwp6uwj7of90z6bK84=",
+ "requires": {
+ "buffer-crc32": "~0.2.3",
+ "fd-slicer": "~1.0.1"
+ }
+ },
+ "yeoman-assert": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/yeoman-assert/-/yeoman-assert-1.0.0.tgz",
+ "integrity": "sha1-kA0QidGI/Dk5MiEpMHleBr8vnoo=",
+ "requires": {
+ "chalk": "^0.5.1",
+ "lodash": "^2.4.1"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-0.2.1.tgz",
+ "integrity": "sha1-DY6UaWej2BQ/k+JOKYUl/BsiNfk="
+ },
+ "ansi-styles": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.1.0.tgz",
+ "integrity": "sha1-6uy/Zs1waIJ2Cy9GkVgrj1XXp94="
+ },
+ "chalk": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.5.1.tgz",
+ "integrity": "sha1-Zjs6ZItotV0EaQ1JFnqoN4WPIXQ=",
+ "requires": {
+ "ansi-styles": "^1.1.0",
+ "escape-string-regexp": "^1.0.0",
+ "has-ansi": "^0.1.0",
+ "strip-ansi": "^0.3.0",
+ "supports-color": "^0.2.0"
+ }
+ },
+ "has-ansi": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-0.1.0.tgz",
+ "integrity": "sha1-hPJlqujA5qiKEtcCKJS3VoiUxi4=",
+ "requires": {
+ "ansi-regex": "^0.2.0"
+ }
+ },
+ "lodash": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz",
+ "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4="
+ },
+ "strip-ansi": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.3.0.tgz",
+ "integrity": "sha1-JfSOoiynkYfzF0pNuHWTR7sSYiA=",
+ "requires": {
+ "ansi-regex": "^0.2.1"
+ }
+ },
+ "supports-color": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz",
+ "integrity": "sha1-2S3iaU6z9nMjlz1649i1W0wiGQo="
+ }
+ }
+ },
+ "yeoman-character": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/yeoman-character/-/yeoman-character-1.1.0.tgz",
+ "integrity": "sha1-kNS1vq+SdZCGF3AVsv36LgaE18c=",
+ "requires": {
+ "supports-color": "^3.1.2"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "requires": {
+ "has-flag": "^1.0.0"
+ }
+ }
+ }
+ },
+ "yeoman-doctor": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/yeoman-doctor/-/yeoman-doctor-2.1.0.tgz",
+ "integrity": "sha1-lKt4SJamT1Op+sRS1ekTPidQojY=",
+ "requires": {
+ "bin-version-check": "^2.1.0",
+ "chalk": "^1.0.0",
+ "each-async": "^1.1.1",
+ "log-symbols": "^1.0.1",
+ "object-values": "^1.0.0",
+ "semver": "^5.0.3",
+ "twig": "^0.8.2",
+ "user-home": "^2.0.0"
+ },
+ "dependencies": {
+ "user-home": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz",
+ "integrity": "sha1-nHC/2Babwdy/SGBODwS4tJzenp8=",
+ "requires": {
+ "os-homedir": "^1.0.0"
+ }
+ }
+ }
+ },
+ "yeoman-environment": {
+ "version": "1.6.6",
+ "resolved": "https://registry.npmjs.org/yeoman-environment/-/yeoman-environment-1.6.6.tgz",
+ "integrity": "sha1-zYX6Z9FWBg5EDXgH1+988NLR1nE=",
+ "requires": {
+ "chalk": "^1.0.0",
+ "debug": "^2.0.0",
+ "diff": "^2.1.2",
+ "escape-string-regexp": "^1.0.2",
+ "globby": "^4.0.0",
+ "grouped-queue": "^0.3.0",
+ "inquirer": "^1.0.2",
+ "lodash": "^4.11.1",
+ "log-symbols": "^1.0.1",
+ "mem-fs": "^1.1.0",
+ "text-table": "^0.2.0",
+ "untildify": "^2.0.0"
+ },
+ "dependencies": {
+ "cli-width": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.1.0.tgz",
+ "integrity": "sha1-sjTKIJsp72b8UY2bmNWEewDt8Ao="
+ },
+ "diff": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-2.2.3.tgz",
+ "integrity": "sha1-YOr9DSjukG5Oj/ClLBIpUhAzv5k="
+ },
+ "inquirer": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-1.2.3.tgz",
+ "integrity": "sha1-TexvMvN+97sLLtPx0aXD9UUHSRg=",
+ "requires": {
+ "ansi-escapes": "^1.1.0",
+ "chalk": "^1.0.0",
+ "cli-cursor": "^1.0.1",
+ "cli-width": "^2.0.0",
+ "external-editor": "^1.1.0",
+ "figures": "^1.3.5",
+ "lodash": "^4.3.0",
+ "mute-stream": "0.0.6",
+ "pinkie-promise": "^2.0.0",
+ "run-async": "^2.2.0",
+ "rx": "^4.1.0",
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.0",
+ "through": "^2.3.6"
+ }
+ },
+ "lodash": {
+ "version": "4.17.4",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
+ "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4="
+ },
+ "mute-stream": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.6.tgz",
+ "integrity": "sha1-SJYrGeFp/R38JAs/HnMXYnu8R9s="
+ },
+ "run-async": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
+ "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
+ "requires": {
+ "is-promise": "^2.1.0"
+ }
+ },
+ "rx": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz",
+ "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I="
+ }
+ }
+ },
+ "yeoman-generator": {
+ "version": "0.22.5",
+ "resolved": "https://registry.npmjs.org/yeoman-generator/-/yeoman-generator-0.22.5.tgz",
+ "integrity": "sha1-Vh0kSyq4AXdiU0N9VIzLLgHHRBU=",
+ "requires": {
+ "async": "^1.4.2",
+ "chalk": "^1.0.0",
+ "class-extend": "^0.1.0",
+ "cli-table": "^0.3.1",
+ "cross-spawn": "^2.0.0",
+ "dargs": "^4.0.0",
+ "dateformat": "^1.0.11",
+ "debug": "^2.1.0",
+ "detect-conflict": "^1.0.0",
+ "download": "^4.1.2",
+ "error": "^7.0.2",
+ "find-up": "^1.0.0",
+ "github-username": "^2.0.0",
+ "glob": "^6.0.1",
+ "gruntfile-editor": "^1.0.0",
+ "html-wiring": "^1.0.0",
+ "inquirer": "^0.11.0",
+ "istextorbinary": "^1.0.2",
+ "lodash": "^3.5.0",
+ "mem-fs-editor": "^2.0.0",
+ "mkdirp": "^0.5.0",
+ "nopt": "^3.0.0",
+ "path-exists": "^2.0.0",
+ "path-is-absolute": "^1.0.0",
+ "pretty-bytes": "^2.0.1",
+ "read-chunk": "^1.0.1",
+ "read-pkg-up": "^1.0.1",
+ "rimraf": "^2.2.0",
+ "run-async": "^2.0.0",
+ "shelljs": "^0.5.0",
+ "text-table": "^0.2.0",
+ "through2": "^2.0.0",
+ "underscore.string": "^3.0.3",
+ "user-home": "^2.0.0",
+ "xdg-basedir": "^2.0.0",
+ "yeoman-assert": "^2.0.0",
+ "yeoman-environment": "^1.1.0",
+ "yeoman-test": "^1.0.0",
+ "yeoman-welcome": "^1.0.0"
+ },
+ "dependencies": {
+ "async": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
+ "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo="
+ },
+ "cross-spawn": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-2.2.3.tgz",
+ "integrity": "sha1-+sViAt/T0N2GF3jy2iA79DS7ghw=",
+ "requires": {
+ "cross-spawn-async": "^2.2.2",
+ "spawn-sync": "^1.0.15"
+ }
+ },
+ "github-username": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/github-username/-/github-username-2.1.0.tgz",
+ "integrity": "sha1-IA5aEEr0K6CKVAlscI1LbsL6JWs=",
+ "requires": {
+ "gh-got": "^2.2.0",
+ "meow": "^3.5.0"
+ }
+ },
+ "glob": {
+ "version": "6.0.4",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz",
+ "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=",
+ "requires": {
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "2 || 3",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "inquirer": {
+ "version": "0.11.4",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.11.4.tgz",
+ "integrity": "sha1-geM3ToNhvq/y2XAWIG01nQsy+k0=",
+ "requires": {
+ "ansi-escapes": "^1.1.0",
+ "ansi-regex": "^2.0.0",
+ "chalk": "^1.0.0",
+ "cli-cursor": "^1.0.1",
+ "cli-width": "^1.0.1",
+ "figures": "^1.3.5",
+ "lodash": "^3.3.1",
+ "readline2": "^1.0.1",
+ "run-async": "^0.1.0",
+ "rx-lite": "^3.1.2",
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.0",
+ "through": "^2.3.6"
+ },
+ "dependencies": {
+ "run-async": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz",
+ "integrity": "sha1-yK1KXhEGYeQCp9IbUw4AnyX444k=",
+ "requires": {
+ "once": "^1.3.0"
+ }
+ }
+ }
+ },
+ "mem-fs-editor": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/mem-fs-editor/-/mem-fs-editor-2.3.0.tgz",
+ "integrity": "sha1-QqCuH1Xnb9A/CefHsVtjB731yxM=",
+ "requires": {
+ "commondir": "^1.0.1",
+ "deep-extend": "^0.4.0",
+ "ejs": "^2.3.1",
+ "glob": "^7.0.3",
+ "globby": "^4.0.0",
+ "mkdirp": "^0.5.0",
+ "multimatch": "^2.0.0",
+ "rimraf": "^2.2.8",
+ "through2": "^2.0.0",
+ "vinyl": "^1.1.0"
+ },
+ "dependencies": {
+ "glob": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz",
+ "integrity": "sha1-gFIR3wT6rxxjo2ADBs31reULLsg=",
+ "requires": {
+ "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"
+ }
+ }
+ }
+ },
+ "mute-stream": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz",
+ "integrity": "sha1-j7+rsKmKJT0xhDMfno3rc3L6xsA="
+ },
+ "pretty-bytes": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-2.0.1.tgz",
+ "integrity": "sha1-FV7E0ANvQTkecEXW2+SWPVJdJk8=",
+ "requires": {
+ "get-stdin": "^4.0.1",
+ "meow": "^3.1.0",
+ "number-is-nan": "^1.0.0"
+ }
+ },
+ "readline2": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz",
+ "integrity": "sha1-QQWWCP/BVHV7cV2ZidGZ/783LjU=",
+ "requires": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "mute-stream": "0.0.5"
+ }
+ },
+ "run-async": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
+ "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
+ "requires": {
+ "is-promise": "^2.1.0"
+ }
+ },
+ "shelljs": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.5.3.tgz",
+ "integrity": "sha1-xUmCuZbHbvDB5rWfvcWCX1txMRM="
+ },
+ "through2": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
+ "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
+ "requires": {
+ "readable-stream": "^2.1.5",
+ "xtend": "~4.0.1"
+ }
+ },
+ "user-home": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz",
+ "integrity": "sha1-nHC/2Babwdy/SGBODwS4tJzenp8=",
+ "requires": {
+ "os-homedir": "^1.0.0"
+ }
+ },
+ "xdg-basedir": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-2.0.0.tgz",
+ "integrity": "sha1-7byQPMOF/ARSPZZqM1UEtVBNG9I=",
+ "requires": {
+ "os-homedir": "^1.0.0"
+ }
+ },
+ "yeoman-assert": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/yeoman-assert/-/yeoman-assert-2.2.2.tgz",
+ "integrity": "sha1-0rFZgvakOKDSMZ2LXB1lq8W22+o=",
+ "requires": {
+ "lodash": "^3.6.0",
+ "path-exists": "^2.1.0"
+ }
+ }
+ }
+ },
+ "yeoman-test": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/yeoman-test/-/yeoman-test-1.6.0.tgz",
+ "integrity": "sha1-q/8pFzPhbokj2e78hpHGMoiL+Ug=",
+ "requires": {
+ "inquirer": "^1.0.2",
+ "lodash": "^4.3.0",
+ "mkdirp": "^0.5.1",
+ "pinkie-promise": "^2.0.1",
+ "rimraf": "^2.4.4",
+ "sinon": "^1.17.2",
+ "yeoman-environment": "^1.5.2",
+ "yeoman-generator": "^0.24.1"
+ },
+ "dependencies": {
+ "async": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.1.4.tgz",
+ "integrity": "sha1-LSFgx3iAMuTdbL4lAvH5osj2zeQ=",
+ "requires": {
+ "lodash": "^4.14.0"
+ }
+ },
+ "cli-width": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.1.0.tgz",
+ "integrity": "sha1-sjTKIJsp72b8UY2bmNWEewDt8Ao="
+ },
+ "cross-spawn": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz",
+ "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=",
+ "requires": {
+ "lru-cache": "^4.0.1",
+ "which": "^1.2.9"
+ }
+ },
+ "github-username": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/github-username/-/github-username-2.1.0.tgz",
+ "integrity": "sha1-IA5aEEr0K6CKVAlscI1LbsL6JWs=",
+ "requires": {
+ "gh-got": "^2.2.0",
+ "meow": "^3.5.0"
+ }
+ },
+ "glob": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz",
+ "integrity": "sha1-gFIR3wT6rxxjo2ADBs31reULLsg=",
+ "requires": {
+ "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"
+ }
+ },
+ "inquirer": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-1.2.3.tgz",
+ "integrity": "sha1-TexvMvN+97sLLtPx0aXD9UUHSRg=",
+ "requires": {
+ "ansi-escapes": "^1.1.0",
+ "chalk": "^1.0.0",
+ "cli-cursor": "^1.0.1",
+ "cli-width": "^2.0.0",
+ "external-editor": "^1.1.0",
+ "figures": "^1.3.5",
+ "lodash": "^4.3.0",
+ "mute-stream": "0.0.6",
+ "pinkie-promise": "^2.0.0",
+ "run-async": "^2.2.0",
+ "rx": "^4.1.0",
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.0",
+ "through": "^2.3.6"
+ }
+ },
+ "istextorbinary": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-2.1.0.tgz",
+ "integrity": "sha1-2+0qb1G+L3R1to+JRlgRFBt1iHQ=",
+ "requires": {
+ "binaryextensions": "1 || 2",
+ "editions": "^1.1.1",
+ "textextensions": "1 || 2"
+ }
+ },
+ "lodash": {
+ "version": "4.17.4",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
+ "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4="
+ },
+ "lru-cache": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.2.tgz",
+ "integrity": "sha1-HRdnnAac2l0ECZGgnbwsDbN35V4=",
+ "requires": {
+ "pseudomap": "^1.0.1",
+ "yallist": "^2.0.0"
+ }
+ },
+ "mem-fs-editor": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/mem-fs-editor/-/mem-fs-editor-2.3.0.tgz",
+ "integrity": "sha1-QqCuH1Xnb9A/CefHsVtjB731yxM=",
+ "requires": {
+ "commondir": "^1.0.1",
+ "deep-extend": "^0.4.0",
+ "ejs": "^2.3.1",
+ "glob": "^7.0.3",
+ "globby": "^4.0.0",
+ "mkdirp": "^0.5.0",
+ "multimatch": "^2.0.0",
+ "rimraf": "^2.2.8",
+ "through2": "^2.0.0",
+ "vinyl": "^1.1.0"
+ }
+ },
+ "mute-stream": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.6.tgz",
+ "integrity": "sha1-SJYrGeFp/R38JAs/HnMXYnu8R9s="
+ },
+ "pretty-bytes": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-3.0.1.tgz",
+ "integrity": "sha1-J9AAjXeAY6C0gRuzXHnxvV1fvM8=",
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ }
+ },
+ "run-async": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
+ "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
+ "requires": {
+ "is-promise": "^2.1.0"
+ }
+ },
+ "rx": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz",
+ "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I="
+ },
+ "shelljs": {
+ "version": "0.7.6",
+ "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.6.tgz",
+ "integrity": "sha1-N5zM+1a5HIYB5HkzVutTgpJN6a0=",
+ "requires": {
+ "glob": "^7.0.0",
+ "interpret": "^1.0.0",
+ "rechoir": "^0.6.2"
+ }
+ },
+ "through2": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
+ "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
+ "requires": {
+ "readable-stream": "^2.1.5",
+ "xtend": "~4.0.1"
+ }
+ },
+ "user-home": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz",
+ "integrity": "sha1-nHC/2Babwdy/SGBODwS4tJzenp8=",
+ "requires": {
+ "os-homedir": "^1.0.0"
+ }
+ },
+ "yeoman-assert": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/yeoman-assert/-/yeoman-assert-2.2.2.tgz",
+ "integrity": "sha1-0rFZgvakOKDSMZ2LXB1lq8W22+o=",
+ "requires": {
+ "lodash": "^3.6.0",
+ "path-exists": "^2.1.0"
+ },
+ "dependencies": {
+ "lodash": {
+ "version": "3.10.1",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz",
+ "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y="
+ }
+ }
+ },
+ "yeoman-generator": {
+ "version": "0.24.1",
+ "resolved": "https://registry.npmjs.org/yeoman-generator/-/yeoman-generator-0.24.1.tgz",
+ "integrity": "sha1-HKdEKdnFyV2wsihZ7BgKJZm8H44=",
+ "requires": {
+ "async": "^2.0.0",
+ "chalk": "^1.0.0",
+ "class-extend": "^0.1.0",
+ "cli-table": "^0.3.1",
+ "cross-spawn": "^4.0.0",
+ "dargs": "^4.0.0",
+ "dateformat": "^1.0.11",
+ "debug": "^2.1.0",
+ "detect-conflict": "^1.0.0",
+ "error": "^7.0.2",
+ "find-up": "^1.0.0",
+ "github-username": "^2.0.0",
+ "glob": "^7.0.3",
+ "gruntfile-editor": "^1.0.0",
+ "html-wiring": "^1.0.0",
+ "istextorbinary": "^2.1.0",
+ "lodash": "^4.11.1",
+ "mem-fs-editor": "^2.0.0",
+ "mkdirp": "^0.5.0",
+ "nopt": "^3.0.0",
+ "path-exists": "^2.0.0",
+ "path-is-absolute": "^1.0.0",
+ "pretty-bytes": "^3.0.1",
+ "read-chunk": "^1.0.0",
+ "read-pkg-up": "^1.0.1",
+ "rimraf": "^2.2.0",
+ "run-async": "^2.0.0",
+ "shelljs": "^0.7.0",
+ "text-table": "^0.2.0",
+ "through2": "^2.0.0",
+ "underscore.string": "^3.0.3",
+ "user-home": "^2.0.0",
+ "yeoman-assert": "^2.0.0",
+ "yeoman-environment": "^1.1.0",
+ "yeoman-test": "^1.0.0",
+ "yeoman-welcome": "^1.0.0"
+ }
+ }
+ }
+ },
+ "yeoman-welcome": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/yeoman-welcome/-/yeoman-welcome-1.0.1.tgz",
+ "integrity": "sha1-9s8Zj9T7qKdxZywmzfuKZHlchOw=",
+ "requires": {
+ "chalk": "^1.0.0"
+ }
+ },
+ "yo": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npmjs.org/yo/-/yo-1.8.5.tgz",
+ "integrity": "sha1-d2q57HmniC+NT3qeECFP2rBQ2Sg=",
+ "requires": {
+ "async": "^1.0.0",
+ "chalk": "^1.0.0",
+ "cli-list": "^0.1.1",
+ "configstore": "^1.0.0",
+ "cross-spawn": "^3.0.1",
+ "figures": "^1.3.5",
+ "fullname": "^2.0.0",
+ "got": "^5.0.0",
+ "humanize-string": "^1.0.0",
+ "inquirer": "^0.11.0",
+ "insight": "^0.7.0",
+ "lodash": "^3.2.0",
+ "meow": "^3.0.0",
+ "npm-keyword": "^4.1.0",
+ "opn": "^3.0.2",
+ "package-json": "^2.1.0",
+ "parse-help": "^0.1.1",
+ "read-pkg-up": "^1.0.1",
+ "repeating": "^2.0.0",
+ "root-check": "^1.0.0",
+ "sort-on": "^1.0.0",
+ "string-length": "^1.0.0",
+ "tabtab": "^1.3.0",
+ "titleize": "^1.0.0",
+ "update-notifier": "^0.6.0",
+ "user-home": "^2.0.0",
+ "yeoman-character": "^1.0.0",
+ "yeoman-doctor": "^2.0.0",
+ "yeoman-environment": "^1.6.1",
+ "yosay": "^1.0.0"
+ },
+ "dependencies": {
+ "async": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
+ "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo="
+ },
+ "cross-spawn": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz",
+ "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=",
+ "requires": {
+ "lru-cache": "^4.0.1",
+ "which": "^1.2.9"
+ }
+ },
+ "inquirer": {
+ "version": "0.11.4",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.11.4.tgz",
+ "integrity": "sha1-geM3ToNhvq/y2XAWIG01nQsy+k0=",
+ "requires": {
+ "ansi-escapes": "^1.1.0",
+ "ansi-regex": "^2.0.0",
+ "chalk": "^1.0.0",
+ "cli-cursor": "^1.0.1",
+ "cli-width": "^1.0.1",
+ "figures": "^1.3.5",
+ "lodash": "^3.3.1",
+ "readline2": "^1.0.1",
+ "run-async": "^0.1.0",
+ "rx-lite": "^3.1.2",
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.0",
+ "through": "^2.3.6"
+ }
+ },
+ "lru-cache": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.2.tgz",
+ "integrity": "sha1-HRdnnAac2l0ECZGgnbwsDbN35V4=",
+ "requires": {
+ "pseudomap": "^1.0.1",
+ "yallist": "^2.0.0"
+ }
+ },
+ "mute-stream": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz",
+ "integrity": "sha1-j7+rsKmKJT0xhDMfno3rc3L6xsA="
+ },
+ "readline2": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz",
+ "integrity": "sha1-QQWWCP/BVHV7cV2ZidGZ/783LjU=",
+ "requires": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "mute-stream": "0.0.5"
+ }
+ },
+ "user-home": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz",
+ "integrity": "sha1-nHC/2Babwdy/SGBODwS4tJzenp8=",
+ "requires": {
+ "os-homedir": "^1.0.0"
+ }
+ }
+ }
+ },
+ "yosay": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/yosay/-/yosay-1.2.1.tgz",
+ "integrity": "sha1-lGbvlpgw6FtHTiZ7UPdohpPtO1s=",
+ "requires": {
+ "ansi-regex": "^2.0.0",
+ "ansi-styles": "^2.0.0",
+ "chalk": "^1.0.0",
+ "cli-boxes": "^1.0.0",
+ "pad-component": "0.0.1",
+ "repeating": "^2.0.0",
+ "string-width": "^1.0.0",
+ "strip-ansi": "^3.0.0",
+ "taketalk": "^1.0.0",
+ "wrap-ansi": "^2.0.0"
+ }
+ }
+ }
+}
diff --git a/package.json b/package.json
index dbf3f3662..25b8d6fab 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
- "name": "generator-angular-fullstack",
- "version": "2.1.1",
- "description": "Yeoman generator for creating MEAN stack applications, using MongoDB, Express, AngularJS, and Node",
+ "name": "generator-fng",
+ "version": "0.2.24",
+ "description": "Generate forms-angular applications for the MEAN stack",
"keywords": [
"yeoman-generator",
"mean",
@@ -9,56 +9,63 @@
"angularjs",
"express",
"scaffold",
+ "mongoose",
+ "forms",
+ "forms-angular",
"fullstack",
"framework",
"component",
"front-end",
"app"
],
- "homepage": "https://github.com/DaftMonk/generator-angular-fullstack",
- "bugs": "https://github.com/DaftMonk/generator-angular-fullstack/issues",
+ "homepage": "https://github.com/forms-angular/generator-angular-fullstack",
+ "bugs": "https://github.com/forms-angular/generator-angular-fullstack/issues",
"author": "Tyler Henkel",
+ "contributors": [
+ {
+ "name": "Mark Chapman",
+ "email": "support@forms-angular.org"
+ },
+ {
+ "name": "Gulshan Kumar"
+ }
+ ],
"repository": {
"type": "git",
- "url": "git://github.com/DaftMonk/generator-angular-fullstack.git"
+ "url": "git://github.com/forms-angular/generator-angular-fullstack.git"
},
"scripts": {
"test": "grunt test"
},
"dependencies": {
- "yeoman-generator": "~0.17.0",
- "chalk": "~0.4.0",
- "wiredep": "~0.4.2",
- "generator-ng-component": "~0.0.4"
- },
- "peerDependencies": {
- "yo": ">=1.2.0"
+ "yeoman-generator": "0.22.5",
+ "chalk": "1.1.1",
+ "wiredep": "3.0.0",
+ "generator-ng-component": "0.1.1",
+ "underscore": "1.8.3",
+ "underscore.string": "3.2.3",
+ "yo": "1.8.5"
},
"devDependencies": {
- "chai": "^1.9.1",
- "fs-extra": "^0.9.1",
- "grunt": "~0.4.1",
- "grunt-build-control": "DaftMonk/grunt-build-control",
- "grunt-contrib-clean": "^0.6.0",
- "grunt-contrib-jshint": "^0.10.0",
- "grunt-conventional-changelog": "~1.0.0",
- "grunt-mocha-test": "^0.11.0",
- "grunt-release": "~0.6.0",
- "load-grunt-tasks": "~0.2.0",
- "marked": "~0.2.8",
- "mocha": "~1.21.0",
- "q": "^1.0.1",
- "semver": "~2.2.1",
- "shelljs": "^0.3.0",
- "underscore.string": "^2.3.3"
+ "chai": "3.5.0",
+ "fs-extra": "0.26.5",
+ "grunt": "0.4.5",
+ "grunt-build-control": "0.6.2",
+ "grunt-contrib-clean": "0.7.0",
+ "grunt-contrib-jshint": "0.11.3",
+ "grunt-conventional-changelog": "5.0.0",
+ "grunt-mocha-test": "0.12.7",
+ "grunt-release": "0.13.0",
+ "load-grunt-tasks": "3.4.0",
+ "marked": "0.3.5",
+ "mocha": "2.4.5",
+ "q": "1.4.1",
+ "semver": "5.1.0",
+ "shelljs": "0.5.3"
},
"engines": {
"node": ">=0.10.0",
"npm": ">=1.2.10"
},
- "licenses": [
- {
- "type": "BSD"
- }
- ]
+ "license": "BSD-2-Clause"
}
diff --git a/readme.md b/readme.md
index 21f73197a..2207213d1 100644
--- a/readme.md
+++ b/readme.md
@@ -1,19 +1,12 @@
-# AngularJS Full-Stack generator
-[](http://travis-ci.org/DaftMonk/generator-angular-fullstack) [](http://badge.fury.io/js/generator-angular-fullstack)  [](https://gitter.im/DaftMonk/generator-angular-fullstack)
+# forms-angular Generator
-> Yeoman generator for creating MEAN stack applications, using MongoDB, Express, AngularJS, and Node - lets you quickly set up a project following best practices.
-
-## Example project
-
-Generated with defaults: http://fullstack-demo.herokuapp.com/.
-
-Source code: https://github.com/DaftMonk/fullstack-demo
+Yeoman generator for creating forms-angular applications, using the MEAN stack of MongoDB, Express, AngularJS, and Node.
## Usage
-Install `generator-angular-fullstack`:
+Install `generator-fng`:
```
-npm install -g generator-angular-fullstack
+npm install -g generator-fng
```
Make a new directory, and `cd` into it:
@@ -21,29 +14,29 @@ Make a new directory, and `cd` into it:
mkdir my-new-project && cd $_
```
-Run `yo angular-fullstack`, optionally passing an app name:
+Run `yo fng`, optionally passing an app name:
```
-yo angular-fullstack [app-name]
+yo fng [app-name]
```
Run `grunt` for building, `grunt serve` for preview, and `grunt serve:dist` for a preview of the built app.
## Prerequisites
-* MongoDB - Download and Install [MongoDB](http://www.mongodb.org/downloads) - If you plan on scaffolding your project with mongoose, you'll need mongoDB to be installed and have the `mongod` process running.
+* See the Prepare section of http://www.forms-angular.org/#!/get-started#prepare
## Supported Configurations
**Client**
-* Scripts: `JavaScript`, `CoffeeScript`, `Babel`
-* Markup: `HTML`, `Jade`
-* Stylesheets: `CSS`, `Stylus`, `Sass`, `Less`,
+* Scripts: `JavaScript`
+* Markup: `HTML`
+* Stylesheets: `CSS`
* Angular Routers: `ngRoute`, `ui-router`
**Server**
-* Database: `None`, `MongoDB`
+* Database: `MongoDB`
* Authentication boilerplate: `Yes`, `No`
* oAuth integrations: `Facebook` `Twitter` `Google`
* Socket.io integration: `Yes`, `No`
@@ -52,41 +45,36 @@ Run `grunt` for building, `grunt serve` for preview, and `grunt serve:dist` for
A grunt task looks for new files in your `client/app` and `client/components` folder and automatically injects them in the appropriate places based on an injection block.
-* `less` files into `client/app.less`
-* `scss` files into `client/app.scss`
-* `stylus` files into `client/app.styl`
* `css` files into `client/index.html`
* `js` files into `client/index.html`
-* `coffeescript` temp `js` files into `client/index.html`
-* `babel` temp `js` files into `client/index.html`
## Generators
Available generators:
* App
- - [angular-fullstack](#app) (aka [angular-fullstack:app](#app))
+ - [fng](#app) (aka [fng:app](#app))
* Server Side
- - [angular-fullstack:endpoint](#endpoint)
+ - [fng:endpoint](#endpoint)
* Client Side
- - [angular-fullstack:route](#route)
- - [angular-fullstack:controller](#controller)
- - [angular-fullstack:filter](#filter)
- - [angular-fullstack:directive](#directive)
- - [angular-fullstack:service](#service)
- - [angular-fullstack:provider](#service)
- - [angular-fullstack:factory](#service)
- - [angular-fullstack:decorator](#decorator)
+ - [fng:route](#route)
+ - [fng:controller](#controller)
+ - [fng:filter](#filter)
+ - [fng:directive](#directive)
+ - [fng:service](#service)
+ - [fng:provider](#service)
+ - [fng:factory](#service)
+ - [fng:decorator](#decorator)
* Deployment
- - [angular-fullstack:openshift](#openshift)
- - [angular-fullstack:heroku](#heroku)
+ - [fng:openshift](#openshift)
+ - [fng:heroku](#heroku)
### App
-Sets up a new AngularJS + Express app, generating all the boilerplate you need to get started.
+Sets up a new forms-angular, AngularJS + Express app, generating all the boilerplate you need to get started.
Example:
```bash
-yo angular-fullstack
+yo fng
```
### Endpoint
@@ -95,7 +83,7 @@ Generates a new API endpoint.
Example:
```bash
-yo angular-fullstack:endpoint message
+yo fng:endpoint message
[?] What will the url of your endpoint be? /api/messages
```
@@ -112,7 +100,7 @@ Generates a new route.
Example:
```bash
-yo angular-fullstack:route myroute
+yo fng:route myroute
[?] Where would you like to create this route? client/app/
[?] What will the url of your route be? /myroute
```
@@ -131,7 +119,7 @@ Generates a controller.
Example:
```bash
-yo angular-fullstack:controller user
+yo fng:controller user
[?] Where would you like to create this controller? client/app/
```
@@ -145,7 +133,7 @@ Generates a directive.
Example:
```bash
-yo angular-fullstack:directive myDirective
+yo fng:directive myDirective
[?] Where would you like to create this directive? client/app/
[?] Does this directive need an external html file? Yes
```
@@ -161,7 +149,7 @@ Produces:
Example:
```bash
-yo angular-fullstack:directive simple
+yo fng:directive simple
[?] Where would you like to create this directive? client/app/
[?] Does this directive need an external html file? No
```
@@ -176,7 +164,7 @@ Generates a filter.
Example:
```bash
-yo angular-fullstack:filter myFilter
+yo fng:filter myFilter
[?] Where would you like to create this filter? client/app/
```
@@ -190,7 +178,7 @@ Generates an AngularJS service.
Example:
```bash
-yo angular-fullstack:service myService
+yo fng:service myService
[?] Where would you like to create this service? client/app/
```
@@ -207,7 +195,7 @@ Generates an AngularJS service decorator.
Example:
```bash
-yo angular-fullstack:decorator serviceName
+yo fng:decorator serviceName
[?] Where would you like to create this decorator? client/app/
```
@@ -219,7 +207,7 @@ Produces
Deploying to OpenShift can be done in just a few steps:
- yo angular-fullstack:openshift
+ yo fng:openshift
A live application URL will be available in the output.
@@ -232,11 +220,11 @@ A live application URL will be available in the output.
>
> You will also need to set `DOMAIN` environment variable:
>
-> rhc set-env DOMAIN=.rhcloud.com
+> rhc config:set DOMAIN=.rhcloud.com
>
> # or (if you're using it):
>
-> rhc set-env DOMAIN=
+> rhc config:set DOMAIN=
>
> After you've set the required environment variables, restart the server:
>
@@ -256,7 +244,7 @@ Commit and push the resulting build, located in your dist folder:
Deploying to heroku only takes a few steps.
- yo angular-fullstack:heroku
+ yo fng:heroku
To work with your new heroku app using the command line, you will need to run any `heroku` commands from the `dist` folder.
@@ -384,7 +372,7 @@ An example server component in `server/api`
## Contribute
-See the [contributing docs](https://github.com/DaftMonk/generator-angular-fullstack/blob/master/contributing.md)
+See the [contributing docs](https://github.com/DaftMonk/generator-fng/blob/master/contributing.md)
This project has 2 main branches: `master` and `canary`. The `master` branch is where the current stable code lives and should be used for production setups. The `canary` branch is the main development branch, this is where PRs should be submitted to (backport fixes may be applied to `master`).
diff --git a/test/fixtures/bower.json b/test/fixtures/bower.json
index 10dff6513..76608bf10 100644
--- a/test/fixtures/bower.json
+++ b/test/fixtures/bower.json
@@ -15,7 +15,7 @@
"font-awesome": ">=4.1.0",
"lodash": "~2.4.1",
"angular-socket-io": "~0.6.0",
- "angular-ui-router": "~0.2.10"
+ "angular-ui-router": "~0.2.15"
},
"devDependencies": {
"angular-mocks": ">=1.2.*",
diff --git a/test/test-file-creation.js b/test/test-file-creation.js
index 594dab05a..da48e9660 100644
--- a/test/test-file-creation.js
+++ b/test/test-file-creation.js
@@ -7,7 +7,7 @@ var expect = chai.expect;
var fs = require('fs-extra');
var exec = require('child_process').exec;
-describe('angular-fullstack generator', function () {
+describe('fng generator', function () {
var gen, defaultOptions = {
script: 'js',
markup: 'html',
@@ -25,7 +25,7 @@ describe('angular-fullstack generator', function () {
gen.run({}, function () {
var afGenerator;
var deps = [path.join('../..', generatorType)];
- afGenerator = helpers.createGenerator('angular-fullstack:' + generatorType, deps, [name]);
+ afGenerator = helpers.createGenerator('fng:' + generatorType, deps, [name]);
helpers.mockPrompt(afGenerator, mockPrompt);
afGenerator.run([], function () {
@@ -49,7 +49,7 @@ describe('angular-fullstack generator', function () {
return done(err);
}
- gen = helpers.createGenerator('angular-fullstack:app', deps);
+ gen = helpers.createGenerator('fng:app', deps);
gen.options['skip-install'] = true;
done();
}.bind(this));
@@ -112,7 +112,7 @@ describe('angular-fullstack generator', function () {
it('should use existing config if available', function(done) {
this.timeout(60000);
fs.copySync(__dirname + '/fixtures/.yo-rc.json', __dirname + '/temp/.yo-rc.json');
- var gen = helpers.createGenerator('angular-fullstack:app', [
+ var gen = helpers.createGenerator('fng:app', [
'../../app',
[
helpers.createDummyGenerator(),
diff --git a/util.js b/util.js
index 7544f8c8e..c6948adfd 100644
--- a/util.js
+++ b/util.js
@@ -1,6 +1,8 @@
'use strict';
var path = require('path');
var fs = require('fs');
+var __ = require('underscore');
+var _ = require('underscore.string');
module.exports = {
rewrite: rewrite,
@@ -71,7 +73,7 @@ function appName (self) {
if (counter === 0 || (typeof suffix === 'boolean' && suffix)) {
suffix = 'App';
}
- return suffix ? self._.classify(suffix) : '';
+ return suffix ? _.classify(suffix) : '';
}
function filterFile (template) {
@@ -94,7 +96,7 @@ function templateIsUsable (self, filteredFile) {
for(var key in filters) {
if(filters[key]) enabledFilters.push(key);
}
- var matchedFilters = self._.intersection(filteredFile.filters, enabledFilters);
+ var matchedFilters = __.intersection(filteredFile.filters, enabledFilters);
// check that all filters on file are matched
if(filteredFile.filters.length && matchedFilters.length !== filteredFile.filters.length) {
return false;
@@ -113,6 +115,7 @@ function processDirectory (self, source, destination) {
filteredFile.name = filteredFile.name.replace('name', self.name);
}
var name = filteredFile.name;
+ console.log(name);
var copy = false, stripped;
src = path.join(root, f);
@@ -137,4 +140,4 @@ function processDirectory (self, source, destination) {
}
}
});
-}
\ No newline at end of file
+}