@things-factory/auth-base 4.0.30 → 4.0.34

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,9 +6,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.validatePasswordByRule = exports.passwordHelp = exports.passwordPattern = exports.generatePasswordPatternHelp = void 0;
7
7
  const i18next_1 = __importDefault(require("i18next"));
8
8
  const env_1 = require("@things-factory/env");
9
- const utils_1 = require("@things-factory/utils");
10
- const auth_error_1 = require("../../errors/auth-error");
11
9
  const error_code_1 = require("../../constants/error-code");
10
+ const auth_error_1 = require("../../errors/auth-error");
12
11
  const debug = require('debug')('things-factory:auth-base:password-rule');
13
12
  const passwordConfig = env_1.config.get('password') || {
14
13
  lowerCase: true,
@@ -21,6 +20,31 @@ const passwordConfig = env_1.config.get('password') || {
21
20
  tightCharacterLength: 8,
22
21
  looseCharacterLength: 15
23
22
  };
23
+ function generatePasswordPatternRegExp({ lowerCase = true, upperCase = true, digit = true, specialCharacter = true, allowRepeat = false, useTightPattern = true, useLoosePattern = false, tightCharacterLength = 8, looseCharacterLength = 15 } = {}) {
24
+ var tightChecklist = useTightPattern
25
+ ? [
26
+ lowerCase ? '(?=.*[a-z])' : '',
27
+ upperCase ? '(?=.*[A-Z])' : '',
28
+ digit ? '(?=.*\\d)' : '',
29
+ specialCharacter ? '(?=.*[!@#$%^&*()])' : '',
30
+ !allowRepeat ? '(?!.*(.)\\1(?=\\1{1,}))' : '',
31
+ `.{${tightCharacterLength},}` // has a length of 8 and more
32
+ ]
33
+ : [];
34
+ var looseChecklist = useLoosePattern
35
+ ? [
36
+ `.{${looseCharacterLength},}` // has a length of 15 and more
37
+ ]
38
+ : [];
39
+ var checkList = [
40
+ '^',
41
+ ...tightChecklist,
42
+ tightChecklist.length && looseChecklist.length ? '|' : '',
43
+ ...looseChecklist,
44
+ '$' //to the end"
45
+ ];
46
+ return new RegExp(checkList.join(''));
47
+ }
24
48
  function generatePasswordPatternHelp({ lowerCase = true, upperCase = true, digit = true, specialCharacter = true, allowRepeat = false, useTightPattern = true, useLoosePattern = false, tightCharacterLength = 8, looseCharacterLength = 15 } = {}, lng) {
25
49
  lng = lng || 'en-US';
26
50
  var descriptions = [];
@@ -42,7 +66,7 @@ function generatePasswordPatternHelp({ lowerCase = true, upperCase = true, digit
42
66
  return descriptions.join(', ');
43
67
  }
44
68
  exports.generatePasswordPatternHelp = generatePasswordPatternHelp;
45
- exports.passwordPattern = (0, utils_1.generatePasswordPatternRegExp)(passwordConfig);
69
+ exports.passwordPattern = generatePasswordPatternRegExp(passwordConfig);
46
70
  function passwordHelp(lng) {
47
71
  return generatePasswordPatternHelp(passwordConfig, lng);
48
72
  }
@@ -1 +1 @@
1
- {"version":3,"file":"password-rule.js","sourceRoot":"","sources":["../../../server/controllers/utils/password-rule.ts"],"names":[],"mappings":";;;;;;AAAA,sDAA6B;AAC7B,6CAA4C;AAC5C,iDAAqE;AACrE,wDAAmD;AACnD,2DAAyE;AAEzE,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,wCAAwC,CAAC,CAAA;AACxE,MAAM,cAAc,GAAG,YAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI;IAC/C,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,KAAK,EAAE,IAAI;IACX,gBAAgB,EAAE,IAAI;IACtB,WAAW,EAAE,KAAK;IAClB,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,KAAK;IACtB,oBAAoB,EAAE,CAAC;IACvB,oBAAoB,EAAE,EAAE;CACzB,CAAA;AAED,SAAgB,2BAA2B,CACzC,EACE,SAAS,GAAG,IAAI,EAChB,SAAS,GAAG,IAAI,EAChB,KAAK,GAAG,IAAI,EACZ,gBAAgB,GAAG,IAAI,EACvB,WAAW,GAAG,KAAK,EACnB,eAAe,GAAG,IAAI,EACtB,eAAe,GAAG,KAAK,EACvB,oBAAoB,GAAG,CAAC,EACxB,oBAAoB,GAAG,EAAE,EAC1B,GAAG,EAAE,EACN,GAAG;IAEH,GAAG,GAAG,GAAG,IAAI,OAAO,CAAA;IACpB,IAAI,YAAY,GAAG,EAAE,CAAA;IAErB,MAAM,CAAC,GAAG,iBAAO,CAAC,SAAS,CAAC,GAAG,EAAE,cAAc,CAAC,CAAA;IAEhD,IAAI,eAAe,EAAE;QACnB,YAAY,CAAC,IAAI,CAAC,aAAa,oBAAoB,aAAa,CAAC,CAAA;KAClE;IAED,IAAI,eAAe,EAAE;QACnB,CAAC,eAAe;YACd,YAAY,CAAC,IAAI,CACf,CAAC,CAAC,gCAAgC,EAAE;gBAClC,MAAM,EAAE,oBAAoB;aAC7B,CAAC,CACH,CAAA;QACH,SAAS,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAA;QACrE,SAAS,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAA;QACrE,KAAK,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAA;QAC7D,gBAAgB,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAA;QAC1E,CAAC,WAAW,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAA;KACjE;IAED,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAChC,CAAC;AAtCD,kEAsCC;AAEY,QAAA,eAAe,GAAG,IAAA,qCAA6B,EAAC,cAAc,CAAC,CAAA;AAC5E,SAAgB,YAAY,CAAC,GAAG;IAC9B,OAAO,2BAA2B,CAAC,cAAc,EAAE,GAAG,CAAC,CAAA;AACzD,CAAC;AAFD,oCAEC;AAED,SAAgB,sBAAsB,CAAC,QAAQ,EAAE,GAAG;IAClD,IAAI,CAAC,uBAAe,EAAE;QACpB,OAAM;KACP;IAED,IAAI,uBAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;QAClC,OAAM;KACP;IAED,MAAM,IAAI,GAAG,2BAA2B,CAAC,cAAc,EAAE,GAAG,CAAC,CAAA;IAC7D,MAAM,IAAI,sBAAS,CAAC;QAClB,SAAS,EAAE,yCAA4B;QACvC,MAAM,EAAE;YACN,IAAI;SACL;KACF,CAAC,CAAA;AACJ,CAAC;AAhBD,wDAgBC"}
1
+ {"version":3,"file":"password-rule.js","sourceRoot":"","sources":["../../../server/controllers/utils/password-rule.ts"],"names":[],"mappings":";;;;;;AAAA,sDAA6B;AAE7B,6CAA4C;AAE5C,2DAAyE;AACzE,wDAAmD;AAEnD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,wCAAwC,CAAC,CAAA;AACxE,MAAM,cAAc,GAAG,YAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI;IAC/C,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,KAAK,EAAE,IAAI;IACX,gBAAgB,EAAE,IAAI;IACtB,WAAW,EAAE,KAAK;IAClB,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,KAAK;IACtB,oBAAoB,EAAE,CAAC;IACvB,oBAAoB,EAAE,EAAE;CACzB,CAAA;AAED,SAAS,6BAA6B,CAAC,EACrC,SAAS,GAAG,IAAI,EAChB,SAAS,GAAG,IAAI,EAChB,KAAK,GAAG,IAAI,EACZ,gBAAgB,GAAG,IAAI,EACvB,WAAW,GAAG,KAAK,EACnB,eAAe,GAAG,IAAI,EACtB,eAAe,GAAG,KAAK,EACvB,oBAAoB,GAAG,CAAC,EACxB,oBAAoB,GAAG,EAAE,EAC1B,GAAG,EAAE;IACJ,IAAI,cAAc,GAAG,eAAe;QAClC,CAAC,CAAC;YACE,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;YAC9B,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;YAC9B,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;YACxB,gBAAgB,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE;YAC5C,CAAC,WAAW,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE;YAC7C,KAAK,oBAAoB,IAAI,CAAC,6BAA6B;SAC5D;QACH,CAAC,CAAC,EAAE,CAAA;IAEN,IAAI,cAAc,GAAG,eAAe;QAClC,CAAC,CAAC;YACE,KAAK,oBAAoB,IAAI,CAAC,8BAA8B;SAC7D;QACH,CAAC,CAAC,EAAE,CAAA;IAEN,IAAI,SAAS,GAAG;QACd,GAAG;QACH,GAAG,cAAc;QACjB,cAAc,CAAC,MAAM,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QACzD,GAAG,cAAc;QACjB,GAAG,CAAC,aAAa;KAClB,CAAA;IAED,OAAO,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;AACvC,CAAC;AAED,SAAgB,2BAA2B,CACzC,EACE,SAAS,GAAG,IAAI,EAChB,SAAS,GAAG,IAAI,EAChB,KAAK,GAAG,IAAI,EACZ,gBAAgB,GAAG,IAAI,EACvB,WAAW,GAAG,KAAK,EACnB,eAAe,GAAG,IAAI,EACtB,eAAe,GAAG,KAAK,EACvB,oBAAoB,GAAG,CAAC,EACxB,oBAAoB,GAAG,EAAE,EAC1B,GAAG,EAAE,EACN,GAAG;IAEH,GAAG,GAAG,GAAG,IAAI,OAAO,CAAA;IACpB,IAAI,YAAY,GAAG,EAAE,CAAA;IAErB,MAAM,CAAC,GAAG,iBAAO,CAAC,SAAS,CAAC,GAAG,EAAE,cAAc,CAAC,CAAA;IAEhD,IAAI,eAAe,EAAE;QACnB,YAAY,CAAC,IAAI,CAAC,aAAa,oBAAoB,aAAa,CAAC,CAAA;KAClE;IAED,IAAI,eAAe,EAAE;QACnB,CAAC,eAAe;YACd,YAAY,CAAC,IAAI,CACf,CAAC,CAAC,gCAAgC,EAAE;gBAClC,MAAM,EAAE,oBAAoB;aAC7B,CAAC,CACH,CAAA;QACH,SAAS,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAA;QACrE,SAAS,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAA;QACrE,KAAK,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAA;QAC7D,gBAAgB,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAA;QAC1E,CAAC,WAAW,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAA;KACjE;IAED,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAChC,CAAC;AAtCD,kEAsCC;AAEY,QAAA,eAAe,GAAG,6BAA6B,CAAC,cAAc,CAAC,CAAA;AAC5E,SAAgB,YAAY,CAAC,GAAG;IAC9B,OAAO,2BAA2B,CAAC,cAAc,EAAE,GAAG,CAAC,CAAA;AACzD,CAAC;AAFD,oCAEC;AAED,SAAgB,sBAAsB,CAAC,QAAQ,EAAE,GAAG;IAClD,IAAI,CAAC,uBAAe,EAAE;QACpB,OAAM;KACP;IAED,IAAI,uBAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;QAClC,OAAM;KACP;IAED,MAAM,IAAI,GAAG,2BAA2B,CAAC,cAAc,EAAE,GAAG,CAAC,CAAA;IAC7D,MAAM,IAAI,sBAAS,CAAC;QAClB,SAAS,EAAE,yCAA4B;QACvC,MAAM,EAAE;YACN,IAAI;SACL;KACF,CAAC,CAAA;AACJ,CAAC;AAhBD,wDAgBC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@things-factory/auth-base",
3
- "version": "4.0.30",
3
+ "version": "4.0.34",
4
4
  "main": "dist-server/index.js",
5
5
  "browser": "client/index.js",
6
6
  "things-factory": true,
@@ -27,10 +27,11 @@
27
27
  "migration:create": "node ../../node_modules/typeorm/cli.js migration:create -d ./server/migrations"
28
28
  },
29
29
  "dependencies": {
30
- "@things-factory/email-base": "^4.0.30",
31
- "@things-factory/env": "^4.0.30",
32
- "@things-factory/i18n-base": "^4.0.30",
33
- "@things-factory/shell": "^4.0.30",
30
+ "@things-factory/email-base": "^4.0.34",
31
+ "@things-factory/env": "^4.0.34",
32
+ "@things-factory/i18n-base": "^4.0.34",
33
+ "@things-factory/shell": "^4.0.34",
34
+ "@things-factory/utils": "^4.0.34",
34
35
  "jsonwebtoken": "^8.5.1",
35
36
  "koa-passport": "^4.1.4",
36
37
  "koa-session": "^6.0.0",
@@ -40,5 +41,5 @@
40
41
  "passport-local": "^1.0.0",
41
42
  "uuid": "^3.4.0"
42
43
  },
43
- "gitHead": "4ab590326e3fc60d113fb438e90eefee708f1f19"
44
+ "gitHead": "b79919fd02f8388f1d40300c52a25903ad98110c"
44
45
  }
@@ -1,8 +1,9 @@
1
1
  import i18next from 'i18next'
2
+
2
3
  import { config } from '@things-factory/env'
3
- import { generatePasswordPatternRegExp } from '@things-factory/utils'
4
- import { AuthError } from '../../errors/auth-error'
4
+
5
5
  import { PASSWORD_PATTERN_NOT_MATCHED } from '../../constants/error-code'
6
+ import { AuthError } from '../../errors/auth-error'
6
7
 
7
8
  const debug = require('debug')('things-factory:auth-base:password-rule')
8
9
  const passwordConfig = config.get('password') || {
@@ -17,6 +18,45 @@ const passwordConfig = config.get('password') || {
17
18
  looseCharacterLength: 15
18
19
  }
19
20
 
21
+ function generatePasswordPatternRegExp({
22
+ lowerCase = true,
23
+ upperCase = true,
24
+ digit = true,
25
+ specialCharacter = true,
26
+ allowRepeat = false,
27
+ useTightPattern = true,
28
+ useLoosePattern = false,
29
+ tightCharacterLength = 8,
30
+ looseCharacterLength = 15
31
+ } = {}) {
32
+ var tightChecklist = useTightPattern
33
+ ? [
34
+ lowerCase ? '(?=.*[a-z])' : '', // has at least one lower case character
35
+ upperCase ? '(?=.*[A-Z])' : '', // has at least one upper case character
36
+ digit ? '(?=.*\\d)' : '', // has at least one digit
37
+ specialCharacter ? '(?=.*[!@#$%^&*()])' : '', // has at least one special character
38
+ !allowRepeat ? '(?!.*(.)\\1(?=\\1{1,}))' : '', // has not an repeated character more than twice
39
+ `.{${tightCharacterLength},}` // has a length of 8 and more
40
+ ]
41
+ : []
42
+
43
+ var looseChecklist = useLoosePattern
44
+ ? [
45
+ `.{${looseCharacterLength},}` // has a length of 15 and more
46
+ ]
47
+ : []
48
+
49
+ var checkList = [
50
+ '^', // from start
51
+ ...tightChecklist,
52
+ tightChecklist.length && looseChecklist.length ? '|' : '',
53
+ ...looseChecklist,
54
+ '$' //to the end"
55
+ ]
56
+
57
+ return new RegExp(checkList.join(''))
58
+ }
59
+
20
60
  export function generatePasswordPatternHelp(
21
61
  {
22
62
  lowerCase = true,