@modernlock/common 1.0.2
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/build/errors/auth-error.d.ts +8 -0
- package/build/errors/auth-error.js +17 -0
- package/build/errors/authorization-error.d.ts +8 -0
- package/build/errors/authorization-error.js +17 -0
- package/build/errors/custom-error.d.ts +8 -0
- package/build/errors/custom-error.js +12 -0
- package/build/errors/email-exist-error.d.ts +8 -0
- package/build/errors/email-exist-error.js +17 -0
- package/build/errors/file-not-exist-error.d.ts +8 -0
- package/build/errors/file-not-exist-error.js +17 -0
- package/build/errors/internal-server-error.d.ts +8 -0
- package/build/errors/internal-server-error.js +17 -0
- package/build/errors/no-key-assigned-error.d.ts +8 -0
- package/build/errors/no-key-assigned-error.js +17 -0
- package/build/errors/not-found-error.d.ts +8 -0
- package/build/errors/not-found-error.js +16 -0
- package/build/errors/not-primary-email-error.d.ts +8 -0
- package/build/errors/not-primary-email-error.js +17 -0
- package/build/errors/password-incorrect-error.d.ts +8 -0
- package/build/errors/password-incorrect-error.js +17 -0
- package/build/errors/property-not-provided.d.ts +8 -0
- package/build/errors/property-not-provided.js +17 -0
- package/build/errors/user-not-found-error.d.ts +8 -0
- package/build/errors/user-not-found-error.js +17 -0
- package/build/index.d.ts +15 -0
- package/build/index.js +31 -0
- package/build/middlewares/checkAuth.d.ts +2 -0
- package/build/middlewares/checkAuth.js +18 -0
- package/build/middlewares/error-handler.d.ts +2 -0
- package/build/middlewares/error-handler.js +13 -0
- package/build/middlewares/session.d.ts +4 -0
- package/build/middlewares/session.js +21 -0
- package/build/utils/jwtEncryption.d.ts +2 -0
- package/build/utils/jwtEncryption.js +29 -0
- package/build/utils/logger.d.ts +2 -0
- package/build/utils/logger.js +40 -0
- package/package.json +34 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AuthenticationError = void 0;
|
|
4
|
+
const custom_error_1 = require("./custom-error");
|
|
5
|
+
class AuthenticationError extends custom_error_1.CustomError {
|
|
6
|
+
constructor() {
|
|
7
|
+
super("Not Authenticated");
|
|
8
|
+
this.statusCode = 401;
|
|
9
|
+
Object.setPrototypeOf(this, AuthenticationError.prototype);
|
|
10
|
+
}
|
|
11
|
+
;
|
|
12
|
+
serializeErrors() {
|
|
13
|
+
return [{ message: "Not Authenticated" }];
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.AuthenticationError = AuthenticationError;
|
|
17
|
+
;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AuthorizationError = void 0;
|
|
4
|
+
const custom_error_1 = require("./custom-error");
|
|
5
|
+
class AuthorizationError extends custom_error_1.CustomError {
|
|
6
|
+
constructor() {
|
|
7
|
+
super("Not Authorized to perform this operation");
|
|
8
|
+
this.statusCode = 403;
|
|
9
|
+
Object.setPrototypeOf(this, AuthorizationError.prototype);
|
|
10
|
+
}
|
|
11
|
+
;
|
|
12
|
+
serializeErrors() {
|
|
13
|
+
return [{ message: "Not Authorized to perform this operation" }];
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.AuthorizationError = AuthorizationError;
|
|
17
|
+
;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CustomError = void 0;
|
|
4
|
+
class CustomError extends Error {
|
|
5
|
+
constructor(message) {
|
|
6
|
+
super(message);
|
|
7
|
+
Object.setPrototypeOf(this, CustomError.prototype);
|
|
8
|
+
}
|
|
9
|
+
;
|
|
10
|
+
}
|
|
11
|
+
exports.CustomError = CustomError;
|
|
12
|
+
;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EmailExistsError = void 0;
|
|
4
|
+
const custom_error_1 = require("./custom-error");
|
|
5
|
+
class EmailExistsError extends custom_error_1.CustomError {
|
|
6
|
+
constructor() {
|
|
7
|
+
super("Email already exists");
|
|
8
|
+
this.statusCode = 400;
|
|
9
|
+
Object.setPrototypeOf(this, EmailExistsError.prototype);
|
|
10
|
+
}
|
|
11
|
+
;
|
|
12
|
+
serializeErrors() {
|
|
13
|
+
return [{ message: 'Email already exists' }];
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.EmailExistsError = EmailExistsError;
|
|
17
|
+
;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FileNotExistError = void 0;
|
|
4
|
+
const custom_error_1 = require("./custom-error");
|
|
5
|
+
class FileNotExistError extends custom_error_1.CustomError {
|
|
6
|
+
constructor() {
|
|
7
|
+
super('Please enter a file');
|
|
8
|
+
this.statusCode = 400;
|
|
9
|
+
Object.setPrototypeOf(this, FileNotExistError.prototype);
|
|
10
|
+
}
|
|
11
|
+
;
|
|
12
|
+
serializeErrors() {
|
|
13
|
+
return [{ message: 'Please enter a file' }];
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.FileNotExistError = FileNotExistError;
|
|
17
|
+
;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InternalServerError = void 0;
|
|
4
|
+
const custom_error_1 = require("./custom-error");
|
|
5
|
+
class InternalServerError extends custom_error_1.CustomError {
|
|
6
|
+
constructor() {
|
|
7
|
+
super("Internal server error");
|
|
8
|
+
this.statusCode = 500;
|
|
9
|
+
Object.setPrototypeOf(this, InternalServerError.prototype);
|
|
10
|
+
}
|
|
11
|
+
;
|
|
12
|
+
serializeErrors() {
|
|
13
|
+
return [{ message: this.message }];
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.InternalServerError = InternalServerError;
|
|
17
|
+
;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NoKeyAssignedError = void 0;
|
|
4
|
+
const custom_error_1 = require("./custom-error");
|
|
5
|
+
class NoKeyAssignedError extends custom_error_1.CustomError {
|
|
6
|
+
constructor() {
|
|
7
|
+
super("No key assigned error");
|
|
8
|
+
this.statusCode = 400;
|
|
9
|
+
Object.setPrototypeOf(this, NoKeyAssignedError.prototype);
|
|
10
|
+
}
|
|
11
|
+
;
|
|
12
|
+
serializeErrors() {
|
|
13
|
+
return [{ message: this.message }];
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.NoKeyAssignedError = NoKeyAssignedError;
|
|
17
|
+
;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NotFoundError = void 0;
|
|
4
|
+
const custom_error_1 = require("./custom-error");
|
|
5
|
+
class NotFoundError extends custom_error_1.CustomError {
|
|
6
|
+
constructor() {
|
|
7
|
+
super("Route not found");
|
|
8
|
+
this.statusCode = 404;
|
|
9
|
+
Object.setPrototypeOf(this, NotFoundError.prototype);
|
|
10
|
+
}
|
|
11
|
+
;
|
|
12
|
+
serializeErrors() {
|
|
13
|
+
return [{ message: "Not found error" }];
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.NotFoundError = NotFoundError;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NotPrimaryEmailError = void 0;
|
|
4
|
+
const custom_error_1 = require("./custom-error");
|
|
5
|
+
class NotPrimaryEmailError extends custom_error_1.CustomError {
|
|
6
|
+
constructor() {
|
|
7
|
+
super("Please use the primary email to login!");
|
|
8
|
+
this.statusCode = 400;
|
|
9
|
+
Object.setPrototypeOf(this, NotPrimaryEmailError.prototype);
|
|
10
|
+
}
|
|
11
|
+
;
|
|
12
|
+
serializeErrors() {
|
|
13
|
+
return [{ message: "Please use the primary email to login!" }];
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.NotPrimaryEmailError = NotPrimaryEmailError;
|
|
17
|
+
;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PasswordIncorrectError = void 0;
|
|
4
|
+
const custom_error_1 = require("./custom-error");
|
|
5
|
+
class PasswordIncorrectError extends custom_error_1.CustomError {
|
|
6
|
+
constructor() {
|
|
7
|
+
super("Password incorrect!");
|
|
8
|
+
this.statusCode = 400;
|
|
9
|
+
Object.setPrototypeOf(this, PasswordIncorrectError.prototype);
|
|
10
|
+
}
|
|
11
|
+
;
|
|
12
|
+
serializeErrors() {
|
|
13
|
+
return [{ message: "Password incorrect!" }];
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.PasswordIncorrectError = PasswordIncorrectError;
|
|
17
|
+
;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PropertyNotProvided = void 0;
|
|
4
|
+
const custom_error_1 = require("./custom-error");
|
|
5
|
+
class PropertyNotProvided extends custom_error_1.CustomError {
|
|
6
|
+
constructor() {
|
|
7
|
+
super("Property not provided");
|
|
8
|
+
this.statusCode = 400;
|
|
9
|
+
Object.setPrototypeOf(this, PropertyNotProvided.prototype);
|
|
10
|
+
}
|
|
11
|
+
;
|
|
12
|
+
serializeErrors() {
|
|
13
|
+
return [{ message: 'Property not provided' }];
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.PropertyNotProvided = PropertyNotProvided;
|
|
17
|
+
;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UserNotFoundError = void 0;
|
|
4
|
+
const custom_error_1 = require("./custom-error");
|
|
5
|
+
class UserNotFoundError extends custom_error_1.CustomError {
|
|
6
|
+
constructor() {
|
|
7
|
+
super("User not found, please signup and try again later!");
|
|
8
|
+
this.statusCode = 400;
|
|
9
|
+
Object.setPrototypeOf(this, UserNotFoundError.prototype);
|
|
10
|
+
}
|
|
11
|
+
;
|
|
12
|
+
serializeErrors() {
|
|
13
|
+
return [{ message: "User not found, please signup and try again later!" }];
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.UserNotFoundError = UserNotFoundError;
|
|
17
|
+
;
|
package/build/index.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export * from "./errors/custom-error";
|
|
2
|
+
export * from "./errors/internal-server-error";
|
|
3
|
+
export * from "./errors/not-found-error";
|
|
4
|
+
export * from "./errors/auth-error";
|
|
5
|
+
export * from "./errors/email-exist-error";
|
|
6
|
+
export * from "./errors/password-incorrect-error";
|
|
7
|
+
export * from "./errors/user-not-found-error";
|
|
8
|
+
export * from "./errors/not-primary-email-error";
|
|
9
|
+
export * from "./errors/no-key-assigned-error";
|
|
10
|
+
export * from "./errors/property-not-provided";
|
|
11
|
+
export * from "./middlewares/checkAuth";
|
|
12
|
+
export * from "./middlewares/error-handler";
|
|
13
|
+
export * from "./middlewares/session";
|
|
14
|
+
export * from "./utils/jwtEncryption";
|
|
15
|
+
export * from "./utils/logger";
|
package/build/index.js
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
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("./errors/custom-error"), exports);
|
|
18
|
+
__exportStar(require("./errors/internal-server-error"), exports);
|
|
19
|
+
__exportStar(require("./errors/not-found-error"), exports);
|
|
20
|
+
__exportStar(require("./errors/auth-error"), exports);
|
|
21
|
+
__exportStar(require("./errors/email-exist-error"), exports);
|
|
22
|
+
__exportStar(require("./errors/password-incorrect-error"), exports);
|
|
23
|
+
__exportStar(require("./errors/user-not-found-error"), exports);
|
|
24
|
+
__exportStar(require("./errors/not-primary-email-error"), exports);
|
|
25
|
+
__exportStar(require("./errors/no-key-assigned-error"), exports);
|
|
26
|
+
__exportStar(require("./errors/property-not-provided"), exports);
|
|
27
|
+
__exportStar(require("./middlewares/checkAuth"), exports);
|
|
28
|
+
__exportStar(require("./middlewares/error-handler"), exports);
|
|
29
|
+
__exportStar(require("./middlewares/session"), exports);
|
|
30
|
+
__exportStar(require("./utils/jwtEncryption"), exports);
|
|
31
|
+
__exportStar(require("./utils/logger"), exports);
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.authenticateToken = void 0;
|
|
4
|
+
const auth_error_1 = require("../errors/auth-error");
|
|
5
|
+
const jwtEncryption_1 = require("../utils/jwtEncryption");
|
|
6
|
+
const authenticateToken = (req, res, next) => {
|
|
7
|
+
const { token } = req.session || {};
|
|
8
|
+
if (!token)
|
|
9
|
+
throw new auth_error_1.AuthenticationError();
|
|
10
|
+
const user = (0, jwtEncryption_1.jwtDecrypt)(token);
|
|
11
|
+
if (!user)
|
|
12
|
+
throw new auth_error_1.AuthenticationError();
|
|
13
|
+
else {
|
|
14
|
+
req.user = user;
|
|
15
|
+
next();
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
exports.authenticateToken = authenticateToken;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.errorHandler = void 0;
|
|
4
|
+
const custom_error_1 = require("../errors/custom-error");
|
|
5
|
+
const errorHandler = (err, req, res, next) => {
|
|
6
|
+
if (err instanceof custom_error_1.CustomError) {
|
|
7
|
+
return res.status(err.statusCode).send({ errors: err.serializeErrors() });
|
|
8
|
+
}
|
|
9
|
+
res.status(400).send({
|
|
10
|
+
errors: [{ message: err.message ? err.message : "Something went wrong" }]
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
exports.errorHandler = errorHandler;
|
|
@@ -0,0 +1,21 @@
|
|
|
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.session = void 0;
|
|
7
|
+
const cookie_session_1 = __importDefault(require("cookie-session"));
|
|
8
|
+
const session = () => {
|
|
9
|
+
return (0, cookie_session_1.default)({
|
|
10
|
+
secret: process.env.SESSION_SECRET,
|
|
11
|
+
name: "session",
|
|
12
|
+
signed: false,
|
|
13
|
+
secure: false,
|
|
14
|
+
sameSite: "lax",
|
|
15
|
+
httpOnly: true,
|
|
16
|
+
path: "/",
|
|
17
|
+
maxAge: 60 * 60 * 24 * 100 * 365,
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
exports.session = session;
|
|
21
|
+
exports.default = exports.session;
|
|
@@ -0,0 +1,29 @@
|
|
|
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.jwtDecrypt = exports.jwtEncrypt = void 0;
|
|
7
|
+
const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
|
|
8
|
+
function jwtEncrypt(data, expiration = "5m") {
|
|
9
|
+
if (!process.env.ACCESS_TOKEN)
|
|
10
|
+
throw new Error("ACCESS_TOKEN must be defined");
|
|
11
|
+
let accessToken = jsonwebtoken_1.default.sign(data, process.env.ACCESS_TOKEN, {
|
|
12
|
+
expiresIn: expiration,
|
|
13
|
+
});
|
|
14
|
+
return accessToken;
|
|
15
|
+
}
|
|
16
|
+
exports.jwtEncrypt = jwtEncrypt;
|
|
17
|
+
function jwtDecrypt(token) {
|
|
18
|
+
if (!process.env.ACCESS_TOKEN)
|
|
19
|
+
throw new Error("ACCESS_TOKEN must be defined");
|
|
20
|
+
let data = null;
|
|
21
|
+
jsonwebtoken_1.default.verify(token, process.env.ACCESS_TOKEN, (err, user) => {
|
|
22
|
+
if (err)
|
|
23
|
+
return;
|
|
24
|
+
else
|
|
25
|
+
data = user;
|
|
26
|
+
});
|
|
27
|
+
return data;
|
|
28
|
+
}
|
|
29
|
+
exports.jwtDecrypt = jwtDecrypt;
|
|
@@ -0,0 +1,40 @@
|
|
|
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.winstonLogger = void 0;
|
|
7
|
+
const winston_1 = __importDefault(require("winston"));
|
|
8
|
+
const winston_elasticsearch_1 = require("winston-elasticsearch");
|
|
9
|
+
const esTransformer = (logData) => {
|
|
10
|
+
return (0, winston_elasticsearch_1.ElasticsearchTransformer)(logData);
|
|
11
|
+
};
|
|
12
|
+
const winstonLogger = (elasticsearchNode, name, level) => {
|
|
13
|
+
const options = {
|
|
14
|
+
console: {
|
|
15
|
+
level,
|
|
16
|
+
handleExceptions: true,
|
|
17
|
+
json: false,
|
|
18
|
+
colorize: true
|
|
19
|
+
},
|
|
20
|
+
elasticsearch: {
|
|
21
|
+
level,
|
|
22
|
+
transformer: esTransformer,
|
|
23
|
+
clientOpts: {
|
|
24
|
+
node: elasticsearchNode,
|
|
25
|
+
log: level,
|
|
26
|
+
maxRetries: 2,
|
|
27
|
+
requestTimeout: 10000,
|
|
28
|
+
sniffOnStart: false
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
const esTransport = new winston_elasticsearch_1.ElasticsearchTransport(options.elasticsearch);
|
|
33
|
+
const logger = winston_1.default.createLogger({
|
|
34
|
+
exitOnError: false,
|
|
35
|
+
defaultMeta: { service: name },
|
|
36
|
+
transports: [new winston_1.default.transports.Console(options.console), esTransport]
|
|
37
|
+
});
|
|
38
|
+
return logger;
|
|
39
|
+
};
|
|
40
|
+
exports.winstonLogger = winstonLogger;
|
package/package.json
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@modernlock/common",
|
|
3
|
+
"version": "1.0.2",
|
|
4
|
+
"main": "./build/index.js",
|
|
5
|
+
"types": "./build/index.d.ts",
|
|
6
|
+
"files": [
|
|
7
|
+
"./build/**/*"
|
|
8
|
+
],
|
|
9
|
+
"scripts": {
|
|
10
|
+
"clean": "del ./build/*",
|
|
11
|
+
"build": "npm run clean && tsc"
|
|
12
|
+
},
|
|
13
|
+
"keywords": [],
|
|
14
|
+
"author": "",
|
|
15
|
+
"license": "ISC",
|
|
16
|
+
"devDependencies": {
|
|
17
|
+
"@types/amqplib": "0.10.1",
|
|
18
|
+
"@types/jsonwebtoken": "9.0.2",
|
|
19
|
+
"del-cli": "^5.0.0",
|
|
20
|
+
"typescript": "5.0.4",
|
|
21
|
+
"@types/cookie-session": "2.0.44",
|
|
22
|
+
"@types/express": "4.17.17"
|
|
23
|
+
},
|
|
24
|
+
"dependencies": {
|
|
25
|
+
"@elastic/elasticsearch": "^8.12.2",
|
|
26
|
+
"amqplib": "0.10.3",
|
|
27
|
+
"cookie-session": "2.0.0",
|
|
28
|
+
"express": "4.18.2",
|
|
29
|
+
"jsonwebtoken": "9.0.0",
|
|
30
|
+
"winston": "^3.12.0",
|
|
31
|
+
"winston-elasticsearch": "^0.18.0"
|
|
32
|
+
},
|
|
33
|
+
"description": ""
|
|
34
|
+
}
|