@eratu/common 1.0.8 → 1.0.10

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 (37) hide show
  1. package/build/events/event-types/auth/{user-signed-in-event.d.ts → author-signed-in-event.d.ts} +2 -2
  2. package/build/events/event-types/auth/{user-signed-out-event.d.ts → author-signed-out-event.d.ts} +2 -2
  3. package/build/events/event-types/auth/{user-signed-up-event.d.ts → author-signed-up-event.d.ts} +2 -2
  4. package/build/events/event-types/auth/reader-signed-in-event.d.ts +12 -0
  5. package/build/events/event-types/auth/reader-signed-out-event.d.ts +11 -0
  6. package/build/events/event-types/auth/reader-signed-out-event.js +2 -0
  7. package/build/events/event-types/auth/reader-signed-up-event.d.ts +13 -0
  8. package/build/events/event-types/auth/reader-signed-up-event.js +2 -0
  9. package/build/events/event-types/auth/reader-updated-event.js +2 -0
  10. package/build/events/event-types/orders/order-created-event.d.ts +12 -0
  11. package/build/events/event-types/orders/order-created-event.js +2 -0
  12. package/build/events/subjects.d.ts +6 -3
  13. package/build/events/subjects.js +6 -3
  14. package/build/index.d.ts +16 -9
  15. package/build/index.js +16 -9
  16. package/build/middlewares/current-user.d.ts +14 -0
  17. package/build/middlewares/current-user.js +20 -0
  18. package/build/middlewares/error-handler.d.ts +2 -0
  19. package/build/middlewares/error-handler.js +13 -0
  20. package/build/middlewares/require-auth.d.ts +2 -0
  21. package/build/middlewares/require-auth.js +11 -0
  22. package/package.json +4 -2
  23. /package/build/events/event-types/{authors → auth}/author-created-event.d.ts +0 -0
  24. /package/build/events/event-types/{authors → auth}/author-created-event.js +0 -0
  25. /package/build/events/event-types/{authors → auth}/author-deleted-event.d.ts +0 -0
  26. /package/build/events/event-types/{authors → auth}/author-deleted-event.js +0 -0
  27. /package/build/events/event-types/auth/{user-signed-in-event.js → author-signed-in-event.js} +0 -0
  28. /package/build/events/event-types/auth/{user-signed-out-event.js → author-signed-out-event.js} +0 -0
  29. /package/build/events/event-types/auth/{user-signed-up-event.js → author-signed-up-event.js} +0 -0
  30. /package/build/events/event-types/{authors → auth}/author-updated-event.d.ts +0 -0
  31. /package/build/events/event-types/{authors → auth}/author-updated-event.js +0 -0
  32. /package/build/events/event-types/{readers → auth}/reader-created-event.d.ts +0 -0
  33. /package/build/events/event-types/{readers → auth}/reader-created-event.js +0 -0
  34. /package/build/events/event-types/{readers → auth}/reader-deleted-event.d.ts +0 -0
  35. /package/build/events/event-types/{readers → auth}/reader-deleted-event.js +0 -0
  36. /package/build/events/event-types/{readers/reader-updated-event.js → auth/reader-signed-in-event.js} +0 -0
  37. /package/build/events/event-types/{readers → auth}/reader-updated-event.d.ts +0 -0
@@ -1,7 +1,7 @@
1
1
  import { Streams } from "../../streams";
2
2
  import { Subjects } from "../../subjects";
