@eratu/common 1.0.21 → 1.0.22

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 (161) hide show
  1. package/package.json +1 -1
  2. package/build/__tests__/enum/roles.test.d.ts +0 -1
  3. package/build/__tests__/enum/roles.test.js +0 -31
  4. package/build/__tests__/errors/bad-request-error.test.d.ts +0 -1
  5. package/build/__tests__/errors/bad-request-error.test.js +0 -30
  6. package/build/__tests__/errors/database-connection-error.test.d.ts +0 -1
  7. package/build/__tests__/errors/database-connection-error.test.js +0 -28
  8. package/build/__tests__/errors/forbidden-error.test.d.ts +0 -1
  9. package/build/__tests__/errors/forbidden-error.test.js +0 -39
  10. package/build/__tests__/errors/not-authorized-error.test.d.ts +0 -1
  11. package/build/__tests__/errors/not-authorized-error.test.js +0 -39
  12. package/build/__tests__/errors/not-found-error.test.d.ts +0 -1
  13. package/build/__tests__/errors/not-found-error.test.js +0 -39
  14. package/build/__tests__/errors/request-validation-error.test.d.ts +0 -1
  15. package/build/__tests__/errors/request-validation-error.test.js +0 -99
  16. package/build/__tests__/events/base-listener.test.d.ts +0 -1
  17. package/build/__tests__/events/base-listener.test.js +0 -223
  18. package/build/__tests__/events/base-publisher.test.d.ts +0 -1
  19. package/build/__tests__/events/base-publisher.test.js +0 -85
  20. package/build/__tests__/events/streams.test.d.ts +0 -1
  21. package/build/__tests__/events/streams.test.js +0 -18
  22. package/build/__tests__/events/subjects.test.d.ts +0 -1
  23. package/build/__tests__/events/subjects.test.js +0 -79
  24. package/build/__tests__/middlewares/allow-roles.test.d.ts +0 -1
  25. package/build/__tests__/middlewares/allow-roles.test.js +0 -112
  26. package/build/__tests__/middlewares/current-user.test.d.ts +0 -1
  27. package/build/__tests__/middlewares/current-user.test.js +0 -261
  28. package/build/__tests__/middlewares/error-handler.test.d.ts +0 -1
  29. package/build/__tests__/middlewares/error-handler.test.js +0 -102
  30. package/build/__tests__/middlewares/require-auth.test.d.ts +0 -1
  31. package/build/__tests__/middlewares/require-auth.test.js +0 -57
  32. package/build/__tests__/middlewares/validation.test.d.ts +0 -1
  33. package/build/__tests__/middlewares/validation.test.js +0 -198
  34. package/build/__tests__/nats-wrapper.test.d.ts +0 -1
  35. package/build/__tests__/nats-wrapper.test.js +0 -159
  36. package/build/__tests__/redis-wrapper.test.d.ts +0 -1
  37. package/build/__tests__/redis-wrapper.test.js +0 -159
  38. package/build/enum/image.d.ts +0 -14
  39. package/build/enum/image.js +0 -18
  40. package/build/enum/roles.d.ts +0 -6
  41. package/build/enum/roles.js +0 -10
  42. package/build/errors/bad-request-error.d.ts +0 -9
  43. package/build/errors/bad-request-error.js +0 -16
  44. package/build/errors/conflict-error.d.ts +0 -9
  45. package/build/errors/conflict-error.js +0 -16
  46. package/build/errors/custom-error.d.ts +0 -8
  47. package/build/errors/custom-error.js +0 -10
  48. package/build/errors/database-connection-error.d.ts +0 -9
  49. package/build/errors/database-connection-error.js +0 -16
  50. package/build/errors/forbidden-error.d.ts +0 -9
  51. package/build/errors/forbidden-error.js +0 -16
  52. package/build/errors/internal-error.d.ts +0 -9
  53. package/build/errors/internal-error.js +0 -16
  54. package/build/errors/not-authorized-error.d.ts +0 -8
  55. package/build/errors/not-authorized-error.js +0 -15
  56. package/build/errors/not-found-error.d.ts +0 -9
  57. package/build/errors/not-found-error.js +0 -16
  58. package/build/errors/request-validation-error.d.ts +0 -14
  59. package/build/errors/request-validation-error.js +0 -22
  60. package/build/events/event-types/auth/admin-deleted-event.d.ts +0 -11
  61. package/build/events/event-types/auth/admin-deleted-event.js +0 -2
  62. package/build/events/event-types/auth/admin-signed-up-event.d.ts +0 -13
  63. package/build/events/event-types/auth/admin-signed-up-event.js +0 -2
  64. package/build/events/event-types/auth/admin-updated-event.d.ts +0 -14
  65. package/build/events/event-types/auth/admin-updated-event.js +0 -2
  66. package/build/events/event-types/auth/author-deleted-event.d.ts +0 -11
  67. package/build/events/event-types/auth/author-deleted-event.js +0 -2
  68. package/build/events/event-types/auth/author-signed-in-event.d.ts +0 -12
  69. package/build/events/event-types/auth/author-signed-in-event.js +0 -2
  70. package/build/events/event-types/auth/author-signed-out-event.d.ts +0 -11
  71. package/build/events/event-types/auth/author-signed-out-event.js +0 -2
  72. package/build/events/event-types/auth/author-signed-up-event.d.ts +0 -13
  73. package/build/events/event-types/auth/author-signed-up-event.js +0 -2
  74. package/build/events/event-types/auth/author-updated-event.d.ts +0 -14
  75. package/build/events/event-types/auth/author-updated-event.js +0 -2
  76. package/build/events/event-types/auth/author-verified-event.d.ts +0 -14
  77. package/build/events/event-types/auth/author-verified-event.js +0 -2
  78. package/build/events/event-types/auth/reader-deleted-event.d.ts +0 -11
  79. package/build/events/event-types/auth/reader-deleted-event.js +0 -2
  80. package/build/events/event-types/auth/reader-signed-in-event.d.ts +0 -13
  81. package/build/events/event-types/auth/reader-signed-in-event.js +0 -2
  82. package/build/events/event-types/auth/reader-signed-out-event.d.ts +0 -11
  83. package/build/events/event-types/auth/reader-signed-out-event.js +0 -2
  84. package/build/events/event-types/auth/reader-signed-up-event.d.ts +0 -13
  85. package/build/events/event-types/auth/reader-signed-up-event.js +0 -2
  86. package/build/events/event-types/auth/reader-updated-event.d.ts +0 -14
  87. package/build/events/event-types/auth/reader-updated-event.js +0 -2
  88. package/build/events/event-types/auth/reader-verified-event.d.ts +0 -14
  89. package/build/events/event-types/auth/reader-verified-event.js +0 -2
  90. package/build/events/event-types/books/book-created-event.d.ts +0 -34
  91. package/build/events/event-types/books/book-created-event.js +0 -2
  92. package/build/events/event-types/books/book-deleted-event.d.ts +0 -10
  93. package/build/events/event-types/books/book-deleted-event.js +0 -2
  94. package/build/events/event-types/books/book-updated-event.d.ts +0 -35
  95. package/build/events/event-types/books/book-updated-event.js +0 -2
  96. package/build/events/event-types/books/chapter-created-event.d.ts +0 -16
  97. package/build/events/event-types/books/chapter-created-event.js +0 -2
  98. package/build/events/event-types/books/chapter-deleted-event.d.ts +0 -10
  99. package/build/events/event-types/books/chapter-deleted-event.js +0 -2
  100. package/build/events/event-types/books/chapter-updated-event.d.ts +0 -17
  101. package/build/events/event-types/books/chapter-updated-event.js +0 -2
  102. package/build/events/event-types/books/genre-created-event.d.ts +0 -13
  103. package/build/events/event-types/books/genre-created-event.js +0 -2
  104. package/build/events/event-types/books/genre-deleted-event.d.ts +0 -9
  105. package/build/events/event-types/books/genre-deleted-event.js +0 -2
  106. package/build/events/event-types/books/genre-updated-event.d.ts +0 -13
  107. package/build/events/event-types/books/genre-updated-event.js +0 -2
  108. package/build/events/event-types/books/subgenre-created-event.d.ts +0 -14
  109. package/build/events/event-types/books/subgenre-created-event.js +0 -2
  110. package/build/events/event-types/books/subgenre-deleted-event.d.ts +0 -9
  111. package/build/events/event-types/books/subgenre-deleted-event.js +0 -2
  112. package/build/events/event-types/books/subgenre-updated-event.d.ts +0 -14
  113. package/build/events/event-types/books/subgenre-updated-event.js +0 -2
  114. package/build/events/event-types/books/tag-created-event.d.ts +0 -12
  115. package/build/events/event-types/books/tag-created-event.js +0 -2
  116. package/build/events/event-types/books/tag-deleted-event.d.ts +0 -9
  117. package/build/events/event-types/books/tag-deleted-event.js +0 -2
  118. package/build/events/event-types/books/tag-updated-event.d.ts +0 -12
  119. package/build/events/event-types/books/tag-updated-event.js +0 -2
  120. package/build/events/event-types/books/trigger-created-event.d.ts +0 -12
  121. package/build/events/event-types/books/trigger-created-event.js +0 -2
  122. package/build/events/event-types/books/trigger-deleted-event.d.ts +0 -9
  123. package/build/events/event-types/books/trigger-deleted-event.js +0 -2
  124. package/build/events/event-types/books/trigger-updated-event.d.ts +0 -12
  125. package/build/events/event-types/books/trigger-updated-event.js +0 -2
  126. package/build/events/event-types/books/trope-created-event.d.ts +0 -12
  127. package/build/events/event-types/books/trope-created-event.js +0 -2
  128. package/build/events/event-types/books/trope-deleted-event.d.ts +0 -9
  129. package/build/events/event-types/books/trope-deleted-event.js +0 -2
  130. package/build/events/event-types/books/trope-updated-event.d.ts +0 -12
  131. package/build/events/event-types/books/trope-updated-event.js +0 -2
  132. package/build/events/event-types/media/avatar-uploaded-event.d.ts +0 -14
  133. package/build/events/event-types/media/avatar-uploaded-event.js +0 -2
  134. package/build/events/event-types/orders/order-created-event.d.ts +0 -12
  135. package/build/events/event-types/orders/order-created-event.js +0 -2
  136. package/build/events/listeners/base-listener.d.ts +0 -23
  137. package/build/events/listeners/base-listener.js +0 -97
  138. package/build/events/publishers/base-publisher.d.ts +0 -14
  139. package/build/events/publishers/base-publisher.js +0 -27
  140. package/build/events/streams.d.ts +0 -6
  141. package/build/events/streams.js +0 -10
  142. package/build/events/subjects.d.ts +0 -41
  143. package/build/events/subjects.js +0 -52
  144. package/build/index.d.ts +0 -60
  145. package/build/index.js +0 -89
  146. package/build/middlewares/allow-roles.d.ts +0 -3
  147. package/build/middlewares/allow-roles.js +0 -18
  148. package/build/middlewares/current-user.d.ts +0 -40
  149. package/build/middlewares/current-user.js +0 -88
  150. package/build/middlewares/error-handler.d.ts +0 -2
  151. package/build/middlewares/error-handler.js +0 -14
  152. package/build/middlewares/require-auth.d.ts +0 -2
  153. package/build/middlewares/require-auth.js +0 -11
  154. package/build/middlewares/validation.d.ts +0 -3
  155. package/build/middlewares/validation.js +0 -57
  156. package/build/nats-wrapper.d.ts +0 -17
  157. package/build/nats-wrapper.js +0 -92
  158. package/build/redis-wrapper.d.ts +0 -20
  159. package/build/redis-wrapper.js +0 -77
  160. package/build/test/setup.d.ts +0 -8
  161. package/build/test/setup.js +0 -45
