@duvdu-v1/duvdu 1.1.86 → 1.1.88

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.
@@ -1,9 +1,17 @@
1
1
  import { CustomError } from './custom-error';
2
+ type LocalizedMessages = {
3
+ en: string;
4
+ ar: string;
5
+ };
2
6
  export declare class BadRequestError extends CustomError {
3
7
  statusCode: number;
4
- constructor(message: string);
8
+ private lang;
9
+ private messages;
10
+ private static defaultMessages;
11
+ constructor(message?: LocalizedMessages | string, lang?: string);
5
12
  serializeError(): {
6
13
  message: string;
7
14
  field?: string | undefined;
8
15
  }[];
9
16
  }
17
+ export {};
@@ -1,15 +1,47 @@
1
1
  "use strict";
2
+ // import { CustomError } from './custom-error';
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
4
  exports.BadRequestError = void 0;
5
+ // export class BadRequestError extends CustomError {
6
+ // statusCode: number = 400;
7
+ // constructor(message: string) {
8
+ // super(message || 'bad-request error');
9
+ // Object.setPrototypeOf(this, BadRequestError.prototype);
10
+ // }
11
+ // serializeError(): { message: string; field?: string | undefined }[] {
12
+ // return [{ message: this.message || 'bad-request error' }];
13
+ // }
14
+ // }
4
15
  const custom_error_1 = require("./custom-error");
