@doffy-gittix/common 1.0.1 → 1.0.3

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 (59) hide show
  1. package/build/config.d.ts +4 -0
  2. package/build/config.d.ts.map +1 -0
  3. package/build/config.js +4 -0
  4. package/build/config.js.map +1 -0
  5. package/build/errors/bad-request-error.d.ts +9 -0
  6. package/build/errors/bad-request-error.d.ts.map +1 -0
  7. package/build/errors/bad-request-error.js +12 -0
  8. package/build/errors/bad-request-error.js.map +1 -0
  9. package/build/errors/base-error.d.ts +9 -0
  10. package/build/errors/base-error.d.ts.map +1 -0
  11. package/build/errors/base-error.js +7 -0
  12. package/build/errors/base-error.js.map +1 -0
  13. package/build/errors/database-connection-error.d.ts +9 -0
  14. package/build/errors/database-connection-error.d.ts.map +1 -0
  15. package/build/errors/database-connection-error.js +12 -0
  16. package/build/errors/database-connection-error.js.map +1 -0
  17. package/build/errors/index.d.ts +7 -0
  18. package/build/errors/index.d.ts.map +1 -0
  19. package/build/errors/index.js +7 -0
  20. package/build/errors/index.js.map +1 -0
  21. package/build/errors/notfound-error.d.ts +9 -0
  22. package/build/errors/notfound-error.d.ts.map +1 -0
  23. package/build/errors/notfound-error.js +12 -0
  24. package/build/errors/notfound-error.js.map +1 -0
  25. package/build/errors/request-validation-error.d.ts +15 -0
  26. package/build/errors/request-validation-error.d.ts.map +1 -0
  27. package/build/errors/request-validation-error.js +21 -0
  28. package/build/errors/request-validation-error.js.map +1 -0
  29. package/build/errors/unauthorized_error.d.ts +9 -0
  30. package/build/errors/unauthorized_error.d.ts.map +1 -0
  31. package/build/errors/unauthorized_error.js +12 -0
  32. package/build/errors/unauthorized_error.js.map +1 -0
  33. package/build/index.d.ts +3 -0
  34. package/build/index.d.ts.map +1 -0
  35. package/build/index.js +3 -0
  36. package/build/index.js.map +1 -0
  37. package/build/middleware/error-handler.d.ts +3 -0
  38. package/build/middleware/error-handler.d.ts.map +1 -0
  39. package/build/middleware/error-handler.js +8 -0
  40. package/build/middleware/error-handler.js.map +1 -0
  41. package/build/middleware/get-current-user-handler.d.ts +17 -0
  42. package/build/middleware/get-current-user-handler.d.ts.map +1 -0
  43. package/build/middleware/get-current-user-handler.js +18 -0
  44. package/build/middleware/get-current-user-handler.js.map +1 -0
  45. package/build/middleware/index.d.ts +5 -0
  46. package/build/middleware/index.d.ts.map +1 -0
  47. package/build/middleware/index.js +5 -0
  48. package/build/middleware/index.js.map +1 -0
  49. package/build/middleware/require-auth-handler.d.ts +3 -0
  50. package/build/middleware/require-auth-handler.d.ts.map +1 -0
  51. package/build/middleware/require-auth-handler.js +8 -0
  52. package/build/middleware/require-auth-handler.js.map +1 -0
  53. package/build/middleware/validation-handler.d.ts +3 -0
  54. package/build/middleware/validation-handler.d.ts.map +1 -0
  55. package/build/middleware/validation-handler.js +10 -0
  56. package/build/middleware/validation-handler.js.map +1 -0
  57. package/package.json +16 -2
  58. package/index.ts +0 -2
  59. package/tsconfig.json +0 -44
