@ystickets7/common 1.0.3 → 1.0.4

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 (45) hide show
  1. package/build/errors/bad-request-error.d.ts +10 -0
  2. package/build/errors/bad-request-error.d.ts.map +1 -0
  3. package/build/errors/bad-request-error.js +20 -0
  4. package/build/errors/bad-request-error.js.map +1 -0
  5. package/build/errors/custom-error.d.ts +9 -0
  6. package/build/errors/custom-error.d.ts.map +1 -0
  7. package/build/errors/custom-error.js +13 -0
  8. package/build/errors/custom-error.js.map +1 -0
  9. package/build/errors/database-connection-error.d.ts +10 -0
  10. package/build/errors/database-connection-error.d.ts.map +1 -0
  11. package/build/errors/database-connection-error.js +21 -0
  12. package/build/errors/database-connection-error.js.map +1 -0
  13. package/build/errors/not-authorized-error.d.ts +9 -0
  14. package/build/errors/not-authorized-error.d.ts.map +1 -0
  15. package/build/errors/not-authorized-error.js +18 -0
  16. package/build/errors/not-authorized-error.js.map +1 -0
  17. package/build/errors/not-found-error.d.ts +9 -0
  18. package/build/errors/not-found-error.d.ts.map +1 -0
  19. package/build/errors/not-found-error.js +18 -0
  20. package/build/errors/not-found-error.js.map +1 -0
  21. package/build/errors/request-validation-error.d.ts +15 -0
  22. package/build/errors/request-validation-error.d.ts.map +1 -0
  23. package/build/errors/request-validation-error.js +25 -0
  24. package/build/errors/request-validation-error.js.map +1 -0
  25. package/build/index.d.ts +10 -1
  26. package/build/index.d.ts.map +1 -1
  27. package/build/index.js +24 -5
  28. package/build/index.js.map +1 -1
  29. package/build/middlewares/current-user.d.ts +15 -0
  30. package/build/middlewares/current-user.d.ts.map +1 -0
  31. package/build/middlewares/current-user.js +28 -0
  32. package/build/middlewares/current-user.js.map +1 -0
  33. package/build/middlewares/error-handler.d.ts +3 -0
  34. package/build/middlewares/error-handler.d.ts.map +1 -0
  35. package/build/middlewares/error-handler.js +12 -0
  36. package/build/middlewares/error-handler.js.map +1 -0
  37. package/build/middlewares/require-auth.d.ts +3 -0
  38. package/build/middlewares/require-auth.d.ts.map +1 -0
  39. package/build/middlewares/require-auth.js +13 -0
  40. package/build/middlewares/require-auth.js.map +1 -0
  41. package/build/middlewares/validate-request.d.ts +3 -0
  42. package/build/middlewares/validate-request.d.ts.map +1 -0
  43. package/build/middlewares/validate-request.js +16 -0
  44. package/build/middlewares/validate-request.js.map +1 -0
  45. package/package.json +10 -1