5
16
  class BadRequestError extends custom_error_1.CustomError {
6
- constructor(message) {
7
- super(message || 'bad-request error');
17
+ constructor(message, lang = 'en') {
18
+ let localizedMessage;
19
+ let messages;
20
+ if (!message) {
21
+ messages = BadRequestError.defaultMessages;
22
+ localizedMessage = messages[lang] || messages['en'];
23
+ }
24
+ else if (typeof message === 'string') {
25
+ messages = { en: message, ar: message };
26
+ localizedMessage = message;
27
+ }
28
+ else {
29
+ messages = message;
30
+ localizedMessage = message[lang] || message['en'];
31
+ }
32
+ super(localizedMessage);
8
33
  this.statusCode = 400;
34
+ this.messages = messages;
35
+ this.lang = lang;
9
36
  Object.setPrototypeOf(this, BadRequestError.prototype);
10
37
  }
11
38
  serializeError() {
12
- return [{ message: this.message || 'bad-request error' }];
39
+ const localizedMessage = this.messages[this.lang] || this.messages['en'];
40
+ return [{ message: localizedMessage }];
13
41
  }
14
42
  }
15
43
  exports.BadRequestError = BadRequestError;
44
+ BadRequestError.defaultMessages = {
45
+ en: 'bad-request error',
46
+ ar: 'خطأ في الطلب',
47
+ };
@@ -1,8 +1,16 @@
1
1
  import { CustomError } from './custom-error';
2
+ type LocalizedMessages = {
3
+ en: string;
4
+ ar: string;
5
+ };
2
6
  export declare class DatabaseConnectionError extends CustomError {
3
7
  statusCode: number;
4
- constructor(message?: string);
8
+ private lang;
9
+ private messages;
10
+ private static defaultMessages;
11
+ constructor(message?: LocalizedMessages | string, lang?: string);
5
12
  serializeError(): {
6
13
  message: string;
7
14
  }[];
8
15
  }
16
+ export {};
@@ -1,19 +1,51 @@
1
1
  "use strict";
2
+ // import { CustomError } from './custom-error';
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
4
  exports.DatabaseConnectionError = void 0;
5
+ // export class DatabaseConnectionError extends CustomError {
6
+ // statusCode = 500;
7
+ // constructor(message?: string) {
8
+ // super(message || 'Error connecting to database');
9
+ // Object.setPrototypeOf(this, DatabaseConnectionError.prototype);
10
+ // }
11
+ // serializeError() {
12
+ // return [
13
+ // {
14
+ // message: this.message || 'Error connecting to database',
15
+ // },
16
+ // ];
17
+ // }
18
+ // }
4
19
  const custom_error_1 = require("./custom-error");
5
20
  class DatabaseConnectionError extends custom_error_1.CustomError {
6
- constructor(message) {
7
- super(message || 'Error connecting to database');
21
+ constructor(message, lang = 'en') {
22
+ let localizedMessage;
23
+ let messages;
24
+ if (!message) {
25
+ messages = DatabaseConnectionError.defaultMessages;
26
+ localizedMessage = messages[lang] || messages['en'];
27
+ }
28
+ else if (typeof message === 'string') {
29
+ messages = { en: message, ar: message };
30
+ localizedMessage = message;
31
+ }
32
+ else {
33
+ messages = message;
34
+ localizedMessage = message[lang] || message['en'];
35
+ }
36
+ super(localizedMessage);
8
37
  this.statusCode = 500;
38
+ this.messages = messages;
39
+ this.lang = lang;
9
40
  Object.setPrototypeOf(this, DatabaseConnectionError.prototype);
10
41
  }
11
42
  serializeError() {
12
- return [
13
- {
14
- message: this.message || 'Error connecting to database',
15
- },
16
- ];
43
+ const localizedMessage = this.messages[this.lang] || this.messages['en'];
44
+ return [{ message: localizedMessage }];
17
45
  }
18
46
  }
19
47
  exports.DatabaseConnectionError = DatabaseConnectionError;
48
+ DatabaseConnectionError.defaultMessages = {
49
+ en: 'Error connecting to database',
50
+ ar: 'خطأ في الاتصال بقاعدة البيانات',
51
+ };
@@ -1,9 +1,17 @@
1
1
  import { CustomError } from './custom-error';
2
+ type LocalizedMessages = {
3
+ en: string;
4
+ ar: string;
5
+ };
2
6
  export declare class NotAllowedError extends CustomError {
3
7
  statusCode: number;
4
- constructor(message?: string);
8
+ private lang;
9
+ private messages;
10
+ private static defaultMessages;
11
+ constructor(message?: LocalizedMessages | string, lang?: string);
5
12
  serializeError(): {
6
13
  message: string;
7
14
  field?: string | undefined;
8
15
  }[];
9
16
  }
17
+ export {};
@@ -1,15 +1,47 @@
1
1
  "use strict";
2
+ // import { CustomError } from './custom-error';
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
4
  exports.NotAllowedError = void 0;
5
+ // export class NotAllowedError extends CustomError {
6
+ // statusCode: number = 405;
7
+ // constructor(message?: string) {
8
+ // super(message || 'not allowed error');
9
+ // Object.setPrototypeOf(this, NotAllowedError.prototype);
10
+ // }
11
+ // serializeError(): { message: string; field?: string | undefined }[] {
12
+ // return [{ message: this.message || 'not allowed error' }];
13
+ // }
14
+ // }
4
15
  const custom_error_1 = require("./custom-error");
5
16
  class NotAllowedError extends custom_error_1.CustomError {
6
- constructor(message) {
7
- super(message || 'not allowed error');
17
+ constructor(message, lang = 'en') {
18
+ let localizedMessage;
19
+ let messages;
20
+ if (!message) {
21
+ messages = NotAllowedError.defaultMessages;
22
+ localizedMessage = messages[lang] || messages['en'];
23
+ }
24
+ else if (typeof message === 'string') {
25
+ messages = { en: message, ar: message };
26
+ localizedMessage = message;
27
+ }
28
+ else {
29
+ messages = message;
30
+ localizedMessage = message[lang] || message['en'];
31
+ }
32
+ super(localizedMessage);
8
33
  this.statusCode = 405;
34
+ this.messages = messages;
35
+ this.lang = lang;
9
36
  Object.setPrototypeOf(this, NotAllowedError.prototype);
10
37
  }
11
38
  serializeError() {
12
- return [{ message: this.message || 'not allowed error' }];
39
+ const localizedMessage = this.messages[this.lang] || this.messages['en'];
40
+ return [{ message: localizedMessage }];
13
41
  }
14
42
  }
15
43
  exports.NotAllowedError = NotAllowedError;
44
+ NotAllowedError.defaultMessages = {
45
+ en: 'Not allowed error',
46
+ ar: 'خطأ: غير مسموح',
47
+ };
@@ -1,9 +1,17 @@
1
1
  import { CustomError } from './custom-error';
2
+ type LocalizedMessages = {
3
+ en: string;
4
+ ar: string;
5
+ };
2
6
  export declare class NotFound extends CustomError {
3
7
  statusCode: number;
4
- constructor(message?: string);
8
+ private lang;
9
+ private messages;
10
+ private static defaultMessages;
11
+ constructor(message?: LocalizedMessages | string, lang?: string);
5
12
  serializeError(): {
6
13
  message: string;
7
14
  field?: string | undefined;
8
15
  }[];
9
16
  }
17
+ export {};
@@ -1,15 +1,47 @@
1
1
  "use strict";
2
+ // import { CustomError } from './custom-error';
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
4
  exports.NotFound = void 0;
5
+ // export class NotFound extends CustomError {
6
+ // statusCode = 404;
7
+ // constructor(message?: string) {
8
+ // super(message || 'not found error');
9
+ // Object.setPrototypeOf(this, NotFound.prototype);
10
+ // }
11
+ // serializeError(): { message: string; field?: string | undefined }[] {
12
+ // return [{ message: this.message || 'not found error' }];
13
+ // }
14
+ // }
4
15
  const custom_error_1 = require("./custom-error");
5
16
  class NotFound extends custom_error_1.CustomError {
6
- constructor(message) {
7
- super(message || 'not found error');
17
+ constructor(message, lang = 'en') {
18
+ let localizedMessage;
19
+ let messages;
20
+ if (!message) {
21
+ messages = NotFound.defaultMessages;
22
+ localizedMessage = messages[lang] || messages['en'];
23
+ }
24
+ else if (typeof message === 'string') {
25
+ messages = { en: message, ar: message };
26
+ localizedMessage = message;
27
+ }
28
+ else {
29
+ messages = message;
30
+ localizedMessage = message[lang] || message['en'];
31
+ }
32
+ super(localizedMessage);
8
33
  this.statusCode = 404;
34
+ this.messages = messages;
35
+ this.lang = lang;
9
36
  Object.setPrototypeOf(this, NotFound.prototype);
10
37
  }
11
38
  serializeError() {
12
- return [{ message: this.message || 'not found error' }];
39
+ const localizedMessage = this.messages[this.lang] || this.messages['en'];
40
+ return [{ message: localizedMessage }];
13
41
  }
14
42
  }
15
43
  exports.NotFound = NotFound;
44
+ NotFound.defaultMessages = {
45
+ en: 'Not found error',
46
+ ar: 'خطأ: لم يتم العثور على الصفحة',
47
+ };
@@ -1,9 +1,17 @@
1
1
  import { CustomError } from './custom-error';
2
+ type LocalizedMessages = {
3
+ en: string;
4
+ ar: string;
5
+ };
2
6
  export declare class UnauthenticatedError extends CustomError {
3
7
  statusCode: number;
4
- constructor(message?: string);
8
+ private lang;
9
+ private messages;
10
+ private static defaultMessages;
11
+ constructor(message?: LocalizedMessages | string, lang?: string);
5
12
  serializeError(): {
6
13
  message: string;
7
14
  field?: string | undefined;
8
15
  }[];
9
16
  }
17
+ export {};
@@ -1,15 +1,47 @@
1
1
  "use strict";
2
+ // import { CustomError } from './custom-error';
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
4
  exports.UnauthenticatedError = void 0;
5
+ // export class UnauthenticatedError extends CustomError {
6
+ // statusCode = 401;
7
+ // constructor(message?: string) {
8
+ // super(message || 'un-authenticated error');
9
+ // Object.setPrototypeOf(this, UnauthenticatedError.prototype);
10
+ // }
11
+ // serializeError(): { message: string; field?: string | undefined }[] {
12
+ // return [{ message: this.message || 'un-authenticated error' }];
13
+ // }
14
+ // }
4
15
  const custom_error_1 = require("./custom-error");
5
16
  class UnauthenticatedError extends custom_error_1.CustomError {
6
- constructor(message) {
7
- super(message || 'un-authenticated error');
17
+ constructor(message, lang = 'en') {
18
+ let localizedMessage;
19
+ let messages;
20
+ if (!message) {
21
+ messages = UnauthenticatedError.defaultMessages;
22
+ localizedMessage = messages[lang] || messages['en'];
23
+ }
24
+ else if (typeof message === 'string') {
25
+ messages = { en: message, ar: message };
26
+ localizedMessage = message;
27
+ }
28
+ else {
29
+ messages = message;
30
+ localizedMessage = message[lang] || message['en'];
31
+ }
32
+ super(localizedMessage);
8
33
  this.statusCode = 401;
34
+ this.messages = messages;
35
+ this.lang = lang;
9
36
  Object.setPrototypeOf(this, UnauthenticatedError.prototype);
10
37
  }
11
38
  serializeError() {
12
- return [{ message: this.message || 'un-authenticated error' }];
39
+ const localizedMessage = this.messages[this.lang] || this.messages['en'];
40
+ return [{ message: localizedMessage }];
13
41
  }
14
42
  }
15
43
  exports.UnauthenticatedError = UnauthenticatedError;
44
+ UnauthenticatedError.defaultMessages = {
45
+ en: 'Unauthenticated error',
46
+ ar: 'خطأ: غير مصدق',
47
+ };
@@ -1,9 +1,17 @@
1
1
  import { CustomError } from './custom-error';
2
+ type LocalizedMessages = {
3
+ en: string;
4
+ ar: string;
5
+ };
2
6
  export declare class UnauthorizedError extends CustomError {
3
7
  statusCode: number;
4
- constructor(message?: string);
8
+ private lang;
9
+ private messages;
10
+ private static defaultMessages;
11
+ constructor(message?: LocalizedMessages | string, lang?: string);
5
12
  serializeError(): {
6
13
  message: string;
7
14
  field?: string | undefined;
8
15
  }[];
9
16
  }
17
+ export {};
@@ -1,15 +1,47 @@
1
1
  "use strict";
2
+ // import { CustomError } from './custom-error';
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
4
  exports.UnauthorizedError = void 0;
5
+ // export class UnauthorizedError extends CustomError {
6
+ // statusCode = 403;
7
+ // constructor(message?: string) {
8
+ // super(message || 'un-unauthorized error');
9
+ // Object.setPrototypeOf(this, UnauthorizedError.prototype);
10
+ // }
11
+ // serializeError(): { message: string; field?: string | undefined }[] {
12
+ // return [{ message: this.message || 'un-unauthorized error' }];
13
+ // }
14
+ // }
4
15
  const custom_error_1 = require("./custom-error");
5
16
  class UnauthorizedError extends custom_error_1.CustomError {
6
- constructor(message) {
7
- super(message || 'un-unauthorized error');
17
+ constructor(message, lang = 'en') {
18
+ let localizedMessage;
19
+ let messages;
20
+ if (!message) {
21
+ messages = UnauthorizedError.defaultMessages;
22
+ localizedMessage = messages[lang] || messages['en'];
23
+ }
24
+ else if (typeof message === 'string') {
25
+ messages = { en: message, ar: message };
26
+ localizedMessage = message;
27
+ }
28
+ else {
29
+ messages = message;
30
+ localizedMessage = message[lang] || message['en'];
31
+ }
32
+ super(localizedMessage);
8
33
  this.statusCode = 403;
34
+ this.messages = messages;
35
+ this.lang = lang;
9
36
  Object.setPrototypeOf(this, UnauthorizedError.prototype);
10
37
  }
11
38
  serializeError() {
12
- return [{ message: this.message || 'un-unauthorized error' }];
39
+ const localizedMessage = this.messages[this.lang] || this.messages['en'];
40
+ return [{ message: localizedMessage }];
13
41
  }
14
42
  }
15
43
  exports.UnauthorizedError = UnauthorizedError;
44
+ UnauthorizedError.defaultMessages = {
45
+ en: 'Unauthorized error',
46
+ ar: 'خطأ: غير مسموح',
47
+ };
@@ -15,13 +15,16 @@ const unauthenticated_error_1 = require("../errors/unauthenticated-error");
15
15
  const unauthorized_error_1 = require("../errors/unauthorized-error");
16
16
  const isauthenticated = (req, res, next) => __awaiter(void 0, void 0, void 0, function* () {
17
17
  if (!req.session.access)
18
- return next(new unauthenticated_error_1.UnauthenticatedError('access token not found'));
18
+ return next(new unauthenticated_error_1.UnauthenticatedError({ en: 'access token not found', ar: 'الرمز المميز للوصول غير موجود' }, req.lang));
19
19
  let payload;
20
20
  try {
21
21
  payload = (0, jsonwebtoken_1.verify)(req.session.access, process.env.JWT_KEY);
22
22
  req.loggedUser = payload;
23
23
  if (req.loggedUser.isBlocked.value)
24
- return next(new unauthorized_error_1.UnauthorizedError(`user is blocked:${req.loggedUser.isBlocked.reason}`));
24
+ return next(new unauthorized_error_1.UnauthorizedError({
25
+ en: `Forbidden: User is blocked ${req.loggedUser.isBlocked.reason}`,
26
+ ar: ` ممنوع: المستخدم محظور ${req.loggedUser.isBlocked.reason}`,
27
+ }, req.lang));
25
28
  }
26
29
  catch (error) {
27
30
  return res.status(423).json({ message: 'access token expired' });
package/package.json CHANGED
@@ -1,55 +1,55 @@
1
- {
2
- "name": "@duvdu-v1/duvdu",
3
- "version": "1.1.86",
4
- "main": "./build/index.js",
5
- "types": "./build/index.d.ts",
6
- "files": [
7
- "build/**/*"
8
- ],
9
- "scripts": {
10
- "clean": "rimraf ./build",
11
- "build": "npm run clean && tsc",
12
- "fix:build": "mv ./build/common/src/* ./build && rm -rf ./build/auth ./build/common",
13
- "pub": "git add . && git commit -m \"updates\" && npm version patch && npm run build && npm publish",
14
- "lint": "eslint .",
15
- "lint:fix": "eslint --fix .",
16
- "format": "prettier --write ."
17
- },
18
- "keywords": [],
19
- "author": "motemed khaled",
20
- "license": "ISC",
21
- "dependencies": {
22
- "@duvdu-v1/duvdu": "^1.1.4",
23
- "@types/express": "^4.17.21",
24
- "@types/express-session": "^1.18.0",
25
- "@types/jsonwebtoken": "^9.0.5",
26
- "@types/multer": "^1.4.11",
27
- "@types/node": "^20.11.0",
28
- "@typescript-eslint/eslint-plugin": "^6.19.0",
29
- "@typescript-eslint/parser": "^6.19.0",
30
- "aws-sdk": "^2.1595.0",
31
- "connect-redis": "^7.1.1",
32
- "express": "^4.18.2",
33
- "express-async-errors": "^3.1.1",
34
- "express-session": "^1.18.0",
35
- "express-validator": "^7.0.1",
36
- "jsonwebtoken": "^9.0.2",
37
- "mongoose": "^8.0.4",
38
- "multer": "^1.4.5-lts.1",
39
- "node-nats-streaming": "^0.3.2",
40
- "redis": "^4.6.13",
41
- "rimraf": "^5.0.5",
42
- "typescript": "^5.3.3",
43
- "uuid": "^9.0.1"
44
- },
45
- "devDependencies": {
46
- "@types/uuid": "^9.0.8",
47
- "del-cli": "^5.1.0",
48
- "eslint": "^8.56.0",
49
- "eslint-config-prettier": "^9.1.0",
50
- "eslint-plugin-import": "^2.29.1",
51
- "eslint-plugin-prettier": "^5.1.3",
52
- "prettier": "^3.2.4"
53
- },
54
- "description": ""
55
- }
1
+ {
2
+ "name": "@duvdu-v1/duvdu",
3
+ "version": "1.1.88",
4
+ "main": "./build/index.js",
5
+ "types": "./build/index.d.ts",
6
+ "files": [
7
+ "build/**/*"
8
+ ],
9
+ "scripts": {
10
+ "clean": "rimraf ./build",
11
+ "build": "npm run clean && tsc",
12
+ "fix:build": "mv ./build/common/src/* ./build && rm -rf ./build/auth ./build/common",
13
+ "pub": "git add . && git commit -m \"updates\" && npm version patch && npm run build && npm publish",
14
+ "lint": "eslint .",
15
+ "lint:fix": "eslint --fix .",
16
+ "format": "prettier --write ."
17
+ },
18
+ "keywords": [],
19
+ "author": "motemed khaled",
20
+ "license": "ISC",
21
+ "dependencies": {
22
+ "@duvdu-v1/duvdu": "^1.1.4",
23
+ "@types/express": "^4.17.21",
24
+ "@types/express-session": "^1.18.0",
25
+ "@types/jsonwebtoken": "^9.0.5",
26
+ "@types/multer": "^1.4.11",
27
+ "@types/node": "^20.11.0",
28
+ "@typescript-eslint/eslint-plugin": "^6.19.0",
29
+ "@typescript-eslint/parser": "^6.19.0",
30
+ "aws-sdk": "^2.1595.0",
31
+ "connect-redis": "^7.1.1",
32
+ "express": "^4.18.2",
33
+ "express-async-errors": "^3.1.1",
34
+ "express-session": "^1.18.0",
35
+ "express-validator": "^7.0.1",
36
+ "jsonwebtoken": "^9.0.2",
37
+ "mongoose": "^8.0.4",
38
+ "multer": "^1.4.5-lts.1",
39
+ "node-nats-streaming": "^0.3.2",
40
+ "redis": "^4.6.13",
41
+ "rimraf": "^5.0.5",
42
+ "typescript": "^5.3.3",
43
+ "uuid": "^9.0.1"
44
+ },
45
+ "devDependencies": {
46
+ "@types/uuid": "^9.0.8",
47
+ "del-cli": "^5.1.0",
48
+ "eslint": "^8.56.0",
49
+ "eslint-config-prettier": "^9.1.0",
50
+ "eslint-plugin-import": "^2.29.1",
51
+ "eslint-plugin-prettier": "^5.1.3",
52
+ "prettier": "^3.2.4"
53
+ },
54
+ "description": ""
55
+ }