@@ -0,0 +1,4 @@
1
+ export declare const COOKIE_NAME: string;
2
+ export declare const COOKIE_KEY: string | undefined;
3
+ export declare const JWT_KEY: string | undefined;
4
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,QAA6C,CAAC;AACtE,eAAO,MAAM,UAAU,oBAAyB,CAAC;AACjD,eAAO,MAAM,OAAO,oBAAsB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export const COOKIE_NAME = process.env.COOKIE_NAME || 'ticketing_jwt';
2
+ export const COOKIE_KEY = process.env.COOKIE_KEY;
3
+ export const JWT_KEY = process.env.JWT_KEY;
4
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,eAAe,CAAC;AACtE,MAAM,CAAC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;AACjD,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { BaseError } from './base-error.js';
2
+ export declare class BadRequestError extends BaseError {
3
+ statusCode: number;
4
+ constructor(message: string);
5
+ serialize(): {
6
+ message: string;
7
+ }[];
8
+ }
9
+ //# 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,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C,qBAAa,eAAgB,SAAQ,SAAS;IAC5C,UAAU,SAAO;gBAEL,OAAO,EAAE,MAAM;IAK3B,SAAS;;;CAGV"}
@@ -0,0 +1,12 @@
1
+ import { BaseError } from './base-error.js';
2
+ export class BadRequestError extends BaseError {
3
+ statusCode = 400;
4
+ constructor(message) {
5
+ super(message);
6
+ Object.setPrototypeOf(this, BadRequestError.prototype);
7
+ }
8
+ serialize() {
9
+ return [{ message: this.message }];
10
+ }
11
+ }
12
+ //# 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,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C,MAAM,OAAO,eAAgB,SAAQ,SAAS;IAC5C,UAAU,GAAG,GAAG,CAAC;IAEjB,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;IACzD,CAAC;IAED,SAAS;QACP,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;IACpC,CAAC;CACF"}
@@ -0,0 +1,9 @@
1
+ export declare abstract class BaseError extends Error {
2
+ abstract statusCode: number;
3
+ constructor(message: string);
4
+ abstract serialize(): {
5
+ message: string;
6
+ field?: string;
7
+ }[];
8
+ }
9
+ //# sourceMappingURL=base-error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-error.d.ts","sourceRoot":"","sources":["../../src/errors/base-error.ts"],"names":[],"mappings":"AAAA,8BAAsB,SAAU,SAAQ,KAAK;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;gBAEhB,OAAO,EAAE,MAAM;IAK3B,QAAQ,CAAC,SAAS,IAAI;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,EAAE;CACJ"}
@@ -0,0 +1,7 @@
1
+ export class BaseError extends Error {
2
+ constructor(message) {
3
+ super(message);
4
+ Object.setPrototypeOf(this, BaseError.prototype);
5
+ }
6
+ }
7
+ //# sourceMappingURL=base-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-error.js","sourceRoot":"","sources":["../../src/errors/base-error.ts"],"names":[],"mappings":"AAAA,MAAM,OAAgB,SAAU,SAAQ,KAAK;IAG3C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACnD,CAAC;CAMF"}
@@ -0,0 +1,9 @@
1
+ import { BaseError } from './base-error.js';
2
+ export declare class DatabaseConnectionError extends BaseError {
3
+ statusCode: number;
4
+ constructor();
5
+ serialize(): {
6
+ message: string;
7
+ }[];
8
+ }
9
+ //# 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,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C,qBAAa,uBAAwB,SAAQ,SAAS;IACpD,UAAU,SAAO;;IAOjB,SAAS;;;CAGV"}
@@ -0,0 +1,12 @@
1
+ import { BaseError } from './base-error.js';
2
+ export class DatabaseConnectionError extends BaseError {
3
+ statusCode = 500;
4
+ constructor() {
5
+ super('database connection error');
6
+ Object.setPrototypeOf(this, DatabaseConnectionError.prototype);
7
+ }
8
+ serialize() {
9
+ return [{ message: 'database connection error' }];
10
+ }
11
+ }
12
+ //# 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,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C,MAAM,OAAO,uBAAwB,SAAQ,SAAS;IACpD,UAAU,GAAG,GAAG,CAAC;IAEjB;QACE,KAAK,CAAC,2BAA2B,CAAC,CAAC;QACnC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,uBAAuB,CAAC,SAAS,CAAC,CAAC;IACjE,CAAC;IAED,SAAS;QACP,OAAO,CAAC,EAAE,OAAO,EAAE,2BAA2B,EAAE,CAAC,CAAA;IACnD,CAAC;CACF"}
@@ -0,0 +1,7 @@
1
+ export * from './base-error.js';
2
+ export * from './request-validation-error.js';
3
+ export * from './database-connection-error.js';
4
+ export * from './notfound-error.js';
5
+ export * from './bad-request-error.js';
6
+ export * from './unauthorized_error.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC"}
@@ -0,0 +1,7 @@
1
+ export * from './base-error.js';
2
+ export * from './request-validation-error.js';
3
+ export * from './database-connection-error.js';
4
+ export * from './notfound-error.js';
5
+ export * from './bad-request-error.js';
6
+ export * from './unauthorized_error.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { BaseError } from './base-error.js';
2
+ export declare class NotFoundError extends BaseError {
3
+ statusCode: number;
4
+ constructor();
5
+ serialize(): {
6
+ message: string;
7
+ }[];
8
+ }
9
+ //# sourceMappingURL=notfound-error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notfound-error.d.ts","sourceRoot":"","sources":["../../src/errors/notfound-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C,qBAAa,aAAc,SAAQ,SAAS;IAC1C,UAAU,SAAO;;IAOjB,SAAS;;;CAGV"}
@@ -0,0 +1,12 @@
1
+ import { BaseError } from './base-error.js';
2
+ export class NotFoundError extends BaseError {
3
+ statusCode = 404;
4
+ constructor() {
5
+ super('not found');
6
+ Object.setPrototypeOf(this, NotFoundError.prototype);
7
+ }
8
+ serialize() {
9
+ return [{ message: 'not found' }];
10
+ }
11
+ }
12
+ //# sourceMappingURL=notfound-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notfound-error.js","sourceRoot":"","sources":["../../src/errors/notfound-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C,MAAM,OAAO,aAAc,SAAQ,SAAS;IAC1C,UAAU,GAAG,GAAG,CAAC;IAEjB;QACE,KAAK,CAAC,WAAW,CAAC,CAAC;QACnB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IACvD,CAAC;IAED,SAAS;QACP,OAAO,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAA;IACnC,CAAC;CACF"}
@@ -0,0 +1,15 @@
1
+ import type { ValidationError } from 'express-validator';
2
+ import { BaseError } from './base-error.js';
3
+ export declare class RequestValidationError extends BaseError {
4
+ statusCode: number;
5
+ errors: ValidationError[];
6
+ constructor(errors: ValidationError[]);
7
+ serialize(): ({
8
+ message: string;
9
+ field: string;
10
+ } | {
11
+ message: string;
12
+ field?: never;
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,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C,qBAAa,sBAAuB,SAAQ,SAAS;IACnD,UAAU,SAAO;IACjB,MAAM,EAAE,eAAe,EAAE,CAAC;gBACd,MAAM,EAAE,eAAe,EAAE;IAMrC,SAAS;iBAIuB,MAAM;;;iBAGN,MAAM;;;CAGvC"}
@@ -0,0 +1,21 @@
1
+ import { BaseError } from './base-error.js';
2
+ export class RequestValidationError extends BaseError {
3
+ statusCode = 400;
4
+ errors;
5
+ constructor(errors) {
6
+ super('validation error');
7
+ this.errors = errors;
8
+ Object.setPrototypeOf(this, RequestValidationError.prototype);
9
+ }
10
+ serialize() {
11
+ return this.errors.map((error) => {
12
+ return error.type === 'field'
13
+ ? {
14
+ message: error.msg,
15
+ field: error.path,
16
+ }
17
+ : { message: error.msg };
18
+ });
19
+ }
20
+ }
21
+ //# 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,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C,MAAM,OAAO,sBAAuB,SAAQ,SAAS;IACnD,UAAU,GAAG,GAAG,CAAC;IACjB,MAAM,CAAoB;IAC1B,YAAY,MAAyB;QACnC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,sBAAsB,CAAC,SAAS,CAAC,CAAC;IAChE,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YAC/B,OAAO,KAAK,CAAC,IAAI,KAAK,OAAO;gBAC3B,CAAC,CAAC;oBACE,OAAO,EAAE,KAAK,CAAC,GAAa;oBAC5B,KAAK,EAAE,KAAK,CAAC,IAAI;iBAClB;gBACH,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,GAAa,EAAE,CAAC;QACvC,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,9 @@
1
+ import { BaseError } from './base-error.js';
2
+ export declare class UnauthorizedError extends BaseError {
3
+ statusCode: number;
4
+ constructor();
5
+ serialize(): {
6
+ message: string;
7
+ }[];
8
+ }
9
+ //# sourceMappingURL=unauthorized_error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unauthorized_error.d.ts","sourceRoot":"","sources":["../../src/errors/unauthorized_error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,qBAAa,iBAAkB,SAAQ,SAAS;IAC9C,UAAU,SAAO;;IAOjB,SAAS;;;CAGV"}
@@ -0,0 +1,12 @@
1
+ import { BaseError } from './base-error.js';
2
+ export class UnauthorizedError extends BaseError {
3
+ statusCode = 401;
4
+ constructor() {
5
+ super('Unauthorized');
6
+ Object.setPrototypeOf(this, UnauthorizedError.prototype);
7
+ }
8
+ serialize() {
9
+ return [{ message: 'Unauthorized' }];
10
+ }
11
+ }
12
+ //# sourceMappingURL=unauthorized_error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unauthorized_error.js","sourceRoot":"","sources":["../../src/errors/unauthorized_error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,MAAM,OAAO,iBAAkB,SAAQ,SAAS;IAC9C,UAAU,GAAG,GAAG,CAAC;IAEjB;QACE,KAAK,CAAC,cAAc,CAAC,CAAC;QACtB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAC3D,CAAC;IAED,SAAS;QACP,OAAO,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;IACvC,CAAC;CACF"}
@@ -0,0 +1,3 @@
1
+ export * from './errors/index.js';
2
+ export * from './middleware/index.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC"}
package/build/index.js ADDED
@@ -0,0 +1,3 @@
1
+ export * from './errors/index.js';
2
+ export * from './middleware/index.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Request, Response, NextFunction } from 'express';
2
+ export declare const errorHandler: (err: Error, req: Request, res: Response, next: NextFunction) => Response<any, Record<string, any>>;
3
+ //# sourceMappingURL=error-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-handler.d.ts","sourceRoot":"","sources":["../../src/middleware/error-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAG/D,eAAO,MAAM,YAAY,GACvB,KAAK,KAAK,EACV,KAAK,OAAO,EACZ,KAAK,QAAQ,EACb,MAAM,YAAY,uCAMnB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { BaseError } from '../errors/index.js';
2
+ export const errorHandler = (err, req, res, next) => {
3
+ if (err instanceof BaseError) {
4
+ return res.status(err.statusCode).send({ errors: err.serialize() });
5
+ }
6
+ return res.status(400).send({ errors: [{ message: err.message }] });
7
+ };
8
+ //# sourceMappingURL=error-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-handler.js","sourceRoot":"","sources":["../../src/middleware/error-handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,GAAU,EACV,GAAY,EACZ,GAAa,EACb,IAAkB,EAClB,EAAE;IACF,IAAI,GAAG,YAAY,SAAS,EAAE,CAAC;QAC7B,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;AACtE,CAAC,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { Request, Response, NextFunction } from 'express';
2
+ interface CurrentUser {
3
+ id: string;
4
+ email: string;
5
+ }
6
+ declare global {
7
+ namespace Express {
8
+ interface Request {
9
+ currentUser?: CurrentUser | null;
10
+ }
11
+ }
12
+ }
13
+ export declare const getCurrentUserHandler: (req: Request & {
14
+ session?: Record<string, string>;
15
+ }, _res: Response, next: NextFunction) => void;
16
+ export {};
17
+ //# sourceMappingURL=get-current-user-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-current-user-handler.d.ts","sourceRoot":"","sources":["../../src/middleware/get-current-user-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAI/D,UAAU,WAAW;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACf;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,OAAO,CAAC;QAChB,UAAU,OAAO;YACf,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;SAClC;KACF;CACF;AAED,eAAO,MAAM,qBAAqB,GAChC,KAAK,OAAO,GAAG;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,EACnD,MAAM,QAAQ,EACd,MAAM,YAAY,SAcnB,CAAC"}
@@ -0,0 +1,18 @@
1
+ import jwt from 'jsonwebtoken';
2
+ import { COOKIE_NAME, JWT_KEY } from '../config.js';
3
+ export const getCurrentUserHandler = (req, _res, next) => {
4
+ const token = req.session?.[COOKIE_NAME];
5
+ if (!token) {
6
+ req.currentUser = null;
7
+ return next();
8
+ }
9
+ try {
10
+ const verifiedUser = jwt.verify(token, JWT_KEY);
11
+ req.currentUser = verifiedUser;
12
+ }
13
+ catch (error) {
14
+ req.currentUser = null;
15
+ }
16
+ next();
17
+ };
18
+ //# sourceMappingURL=get-current-user-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-current-user-handler.js","sourceRoot":"","sources":["../../src/middleware/get-current-user-handler.ts"],"names":[],"mappings":"AACA,OAAO,GAAG,MAAM,cAAc,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAepD,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,GAAmD,EACnD,IAAc,EACd,IAAkB,EAClB,EAAE;IACF,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,CAAC;IACzC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC;QACvB,OAAO,IAAI,EAAE,CAAC;IAChB,CAAC;IACD,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,OAAQ,CAAgB,CAAC;QAChE,GAAG,CAAC,WAAW,GAAG,YAAY,CAAC;IACjC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC;IACzB,CAAC;IACD,IAAI,EAAE,CAAC;AACT,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from './error-handler.js';
2
+ export * from './get-current-user-handler.js';
3
+ export * from './require-auth-handler.js';
4
+ export * from './validation-handler.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from './error-handler.js';
2
+ export * from './get-current-user-handler.js';
3
+ export * from './require-auth-handler.js';
4
+ export * from './validation-handler.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Request, Response, NextFunction } from 'express';
2
+ export declare const requireAuthHandler: (req: Request, _res: Response, next: NextFunction) => void;
3
+ //# sourceMappingURL=require-auth-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"require-auth-handler.d.ts","sourceRoot":"","sources":["../../src/middleware/require-auth-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAG/D,eAAO,MAAM,kBAAkB,GAC7B,KAAK,OAAO,EACZ,MAAM,QAAQ,EACd,MAAM,YAAY,SAMnB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { UnauthorizedError } from '../errors/index.js';
2
+ export const requireAuthHandler = (req, _res, next) => {
3
+ if (!req.currentUser) {
4
+ throw new UnauthorizedError();
5
+ }
6
+ next();
7
+ };
8
+ //# sourceMappingURL=require-auth-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"require-auth-handler.js","sourceRoot":"","sources":["../../src/middleware/require-auth-handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,GAAY,EACZ,IAAc,EACd,IAAkB,EAClB,EAAE;IACF,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QACrB,MAAM,IAAI,iBAAiB,EAAE,CAAC;IAChC,CAAC;IACD,IAAI,EAAE,CAAC;AACT,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Request, Response, NextFunction } from 'express';
2
+ export declare const validationHandler: (req: Request, _res: Response, next: NextFunction) => void;
3
+ //# sourceMappingURL=validation-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation-handler.d.ts","sourceRoot":"","sources":["../../src/middleware/validation-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAI/D,eAAO,MAAM,iBAAiB,GAC5B,KAAK,OAAO,EACZ,MAAM,QAAQ,EACd,MAAM,YAAY,SAOnB,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { validationResult } from 'express-validator';
2
+ import { RequestValidationError } from '../errors/index.js';
3
+ export const validationHandler = (req, _res, next) => {
4
+ const errors = validationResult(req);
5
+ if (!errors.isEmpty()) {
6
+ throw new RequestValidationError(errors.array());
7
+ }
8
+ next();
9
+ };
10
+ //# sourceMappingURL=validation-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation-handler.js","sourceRoot":"","sources":["../../src/middleware/validation-handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,GAAY,EACZ,IAAc,EACd,IAAkB,EAClB,EAAE;IACF,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;QACtB,MAAM,IAAI,sBAAsB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IACnD,CAAC;IACD,IAAI,EAAE,CAAC;AACT,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,10 +1,15 @@
1
1
  {
2
2
  "name": "@doffy-gittix/common",
3
- "version": "1.0.1",
3
+ "version": "1.0.3",
4
4
  "description": "",
5
5
  "main": "./build/index.js",
6
+ "types": "./build/index.d.ts",
7
+ "files": [
8
+ "build/**/*"
9
+ ],
6
10
  "scripts": {
7
- "build": "tsc"
11
+ "build": "del-cli build && tsc",
12
+ "pub": "npm version patch && git add . && git commit -m \"[upd] common\" && git push && npm publish"
8
13
  },
9
14
  "keywords": [],
10
15
  "author": "",
@@ -13,5 +18,14 @@
13
18
  "devDependencies": {
14
19
  "del-cli": "^7.0.0",
15
20
  "typescript": "^6.0.3"
21
+ },
22
+ "dependencies": {
23
+ "@types/express": "^5.0.6",
24
+ "@types/express-validator": "^2.20.33",
25
+ "@types/jsonwebtoken": "^9.0.10",
26
+ "express": "^5.2.1",
27
+ "express-validator": "^7.3.2",
28
+ "jsonwebtoken": "^9.0.3",
29
+ "ts-node": "^10.9.2"
16
30
  }
17
31
  }
package/index.ts DELETED
@@ -1,2 +0,0 @@
1
- const data: number = 2;
2
- console.log(data);
package/tsconfig.json DELETED
@@ -1,44 +0,0 @@
1
- {
2
- // Visit https://aka.ms/tsconfig to read more about this file
3
- "compilerOptions": {
4
- // File Layout
5
- // "rootDir": "./src",
6
- "outDir": "./build",
7
-
8
- // Environment Settings
9
- // See also https://aka.ms/tsconfig/module
10
- "module": "nodenext",
11
- "target": "esnext",
12
- "types": [],
13
- // For nodejs:
14
- // "lib": ["esnext"],
15
- // "types": ["node"],
16
- // and npm install -D @types/node
17
-
18
- // Other Outputs
19
- "sourceMap": true,
20
- "declaration": true,
21
- "declarationMap": true,
22
-
23
- // Stricter Typechecking Options
24
- "noUncheckedIndexedAccess": true,
25
- "exactOptionalPropertyTypes": true,
26
-
27
- // Style Options
28
- // "noImplicitReturns": true,
29
- // "noImplicitOverride": true,
30
- // "noUnusedLocals": true,
31
- // "noUnusedParameters": true,
32
- // "noFallthroughCasesInSwitch": true,
33
- // "noPropertyAccessFromIndexSignature": true,
34
-
35
- // Recommended Options
36
- "strict": true,
37
- "jsx": "react-jsx",
38
- "verbatimModuleSyntax": true,
39
- "isolatedModules": true,
40
- "noUncheckedSideEffectImports": true,
41
- "moduleDetection": "force",
42
- "skipLibCheck": true,
43
- }
44
- }