From 675e9768b7782d44c6932b085ff50ad4f5509063 Mon Sep 17 00:00:00 2001 From: stherrienaspnet Date: Tue, 7 Mar 2017 14:45:05 -0500 Subject: [PATCH 01/23] Fixed angular-validation-match integration --- templates/app/client/app/app.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/templates/app/client/app/app.js b/templates/app/client/app/app.js index 2937399dd..c4ed63bb8 100644 --- a/templates/app/client/app/app.js +++ b/templates/app/client/app/app.js @@ -4,6 +4,8 @@ import angular from 'angular'; import ngCookies from 'angular-cookies'; import ngResource from 'angular-resource'; import ngSanitize from 'angular-sanitize'; +import ngValidationMatch from 'angular-validation-match'; + <%_ if(filters.socketio) { _%> import 'angular-socket-io';<% } %> <%_ if(filters.ngroute) { _%> @@ -14,7 +16,6 @@ import uiRouter from 'angular-ui-router';<% } %> import uiBootstrap from 'angular-ui-bootstrap';<% } %> // import ngMessages from 'angular-messages'; <%_ if(filters.auth) { _%> -// import ngValidationMatch from 'angular-validation-match';<% } %> import {routeConfig} from './app.config'; @@ -38,6 +39,7 @@ angular.module('<%= scriptAppName %>', [ ngCookies, ngResource, ngSanitize, + 'validation.match', <%_ if(filters.socketio) { %> 'btford.socket-io',<% } %> <%_ if(filters.ngroute) { %> From 52d0fcdbcdb7780f1d05f2a53ab7c4fbd6a16cbb Mon Sep 17 00:00:00 2001 From: stherrienaspnet Date: Tue, 7 Mar 2017 16:16:59 -0500 Subject: [PATCH 02/23] Fixed last commit --- templates/app/client/app/app.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/app/client/app/app.js b/templates/app/client/app/app.js index c4ed63bb8..0d1c8eb4b 100644 --- a/templates/app/client/app/app.js +++ b/templates/app/client/app/app.js @@ -5,7 +5,6 @@ import ngCookies from 'angular-cookies'; import ngResource from 'angular-resource'; import ngSanitize from 'angular-sanitize'; import ngValidationMatch from 'angular-validation-match'; - <%_ if(filters.socketio) { _%> import 'angular-socket-io';<% } %> <%_ if(filters.ngroute) { _%> @@ -16,6 +15,7 @@ import uiRouter from 'angular-ui-router';<% } %> import uiBootstrap from 'angular-ui-bootstrap';<% } %> // import ngMessages from 'angular-messages'; <%_ if(filters.auth) { _%> +// <% } %> import {routeConfig} from './app.config'; From 0ee708f452b706decef949e98a69d93b106f384f Mon Sep 17 00:00:00 2001 From: stherrienaspnet Date: Wed, 8 Mar 2017 19:41:25 -0500 Subject: [PATCH 03/23] Removed comment --- templates/app/client/app/app.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/app/client/app/app.js b/templates/app/client/app/app.js index 0d1c8eb4b..e86e3e4ff 100644 --- a/templates/app/client/app/app.js +++ b/templates/app/client/app/app.js @@ -15,7 +15,7 @@ import uiRouter from 'angular-ui-router';<% } %> import uiBootstrap from 'angular-ui-bootstrap';<% } %> // import ngMessages from 'angular-messages'; <%_ if(filters.auth) { _%> -// <% } %> +<% } %> import {routeConfig} from './app.config'; From e6b24b33b5ef5c22249da893afe6eaf5e4b085a0 Mon Sep 17 00:00:00 2001 From: stherrienaspnet Date: Wed, 8 Mar 2017 20:14:11 -0500 Subject: [PATCH 04/23] Display Generator Version --- src/generators/app/index.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/generators/app/index.js b/src/generators/app/index.js index d66e6f9c6..c1ce3c28a 100644 --- a/src/generators/app/index.js +++ b/src/generators/app/index.js @@ -96,6 +96,7 @@ export class Generator extends Base { }, info: function () { this.log(this.yoWelcome); + this.log('Angular Fullstack v' + this.rootGeneratorVersion() +'\n'); this.log('Out of the box I create an AngularJS app with an Express server.\n'); }, checkForConfig: function() { From 9db9918573a52e0afe87461d0cfbd932fe24ccb9 Mon Sep 17 00:00:00 2001 From: stherrienaspnet Date: Sun, 12 Mar 2017 17:48:01 -0400 Subject: [PATCH 05/23] fix(angular-validation-match): Integration with Babel & Typescript (#2517) * Fix form field not displaying sequalize error * fix: Fix form field not displaying sequalize error fix: Fix form field not displaying sequalize error Display form field error when using sequelize as database * Fixed match integration for Babel & Typescript --- src/generators/app/index.js | 3 ++- templates/app/client/app/app.js | 8 +++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/generators/app/index.js b/src/generators/app/index.js index c1ce3c28a..fe914e588 100644 --- a/src/generators/app/index.js +++ b/src/generators/app/index.js @@ -547,7 +547,8 @@ export class Generator extends Base { ['ngRoute', 'angular-route'], ['uiBootstrap', 'angular-ui-bootstrap'], ['ngMessages', 'angular-messages'], - ['io', 'socket.io-client'] + ['io', 'socket.io-client'], + ['ngValidationMatch', 'angular-validation-match'] ]; function replacer(contents) { modulesToFix.forEach(([moduleName, importName]) => { diff --git a/templates/app/client/app/app.js b/templates/app/client/app/app.js index e86e3e4ff..40f47388a 100644 --- a/templates/app/client/app/app.js +++ b/templates/app/client/app/app.js @@ -4,7 +4,7 @@ import angular from 'angular'; import ngCookies from 'angular-cookies'; import ngResource from 'angular-resource'; import ngSanitize from 'angular-sanitize'; -import ngValidationMatch from 'angular-validation-match'; + <%_ if(filters.socketio) { _%> import 'angular-socket-io';<% } %> <%_ if(filters.ngroute) { _%> @@ -15,6 +15,7 @@ import uiRouter from 'angular-ui-router';<% } %> import uiBootstrap from 'angular-ui-bootstrap';<% } %> // import ngMessages from 'angular-messages'; <%_ if(filters.auth) { _%> +import ngValidationMatch from 'angular-validation-match'; <% } %> @@ -39,7 +40,6 @@ angular.module('<%= scriptAppName %>', [ ngCookies, ngResource, ngSanitize, - 'validation.match', <%_ if(filters.socketio) { %> 'btford.socket-io',<% } %> <%_ if(filters.ngroute) { %> @@ -51,7 +51,9 @@ angular.module('<%= scriptAppName %>', [ <%_ if(filters.auth) { %> _Auth, account, - admin,<% } _%> + admin, + 'validation.match', + <% } _%> navbar, footer, main, From 7f49a9443c755c3712a9ae779e6b1e8fc31cabae Mon Sep 17 00:00:00 2001 From: Andrew Koroluk Date: Sun, 19 Mar 2017 17:21:27 -0400 Subject: [PATCH 06/23] chore(package): remove gulp-node-inspector use --inspect instead --- templates/app/_package.json | 1 - templates/app/gulpfile.babel.js | 11 ++--------- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/templates/app/_package.json b/templates/app/_package.json index 7cb086235..cfc15ab7b 100644 --- a/templates/app/_package.json +++ b/templates/app/_package.json @@ -92,7 +92,6 @@ "gulp-istanbul-enforcer": "^1.0.3", "gulp-load-plugins": "^1.0.0-rc.1", "gulp-mocha": "^2.1.3", - "gulp-node-inspector": "^0.1.0", "gulp-plumber": "^1.0.1", "gulp-protractor": "^3.0.0", "gulp-rev": "^7.0.0", diff --git a/templates/app/gulpfile.babel.js b/templates/app/gulpfile.babel.js index 4e6db6421..357ef8d35 100644 --- a/templates/app/gulpfile.babel.js +++ b/templates/app/gulpfile.babel.js @@ -331,17 +331,11 @@ gulp.task('start:server:prod', () => { .on('log', onServerLog); }); -gulp.task('start:inspector', () => { - gulp.src([]) - .pipe(plugins.nodeInspector({ - debugPort: <%= debugPort %> - })); -}); - gulp.task('start:server:debug', () => { process.env.NODE_ENV = process.env.NODE_ENV || 'development'; config = require(`./${serverPath}/config/environment`); - nodemon(`-w ${serverPath} --debug=<%= debugPort %> --debug-brk ${serverPath}`) + // nodemon(`-w ${serverPath} --debug=<%= debugPort %> --debug-brk ${serverPath}`) + nodemon(`-w ${serverPath} --inspect --debug-brk ${serverPath}`) .on('log', onServerLog); }); @@ -385,7 +379,6 @@ gulp.task('serve:debug', cb => { 'typings'<% } %> ], 'webpack:dev', - 'start:inspector', ['start:server:debug', 'start:client'], 'watch', cb From 8e0aec1491ccd70a8f93050b21cd0f15441ceb03 Mon Sep 17 00:00:00 2001 From: Andrew Koroluk Date: Wed, 22 Mar 2017 10:45:37 -0400 Subject: [PATCH 07/23] docs(readme): fix gen docs links fixes #2525 --- readme.md | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/readme.md b/readme.md index 2a26f85da..e3ba99241 100644 --- a/readme.md +++ b/readme.md @@ -79,27 +79,27 @@ yo angular-fullstack Available generators: * App - - [angular-fullstack](/docs/generators/app.md) (aka [angular-fullstack:app](/docs/generators/app.md)) + - [angular-fullstack](https://angular-fullstack.github.io/generators/app/) (aka [angular-fullstack:app](https://angular-fullstack.github.io/generators/app/)) * Server Side - - [angular-fullstack:endpoint](/docs/generators/endpoint.md) + - [angular-fullstack:endpoint](https://angular-fullstack.github.io/generators/endpoint) * Client Side (via [generator-ng-component](https://github.com/DaftMonk/generator-ng-component)) - - [angular-fullstack:route](/docs/generators/route.md) - - [angular-fullstack:component](/docs/generators/component.md) - - [angular-fullstack:controller](/docs/generators/controller.md) - - [angular-fullstack:filter](/docs/generators/filter.md) - - [angular-fullstack:directive](/docs/generators/directive.md) - - [angular-fullstack:service](/docs/generators/service.md) - - [angular-fullstack:provider](/docs/generators/service.md) - - [angular-fullstack:factory](/docs/generators/service.md) - - [angular-fullstack:decorator](/docs/generators/decorator.md) + - [angular-fullstack:route](https://angular-fullstack.github.io/generators/route) + - [angular-fullstack:component](https://angular-fullstack.github.io/generators/component) + - [angular-fullstack:controller](https://angular-fullstack.github.io/generators/controller) + - [angular-fullstack:filter](https://angular-fullstack.github.io/generators/filter) + - [angular-fullstack:directive](https://angular-fullstack.github.io/generators/directive) + - [angular-fullstack:service](https://angular-fullstack.github.io/generators/service) + - [angular-fullstack:provider](https://angular-fullstack.github.io/generators/service) + - [angular-fullstack:factory](https://angular-fullstack.github.io/generators/service) + - [angular-fullstack:decorator](https://angular-fullstack.github.io/generators/decorator) * Deployment - - [angular-fullstack:openshift](/docs/generators/openshift.md) - - [angular-fullstack:heroku](/docs/generators/heroku.md) + - [angular-fullstack:openshift](https://angular-fullstack.github.io/generators/openshift) + - [angular-fullstack:heroku](https://angular-fullstack.github.io/generators/heroku) ## Documentation -Check out our [documentation home page](http://angular-fullstack.github.io/generator-angular-fullstack). +Check out our [documentation home page](http://angular-fullstack.github.io/). ## Contribute From 13a022b4fb42a68cd6aae9218e8fe2667cd69c84 Mon Sep 17 00:00:00 2001 From: Andrew Koroluk Date: Wed, 22 Mar 2017 10:47:35 -0400 Subject: [PATCH 08/23] docs(readme): large svgs link to docs site --- readme.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/readme.md b/readme.md index e3ba99241..6d24535ab 100644 --- a/readme.md +++ b/readme.md @@ -1,5 +1,5 @@ # AngularJS Full-Stack generator -![generator-angular-fullstack](https://angular-fullstack.github.io/assets/angular-fullstack-logo.svg) +[![generator-angular-fullstack](https://angular-fullstack.github.io/assets/angular-fullstack-logo.svg)](https://angular-fullstack.github.io/) ![Build Status](https://img.shields.io/circleci/project/angular-fullstack/generator-angular-fullstack/master.svg) [![npm version](https://img.shields.io/npm/v/generator-angular-fullstack.svg)](https://www.npmjs.com/package/generator-angular-fullstack) @@ -166,4 +166,4 @@ Is your company using Angular-FullStack? Ask your boss to support the project. Y -![generator-angular-fullstack](https://angular-fullstack.github.io/assets/angular-fullstack-boxes.svg) +[![generator-angular-fullstack](https://angular-fullstack.github.io/assets/angular-fullstack-boxes.svg)](https://angular-fullstack.github.io/) From b7d6bb76583c10093b9d05a2399109ab4ea0614d Mon Sep 17 00:00:00 2001 From: Andrew Koroluk Date: Wed, 22 Mar 2017 10:49:53 -0400 Subject: [PATCH 09/23] chore(package): bump morgan --- templates/app/_package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/app/_package.json b/templates/app/_package.json index cfc15ab7b..6d6ff0091 100644 --- a/templates/app/_package.json +++ b/templates/app/_package.json @@ -22,7 +22,7 @@ <%# END CLIENT %> "core-js": "^2.2.1", "express": "^4.13.3", - "morgan": "~1.7.0", + "morgan": "^1.8.0", "body-parser": "^1.13.3", "method-override": "^2.3.5", "cookie-parser": "^1.3.5", From 94ef86e1f7d6d4a71cfa5303e94a3c2091af972e Mon Sep 17 00:00:00 2001 From: Ben Marten Date: Thu, 6 Apr 2017 23:20:49 -0700 Subject: [PATCH 10/23] style(eslintrc): allow use of process.env Allow because process.env is used throughout the project and set by gulp. --- templates/app/.eslintrc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/app/.eslintrc b/templates/app/.eslintrc index 93dbcc287..59264f491 100644 --- a/templates/app/.eslintrc +++ b/templates/app/.eslintrc @@ -82,7 +82,7 @@ "no-octal-escape": 0, //disallow use of octal escape sequences in string literals, such as var foo = "Copyright \251"; "no-octal": 0, //disallow use of octal literals "no-param-reassign": 0, //disallow reassignment of function parameters - "no-process-env": 1, //disallow use of process.env + "no-process-env": 0, //allow use of process.env "no-proto": 2, //disallow usage of __proto__ property "no-redeclare": 2, //disallow declaring the same variable more than once "no-return-assign": 2, //disallow use of assignment in return statement From e4c2c81cdb453a988696fedd9aa8954352875c0e Mon Sep 17 00:00:00 2001 From: Ben Marten Date: Thu, 6 Apr 2017 23:26:04 -0700 Subject: [PATCH 11/23] refactor(controller.js): fix eslint warnings in basename.controller.js --- templates/endpoint/basename.controller.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/templates/endpoint/basename.controller.js b/templates/endpoint/basename.controller.js index a9b5fa74c..098f7d532 100644 --- a/templates/endpoint/basename.controller.js +++ b/templates/endpoint/basename.controller.js @@ -27,6 +27,7 @@ function respondWithResult(res, statusCode) { function patchUpdates(patches) { return function(entity) { try { + // eslint-disable-next-line prefer-reflect jsonpatch.apply(entity, patches, /*validate*/ true); } catch(err) { return Promise.reject(err); @@ -98,7 +99,7 @@ export function create(req, res) { // Upserts the given <%= classedName %> in the DB at the specified ID export function upsert(req, res) { if(req.body._id) { - delete req.body._id; + Reflect.deleteProperty(req.body, '_id'); } <%_ if(filters.mongooseModels) { -%> return <%= classedName %>.findOneAndUpdate({_id: req.params.id}, req.body, {new: true, upsert: true, setDefaultsOnInsert: true, runValidators: true}).exec()<% } %> @@ -115,7 +116,7 @@ export function upsert(req, res) { // Updates an existing <%= classedName %> in the DB export function patch(req, res) { if(req.body._id) { - delete req.body._id; + Reflect.deleteProperty(req.body, '_id'); } <% if(filters.mongooseModels) { %>return <%= classedName %>.findById(req.params.id).exec()<% } if(filters.sequelizeModels) { %>return <%= classedName %>.find({ From f5bd23b27a7d9ef82827cec31ec30370af42397e Mon Sep 17 00:00:00 2001 From: Ben Marten Date: Thu, 6 Apr 2017 23:34:58 -0700 Subject: [PATCH 12/23] refactor(model): Fix eslint warnings in user.model.js --- .../api/user(auth)/user.model(mongooseModels).js | 15 +++++++++------ .../api/user(auth)/user.model(sequelizeModels).js | 7 +++++-- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/templates/app/server/api/user(auth)/user.model(mongooseModels).js b/templates/app/server/api/user(auth)/user.model(mongooseModels).js index b19e3ff36..97517e607 100644 --- a/templates/app/server/api/user(auth)/user.model(mongooseModels).js +++ b/templates/app/server/api/user(auth)/user.model(mongooseModels).js @@ -197,14 +197,16 @@ UserSchema.methods = { * @return {String} * @api public */ - makeSalt(byteSize, callback) { - var defaultByteSize = 16; + makeSalt(...args) { + let byteSize; + let callback; + let defaultByteSize = 16; - if(typeof arguments[0] === 'function') { - callback = arguments[0]; + if(typeof args[0] === 'function') { + callback = args[0]; byteSize = defaultByteSize; - } else if(typeof arguments[1] === 'function') { - callback = arguments[1]; + } else if(typeof args[1] === 'function') { + callback = args[1]; } else { throw new Error('Missing Callback'); } @@ -244,6 +246,7 @@ UserSchema.methods = { var salt = new Buffer(this.salt, 'base64'); if(!callback) { + // eslint-disable-next-line no-sync return crypto.pbkdf2Sync(password, salt, defaultIterations, defaultKeyLength) .toString('base64'); } diff --git a/templates/app/server/api/user(auth)/user.model(sequelizeModels).js b/templates/app/server/api/user(auth)/user.model(sequelizeModels).js index 58e8f5ae2..991bc9403 100644 --- a/templates/app/server/api/user(auth)/user.model(sequelizeModels).js +++ b/templates/app/server/api/user(auth)/user.model(sequelizeModels).js @@ -135,8 +135,10 @@ export default function(sequelize, DataTypes) { * @return {String} * @api public */ - makeSalt(byteSize, callback) { - var defaultByteSize = 16; + makeSalt(...args) { + let byteSize; + let callback; + let defaultByteSize = 16; if(typeof arguments[0] === 'function') { callback = arguments[0]; @@ -177,6 +179,7 @@ export default function(sequelize, DataTypes) { var salt = new Buffer(this.salt, 'base64'); if(!callback) { + // eslint-disable-next-line no-sync return crypto.pbkdf2Sync(password, salt, defaultIterations, defaultKeyLength) .toString('base64'); } From ef11d5ba52b0a3d0a727f5419770a7b8f1f4181c Mon Sep 17 00:00:00 2001 From: Ben Marten Date: Thu, 6 Apr 2017 23:39:52 -0700 Subject: [PATCH 13/23] style(service): fix eslint warnings in auth.service.js --- templates/app/client/components/auth(auth)/auth.service.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/templates/app/client/components/auth(auth)/auth.service.js b/templates/app/client/components/auth(auth)/auth.service.js index e38a12632..018c1b096 100644 --- a/templates/app/client/components/auth(auth)/auth.service.js +++ b/templates/app/client/components/auth(auth)/auth.service.js @@ -1,3 +1,4 @@ +/*global _*/ 'use strict'; // @flow class _User { @@ -185,9 +186,8 @@ export function AuthService($location, $http, $cookies, $q, appConfig, Util, Use * @param {Function|*} callback - optional, function(is) * @return {Bool|Promise} */ - isAdmin() { - return Auth.hasRole - .apply(Auth, [].concat.apply(['admin'], arguments)); + isAdmin(...args) { + return Auth.hasRole(...Reflect.apply([].concat, ['admin'], args)); }, /** @@ -196,6 +196,7 @@ export function AuthService($location, $http, $cookies, $q, appConfig, Util, Use * @return {Bool} */ isAdminSync() { + // eslint-disable-next-line no-sync return Auth.hasRoleSync('admin'); }, From 019fde1989c81a08e00480732776487584408242 Mon Sep 17 00:00:00 2001 From: Ben Marten Date: Thu, 6 Apr 2017 23:49:14 -0700 Subject: [PATCH 14/23] refactor(service): fix eslint warnings in modal.service.js --- .../client/components/modal(uibootstrap)/modal.service.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/templates/app/client/components/modal(uibootstrap)/modal.service.js b/templates/app/client/components/modal(uibootstrap)/modal.service.js index 31de851db..5dff0da27 100644 --- a/templates/app/client/components/modal(uibootstrap)/modal.service.js +++ b/templates/app/client/components/modal(uibootstrap)/modal.service.js @@ -37,9 +37,9 @@ export function Modal($rootScope, $uibModal) { * @param {String} name - name or info to show on modal * @param {All} - any additional args are passed straight to del callback */ - return function() { - var args = Array.prototype.slice.call(arguments); - var name = args.shift(); + return function(...args) { + var slicedArgs = Reflect.apply(Array.prototype.slice, args); + var name = slicedArgs.shift(); var deleteModal; deleteModal = openModal({ @@ -64,7 +64,7 @@ export function Modal($rootScope, $uibModal) { }, 'modal-danger'); deleteModal.result.then(function(event) { - del.apply(event, args); + Reflect.apply(del, event, slicedArgs); }); }; } From fb067f4039590c9395dc472277be7802844f13a9 Mon Sep 17 00:00:00 2001 From: Ben Marten Date: Thu, 6 Apr 2017 23:52:26 -0700 Subject: [PATCH 15/23] refactor(seed): fix promise warning --- templates/app/server/config/seed(models).js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/app/server/config/seed(models).js b/templates/app/server/config/seed(models).js index cd4f07d33..9f199d5b9 100644 --- a/templates/app/server/config/seed(models).js +++ b/templates/app/server/config/seed(models).js @@ -17,7 +17,7 @@ export default function seedDatabaseIfNeeded() { <% if (filters.mongooseModels) { %>Thing.find({}).remove()<% } if (filters.sequelizeModels) { %>return Thing.destroy({ where: {} })<% } %> .then(() => { - <% if (filters.mongooseModels) { %>Thing.create({<% } + <% if (filters.mongooseModels) { %>return Thing.create({<% } if (filters.sequelizeModels) { %>return Thing.bulkCreate([{<% } %> name: 'Development Tools', info: 'Integration with popular tools such as Webpack, Gulp, Babel, TypeScript, Karma, ' From 36748f78e20aaee997263fe09f69ad2b385a7faa Mon Sep 17 00:00:00 2001 From: Ben Marten Date: Fri, 7 Apr 2017 00:06:44 -0700 Subject: [PATCH 16/23] refactor(user.model): fix eslint warning, and resolved mongoose deprecation warning --- .../api/user(auth)/user.model(mongooseModels).js | 10 +++++----- templates/app/server/config/seed(models).js | 5 +++-- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/templates/app/server/api/user(auth)/user.model(mongooseModels).js b/templates/app/server/api/user(auth)/user.model(mongooseModels).js index 97517e607..6f859d2e9 100644 --- a/templates/app/server/api/user(auth)/user.model(mongooseModels).js +++ b/templates/app/server/api/user(auth)/user.model(mongooseModels).js @@ -99,10 +99,10 @@ UserSchema // Validate email is not taken UserSchema .path('email') - .validate(function(value, respond) { + .validate(function(value) { <%_ if(filters.oauth) { -%> if(authTypes.indexOf(this.provider) !== -1) { - return respond(true); + return true; } <%_ } -%> @@ -110,11 +110,11 @@ UserSchema .then(user => { if(user) { if(this.id === user.id) { - return respond(true); + return true; } - return respond(false); + return false; } - return respond(true); + return true; }) .catch(function(err) { throw err; diff --git a/templates/app/server/config/seed(models).js b/templates/app/server/config/seed(models).js index 9f199d5b9..053b26c66 100644 --- a/templates/app/server/config/seed(models).js +++ b/templates/app/server/config/seed(models).js @@ -17,8 +17,8 @@ export default function seedDatabaseIfNeeded() { <% if (filters.mongooseModels) { %>Thing.find({}).remove()<% } if (filters.sequelizeModels) { %>return Thing.destroy({ where: {} })<% } %> .then(() => { - <% if (filters.mongooseModels) { %>return Thing.create({<% } - if (filters.sequelizeModels) { %>return Thing.bulkCreate([{<% } %> + <% if (filters.mongooseModels) { %>let thing = Thing.create({<% } + if (filters.sequelizeModels) { %>let thing = Thing.bulkCreate([{<% } %> name: 'Development Tools', info: 'Integration with popular tools such as Webpack, Gulp, Babel, TypeScript, Karma, ' + 'Mocha, ESLint, Node Inspector, Livereload, Protractor, Pug, ' @@ -47,6 +47,7 @@ export default function seedDatabaseIfNeeded() { + 'and openshift subgenerators' <% if (filters.mongooseModels) { %>});<% } if (filters.sequelizeModels) { %>}]);<% } %> + return thing; }) .then(() => console.log('finished populating things')) .catch(err => console.log('error populating things', err)); From 3a62d708705420f55ed0edc97676ad9446dd366b Mon Sep 17 00:00:00 2001 From: Ben Marten Date: Fri, 7 Apr 2017 13:10:41 -0700 Subject: [PATCH 17/23] style(client/app): disable eslint warning about unused import --- templates/app/client/app/app.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/app/client/app/app.js b/templates/app/client/app/app.js index 40f47388a..51cb7b7c3 100644 --- a/templates/app/client/app/app.js +++ b/templates/app/client/app/app.js @@ -13,8 +13,8 @@ const ngRoute = require('angular-route');<% } %> import uiRouter from 'angular-ui-router';<% } %> <%_ if(filters.uibootstrap) { _%> import uiBootstrap from 'angular-ui-bootstrap';<% } %> -// import ngMessages from 'angular-messages'; <%_ if(filters.auth) { _%> +// eslint-disable-next-line no-unused-vars import ngValidationMatch from 'angular-validation-match'; <% } %> From 3f9f75e00ec182823d3ebeaa86163bea58b8ad4c Mon Sep 17 00:00:00 2001 From: Ben Marten Date: Fri, 7 Apr 2017 13:24:41 -0700 Subject: [PATCH 18/23] fix(user.password) adds explicit SHA1 for user password encryption to resolve warning --- .../user(auth)/user.model(mongooseModels).js | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/templates/app/server/api/user(auth)/user.model(mongooseModels).js b/templates/app/server/api/user(auth)/user.model(mongooseModels).js index 6f859d2e9..c62104f0b 100644 --- a/templates/app/server/api/user(auth)/user.model(mongooseModels).js +++ b/templates/app/server/api/user(auth)/user.model(mongooseModels).js @@ -247,17 +247,19 @@ UserSchema.methods = { if(!callback) { // eslint-disable-next-line no-sync - return crypto.pbkdf2Sync(password, salt, defaultIterations, defaultKeyLength) + return crypto.pbkdf2Sync(password, salt, defaultIterations, + defaultKeyLength, 'sha1') .toString('base64'); } - return crypto.pbkdf2(password, salt, defaultIterations, defaultKeyLength, (err, key) => { - if(err) { - return callback(err); - } else { - return callback(null, key.toString('base64')); - } - }); + return crypto.pbkdf2(password, salt, defaultIterations, defaultKeyLength, + 'sha1', (err, key) => { + if(err) { + return callback(err); + } else { + return callback(null, key.toString('base64')); + } + }); } }; From e79d5dc90d2edda94285464c552c47a7e4a99544 Mon Sep 17 00:00:00 2001 From: Ben Marten Date: Sun, 9 Apr 2017 20:08:40 -0700 Subject: [PATCH 19/23] ammend to 94ef86e --- templates/app/.eslintrc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/app/.eslintrc b/templates/app/.eslintrc index 59264f491..28a8da424 100644 --- a/templates/app/.eslintrc +++ b/templates/app/.eslintrc @@ -82,7 +82,7 @@ "no-octal-escape": 0, //disallow use of octal escape sequences in string literals, such as var foo = "Copyright \251"; "no-octal": 0, //disallow use of octal literals "no-param-reassign": 0, //disallow reassignment of function parameters - "no-process-env": 0, //allow use of process.env + "no-process-env": 0, //disallow use of process.env "no-proto": 2, //disallow usage of __proto__ property "no-redeclare": 2, //disallow declaring the same variable more than once "no-return-assign": 2, //disallow use of assignment in return statement From 08fd9b9290c1367a39a990590170721f0edbae36 Mon Sep 17 00:00:00 2001 From: Ben Marten Date: Sun, 9 Apr 2017 20:10:09 -0700 Subject: [PATCH 20/23] ammend to 3a62d70 --- templates/app/client/app/app.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/templates/app/client/app/app.js b/templates/app/client/app/app.js index 51cb7b7c3..cda6907e9 100644 --- a/templates/app/client/app/app.js +++ b/templates/app/client/app/app.js @@ -14,8 +14,7 @@ import uiRouter from 'angular-ui-router';<% } %> <%_ if(filters.uibootstrap) { _%> import uiBootstrap from 'angular-ui-bootstrap';<% } %> <%_ if(filters.auth) { _%> -// eslint-disable-next-line no-unused-vars -import ngValidationMatch from 'angular-validation-match'; +import 'angular-validation-match'; <% } %> From b02f9c23842668c568f5e9bc7555c0caff921619 Mon Sep 17 00:00:00 2001 From: Ben Marten Date: Sun, 9 Apr 2017 20:12:18 -0700 Subject: [PATCH 21/23] ammend to ef11d5b --- templates/app/client/components/auth(auth)/auth.service.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/templates/app/client/components/auth(auth)/auth.service.js b/templates/app/client/components/auth(auth)/auth.service.js index 018c1b096..b4fc54758 100644 --- a/templates/app/client/components/auth(auth)/auth.service.js +++ b/templates/app/client/components/auth(auth)/auth.service.js @@ -1,5 +1,7 @@ -/*global _*/ 'use strict'; + +import _ from 'lodash'; + // @flow class _User { _id: string = ''; From 162612495ad4ddb6b25b0e015992d4590cf00d57 Mon Sep 17 00:00:00 2001 From: Ben Marten Date: Fri, 7 Apr 2017 14:11:20 -0700 Subject: [PATCH 22/23] build(compile): adds support for yarn install checks if yarn is available and runs yarn install on setup. falls back to npm if yarn is not installed. --- gulpfile.js | 11 ++++++++++- src/generators/app/index.js | 10 +++++++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index 768e6d419..f9afc6d36 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -148,7 +148,16 @@ gulp.task('installFixtures', function() { }, 1 * 1000); shell.cd('test/fixtures'); - execAsync('npm install --quiet', {cwd: '../fixtures'}).then(() => { + let installCommand; + if(process.platform === 'win32') { + installCommand = 'yarn --version >nul 2>&1 && ( yarn install ) || ( npm install --quiet )'; + } else { + installCommand = 'type yarn &> /dev/null | yarn install || npm install --quiet'; + } + + execAsync(installCommand, { + cwd: '../fixtures' + }).then(() => { process.stdout.write('\n'); if(!process.env.SAUCE_USERNAME) { gutil.log('running npm run-script update-webdriver'); diff --git a/src/generators/app/index.js b/src/generators/app/index.js index fe914e588..9c169d0ce 100644 --- a/src/generators/app/index.js +++ b/src/generators/app/index.js @@ -606,7 +606,15 @@ export class Generator extends Base { install() { if(!this.options['skip-install']) { - this.spawnCommand('npm', ['install']); + let yarnCheckCommand; + if (process.platform === 'win32') { + yarnCheckCommand = 'yarn --version >nul 2>&1'; + } else { + yarnCheckCommand = 'type yarn &> /dev/null'; + } + exec(yarnCheckCommand, (error, stdout, stderr) => { + return this.spawnCommand((!error) ? 'yarn' : 'npm', ['install']); + }); } } From bc0ce9a73ac859264508839f44cca24773b5c14a Mon Sep 17 00:00:00 2001 From: Andrew Koroluk Date: Wed, 19 Apr 2017 11:53:29 -0400 Subject: [PATCH 23/23] 4.2.0 --- CHANGELOG.md | 16 ++++++++++++++++ angular-fullstack-deps | 2 +- package.json | 2 +- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2c7a63eaf..bf3937671 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,19 @@ + +# [4.2.0](https://github.com/angular-fullstack/generator-angular-fullstack/compare/4.1.4...v4.2.0) (2017-04-19) + +## Notable Changes + +* `node-inspector` has been taken out in favor of Node's integrated `--inspect` flag. +* @benmarten has taken care of a lot of the lint issues we've seen pulluting the console +* @benmarten also enabled the use of (Yarn)[https://yarnpkg.com] if you have it installed. Thanks Ben! +* Various other fixes. See the [comparison](https://github.com/angular-fullstack/generator-angular-fullstack/compare/4.1.4...4.2.0) for the full list. + +### Bug Fixes + +* **angular-validation-match:** Integration with Babel & Typescript ([#2517](https://github.com/angular-fullstack/generator-angular-fullstack/issues/2517)) ([9db9918](https://github.com/angular-fullstack/generator-angular-fullstack/commit/9db9918)) + + + ## [4.1.4](https://github.com/angular-fullstack/generator-angular-fullstack/compare/4.1.2...v4.1.4) (2017-03-01) diff --git a/angular-fullstack-deps b/angular-fullstack-deps index 1fee2d68f..a654f8f36 160000 --- a/angular-fullstack-deps +++ b/angular-fullstack-deps @@ -1 +1 @@ -Subproject commit 1fee2d68ff55a8ad8a3ba0efd908b5c5e5d6571d +Subproject commit a654f8f36cf6efb8947f12c867f7a63bbf93d3ad diff --git a/package.json b/package.json index 9cfe6592d..7fe2b2c04 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "generator-angular-fullstack", - "version": "4.1.4", + "version": "4.2.0", "description": "Yeoman generator for creating MEAN stack applications, using MongoDB, Express, AngularJS, and Node", "keywords": [ "yeoman-generator",