@@ -0,0 +1,10 @@
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
+ }
10
+ //# sourceMappingURL=bad-request-error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bad-request-error.d.ts","sourceRoot":"","sources":["../../src/errors/bad-request-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,qBAAa,eAAgB,SAAQ,WAAW;IAG3B,OAAO,EAAE,MAAM;IAFlC,UAAU,SAAO;IAEjB,YAAmB,OAAO,EAAE,MAAM,EAKjC;IAGD,eAAe;;QAEd;CACF"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BadRequestError = void 0;
4
+ const custom_error_1 = require("./custom-error");
5
+ // Thrown for generic 400 Bad Request errors with a custom message
6
+ class BadRequestError extends custom_error_1.CustomError {
7
+ constructor(message) {
8
+ super(message);
9
+ this.message = message;
10
+ this.statusCode = 400;
11
+ // Fix prototype chain for instanceof checks after extending a built-in
12
+ Object.setPrototypeOf(this, BadRequestError.prototype);
13
+ }
14
+ // Returns the error message in the standard serialized format
15
+ serializeErrors() {
16
+ return [{ message: this.message }];
17
+ }
18
+ }
19
+ exports.BadRequestError = BadRequestError;
20
+ //# sourceMappingURL=bad-request-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bad-request-error.js","sourceRoot":"","sources":["../../src/errors/bad-request-error.ts"],"names":[],"mappings":";;;AAAA,iDAA6C;AAE7C,kEAAkE;AAClE,qBAA6B,SAAQ,0BAAW;IAG9C,YAAmB,OAAe;QAChC,KAAK,CAAC,OAAO,CAAC,CAAC;QADE,YAAO,GAAP,OAAO,CAAQ;QAFlC,eAAU,GAAG,GAAG,CAAC;QAKf,uEAAuE;QACvE,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;IACzD,CAAC;IAED,8DAA8D;IAC9D,eAAe;QACb,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IACrC,CAAC;CACF"}
@@ -0,0 +1,9 @@
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
+ }
9
+ //# sourceMappingURL=custom-error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-error.d.ts","sourceRoot":"","sources":["../../src/errors/custom-error.ts"],"names":[],"mappings":"AACA,8BAAsB,WAAY,SAAQ,KAAK;IAE3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,YAAa,OAAO,EAAC,MAAM,EAK1B;IAGD,QAAQ,CAAC,eAAe,IAAI;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAC,MAAM,CAAA;KAAE,EAAE,CAAC;CACpE"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CustomError = void 0;
4
+ // Base class for all custom errors — subclasses define statusCode and serializeErrors() so the error-handling middleware can produce consistent API responses.
5
+ class CustomError extends Error {
6
+ constructor(message) {
7
+ super(message);
8
+ // Needed because TypeScript's built-in class extends breaks instanceof when targeting ES5. Without this, `instanceof CustomError` would fail.
9
+ Object.setPrototypeOf(this, CustomError.prototype);
10
+ }
11
+ }
12
+ exports.CustomError = CustomError;
13
+ //# sourceMappingURL=custom-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-error.js","sourceRoot":"","sources":["../../src/errors/custom-error.ts"],"names":[],"mappings":";;;AAAA,iKAAiK;AACjK,iBAAkC,SAAQ,KAAK;IAI3C,YAAa,OAAc;QACvB,KAAK,CAAC,OAAO,CAAC,CAAC;QAEvB,+IAA+I;QACvI,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACvD,CAAC;CAIJ"}
@@ -0,0 +1,10 @@
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
+ }
10
+ //# sourceMappingURL=database-connection-error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database-connection-error.d.ts","sourceRoot":"","sources":["../../src/errors/database-connection-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAI7C,qBAAa,uBAAwB,SAAQ,WAAW;IACpD,UAAU,SAAO;IACjB,MAAM,SAAkC;IAExC,cAIC;IAED,eAAe;;QAId;CACJ"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DatabaseConnectionError = void 0;
4
+ const custom_error_1 = require("./custom-error");
5
+ /* Thrown when the app cannot establish a connection to the database.
6
+ Returns 500 with a generic database error message. */
7
+ class DatabaseConnectionError extends custom_error_1.CustomError {
8
+ constructor() {
9
+ super('Error connecting to database');
10
+ this.statusCode = 500;
11
+ this.reason = 'Error connecting to database';
12
+ Object.setPrototypeOf(this, DatabaseConnectionError.prototype);
13
+ }
14
+ serializeErrors() {
15
+ return [
16
+ { message: this.reason }
17
+ ];
18
+ }
19
+ }
20
+ exports.DatabaseConnectionError = DatabaseConnectionError;
21
+ //# sourceMappingURL=database-connection-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database-connection-error.js","sourceRoot":"","sources":["../../src/errors/database-connection-error.ts"],"names":[],"mappings":";;;AAAA,iDAA6C;AAE7C;sDACsD;AACtD,6BAAqC,SAAQ,0BAAW;IAIpD;QACI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAJ1C,eAAU,GAAG,GAAG,CAAC;QACjB,WAAM,GAAG,8BAA8B,CAAC;QAKpC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,uBAAuB,CAAC,SAAS,CAAC,CAAA;IAClE,CAAC;IAED,eAAe;QACX,OAAO;YACH,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE;SAC3B,CAAA;IACL,CAAC;CACJ"}
@@ -0,0 +1,9 @@
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
+ }
9
+ //# sourceMappingURL=not-authorized-error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"not-authorized-error.d.ts","sourceRoot":"","sources":["../../src/errors/not-authorized-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAI7C,qBAAa,kBAAmB,SAAQ,WAAW;IACjD,UAAU,SAAO;IAEjB,cAIC;IAED,eAAe;;QAEd;CACF"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NotAuthorizedError = void 0;
4
+ const custom_error_1 = require("./custom-error");
5
+ /* Thrown when a user attempts to access a resource or perform an action that they are not authorized to access.
6
+ Returns a 401 Unauthorized HTTP status code and a message indicating that the user is not authorized. */
7
+ class NotAuthorizedError extends custom_error_1.CustomError {
8
+ constructor() {
9
+ super("Not authorized");
10
+ this.statusCode = 401;
11
+ Object.setPrototypeOf(this, NotAuthorizedError.prototype);
12
+ }
13
+ serializeErrors() {
14
+ return [{ message: "Not authorized" }];
15
+ }
16
+ }
17
+ exports.NotAuthorizedError = NotAuthorizedError;
18
+ //# sourceMappingURL=not-authorized-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"not-authorized-error.js","sourceRoot":"","sources":["../../src/errors/not-authorized-error.ts"],"names":[],"mappings":";;;AAAA,iDAA6C;AAE7C;wGACwG;AACxG,wBAAgC,SAAQ,0BAAW;IAGjD;QACE,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAH1B,eAAU,GAAG,GAAG,CAAC;QAKf,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAC5D,CAAC;IAED,eAAe;QACb,OAAO,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC,CAAC;IACzC,CAAC;CACF"}
@@ -0,0 +1,9 @@
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
+ }
9
+ //# sourceMappingURL=not-found-error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"not-found-error.d.ts","sourceRoot":"","sources":["../../src/errors/not-found-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAI7C,qBAAa,aAAc,SAAQ,WAAW;IAC5C,UAAU,SAAO;IAEjB,cAIC;IAED,eAAe;;QAEd;CACF"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NotFoundError = void 0;
4
+ const custom_error_1 = require("./custom-error");
5
+ /* Thrown when a request hits a route that doesn't exist.
6
+ Returns 404 with a "Not found" message. */
7
+ class NotFoundError extends custom_error_1.CustomError {
8
+ constructor() {
9
+ super("Route not found");
10
+ this.statusCode = 404;
11
+ Object.setPrototypeOf(this, NotFoundError.prototype);
12
+ }
13
+ serializeErrors() {
14
+ return [{ message: "Not found" }];
15
+ }
16
+ }
17
+ exports.NotFoundError = NotFoundError;
18
+ //# sourceMappingURL=not-found-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"not-found-error.js","sourceRoot":"","sources":["../../src/errors/not-found-error.ts"],"names":[],"mappings":";;;AAAA,iDAA6C;AAE7C;2CAC2C;AAC3C,mBAA2B,SAAQ,0BAAW;IAG5C;QACE,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAH3B,eAAU,GAAG,GAAG,CAAC;QAKf,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IACvD,CAAC;IAED,eAAe;QACb,OAAO,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;IACpC,CAAC;CACF"}
@@ -0,0 +1,15 @@
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
+ field?: never;
12
+ message: any;
13
+ })[];
14
+ }
15
+ //# sourceMappingURL=request-validation-error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-validation-error.d.ts","sourceRoot":"","sources":["../../src/errors/request-validation-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAI7C,qBAAa,sBAAuB,SAAQ,WAAW;IAGhC,MAAM,EAAE,eAAe,EAAE;IAF5C,UAAU,SAAO;IAEjB,YAAmB,MAAM,EAAE,eAAe,EAAE,EAI3C;IAGD,eAAe;;;;;;SAOd;CACJ"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RequestValidationError = void 0;
4
+ const custom_error_1 = require("./custom-error");
5
+ /* Thrown when express-validator finds invalid fields in the request (body, query, params).
6
+ Returns 400 with per-field error messages. */
7
+ class RequestValidationError extends custom_error_1.CustomError {
8
+ constructor(errors) {
9
+ super('Invalid request parameters');
10
+ this.errors = errors;
11
+ this.statusCode = 400;
12
+ Object.setPrototypeOf(this, RequestValidationError.prototype);
13
+ }
14
+ /* Maps each validation error to { message, field? } — includes the field name when available. */
15
+ serializeErrors() {
16
+ return this.errors.map((err) => {
17
+ if (err.type === 'field') {
18
+ return { message: err.msg, field: err.path };
19
+ }
20
+ return { message: err.msg };
21
+ });
22
+ }
23
+ }
24
+ exports.RequestValidationError = RequestValidationError;
25
+ //# sourceMappingURL=request-validation-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-validation-error.js","sourceRoot":"","sources":["../../src/errors/request-validation-error.ts"],"names":[],"mappings":";;;AACA,iDAA6C;AAE7C;8CAC8C;AAC9C,4BAAoC,SAAQ,0BAAW;IAGnD,YAAmB,MAAyB;QACxC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QADrB,WAAM,GAAN,MAAM,CAAmB;QAF5C,eAAU,GAAG,GAAG,CAAC;QAKb,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,sBAAsB,CAAC,SAAS,CAAC,CAAC;IAClE,CAAC;IAED,iGAAiG;IACjG,eAAe;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YAC3B,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBACvB,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;YACjD,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;QAChC,CAAC,CAAC,CAAC;IACP,CAAC;CACJ"}
package/build/index.d.ts CHANGED
@@ -1,2 +1,11 @@
1
- export {};
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";
2
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,oCAAoC,CAAC;AACnD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,mCAAmC,CAAC;AAClD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC"}
package/build/index.js CHANGED
@@ -1,8 +1,27 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const foo = {
4
- id: 223,
5
- name: "Foo"
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);
6
15
  };
