@warlock.js/auth 1.0.0
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/cjs/commands/index.d.ts +2 -0
- package/cjs/commands/index.d.ts.map +1 -0
- package/cjs/commands/index.js +3 -0
- package/cjs/commands/index.js.map +1 -0
- package/cjs/contracts/auth-contract.d.ts +23 -0
- package/cjs/contracts/auth-contract.d.ts.map +1 -0
- package/cjs/contracts/index.d.ts +3 -0
- package/cjs/contracts/index.d.ts.map +1 -0
- package/cjs/contracts/types.d.ts +23 -0
- package/cjs/contracts/types.d.ts.map +1 -0
- package/cjs/controllers/guest-login.d.ts +3 -0
- package/cjs/controllers/guest-login.d.ts.map +1 -0
- package/cjs/controllers/guest-login.js +5 -0
- package/cjs/controllers/guest-login.js.map +1 -0
- package/cjs/controllers/index.d.ts +2 -0
- package/cjs/controllers/index.d.ts.map +1 -0
- package/cjs/index.d.ts +7 -0
- package/cjs/index.d.ts.map +1 -0
- package/cjs/index.js +1 -0
- package/cjs/index.js.map +1 -0
- package/cjs/middleware/auth-middleware.d.ts +2 -0
- package/cjs/middleware/auth-middleware.d.ts.map +1 -0
- package/cjs/middleware/auth-middleware.js +79 -0
- package/cjs/middleware/auth-middleware.js.map +1 -0
- package/cjs/middleware/index.d.ts +2 -0
- package/cjs/middleware/index.d.ts.map +1 -0
- package/cjs/models/access-token/access-token.d.ts +9 -0
- package/cjs/models/access-token/access-token.d.ts.map +1 -0
- package/cjs/models/access-token/access-token.js +7 -0
- package/cjs/models/access-token/access-token.js.map +1 -0
- package/cjs/models/access-token/index.d.ts +3 -0
- package/cjs/models/access-token/index.d.ts.map +1 -0
- package/cjs/models/access-token/migration.d.ts +6 -0
- package/cjs/models/access-token/migration.d.ts.map +1 -0
- package/cjs/models/access-token/migration.js +7 -0
- package/cjs/models/access-token/migration.js.map +1 -0
- package/cjs/models/auth.d.ts +25 -0
- package/cjs/models/auth.d.ts.map +1 -0
- package/cjs/models/auth.js +57 -0
- package/cjs/models/auth.js.map +1 -0
- package/cjs/models/casts/cast-password.d.ts +7 -0
- package/cjs/models/casts/cast-password.d.ts.map +1 -0
- package/cjs/models/casts/cast-password.js +9 -0
- package/cjs/models/casts/cast-password.js.map +1 -0
- package/cjs/models/casts/index.d.ts +2 -0
- package/cjs/models/casts/index.d.ts.map +1 -0
- package/cjs/models/guest/guest.d.ts +26 -0
- package/cjs/models/guest/guest.d.ts.map +1 -0
- package/cjs/models/guest/guest.js +39 -0
- package/cjs/models/guest/guest.js.map +1 -0
- package/cjs/models/guest/index.d.ts +3 -0
- package/cjs/models/guest/index.d.ts.map +1 -0
- package/cjs/models/guest/migration.d.ts +7 -0
- package/cjs/models/guest/migration.d.ts.map +1 -0
- package/cjs/models/guest/migration.js +8 -0
- package/cjs/models/guest/migration.js.map +1 -0
- package/cjs/models/index.d.ts +5 -0
- package/cjs/models/index.d.ts.map +1 -0
- package/cjs/services/generate-guest-token.d.ts +2 -0
- package/cjs/services/generate-guest-token.d.ts.map +1 -0
- package/cjs/services/generate-guest-token.js +11 -0
- package/cjs/services/generate-guest-token.js.map +1 -0
- package/cjs/services/generate-jwt-secret.d.ts +2 -0
- package/cjs/services/generate-jwt-secret.d.ts.map +1 -0
- package/cjs/services/generate-jwt-secret.js +26 -0
- package/cjs/services/generate-jwt-secret.js.map +1 -0
- package/cjs/services/index.d.ts +4 -0
- package/cjs/services/index.d.ts.map +1 -0
- package/cjs/services/jwt.d.ts +23 -0
- package/cjs/services/jwt.d.ts.map +1 -0
- package/cjs/services/jwt.js +39 -0
- package/cjs/services/jwt.js.map +1 -0
- package/esm/commands/index.d.ts +2 -0
- package/esm/commands/index.d.ts.map +1 -0
- package/esm/commands/index.js +3 -0
- package/esm/commands/index.js.map +1 -0
- package/esm/contracts/auth-contract.d.ts +23 -0
- package/esm/contracts/auth-contract.d.ts.map +1 -0
- package/esm/contracts/index.d.ts +3 -0
- package/esm/contracts/index.d.ts.map +1 -0
- package/esm/contracts/types.d.ts +23 -0
- package/esm/contracts/types.d.ts.map +1 -0
- package/esm/controllers/guest-login.d.ts +3 -0
- package/esm/controllers/guest-login.d.ts.map +1 -0
- package/esm/controllers/guest-login.js +5 -0
- package/esm/controllers/guest-login.js.map +1 -0
- package/esm/controllers/index.d.ts +2 -0
- package/esm/controllers/index.d.ts.map +1 -0
- package/esm/index.d.ts +7 -0
- package/esm/index.d.ts.map +1 -0
- package/esm/index.js +1 -0
- package/esm/index.js.map +1 -0
- package/esm/middleware/auth-middleware.d.ts +2 -0
- package/esm/middleware/auth-middleware.d.ts.map +1 -0
- package/esm/middleware/auth-middleware.js +79 -0
- package/esm/middleware/auth-middleware.js.map +1 -0
- package/esm/middleware/index.d.ts +2 -0
- package/esm/middleware/index.d.ts.map +1 -0
- package/esm/models/access-token/access-token.d.ts +9 -0
- package/esm/models/access-token/access-token.d.ts.map +1 -0
- package/esm/models/access-token/access-token.js +7 -0
- package/esm/models/access-token/access-token.js.map +1 -0
- package/esm/models/access-token/index.d.ts +3 -0
- package/esm/models/access-token/index.d.ts.map +1 -0
- package/esm/models/access-token/migration.d.ts +6 -0
- package/esm/models/access-token/migration.d.ts.map +1 -0
- package/esm/models/access-token/migration.js +7 -0
- package/esm/models/access-token/migration.js.map +1 -0
- package/esm/models/auth.d.ts +25 -0
- package/esm/models/auth.d.ts.map +1 -0
- package/esm/models/auth.js +57 -0
- package/esm/models/auth.js.map +1 -0
- package/esm/models/casts/cast-password.d.ts +7 -0
- package/esm/models/casts/cast-password.d.ts.map +1 -0
- package/esm/models/casts/cast-password.js +9 -0
- package/esm/models/casts/cast-password.js.map +1 -0
- package/esm/models/casts/index.d.ts +2 -0
- package/esm/models/casts/index.d.ts.map +1 -0
- package/esm/models/guest/guest.d.ts +26 -0
- package/esm/models/guest/guest.d.ts.map +1 -0
- package/esm/models/guest/guest.js +39 -0
- package/esm/models/guest/guest.js.map +1 -0
- package/esm/models/guest/index.d.ts +3 -0
- package/esm/models/guest/index.d.ts.map +1 -0
- package/esm/models/guest/migration.d.ts +7 -0
- package/esm/models/guest/migration.d.ts.map +1 -0
- package/esm/models/guest/migration.js +8 -0
- package/esm/models/guest/migration.js.map +1 -0
- package/esm/models/index.d.ts +5 -0
- package/esm/models/index.d.ts.map +1 -0
- package/esm/services/generate-guest-token.d.ts +2 -0
- package/esm/services/generate-guest-token.d.ts.map +1 -0
- package/esm/services/generate-guest-token.js +11 -0
- package/esm/services/generate-guest-token.js.map +1 -0
- package/esm/services/generate-jwt-secret.d.ts +2 -0
- package/esm/services/generate-jwt-secret.d.ts.map +1 -0
- package/esm/services/generate-jwt-secret.js +26 -0
- package/esm/services/generate-jwt-secret.js.map +1 -0
- package/esm/services/index.d.ts +4 -0
- package/esm/services/index.d.ts.map +1 -0
- package/esm/services/jwt.d.ts +23 -0
- package/esm/services/jwt.d.ts.map +1 -0
- package/esm/services/jwt.js +39 -0
- package/esm/services/jwt.js.map +1 -0
- package/package.json +33 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAGA,wBAAgB,iCAAiC,QAEhD"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
'use strict';var core=require('@warlock.js/core'),generateJwtSecret=require('../services/generate-jwt-secret.js');function registerJWTSecretGeneratorCommand() {
|
|
2
|
+
return core.command("jwt.generate").action(generateJwtSecret.generateJWTSecret);
|
|
3
|
+
}exports.registerJWTSecretGeneratorCommand=registerJWTSecretGeneratorCommand;//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/commands/index.ts"],"sourcesContent":[null],"names":["command","generateJWTSecret"],"mappings":"2HAGgB,iCAAiC,GAAA;IAC/C,OAAOA,YAAO,CAAC,cAAc,CAAC,CAAC,MAAM,CAACC,mCAAiB,CAAC,CAAC;AAC3D"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export interface Authenticable {
|
|
2
|
+
/**
|
|
3
|
+
* Generate access token
|
|
4
|
+
*/
|
|
5
|
+
generateAccessToken(): Promise<string>;
|
|
6
|
+
/**
|
|
7
|
+
* Generate refresh token
|
|
8
|
+
*/
|
|
9
|
+
generateRefreshToken(): Promise<string>;
|
|
10
|
+
/**
|
|
11
|
+
* Change password
|
|
12
|
+
*/
|
|
13
|
+
changePassword(password: string): Promise<void>;
|
|
14
|
+
/**
|
|
15
|
+
* Verify Password
|
|
16
|
+
*/
|
|
17
|
+
verifyPassword(password: string): Promise<boolean>;
|
|
18
|
+
/**
|
|
19
|
+
* Get user type
|
|
20
|
+
*/
|
|
21
|
+
getUserType(): string;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=auth-contract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-contract.d.ts","sourceRoot":"","sources":["../../src/contracts/auth-contract.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAEvC;;OAEG;IACH,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAExC;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhD;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEnD;;OAEG;IACH,WAAW,IAAI,MAAM,CAAC;CACvB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/contracts/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type Algorithm } from "fast-jwt";
|
|
2
|
+
import type { Auth } from "../models/auth";
|
|
3
|
+
export type AuthConfigurations = {
|
|
4
|
+
/**
|
|
5
|
+
* Define all user types
|
|
6
|
+
* This is important to differentiate between user types when validating and generating tokens
|
|
7
|
+
*/
|
|
8
|
+
userType: {
|
|
9
|
+
[userType: string]: typeof Auth;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* JWT configurations
|
|
13
|
+
*/
|
|
14
|
+
jwt: {
|
|
15
|
+
secret: string;
|
|
16
|
+
algorithm?: Algorithm;
|
|
17
|
+
refresh?: {
|
|
18
|
+
secret?: string;
|
|
19
|
+
expiresIn?: number | string;
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/contracts/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAE3C,MAAM,MAAM,kBAAkB,GAAG;IAC/B;;;OAGG;IACH,QAAQ,EAAE;QACR,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,IAAI,CAAC;KACjC,CAAC;IACF;;OAEG;IACH,GAAG,EAAE;QACH,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,SAAS,CAAC;QACtB,OAAO,CAAC,EAAE;YACR,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;SAC7B,CAAC;KACH,CAAC;CACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guest-login.d.ts","sourceRoot":"","sources":["../../src/controllers/guest-login.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAG1D,wBAAsB,UAAU,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,gBAIrE"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
'use strict';var generateGuestToken=require('../services/generate-guest-token.js');async function guestLogin(_request, response) {
|
|
2
|
+
return response.send({
|
|
3
|
+
user: await generateGuestToken.generateGuestToken(),
|
|
4
|
+
});
|
|
5
|
+
}exports.guestLogin=guestLogin;//# sourceMappingURL=guest-login.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guest-login.js","sources":["../../src/controllers/guest-login.ts"],"sourcesContent":[null],"names":["generateGuestToken"],"mappings":"mFAGO,eAAe,UAAU,CAAC,QAAiB,EAAE,QAAkB,EAAA;IACpE,OAAO,QAAQ,CAAC,IAAI,CAAC;QACnB,IAAI,EAAE,MAAMA,qCAAkB,EAAE;AACjC,KAAA,CAAC,CAAC;AACL"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/controllers/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
|
package/cjs/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC"}
|
package/cjs/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
'use strict';var index=require('./commands/index.js'),guestLogin=require('./controllers/guest-login.js'),authMiddleware=require('./middleware/auth-middleware.js'),accessToken=require('./models/access-token/access-token.js'),migration=require('./models/access-token/migration.js'),auth=require('./models/auth.js'),castPassword=require('./models/casts/cast-password.js'),guest=require('./models/guest/guest.js'),migration$1=require('./models/guest/migration.js'),generateGuestToken=require('./services/generate-guest-token.js'),generateJwtSecret=require('./services/generate-jwt-secret.js'),jwt=require('./services/jwt.js');exports.registerJWTSecretGeneratorCommand=index.registerJWTSecretGeneratorCommand;exports.guestLogin=guestLogin.guestLogin;exports.authMiddleware=authMiddleware.authMiddleware;exports.AccessToken=accessToken.AccessToken;exports.AccessTokenBlueprint=accessToken.AccessTokenBlueprint;exports.accessTokenMigration=migration.accessTokenMigration;exports.Auth=auth.Auth;exports.castPassword=castPassword.castPassword;exports.Guest=guest.Guest;exports.guestBlueprint=migration$1.guestBlueprint;exports.guestMigration=migration$1.guestMigration;exports.generateGuestToken=generateGuestToken.generateGuestToken;exports.generateJWTSecret=generateJwtSecret.generateJWTSecret;exports.jwt=jwt.jwt;//# sourceMappingURL=index.js.map
|
package/cjs/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-middleware.d.ts","sourceRoot":"","sources":["../../src/middleware/auth-middleware.ts"],"names":[],"mappings":"AAMA,wBAAgB,cAAc,CAAC,eAAe,CAAC,EAAE,MAAM,cAkGtD"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
'use strict';var config=require('@mongez/config'),logger=require('@warlock.js/logger'),accessToken=require('../models/access-token/access-token.js');require('../models/access-token/migration.js');var jwt=require('../services/jwt.js');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var config__default=/*#__PURE__*/_interopDefault(config);function authMiddleware(allowedUserType) {
|
|
2
|
+
const auth = async (request, response) => {
|
|
3
|
+
try {
|
|
4
|
+
const authorizationValue = request.authorizationValue;
|
|
5
|
+
if (!authorizationValue) {
|
|
6
|
+
return response.unauthorized({
|
|
7
|
+
error: "Unauthorized: Access Token is missing",
|
|
8
|
+
});
|
|
9
|
+
}
|
|
10
|
+
// get current user jwt
|
|
11
|
+
const user = await jwt.jwt.verify(authorizationValue);
|
|
12
|
+
// use our own jwt verify to verify the token
|
|
13
|
+
const accessToken$1 = await accessToken.AccessToken.first({
|
|
14
|
+
token: authorizationValue,
|
|
15
|
+
});
|
|
16
|
+
if (!accessToken$1) {
|
|
17
|
+
return response.unauthorized({
|
|
18
|
+
error: "Unauthorized: Invalid Access Token",
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
// now, we need to get an instance of user using its corresponding model
|
|
22
|
+
const userType = user.userType || accessToken$1.get("userType");
|
|
23
|
+
// check if the user type is allowed
|
|
24
|
+
if (allowedUserType && userType !== allowedUserType) {
|
|
25
|
+
return response.unauthorized({
|
|
26
|
+
error: "You are not allowed to access this resource",
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
// get user model class
|
|
30
|
+
const UserModel = config__default.default.get(`auth.userType.${userType}`);
|
|
31
|
+
if (!UserModel) {
|
|
32
|
+
throw new Error(`User type ${userType} is unknown type.`);
|
|
33
|
+
}
|
|
34
|
+
// get user model instance
|
|
35
|
+
const currentUser = await UserModel.find(user.id);
|
|
36
|
+
if (!currentUser) {
|
|
37
|
+
accessToken$1.destroy();
|
|
38
|
+
return response.unauthorized({
|
|
39
|
+
error: "Unauthorized: Invalid Access Token",
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
// set current user
|
|
43
|
+
request.user = currentUser;
|
|
44
|
+
}
|
|
45
|
+
catch (err) {
|
|
46
|
+
logger.log.error("http", "auth", err);
|
|
47
|
+
// unset current user
|
|
48
|
+
request.clearCurrentUser();
|
|
49
|
+
return response.unauthorized({
|
|
50
|
+
error: "Unauthorized: Invalid Access Token",
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
if (allowedUserType) {
|
|
55
|
+
const userAccessTokenKey = `${allowedUserType}AccessToken`;
|
|
56
|
+
const userAccessTokenKeyNameHeader = `${allowedUserType}AccessTokenHeader`;
|
|
57
|
+
auth.postman = {
|
|
58
|
+
onCollectingVariables(variables) {
|
|
59
|
+
if (variables.find((variable) => variable.key === userAccessTokenKeyNameHeader))
|
|
60
|
+
return;
|
|
61
|
+
variables.push({
|
|
62
|
+
key: userAccessTokenKey,
|
|
63
|
+
value: "YOUR_TOKEN_HERE",
|
|
64
|
+
});
|
|
65
|
+
variables.push({
|
|
66
|
+
key: userAccessTokenKeyNameHeader,
|
|
67
|
+
value: `Bearer {{${userAccessTokenKey}}}`,
|
|
68
|
+
});
|
|
69
|
+
},
|
|
70
|
+
onAddingRequest({ request }) {
|
|
71
|
+
request.header.push({
|
|
72
|
+
key: "Authorization",
|
|
73
|
+
value: `{{${userAccessTokenKeyNameHeader}}}`,
|
|
74
|
+
});
|
|
75
|
+
},
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
return auth;
|
|
79
|
+
}exports.authMiddleware=authMiddleware;//# sourceMappingURL=auth-middleware.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-middleware.js","sources":["../../src/middleware/auth-middleware.ts"],"sourcesContent":[null],"names":["jwt","accessToken","AccessToken","config","log"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"access-token.d.ts","sourceRoot":"","sources":["../../../src/models/access-token/access-token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE5C,qBAAa,WAAY,SAAQ,KAAK;IACpC;;OAEG;IACH,OAAc,UAAU,SAAkB;CAC3C;AAED,eAAO,MAAM,oBAAoB,KAA0B,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
'use strict';var cascade=require('@warlock.js/cascade');class AccessToken extends cascade.Model {
|
|
2
|
+
/**
|
|
3
|
+
* {@inheritDoc}
|
|
4
|
+
*/
|
|
5
|
+
static collection = "accessTokens";
|
|
6
|
+
}
|
|
7
|
+
const AccessTokenBlueprint = AccessToken.blueprint();exports.AccessToken=AccessToken;exports.AccessTokenBlueprint=AccessTokenBlueprint;//# sourceMappingURL=access-token.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"access-token.js","sources":["../../../src/models/access-token/access-token.ts"],"sourcesContent":[null],"names":["Model"],"mappings":"wDAEM,MAAO,WAAY,SAAQA,aAAK,CAAA;AACpC;;AAEG;AACI,IAAA,OAAO,UAAU,GAAG,cAAc,CAAC;;MAG/B,oBAAoB,GAAG,WAAW,CAAC,SAAS"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/models/access-token/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migration.d.ts","sourceRoot":"","sources":["../../../src/models/access-token/migration.ts"],"names":[],"mappings":"AAEA,wBAAsB,oBAAoB,kBAEzC;yBAFqB,oBAAoB"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
'use strict';var accessToken=require('./access-token.js');async function accessTokenMigration() {
|
|
2
|
+
accessToken.AccessTokenBlueprint.unique("token");
|
|
3
|
+
}
|
|
4
|
+
accessTokenMigration.down = async () => {
|
|
5
|
+
accessToken.AccessTokenBlueprint.dropUniqueIndex("token");
|
|
6
|
+
};
|
|
7
|
+
accessTokenMigration.blueprint = accessToken.AccessTokenBlueprint;exports.accessTokenMigration=accessTokenMigration;//# sourceMappingURL=migration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migration.js","sources":["../../../src/models/access-token/migration.ts"],"sourcesContent":[null],"names":["AccessTokenBlueprint"],"mappings":"0DAEO,eAAe,oBAAoB,GAAA;AACxC,IAAAA,gCAAoB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACvC,CAAC;AAED,oBAAoB,CAAC,IAAI,GAAG,YAAW;AACrC,IAAAA,gCAAoB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;AAChD,CAAC,CAAC;AAEF,oBAAoB,CAAC,SAAS,GAAGA,gCAAoB"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { ChildModel } from "@warlock.js/cascade";
|
|
2
|
+
import { Model } from "@warlock.js/cascade";
|
|
3
|
+
export declare abstract class Auth extends Model {
|
|
4
|
+
/**
|
|
5
|
+
* Get user type
|
|
6
|
+
*/
|
|
7
|
+
abstract get userType(): string;
|
|
8
|
+
/**
|
|
9
|
+
* Generate jwt token
|
|
10
|
+
*/
|
|
11
|
+
generateAccessToken(): Promise<string>;
|
|
12
|
+
/**
|
|
13
|
+
* Remove current access token
|
|
14
|
+
*/
|
|
15
|
+
removeAccessToken(token: string): Promise<void>;
|
|
16
|
+
/**
|
|
17
|
+
* Attempt to login the user
|
|
18
|
+
*/
|
|
19
|
+
static attempt<T>(this: ChildModel<T>, data: any): Promise<T | null>;
|
|
20
|
+
/**
|
|
21
|
+
* Confirm password
|
|
22
|
+
*/
|
|
23
|
+
confirmPassword(password: string): any;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/models/auth.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAI5C,8BAAsB,IAAK,SAAQ,KAAK;IACtC;;OAEG;IACH,aAAoB,QAAQ,IAAI,MAAM,CAAC;IAEvC;;OAEG;IACU,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC;IAyBnD;;OAEG;IACU,iBAAiB,CAAC,KAAK,EAAE,MAAM;IAO5C;;OAEG;WACiB,OAAO,CAAC,CAAC,EAC3B,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EACnB,IAAI,EAAE,GAAG,GACR,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAkBpB;;OAEG;IACI,eAAe,CAAC,QAAQ,EAAE,MAAM;CAGxC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
'use strict';var Password=require('@mongez/password'),cascade=require('@warlock.js/cascade'),jwt=require('../services/jwt.js'),accessToken=require('./access-token/access-token.js');require('./access-token/migration.js');class Auth extends cascade.Model {
|
|
2
|
+
/**
|
|
3
|
+
* Generate jwt token
|
|
4
|
+
*/
|
|
5
|
+
async generateAccessToken() {
|
|
6
|
+
// store the main data in the data object
|
|
7
|
+
// we need to store the user data in an object
|
|
8
|
+
// that we'll sue to generate the token
|
|
9
|
+
// and also it will be saved in the Access Token model under `user` column
|
|
10
|
+
const data = {
|
|
11
|
+
...this.only(["id", "_id"]),
|
|
12
|
+
userType: this.userType,
|
|
13
|
+
createdAt: Date.now(),
|
|
14
|
+
};
|
|
15
|
+
// use our own jwt generator to generate a token for the guest
|
|
16
|
+
const token = await jwt.jwt.generate(data);
|
|
17
|
+
// store token and the auth model data in the access token model
|
|
18
|
+
// note that we didn't make it sync because we don't want to wait for the token to be stored in the database
|
|
19
|
+
// as nothing depends on it
|
|
20
|
+
accessToken.AccessToken.create({
|
|
21
|
+
token,
|
|
22
|
+
user: data,
|
|
23
|
+
});
|
|
24
|
+
return token;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Remove current access token
|
|
28
|
+
*/
|
|
29
|
+
async removeAccessToken(token) {
|
|
30
|
+
accessToken.AccessToken.delete({
|
|
31
|
+
token: token,
|
|
32
|
+
"user.id": this.id,
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Attempt to login the user
|
|
37
|
+
*/
|
|
38
|
+
static async attempt(data) {
|
|
39
|
+
// find first user with the given data, but exclude from it the password
|
|
40
|
+
const { password, ...otherData } = data;
|
|
41
|
+
const user = (await this.first(otherData));
|
|
42
|
+
if (!user) {
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
// now verify the password
|
|
46
|
+
if (!user.confirmPassword(password)) {
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
return user;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Confirm password
|
|
53
|
+
*/
|
|
54
|
+
confirmPassword(password) {
|
|
55
|
+
return Password.verify(String(this.get("password")), String(password));
|
|
56
|
+
}
|
|
57
|
+
}exports.Auth=Auth;//# sourceMappingURL=auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sources":["../../src/models/auth.ts"],"sourcesContent":[null],"names":["Model","jwt","AccessToken","verify"],"mappings":"4NAMM,MAAgB,IAAK,SAAQA,aAAK,CAAA;AAMtC;;AAEG;AACI,IAAA,MAAM,mBAAmB,GAAA;;;;;AAK9B,QAAA,MAAM,IAAI,GAAG;YACX,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACvB,YAAA,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC;;QAGF,MAAM,KAAK,GAAG,MAAMC,OAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;;;;QAKvCC,uBAAW,CAAC,MAAM,CAAC;YACjB,KAAK;AACL,YAAA,IAAI,EAAE,IAAI;AACX,SAAA,CAAC,CAAC;AAEH,QAAA,OAAO,KAAK,CAAC;KACd;AAED;;AAEG;IACI,MAAM,iBAAiB,CAAC,KAAa,EAAA;QAC1CA,uBAAW,CAAC,MAAM,CAAC;AACjB,YAAA,KAAK,EAAE,KAAK;YACZ,SAAS,EAAE,IAAI,CAAC,EAAE;AACnB,SAAA,CAAC,CAAC;KACJ;AAED;;AAEG;AACI,IAAA,aAAa,OAAO,CAEzB,IAAS,EAAA;;QAGT,MAAM,EAAE,QAAQ,EAAE,GAAG,SAAS,EAAE,GAAG,IAAI,CAAC;QAExC,MAAM,IAAI,IAAI,MAAM,IAAI,CAAC,KAAK,CAAI,SAAS,CAAC,CAAgB,CAAC;QAE7D,IAAI,CAAC,IAAI,EAAE;AACT,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;;AAGD,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE;AACnC,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AAED,QAAA,OAAO,IAAS,CAAC;KAClB;AAED;;AAEG;AACI,IAAA,eAAe,CAAC,QAAgB,EAAA;AACrC,QAAA,OAAOC,eAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;KAC/D;AACF"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Model } from "@warlock.js/cascade";
|
|
2
|
+
/**
|
|
3
|
+
* Cast password on model save
|
|
4
|
+
* If the password is not changed, keep it as is
|
|
5
|
+
*/
|
|
6
|
+
export declare function castPassword(value: any, column: string, model: Model): any;
|
|
7
|
+
//# sourceMappingURL=cast-password.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cast-password.d.ts","sourceRoot":"","sources":["../../../src/models/casts/cast-password.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAEjD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,OAIpE"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
'use strict';var Password=require('@mongez/password');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var Password__default=/*#__PURE__*/_interopDefault(Password);/**
|
|
2
|
+
* Cast password on model save
|
|
3
|
+
* If the password is not changed, keep it as is
|
|
4
|
+
*/
|
|
5
|
+
function castPassword(value, column, model) {
|
|
6
|
+
return value
|
|
7
|
+
? Password__default.default.generate(String(value), 12)
|
|
8
|
+
: model.getInitial(column);
|
|
9
|
+
}exports.castPassword=castPassword;//# sourceMappingURL=cast-password.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cast-password.js","sources":["../../../src/models/casts/cast-password.ts"],"sourcesContent":[null],"names":["Password"],"mappings":"oLAGA;;;AAGG;SACa,YAAY,CAAC,KAAU,EAAE,MAAc,EAAE,KAAY,EAAA;AACnE,IAAA,OAAO,KAAK;UACRA,yBAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;AACtC,UAAE,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AAC/B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/models/casts/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { Document } from "@warlock.js/cascade";
|
|
2
|
+
import { Auth } from "../auth";
|
|
3
|
+
export declare class Guest extends Auth {
|
|
4
|
+
/**
|
|
5
|
+
* {@inheritDoc}
|
|
6
|
+
*/
|
|
7
|
+
static collection: string;
|
|
8
|
+
/**
|
|
9
|
+
* Set the user type key
|
|
10
|
+
* If set to empty string, then it will ignored
|
|
11
|
+
*/
|
|
12
|
+
userTypeKey: string;
|
|
13
|
+
/**
|
|
14
|
+
* Get user type
|
|
15
|
+
*/
|
|
16
|
+
get userType(): string;
|
|
17
|
+
/**
|
|
18
|
+
* {@inheritDoc}
|
|
19
|
+
*/
|
|
20
|
+
get embeddedData(): Document;
|
|
21
|
+
/**
|
|
22
|
+
* {@inheritDoc}
|
|
23
|
+
*/
|
|
24
|
+
toJSON(): Promise<any>;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=guest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guest.d.ts","sourceRoot":"","sources":["../../../src/models/guest/guest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE/B,qBAAa,KAAM,SAAQ,IAAI;IAC7B;;OAEG;IACH,OAAc,UAAU,SAAY;IAEpC;;;OAGG;IACI,WAAW,SAAc;IAEhC;;OAEG;IACH,IAAW,QAAQ,IAAI,MAAM,CAE5B;IAED;;OAEG;IACH,IAAW,YAAY,IAAI,QAAQ,CAMlC;IAED;;OAEG;IACU,MAAM;CAQpB"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
'use strict';var auth=require('../auth.js');class Guest extends auth.Auth {
|
|
2
|
+
/**
|
|
3
|
+
* {@inheritDoc}
|
|
4
|
+
*/
|
|
5
|
+
static collection = "guests";
|
|
6
|
+
/**
|
|
7
|
+
* Set the user type key
|
|
8
|
+
* If set to empty string, then it will ignored
|
|
9
|
+
*/
|
|
10
|
+
userTypeKey = "userType";
|
|
11
|
+
/**
|
|
12
|
+
* Get user type
|
|
13
|
+
*/
|
|
14
|
+
get userType() {
|
|
15
|
+
return "guest";
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* {@inheritDoc}
|
|
19
|
+
*/
|
|
20
|
+
get embeddedData() {
|
|
21
|
+
if (!this.userTypeKey)
|
|
22
|
+
return super.embeddedData;
|
|
23
|
+
return {
|
|
24
|
+
...this.onlyId,
|
|
25
|
+
[this.userTypeKey]: this.userType,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* {@inheritDoc}
|
|
30
|
+
*/
|
|
31
|
+
async toJSON() {
|
|
32
|
+
if (!this.userTypeKey)
|
|
33
|
+
return this.onlyId;
|
|
34
|
+
return {
|
|
35
|
+
...this.onlyId,
|
|
36
|
+
[this.userTypeKey]: this.userType,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
}exports.Guest=Guest;//# sourceMappingURL=guest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guest.js","sources":["../../../src/models/guest/guest.ts"],"sourcesContent":[null],"names":["Auth"],"mappings":"4CAGM,MAAO,KAAM,SAAQA,SAAI,CAAA;AAC7B;;AAEG;AACI,IAAA,OAAO,UAAU,GAAG,QAAQ,CAAC;AAEpC;;;AAGG;IACI,WAAW,GAAG,UAAU,CAAC;AAEhC;;AAEG;AACH,IAAA,IAAW,QAAQ,GAAA;AACjB,QAAA,OAAO,OAAO,CAAC;KAChB;AAED;;AAEG;AACH,IAAA,IAAW,YAAY,GAAA;QACrB,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO,KAAK,CAAC,YAAY,CAAC;QACjD,OAAO;YACL,GAAG,IAAI,CAAC,MAAM;AACd,YAAA,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ;SAClC,CAAC;KACH;AAED;;AAEG;AACI,IAAA,MAAM,MAAM,GAAA;QACjB,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC,MAAM,CAAC;QAE1C,OAAO;YACL,GAAG,IAAI,CAAC,MAAM;AACd,YAAA,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ;SAClC,CAAC;KACH;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/models/guest/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migration.d.ts","sourceRoot":"","sources":["../../../src/models/guest/migration.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,KAAoB,CAAC;AAEhD,wBAAsB,cAAc,kBAEnC;yBAFqB,cAAc"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
'use strict';var guest=require('./guest.js');const guestBlueprint = guest.Guest.blueprint();
|
|
2
|
+
async function guestMigration() {
|
|
3
|
+
await guestBlueprint.unique("id");
|
|
4
|
+
}
|
|
5
|
+
guestMigration.down = async () => {
|
|
6
|
+
await guestBlueprint.dropUniqueIndex("id");
|
|
7
|
+
};
|
|
8
|
+
guestMigration.blueprint = guestBlueprint;exports.guestBlueprint=guestBlueprint;exports.guestMigration=guestMigration;//# sourceMappingURL=migration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migration.js","sources":["../../../src/models/guest/migration.ts"],"sourcesContent":[null],"names":["Guest"],"mappings":"mDAEa,cAAc,GAAGA,WAAK,CAAC,SAAS,GAAG;AAEzC,eAAe,cAAc,GAAA;AAClC,IAAA,MAAM,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC;AAED,cAAc,CAAC,IAAI,GAAG,YAAW;AAC/B,IAAA,MAAM,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AAC7C,CAAC,CAAC;AAEF,cAAc,CAAC,SAAS,GAAG,cAAc"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-guest-token.d.ts","sourceRoot":"","sources":["../../src/services/generate-guest-token.ts"],"names":[],"mappings":"AAGA,wBAAsB,kBAAkB,iBAYvC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
'use strict';var config=require('@mongez/config'),guest=require('../models/guest/guest.js');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var config__default=/*#__PURE__*/_interopDefault(config);async function generateGuestToken() {
|
|
2
|
+
const GuestModel = config__default.default.get(`auth.userType.guest`) || guest.Guest;
|
|
3
|
+
const guest$1 = await GuestModel.create({
|
|
4
|
+
userType: "guest",
|
|
5
|
+
});
|
|
6
|
+
return {
|
|
7
|
+
// use our own jwt generator to generate a token for the guest
|
|
8
|
+
accessToken: await guest$1.generateAccessToken(),
|
|
9
|
+
...(await guest$1.toJSON()),
|
|
10
|
+
};
|
|
11
|
+
}exports.generateGuestToken=generateGuestToken;//# sourceMappingURL=generate-guest-token.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-guest-token.js","sources":["../../src/services/generate-guest-token.ts"],"sourcesContent":[null],"names":["config","Guest","guest"],"mappings":"sNAGO,eAAe,kBAAkB,GAAA;IACtC,MAAM,UAAU,GAAiBA,uBAAM,CAAC,GAAG,CAAC,CAAqB,mBAAA,CAAA,CAAC,IAAIC,WAAK,CAAC;AAE5E,IAAA,MAAMC,OAAK,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC;AACpC,QAAA,QAAQ,EAAE,OAAO;AAClB,KAAA,CAAC,CAAC;IAEH,OAAO;;AAEL,QAAA,WAAW,EAAE,MAAMA,OAAK,CAAC,mBAAmB,EAAE;AAC9C,QAAA,IAAI,MAAMA,OAAK,CAAC,MAAM,EAAE;KACzB,CAAC;AACJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-jwt-secret.d.ts","sourceRoot":"","sources":["../../src/services/generate-jwt-secret.ts"],"names":[],"mappings":"AAKA,wBAAsB,iBAAiB,kBAwCtC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
'use strict';var fs=require('@mongez/fs'),reinforcements=require('@mongez/reinforcements'),core=require('@warlock.js/core'),logger=require('@warlock.js/logger');async function generateJWTSecret() {
|
|
2
|
+
let envFile = core.rootPath(".env");
|
|
3
|
+
logger.log.info("jwt", "generating", "Generating jwt secret");
|
|
4
|
+
const environmentMode = core.environment();
|
|
5
|
+
if (!fs.fileExists(envFile)) {
|
|
6
|
+
const envFileType = environmentMode === "production" ? ".env.production" : ".env.development";
|
|
7
|
+
envFile = core.rootPath(envFileType);
|
|
8
|
+
}
|
|
9
|
+
if (!fs.fileExists(envFile)) {
|
|
10
|
+
logger.log.error("jwt", "error", ".env file not found");
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
let contents = fs.getFile(envFile);
|
|
14
|
+
if (contents.includes("JWT_SECRET")) {
|
|
15
|
+
logger.log.warn("jwt", "exists", "JWT secret already exists in the .env file.");
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
const key = reinforcements.Random.string(32);
|
|
19
|
+
contents += `
|
|
20
|
+
|
|
21
|
+
# JWT Secret
|
|
22
|
+
JWT_SECRET=${key}
|
|
23
|
+
`;
|
|
24
|
+
fs.putFile(envFile, contents);
|
|
25
|
+
logger.log.success("jwt", "generated", `JWT secret key generated and added to the .env file.`);
|
|
26
|
+
}exports.generateJWTSecret=generateJWTSecret;//# sourceMappingURL=generate-jwt-secret.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-jwt-secret.js","sources":["../../src/services/generate-jwt-secret.ts"],"sourcesContent":[null],"names":["rootPath","log","environment","fileExists","getFile","Random","putFile"],"mappings":"iKAKO,eAAe,iBAAiB,GAAA;AACrC,IAAA,IAAI,OAAO,GAAGA,aAAQ,CAAC,MAAM,CAAC,CAAC;IAE/BC,UAAG,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,uBAAuB,CAAC,CAAC;AAEvD,IAAA,MAAM,eAAe,GAAGC,gBAAW,EAAE,CAAC;AAEtC,IAAA,IAAI,CAACC,aAAU,CAAC,OAAO,CAAC,EAAE;AACxB,QAAA,MAAM,WAAW,GACf,eAAe,KAAK,YAAY,GAAG,iBAAiB,GAAG,kBAAkB,CAAC;AAC5E,QAAA,OAAO,GAAGH,aAAQ,CAAC,WAAW,CAAC,CAAC;AACjC,KAAA;AAED,IAAA,IAAI,CAACG,aAAU,CAAC,OAAO,CAAC,EAAE;QACxBF,UAAG,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,qBAAqB,CAAC,CAAC;QACjD,OAAO;AACR,KAAA;AAED,IAAA,IAAI,QAAQ,GAAGG,UAAO,CAAC,OAAO,CAAC,CAAC;AAEhC,IAAA,IAAI,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;QACnCH,UAAG,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,6CAA6C,CAAC,CAAC;QACzE,OAAO;AACR,KAAA;IAED,MAAM,GAAG,GAAGI,qBAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAE9B,IAAA,QAAQ,IAAI,CAAA;;;aAGD,GAAG,CAAA;CACf,CAAC;AAEA,IAAAC,UAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAE3BL,UAAG,CAAC,OAAO,CACT,KAAK,EACL,WAAW,EACX,CAAsD,oDAAA,CAAA,CACvD,CAAC;AACJ"}
|