@mint1312-flight-booking/common 1.0.1

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 (85) 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 +18 -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 +11 -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 +17 -0
  12. package/build/errors/database-connection-error.js.map +1 -0
  13. package/build/errors/not-found-error.d.ts +9 -0
  14. package/build/errors/not-found-error.d.ts.map +1 -0
  15. package/build/errors/not-found-error.js +16 -0
  16. package/build/errors/not-found-error.js.map +1 -0
  17. package/build/errors/request_validation-error.d.ts +15 -0
  18. package/build/errors/request_validation-error.d.ts.map +1 -0
  19. package/build/errors/request_validation-error.js +23 -0
  20. package/build/errors/request_validation-error.js.map +1 -0
  21. package/build/errors/unauthorized-error.d.ts +9 -0
  22. package/build/errors/unauthorized-error.d.ts.map +1 -0
  23. package/build/errors/unauthorized-error.js +16 -0
  24. package/build/errors/unauthorized-error.js.map +1 -0
  25. package/build/events/base-listener.d.ts +19 -0
  26. package/build/events/base-listener.d.ts.map +1 -0
  27. package/build/events/base-listener.js +36 -0
  28. package/build/events/base-listener.js.map +1 -0
  29. package/build/events/base-publisher.d.ts +14 -0
  30. package/build/events/base-publisher.d.ts.map +1 -0
  31. package/build/events/base-publisher.js +21 -0
  32. package/build/events/base-publisher.js.map +1 -0
  33. package/build/events/expiration-complete-event.d.ts +8 -0
  34. package/build/events/expiration-complete-event.d.ts.map +1 -0
  35. package/build/events/expiration-complete-event.js +3 -0
  36. package/build/events/expiration-complete-event.js.map +1 -0
  37. package/build/events/order-canceled-event.d.ts +12 -0
  38. package/build/events/order-canceled-event.d.ts.map +1 -0
  39. package/build/events/order-canceled-event.js +3 -0
  40. package/build/events/order-canceled-event.js.map +1 -0
  41. package/build/events/order-created-event.d.ts +17 -0
  42. package/build/events/order-created-event.d.ts.map +1 -0
  43. package/build/events/order-created-event.js +3 -0
  44. package/build/events/order-created-event.js.map +1 -0
  45. package/build/events/payment-created-event.d.ts +11 -0
  46. package/build/events/payment-created-event.d.ts.map +1 -0
  47. package/build/events/payment-created-event.js +3 -0
  48. package/build/events/payment-created-event.js.map +1 -0
  49. package/build/events/subjects.d.ts +9 -0
  50. package/build/events/subjects.d.ts.map +1 -0
  51. package/build/events/subjects.js +14 -0
  52. package/build/events/subjects.js.map +1 -0
  53. package/build/events/ticket-created-event.d.ts +15 -0
  54. package/build/events/ticket-created-event.d.ts.map +1 -0
  55. package/build/events/ticket-created-event.js +3 -0
  56. package/build/events/ticket-created-event.js.map +1 -0
  57. package/build/events/ticket-updated-event.d.ts +13 -0
  58. package/build/events/ticket-updated-event.d.ts.map +1 -0
  59. package/build/events/ticket-updated-event.js +3 -0
  60. package/build/events/ticket-updated-event.js.map +1 -0
  61. package/build/events/types/order-status.d.ts +7 -0
  62. package/build/events/types/order-status.d.ts.map +1 -0
  63. package/build/events/types/order-status.js +11 -0
  64. package/build/events/types/order-status.js.map +1 -0
  65. package/build/index.d.ts +20 -0
  66. package/build/index.d.ts.map +1 -0
  67. package/build/index.js +37 -0
  68. package/build/index.js.map +1 -0
  69. package/build/middlewares/current-user.d.ts +16 -0
  70. package/build/middlewares/current-user.d.ts.map +1 -0
  71. package/build/middlewares/current-user.js +21 -0
  72. package/build/middlewares/current-user.js.map +1 -0
  73. package/build/middlewares/error-handler.d.ts +3 -0
  74. package/build/middlewares/error-handler.d.ts.map +1 -0
  75. package/build/middlewares/error-handler.js +14 -0
  76. package/build/middlewares/error-handler.js.map +1 -0
  77. package/build/middlewares/require-auth.d.ts +3 -0
  78. package/build/middlewares/require-auth.d.ts.map +1 -0
  79. package/build/middlewares/require-auth.js +13 -0
  80. package/build/middlewares/require-auth.js.map +1 -0
  81. package/build/middlewares/validate-request.d.ts +3 -0
  82. package/build/middlewares/validate-request.d.ts.map +1 -0
  83. package/build/middlewares/validate-request.js +13 -0
  84. package/build/middlewares/validate-request.js.map +1 -0
  85. package/package.json +36 -0