7
- console.log(foo);
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);
8
27
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAKA,MAAM,GAAG,GAAY;IACjB,EAAE,EAAE,GAAG;IACP,IAAI,EAAE,KAAK;CACd,CAAA;AAED,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6DAA2C;AAC3C,wDAAsC;AACtC,qEAAmD;AACnD,gEAA8C;AAC9C,2DAAyC;AACzC,oEAAkD;AAClD,6DAA2C;AAC3C,8DAA4C;AAC5C,6DAA2C;AAC3C,iEAA+C"}
@@ -0,0 +1,15 @@
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 {};
15
+ //# sourceMappingURL=current-user.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"current-user.d.ts","sourceRoot":"","sources":["../../src/middlewares/current-user.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAI1D,UAAU,WAAW;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACf;AAGD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,OAAO,CAAC;QAChB,UAAU,OAAO;YACf,WAAW,CAAC,EAAE,WAAW,CAAC;SAC3B;KACF;CACF;AAGD,eAAO,MAAM,WAAW,QAAS,OAAO,OAAO,QAAQ,QAAQ,YAAY,SAgB1E,CAAC"}
@@ -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.currentUser = void 0;
7
+ const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
8
+ // Middleware to extract the current user from the JWT in the session cookie
9
+ const currentUser = (req, res, next) => {
10
+ var _a, _b;
11
+ // If there is no JWT in the session, skip to the next middleware
12
+ if (!((_a = req.session) === null || _a === void 0 ? void 0 : _a.jwt)) {
13
+ return next();
14
+ }
15
+ try {
16
+ // Verify the JWT and extract the payload
17
+ const payload = jsonwebtoken_1.default.verify((_b = req.session) === null || _b === void 0 ? void 0 : _b.jwt, process.env.JWT_KEY);
18
+ // Attach the payload to the request object for use in subsequent middleware or route handlers
19
+ req.currentUser = payload;
20
+ }
21
+ catch (err) {
22
+ // Ignore JWT verification errors
23
+ }
24
+ // Proceed to the next middleware
25
+ next();
26
+ };
27
+ exports.currentUser = currentUser;
28
+ //# sourceMappingURL=current-user.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"current-user.js","sourceRoot":"","sources":["../../src/middlewares/current-user.ts"],"names":[],"mappings":";;;;;;AACA,gEAA+B;AAiB/B,4EAA4E;AACrE,MAAM,WAAW,GAAG,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE;;IAC7E,iEAAiE;IAC/D,IAAI,EAAC,MAAA,GAAG,CAAC,OAAO,0CAAE,GAAG,CAAA,EAAE,CAAC;QACxB,OAAO,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,IAAI,CAAC;QACH,yCAAyC;QACzC,MAAM,OAAO,GAAG,sBAAG,CAAC,MAAM,CAAC,MAAA,GAAG,CAAC,OAAO,0CAAE,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,OAAQ,CAAgB,CAAC;QACtF,8FAA8F;QAC1F,GAAG,CAAC,WAAW,GAAG,OAAO,CAAC;IAC5B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,iCAAiC;IACnC,CAAC;IACH,iCAAiC;IAC/B,IAAI,EAAE,CAAC;AACT,CAAC,CAAC;AAhBW,QAAA,WAAW,GAAX,WAAW,CAgBtB"}
@@ -0,0 +1,3 @@
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;
3
+ //# sourceMappingURL=error-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-handler.d.ts","sourceRoot":"","sources":["../../src/middlewares/error-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAG1D,eAAO,MAAM,YAAY,QAClB,KAAK,OACL,OAAO,OACP,QAAQ,QACP,YAAY,mDAOnB,CAAC"}
@@ -0,0 +1,12 @@
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({ errors: [{ message: 'Something went wrong' }] });
10
+ };
11
+ exports.errorHandler = errorHandler;
12
+ //# sourceMappingURL=error-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-handler.js","sourceRoot":"","sources":["../../src/middlewares/error-handler.ts"],"names":[],"mappings":";;;AACA,yDAAqD;AAE9C,MAAM,YAAY,GAAG,CAC1B,GAAU,EACV,GAAY,EACZ,GAAa,EACb,IAAkB,EAClB,EAAE;IACF,IAAI,GAAG,YAAY,0BAAW,EAAE,CAAC;QAC/B,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC,EAAE,CAAC,CAAC;AAC1E,CAAC,CAAC;AAXW,QAAA,YAAY,GAAZ,YAAY,CAWvB"}
@@ -0,0 +1,3 @@
1
+ import { Request, Response, NextFunction } from 'express';
2
+ export declare const requireAuth: (req: Request, res: Response, next: NextFunction) => void;
3
+ //# sourceMappingURL=require-auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"require-auth.d.ts","sourceRoot":"","sources":["../../src/middlewares/require-auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAI1D,eAAO,MAAM,WAAW,QAAS,OAAO,OAAO,QAAQ,QAAQ,YAAY,SAK1E,CAAC"}
@@ -0,0 +1,13 @@
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
+ // Middleware to ensure that the user is authenticated before accessing certain routes
6
+ const requireAuth = (req, res, next) => {
7
+ if (!req.currentUser) {
8
+ throw new not_authorized_error_1.NotAuthorizedError();
9
+ }
10
+ next();
11
+ };
12
+ exports.requireAuth = requireAuth;
13
+ //# sourceMappingURL=require-auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"require-auth.js","sourceRoot":"","sources":["../../src/middlewares/require-auth.ts"],"names":[],"mappings":";;;AACA,yEAAoE;AAEpE,sFAAsF;AAC/E,MAAM,WAAW,GAAG,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE;IAC7E,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QACrB,MAAM,IAAI,yCAAkB,EAAE,CAAC;IACjC,CAAC;IACC,IAAI,EAAE,CAAC;AACX,CAAC,CAAC;AALW,QAAA,WAAW,GAAX,WAAW,CAKtB"}
@@ -0,0 +1,3 @@
1
+ import { Request, Response, NextFunction } from "express";
2
+ export declare const validateRequest: (req: Request, res: Response, next: NextFunction) => void;
3
+ //# sourceMappingURL=validate-request.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-request.d.ts","sourceRoot":"","sources":["../../src/middlewares/validate-request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAK1D,eAAO,MAAM,eAAe,QAAS,OAAO,OAAO,QAAQ,QAAQ,YAAY,SAO9E,CAAC"}
@@ -0,0 +1,16 @@
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
+ // Middleware to validate incoming requests based on express-validator checks
7
+ const validateRequest = (req, res, next) => {
8
+ // Extract validation errors from the request
9
+ const errors = (0, express_validator_1.validationResult)(req);
10
+ if (!errors.isEmpty()) {
11
+ throw new request_validation_error_1.RequestValidationError(errors.array());
12
+ }
13
+ next();
14
+ };
15
+ exports.validateRequest = validateRequest;
16
+ //# sourceMappingURL=validate-request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-request.js","sourceRoot":"","sources":["../../src/middlewares/validate-request.ts"],"names":[],"mappings":";;;AACA,yDAAqD;AACrD,iFAA4E;AAE5E,6EAA6E;AACtE,MAAM,eAAe,GAAG,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE;IACjF,6CAA6C;IAC7C,MAAM,MAAM,GAAG,IAAA,oCAAgB,EAAC,GAAG,CAAC,CAAC;IACrC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;QACtB,MAAM,IAAI,iDAAsB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IACnD,CAAC;IACD,IAAI,EAAE,CAAC;AACT,CAAC,CAAC;AAPW,QAAA,eAAe,GAAf,eAAe,CAO1B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ystickets7/common",
3
- "version": "1.0.3",
3
+ "version": "1.0.4",
4
4
  "main": "./build/index.js",
5
5
  "types": "./build/index.d.ts",
6
6
  "files": [
@@ -21,5 +21,14 @@
21
21
  "devDependencies": {
22
22
  "del-cli": "^7.0.0",
23
23
  "typescript": "^7.0.2"
24
+ },
25
+ "dependencies": {
26
+ "@types/cookie-session": "^2.0.49",
27
+ "@types/express": "^5.0.6",
28
+ "@types/jsonwebtoken": "^9.0.10",
29
+ "cookie-session": "^2.1.1",
30
+ "express": "^5.2.1",
31
+ "express-validator": "^7.3.2",
32
+ "jsonwebtoken": "^9.0.3"
24
33
  }
25
34
  }