@bmostickit/common 1.0.0 → 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.
Files changed (33) hide show
  1. package/build/errors/bad-request-error.d.ts +9 -0
  2. package/build/errors/bad-request-error.js +16 -0
  3. package/build/errors/custom-error.d.ts +8 -0
  4. package/build/errors/custom-error.js +10 -0
  5. package/build/errors/database-connection-error.d.ts +9 -0
  6. package/build/errors/database-connection-error.js +16 -0
  7. package/build/errors/not-authorized-error.d.ts +8 -0
  8. package/build/errors/not-authorized-error.js +15 -0
  9. package/build/errors/not-found-error.d.ts +8 -0
  10. package/build/errors/not-found-error.js +15 -0
  11. package/build/errors/request-validation-error.d.ts +14 -0
  12. package/build/errors/request-validation-error.js +22 -0
  13. package/build/events/base-listener.d.ts +28 -0
  14. package/build/events/base-listener.js +95 -0
  15. package/build/events/base-publisher.d.ts +18 -0
  16. package/build/events/base-publisher.js +40 -0
  17. package/build/events/subjects.d.ts +8 -0
  18. package/build/events/subjects.js +12 -0
  19. package/build/events/types/expirations.d.ts +6 -0
  20. package/build/events/types/expirations.js +12 -0
  21. package/build/index.d.ts +13 -0
  22. package/build/index.js +29 -0
  23. package/build/middlewares/current-user.d.ts +14 -0
  24. package/build/middlewares/current-user.js +20 -0
  25. package/build/middlewares/error-handler.d.ts +2 -0
  26. package/build/middlewares/error-handler.js +15 -0
  27. package/build/middlewares/refresh.d.ts +2 -0
  28. package/build/middlewares/refresh.js +28 -0
  29. package/build/middlewares/require-auth.d.ts +2 -0
  30. package/build/middlewares/require-auth.js +11 -0
  31. package/build/middlewares/validate-request.d.ts +2 -0
  32. package/build/middlewares/validate-request.js +13 -0
  33. package/package.json +1 -1