@@ -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;AAE7C,qBAAa,eAAgB,SAAQ,WAAW;IAG3B,OAAO,EAAE,MAAM;IAFlC,UAAU,SAAM;IAEhB,YAAmB,OAAO,EAAE,MAAM,EAGjC;IAED,eAAe;;QAEd;CACF"}
@@ -0,0 +1,18 @@
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
+ message;
7
+ statusCode = 400;
8
+ constructor(message) {
9
+ super(message);
10
+ this.message = message;
11
+ Object.setPrototypeOf(this, BadRequestError.prototype);
12
+ }
13
+ serializeErrors() {
14
+ return [{ message: this.message }];
15
+ }
16
+ }
17
+ exports.BadRequestError = BadRequestError;
18
+ //# 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,qBAA6B,SAAQ,0BAAW;IAG3B,OAAO;IAF1B,UAAU,GAAG,GAAG,CAAA;IAEhB,YAAmB,OAAe;QAChC,KAAK,CAAC,OAAO,CAAC,CAAA;uBADG,OAAO;QAExB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,eAAe,CAAC,SAAS,CAAC,CAAA;IACxD,CAAC;IAED,eAAe;QACb,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;IACpC,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":"AAAA,8BAAsB,WAAY,SAAQ,KAAK;IAC7C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAE3B,YAAY,OAAO,EAAE,MAAM,EAG1B;IAED,QAAQ,CAAC,eAAe,IAAI;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAClE"}
@@ -0,0 +1,11 @@
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;
11
+ //# 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,iBAAkC,SAAQ,KAAK;IAG7C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC,SAAS,CAAC,CAAA;IACpD,CAAC;CAGF"}
@@ -0,0 +1,10 @@
1
+ import { CustomError } from "./custom-error";
2
+ export declare class DatabaseConnectionError extends CustomError {
3
+ reason: string;
4
+ statusCode: number;
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,CAAA;AAE5C,qBAAa,uBAAwB,SAAQ,WAAW;IACtD,MAAM,SAAiC;IACvC,UAAU,SAAM;IAEhB,cAGC;IAED,eAAe;;QAEd;CACF"}
@@ -0,0 +1,17 @@
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
+ reason = "Error connecting to database";
7
+ statusCode = 500;
8
+ constructor() {
9
+ super("Error connecting to database");
10
+ Object.setPrototypeOf(this, DatabaseConnectionError.prototype);
11
+ }
12
+ serializeErrors() {
13
+ return [{ message: this.reason }];
14
+ }
15
+ }
16
+ exports.DatabaseConnectionError = DatabaseConnectionError;
17
+ //# 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,iDAA4C;AAE5C,6BAAqC,SAAQ,0BAAW;IACtD,MAAM,GAAG,8BAA8B,CAAA;IACvC,UAAU,GAAG,GAAG,CAAA;IAEhB;QACE,KAAK,CAAC,8BAA8B,CAAC,CAAA;QACrC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,uBAAuB,CAAC,SAAS,CAAC,CAAA;IAChE,CAAC;IAED,eAAe;QACb,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;IACnC,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;AAE7C,qBAAa,aAAc,SAAQ,WAAW;IAC5C,UAAU,SAAM;IAEhB,cAGC;IAED,eAAe;;QAEd;CACF"}
@@ -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
+ statusCode = 404;
7
+ constructor() {
8
+ super("Route not found");
9
+ Object.setPrototypeOf(this, NotFoundError.prototype);
10
+ }
11
+ serializeErrors() {
12
+ return [{ message: "Not Found" }];
13
+ }
14
+ }
15
+ exports.NotFoundError = NotFoundError;
16
+ //# 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,mBAA2B,SAAQ,0BAAW;IAC5C,UAAU,GAAG,GAAG,CAAA;IAEhB;QACE,KAAK,CAAC,iBAAiB,CAAC,CAAA;QACxB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,aAAa,CAAC,SAAS,CAAC,CAAA;IACtD,CAAC;IAED,eAAe;QACb,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 { 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,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAE5C,qBAAa,sBAAuB,SAAQ,WAAW;IAGlC,MAAM,EAAE,eAAe,EAAE;IAF5C,UAAU,SAAM;IAEhB,YAAmB,MAAM,EAAE,eAAe,EAAE,EAG3C;IAED,eAAe;;;;;;SAQd;CACF"}
@@ -0,0 +1,23 @@
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
+ errors;
7
+ statusCode = 400;
8
+ constructor(errors) {
9
+ super("Invalid request parameters");
10
+ this.errors = errors;
11
+ Object.setPrototypeOf(this, RequestValidationError.prototype);
12
+ }
13
+ serializeErrors() {
14
+ const formattedErrors = this.errors.map(error => {
15
+ if (error.type === "field")
16
+ return { message: error.msg, field: error.path };
17
+ return { message: error.msg };
18
+ });
19
+ return formattedErrors;
20
+ }
21
+ }
22
+ exports.RequestValidationError = RequestValidationError;
23
+ //# 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,iDAA4C;AAE5C,4BAAoC,SAAQ,0BAAW;IAGlC,MAAM;IAFzB,UAAU,GAAG,GAAG,CAAA;IAEhB,YAAmB,MAAyB;QAC1C,KAAK,CAAC,4BAA4B,CAAC,CAAA;sBADlB,MAAM;QAEvB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,sBAAsB,CAAC,SAAS,CAAC,CAAA;IAC/D,CAAC;IAED,eAAe;QACb,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YAC9C,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;gBACxB,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAA;YAClD,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,EAAE,CAAA;QAC/B,CAAC,CAAC,CAAA;QAEF,OAAO,eAAe,CAAA;IACxB,CAAC;CACF"}
@@ -0,0 +1,9 @@
1
+ import { CustomError } from "./custom-error";
2
+ export declare class UnauthorizedError extends CustomError {
3
+ statusCode: number;
4
+ constructor();
5
+ serializeErrors(): {
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,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAE5C,qBAAa,iBAAkB,SAAQ,WAAW;IAChD,UAAU,SAAM;IAEhB,cAGC;IAED,eAAe;;QAEd;CACF"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UnauthorizedError = void 0;
4
+ const custom_error_1 = require("./custom-error");
5
+ class UnauthorizedError extends custom_error_1.CustomError {
6
+ statusCode = 401;
7
+ constructor() {
8
+ super("You are not authorized");
9
+ Object.setPrototypeOf(this, UnauthorizedError.prototype);
10
+ }
11
+ serializeErrors() {
12
+ return [{ message: this.message }];
13
+ }
14
+ }
15
+ exports.UnauthorizedError = UnauthorizedError;
16
+ //# 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,iDAA4C;AAE5C,uBAA+B,SAAQ,0BAAW;IAChD,UAAU,GAAG,GAAG,CAAA;IAEhB;QACE,KAAK,CAAC,wBAAwB,CAAC,CAAA;QAC/B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAA;IAC1D,CAAC;IAED,eAAe;QACb,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;IACpC,CAAC;CACF"}
@@ -0,0 +1,19 @@
1
+ import type { Message, Stan } from "node-nats-streaming";
2
+ import type { Subjects } from "./subjects";
3
+ interface Event {
4
+ subject: Subjects;
5
+ data: any;
6
+ }
7
+ export declare abstract class Listener<T extends Event> {
8
+ protected client: Stan;
9
+ abstract subject: T["subject"];
10
+ abstract queueGroupName: string;
11
+ abstract onMessage(data: T["data"], msg: Message): void;
12
+ protected ackWait: number;
13
+ constructor(client: Stan);
14
+ subscriptionOptions(): import("node-nats-streaming").SubscriptionOptions;
15
+ listen(): void;
16
+ parseMessage(msg: Message): any;
17
+ }
18
+ export {};
19
+ //# sourceMappingURL=base-listener.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-listener.d.ts","sourceRoot":"","sources":["../../src/events/base-listener.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAG1C,UAAU,KAAK;IACb,OAAO,EAAE,QAAQ,CAAA;IACjB,IAAI,EAAE,GAAG,CAAA;CACV;AAGD,8BAAsB,QAAQ,CAAC,CAAC,SAAS,KAAK;IAC5C,SAAS,CAAC,MAAM,EAAE,IAAI,CAAA;IACtB,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,CAAA;IAC9B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,OAAO,GAAG,IAAI,CAAA;IACvD,SAAS,CAAC,OAAO,SAAW;IAE5B,YAAY,MAAM,EAAE,IAAI,EAEvB;IAED,mBAAmB,sDAOlB;IAED,MAAM,SAcL;IAED,YAAY,CAAC,GAAG,EAAE,OAAO,OAOxB;CACF"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Listener = void 0;
4
+ // Base class for listeners to NATS
5
+ class Listener {
6
+ client;
7
+ ackWait = 5 * 1000;
8
+ constructor(client) {
9
+ this.client = client;
10
+ }
11
+ subscriptionOptions() {
12
+ return this.client
13
+ .subscriptionOptions()
14
+ .setDeliverAllAvailable()
15
+ .setManualAckMode(true)
16
+ .setAckWait(this.ackWait)
17
+ .setDurableName(this.queueGroupName);
18
+ }
19
+ listen() {
20
+ const subscription = this.client.subscribe(this.subject, this.queueGroupName, this.subscriptionOptions());
21
+ subscription.on("message", (msg) => {
22
+ console.log(`Message received: ${this.subject}/${this.queueGroupName}`);
23
+ const data = this.parseMessage(msg);
24
+ this.onMessage(data, msg);
25
+ });
26
+ }
27
+ parseMessage(msg) {
28
+ const data = msg.getData();
29
+ if (typeof data === "string")
30
+ return JSON.parse(data);
31
+ else
32
+ return JSON.parse(data.toString("utf8"));
33
+ }
34
+ }
35
+ exports.Listener = Listener;
36
+ //# sourceMappingURL=base-listener.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-listener.js","sourceRoot":"","sources":["../../src/events/base-listener.ts"],"names":[],"mappings":";;;AASA,mCAAmC;AACnC;IACY,MAAM,CAAM;IAIZ,OAAO,GAAG,CAAC,GAAG,IAAI,CAAA;IAE5B,YAAY,MAAY;QACtB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;IAED,mBAAmB;QACjB,OAAO,IAAI,CAAC,MAAM;aACf,mBAAmB,EAAE;aACrB,sBAAsB,EAAE;aACxB,gBAAgB,CAAC,IAAI,CAAC;aACtB,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;aACxB,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;IACxC,CAAC;IAED,MAAM;QACJ,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CACxC,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,mBAAmB,EAAE,CAC3B,CAAA;QAED,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAY,EAAE,EAAE;YAC1C,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC,CAAA;YAEvE,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;YAEnC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QAC3B,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,YAAY,CAAC,GAAY;QACvB,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,EAAE,CAAA;QAE1B,IAAI,OAAO,IAAI,KAAK,QAAQ;YAC1B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;;YAEvB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;IAC5C,CAAC;CACF"}
@@ -0,0 +1,14 @@
1
+ import { Subjects } from "./subjects";
2
+ import type { Stan } from "node-nats-streaming";
3
+ interface Event {
4
+ subject: Subjects;
5
+ data: any;
6
+ }
7
+ export declare abstract class Publisher<T extends Event> {
8
+ abstract subject: T["subject"];
9
+ protected client: Stan;
10
+ constructor(client: Stan);
11
+ publish(data: T["data"]): Promise<void>;
12
+ }
13
+ export {};
14
+ //# sourceMappingURL=base-publisher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-publisher.d.ts","sourceRoot":"","sources":["../../src/events/base-publisher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAE/C,UAAU,KAAK;IACb,OAAO,EAAE,QAAQ,CAAA;IACjB,IAAI,EAAE,GAAG,CAAA;CACV;AAED,8BAAsB,SAAS,CAAC,CAAC,SAAS,KAAK;IAC7C,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,CAAA;IAC9B,SAAS,CAAC,MAAM,EAAE,IAAI,CAAA;IAEtB,YAAY,MAAM,EAAE,IAAI,EAEvB;IAED,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAStC;CACF"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Publisher = void 0;
4
+ class Publisher {
5
+ client;
6
+ constructor(client) {
7
+ this.client = client;
8
+ }
9
+ publish(data) {
10
+ return new Promise((resolve, reject) => {
11
+ this.client.publish(this.subject, JSON.stringify(data), (err) => {
12
+ if (err)
13
+ return reject(err);
14
+ console.log("Event published to", this.subject);
15
+ resolve();
16
+ });
17
+ });
18
+ }
19
+ }
20
+ exports.Publisher = Publisher;
21
+ //# sourceMappingURL=base-publisher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-publisher.js","sourceRoot":"","sources":["../../src/events/base-publisher.ts"],"names":[],"mappings":";;;AAQA;IAEY,MAAM,CAAM;IAEtB,YAAY,MAAY;QACtB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;IAED,OAAO,CAAC,IAAe;QACrB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;gBAC9D,IAAI,GAAG;oBACL,OAAO,MAAM,CAAC,GAAG,CAAC,CAAA;gBACpB,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;gBAC/C,OAAO,EAAE,CAAA;YACX,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC;CACF"}
@@ -0,0 +1,8 @@
1
+ import { Subjects } from "./subjects";
2
+ export interface ExpirationCompleteEvent {
3
+ subject: Subjects.ExpirationComplete;
4
+ data: {
5
+ orderId: string;
6
+ };
7
+ }
8
+ //# sourceMappingURL=expiration-complete-event.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expiration-complete-event.d.ts","sourceRoot":"","sources":["../../src/events/expiration-complete-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAGrC,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,QAAQ,CAAC,kBAAkB,CAAA;IACpC,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM,CAAC;KACjB,CAAA;CACF"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=expiration-complete-event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expiration-complete-event.js","sourceRoot":"","sources":["../../src/events/expiration-complete-event.ts"],"names":[],"mappings":""}
@@ -0,0 +1,12 @@
1
+ import { Subjects } from "./subjects";
2
+ export interface OrderCanceledEvent {
3
+ subject: Subjects.OrderCanceled;
4
+ data: {
5
+ id: string;
6
+ version: number;
7
+ ticket: {
8
+ id: string;
9
+ };
10
+ };
11
+ }
12
+ //# sourceMappingURL=order-canceled-event.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"order-canceled-event.d.ts","sourceRoot":"","sources":["../../src/events/order-canceled-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAGrC,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAA;IAC/B,IAAI,EAAE;QACJ,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE;YACN,EAAE,EAAE,MAAM,CAAC;SACZ,CAAA;KACF,CAAA;CACF"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=order-canceled-event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"order-canceled-event.js","sourceRoot":"","sources":["../../src/events/order-canceled-event.ts"],"names":[],"mappings":""}
@@ -0,0 +1,17 @@
1
+ import { Subjects } from "./subjects";
2
+ import { OrderStatus } from "./types/order-status";
3
+ export interface OrderCreatedEvent {
4
+ subject: Subjects.OrderCreated;
5
+ data: {
6
+ id: string;
7
+ version: number;
8
+ status: OrderStatus;
9
+ userId: string;
10
+ expiresAt: string;
11
+ ticket: {
12
+ id: string;
13
+ price: number;
14
+ };
15
+ };
16
+ }
17
+ //# sourceMappingURL=order-created-event.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"order-created-event.d.ts","sourceRoot":"","sources":["../../src/events/order-created-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAGlD,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAA;IAC9B,IAAI,EAAE;QACJ,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,WAAW,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE;YACN,EAAE,EAAE,MAAM,CAAC;YACX,KAAK,EAAE,MAAM,CAAA;SACd,CAAA;KACF,CAAA;CACF"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=order-created-event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"order-created-event.js","sourceRoot":"","sources":["../../src/events/order-created-event.ts"],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ import { Subjects } from "./subjects";
2
+ export interface PaymentCreatedEvent {
3
+ subject: Subjects.PaymentCreated;
4
+ data: {
5
+ id: string;
6
+ version: number;
7
+ orderId: string;
8
+ stripeId: string;
9
+ };
10
+ }
11
+ //# sourceMappingURL=payment-created-event.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payment-created-event.d.ts","sourceRoot":"","sources":["../../src/events/payment-created-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAGrC,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,QAAQ,CAAC,cAAc,CAAA;IAChC,IAAI,EAAE;QACJ,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,MAAM,CAAA;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAA;CACF"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=payment-created-event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payment-created-event.js","sourceRoot":"","sources":["../../src/events/payment-created-event.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ export declare enum Subjects {
2
+ TicketCreated = "ticket:created",
3
+ TicketUpdated = "ticket:updated",
4
+ OrderCreated = "order:created",
5
+ OrderCanceled = "order:canceled",
6
+ ExpirationComplete = "expiration:complete",
7
+ PaymentCreated = "payment:created"
8
+ }
9
+ //# sourceMappingURL=subjects.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subjects.d.ts","sourceRoot":"","sources":["../../src/events/subjects.ts"],"names":[],"mappings":"AACA,oBAAY,QAAQ;IAClB,aAAa,mBAAmB;IAChC,aAAa,mBAAmB;IAChC,YAAY,kBAAkB;IAC9B,aAAa,mBAAmB;IAChC,kBAAkB,wBAAwB;IAC1C,cAAc,oBAAoB;CACnC"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Subjects = void 0;
4
+ // all NATS streaming subjects
5
+ var Subjects;
6
+ (function (Subjects) {
7
+ Subjects["TicketCreated"] = "ticket:created";
8
+ Subjects["TicketUpdated"] = "ticket:updated";
9
+ Subjects["OrderCreated"] = "order:created";
10
+ Subjects["OrderCanceled"] = "order:canceled";
11
+ Subjects["ExpirationComplete"] = "expiration:complete";
12
+ Subjects["PaymentCreated"] = "payment:created";
13
+ })(Subjects || (exports.Subjects = Subjects = {}));
14
+ //# sourceMappingURL=subjects.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subjects.js","sourceRoot":"","sources":["../../src/events/subjects.ts"],"names":[],"mappings":";;;AAAA,8BAA8B;AAC9B,IAAY,QAOX;AAPD,WAAY,QAAQ;IAClB,4CAAgC,CAAA;IAChC,4CAAgC,CAAA;IAChC,0CAA8B,CAAA;IAC9B,4CAAgC,CAAA;IAChC,sDAA0C,CAAA;IAC1C,8CAAkC,CAAA;AACpC,CAAC,EAPW,QAAQ,aAAR,QAAQ,GAAR,QAAQ,QAOnB"}
@@ -0,0 +1,15 @@
1
+ import { Subjects } from "./subjects";
2
+ export interface TicketCreatedEvent {
3
+ subject: Subjects.TicketCreated;
4
+ data: {
5
+ id: string;
6
+ version: number;
7
+ price: number;
8
+ class: string;
9
+ seat: {
10
+ row: number;
11
+ column: number;
12
+ };
13
+ };
14
+ }
15
+ //# sourceMappingURL=ticket-created-event.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ticket-created-event.d.ts","sourceRoot":"","sources":["../../src/events/ticket-created-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAGrC,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAA;IAC/B,IAAI,EAAE;QACJ,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE;YACJ,GAAG,EAAE,MAAM,CAAC;YACZ,MAAM,EAAE,MAAM,CAAA;SACf,CAAA;KACF,CAAA;CACF"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=ticket-created-event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ticket-created-event.js","sourceRoot":"","sources":["../../src/events/ticket-created-event.ts"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ import { Subjects } from "./subjects";
2
+ export interface TicketUpdatedEvent {
3
+ subject: Subjects.TicketUpdated;
4
+ data: {
5
+ id: string;
6
+ version: number;
7
+ title: string;
8
+ price: number;
9
+ userId: string;
10
+ orderId?: string;
11
+ };
12
+ }
13
+ //# sourceMappingURL=ticket-updated-event.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ticket-updated-event.d.ts","sourceRoot":"","sources":["../../src/events/ticket-updated-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAGrC,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAA;IAC/B,IAAI,EAAE;QACJ,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAA;KACjB,CAAA;CACF"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=ticket-updated-event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ticket-updated-event.js","sourceRoot":"","sources":["../../src/events/ticket-updated-event.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ export declare enum OrderStatus {
2
+ Created = "created",// order is created, but the ticket is not reserved
3
+ Canceled = "canceled",// the user cancel the order, or the ticket has already been reserved
4
+ AwaitingPayment = "awaiting:payment",// the user has successfully reserved the ticket
5
+ Complete = "complete"
6
+ }
7
+ //# sourceMappingURL=order-status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"order-status.d.ts","sourceRoot":"","sources":["../../../src/events/types/order-status.ts"],"names":[],"mappings":"AAAA,oBAAY,WAAW;IACrB,OAAO,YAAY,CAAG,mDAAmD;IACzE,QAAQ,aAAa,CAAG,qEAAqE;IAC7F,eAAe,qBAAqB,CAAE,gDAAgD;IACtF,QAAQ,aAAa;CACtB"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OrderStatus = void 0;
4
+ var OrderStatus;
5
+ (function (OrderStatus) {
6
+ OrderStatus["Created"] = "created";
7
+ OrderStatus["Canceled"] = "canceled";
8
+ OrderStatus["AwaitingPayment"] = "awaiting:payment";
9
+ OrderStatus["Complete"] = "complete"; // the user provides the payment successfully
10
+ })(OrderStatus || (exports.OrderStatus = OrderStatus = {}));
11
+ //# sourceMappingURL=order-status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"order-status.js","sourceRoot":"","sources":["../../../src/events/types/order-status.ts"],"names":[],"mappings":";;;AAAA,IAAY,WAKX;AALD,WAAY,WAAW;IACrB,kCAAmB,CAAA;IACnB,oCAAqB,CAAA;IACrB,mDAAoC,CAAA;IACpC,oCAAqB,CAAA,CAAC,6CAA6C;AACrE,CAAC,EALW,WAAW,aAAX,WAAW,GAAX,WAAW,QAKtB"}
@@ -0,0 +1,20 @@
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-found-error";
5
+ export * from "./errors/unauthorized-error";
6
+ export * from "./middlewares/current-user";
7
+ export * from "./middlewares/error-handler";
8
+ export * from "./middlewares/require-auth";
9
+ export * from "./middlewares/validate-request";
10
+ export * from "./events/base-listener";
11
+ export * from "./events/base-publisher";
12
+ export * from "./events/subjects";
13
+ export * from "./events/ticket-created-event";
14
+ export * from "./events/ticket-updated-event";
15
+ export * from "./events/types/order-status";
16
+ export * from "./events/order-created-event";
17
+ export * from "./events/order-canceled-event";
18
+ export * from "./events/expiration-complete-event";
19
+ export * from "./events/payment-created-event";
20
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,cAAc,4BAA4B,CAAA;AAC1C,cAAc,uBAAuB,CAAA;AACrC,cAAc,oCAAoC,CAAA;AAClD,cAAc,0BAA0B,CAAA;AACxC,cAAc,6BAA6B,CAAA;AAE3C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,gCAAgC,CAAA;AAE9C,cAAc,wBAAwB,CAAA;AACtC,cAAc,yBAAyB,CAAA;AACvC,cAAc,mBAAmB,CAAA;AACjC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,+BAA+B,CAAA;AAE7C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,oCAAoC,CAAA;AAClD,cAAc,gCAAgC,CAAA"}
package/build/index.js ADDED
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ // Overall exports
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
16
+ };
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ __exportStar(require("./errors/bad-request-error"), exports);
19
+ __exportStar(require("./errors/custom-error"), exports);
20
+ __exportStar(require("./errors/database-connection-error"), exports);
21
+ __exportStar(require("./errors/not-found-error"), exports);
22
+ __exportStar(require("./errors/unauthorized-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);
30
+ __exportStar(require("./events/ticket-created-event"), exports);
31
+ __exportStar(require("./events/ticket-updated-event"), exports);
32
+ __exportStar(require("./events/types/order-status"), exports);
33
+ __exportStar(require("./events/order-created-event"), exports);
34
+ __exportStar(require("./events/order-canceled-event"), exports);
35
+ __exportStar(require("./events/expiration-complete-event"), exports);
36
+ __exportStar(require("./events/payment-created-event"), exports);
37
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,kBAAkB;;;;;;;;;;;;;;;;AAElB,6DAA0C;AAC1C,wDAAqC;AACrC,qEAAkD;AAClD,2DAAwC;AACxC,8DAA2C;AAE3C,6DAA0C;AAC1C,8DAA2C;AAC3C,6DAA0C;AAC1C,iEAA8C;AAE9C,yDAAsC;AACtC,0DAAuC;AACvC,oDAAiC;AACjC,gEAA6C;AAC7C,gEAA6C;AAE7C,8DAA2C;AAC3C,+DAA4C;AAC5C,gEAA6C;AAC7C,qEAAkD;AAClD,iEAA8C"}
@@ -0,0 +1,16 @@
1
+ import type { Request, Response, NextFunction } from "express";
2
+ import "cookie-session";
3
+ interface UserPayload {
4
+ id: string;
5
+ email: string;
6
+ }
7
+ declare global {
8
+ namespace Express {
9
+ interface Request {
10
+ currentUser?: UserPayload;
11
+ }
12
+ }
13
+ }
14
+ export declare const currentUser: (req: Request, res: Response, next: NextFunction) => void;
15
+ export {};
16
+ //# 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,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAC9D,OAAO,gBAAgB,CAAA;AAGvB,UAAU,WAAW;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAA;CACd;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,OAAO,CAAC;QAChB,UAAU,OAAO;YACf,WAAW,CAAC,EAAE,WAAW,CAAA;SAC1B;KACF;CACF;AAGD,eAAO,MAAM,WAAW,QACjB,OAAO,OACP,QAAQ,QACP,YAAY,SAWnB,CAAA"}
@@ -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.currentUser = void 0;
7
+ require("cookie-session");
8
+ const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
9
+ // middleware to extract the jwt token from user request and save to req.currentUser
10
+ const currentUser = (req, res, next) => {
11
+ if (!req.session?.jwt)
12
+ return next();
13
+ try {
14
+ const payload = jsonwebtoken_1.default.verify(req.session.jwt, process.env.JWT_KEY);
15
+ req.currentUser = payload;
16
+ }
17
+ catch (err) { }
18
+ next();
19
+ };
20
+ exports.currentUser = currentUser;
21
+ //# 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,0BAAuB;AACvB,gEAA8B;AAe9B,oFAAoF;AAC7E,MAAM,WAAW,GAAG,CACzB,GAAY,EACZ,GAAa,EACb,IAAkB,EAClB,EAAE;IACF,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG;QACnB,OAAO,IAAI,EAAE,CAAA;IAEf,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,sBAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,OAAQ,CAAgB,CAAA;QAChF,GAAG,CAAC,WAAW,GAAG,OAAO,CAAA;IAC3B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC;IAEjB,IAAI,EAAE,CAAA;AACR,CAAC,CAAA;AAdY,QAAA,WAAW,GAAX,WAAW,CAcvB"}
@@ -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>> | 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,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAI9D,eAAO,MAAM,YAAY,QAClB,KAAK,OACL,OAAO,OACP,QAAQ,QACP,YAAY,mDASnB,CAAA"}
@@ -0,0 +1,14 @@
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
+ // central error handling for auth service
6
+ const errorHandler = (err, req, res, next) => {
7
+ if (err instanceof custom_error_1.CustomError) {
8
+ return res.status(err.statusCode).send({ errors: err.serializeErrors() });
9
+ }
10
+ console.error(err);
11
+ res.status(400).send({ errors: [{ message: "Something went wrong" }] });
12
+ };
13
+ exports.errorHandler = errorHandler;
14
+ //# 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,yDAAoD;AAEpD,0CAA0C;AACnC,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,CAAA;IAC3E,CAAC;IAED,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAElB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC,EAAE,CAAC,CAAA;AACzE,CAAC,CAAA;AAbY,QAAA,YAAY,GAAZ,YAAY,CAaxB"}
@@ -0,0 +1,3 @@
1
+ import type { 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,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAK9D,eAAO,MAAM,WAAW,QACjB,OAAO,OACP,QAAQ,QACP,YAAY,SAMnB,CAAA"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.requireAuth = void 0;
4
+ const unauthorized_error_1 = require("../errors/unauthorized-error");
5
+ // middleware to check if req.currentUser exists
6
+ // use when an action require user authentication
7
+ const requireAuth = (req, res, next) => {
8
+ if (!req.currentUser)
9
+ throw new unauthorized_error_1.UnauthorizedError();
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,qEAAgE;AAEhE,gDAAgD;AAChD,iDAAiD;AAC1C,MAAM,WAAW,GAAG,CACzB,GAAY,EACZ,GAAa,EACb,IAAkB,EAClB,EAAE;IACF,IAAI,CAAC,GAAG,CAAC,WAAW;QAClB,MAAM,IAAI,sCAAiB,EAAE,CAAA;IAE/B,IAAI,EAAE,CAAA;AACR,CAAC,CAAA;AATY,QAAA,WAAW,GAAX,WAAW,CASvB"}
@@ -0,0 +1,3 @@
1
+ import type { 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,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAI9D,eAAO,MAAM,eAAe,QACrB,OAAO,OACP,QAAQ,QACP,YAAY,SAQnB,CAAA"}
@@ -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
+ next();
11
+ };
12
+ exports.validateRequest = validateRequest;
13
+ //# 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,yDAAoD;AACpD,iFAA2E;AAEpE,MAAM,eAAe,GAAG,CAC7B,GAAY,EACZ,GAAa,EACb,IAAkB,EAClB,EAAE;IACF,MAAM,MAAM,GAAG,IAAA,oCAAgB,EAAC,GAAG,CAAC,CAAA;IAEpC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;QACnB,MAAM,IAAI,iDAAsB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAA;IAElD,IAAI,EAAE,CAAA;AACR,CAAC,CAAA;AAXY,QAAA,eAAe,GAAf,eAAe,CAW3B"}
package/package.json ADDED
@@ -0,0 +1,36 @@
1
+ {
2
+ "name": "@mint1312-flight-booking/common",
3
+ "version": "1.0.1",
4
+ "description": "",
5
+ "main": "./build/index.js",
6
+ "types": "./build/index.d.ts",
7
+ "files": [
8
+ "build/**/*"
9
+ ],
10
+ "scripts": {
11
+ "clean": "rimraf build",
12
+ "build": "npm run clean && tsc",
13
+ "pub": "git add . && git commit -m \"Updates\" && npm version patch && npm run build && npm publish"
14
+ },
15
+ "keywords": [],
16
+ "author": "",
17
+ "license": "ISC",
18
+ "type": "commonjs",
19
+ "devDependencies": {
20
+ "rimraf": "^6.1.3",
21
+ "typescript": "^7.0.2"
22
+ },
23
+ "dependencies": {
24
+ "@types/cookie-session": "^2.0.49",
25
+ "@types/express": "^5.0.6",
26
+ "@types/jsonwebtoken": "^9.0.10",
27
+ "cookie-session": "^2.1.1",
28
+ "express": "^5.2.1",
29
+ "express-validator": "^7.3.2",
30
+ "jsonwebtoken": "^9.0.3",
31
+ "node-nats-streaming": "^0.3.2"
32
+ },
33
+ "publishConfig": {
34
+ "access": "public"
35
+ }
36
+ }