@eratu/common 1.0.19 → 1.0.21

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 (97) hide show
  1. package/build/__tests__/enum/roles.test.js +1 -1
  2. package/build/__tests__/errors/request-validation-error.test.js +1 -3
  3. package/build/__tests__/events/base-listener.test.js +4 -3
  4. package/build/__tests__/events/streams.test.js +1 -7
  5. package/build/__tests__/events/subjects.test.js +1 -1
  6. package/build/__tests__/middlewares/current-user.test.js +1 -1
  7. package/build/__tests__/middlewares/require-auth.test.js +2 -2
  8. package/build/__tests__/nats-wrapper.test.js +2 -1
  9. package/build/__tests__/redis-wrapper.test.js +2 -1
  10. package/build/enum/image.d.ts +14 -0
  11. package/build/enum/image.js +18 -0
  12. package/build/errors/conflict-error.d.ts +9 -0
  13. package/build/errors/conflict-error.js +16 -0
  14. package/build/errors/forbidden-error.d.ts +1 -1
  15. package/build/errors/forbidden-error.js +1 -1
  16. package/build/errors/internal-error.d.ts +9 -0
  17. package/build/errors/internal-error.js +16 -0
  18. package/build/errors/not-authorized-error.d.ts +1 -1
  19. package/build/errors/not-authorized-error.js +1 -1
  20. package/build/errors/not-found-error.d.ts +1 -1
  21. package/build/errors/not-found-error.js +2 -2
  22. package/build/errors/request-validation-error.js +1 -1
  23. package/build/events/event-types/auth/admin-deleted-event.d.ts +2 -2
  24. package/build/events/event-types/auth/admin-signed-up-event.d.ts +2 -2
  25. package/build/events/event-types/auth/admin-updated-event.d.ts +2 -2
  26. package/build/events/event-types/auth/author-deleted-event.d.ts +2 -2
  27. package/build/events/event-types/auth/author-signed-in-event.d.ts +2 -2
  28. package/build/events/event-types/auth/author-signed-out-event.d.ts +2 -2
  29. package/build/events/event-types/auth/author-signed-up-event.d.ts +2 -2
  30. package/build/events/event-types/auth/author-updated-event.d.ts +2 -2
  31. package/build/events/event-types/auth/author-verified-event.d.ts +2 -2
  32. package/build/events/event-types/auth/reader-deleted-event.d.ts +2 -2
  33. package/build/events/event-types/auth/reader-signed-in-event.d.ts +2 -2
  34. package/build/events/event-types/auth/reader-signed-out-event.d.ts +2 -2
  35. package/build/events/event-types/auth/reader-signed-up-event.d.ts +2 -2
  36. package/build/events/event-types/auth/reader-updated-event.d.ts +2 -2
  37. package/build/events/event-types/auth/reader-verified-event.d.ts +2 -2
  38. package/build/events/event-types/books/book-created-event.d.ts +25 -2
  39. package/build/events/event-types/books/book-deleted-event.d.ts +2 -2
  40. package/build/events/event-types/books/book-updated-event.d.ts +26 -2
  41. package/build/events/event-types/books/chapter-created-event.d.ts +16 -0
  42. package/build/events/event-types/books/chapter-created-event.js +2 -0
  43. package/build/events/event-types/books/chapter-deleted-event.d.ts +10 -0
  44. package/build/events/event-types/books/chapter-deleted-event.js +2 -0
  45. package/build/events/event-types/books/chapter-updated-event.d.ts +17 -0
  46. package/build/events/event-types/books/chapter-updated-event.js +2 -0
  47. package/build/events/event-types/books/genre-created-event.d.ts +13 -0
  48. package/build/events/event-types/books/genre-created-event.js +2 -0
  49. package/build/events/event-types/books/genre-deleted-event.d.ts +9 -0
  50. package/build/events/event-types/books/genre-deleted-event.js +2 -0
  51. package/build/events/event-types/books/genre-updated-event.d.ts +13 -0
  52. package/build/events/event-types/books/genre-updated-event.js +2 -0
  53. package/build/events/event-types/books/subgenre-created-event.d.ts +14 -0
  54. package/build/events/event-types/books/subgenre-created-event.js +2 -0
  55. package/build/events/event-types/books/subgenre-deleted-event.d.ts +9 -0
  56. package/build/events/event-types/books/subgenre-deleted-event.js +2 -0
  57. package/build/events/event-types/books/subgenre-updated-event.d.ts +14 -0
  58. package/build/events/event-types/books/subgenre-updated-event.js +2 -0
  59. package/build/events/event-types/books/tag-created-event.d.ts +12 -0
  60. package/build/events/event-types/books/tag-created-event.js +2 -0
  61. package/build/events/event-types/books/tag-deleted-event.d.ts +9 -0
  62. package/build/events/event-types/books/tag-deleted-event.js +2 -0
  63. package/build/events/event-types/books/tag-updated-event.d.ts +12 -0
  64. package/build/events/event-types/books/tag-updated-event.js +2 -0
  65. package/build/events/event-types/books/trigger-created-event.d.ts +12 -0
  66. package/build/events/event-types/books/trigger-created-event.js +2 -0
  67. package/build/events/event-types/books/trigger-deleted-event.d.ts +9 -0
  68. package/build/events/event-types/books/trigger-deleted-event.js +2 -0
  69. package/build/events/event-types/books/trigger-updated-event.d.ts +12 -0
  70. package/build/events/event-types/books/trigger-updated-event.js +2 -0
  71. package/build/events/event-types/books/trope-created-event.d.ts +12 -0
  72. package/build/events/event-types/books/trope-created-event.js +2 -0
  73. package/build/events/event-types/books/trope-deleted-event.d.ts +9 -0
  74. package/build/events/event-types/books/trope-deleted-event.js +2 -0
  75. package/build/events/event-types/books/trope-updated-event.d.ts +12 -0
  76. package/build/events/event-types/books/trope-updated-event.js +2 -0
  77. package/build/events/event-types/media/avatar-uploaded-event.d.ts +14 -0
  78. package/build/events/event-types/media/avatar-uploaded-event.js +2 -0
  79. package/build/events/event-types/orders/order-created-event.d.ts +2 -2
  80. package/build/events/listeners/base-listener.d.ts +4 -4
  81. package/build/events/listeners/base-listener.js +2 -1
  82. package/build/events/publishers/base-publisher.d.ts +4 -4
  83. package/build/events/streams.d.ts +2 -3
  84. package/build/events/streams.js +1 -2
  85. package/build/events/subjects.d.ts +16 -0
  86. package/build/events/subjects.js +17 -0
  87. package/build/index.d.ts +60 -38
  88. package/build/index.js +29 -0
  89. package/build/middlewares/allow-roles.d.ts +2 -2
  90. package/build/middlewares/current-user.d.ts +4 -4
  91. package/build/middlewares/current-user.js +6 -4
  92. package/build/middlewares/error-handler.js +2 -1
  93. package/build/middlewares/validation.js +2 -2
  94. package/build/nats-wrapper.js +17 -5
  95. package/build/redis-wrapper.d.ts +1 -1
  96. package/build/redis-wrapper.js +11 -11
  97. package/package.json +12 -5
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,14 @@
1
+ import { Streams } from '../../streams';
2
+ import { Subjects } from '../../subjects';
3
+ export interface SubgenreCreatedEvent {
4
+ subject: Subjects.SubgenreCreated;
5
+ stream: Streams.BookServiceStream;
6
+ data: {
7
+ id: string;
8
+ name: string;
9
+ description: string | null;
10
+ sortOrder: number;
11
+ isActive: boolean;
12
+ genreId: string;
13
+ };
14
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,9 @@
1
+ import { Streams } from '../../streams';
2
+ import { Subjects } from '../../subjects';
3
+ export interface SubgenreDeletedEvent {
4
+ subject: Subjects.SubgenreDeleted;
5
+ stream: Streams.BookServiceStream;
6
+ data: {
7
+ id: string;
8
+ };
9
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,14 @@
1
+ import { Streams } from '../../streams';
2
+ import { Subjects } from '../../subjects';
3
+ export interface SubgenreUpdatedEvent {
4
+ subject: Subjects.SubgenreUpdated;
5
+ stream: Streams.BookServiceStream;
6
+ data: {
7
+ id: string;
8
+ name: string;
9
+ description: string | null;
10
+ sortOrder: number;
11
+ isActive: boolean;
12
+ genreId: string;
13
+ };
14
+ }
@@ -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 TagCreatedEvent {
4
+ subject: Subjects.TagCreated;
5
+ stream: Streams.BookServiceStream;
6
+ data: {
7
+ id: string;
8
+ name: string;
9
+ description: string | null;
10
+ isActive: boolean;
11
+ };
12
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,9 @@
1
+ import { Streams } from '../../streams';
2
+ import { Subjects } from '../../subjects';
3
+ export interface TagDeletedEvent {
4
+ subject: Subjects.TagDeleted;
5
+ stream: Streams.BookServiceStream;
6
+ data: {
7
+ id: string;
8
+ };
9
+ }
@@ -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 TagUpdatedEvent {
4
+ subject: Subjects.TagUpdated;
5
+ stream: Streams.BookServiceStream;
6
+ data: {
7
+ id: string;
8
+ name: string;
9
+ description: string | null;
10
+ isActive: boolean;
11
+ };
12
+ }
@@ -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 TriggerCreatedEvent {
4
+ subject: Subjects.TriggerCreated;
5
+ stream: Streams.BookServiceStream;
6
+ data: {
7
+ id: string;
8
+ name: string;
9
+ description: string | null;
10
+ isActive: boolean;
11
+ };
12
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,9 @@
1
+ import { Streams } from '../../streams';
2
+ import { Subjects } from '../../subjects';
3
+ export interface TriggerDeletedEvent {
4
+ subject: Subjects.TriggerDeleted;
5
+ stream: Streams.BookServiceStream;
6
+ data: {
7
+ id: string;
8
+ };
9
+ }
@@ -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 TriggerUpdatedEvent {
4
+ subject: Subjects.TriggerUpdated;
5
+ stream: Streams.BookServiceStream;
6
+ data: {
7
+ id: string;
8
+ name: string;
9
+ description: string | null;
10
+ isActive: boolean;
11
+ };
12
+ }
@@ -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 TropeCreatedEvent {
4
+ subject: Subjects.TropeCreated;
5
+ stream: Streams.BookServiceStream;
6
+ data: {
7
+ id: string;
8
+ name: string;
9
+ description: string | null;
10
+ isActive: boolean;
11
+ };
12
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,9 @@
1
+ import { Streams } from '../../streams';
2
+ import { Subjects } from '../../subjects';
3
+ export interface TropeDeletedEvent {
4
+ subject: Subjects.TropeDeleted;
5
+ stream: Streams.BookServiceStream;
6
+ data: {
7
+ id: string;
8
+ };
9
+ }
@@ -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 TropeUpdatedEvent {
4
+ subject: Subjects.TropeUpdated;
5
+ stream: Streams.BookServiceStream;
6
+ data: {
7
+ id: string;
8
+ name: string;
9
+ description: string | null;
10
+ isActive: boolean;
11
+ };
12
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,14 @@
1
+ import { Streams } from '../../streams';
2
+ import { Subjects } from '../../subjects';
3
+ export interface AvatarUploadedEvent {
4
+ subject: Subjects.AvatarUploaded;
5
+ stream: Streams.MediaServiceStream;
6
+ data: {
7
+ userId: string;
8
+ imageId: string;
9
+ variants: {
10
+ original: string;
11
+ thumbnail: string;
12
+ };
13
+ };
14
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,5 +1,5 @@
1
- import { Streams } from "../../streams";
2
- import { Subjects } from "../../subjects";
1
+ import { Streams } from '../../streams';
2
+ import { Subjects } from '../../subjects';
3
3
  export interface OrderCreatedEvent {
4
4
  subject: Subjects.OrderCreated;
5
5
  stream: Streams.OrderServiceStream;
@@ -1,14 +1,14 @@
1
- import { JetStreamManager, JsMsg, Consumer, JetStreamClient } from "nats";
1
+ import { JetStreamManager, JsMsg, Consumer, JetStreamClient } from 'nats';
2
2
  interface Event {
3
3
  subject: string;
4
4
  stream: string;
5
5
  data: any;
6
6
  }
7
7
  export declare abstract class Listener<T extends Event> {
8
- abstract subject: T["subject"];
9
- abstract stream: T["stream"];
8
+ abstract subject: T['subject'];
9
+ abstract stream: T['stream'];
10
10
  abstract durableName: string;
11
- abstract onMessage(data: T["data"], msg: JsMsg): void;
11
+ abstract onMessage(data: T['data'], msg: JsMsg): void;
12
12
  protected jsm: JetStreamManager;
13
13
  protected js: JetStreamClient;
14
14
  protected consumer: Consumer;
@@ -28,6 +28,7 @@ class Listener {
28
28
  waitForStream() {
29
29
  return __awaiter(this, void 0, void 0, function* () {
30
30
  let retryCount = 0;
31
+ // eslint-disable-next-line no-constant-condition
31
32
  while (true) {
32
33
  try {
33
34
  yield this.jsm.streams.info(this.stream);
@@ -36,7 +37,7 @@ class Listener {
36
37
  }
37
38
  catch (_a) {
38
39
  console.log(`⏳ Waiting for stream "${this.stream}"...`);
39
- yield new Promise((res) => setTimeout(res, 2000));
40
+ yield new Promise(res => setTimeout(res, 2000));
40
41
  }
41
42
  retryCount++;
42
43
  if (retryCount > 5) {
@@ -1,14 +1,14 @@
1
- import { JetStreamClient } from "nats";
1
+ import { JetStreamClient } from 'nats';
2
2
  export interface Event {
3
3
  subject: string;
4
4
  stream: string;
5
5
  data: any;
6
6
  }
7
7
  export declare abstract class Publisher<T extends Event> {
8
- abstract subject: T["subject"];
9
- abstract stream: T["stream"];
8
+ abstract subject: T['subject'];
9
+ abstract stream: T['stream'];
10
10
  protected jsClient: JetStreamClient;
11
11
  protected codec: import("nats").Codec<unknown>;
12
12
  constructor(js: JetStreamClient);
13
- publish(data: T["data"]): Promise<void>;
13
+ publish(data: T['data']): Promise<void>;
14
14
  }
@@ -1,7 +1,6 @@
1
1
  export declare enum Streams {
2
2
  OrderServiceStream = "orders",
3
3
  BookServiceStream = "books",
4
- ReaderServiceStream = "readers",
5
- AuthorServiceStream = "authors",
6
- AuthServiceStream = "auth"
4
+ AuthServiceStream = "auth",
5
+ MediaServiceStream = "media"
7
6
  }
@@ -5,7 +5,6 @@ var Streams;
5
5
  (function (Streams) {
6
6
  Streams["OrderServiceStream"] = "orders";
7
7
  Streams["BookServiceStream"] = "books";
8
- Streams["ReaderServiceStream"] = "readers";
9
- Streams["AuthorServiceStream"] = "authors";
10
8
  Streams["AuthServiceStream"] = "auth";
9
+ Streams["MediaServiceStream"] = "media";
11
10
  })(Streams || (exports.Streams = Streams = {}));
@@ -14,9 +14,25 @@ export declare enum Subjects {
14
14
  AdminSignedUp = "admin:signed-up",
15
15
  AdminDeleted = "admin:deleted",
16
16
  AdminUpdated = "admin:updated",
17
+ AvatarUploaded = "avatar:uploaded",
17
18
  BookCreated = "book:created",
18
19
  BookUpdated = "book:updated",
19
20
  BookDeleted = "book:deleted",
21
+ GenreCreated = "genre:created",
22
+ GenreUpdated = "genre:updated",
23
+ GenreDeleted = "genre:deleted",
24
+ SubgenreCreated = "subgenre:created",
25
+ SubgenreUpdated = "subgenre:updated",
26
+ SubgenreDeleted = "subgenre:deleted",
27
+ TagCreated = "tag:created",
28
+ TagUpdated = "tag:updated",
29
+ TagDeleted = "tag:deleted",
30
+ TropeCreated = "trope:created",
31
+ TropeUpdated = "trope:updated",
32
+ TropeDeleted = "trope:deleted",
33
+ TriggerCreated = "trigger:created",
34
+ TriggerUpdated = "trigger:updated",
35
+ TriggerDeleted = "trigger:deleted",
20
36
  ChapterCreated = "chapter:created",
21
37
  ChapterUpdated = "chapter:updated",
22
38
  ChapterDeleted = "chapter:deleted",
@@ -21,10 +21,27 @@ var Subjects;
21
21
  Subjects["AdminSignedUp"] = "admin:signed-up";
22
22
  Subjects["AdminDeleted"] = "admin:deleted";
23
23
  Subjects["AdminUpdated"] = "admin:updated";
24
+ // Media event subjects
25
+ Subjects["AvatarUploaded"] = "avatar:uploaded";
24
26
  // Books related event subjects
25
27
  Subjects["BookCreated"] = "book:created";
26
28
  Subjects["BookUpdated"] = "book:updated";
27
29
  Subjects["BookDeleted"] = "book:deleted";
30
+ Subjects["GenreCreated"] = "genre:created";
31
+ Subjects["GenreUpdated"] = "genre:updated";
32
+ Subjects["GenreDeleted"] = "genre:deleted";
33
+ Subjects["SubgenreCreated"] = "subgenre:created";
34
+ Subjects["SubgenreUpdated"] = "subgenre:updated";
35
+ Subjects["SubgenreDeleted"] = "subgenre:deleted";
36
+ Subjects["TagCreated"] = "tag:created";
37
+ Subjects["TagUpdated"] = "tag:updated";
38
+ Subjects["TagDeleted"] = "tag:deleted";
39
+ Subjects["TropeCreated"] = "trope:created";
40
+ Subjects["TropeUpdated"] = "trope:updated";
41
+ Subjects["TropeDeleted"] = "trope:deleted";
42
+ Subjects["TriggerCreated"] = "trigger:created";
43
+ Subjects["TriggerUpdated"] = "trigger:updated";
44
+ Subjects["TriggerDeleted"] = "trigger:deleted";
28
45
  // Chapters related event subjects
29
46
  Subjects["ChapterCreated"] = "chapter:created";
30
47
  Subjects["ChapterUpdated"] = "chapter:updated";
package/build/index.d.ts CHANGED
@@ -1,38 +1,60 @@
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 "./errors/forbidden-error";
8
- export * from "./middlewares/current-user";
9
- export * from "./middlewares/require-auth";
10
- export * from "./middlewares/validation";
11
- export * from "./middlewares/error-handler";
12
- export * from "./middlewares/allow-roles";
13
- export * from "./enum/roles";
14
- export * from "./events/listeners/base-listener";
15
- export * from "./events/publishers/base-publisher";
16
- export * from "./events/event-types/books/book-created-event";
17
- export * from "./events/event-types/books/book-updated-event";
18
- export * from "./events/event-types/books/book-deleted-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/author-verified-event";
22
- export * from "./events/event-types/auth/author-signed-up-event";
23
- export * from "./events/event-types/auth/author-signed-in-event";
24
- export * from "./events/event-types/auth/author-signed-out-event";
25
- export * from "./events/event-types/auth/reader-updated-event";
26
- export * from "./events/event-types/auth/reader-deleted-event";
27
- export * from "./events/event-types/auth/reader-signed-up-event";
28
- export * from "./events/event-types/auth/reader-signed-in-event";
29
- export * from "./events/event-types/auth/reader-signed-out-event";
30
- export * from "./events/event-types/auth/reader-verified-event";
31
- export * from "./events/event-types/auth/admin-signed-up-event";
32
- export * from "./events/event-types/auth/admin-deleted-event";
33
- export * from "./events/event-types/auth/admin-updated-event";
34
- export * from "./events/event-types/orders/order-created-event";
35
- export * from "./events/subjects";
36
- export * from "./events/streams";
37
- export * from "./nats-wrapper";
38
- export * from "./redis-wrapper";
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 './errors/forbidden-error';
8
+ export * from './errors/internal-error';
9
+ export * from './errors/conflict-error';
10
+ export * from './middlewares/current-user';
11
+ export * from './middlewares/require-auth';
12
+ export * from './middlewares/validation';
13
+ export * from './middlewares/error-handler';
14
+ export * from './middlewares/allow-roles';
15
+ export * from './enum/roles';
16
+ export * from './enum/image';
17
+ export * from './events/listeners/base-listener';
18
+ export * from './events/publishers/base-publisher';
19
+ export * from './events/event-types/books/book-created-event';
20
+ export * from './events/event-types/books/book-updated-event';
21
+ export * from './events/event-types/books/book-deleted-event';
22
+ export * from './events/event-types/books/genre-created-event';
23
+ export * from './events/event-types/books/genre-updated-event';
24
+ export * from './events/event-types/books/genre-deleted-event';
25
+ export * from './events/event-types/books/subgenre-created-event';
26
+ export * from './events/event-types/books/subgenre-updated-event';
27
+ export * from './events/event-types/books/subgenre-deleted-event';
28
+ export * from './events/event-types/books/tag-created-event';
29
+ export * from './events/event-types/books/tag-updated-event';
30
+ export * from './events/event-types/books/tag-deleted-event';
31
+ export * from './events/event-types/books/trope-created-event';
32
+ export * from './events/event-types/books/trope-updated-event';
33
+ export * from './events/event-types/books/trope-deleted-event';
34
+ export * from './events/event-types/books/trigger-created-event';
35
+ export * from './events/event-types/books/trigger-updated-event';
36
+ export * from './events/event-types/books/trigger-deleted-event';
37
+ export * from './events/event-types/books/chapter-created-event';
38
+ export * from './events/event-types/books/chapter-updated-event';
39
+ export * from './events/event-types/books/chapter-deleted-event';
40
+ export * from './events/event-types/auth/author-updated-event';
41
+ export * from './events/event-types/auth/author-deleted-event';
42
+ export * from './events/event-types/auth/author-verified-event';
43
+ export * from './events/event-types/auth/author-signed-up-event';
44
+ export * from './events/event-types/auth/author-signed-in-event';
45
+ export * from './events/event-types/auth/author-signed-out-event';
46
+ export * from './events/event-types/auth/reader-updated-event';
47
+ export * from './events/event-types/auth/reader-deleted-event';
48
+ export * from './events/event-types/auth/reader-signed-up-event';
49
+ export * from './events/event-types/auth/reader-signed-in-event';
50
+ export * from './events/event-types/auth/reader-signed-out-event';
51
+ export * from './events/event-types/auth/reader-verified-event';
52
+ export * from './events/event-types/auth/admin-signed-up-event';
53
+ export * from './events/event-types/auth/admin-deleted-event';
54
+ export * from './events/event-types/auth/admin-updated-event';
55
+ export * from './events/event-types/media/avatar-uploaded-event';
56
+ export * from './events/event-types/orders/order-created-event';
57
+ export * from './events/subjects';
58
+ export * from './events/streams';
59
+ export * from './nats-wrapper';
60
+ export * from './redis-wrapper';
package/build/index.js CHANGED
@@ -22,6 +22,8 @@ __exportStar(require("./errors/not-authorized-error"), exports);
22
22
  __exportStar(require("./errors/not-found-error"), exports);
23
23
  __exportStar(require("./errors/request-validation-error"), exports);
24
24
  __exportStar(require("./errors/forbidden-error"), exports);
25
+ __exportStar(require("./errors/internal-error"), exports);
26
+ __exportStar(require("./errors/conflict-error"), exports);
25
27
  // Middlewares
26
28
  __exportStar(require("./middlewares/current-user"), exports);
27
29
  __exportStar(require("./middlewares/require-auth"), exports);
@@ -30,11 +32,36 @@ __exportStar(require("./middlewares/error-handler"), exports);
30
32
  __exportStar(require("./middlewares/allow-roles"), exports);
31
33
  // Enums
32
34
  __exportStar(require("./enum/roles"), exports);
35
+ __exportStar(require("./enum/image"), exports);
33
36
  __exportStar(require("./events/listeners/base-listener"), exports);
34
37
  __exportStar(require("./events/publishers/base-publisher"), exports);
35
38
  __exportStar(require("./events/event-types/books/book-created-event"), exports);
36
39
  __exportStar(require("./events/event-types/books/book-updated-event"), exports);
37
40
  __exportStar(require("./events/event-types/books/book-deleted-event"), exports);
41
+ // Genre events
42
+ __exportStar(require("./events/event-types/books/genre-created-event"), exports);
43
+ __exportStar(require("./events/event-types/books/genre-updated-event"), exports);
44
+ __exportStar(require("./events/event-types/books/genre-deleted-event"), exports);
45
+ // Subgenre events
46
+ __exportStar(require("./events/event-types/books/subgenre-created-event"), exports);
47
+ __exportStar(require("./events/event-types/books/subgenre-updated-event"), exports);
48
+ __exportStar(require("./events/event-types/books/subgenre-deleted-event"), exports);
49
+ // Tag events
50
+ __exportStar(require("./events/event-types/books/tag-created-event"), exports);
51
+ __exportStar(require("./events/event-types/books/tag-updated-event"), exports);
52
+ __exportStar(require("./events/event-types/books/tag-deleted-event"), exports);
53
+ // Trope events
54
+ __exportStar(require("./events/event-types/books/trope-created-event"), exports);
55
+ __exportStar(require("./events/event-types/books/trope-updated-event"), exports);
56
+ __exportStar(require("./events/event-types/books/trope-deleted-event"), exports);
57
+ // Trigger events
58
+ __exportStar(require("./events/event-types/books/trigger-created-event"), exports);
59
+ __exportStar(require("./events/event-types/books/trigger-updated-event"), exports);
60
+ __exportStar(require("./events/event-types/books/trigger-deleted-event"), exports);
61
+ // Chapter events
62
+ __exportStar(require("./events/event-types/books/chapter-created-event"), exports);
63
+ __exportStar(require("./events/event-types/books/chapter-updated-event"), exports);
64
+ __exportStar(require("./events/event-types/books/chapter-deleted-event"), exports);
38
65
  // Author events
39
66
  __exportStar(require("./events/event-types/auth/author-updated-event"), exports);
40
67
  __exportStar(require("./events/event-types/auth/author-deleted-event"), exports);
@@ -53,6 +80,8 @@ __exportStar(require("./events/event-types/auth/reader-verified-event"), exports
53
80
  __exportStar(require("./events/event-types/auth/admin-signed-up-event"), exports);
54
81
  __exportStar(require("./events/event-types/auth/admin-deleted-event"), exports);
55
82
  __exportStar(require("./events/event-types/auth/admin-updated-event"), exports);
83
+ // Media events
84
+ __exportStar(require("./events/event-types/media/avatar-uploaded-event"), exports);
56
85
  __exportStar(require("./events/event-types/orders/order-created-event"), exports);
57
86
  __exportStar(require("./events/subjects"), exports);
58
87
  __exportStar(require("./events/streams"), exports);
@@ -1,3 +1,3 @@
1
- import { UserRoles } from "../enum/roles";
2
- import { Request, Response, NextFunction } from "express";
1
+ import { UserRoles } from '../enum/roles';
2
+ import { Request, Response, NextFunction } from 'express';
3
3
  export declare const allowRoles: (roles: UserRoles[]) => (req: Request, res: Response, next: NextFunction) => void;
@@ -1,7 +1,7 @@
1
- import { Request, Response, NextFunction } from "express";
2
- import { UserRoles } from "../enum/roles";
3
- import { RedisWrapper } from "../redis-wrapper";
4
- import NodeCache from "node-cache";
1
+ import { Request, Response, NextFunction } from 'express';
2
+ import { UserRoles } from '../enum/roles';
3
+ import { RedisWrapper } from '../redis-wrapper';
4
+ import NodeCache from 'node-cache';
5
5
  export interface UserJwtPayload {
6
6
  id: string;
7
7
  email: string;
@@ -23,7 +23,7 @@ class CurrentUserMiddleware {
23
23
  return (req, res, next) => __awaiter(this, void 0, void 0, function* () {
24
24
  var _a, _b, _c, _d;
25
25
  try {
26
- const token = (_a = req.headers["authorization"]) === null || _a === void 0 ? void 0 : _a.split(" ")[1];
26
+ const token = (_a = req.headers['authorization']) === null || _a === void 0 ? void 0 : _a.split(' ')[1];
27
27
  if (!token) {
28
28
  return next();
29
29
  }
@@ -56,7 +56,7 @@ class CurrentUserMiddleware {
56
56
  next();
57
57
  }
58
58
  catch (err) {
59
- console.error("Auth error:", err);
59
+ console.error('Auth error:', err);
60
60
  return next();
61
61
  }
62
62
  });
@@ -65,7 +65,7 @@ class CurrentUserMiddleware {
65
65
  exports.CurrentUserMiddleware = CurrentUserMiddleware;
66
66
  const currentUser = (req, res, next) => {
67
67
  var _a;
68
- const token = (_a = req.headers["authorization"]) === null || _a === void 0 ? void 0 : _a.split(" ")[1];
68
+ const token = (_a = req.headers['authorization']) === null || _a === void 0 ? void 0 : _a.split(' ')[1];
69
69
  if (!token) {
70
70
  return next();
71
71
  }
@@ -80,7 +80,9 @@ const currentUser = (req, res, next) => {
80
80
  };
81
81
  req.currentUser = userData;
82
82
  }
83
- catch (err) { }
83
+ catch (err) {
84
+ console.log(err);
85
+ }
84
86
  next();
85
87
  };
86
88
  exports.currentUser = currentUser;
@@ -2,12 +2,13 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.errorHandler = void 0;
4
4
  const custom_error_1 = require("../errors/custom-error");
5
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
5
6
  const errorHandler = (err, req, res, next) => {
6
7
  if (err instanceof custom_error_1.CustomError) {
7
8
  return res.status(err.statusCode).send({ errors: err.serializeErrors() });
8
9
  }
9
10
  res.status(400).send({
10
- errors: [{ message: 'Something went wrong' }]
11
+ errors: [{ message: 'Something went wrong' }],
11
12
  });
12
13
  };
13
14
  exports.errorHandler = errorHandler;
@@ -26,9 +26,9 @@ function validationMiddleware(type, field = 'body', skipMissingProperties = fals
26
26
  if (errors.length > 0) {
27
27
  // Transform validation errors to our format
28
28
  const validationErrors = [];
29
- errors.forEach((error) => {
29
+ errors.forEach(error => {
30
30
  if (error.constraints) {
31
- Object.values(error.constraints).forEach((message) => {
31
+ Object.values(error.constraints).forEach(message => {
32
32
  validationErrors.push({
33
33
  message,
34
34
  field: error.property,