@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.
- package/package.json +1 -1
- package/build/__tests__/enum/roles.test.d.ts +0 -1
- package/build/__tests__/enum/roles.test.js +0 -31
- package/build/__tests__/errors/bad-request-error.test.d.ts +0 -1
- package/build/__tests__/errors/bad-request-error.test.js +0 -30
- package/build/__tests__/errors/database-connection-error.test.d.ts +0 -1
- package/build/__tests__/errors/database-connection-error.test.js +0 -28
- package/build/__tests__/errors/forbidden-error.test.d.ts +0 -1
- package/build/__tests__/errors/forbidden-error.test.js +0 -39
- package/build/__tests__/errors/not-authorized-error.test.d.ts +0 -1
- package/build/__tests__/errors/not-authorized-error.test.js +0 -39
- package/build/__tests__/errors/not-found-error.test.d.ts +0 -1
- package/build/__tests__/errors/not-found-error.test.js +0 -39
- package/build/__tests__/errors/request-validation-error.test.d.ts +0 -1
- package/build/__tests__/errors/request-validation-error.test.js +0 -99
- package/build/__tests__/events/base-listener.test.d.ts +0 -1
- package/build/__tests__/events/base-listener.test.js +0 -223
- package/build/__tests__/events/base-publisher.test.d.ts +0 -1
- package/build/__tests__/events/base-publisher.test.js +0 -85
- package/build/__tests__/events/streams.test.d.ts +0 -1
- package/build/__tests__/events/streams.test.js +0 -18
- package/build/__tests__/events/subjects.test.d.ts +0 -1
- package/build/__tests__/events/subjects.test.js +0 -79
- package/build/__tests__/middlewares/allow-roles.test.d.ts +0 -1
- package/build/__tests__/middlewares/allow-roles.test.js +0 -112
- package/build/__tests__/middlewares/current-user.test.d.ts +0 -1
- package/build/__tests__/middlewares/current-user.test.js +0 -261
- package/build/__tests__/middlewares/error-handler.test.d.ts +0 -1
- package/build/__tests__/middlewares/error-handler.test.js +0 -102
- package/build/__tests__/middlewares/require-auth.test.d.ts +0 -1
- package/build/__tests__/middlewares/require-auth.test.js +0 -57
- package/build/__tests__/middlewares/validation.test.d.ts +0 -1
- package/build/__tests__/middlewares/validation.test.js +0 -198
- package/build/__tests__/nats-wrapper.test.d.ts +0 -1
- package/build/__tests__/nats-wrapper.test.js +0 -159
- package/build/__tests__/redis-wrapper.test.d.ts +0 -1
- package/build/__tests__/redis-wrapper.test.js +0 -159
- package/build/enum/image.d.ts +0 -14
- package/build/enum/image.js +0 -18
- package/build/enum/roles.d.ts +0 -6
- package/build/enum/roles.js +0 -10
- package/build/errors/bad-request-error.d.ts +0 -9
- package/build/errors/bad-request-error.js +0 -16
- package/build/errors/conflict-error.d.ts +0 -9
- package/build/errors/conflict-error.js +0 -16
- package/build/errors/custom-error.d.ts +0 -8
- package/build/errors/custom-error.js +0 -10
- package/build/errors/database-connection-error.d.ts +0 -9
- package/build/errors/database-connection-error.js +0 -16
- package/build/errors/forbidden-error.d.ts +0 -9
- package/build/errors/forbidden-error.js +0 -16
- package/build/errors/internal-error.d.ts +0 -9
- package/build/errors/internal-error.js +0 -16
- package/build/errors/not-authorized-error.d.ts +0 -8
- package/build/errors/not-authorized-error.js +0 -15
- package/build/errors/not-found-error.d.ts +0 -9
- package/build/errors/not-found-error.js +0 -16
- package/build/errors/request-validation-error.d.ts +0 -14
- package/build/errors/request-validation-error.js +0 -22
- package/build/events/event-types/auth/admin-deleted-event.d.ts +0 -11
- package/build/events/event-types/auth/admin-deleted-event.js +0 -2
- package/build/events/event-types/auth/admin-signed-up-event.d.ts +0 -13
- package/build/events/event-types/auth/admin-signed-up-event.js +0 -2
- package/build/events/event-types/auth/admin-updated-event.d.ts +0 -14
- package/build/events/event-types/auth/admin-updated-event.js +0 -2
- package/build/events/event-types/auth/author-deleted-event.d.ts +0 -11
- package/build/events/event-types/auth/author-deleted-event.js +0 -2
- package/build/events/event-types/auth/author-signed-in-event.d.ts +0 -12
- package/build/events/event-types/auth/author-signed-in-event.js +0 -2
- package/build/events/event-types/auth/author-signed-out-event.d.ts +0 -11
- package/build/events/event-types/auth/author-signed-out-event.js +0 -2
- package/build/events/event-types/auth/author-signed-up-event.d.ts +0 -13
- package/build/events/event-types/auth/author-signed-up-event.js +0 -2
- package/build/events/event-types/auth/author-updated-event.d.ts +0 -14
- package/build/events/event-types/auth/author-updated-event.js +0 -2
- package/build/events/event-types/auth/author-verified-event.d.ts +0 -14
- package/build/events/event-types/auth/author-verified-event.js +0 -2
- package/build/events/event-types/auth/reader-deleted-event.d.ts +0 -11
- package/build/events/event-types/auth/reader-deleted-event.js +0 -2
- package/build/events/event-types/auth/reader-signed-in-event.d.ts +0 -13
- package/build/events/event-types/auth/reader-signed-in-event.js +0 -2
- package/build/events/event-types/auth/reader-signed-out-event.d.ts +0 -11
- package/build/events/event-types/auth/reader-signed-out-event.js +0 -2
- package/build/events/event-types/auth/reader-signed-up-event.d.ts +0 -13
- package/build/events/event-types/auth/reader-signed-up-event.js +0 -2
- package/build/events/event-types/auth/reader-updated-event.d.ts +0 -14
- package/build/events/event-types/auth/reader-updated-event.js +0 -2
- package/build/events/event-types/auth/reader-verified-event.d.ts +0 -14
- package/build/events/event-types/auth/reader-verified-event.js +0 -2
- package/build/events/event-types/books/book-created-event.d.ts +0 -34
- package/build/events/event-types/books/book-created-event.js +0 -2
- package/build/events/event-types/books/book-deleted-event.d.ts +0 -10
- package/build/events/event-types/books/book-deleted-event.js +0 -2
- package/build/events/event-types/books/book-updated-event.d.ts +0 -35
- package/build/events/event-types/books/book-updated-event.js +0 -2
- package/build/events/event-types/books/chapter-created-event.d.ts +0 -16
- package/build/events/event-types/books/chapter-created-event.js +0 -2
- package/build/events/event-types/books/chapter-deleted-event.d.ts +0 -10
- package/build/events/event-types/books/chapter-deleted-event.js +0 -2
- package/build/events/event-types/books/chapter-updated-event.d.ts +0 -17
- package/build/events/event-types/books/chapter-updated-event.js +0 -2
- package/build/events/event-types/books/genre-created-event.d.ts +0 -13
- package/build/events/event-types/books/genre-created-event.js +0 -2
- package/build/events/event-types/books/genre-deleted-event.d.ts +0 -9
- package/build/events/event-types/books/genre-deleted-event.js +0 -2
- package/build/events/event-types/books/genre-updated-event.d.ts +0 -13
- package/build/events/event-types/books/genre-updated-event.js +0 -2
- package/build/events/event-types/books/subgenre-created-event.d.ts +0 -14
- package/build/events/event-types/books/subgenre-created-event.js +0 -2
- package/build/events/event-types/books/subgenre-deleted-event.d.ts +0 -9
- package/build/events/event-types/books/subgenre-deleted-event.js +0 -2
- package/build/events/event-types/books/subgenre-updated-event.d.ts +0 -14
- package/build/events/event-types/books/subgenre-updated-event.js +0 -2
- package/build/events/event-types/books/tag-created-event.d.ts +0 -12
- package/build/events/event-types/books/tag-created-event.js +0 -2
- package/build/events/event-types/books/tag-deleted-event.d.ts +0 -9
- package/build/events/event-types/books/tag-deleted-event.js +0 -2
- package/build/events/event-types/books/tag-updated-event.d.ts +0 -12
- package/build/events/event-types/books/tag-updated-event.js +0 -2
- package/build/events/event-types/books/trigger-created-event.d.ts +0 -12
- package/build/events/event-types/books/trigger-created-event.js +0 -2
- package/build/events/event-types/books/trigger-deleted-event.d.ts +0 -9
- package/build/events/event-types/books/trigger-deleted-event.js +0 -2
- package/build/events/event-types/books/trigger-updated-event.d.ts +0 -12
- package/build/events/event-types/books/trigger-updated-event.js +0 -2
- package/build/events/event-types/books/trope-created-event.d.ts +0 -12
- package/build/events/event-types/books/trope-created-event.js +0 -2
- package/build/events/event-types/books/trope-deleted-event.d.ts +0 -9
- package/build/events/event-types/books/trope-deleted-event.js +0 -2
- package/build/events/event-types/books/trope-updated-event.d.ts +0 -12
- package/build/events/event-types/books/trope-updated-event.js +0 -2
- package/build/events/event-types/media/avatar-uploaded-event.d.ts +0 -14
- package/build/events/event-types/media/avatar-uploaded-event.js +0 -2
- package/build/events/event-types/orders/order-created-event.d.ts +0 -12
- package/build/events/event-types/orders/order-created-event.js +0 -2
- package/build/events/listeners/base-listener.d.ts +0 -23
- package/build/events/listeners/base-listener.js +0 -97
- package/build/events/publishers/base-publisher.d.ts +0 -14
- package/build/events/publishers/base-publisher.js +0 -27
- package/build/events/streams.d.ts +0 -6
- package/build/events/streams.js +0 -10
- package/build/events/subjects.d.ts +0 -41
- package/build/events/subjects.js +0 -52
- package/build/index.d.ts +0 -60
- package/build/index.js +0 -89
- package/build/middlewares/allow-roles.d.ts +0 -3
- package/build/middlewares/allow-roles.js +0 -18
- package/build/middlewares/current-user.d.ts +0 -40
- package/build/middlewares/current-user.js +0 -88
- package/build/middlewares/error-handler.d.ts +0 -2
- package/build/middlewares/error-handler.js +0 -14
- package/build/middlewares/require-auth.d.ts +0 -2
- package/build/middlewares/require-auth.js +0 -11
- package/build/middlewares/validation.d.ts +0 -3
- package/build/middlewares/validation.js +0 -57
- package/build/nats-wrapper.d.ts +0 -17
- package/build/nats-wrapper.js +0 -92
- package/build/redis-wrapper.d.ts +0 -20
- package/build/redis-wrapper.js +0 -77
- package/build/test/setup.d.ts +0 -8
- 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,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,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,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,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,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,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,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,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,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,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,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;
|
package/build/events/streams.js
DELETED
|
@@ -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
|
-
}
|
package/build/events/subjects.js
DELETED
|
@@ -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';
|