Skip to content

Commit ea91e77

Browse files
committed
- Breaking change: Rename auto-set pass_ver to passVer
- Security: Minimize XSS vectors by using safer jQuery methods - Enhancement: Database abstraction layer - Enhancement: Autocomplete hints - Enhancement: `localScripts` option for using non-CDN copies - Enhancement: Use native form validation - Enhancement: Make `fromText` and `fromURL` of password reset emails configurable - Enhancement: Upon signup, ask for password confirmation - Enhancement: Require email link verification code (inspired by <braitsch#11>) - Enhancement: CLI for adding accounts - Fix: Requiring of `account.js` - Fix: Pass on CLI args properly - Fix: Add proper plain text for plain text email - i18n: Client-side i18n - Docs: Add Change log for unreleased - Docs: Indicate planned to-dos - Docs: Some further CLI documentation - Docs: Indicate license types, test results, and coverage as badges - Refactoring: Further separation of view logic out of controllers - Refactoring: Switch to Jamilih templates - Refactoring: Add scripts to head with `defer` - Refactoring: Use variables in place of selectors where possible - Linting (ESLint): As per latest ash-nazg - Testing: Add lcov report (for Atom IDE) - npm: Make scripts cross-platform - npm: Update mongodb, jamilih, jsdom, and devDeps
1 parent eba1030 commit ea91e77

119 files changed

Lines changed: 10245 additions & 5524 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.editorconfig

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,3 @@ insert_final_newline = true
1010
indent_style = space
1111
indent_size = 2
1212
trim_trailing_whitespace = true
13-
14-
[app/public/css/**.styl]
15-
indent_style = tab
16-
indent_size = 2
17-
18-
[app/server/views/**.pug]
19-
indent_style = tab
20-
indent_size = 1

.eslintignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
node_modules
22
instrumented/**
33
coverage/**
4+
!.ncurc.js
5+
mochawesome-report/**

.eslintrc.js

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,6 @@ module.exports = {
44
"plugin:node/recommended-script",
55
"plugin:cypress/recommended"
66
],
7-
"plugins": [
8-
"pug"
9-
],
107
"env": {
118
"es6": true
129
},
@@ -46,11 +43,6 @@ module.exports = {
4643
"ecmaVersion": 2018,
4744
"sourceType": "module"
4845
}
49-
}, {
50-
files: ["*.pug"],
51-
rules: {
52-
'eol-last': 0
53-
}
5446
}],
5547
"rules": {
5648
"import/no-commonjs": 0,

.gitignore

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
.DS_Store
22
node_modules
3-
app/server/modules/email-settings-mine.js
43

54
cypress/fixtures/example.json
5+
cypress/results
66
cypress/screenshots
77
cypress/videos
88
cypress.env.json
@@ -11,3 +11,8 @@ coverage/**
1111
instrumented/**
1212
.nyc_output
1313
db
14+
15+
mochawesome-report
16+
mochawesome.json
17+
node-login.json
18+
node-login.js

.ncurc.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
'use strict';
2+
3+
module.exports = {
4+
// Whitelist all for checking besides `peer` which indicates
5+
// somewhat older versions of `eslint` we still support even
6+
// while our devDeps point to a more recent version
7+
dep: 'prod,dev,optional,bundle',
8+
reject: [
9+
// Todo[bootstrap@>4.4.1]: See if updated for css, js, and popper.js at https://github.com/twbs/bootstrap/blob/master/config.yml
10+
'bootstrap',
11+
'popper.js'
12+
]
13+
};

.npmignore

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,10 @@ cypress.env.json
66
coverage/**
77
.nyc_output
88
instrumented/**
9+
10+
mochawesome-report/**
11+
mochawesome.json
12+
db/**
13+
.ncurc.js
14+
node-login.json
15+
node-login.js

.pug-lintrc.js

Lines changed: 0 additions & 27 deletions
This file was deleted.

CHANGES.md

Lines changed: 126 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -1,82 +1,133 @@
1-
**v1.7.2** –– 11-18-2018
1+
# CHANGES for node-login
2+
3+
## ?
4+
5+
- Breaking enhancement: Avoid `process.env` (`app.js` accepts CLI now instead)
6+
- Breaking enhancement: Allow app to pass in own countries list
7+
- Breaking change: Rename auto-set `pass_ver` to `passVer`
8+
- Breaking refactoring: `EmailDispatcher` and `AccountManager` are now classes;
9+
routes accepts config
10+
- Security: Add PBKDF2 hashing (@SCG82)
11+
- Security: Make "secret" private and configurable; add
12+
integrity/cross-origin=anonymous for jquery.form and font-awesome
13+
(switching to same CDN); add also for github-fork-ribbon-css, but comment
14+
out as not in apparent use
15+
- Security: Use signed cookie
16+
- Security: Pass secret to cookie parser as otherwise potentially problematic
17+
- Security: Rate-limiting (for DoS)
18+
- Security: Minimize XSS vectors by using safer jQuery methods
19+
- Fix: Accessibility (except for `color-contrast` whose check we are
20+
temporarily disabling until may have time to fix)
21+
- Fix: Add proper plain text for plain text email
22+
- Update: Use now required Mongodb APIs
23+
- Update: CDN for bootstrap (CSS and JS), jquery, popper
24+
- Enhancement: Database abstraction layer
25+
- Enhancement: Autocomplete hints
26+
- Enhancement: More configurabiity
27+
- Enhancement: i18n (server-side, client-side, and CLI)
28+
- Enhancement: Make available as binary (with help/version and
29+
update-notifier)
30+
- Enhancement: Add `use strict`
31+
- Enhancement: `localScripts` option for using non-CDN copies
32+
- Enhancement: Use native form validation
33+
- Enhancement: Make `fromText` and `fromURL` of password reset emails
34+
configurable
35+
- Enhancement: Require email link verification code (inspired by
36+
<https://github.com/braitsch/node-login/pull/11>)
37+
- Enhancement: CLI for adding accounts
38+
- Fix: Requiring of `account.js`
39+
- Fix: Pass on CLI args properly
40+
- Docs: Add Change log for unreleased
41+
- Docs: Indicate planned to-dos
42+
- Docs: Some further CLI documentation
43+
- Docs: CLI
44+
- Docs: Indicate license types, test results, and coverage as badges
45+
- Linting (ESLint): Apply eslint-config-ash-nazg
46+
- Refactoring: Destructuring; arrow functions for handlers;
47+
utilize succincter stylus features
48+
- Refactoring: convert further APIs to (async/await) Promises
49+
- Refactoring: Avoid inline styles
50+
- Refactoring: Further separation of view logic out of controllers
51+
- Refactoring: Switch to Jamilih templates
52+
- Refactoring: Add scripts to head with `defer`
53+
- Refactoring: Use variables in place of selectors where possible
54+
- Linting (ESLint): As per latest ash-nazg
55+
- Testing: Cypress testing, including axe accessibility testing;
56+
add sourcemaps to stylus; coverage
57+
- Maintenance: Add `.editorconfig`
58+
- npm: Mongodb and server start scripts
59+
- npm: Add recommended `package.json` fields; allow Node >= 10.4.0 in `engines`
60+
- npm: Update deps and devDeps
61+
62+
## v1.7.2 –– 11-18-2018
63+
64+
- auto-login & password-reset now validating against UUIDs and the user's last recorded IP address
65+
66+
## v1.7.1 –– 11-18-2018
67+
68+
- updating mongodb calls to latest driver
69+
- [fix for #12](https://github.com/braitsch/node-login/pull/12)
70+
71+
## v1.7.0 –– 11-18-2018
72+
73+
- updated dependencies to latest versions
74+
- bootstrap v4.1.3 & jquery v3.3.1
75+
- style.css completely rewritten
76+
- [fix for #36](https://github.com/braitsch/node-login/issues/36)
77+
78+
## v1.6.0 –– 06-10-2018
79+
80+
- updated dependencies to latest versions
81+
- updated mongodb connection scheme
82+
- replaced jade templating engine with pug
83+
84+
## v1.5.0 –– 04-21-2016
85+
86+
- redesigned login window
87+
- improved error handling on password reset
88+
- updating client side libraries:
89+
- jQuery –– v2.2.3
90+
- jQuery.form –– v3.51.0
91+
- Twitter Bootstrap –– v3.3.6
92+
93+
## v1.4.1 –– 02-27-2016
94+
95+
- calls to logout now route to /logout instead of /home
96+
- accounts are now looked up by session.id instead of username
97+
- reset-password modal window fixes
98+
- updating emailjs to v1.0.4
99+
- switching to environment variables for email settings
100+
101+
## v1.4.0 –– 06-14-2015
102+
103+
- updating to Express v4.12.4
104+
- adding connect-mongo for db session store
105+
106+
## v1.3.2 –– 03-11-2013
107+
108+
- fixed bug on password reset
109+
110+
## v1.3.1 –– 03-07-2013
111+
112+
- adding MIT license
113+
114+
## v1.3.0 –– 01-10-2013
115+
116+
- updating to Express v3.0.6
117+
118+
## v1.2.1 –– 01-03-2013
2119

3-
* auto-login & password-reset now validating against UUIDs and the user's last recorded IP address
120+
- moving vendor libs to /public/vendor
4121

5-
**v1.7.1** –– 11-18-2018
122+
## v1.2.0 –– 12-27-2012
6123

7-
* updating mongodb calls to latest driver
8-
* [fix for #12](https://github.com/braitsch/node-login/pull/12)
124+
- updating MongoDB driver to 1.2.7
125+
- replacing bcrypt module with native crypto
9126

10-
**v1.7.0** –– 11-18-2018
127+
## v1.1.0 –– 08-12-2012
11128

12-
* updated dependencies to latest versions
13-
* bootstrap v4.1.3 & jquery v3.3.1
14-
* style.css completely rewritten
15-
* [fix for #36](https://github.com/braitsch/node-login/issues/36)
129+
- adding /print & /reset methods
16130

17-
**v1.6.0** –– 06-10-2018
131+
## v1.0.0 –– 08-07-2012
18132

19-
* updated dependencies to latest versions
20-
* updated mongodb connection scheme
21-
* replaced jade templating engine with pug
22-
23-
**v1.5.0** –– 04-21-2016
24-
25-
* redesigned login window
26-
* improved error handling on password reset
27-
* updating client side libraries:
28-
* jQuery –– v2.2.3
29-
* jQuery.form –– v3.51.0
30-
* Twitter Bootstrap –– v3.3.6
31-
32-
**v1.4.1** –– 02-27-2016
33-
34-
* calls to logout now route to /logout instead of /home
35-
* accounts are now looked up by session.id instead of username
36-
* reset-password modal window fixes
37-
* updating emailjs to v1.0.4
38-
* switching to environment variables for email settings
39-
40-
--
41-
**v1.4.0** –– 06-14-2015
42-
43-
* updating to Express v4.12.4
44-
* adding connect-mongo for db session store
45-
46-
--
47-
**v1.3.2** –– 03-11-2013
48-
49-
* fixed bug on password reset
50-
51-
--
52-
**v1.3.1** –– 03-07-2013
53-
54-
* adding MIT license
55-
56-
--
57-
**v1.3.0** –– 01-10-2013
58-
59-
* updating to Express v3.0.6
60-
61-
--
62-
**v1.2.1** –– 01-03-2013
63-
64-
* moving vendor libs to /public/vendor
65-
66-
--
67-
**v1.2.0** –– 12-27-2012
68-
69-
* updating MongoDB driver to 1.2.7
70-
* replacing bcrypt module with native crypto
71-
72-
--
73-
**v1.1.0** –– 08-12-2012
74-
75-
* adding /print & /reset methods
76-
77-
--
78-
**v1.0.0** –– 08-07-2012
79-
80-
* initial release
81-
82-
--
133+
- initial release

0 commit comments

Comments
 (0)