@@ -0,0 +1,9 @@
1
+ import { CustomError } from './custom-error';
2
+ export declare class BadRequestError extends CustomError {
3
+ message: string;
4
+ statusCode: number;
5
+ constructor(message: string);
6
+ serializeErrors(): {
7
+ message: string;
8
+ }[];
9
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BadRequestError = void 0;
4
+ const custom_error_1 = require("./custom-error");
5
+ class BadRequestError extends custom_error_1.CustomError {
6
+ constructor(message) {
7
+ super(message);
8
+ this.message = message;
9
+ this.statusCode = 400;
10
+ Object.setPrototypeOf(this, BadRequestError.prototype);
11
+ }
12
+ serializeErrors() {
13
+ return [{ message: this.message }];
14
+ }
15
+ }
16
+ exports.BadRequestError = BadRequestError;
@@ -0,0 +1,8 @@
1
+ export declare abstract class CustomError extends Error {
2
+ abstract statusCode: number;
3
+ constructor(message: string);
4
+ abstract serializeErrors(): {
5
+ message: string;
6
+ field?: string;
7
+ }[];
8
+ }
@@ -0,0 +1,10 @@
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
+ exports.CustomError = CustomError;
@@ -0,0 +1,9 @@
1
+ import { CustomError } from './custom-error';
2
+ export declare class DatabaseConnectionError extends CustomError {
3
+ statusCode: number;
4
+ reason: string;
5
+ constructor();
6
+ serializeErrors(): {
7
+ message: string;
8
+ }[];
9
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DatabaseConnectionError = void 0;
4
+ const custom_error_1 = require("./custom-error");
5
+ class DatabaseConnectionError extends custom_error_1.CustomError {
6
+ constructor() {
7
+ super('Error connecting to database');
8
+ this.statusCode = 500;
9
+ this.reason = 'Error connecting to database';
10
+ Object.setPrototypeOf(this, DatabaseConnectionError.prototype);
11
+ }
12
+ serializeErrors() {
13
+ return [{ message: this.reason }];
14
+ }
15
+ }
16
+ exports.DatabaseConnectionError = DatabaseConnectionError;
@@ -0,0 +1,8 @@
1
+ import { CustomError } from './custom-error';
2
+ export declare class NotAuthorizedError extends CustomError {
3
+ statusCode: number;
4
+ constructor();
5
+ serializeErrors(): {
6
+ message: string;
7
+ }[];
8
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NotAuthorizedError = void 0;
4
+ const custom_error_1 = require("./custom-error");
5
+ class NotAuthorizedError extends custom_error_1.CustomError {
6
+ constructor() {
7
+ super('Not authorized');
8
+ this.statusCode = 401;
9
+ Object.setPrototypeOf(this, NotAuthorizedError.prototype);
10
+ }
11
+ serializeErrors() {
12
+ return [{ message: 'Not authorized' }];
13
+ }
14
+ }
15
+ exports.NotAuthorizedError = NotAuthorizedError;
@@ -0,0 +1,8 @@
1
+ import { CustomError } from './custom-error';
2
+ export declare class NotFoundError extends CustomError {
3
+ statusCode: number;
4
+ constructor();
5
+ serializeErrors(): {
6
+ message: string;
7
+ }[];
8
+ }
@@ -0,0 +1,15 @@
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
+ serializeErrors() {
12
+ return [{ message: 'Not Found' }];
13
+ }
14
+ }
15
+ exports.NotFoundError = NotFoundError;
@@ -0,0 +1,14 @@
1
+ import { ValidationError } from 'express-validator';
2
+ import { CustomError } from './custom-error';
3
+ export declare class RequestValidationError extends CustomError {
4
+ errors: ValidationError[];
5
+ statusCode: number;
6
+ constructor(errors: ValidationError[]);
7
+ serializeErrors(): ({
8
+ message: any;
9
+ field: string;
10
+ } | {
11
+ message: any;
12
+ field?: undefined;
13
+ })[];
14
+ }
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RequestValidationError = void 0;
4
+ const custom_error_1 = require("./custom-error");
5
+ class RequestValidationError extends custom_error_1.CustomError {
6
+ constructor(errors) {
7
+ super('Invalid request parameters');
8
+ this.errors = errors;
9
+ this.statusCode = 400;
10
+ //Only because we are extending a built in class
11
+ Object.setPrototypeOf(this, RequestValidationError.prototype);
12
+ }
13
+ serializeErrors() {
14
+ return this.errors.map((err) => {
15
+ if (err.type === 'field') {
16
+ return { message: err.msg, field: err.path };
17
+ }
18
+ return { message: err.msg };
19
+ });
20
+ }
21
+ }
22
+ exports.RequestValidationError = RequestValidationError;
@@ -0,0 +1,28 @@
1
+ import { AckPolicy, DeliverPolicy, JetStreamManager, JsMsg } from 'nats';
2
+ import { Subjects } from './subjects';
3
+ interface Event {
4
+ subject: Subjects;
5
+ data: any;
6
+ }
7
+ export declare abstract class Listener<T extends Event> {
8
+ protected jsm: JetStreamManager;
9
+ abstract stream: string;
10
+ abstract subject: T['subject'];
11
+ abstract consumerName: string;
12
+ abstract onMessage(data: T['data'], msg: JsMsg): void;
13
+ protected ackWait: number;
14
+ constructor(jsm: JetStreamManager);
15
+ consumerConfig(): {
16
+ deliver_policy: DeliverPolicy;
17
+ akc_policy: AckPolicy;
18
+ ack_wait: number;
19
+ durable_name: string;
20
+ };
21
+ streamConfig(): {
22
+ name: string;
23
+ subjects: string[];
24
+ };
25
+ listen(): Promise<void>;
26
+ parseMessage(msg: JsMsg): any;
27
+ }
28
+ export {};
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __asyncValues = (this && this.__asyncValues) || function (o) {
12
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
13
+ var m = o[Symbol.asyncIterator], i;
14
+ return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
15
+ function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
16
+ function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
17
+ };
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.Listener = void 0;
20
+ const nats_1 = require("nats");
21
+ class Listener {
22
+ constructor(jsm) {
23
+ this.jsm = jsm;
24
+ this.ackWait = 5000000000;
25
+ }
26
+ consumerConfig() {
27
+ return {
28
+ deliver_policy: nats_1.DeliverPolicy.All,
29
+ akc_policy: nats_1.AckPolicy.Explicit,
30
+ ack_wait: this.ackWait,
31
+ durable_name: this.consumerName,
32
+ };
33
+ }
34
+ streamConfig() {
35
+ return {
36
+ name: this.stream,
37
+ subjects: [this.stream + '.*'],
38
+ };
39
+ }
40
+ listen() {
41
+ return __awaiter(this, void 0, void 0, function* () {
42
+ var _a, e_1, _b, _c;
43
+ console.log(`Listening for stream: ${this.stream}, subject: ${this.subject}, consumer: ${this.consumerName}`);
44
+ try {
45
+ yield this.jsm.consumers.info(this.stream, this.consumerName);
46
+ }
47
+ catch (err) {
48
+ try {
49
+ const myStream = yield this.jsm.streams.info(this.stream);
50
+ if (!myStream) {
51
+ yield this.jsm.streams.add(this.streamConfig());
52
+ }
53
+ }
54
+ catch (err) {
55
+ yield this.jsm.streams.add(this.streamConfig());
56
+ }
57
+ yield this.jsm.consumers.add(this.stream, this.consumerConfig());
58
+ }
59
+ const js = this.jsm.jetstream();
60
+ const consumer = yield js.consumers.get(this.stream, this.consumerName);
61
+ const messages = yield consumer.consume();
62
+ try {
63
+ for (var _d = true, messages_1 = __asyncValues(messages), messages_1_1; messages_1_1 = yield messages_1.next(), _a = messages_1_1.done, !_a; _d = true) {
64
+ _c = messages_1_1.value;
65
+ _d = false;
66
+ const m = _c;
67
+ if (this.subject == m.subject) {
68
+ m.working();
69
+ console.log(`Recevied raw data: ${m.data} from subject ${this.subject}`);
70
+ const parsedData = this.parseMessage(m);
71
+ this.onMessage(parsedData, m);
72
+ }
73
+ else {
74
+ m.ack();
75
+ }
76
+ }
77
+ }
78
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
79
+ finally {
80
+ try {
81
+ if (!_d && !_a && (_b = messages_1.return)) yield _b.call(messages_1);
82
+ }
83
+ finally { if (e_1) throw e_1.error; }
84
+ }
85
+ });
86
+ }
87
+ parseMessage(msg) {
88
+ const data = msg.data;
89
+ const sc = (0, nats_1.StringCodec)();
90
+ return typeof data === 'string'
91
+ ? JSON.parse(data)
92
+ : JSON.parse(sc.decode(data));
93
+ }
94
+ }
95
+ exports.Listener = Listener;
@@ -0,0 +1,18 @@
1
+ import { JetStreamManager, PubAck } from 'nats';
2
+ import { Subjects } from './subjects';
3
+ interface Event {
4
+ subject: Subjects;
5
+ data: any;
6
+ }
7
+ export declare abstract class Publisher<T extends Event> {
8
+ protected jsm: JetStreamManager;
9
+ abstract stream: string;
10
+ abstract subject: T['subject'];
11
+ constructor(jsm: JetStreamManager);
12
+ streamConfig(): {
13
+ name: string;
14
+ subjects: string[];
15
+ };
16
+ publish(data: T['data']): Promise<PubAck>;
17
+ }
18
+ export {};
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.Publisher = void 0;
13
+ class Publisher {
14
+ constructor(jsm) {
15
+ this.jsm = jsm;
16
+ }
17
+ streamConfig() {
18
+ return {
19
+ name: this.stream,
20
+ subjects: [this.stream + '.*'],
21
+ };
22
+ }
23
+ publish(data) {
24
+ return __awaiter(this, void 0, void 0, function* () {
25
+ try {
26
+ const streamExist = yield this.jsm.streams.get(this.stream);
27
+ if (!streamExist) {
28
+ yield this.jsm.streams.add(this.streamConfig());
29
+ }
30
+ }
31
+ catch (err) {
32
+ yield this.jsm.streams.add(this.streamConfig());
33
+ }
34
+ const js = this.jsm.jetstream();
35
+ console.log(`Publishing to subject: ${this.subject} with data: ${JSON.stringify(data)}`);
36
+ return yield js.publish(this.subject, JSON.stringify(data));
37
+ });
38
+ }
39
+ }
40
+ exports.Publisher = Publisher;
@@ -0,0 +1,8 @@
1
+ export declare enum Subjects {
2
+ TicketCreated = "TICKET.created",
3
+ TicketUpdated = "TICKET.updated",
4
+ OrderCreated = "ORDER.created",
5
+ OrderCancelled = "ORDER.cancelled",
6
+ ExpirationComplete = "EXPIRATION.complete",
7
+ PaymentCreated = "PAYMENT.created"
8
+ }
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Subjects = void 0;
4
+ var Subjects;
5
+ (function (Subjects) {
6
+ Subjects["TicketCreated"] = "TICKET.created";
7
+ Subjects["TicketUpdated"] = "TICKET.updated";
8
+ Subjects["OrderCreated"] = "ORDER.created";
9
+ Subjects["OrderCancelled"] = "ORDER.cancelled";
10
+ Subjects["ExpirationComplete"] = "EXPIRATION.complete";
11
+ Subjects["PaymentCreated"] = "PAYMENT.created";
12
+ })(Subjects || (exports.Subjects = Subjects = {}));
@@ -0,0 +1,6 @@
1
+ export declare enum Expirations {
2
+ accessTokenExp = 1800,
3
+ accessTokenTestExp = 30,
4
+ refreshTokenExp = "1d",
5
+ refreshTokenTestExp = 120
6
+ }
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Expirations = void 0;
4
+ var Expirations;
5
+ (function (Expirations) {
6
+ // Expiration time for the JWT access token in seconds
7
+ Expirations[Expirations["accessTokenExp"] = 1800] = "accessTokenExp";
8
+ Expirations[Expirations["accessTokenTestExp"] = 30] = "accessTokenTestExp";
9
+ // Expiration time for the JWT refresh token
10
+ Expirations["refreshTokenExp"] = "1d";
11
+ Expirations[Expirations["refreshTokenTestExp"] = 120] = "refreshTokenTestExp";
12
+ })(Expirations || (exports.Expirations = Expirations = {}));
@@ -0,0 +1,13 @@
1
+ export * from './errors/bad-request-error';
2
+ export * from './errors/custom-error';
3
+ export * from './errors/database-connection-error';
4
+ export * from './errors/not-authorized-error';
5
+ export * from './errors/not-found-error';
6
+ export * from './errors/request-validation-error';
7
+ export * from './middlewares/current-user';
8
+ export * from './middlewares/error-handler';
9
+ export * from './middlewares/require-auth';
10
+ export * from './middlewares/validate-request';
11
+ export * from './events/base-listener';
12
+ export * from './events/base-publisher';
13
+ export * from './events/subjects';
package/build/index.js ADDED
@@ -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("./errors/bad-request-error"), exports);
18
+ __exportStar(require("./errors/custom-error"), exports);
19
+ __exportStar(require("./errors/database-connection-error"), exports);
20
+ __exportStar(require("./errors/not-authorized-error"), exports);
21
+ __exportStar(require("./errors/not-found-error"), exports);
22
+ __exportStar(require("./errors/request-validation-error"), exports);
23
+ __exportStar(require("./middlewares/current-user"), exports);
24
+ __exportStar(require("./middlewares/error-handler"), exports);
25
+ __exportStar(require("./middlewares/require-auth"), exports);
26
+ __exportStar(require("./middlewares/validate-request"), exports);
27
+ __exportStar(require("./events/base-listener"), exports);
28
+ __exportStar(require("./events/base-publisher"), exports);
29
+ __exportStar(require("./events/subjects"), exports);
@@ -0,0 +1,14 @@
1
+ import { Request, Response, NextFunction } from 'express';
2
+ interface UserPayload {
3
+ id: string;
4
+ email: string;
5
+ }
6
+ declare global {
7
+ namespace Express {
8
+ interface Request {
9
+ currentUser?: UserPayload;
10
+ }
11
+ }
12
+ }
13
+ export declare const currentUser: (req: Request, res: Response, next: NextFunction) => void;
14
+ export {};
@@ -0,0 +1,20 @@
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.currentUser = void 0;
7
+ const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
8
+ const currentUser = (req, res, next) => {
9
+ var _a;
10
+ if (!((_a = req.session) === null || _a === void 0 ? void 0 : _a.accessToken)) {
11
+ return next();
12
+ }
13
+ try {
14
+ const payload = jsonwebtoken_1.default.verify(req.session.accessToken, process.env.JWT_KEY);
15
+ req.currentUser = payload;
16
+ }
17
+ catch (err) { }
18
+ next();
19
+ };
20
+ exports.currentUser = currentUser;
@@ -0,0 +1,2 @@
1
+ import { Request, Response, NextFunction } from 'express';
2
+ export declare const errorHandler: (err: Error, req: Request, res: Response, next: NextFunction) => Response<any, Record<string, any>> | undefined;
@@ -0,0 +1,15 @@
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
+ console.log(err.message);
8
+ return res.status(err.statusCode).send({ errors: err.serializeErrors() });
9
+ }
10
+ console.error(err);
11
+ res.status(400).send({
12
+ errors: [{ message: 'Something went wrong' }],
13
+ });
14
+ };
15
+ exports.errorHandler = errorHandler;
@@ -0,0 +1,2 @@
1
+ import { Request, Response, NextFunction } from 'express';
2
+ export declare const refresh: (req: Request, res: Response, next: NextFunction) => void;
@@ -0,0 +1,28 @@
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.refresh = void 0;
7
+ const expirations_1 = require("../events/types/expirations");
8
+ const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
9
+ const refresh = (req, res, next) => {
10
+ var _a;
11
+ if (!((_a = req.session) === null || _a === void 0 ? void 0 : _a.refreshToken)) {
12
+ return next();
13
+ }
14
+ const refreshToken = req.session.refreshToken;
15
+ try {
16
+ const userInfo = jsonwebtoken_1.default.verify(refreshToken, process.env.JWT_KEY);
17
+ const accessToken = jsonwebtoken_1.default.sign(userInfo, process.env.JWT_KEY, {
18
+ expiresIn: expirations_1.Expirations.accessTokenTestExp,
19
+ });
20
+ req.session = {
21
+ accessToken,
22
+ refreshToken,
23
+ };
24
+ }
25
+ catch (err) { }
26
+ next();
27
+ };
28
+ exports.refresh = refresh;
@@ -0,0 +1,2 @@
1
+ import { Request, Response, NextFunction } from 'express';
2
+ export declare const requireAuth: (req: Request, res: Response, next: NextFunction) => void;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.requireAuth = void 0;
4
+ const not_authorized_error_1 = require("../errors/not-authorized-error");
5
+ const requireAuth = (req, res, next) => {
6
+ if (!req.currentUser) {
7
+ throw new not_authorized_error_1.NotAuthorizedError();
8
+ }
9
+ next();
10
+ };
11
+ exports.requireAuth = requireAuth;
@@ -0,0 +1,2 @@
1
+ import { Request, Response, NextFunction } from 'express';
2
+ export declare const validateRequest: (req: Request, res: Response, next: NextFunction) => void;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateRequest = void 0;
4
+ const express_validator_1 = require("express-validator");
5
+ const request_validation_error_1 = require("../errors/request-validation-error");
6
+ const validateRequest = (req, res, next) => {
7
+ const errors = (0, express_validator_1.validationResult)(req);
8
+ if (!errors.isEmpty()) {
9
+ throw new request_validation_error_1.RequestValidationError(errors.array());
10
+ }
11
+ next();
12
+ };
13
+ exports.validateRequest = validateRequest;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bmostickit/common",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "description": "",
5
5
  "main": "./build/index.js",
6
6
  "types": "./build/index.d.ts",