@things-factory/auth-base 4.3.671 → 4.3.673
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.
- package/dist-server/constants/error-code.js +21 -0
- package/dist-server/constants/error-code.js.map +1 -0
- package/dist-server/constants/error-message.js +1 -0
- package/dist-server/constants/error-message.js.map +1 -0
- package/dist-server/constants/max-age.js +5 -0
- package/dist-server/constants/max-age.js.map +1 -0
- package/dist-server/controllers/auth.js +21 -0
- package/dist-server/controllers/auth.js.map +1 -0
- package/dist-server/controllers/change-pwd.js +80 -0
- package/dist-server/controllers/change-pwd.js.map +1 -0
- package/dist-server/controllers/checkin.js +21 -0
- package/dist-server/controllers/checkin.js.map +1 -0
- package/dist-server/controllers/delete-user.js +61 -0
- package/dist-server/controllers/delete-user.js.map +1 -0
- package/dist-server/controllers/invitation.js +119 -0
- package/dist-server/controllers/invitation.js.map +1 -0
- package/dist-server/controllers/profile.js +26 -0
- package/dist-server/controllers/profile.js.map +1 -0
- package/dist-server/controllers/reset-password.js +110 -0
- package/dist-server/controllers/reset-password.js.map +1 -0
- package/dist-server/controllers/signin.js +76 -0
- package/dist-server/controllers/signin.js.map +1 -0
- package/dist-server/controllers/signup.js +105 -0
- package/dist-server/controllers/signup.js.map +1 -0
- package/dist-server/controllers/unlock-user.js +60 -0
- package/dist-server/controllers/unlock-user.js.map +1 -0
- package/dist-server/controllers/utils/make-invitation-token.js +12 -0
- package/dist-server/controllers/utils/make-invitation-token.js.map +1 -0
- package/dist-server/controllers/utils/make-verification-token.js +12 -0
- package/dist-server/controllers/utils/make-verification-token.js.map +1 -0
- package/dist-server/controllers/utils/password-rule.js +90 -0
- package/dist-server/controllers/utils/password-rule.js.map +1 -0
- package/dist-server/controllers/utils/save-invitation-token.js +13 -0
- package/dist-server/controllers/utils/save-invitation-token.js.map +1 -0
- package/dist-server/controllers/utils/save-verification-token.js +15 -0
- package/dist-server/controllers/utils/save-verification-token.js.map +1 -0
- package/dist-server/controllers/verification.js +78 -0
- package/dist-server/controllers/verification.js.map +1 -0
- package/dist-server/errors/auth-error.js +40 -0
- package/dist-server/errors/auth-error.js.map +1 -0
- package/dist-server/errors/index.js +19 -0
- package/dist-server/errors/index.js.map +1 -0
- package/dist-server/errors/user-domain-not-match-error.js +24 -0
- package/dist-server/errors/user-domain-not-match-error.js.map +1 -0
- package/dist-server/index.js +29 -0
- package/dist-server/index.js.map +1 -0
- package/dist-server/middlewares/authenticate-401-middleware.js +84 -0
- package/dist-server/middlewares/authenticate-401-middleware.js.map +1 -0
- package/dist-server/middlewares/domain-authenticate-middleware.js +58 -0
- package/dist-server/middlewares/domain-authenticate-middleware.js.map +1 -0
- package/dist-server/middlewares/graphql-authenticate-middleware.js +17 -0
- package/dist-server/middlewares/graphql-authenticate-middleware.js.map +1 -0
- package/dist-server/middlewares/index.js +57 -0
- package/dist-server/middlewares/index.js.map +1 -0
- package/dist-server/middlewares/jwt-authenticate-middleware.js +77 -0
- package/dist-server/middlewares/jwt-authenticate-middleware.js.map +1 -0
- package/dist-server/middlewares/signin-middleware.js +47 -0
- package/dist-server/middlewares/signin-middleware.js.map +1 -0
- package/dist-server/migrations/1548206416130-SeedUser.js +46 -0
- package/dist-server/migrations/1548206416130-SeedUser.js.map +1 -0
- package/dist-server/migrations/1566805283882-SeedPrivilege.js +26 -0
- package/dist-server/migrations/1566805283882-SeedPrivilege.js.map +1 -0
- package/dist-server/migrations/index.js +12 -0
- package/dist-server/migrations/index.js.map +1 -0
- package/dist-server/router/auth-checkin-router.js +96 -0
- package/dist-server/router/auth-checkin-router.js.map +1 -0
- package/dist-server/router/auth-private-process-router.js +91 -0
- package/dist-server/router/auth-private-process-router.js.map +1 -0
- package/dist-server/router/auth-public-process-router.js +243 -0
- package/dist-server/router/auth-public-process-router.js.map +1 -0
- package/dist-server/router/auth-signin-router.js +38 -0
- package/dist-server/router/auth-signin-router.js.map +1 -0
- package/dist-server/router/auth-signup-router.js +76 -0
- package/dist-server/router/auth-signup-router.js.map +1 -0
- package/dist-server/router/index.js +25 -0
- package/dist-server/router/index.js.map +1 -0
- package/dist-server/router/oauth2/index.js +19 -0
- package/dist-server/router/oauth2/index.js.map +1 -0
- package/dist-server/router/oauth2/oauth2-authorize-router.js +72 -0
- package/dist-server/router/oauth2/oauth2-authorize-router.js.map +1 -0
- package/dist-server/router/oauth2/oauth2-router.js +137 -0
- package/dist-server/router/oauth2/oauth2-router.js.map +1 -0
- package/dist-server/router/oauth2/oauth2-server.js +201 -0
- package/dist-server/router/oauth2/oauth2-server.js.map +1 -0
- package/dist-server/router/oauth2/passport-oauth2-client-password.js +84 -0
- package/dist-server/router/oauth2/passport-oauth2-client-password.js.map +1 -0
- package/dist-server/router/oauth2/passport-refresh-token.js +84 -0
- package/dist-server/router/oauth2/passport-refresh-token.js.map +1 -0
- package/dist-server/router/path-base-domain-router.js +15 -0
- package/dist-server/router/path-base-domain-router.js.map +1 -0
- package/dist-server/router/site-root-router.js +48 -0
- package/dist-server/router/site-root-router.js.map +1 -0
- package/dist-server/routes.js +58 -0
- package/dist-server/routes.js.map +1 -0
- package/dist-server/service/app-binding/app-binding-mutation.js +45 -0
- package/dist-server/service/app-binding/app-binding-mutation.js.map +1 -0
- package/dist-server/service/app-binding/app-binding-query.js +135 -0
- package/dist-server/service/app-binding/app-binding-query.js.map +1 -0
- package/dist-server/service/app-binding/app-binding-types.js +29 -0
- package/dist-server/service/app-binding/app-binding-types.js.map +1 -0
- package/dist-server/service/app-binding/app-binding.js +34 -0
- package/dist-server/service/app-binding/app-binding.js.map +1 -0
- package/dist-server/service/app-binding/index.js +7 -0
- package/dist-server/service/app-binding/index.js.map +1 -0
- package/dist-server/service/appliance/appliance-mutation.js +117 -0
- package/dist-server/service/appliance/appliance-mutation.js.map +1 -0
- package/dist-server/service/appliance/appliance-query.js +85 -0
- package/dist-server/service/appliance/appliance-query.js.map +1 -0
- package/dist-server/service/appliance/appliance-types.js +93 -0
- package/dist-server/service/appliance/appliance-types.js.map +1 -0
- package/dist-server/service/appliance/appliance.js +155 -0
- package/dist-server/service/appliance/appliance.js.map +1 -0
- package/dist-server/service/appliance/index.js +9 -0
- package/dist-server/service/appliance/index.js.map +1 -0
- package/dist-server/service/application/application-mutation.js +121 -0
- package/dist-server/service/application/application-mutation.js.map +1 -0
- package/dist-server/service/application/application-query.js +128 -0
- package/dist-server/service/application/application-query.js.map +1 -0
- package/dist-server/service/application/application-types.js +119 -0
- package/dist-server/service/application/application-types.js.map +1 -0
- package/dist-server/service/application/application.js +236 -0
- package/dist-server/service/application/application.js.map +1 -0
- package/dist-server/service/application/index.js +9 -0
- package/dist-server/service/application/index.js.map +1 -0
- package/dist-server/service/domain-generator/domain-generator-mutation.js +117 -0
- package/dist-server/service/domain-generator/domain-generator-mutation.js.map +1 -0
- package/dist-server/service/domain-generator/domain-generator-types.js +79 -0
- package/dist-server/service/domain-generator/domain-generator-types.js.map +1 -0
- package/dist-server/service/domain-generator/index.js +6 -0
- package/dist-server/service/domain-generator/index.js.map +1 -0
- package/dist-server/service/granted-role/granted-role-mutation.js +144 -0
- package/dist-server/service/granted-role/granted-role-mutation.js.map +1 -0
- package/dist-server/service/granted-role/granted-role-query.js +93 -0
- package/dist-server/service/granted-role/granted-role-query.js.map +1 -0
- package/dist-server/service/granted-role/granted-role.js +49 -0
- package/dist-server/service/granted-role/granted-role.js.map +1 -0
- package/dist-server/service/granted-role/index.js +9 -0
- package/dist-server/service/granted-role/index.js.map +1 -0
- package/dist-server/service/index.js +94 -0
- package/dist-server/service/index.js.map +1 -0
- package/dist-server/service/invitation/index.js +9 -0
- package/dist-server/service/invitation/index.js.map +1 -0
- package/dist-server/service/invitation/invitation-mutation.js +76 -0
- package/dist-server/service/invitation/invitation-mutation.js.map +1 -0
- package/dist-server/service/invitation/invitation-query.js +57 -0
- package/dist-server/service/invitation/invitation-query.js.map +1 -0
- package/dist-server/service/invitation/invitation-types.js +29 -0
- package/dist-server/service/invitation/invitation-types.js.map +1 -0
- package/dist-server/service/invitation/invitation.js +84 -0
- package/dist-server/service/invitation/invitation.js.map +1 -0
- package/dist-server/service/login-history/index.js +8 -0
- package/dist-server/service/login-history/index.js.map +1 -0
- package/dist-server/service/login-history/login-history-query.js +67 -0
- package/dist-server/service/login-history/login-history-query.js.map +1 -0
- package/dist-server/service/login-history/login-history.js +68 -0
- package/dist-server/service/login-history/login-history.js.map +1 -0
- package/dist-server/service/partner/index.js +9 -0
- package/dist-server/service/partner/index.js.map +1 -0
- package/dist-server/service/partner/partner-mutation.js +134 -0
- package/dist-server/service/partner/partner-mutation.js.map +1 -0
- package/dist-server/service/partner/partner-query.js +193 -0
- package/dist-server/service/partner/partner-query.js.map +1 -0
- package/dist-server/service/partner/partner-types.js +57 -0
- package/dist-server/service/partner/partner-types.js.map +1 -0
- package/dist-server/service/partner/partner.js +86 -0
- package/dist-server/service/partner/partner.js.map +1 -0
- package/dist-server/service/password-history/index.js +6 -0
- package/dist-server/service/password-history/index.js.map +1 -0
- package/dist-server/service/password-history/password-history.js +34 -0
- package/dist-server/service/password-history/password-history.js.map +1 -0
- package/dist-server/service/privilege/index.js +9 -0
- package/dist-server/service/privilege/index.js.map +1 -0
- package/dist-server/service/privilege/privilege-directive.js +85 -0
- package/dist-server/service/privilege/privilege-directive.js.map +1 -0
- package/dist-server/service/privilege/privilege-mutation.js +80 -0
- package/dist-server/service/privilege/privilege-mutation.js.map +1 -0
- package/dist-server/service/privilege/privilege-query.js +109 -0
- package/dist-server/service/privilege/privilege-query.js.map +1 -0
- package/dist-server/service/privilege/privilege-types.js +100 -0
- package/dist-server/service/privilege/privilege-types.js.map +1 -0
- package/dist-server/service/privilege/privilege.js +92 -0
- package/dist-server/service/privilege/privilege.js.map +1 -0
- package/dist-server/service/role/index.js +9 -0
- package/dist-server/service/role/index.js.map +1 -0
- package/dist-server/service/role/role-mutation.js +121 -0
- package/dist-server/service/role/role-mutation.js.map +1 -0
- package/dist-server/service/role/role-query.js +207 -0
- package/dist-server/service/role/role-query.js.map +1 -0
- package/dist-server/service/role/role-types.js +130 -0
- package/dist-server/service/role/role-types.js.map +1 -0
- package/dist-server/service/role/role.js +94 -0
- package/dist-server/service/role/role.js.map +1 -0
- package/dist-server/service/user/index.js +9 -0
- package/dist-server/service/user/index.js.map +1 -0
- package/dist-server/service/user/user-mutation.js +307 -0
- package/dist-server/service/user/user-mutation.js.map +1 -0
- package/dist-server/service/user/user-query.js +194 -0
- package/dist-server/service/user/user-query.js.map +1 -0
- package/dist-server/service/user/user-types.js +106 -0
- package/dist-server/service/user/user-types.js.map +1 -0
- package/dist-server/service/user/user.js +274 -0
- package/dist-server/service/user/user.js.map +1 -0
- package/dist-server/service/verification-token/index.js +6 -0
- package/dist-server/service/verification-token/index.js.map +1 -0
- package/dist-server/service/verification-token/verification-token.js +75 -0
- package/dist-server/service/verification-token/verification-token.js.map +1 -0
- package/dist-server/templates/account-unlock-email.js +69 -0
- package/dist-server/templates/account-unlock-email.js.map +1 -0
- package/dist-server/templates/invitation-email.js +70 -0
- package/dist-server/templates/invitation-email.js.map +1 -0
- package/dist-server/templates/reset-password-email.js +66 -0
- package/dist-server/templates/reset-password-email.js.map +1 -0
- package/dist-server/templates/verification-email.js +70 -0
- package/dist-server/templates/verification-email.js.map +1 -0
- package/dist-server/utils/accepts.js +14 -0
- package/dist-server/utils/accepts.js.map +1 -0
- package/dist-server/utils/access-token-cookie.js +45 -0
- package/dist-server/utils/access-token-cookie.js.map +1 -0
- package/dist-server/utils/check-user-belongs-domain.js +22 -0
- package/dist-server/utils/check-user-belongs-domain.js.map +1 -0
- package/dist-server/utils/get-domain-from-hostname.js +10 -0
- package/dist-server/utils/get-domain-from-hostname.js.map +1 -0
- package/dist-server/utils/get-domain-users.js +31 -0
- package/dist-server/utils/get-domain-users.js.map +1 -0
- package/dist-server/utils/get-secret.js +15 -0
- package/dist-server/utils/get-secret.js.map +1 -0
- package/dist-server/utils/get-user-domains.js +40 -0
- package/dist-server/utils/get-user-domains.js.map +1 -0
- package/package.json +5 -5
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UsernameValidator = exports.UsernameValidationError = exports.signup = void 0;
|
|
4
|
+
const typeorm_1 = require("typeorm");
|
|
5
|
+
const user_1 = require("../service/user/user");
|
|
6
|
+
const verification_1 = require("./verification");
|
|
7
|
+
const signin_1 = require("./signin");
|
|
8
|
+
const auth_error_1 = require("../errors/auth-error");
|
|
9
|
+
const error_code_1 = require("../constants/error-code");
|
|
10
|
+
async function signup(attrs, withEmailVerification) {
|
|
11
|
+
const { email, password, domain, context, name } = attrs;
|
|
12
|
+
UsernameValidator.validate(name);
|
|
13
|
+
/* check if password is following the rule */
|
|
14
|
+
user_1.User.validatePasswordByRule(password, context.lng);
|
|
15
|
+
const repository = (0, typeorm_1.getRepository)(user_1.User);
|
|
16
|
+
const old = await repository.findOne({ email });
|
|
17
|
+
if (old) {
|
|
18
|
+
throw new auth_error_1.AuthError({
|
|
19
|
+
errorCode: error_code_1.USER_DUPLICATED
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
const salt = user_1.User.generateSalt();
|
|
23
|
+
var user = await repository.save(Object.assign(Object.assign({ userType: 'user' }, attrs), { salt, password: user_1.User.encode(password, salt), passwordUpdatedAt: new Date(), domains: domain ? [domain] : [] }));
|
|
24
|
+
var succeed = false;
|
|
25
|
+
if (withEmailVerification) {
|
|
26
|
+
succeed = await (0, verification_1.sendVerificationEmail)({
|
|
27
|
+
context,
|
|
28
|
+
user
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
try {
|
|
32
|
+
return {
|
|
33
|
+
token: await (0, signin_1.signin)({
|
|
34
|
+
email,
|
|
35
|
+
password
|
|
36
|
+
}, { domain })
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
catch (e) {
|
|
40
|
+
return { token: null };
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
exports.signup = signup;
|
|
44
|
+
class UsernameValidationError extends Error {
|
|
45
|
+
constructor(message) {
|
|
46
|
+
super(message);
|
|
47
|
+
this.name = 'UsernameValidationError';
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
exports.UsernameValidationError = UsernameValidationError;
|
|
51
|
+
class UsernameValidator {
|
|
52
|
+
static validate(username) {
|
|
53
|
+
// Check for empty or whitespace
|
|
54
|
+
if (!username || username.trim() === '') {
|
|
55
|
+
throw new UsernameValidationError('Invalid username.');
|
|
56
|
+
}
|
|
57
|
+
// Check length
|
|
58
|
+
if (username.length < this.MIN_LENGTH || username.length > this.MAX_LENGTH) {
|
|
59
|
+
throw new UsernameValidationError('Invalid username.');
|
|
60
|
+
}
|
|
61
|
+
// Check character set
|
|
62
|
+
if (!this.USERNAME_REGEX.test(username)) {
|
|
63
|
+
throw new UsernameValidationError('Invalid username.');
|
|
64
|
+
}
|
|
65
|
+
// Check word length
|
|
66
|
+
if (username.split('-').some(word => word.length > this.MAX_WORD_LENGTH)) {
|
|
67
|
+
throw new UsernameValidationError('Invalid username.');
|
|
68
|
+
}
|
|
69
|
+
// Check reserved words
|
|
70
|
+
if (this.RESERVED_USERNAMES.includes(username.toLowerCase())) {
|
|
71
|
+
throw new UsernameValidationError('Invalid username.');
|
|
72
|
+
}
|
|
73
|
+
// Check bad words
|
|
74
|
+
if (this.BAD_WORDS.some(word => username.toLowerCase().includes(word))) {
|
|
75
|
+
throw new UsernameValidationError('Invalid username.');
|
|
76
|
+
}
|
|
77
|
+
// Check repetitive patterns
|
|
78
|
+
if (this.REPETITIVE_PATTERN.test(username)) {
|
|
79
|
+
throw new UsernameValidationError('Invalid username.');
|
|
80
|
+
}
|
|
81
|
+
// Check numeric sequences
|
|
82
|
+
if (this.NUMERIC_SEQUENCE.test(username)) {
|
|
83
|
+
throw new UsernameValidationError('Invalid username.');
|
|
84
|
+
}
|
|
85
|
+
// Check for links
|
|
86
|
+
const urlPattern = /https?:\/\/[^\s]+/;
|
|
87
|
+
if (urlPattern.test(username)) {
|
|
88
|
+
throw new UsernameValidationError('Invalid username.');
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
exports.UsernameValidator = UsernameValidator;
|
|
93
|
+
UsernameValidator.MIN_LENGTH = 3;
|
|
94
|
+
UsernameValidator.MAX_LENGTH = 50;
|
|
95
|
+
UsernameValidator.MAX_WORD_LENGTH = 20;
|
|
96
|
+
UsernameValidator.USERNAME_REGEX = /^[a-zA-Z0-9_-]+$/;
|
|
97
|
+
UsernameValidator.REPETITIVE_PATTERN = /(\w)\1{3,}/;
|
|
98
|
+
UsernameValidator.NUMERIC_SEQUENCE = /[0-9]{6,}/;
|
|
99
|
+
UsernameValidator.RESERVED_USERNAMES = [
|
|
100
|
+
'root', 'admin', 'system', 'user', 'administrator', 'superuser'
|
|
101
|
+
];
|
|
102
|
+
UsernameValidator.BAD_WORDS = [
|
|
103
|
+
'spam', 'test', 'sex', 'free', '123', 'fuck', 'shit', 'winning', 'bet', 'game'
|
|
104
|
+
];
|
|
105
|
+
//# sourceMappingURL=signup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signup.js","sourceRoot":"","sources":["../../server/controllers/signup.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.unlockUser = exports.sendUnlockUserEmail = void 0;
|
|
4
|
+
const email_base_1 = require("@things-factory/email-base");
|
|
5
|
+
const typeorm_1 = require("typeorm");
|
|
6
|
+
const url_1 = require("url");
|
|
7
|
+
const user_1 = require("../service/user/user");
|
|
8
|
+
const verification_token_1 = require("../service/verification-token/verification-token");
|
|
9
|
+
const account_unlock_email_1 = require("../templates/account-unlock-email");
|
|
10
|
+
const make_verification_token_1 = require("./utils/make-verification-token");
|
|
11
|
+
const save_verification_token_1 = require("./utils/save-verification-token");
|
|
12
|
+
async function sendUnlockUserEmail({ user, context }) {
|
|
13
|
+
try {
|
|
14
|
+
var token = (0, make_verification_token_1.makeVerificationToken)();
|
|
15
|
+
var verifaction = await (0, save_verification_token_1.saveVerificationToken)(user.id, token, verification_token_1.VerificationTokenType.UNLOCK);
|
|
16
|
+
if (verifaction) {
|
|
17
|
+
var serviceUrl = new url_1.URL(`/auth/unlock-user?token=${token}`, context.header.referer);
|
|
18
|
+
await (0, email_base_1.sendEmail)({
|
|
19
|
+
receiver: user.email,
|
|
20
|
+
subject: 'Your account is locked',
|
|
21
|
+
content: (0, account_unlock_email_1.getUnlockUserEmailForm)({
|
|
22
|
+
name: user.name,
|
|
23
|
+
resetUrl: serviceUrl
|
|
24
|
+
})
|
|
25
|
+
});
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
catch (e) {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
exports.sendUnlockUserEmail = sendUnlockUserEmail;
|
|
34
|
+
async function unlockUser(token, password) {
|
|
35
|
+
var { userId } = await (0, typeorm_1.getRepository)(verification_token_1.VerificationToken).findOne({
|
|
36
|
+
where: {
|
|
37
|
+
token,
|
|
38
|
+
type: verification_token_1.VerificationTokenType.UNLOCK
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
if (!userId)
|
|
42
|
+
return false;
|
|
43
|
+
var userInfo = await (0, typeorm_1.getRepository)(user_1.User).findOne(userId);
|
|
44
|
+
if (!userInfo)
|
|
45
|
+
return false;
|
|
46
|
+
if (userInfo.status != user_1.UserStatus.LOCKED)
|
|
47
|
+
return false;
|
|
48
|
+
userInfo.status = user_1.UserStatus.ACTIVATED;
|
|
49
|
+
userInfo.password = user_1.User.encode(password, userInfo.salt);
|
|
50
|
+
userInfo.failCount = 0;
|
|
51
|
+
await (0, typeorm_1.getRepository)(user_1.User).save(userInfo);
|
|
52
|
+
await (0, typeorm_1.getRepository)(verification_token_1.VerificationToken).delete({
|
|
53
|
+
userId,
|
|
54
|
+
token,
|
|
55
|
+
type: verification_token_1.VerificationTokenType.UNLOCK
|
|
56
|
+
});
|
|
57
|
+
return true;
|
|
58
|
+
}
|
|
59
|
+
exports.unlockUser = unlockUser;
|
|
60
|
+
//# sourceMappingURL=unlock-user.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unlock-user.js","sourceRoot":"","sources":["../../server/controllers/unlock-user.ts"],"names":[],"mappings":";;;AAAA,2DAAsD;AACtD,qCAAuC;AACvC,6BAAyB;AACzB,+CAAuD;AACvD,yFAA2G;AAC3G,4EAA0E;AAC1E,6EAAuE;AACvE,6EAAuE;AAEhE,KAAK,UAAU,mBAAmB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE;IACzD,IAAI;QACF,IAAI,KAAK,GAAG,IAAA,+CAAqB,GAAE,CAAA;QACnC,IAAI,WAAW,GAAG,MAAM,IAAA,+CAAqB,EAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,0CAAqB,CAAC,MAAM,CAAC,CAAA;QAE3F,IAAI,WAAW,EAAE;YACf,IAAI,UAAU,GAAG,IAAI,SAAG,CAAC,2BAA2B,KAAK,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;YACpF,MAAM,IAAA,sBAAS,EAAC;gBACd,QAAQ,EAAE,IAAI,CAAC,KAAK;gBACpB,OAAO,EAAE,wBAAwB;gBACjC,OAAO,EAAE,IAAA,6CAAsB,EAAC;oBAC9B,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,QAAQ,EAAE,UAAU;iBACrB,CAAC;aACH,CAAC,CAAA;YAEF,OAAO,IAAI,CAAA;SACZ;KACF;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,KAAK,CAAA;KACb;AACH,CAAC;AArBD,kDAqBC;AAEM,KAAK,UAAU,UAAU,CAAC,KAAK,EAAE,QAAQ;IAC9C,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,IAAA,uBAAa,EAAC,sCAAiB,CAAC,CAAC,OAAO,CAAC;QAC9D,KAAK,EAAE;YACL,KAAK;YACL,IAAI,EAAE,0CAAqB,CAAC,MAAM;SACnC;KACF,CAAC,CAAA;IAEF,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAA;IAEzB,IAAI,QAAQ,GAAG,MAAM,IAAA,uBAAa,EAAC,WAAI,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IACxD,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAA;IAC3B,IAAI,QAAQ,CAAC,MAAM,IAAI,iBAAU,CAAC,MAAM;QAAE,OAAO,KAAK,CAAA;IAEtD,QAAQ,CAAC,MAAM,GAAG,iBAAU,CAAC,SAAS,CAAA;IACtC,QAAQ,CAAC,QAAQ,GAAG,WAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAA;IACxD,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAA;IAEtB,MAAM,IAAA,uBAAa,EAAC,WAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACxC,MAAM,IAAA,uBAAa,EAAC,sCAAiB,CAAC,CAAC,MAAM,CAAC;QAC5C,MAAM;QACN,KAAK;QACL,IAAI,EAAE,0CAAqB,CAAC,MAAM;KACnC,CAAC,CAAA;IAEF,OAAO,IAAI,CAAA;AACb,CAAC;AA1BD,gCA0BC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.makeInvitationToken = void 0;
|
|
7
|
+
const crypto_1 = __importDefault(require("crypto"));
|
|
8
|
+
function makeInvitationToken() {
|
|
9
|
+
return crypto_1.default.randomBytes(16).toString('hex');
|
|
10
|
+
}
|
|
11
|
+
exports.makeInvitationToken = makeInvitationToken;
|
|
12
|
+
//# sourceMappingURL=make-invitation-token.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"make-invitation-token.js","sourceRoot":"","sources":["../../../server/controllers/utils/make-invitation-token.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA2B;AAE3B,SAAgB,mBAAmB;IACjC,OAAO,gBAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AAC/C,CAAC;AAFD,kDAEC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.makeVerificationToken = void 0;
|
|
7
|
+
const crypto_1 = __importDefault(require("crypto"));
|
|
8
|
+
function makeVerificationToken() {
|
|
9
|
+
return crypto_1.default.randomBytes(16).toString('hex');
|
|
10
|
+
}
|
|
11
|
+
exports.makeVerificationToken = makeVerificationToken;
|
|
12
|
+
//# sourceMappingURL=make-verification-token.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"make-verification-token.js","sourceRoot":"","sources":["../../../server/controllers/utils/make-verification-token.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA2B;AAC3B,SAAgB,qBAAqB;IACnC,OAAO,gBAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AAC/C,CAAC;AAFD,sDAEC"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.validatePasswordByRule = exports.passwordHelp = exports.passwordPattern = exports.generatePasswordPatternHelp = void 0;
|
|
7
|
+
const i18next_1 = __importDefault(require("i18next"));
|
|
8
|
+
const env_1 = require("@things-factory/env");
|
|
9
|
+
const error_code_1 = require("../../constants/error-code");
|
|
10
|
+
const auth_error_1 = require("../../errors/auth-error");
|
|
11
|
+
const debug = require('debug')('things-factory:auth-base:password-rule');
|
|
12
|
+
const passwordConfig = env_1.config.get('password') || {
|
|
13
|
+
lowerCase: true,
|
|
14
|
+
upperCase: true,
|
|
15
|
+
digit: true,
|
|
16
|
+
specialCharacter: true,
|
|
17
|
+
allowRepeat: false,
|
|
18
|
+
useTightPattern: true,
|
|
19
|
+
useLoosePattern: false,
|
|
20
|
+
tightCharacterLength: 8,
|
|
21
|
+
looseCharacterLength: 15
|
|
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
|
+
}
|
|
48
|
+
function generatePasswordPatternHelp({ lowerCase = true, upperCase = true, digit = true, specialCharacter = true, allowRepeat = false, useTightPattern = true, useLoosePattern = false, tightCharacterLength = 8, looseCharacterLength = 15 } = {}, lng) {
|
|
49
|
+
lng = lng || 'en-US';
|
|
50
|
+
var descriptions = [];
|
|
51
|
+
const t = i18next_1.default.getFixedT(lng, 'translations');
|
|
52
|
+
if (useLoosePattern) {
|
|
53
|
+
descriptions.push(`more than ${looseCharacterLength} characters`);
|
|
54
|
+
}
|
|
55
|
+
if (useTightPattern) {
|
|
56
|
+
!useLoosePattern &&
|
|
57
|
+
descriptions.push(t('text.pattern_minimum_charaters', {
|
|
58
|
+
length: tightCharacterLength
|
|
59
|
+
}));
|
|
60
|
+
lowerCase && descriptions.push(t('text.pattern_atleast_1_lowercase'));
|
|
61
|
+
upperCase && descriptions.push(t('text.pattern_atleast_1_uppercase'));
|
|
62
|
+
digit && descriptions.push(t('text.pattern_atleast_1_digit'));
|
|
63
|
+
specialCharacter && descriptions.push(t('text.pattern_atleast_1_special'));
|
|
64
|
+
!allowRepeat && descriptions.push(t('text.pattern_not_allowed'));
|
|
65
|
+
}
|
|
66
|
+
return descriptions.join(', ');
|
|
67
|
+
}
|
|
68
|
+
exports.generatePasswordPatternHelp = generatePasswordPatternHelp;
|
|
69
|
+
exports.passwordPattern = generatePasswordPatternRegExp(passwordConfig);
|
|
70
|
+
function passwordHelp(lng) {
|
|
71
|
+
return generatePasswordPatternHelp(passwordConfig, lng);
|
|
72
|
+
}
|
|
73
|
+
exports.passwordHelp = passwordHelp;
|
|
74
|
+
function validatePasswordByRule(password, lng) {
|
|
75
|
+
if (!exports.passwordPattern) {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
if (exports.passwordPattern.test(password)) {
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
const rule = generatePasswordPatternHelp(passwordConfig, lng);
|
|
82
|
+
throw new auth_error_1.AuthError({
|
|
83
|
+
errorCode: error_code_1.PASSWORD_PATTERN_NOT_MATCHED,
|
|
84
|
+
detail: {
|
|
85
|
+
rule
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
exports.validatePasswordByRule = validatePasswordByRule;
|
|
90
|
+
//# sourceMappingURL=password-rule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"password-rule.js","sourceRoot":"","sources":["../../../server/controllers/utils/password-rule.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.saveInvitationToken = void 0;
|
|
4
|
+
const typeorm_1 = require("typeorm");
|
|
5
|
+
const invitation_1 = require("../../service/invitation/invitation");
|
|
6
|
+
async function saveInvitationToken(id, token) {
|
|
7
|
+
return await (0, typeorm_1.getRepository)(invitation_1.Invitation).save({
|
|
8
|
+
id,
|
|
9
|
+
token
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
exports.saveInvitationToken = saveInvitationToken;
|
|
13
|
+
//# sourceMappingURL=save-invitation-token.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"save-invitation-token.js","sourceRoot":"","sources":["../../../server/controllers/utils/save-invitation-token.ts"],"names":[],"mappings":";;;AAAA,qCAAuC;AACvC,oEAAgE;AAEzD,KAAK,UAAU,mBAAmB,CAAC,EAAE,EAAE,KAAK;IACjD,OAAO,MAAM,IAAA,uBAAa,EAAC,uBAAU,CAAC,CAAC,IAAI,CAAC;QAC1C,EAAE;QACF,KAAK;KACN,CAAC,CAAA;AACJ,CAAC;AALD,kDAKC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.saveVerificationToken = void 0;
|
|
4
|
+
const typeorm_1 = require("typeorm");
|
|
5
|
+
const verification_token_1 = require("../../service/verification-token/verification-token");
|
|
6
|
+
async function saveVerificationToken(id, token, type = verification_token_1.VerificationTokenType.ACTIVATION) {
|
|
7
|
+
const verificationRepo = (0, typeorm_1.getRepository)(verification_token_1.VerificationToken);
|
|
8
|
+
return await verificationRepo.save({
|
|
9
|
+
userId: id,
|
|
10
|
+
token,
|
|
11
|
+
type
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
exports.saveVerificationToken = saveVerificationToken;
|
|
15
|
+
//# sourceMappingURL=save-verification-token.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"save-verification-token.js","sourceRoot":"","sources":["../../../server/controllers/utils/save-verification-token.ts"],"names":[],"mappings":";;;AAAA,qCAAuC;AACvC,4FAA8G;AAEvG,KAAK,UAAU,qBAAqB,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,GAAG,0CAAqB,CAAC,UAAU;IAC5F,MAAM,gBAAgB,GAAG,IAAA,uBAAa,EAAC,sCAAiB,CAAC,CAAA;IACzD,OAAO,MAAM,gBAAgB,CAAC,IAAI,CAAC;QACjC,MAAM,EAAE,EAAE;QACV,KAAK;QACL,IAAI;KACL,CAAC,CAAA;AACJ,CAAC;AAPD,sDAOC"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resendVerificationEmail = exports.verify = exports.sendVerificationEmail = void 0;
|
|
4
|
+
const email_base_1 = require("@things-factory/email-base");
|
|
5
|
+
const typeorm_1 = require("typeorm");
|
|
6
|
+
const url_1 = require("url");
|
|
7
|
+
const user_1 = require("../service/user/user");
|
|
8
|
+
const verification_token_1 = require("../service/verification-token/verification-token");
|
|
9
|
+
const verification_email_1 = require("../templates/verification-email");
|
|
10
|
+
const make_verification_token_1 = require("./utils/make-verification-token");
|
|
11
|
+
const save_verification_token_1 = require("./utils/save-verification-token");
|
|
12
|
+
const auth_error_1 = require("../errors/auth-error");
|
|
13
|
+
async function sendVerificationEmail({ user, context }) {
|
|
14
|
+
try {
|
|
15
|
+
var token = (0, make_verification_token_1.makeVerificationToken)();
|
|
16
|
+
var verifaction = await (0, save_verification_token_1.saveVerificationToken)(user.id, token);
|
|
17
|
+
if (verifaction) {
|
|
18
|
+
var serviceUrl = new url_1.URL(`/auth/verify/${token}`, context.header.referer);
|
|
19
|
+
await (0, email_base_1.sendEmail)({
|
|
20
|
+
receiver: user.email,
|
|
21
|
+
subject: 'Verify your email',
|
|
22
|
+
content: (0, verification_email_1.getVerificationEmailForm)({
|
|
23
|
+
name: user.name,
|
|
24
|
+
verifyUrl: serviceUrl
|
|
25
|
+
})
|
|
26
|
+
});
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
catch (e) {
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
exports.sendVerificationEmail = sendVerificationEmail;
|
|
35
|
+
async function verify(token) {
|
|
36
|
+
var verification = await (0, typeorm_1.getRepository)(verification_token_1.VerificationToken).findOne({
|
|
37
|
+
where: {
|
|
38
|
+
token
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
if (!verification) {
|
|
42
|
+
throw new auth_error_1.AuthError({
|
|
43
|
+
errorCode: auth_error_1.AuthError.ERROR_CODES.VERIFICATION_ERROR
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
var userInfo = await (0, typeorm_1.getRepository)(user_1.User).findOne(verification.userId);
|
|
47
|
+
if (!userInfo) {
|
|
48
|
+
throw new auth_error_1.AuthError({
|
|
49
|
+
errorCode: auth_error_1.AuthError.ERROR_CODES.VERIFICATION_ERROR
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
if (!(userInfo.status == user_1.UserStatus.INACTIVE || userInfo.status == user_1.UserStatus.LOCKED)) {
|
|
53
|
+
throw new auth_error_1.AuthError({
|
|
54
|
+
errorCode: auth_error_1.AuthError.ERROR_CODES.VERIFICATION_ERROR
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
userInfo.status = user_1.UserStatus.ACTIVATED;
|
|
58
|
+
await (0, typeorm_1.getRepository)(user_1.User).save(userInfo);
|
|
59
|
+
await (0, typeorm_1.getRepository)(verification_token_1.VerificationToken).delete(verification);
|
|
60
|
+
}
|
|
61
|
+
exports.verify = verify;
|
|
62
|
+
async function resendVerificationEmail(email, context) {
|
|
63
|
+
var user = await (0, typeorm_1.getRepository)(user_1.User).findOne({
|
|
64
|
+
where: {
|
|
65
|
+
email
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
if (!user)
|
|
69
|
+
return false;
|
|
70
|
+
if (user.status == user_1.UserStatus.ACTIVATED)
|
|
71
|
+
return false;
|
|
72
|
+
return await sendVerificationEmail({
|
|
73
|
+
user,
|
|
74
|
+
context
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
exports.resendVerificationEmail = resendVerificationEmail;
|
|
78
|
+
//# sourceMappingURL=verification.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verification.js","sourceRoot":"","sources":["../../server/controllers/verification.ts"],"names":[],"mappings":";;;AAAA,2DAAsD;AACtD,qCAAuC;AACvC,6BAAyB;AACzB,+CAAuD;AACvD,yFAAoF;AACpF,wEAA0E;AAC1E,6EAAuE;AACvE,6EAAuE;AACvE,qDAAgD;AAEzC,KAAK,UAAU,qBAAqB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE;IAC3D,IAAI;QACF,IAAI,KAAK,GAAG,IAAA,+CAAqB,GAAE,CAAA;QACnC,IAAI,WAAW,GAAG,MAAM,IAAA,+CAAqB,EAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;QAE7D,IAAI,WAAW,EAAE;YACf,IAAI,UAAU,GAAG,IAAI,SAAG,CAAC,gBAAgB,KAAK,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;YACzE,MAAM,IAAA,sBAAS,EAAC;gBACd,QAAQ,EAAE,IAAI,CAAC,KAAK;gBACpB,OAAO,EAAE,mBAAmB;gBAC5B,OAAO,EAAE,IAAA,6CAAwB,EAAC;oBAChC,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,SAAS,EAAE,UAAU;iBACtB,CAAC;aACH,CAAC,CAAA;YAEF,OAAO,IAAI,CAAA;SACZ;KACF;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,KAAK,CAAA;KACb;AACH,CAAC;AArBD,sDAqBC;AAEM,KAAK,UAAU,MAAM,CAAC,KAAK;IAChC,IAAI,YAAY,GAAG,MAAM,IAAA,uBAAa,EAAC,sCAAiB,CAAC,CAAC,OAAO,CAAC;QAChE,KAAK,EAAE;YACL,KAAK;SACN;KACF,CAAC,CAAA;IAEF,IAAI,CAAC,YAAY,EAAE;QACjB,MAAM,IAAI,sBAAS,CAAC;YAClB,SAAS,EAAE,sBAAS,CAAC,WAAW,CAAC,kBAAkB;SACpD,CAAC,CAAA;KACH;IAED,IAAI,QAAQ,GAAG,MAAM,IAAA,uBAAa,EAAC,WAAI,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;IACrE,IAAI,CAAC,QAAQ,EAAE;QACb,MAAM,IAAI,sBAAS,CAAC;YAClB,SAAS,EAAE,sBAAS,CAAC,WAAW,CAAC,kBAAkB;SACpD,CAAC,CAAA;KACH;IAED,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,iBAAU,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,IAAI,iBAAU,CAAC,MAAM,CAAC,EAAE;QACrF,MAAM,IAAI,sBAAS,CAAC;YAClB,SAAS,EAAE,sBAAS,CAAC,WAAW,CAAC,kBAAkB;SACpD,CAAC,CAAA;KACH;IAED,QAAQ,CAAC,MAAM,GAAG,iBAAU,CAAC,SAAS,CAAA;IACtC,MAAM,IAAA,uBAAa,EAAC,WAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACxC,MAAM,IAAA,uBAAa,EAAC,sCAAiB,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;AAC7D,CAAC;AA7BD,wBA6BC;AAEM,KAAK,UAAU,uBAAuB,CAAC,KAAK,EAAE,OAAO;IAC1D,IAAI,IAAI,GAAG,MAAM,IAAA,uBAAa,EAAC,WAAI,CAAC,CAAC,OAAO,CAAC;QAC3C,KAAK,EAAE;YACL,KAAK;SACN;KACF,CAAC,CAAA;IAEF,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAA;IACvB,IAAI,IAAI,CAAC,MAAM,IAAI,iBAAU,CAAC,SAAS;QAAE,OAAO,KAAK,CAAA;IAErD,OAAO,MAAM,qBAAqB,CAAC;QACjC,IAAI;QACJ,OAAO;KACR,CAAC,CAAA;AACJ,CAAC;AAdD,0DAcC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.AuthError = void 0;
|
|
27
|
+
const ERROR_CODES = __importStar(require("../constants/error-code"));
|
|
28
|
+
class AuthError extends Error {
|
|
29
|
+
static get ERROR_CODES() {
|
|
30
|
+
return Object.assign({}, ERROR_CODES);
|
|
31
|
+
}
|
|
32
|
+
constructor({ errorCode, detail }) {
|
|
33
|
+
super(errorCode);
|
|
34
|
+
this.name = 'auth-error';
|
|
35
|
+
this.errorCode = errorCode;
|
|
36
|
+
this.detail = detail;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
exports.AuthError = AuthError;
|
|
40
|
+
//# sourceMappingURL=auth-error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-error.js","sourceRoot":"","sources":["../../server/errors/auth-error.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qEAAsD;AAMtD,MAAa,SAAU,SAAQ,KAAK;IAClC,MAAM,KAAK,WAAW;QACpB,yBACK,WAAW,EACf;IACH,CAAC;IAGD,YAAY,EAAE,SAAS,EAAE,MAAM,EAAqB;QAClD,KAAK,CAAC,SAAS,CAAC,CAAA;QAChB,IAAI,CAAC,IAAI,GAAG,YAAY,CAAA;QACxB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;CACF;AAdD,8BAcC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./auth-error"), exports);
|
|
18
|
+
__exportStar(require("./user-domain-not-match-error"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/errors/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA4B;AAC5B,gEAA6C"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DomainError = void 0;
|
|
4
|
+
const error_code_1 = require("../constants/error-code");
|
|
5
|
+
const auth_error_1 = require("./auth-error");
|
|
6
|
+
class DomainError extends auth_error_1.AuthError {
|
|
7
|
+
static get ERROR_CODES() {
|
|
8
|
+
return {
|
|
9
|
+
UNAVAILABLE_DOMAIN: error_code_1.UNAVAILABLE_DOMAIN,
|
|
10
|
+
NO_AVAILABLE_DOMAIN: error_code_1.NO_AVAILABLE_DOMAIN,
|
|
11
|
+
NO_SELECTED_DOMAIN: error_code_1.NO_SELECTED_DOMAIN,
|
|
12
|
+
REDIRECT_TO_DEFAULT_DOMAIN: error_code_1.REDIRECT_TO_DEFAULT_DOMAIN
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
constructor({ errorCode = error_code_1.UNAVAILABLE_DOMAIN, domains }) {
|
|
16
|
+
super({
|
|
17
|
+
errorCode
|
|
18
|
+
});
|
|
19
|
+
this.name = 'user-domain-not-match';
|
|
20
|
+
this.domains = domains;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
exports.DomainError = DomainError;
|
|
24
|
+
//# sourceMappingURL=user-domain-not-match-error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-domain-not-match-error.js","sourceRoot":"","sources":["../../server/errors/user-domain-not-match-error.ts"],"names":[],"mappings":";;;AAAA,wDAKgC;AAChC,6CAAwC;AAExC,MAAa,WAAY,SAAQ,sBAAS;IACxC,MAAM,KAAK,WAAW;QACpB,OAAO;YACL,kBAAkB,EAAlB,+BAAkB;YAClB,mBAAmB,EAAnB,gCAAmB;YACnB,kBAAkB,EAAlB,+BAAkB;YAClB,0BAA0B,EAA1B,uCAA0B;SAC3B,CAAA;IACH,CAAC;IAED,YAAY,EAAE,SAAS,GAAG,+BAAkB,EAAE,OAAO,EAAE;QACrD,KAAK,CAAC;YACJ,SAAS;SACV,CAAC,CAAA;QACF,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAA;QACnC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;CACF;AAjBD,kCAiBC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./service"), exports);
|
|
18
|
+
__exportStar(require("./migrations"), exports);
|
|
19
|
+
__exportStar(require("./middlewares"), exports);
|
|
20
|
+
__exportStar(require("./routes"), exports);
|
|
21
|
+
__exportStar(require("./router"), exports);
|
|
22
|
+
__exportStar(require("./utils/get-domain-users"), exports);
|
|
23
|
+
__exportStar(require("./utils/get-user-domains"), exports);
|
|
24
|
+
__exportStar(require("./utils/get-secret"), exports);
|
|
25
|
+
__exportStar(require("./utils/check-user-belongs-domain"), exports);
|
|
26
|
+
__exportStar(require("./utils/access-token-cookie"), exports);
|
|
27
|
+
__exportStar(require("./errors"), exports);
|
|
28
|
+
require("./routes");
|
|
29
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../server/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAAyB;AACzB,+CAA4B;AAE5B,gDAA6B;AAC7B,2CAAwB;AACxB,2CAAwB;AAExB,2DAAwC;AACxC,2DAAwC;AACxC,qDAAkC;AAClC,oEAAiD;AACjD,8DAA2C;AAC3C,2CAAwB;AAExB,oBAAiB"}
|