biz-email-builder-shared 1.4.2 → 1.5.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/dist/entity/index.d.ts +1 -0
- package/dist/entity/index.d.ts.map +1 -1
- package/dist/entity/index.js +1 -0
- package/dist/entity/user.entity.d.ts.map +1 -1
- package/dist/entity/user.entity.js +1 -1
- package/dist/middleware/authentication.d.ts.map +1 -1
- package/dist/middleware/authentication.js +8 -8
- package/dist/middleware/schemaValidate.d.ts.map +1 -1
- package/dist/middleware/schemaValidate.js +2 -1
- package/dist/utilities/index.d.ts +1 -0
- package/dist/utilities/index.d.ts.map +1 -1
- package/dist/utilities/index.js +1 -0
- package/dist/utilities/serverMessages.d.ts +10 -0
- package/dist/utilities/serverMessages.d.ts.map +1 -0
- package/dist/utilities/serverMessages.js +13 -0
- package/package.json +2 -2
package/dist/entity/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/entity/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/entity/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC"}
|
package/dist/entity/index.js
CHANGED
|
@@ -18,3 +18,4 @@ __exportStar(require("./user.entity"), exports);
|
|
|
18
18
|
__exportStar(require("./template.entity"), exports);
|
|
19
19
|
__exportStar(require("./user-group.entitty"), exports);
|
|
20
20
|
__exportStar(require("./feature.entitiy"), exports);
|
|
21
|
+
__exportStar(require("./templateShare.entity"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.entity.d.ts","sourceRoot":"","sources":["../../src/entity/user.entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAErC,UAAU,KAAK;IACb,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,KAAK,CAAC;IACZ,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;IAC7B,UAAU,EAAE,OAAO,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAA;CACzB;AAmBD,eAAO,MAAM,SAAS;
|
|
1
|
+
{"version":3,"file":"user.entity.d.ts","sourceRoot":"","sources":["../../src/entity/user.entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAErC,UAAU,KAAK;IACb,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,KAAK,CAAC;IACZ,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;IAC7B,UAAU,EAAE,OAAO,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAA;CACzB;AAmBD,eAAO,MAAM,SAAS;SACkrH,MAAO,QAAQ;eAD9pH,CAAC"}
|
|
@@ -6,7 +6,7 @@ const utilities_1 = require("../utilities");
|
|
|
6
6
|
const UserSchema = new mongoose_1.Schema({
|
|
7
7
|
email: { type: String, unique: true, sparse: true },
|
|
8
8
|
password: { type: String, default: null },
|
|
9
|
-
role: { type: String, default: utilities_1.ROLES.USER },
|
|
9
|
+
role: { type: String, default: utilities_1.ROLES.USER, enum: Object.values(utilities_1.ROLES) },
|
|
10
10
|
isVerified: { type: Boolean, default: false },
|
|
11
11
|
verificationToken: { type: String },
|
|
12
12
|
deletedAt: { type: Date, default: null },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authentication.d.ts","sourceRoot":"","sources":["../../src/middleware/authentication.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"authentication.d.ts","sourceRoot":"","sources":["../../src/middleware/authentication.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,KAAK,EAA8B,MAAM,cAAc,CAAC;AAC/E,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAIpC,QAAA,MAAM,SAAS,cACe,QAAQ,OAAO,QAAQ,QAAQ,YAAY,4DAwCxE,CAAA;AAED,QAAA,MAAM,eAAe,UAAW,KAAK,EAAE,WACT,QAAQ,OAAO,QAAQ,QAAQ,YAAY,4DAcxE,CAAA;AAED,QAAA,MAAM,kBAAkB,aAAc,YAAY,EAAE,WACtB,QAAQ,OAAO,QAAQ,QAAQ,YAAY,4DAmBxE,CAAA;AAGD,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -18,22 +18,22 @@ const authorize = () => {
|
|
|
18
18
|
return async function (req, res, next) {
|
|
19
19
|
try {
|
|
20
20
|
if (!req.headers.authorization) {
|
|
21
|
-
return res.status(401).json({ message:
|
|
21
|
+
return res.status(401).json({ message: utilities_1.SERVER_MESSAGES.SE_UNAUTHORIZED });
|
|
22
22
|
}
|
|
23
23
|
if (req.headers.authorization) {
|
|
24
24
|
const token = await (0, utilities_1.verifyUid)(req.headers.authorization);
|
|
25
25
|
if (!token) {
|
|
26
|
-
return res.status(401).json({ message:
|
|
26
|
+
return res.status(401).json({ message: utilities_1.SERVER_MESSAGES.SE_SESSION_EXPIRED });
|
|
27
27
|
}
|
|
28
28
|
let user = await entity_1.UserModel.findById(token.value.id).populate({
|
|
29
29
|
path: "groups",
|
|
30
30
|
populate: { path: "features", select: "name" },
|
|
31
31
|
}).lean();
|
|
32
32
|
if (!user) {
|
|
33
|
-
return res.status(401).json({ message:
|
|
33
|
+
return res.status(401).json({ message: utilities_1.SERVER_MESSAGES.SE_USER_NOT_FOUND });
|
|
34
34
|
}
|
|
35
35
|
if (user.role === undefined || user.role === null || !Object.values(utilities_1.ROLES).includes(user.role)) {
|
|
36
|
-
return res.status(401).json({ message:
|
|
36
|
+
return res.status(401).json({ message: utilities_1.SERVER_MESSAGES.SE_NO_ROLE_ASSIGNED_ROLE_INVALID });
|
|
37
37
|
}
|
|
38
38
|
const { createdAt, updatedAt, deletedAt, password } = user, rest = __rest(user, ["createdAt", "updatedAt", "deletedAt", "password"]);
|
|
39
39
|
req.user = rest;
|
|
@@ -54,11 +54,11 @@ const checkRoleAccess = (roles) => {
|
|
|
54
54
|
return async function (req, res, next) {
|
|
55
55
|
const { user } = req;
|
|
56
56
|
if (!user) {
|
|
57
|
-
return res.status(401).json({ message:
|
|
57
|
+
return res.status(401).json({ message: utilities_1.SERVER_MESSAGES.SE_UNAUTHORIZED });
|
|
58
58
|
}
|
|
59
59
|
const hasAccess = roles.find(role => role === user.role);
|
|
60
60
|
if (!hasAccess) {
|
|
61
|
-
return res.status(403).json({ message:
|
|
61
|
+
return res.status(403).json({ message: utilities_1.SERVER_MESSAGES.SE_FORBIDDEN_ROLE_ACCESS_DENIED });
|
|
62
62
|
}
|
|
63
63
|
next();
|
|
64
64
|
};
|
|
@@ -68,12 +68,12 @@ const checkFeatureAccess = (features) => {
|
|
|
68
68
|
return async function (req, res, next) {
|
|
69
69
|
const { user } = req;
|
|
70
70
|
if (!user) {
|
|
71
|
-
return res.status(401).json({ message:
|
|
71
|
+
return res.status(401).json({ message: utilities_1.SERVER_MESSAGES.SE_UNAUTHORIZED });
|
|
72
72
|
}
|
|
73
73
|
const userFeatureNames = user.groups.flatMap(group => group.features ? group.features.map((feature) => feature.name) : []);
|
|
74
74
|
const hasAccess = features.some((feature) => userFeatureNames.includes(feature));
|
|
75
75
|
if (!hasAccess) {
|
|
76
|
-
return res.status(403).json({ message:
|
|
76
|
+
return res.status(403).json({ message: utilities_1.SERVER_MESSAGES.SE_FORBIDDEN_FEATURE_ACCESS_DENIED });
|
|
77
77
|
}
|
|
78
78
|
next();
|
|
79
79
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemaValidate.d.ts","sourceRoot":"","sources":["../../src/middleware/schemaValidate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,GAAG,MAAM,KAAK,CAAC;AAEtB,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"schemaValidate.d.ts","sourceRoot":"","sources":["../../src/middleware/schemaValidate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,GAAG,MAAM,KAAK,CAAC;AAEtB,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAGpC,eAAO,MAAM,cAAc,WAAY,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,WAC9B,QAAQ,OAAO,QAAQ,QAAQ,YAAY,4DAWxE,CAAA"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.validateSchema = void 0;
|
|
4
|
+
const utilities_1 = require("../utilities");
|
|
4
5
|
const validateSchema = (schema) => {
|
|
5
6
|
return async function (req, res, next) {
|
|
6
7
|
const { error } = schema.validate(req.body, { abortEarly: false });
|
|
7
8
|
if (error) {
|
|
8
9
|
const errorMessage = error.details.map((err) => err.message).join(', ');
|
|
9
|
-
return res.status(400).json({ message: errorMessage });
|
|
10
|
+
return res.status(400).json({ message: utilities_1.SERVER_MESSAGES.SE_INVALID_INPUT, description: errorMessage });
|
|
10
11
|
}
|
|
11
12
|
else {
|
|
12
13
|
next();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utilities/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utilities/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AAEjC,oBAAY,KAAK;IACf,KAAK,UAAU;IACf,IAAI,SAAS;CACd;AAED,oBAAY,WAAW;IACrB,GAAG,QAAQ;IACX,OAAO,YAAY;IACnB,WAAW,gBAAgB;CAC5B;AAED,oBAAY,cAAc;IACxB,KAAK,UAAU;IACf,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,MAAM,WAAW;CAClB;AAED,oBAAY,YAAY;IAEtB,QAAQ,aAAW;IACnB,WAAW,gBAAc;IACzB,WAAW,gBAAc;IACzB,SAAS,cAAY;IAGrB,cAAc,mBAAiB;IAC/B,iBAAiB,sBAAoB;IACrC,iBAAiB,sBAAoB;IACrC,eAAe,oBAAkB;IACjC,cAAc,mBAAiB;IAG/B,0BAA0B,+BAA6B;IACvD,cAAc,mBAAiB;IAC/B,eAAe,oBAAkB;IACjC,YAAY,iBAAe;IAC3B,eAAe,oBAAkB;IACjC,cAAc,mBAAiB;IAC/B,gBAAgB,qBAAmB;IACnC,aAAa,kBAAgB;CAC9B"}
|
package/dist/utilities/index.js
CHANGED
|
@@ -19,6 +19,7 @@ __exportStar(require("./callWithRetries"), exports);
|
|
|
19
19
|
__exportStar(require("./createFolder"), exports);
|
|
20
20
|
__exportStar(require("./encryptionUtils"), exports);
|
|
21
21
|
__exportStar(require("./sendMailViaGmail"), exports);
|
|
22
|
+
__exportStar(require("./serverMessages"), exports);
|
|
22
23
|
var ROLES;
|
|
23
24
|
(function (ROLES) {
|
|
24
25
|
ROLES["ADMIN"] = "ADMIN";
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare enum SERVER_MESSAGES {
|
|
2
|
+
SE_INVALID_INPUT = "SE_INVALID_INPUT",
|
|
3
|
+
SE_UNAUTHORIZED = "SE_UNAUTHORIZED",
|
|
4
|
+
SE_SESSION_EXPIRED = "SE_SESSION_EXPIRED",
|
|
5
|
+
SE_USER_NOT_FOUND = "SE_USER_NOT_FOUND",
|
|
6
|
+
SE_FORBIDDEN_ROLE_ACCESS_DENIED = "SE_FORBIDDEN_ROLE_ACCESS_DENIED",
|
|
7
|
+
SE_FORBIDDEN_FEATURE_ACCESS_DENIED = "SE_FORBIDDEN_FEATURE_ACCESS_DENIED",
|
|
8
|
+
SE_NO_ROLE_ASSIGNED_ROLE_INVALID = "SE_NO_ROLE_ASSIGNED_ROLE_INVALID"
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=serverMessages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serverMessages.d.ts","sourceRoot":"","sources":["../../src/utilities/serverMessages.ts"],"names":[],"mappings":"AAAA,oBAAY,eAAe;IACzB,gBAAgB,qBAAqB;IACrC,eAAe,oBAAoB;IACnC,kBAAkB,uBAAuB;IACzC,iBAAiB,sBAAsB;IACvC,+BAA+B,oCAAoC;IACnE,kCAAkC,uCAAuC;IACzE,gCAAgC,qCAAqC;CACtE"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SERVER_MESSAGES = void 0;
|
|
4
|
+
var SERVER_MESSAGES;
|
|
5
|
+
(function (SERVER_MESSAGES) {
|
|
6
|
+
SERVER_MESSAGES["SE_INVALID_INPUT"] = "SE_INVALID_INPUT";
|
|
7
|
+
SERVER_MESSAGES["SE_UNAUTHORIZED"] = "SE_UNAUTHORIZED";
|
|
8
|
+
SERVER_MESSAGES["SE_SESSION_EXPIRED"] = "SE_SESSION_EXPIRED";
|
|
9
|
+
SERVER_MESSAGES["SE_USER_NOT_FOUND"] = "SE_USER_NOT_FOUND";
|
|
10
|
+
SERVER_MESSAGES["SE_FORBIDDEN_ROLE_ACCESS_DENIED"] = "SE_FORBIDDEN_ROLE_ACCESS_DENIED";
|
|
11
|
+
SERVER_MESSAGES["SE_FORBIDDEN_FEATURE_ACCESS_DENIED"] = "SE_FORBIDDEN_FEATURE_ACCESS_DENIED";
|
|
12
|
+
SERVER_MESSAGES["SE_NO_ROLE_ASSIGNED_ROLE_INVALID"] = "SE_NO_ROLE_ASSIGNED_ROLE_INVALID";
|
|
13
|
+
})(SERVER_MESSAGES || (exports.SERVER_MESSAGES = SERVER_MESSAGES = {}));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "biz-email-builder-shared",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.0",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"files": [
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"@types/nodemailer": "^6.4.17"
|
|
25
25
|
},
|
|
26
26
|
"keywords": [],
|
|
27
|
-
"author": "
|
|
27
|
+
"author": "",
|
|
28
28
|
"license": "ISC",
|
|
29
29
|
"description": ""
|
|
30
30
|
}
|