@@ -1,13 +0,0 @@
1
- import { Streams } from '../../streams';
2
- import { Subjects } from '../../subjects';
3
- export interface GenreUpdatedEvent {
4
- subject: Subjects.GenreUpdated;
5
- stream: Streams.BookServiceStream;
6
- data: {
7
- id: string;
8
- name: string;
9
- description: string | null;
10
- sortOrder: number;
11
- isActive: boolean;
12
- };
13
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,14 +0,0 @@
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
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,9 +0,0 @@
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
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,14 +0,0 @@
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
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,12 +0,0 @@
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
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,9 +0,0 @@
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
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,12 +0,0 @@
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
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,12 +0,0 @@
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
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,9 +0,0 @@
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
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,12 +0,0 @@
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
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,12 +0,0 @@
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
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,9 +0,0 @@
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
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,12 +0,0 @@
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
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,14 +0,0 @@
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
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,12 +0,0 @@
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
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,23 +0,0 @@
1
- import { JetStreamManager, JsMsg, Consumer, JetStreamClient } from 'nats';
2
- interface Event {
3
- subject: string;
4
- stream: string;
5
- data: any;
6
- }
7
- export declare abstract class Listener<T extends Event> {
8
- abstract subject: T['subject'];
9
- abstract stream: T['stream'];
10
- abstract durableName: string;
11
- abstract onMessage(data: T['data'], msg: JsMsg): void;
12
- protected jsm: JetStreamManager;
13
- protected js: JetStreamClient;
14
- protected consumer: Consumer;
15
- protected ackWait: number;
16
- protected codec: import("nats").Codec<unknown>;
17
- constructor(js: JetStreamClient, jsm: JetStreamManager);
18
- private waitForStream;
19
- private createConsumerIfNotExists;
20
- listen(): Promise<void>;
21
- private parseMessage;
22
- }
23
- export {};
@@ -1,97 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __asyncValues = (this && this.__asyncValues) || function (o) {
12
- if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
13
- var m = o[Symbol.asyncIterator], i;
14
- return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
15
- function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
16
- function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
17
- };
18
- Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.Listener = void 0;
20
- const nats_1 = require("nats");
21
- class Listener {
22
- constructor(js, jsm) {
23
- this.ackWait = 5 * 1000;
24
- this.codec = (0, nats_1.JSONCodec)();
25
- this.jsm = jsm;
26
- this.js = js;
27
- }
28
- waitForStream() {
29
- return __awaiter(this, void 0, void 0, function* () {
30
- let retryCount = 0;
31
- // eslint-disable-next-line no-constant-condition
32
- while (true) {
33
- try {
34
- yield this.jsm.streams.info(this.stream);
35
- console.log(`✅ Stream "${this.stream}" is ready`);
36
- return;
37
- }
38
- catch (_a) {
39
- console.log(`⏳ Waiting for stream "${this.stream}"...`);
40
- yield new Promise(res => setTimeout(res, 2000));
41
- }
42
- retryCount++;
43
- if (retryCount > 5) {
44
- console.error(`❌ Stream "${this.stream}" is not ready after 5 attempts`);
45
- throw new Error(`Stream "${this.stream}" is not ready`);
46
- }
47
- }
48
- });
49
- }
50
- createConsumerIfNotExists() {
51
- return __awaiter(this, void 0, void 0, function* () {
52
- yield this.waitForStream();
53
- // Ensure durable consumer exists
54
- try {
55
- yield this.jsm.consumers.info(this.stream, this.durableName);
56
- }
57
- catch (_a) {
58
- yield this.jsm.consumers.add(this.stream, {
59
- durable_name: this.durableName,
60
- ack_policy: nats_1.AckPolicy.Explicit,
61
- ack_wait: this.ackWait * 1000000, // nanoseconds
62
- filter_subject: this.subject,
63
- });
64
- }
65
- // Get the consumer object
66
- this.consumer = yield this.js.consumers.get(this.stream, this.durableName);
67
- });
68
- }
69
- listen() {
70
- return __awaiter(this, void 0, void 0, function* () {
71
- var _a, e_1, _b, _c;
72
- yield this.createConsumerIfNotExists();
73
- const messages = yield this.consumer.consume();
74
- try {
75
- for (var _d = true, messages_1 = __asyncValues(messages), messages_1_1; messages_1_1 = yield messages_1.next(), _a = messages_1_1.done, !_a; _d = true) {
76
- _c = messages_1_1.value;
77
- _d = false;
78
- const msg = _c;
79
- const data = this.parseMessage(msg);
80
- yield this.onMessage(data, msg);
81
- }
82
- }
83
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
84
- finally {
85
- try {
86
- if (!_d && !_a && (_b = messages_1.return)) yield _b.call(messages_1);
87
- }
88
- finally { if (e_1) throw e_1.error; }
89
- }
90
- });
91
- }
92
- parseMessage(msg) {
93
- const decoded = this.codec.decode(msg.data);
94
- return decoded;
95
- }
96
- }
97
- exports.Listener = Listener;
@@ -1,14 +0,0 @@
1
- import { JetStreamClient } from 'nats';
2
- export interface Event {
3
- subject: string;
4
- stream: string;
5
- data: any;
6
- }
7
- export declare abstract class Publisher<T extends Event> {
8
- abstract subject: T['subject'];
9
- abstract stream: T['stream'];
10
- protected jsClient: JetStreamClient;
11
- protected codec: import("nats").Codec<unknown>;
12
- constructor(js: JetStreamClient);
13
- publish(data: T['data']): Promise<void>;
14
- }
@@ -1,27 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.Publisher = void 0;
13
- const nats_1 = require("nats");
14
- class Publisher {
15
- constructor(js) {
16
- this.codec = (0, nats_1.JSONCodec)();
17
- this.jsClient = js;
18
- }
19
- publish(data) {
20
- return __awaiter(this, void 0, void 0, function* () {
21
- const message = this.codec.encode(data);
22
- yield this.jsClient.publish(this.subject, message);
23
- console.log(`Message published to ${this.subject}:`, data);
24
- });
25
- }
26
- }
27
- exports.Publisher = Publisher;
@@ -1,6 +0,0 @@
1
- export declare enum Streams {
2
- OrderServiceStream = "orders",
3
- BookServiceStream = "books",
4
- AuthServiceStream = "auth",
5
- MediaServiceStream = "media"
6
- }
@@ -1,10 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Streams = void 0;
4
- var Streams;
5
- (function (Streams) {
6
- Streams["OrderServiceStream"] = "orders";
7
- Streams["BookServiceStream"] = "books";
8
- Streams["AuthServiceStream"] = "auth";
9
- Streams["MediaServiceStream"] = "media";
10
- })(Streams || (exports.Streams = Streams = {}));
@@ -1,41 +0,0 @@
1
- export declare enum Subjects {
2
- AuthorUpdated = "author:updated",
3
- AuthorDeleted = "author:deleted",
4
- AuthorSignedUp = "author:signed-up",
5
- AuthorSignedIn = "author:signed-in",
6
- AuthorSignedOut = "author:signed-out",
7
- AuthorVerified = "author:verified",
8
- ReaderSignedUp = "reader:signed-up",
9
- ReaderSignedIn = "reader:signed-in",
10
- ReaderSignedOut = "reader:signed-out",
11
- ReaderUpdated = "reader:updated",
12
- ReaderDeleted = "reader:deleted",
13
- ReaderVerified = "reader:verified",
14
- AdminSignedUp = "admin:signed-up",
15
- AdminDeleted = "admin:deleted",
16
- AdminUpdated = "admin:updated",
17
- AvatarUploaded = "avatar:uploaded",
18
- BookCreated = "book:created",
19
- BookUpdated = "book:updated",
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",
36
- ChapterCreated = "chapter:created",
37
- ChapterUpdated = "chapter:updated",
38
- ChapterDeleted = "chapter:deleted",
39
- OrderCreated = "order:created",
40
- OrderCancelled = "order:cancelled"
41
- }
@@ -1,52 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Subjects = void 0;
4
- var Subjects;
5
- (function (Subjects) {
6
- // Authors related event subjects
7
- Subjects["AuthorUpdated"] = "author:updated";
8
- Subjects["AuthorDeleted"] = "author:deleted";
9
- Subjects["AuthorSignedUp"] = "author:signed-up";
10
- Subjects["AuthorSignedIn"] = "author:signed-in";
11
- Subjects["AuthorSignedOut"] = "author:signed-out";
12
- Subjects["AuthorVerified"] = "author:verified";
13
- // Readers related event subjects
14
- Subjects["ReaderSignedUp"] = "reader:signed-up";
15
- Subjects["ReaderSignedIn"] = "reader:signed-in";
16
- Subjects["ReaderSignedOut"] = "reader:signed-out";
17
- Subjects["ReaderUpdated"] = "reader:updated";
18
- Subjects["ReaderDeleted"] = "reader:deleted";
19
- Subjects["ReaderVerified"] = "reader:verified";
20
- // Admins related event subjects
21
- Subjects["AdminSignedUp"] = "admin:signed-up";
22
- Subjects["AdminDeleted"] = "admin:deleted";
23
- Subjects["AdminUpdated"] = "admin:updated";
24
- // Media event subjects
25
- Subjects["AvatarUploaded"] = "avatar:uploaded";
26
- // Books related event subjects
27
- Subjects["BookCreated"] = "book:created";
28
- Subjects["BookUpdated"] = "book:updated";
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";
45
- // Chapters related event subjects
46
- Subjects["ChapterCreated"] = "chapter:created";
47
- Subjects["ChapterUpdated"] = "chapter:updated";
48
- Subjects["ChapterDeleted"] = "chapter:deleted";
49
- // Orders related event subjects
50
- Subjects["OrderCreated"] = "order:created";
51
- Subjects["OrderCancelled"] = "order:cancelled";
52
- })(Subjects || (exports.Subjects = Subjects = {}));
package/build/index.d.ts DELETED
@@ -1,60 +0,0 @@
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';