3
- export interface UserSignedInEvent {
4
- subject: Subjects.UserSignedIn;
3
+ export interface AuthorSignedInEvent {
4
+ subject: Subjects.AuthorSignedIn;
5
5
  stream: Streams.AuthServiceStream;
6
6
  data: {
7
7
  userId: string;
@@ -1,7 +1,7 @@
1
1
  import { Streams } from "../../streams";
2
2
  import { Subjects } from "../../subjects";
3
- export interface UserSignedOutEvent {
4
- subject: Subjects.UserSignedOut;
3
+ export interface AuthorSignedOutEvent {
4
+ subject: Subjects.AuthorSignedOut;
5
5
  stream: Streams.AuthServiceStream;
6
6
  data: {
7
7
  userId: string;
@@ -1,7 +1,7 @@
1
1
  import { Streams } from "../../streams";
2
2
  import { Subjects } from "../../subjects";
3
- export interface UserSignedUpEvent {
4
- subject: Subjects.UserSignedUp;
3
+ export interface AuthorSignedUpEvent {
4
+ subject: Subjects.AuthorSignedUp;
5
5
  stream: Streams.AuthServiceStream;
6
6
  data: {
7
7
  id: string;
@@ -0,0 +1,12 @@
1
+ import { Streams } from "../../streams";
2
+ import { Subjects } from "../../subjects";
3
+ export interface ReaderSignedInEvent {
4
+ subject: Subjects.ReaderSignedIn;
5
+ stream: Streams.AuthServiceStream;
6
+ data: {
7
+ userId: string;
8
+ email: string;
9
+ sessionId: string;
10
+ signedInAt: string;
11
+ };
12
+ }
@@ -0,0 +1,11 @@
1
+ import { Streams } from "../../streams";
2
+ import { Subjects } from "../../subjects";
3
+ export interface ReaderSignedOutEvent {
4
+ subject: Subjects.ReaderSignedOut;
5
+ stream: Streams.AuthServiceStream;
6
+ data: {
7
+ userId: string;
8
+ sessionId: string;
9
+ signedOutAt: string;
10
+ };
11
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,13 @@
1
+ import { Streams } from "../../streams";
2
+ import { Subjects } from "../../subjects";
3
+ export interface ReaderSignedUpEvent {
4
+ subject: Subjects.ReaderSignedUp;
5
+ stream: Streams.AuthServiceStream;
6
+ data: {
7
+ id: string;
8
+ email: string;
9
+ firstName: string;
10
+ lastName: string;
11
+ createdAt: string;
12
+ };
13
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,12 @@
1
+ import { Streams } from "../../streams";
2
+ import { Subjects } from "../../subjects";
3
+ export interface OrderCreatedEvent {
4
+ subject: Subjects.OrderCreated;
5
+ stream: Streams.OrderServiceStream;
6
+ data: {
7
+ id: string;
8
+ version: number;
9
+ userId: string;
10
+ expiresAt: string;
11
+ };
12
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -13,7 +13,10 @@ export declare enum Subjects {
13
13
  ChapterDeleted = "chapter:deleted",
14
14
  OrderCreated = "order:created",
15
15
  OrderCancelled = "order:cancelled",
16
- UserSignedUp = "user:signed-up",
17
- UserSignedIn = "user:signed-in",
18
- UserSignedOut = "user:signed-out"
16
+ ReaderSignedUp = "reader:signed-up",
17
+ ReaderSignedIn = "reader:signed-in",
18
+ ReaderSignedOut = "reader:signed-out",
19
+ AuthorSignedUp = "author:signed-up",
20
+ AuthorSignedIn = "author:signed-in",
21
+ AuthorSignedOut = "author:signed-out"
19
22
  }
@@ -17,7 +17,10 @@ var Subjects;
17
17
  Subjects["ChapterDeleted"] = "chapter:deleted";
18
18
  Subjects["OrderCreated"] = "order:created";
19
19
  Subjects["OrderCancelled"] = "order:cancelled";
20
- Subjects["UserSignedUp"] = "user:signed-up";
21
- Subjects["UserSignedIn"] = "user:signed-in";
22
- Subjects["UserSignedOut"] = "user:signed-out";
20
+ Subjects["ReaderSignedUp"] = "reader:signed-up";
21
+ Subjects["ReaderSignedIn"] = "reader:signed-in";
22
+ Subjects["ReaderSignedOut"] = "reader:signed-out";
23
+ Subjects["AuthorSignedUp"] = "author:signed-up";
24
+ Subjects["AuthorSignedIn"] = "author:signed-in";
25
+ Subjects["AuthorSignedOut"] = "author:signed-out";
23
26
  })(Subjects || (exports.Subjects = Subjects = {}));
package/build/index.d.ts CHANGED
@@ -4,19 +4,26 @@ export * from "./errors/database-connection-error";
4
4
  export * from "./errors/not-authorized-error";
5
5
  export * from "./errors/not-found-error";
6
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";
7
10
  export * from "./events/listeners/base-listener";
8
11
  export * from "./events/publishers/base-publisher";
9
12
  export * from "./events/event-types/books/book-created-event";
10
13
  export * from "./events/event-types/books/book-updated-event";
11
14
  export * from "./events/event-types/books/book-deleted-event";
12
- export * from "./events/event-types/readers/reader-created-event";
13
- export * from "./events/event-types/readers/reader-updated-event";
14
- export * from "./events/event-types/readers/reader-deleted-event";
15
- export * from "./events/event-types/authors/author-created-event";
16
- export * from "./events/event-types/authors/author-updated-event";
17
- export * from "./events/event-types/authors/author-deleted-event";
18
- export * from "./events/event-types/auth/user-signed-up-event";
19
- export * from "./events/event-types/auth/user-signed-in-event";
20
- export * from "./events/event-types/auth/user-signed-out-event";
15
+ export * from "./events/event-types/auth/reader-created-event";
16
+ export * from "./events/event-types/auth/reader-updated-event";
17
+ export * from "./events/event-types/auth/reader-deleted-event";
18
+ export * from "./events/event-types/auth/author-created-event";
19
+ export * from "./events/event-types/auth/author-updated-event";
20
+ export * from "./events/event-types/auth/author-deleted-event";
21
+ export * from "./events/event-types/auth/reader-signed-up-event";
22
+ export * from "./events/event-types/auth/reader-signed-in-event";
23
+ export * from "./events/event-types/auth/reader-signed-out-event";
24
+ export * from "./events/event-types/auth/author-signed-up-event";
25
+ export * from "./events/event-types/auth/author-signed-in-event";
26
+ export * from "./events/event-types/auth/author-signed-out-event";
27
+ export * from "./events/event-types/orders/order-created-event";
21
28
  export * from "./events/subjects";
22
29
  export * from "./events/streams";
package/build/index.js CHANGED
@@ -20,19 +20,26 @@ __exportStar(require("./errors/database-connection-error"), exports);
20
20
  __exportStar(require("./errors/not-authorized-error"), exports);
21
21
  __exportStar(require("./errors/not-found-error"), exports);
22
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);
23
26
  __exportStar(require("./events/listeners/base-listener"), exports);
24
27
  __exportStar(require("./events/publishers/base-publisher"), exports);
25
28
  __exportStar(require("./events/event-types/books/book-created-event"), exports);
26
29
  __exportStar(require("./events/event-types/books/book-updated-event"), exports);
27
30
  __exportStar(require("./events/event-types/books/book-deleted-event"), exports);
28
- __exportStar(require("./events/event-types/readers/reader-created-event"), exports);
29
- __exportStar(require("./events/event-types/readers/reader-updated-event"), exports);
30
- __exportStar(require("./events/event-types/readers/reader-deleted-event"), exports);
31
- __exportStar(require("./events/event-types/authors/author-created-event"), exports);
32
- __exportStar(require("./events/event-types/authors/author-updated-event"), exports);
33
- __exportStar(require("./events/event-types/authors/author-deleted-event"), exports);
34
- __exportStar(require("./events/event-types/auth/user-signed-up-event"), exports);
35
- __exportStar(require("./events/event-types/auth/user-signed-in-event"), exports);
36
- __exportStar(require("./events/event-types/auth/user-signed-out-event"), exports);
31
+ __exportStar(require("./events/event-types/auth/reader-created-event"), exports);
32
+ __exportStar(require("./events/event-types/auth/reader-updated-event"), exports);
33
+ __exportStar(require("./events/event-types/auth/reader-deleted-event"), exports);
34
+ __exportStar(require("./events/event-types/auth/author-created-event"), exports);
35
+ __exportStar(require("./events/event-types/auth/author-updated-event"), exports);
36
+ __exportStar(require("./events/event-types/auth/author-deleted-event"), exports);
37
+ __exportStar(require("./events/event-types/auth/reader-signed-up-event"), exports);
38
+ __exportStar(require("./events/event-types/auth/reader-signed-in-event"), exports);
39
+ __exportStar(require("./events/event-types/auth/reader-signed-out-event"), exports);
40
+ __exportStar(require("./events/event-types/auth/author-signed-up-event"), exports);
41
+ __exportStar(require("./events/event-types/auth/author-signed-in-event"), exports);
42
+ __exportStar(require("./events/event-types/auth/author-signed-out-event"), exports);
43
+ __exportStar(require("./events/event-types/orders/order-created-event"), exports);
37
44
  __exportStar(require("./events/subjects"), exports);
38
45
  __exportStar(require("./events/streams"), exports);
@@ -0,0 +1,14 @@
1
+ import { Request, Response, NextFunction } from "express";
2
+ interface UserPayload {
3
+ id: string;
4
+ email: string;
5
+ }
6
+ declare global {
7
+ namespace Express {
8
+ interface Request {
9
+ currentUser?: UserPayload;
10
+ }
11
+ }
12
+ }
13
+ export declare const currentUser: (req: Request, res: Response, next: NextFunction) => void;
14
+ export {};
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.currentUser = void 0;
7
+ const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
8
+ const currentUser = (req, res, next) => {
9
+ const token = req.headers["authorization"];
10
+ if (!token) {
11
+ return next();
12
+ }
13
+ try {
14
+ const payload = jsonwebtoken_1.default.verify(token, process.env.JWT_KEY);
15
+ req.currentUser = payload;
16
+ }
17
+ catch (err) { }
18
+ next();
19
+ };
20
+ exports.currentUser = currentUser;
@@ -0,0 +1,2 @@
1
+ import { Request, Response, NextFunction } from 'express';
2
+ export declare const errorHandler: (err: Error, req: Request, res: Response, next: NextFunction) => Response<any, Record<string, any>> | undefined;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.errorHandler = void 0;
4
+ const custom_error_1 = require("../errors/custom-error");
5
+ const errorHandler = (err, req, res, next) => {
6
+ if (err instanceof custom_error_1.CustomError) {
7
+ return res.status(err.statusCode).send({ errors: err.serializeErrors() });
8
+ }
9
+ res.status(400).send({
10
+ errors: [{ message: 'Something went wrong' }]
11
+ });
12
+ };
13
+ exports.errorHandler = errorHandler;
@@ -0,0 +1,2 @@
1
+ import { Request, Response, NextFunction } from 'express';
2
+ export declare const requireAuth: (req: Request, res: Response, next: NextFunction) => void;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.requireAuth = void 0;
4
+ const not_authorized_error_1 = require("../errors/not-authorized-error");
5
+ const requireAuth = (req, res, next) => {
6
+ if (!req.currentUser) {
7
+ throw new not_authorized_error_1.NotAuthorizedError();
8
+ }
9
+ next();
10
+ };
11
+ exports.requireAuth = requireAuth;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eratu/common",
3
- "version": "1.0.8",
3
+ "version": "1.0.10",
4
4
  "description": "A package for shared code across microservices",
5
5
  "main": "./build/index.js",
6
6
  "types": "./build/index.d.ts",
@@ -21,10 +21,12 @@
21
21
  "typescript": "^5.7.3"
22
22
  },
23
23
  "dependencies": {
24
- "@types/express": "^5.0.0",
24
+ "@types/express": "^5.0.3",
25
+ "@types/jsonwebtoken": "^9.0.10",
25
26
  "cookie-session": "^2.1.0",
26
27
  "express": "^4.21.2",
27
28
  "express-validator": "^7.2.1",
29
+ "jsonwebtoken": "^9.0.2",
28
30
  "nats": "^2.29.3"
29
31
  }
30
32
  }