@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
@@ -15,7 +15,7 @@ describe('UserRoles Enum', () => {
15
15
  expect(roles_1.UserRoles.reader).toBe(4);
16
16
  });
17
17
  it('should have exactly 4 roles', () => {
18
- const roles = Object.keys(roles_1.UserRoles).filter((key) => isNaN(Number(key)));
18
+ const roles = Object.keys(roles_1.UserRoles).filter(key => isNaN(Number(key)));
19
19
  expect(roles.length).toBe(4);
20
20
  expect(roles).toContain('superAdmin');
21
21
  expect(roles).toContain('admin');
@@ -50,9 +50,7 @@ describe('RequestValidationError', () => {
50
50
  ];
51
51
  const error = new request_validation_error_1.RequestValidationError(validationErrors);
52
52
  const serialized = error.serializeErrors();
53
- expect(serialized).toEqual([
54
- { message: 'At least one field is required' },
55
- ]);
53
+ expect(serialized).toEqual([{ message: 'At least one field is required' }]);
56
54
  });
57
55
  it('should serialize mixed errors correctly', () => {
58
56
  const validationErrors = [
@@ -61,7 +61,7 @@ describe('Listener', () => {
61
61
  mockJs.consumers.get.mockResolvedValue(mockConsumer);
62
62
  const consoleSpy = jest.spyOn(console, 'log').mockImplementation();
63
63
  // We need to start listen and then stop it to test waitForStream
64
- const listenPromise = listener.listen();
64
+ listener.listen();
65
65
  // Let it resolve
66
66
  yield Promise.resolve();
67
67
  yield Promise.resolve();
@@ -71,7 +71,8 @@ describe('Listener', () => {
71
71
  }));
72
72
  it('should retry when stream does not exist initially', () => __awaiter(void 0, void 0, void 0, function* () {
73
73
  jest.useFakeTimers();
74
- mockJsm.streams.info = jest.fn()
74
+ mockJsm.streams.info = jest
75
+ .fn()
75
76
  .mockRejectedValueOnce(new Error('Stream not found'))
76
77
  .mockResolvedValueOnce({});
77
78
  const mockConsumer = {
@@ -83,7 +84,7 @@ describe('Listener', () => {
83
84
  };
84
85
  mockJs.consumers.get.mockResolvedValue(mockConsumer);
85
86
  const consoleSpy = jest.spyOn(console, 'log').mockImplementation();
86
- const listenPromise = listener.listen();
87
+ listener.listen();
87
88
  // First attempt fails, advance time for retry
88
89
  yield jest.advanceTimersByTimeAsync(2000);
89
90
  yield Promise.resolve();
@@ -8,17 +8,11 @@ describe('Streams Enum', () => {
8
8
  it('should have BookServiceStream with value "books"', () => {
9
9
  expect(streams_1.Streams.BookServiceStream).toBe('books');
10
10
  });
11
- it('should have ReaderServiceStream with value "readers"', () => {
12
- expect(streams_1.Streams.ReaderServiceStream).toBe('readers');
13
- });
14
- it('should have AuthorServiceStream with value "authors"', () => {
15
- expect(streams_1.Streams.AuthorServiceStream).toBe('authors');
16
- });
17
11
  it('should have AuthServiceStream with value "auth"', () => {
18
12
  expect(streams_1.Streams.AuthServiceStream).toBe('auth');
19
13
  });
20
14
  it('should have exactly 5 streams', () => {
21
15
  const streams = Object.values(streams_1.Streams);
22
- expect(streams.length).toBe(5);
16
+ expect(streams.length).toBe(4);
23
17
  });
24
18
  });
@@ -74,6 +74,6 @@ describe('Subjects Enum', () => {
74
74
  });
75
75
  it('should have exactly 23 subjects', () => {
76
76
  const subjects = Object.values(subjects_1.Subjects);
77
- expect(subjects.length).toBe(23);
77
+ expect(subjects.length).toBe(24);
78
78
  });
79
79
  });
@@ -83,7 +83,7 @@ describe('currentUser function', () => {
83
83
  });
84
84
  it('should handle different user roles correctly', () => {
85
85
  const roles = [roles_1.UserRoles.admin, roles_1.UserRoles.author, roles_1.UserRoles.reader, roles_1.UserRoles.superAdmin];
86
- roles.forEach((role) => {
86
+ roles.forEach(role => {
87
87
  var _a;
88
88
  const req = { headers: {} };
89
89
  const token = (0, setup_1.createTestToken)('user123', role);
@@ -20,7 +20,7 @@ describe('requireAuth Middleware', () => {
20
20
  expect(mockNext).not.toHaveBeenCalled();
21
21
  });
22
22
  it('should throw NotAuthorizedError when currentUser is null-ish', () => {
23
- // @ts-ignore - testing edge case
23
+ // @ts-expect-error - testing edge case
24
24
  mockReq.currentUser = null;
25
25
  expect(() => {
26
26
  (0, require_auth_1.requireAuth)(mockReq, mockRes, mockNext);
@@ -41,7 +41,7 @@ describe('requireAuth Middleware', () => {
41
41
  });
42
42
  it('should work with different user roles', () => {
43
43
  const roles = [roles_1.UserRoles.admin, roles_1.UserRoles.author, roles_1.UserRoles.reader, roles_1.UserRoles.superAdmin];
44
- roles.forEach((role) => {
44
+ roles.forEach(role => {
45
45
  const next = jest.fn();
46
46
  mockReq.currentUser = {
47
47
  id: '507f1f77bcf86cd799439011',
@@ -9,6 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
+ const nats_1 = require("nats");
12
13
  const nats_wrapper_1 = require("../nats-wrapper");
13
14
  const streams_1 = require("../events/streams");
14
15
  const subjects_1 = require("../events/subjects");
@@ -16,7 +17,7 @@ const subjects_1 = require("../events/subjects");
16
17
  jest.mock('nats', () => ({
17
18
  connect: jest.fn(),
18
19
  }));
19
- const { connect: mockConnect } = require('nats');
20
+ const mockConnect = nats_1.connect;
20
21
  describe('NatsWrapper', () => {
21
22
  let natsWrapper;
22
23
  beforeEach(() => {
@@ -9,6 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
+ const ioredis_1 = require("ioredis");
12
13
  const redis_wrapper_1 = require("../redis-wrapper");
13
14
  // Mock ioredis
14
15
  jest.mock('ioredis', () => {
@@ -21,7 +22,7 @@ jest.mock('ioredis', () => {
21
22
  })),
22
23
  };
23
24
  });
24
- const { Redis: MockRedis } = require('ioredis');
25
+ const MockRedis = ioredis_1.Redis;
25
26
  describe('RedisWrapper', () => {
26
27
  let redisWrapper;
27
28
  beforeEach(() => {
@@ -0,0 +1,14 @@
1
+ export declare enum ImageType {
2
+ cover = 1,
3
+ profile = 2,
4
+ book = 3,
5
+ banner = 4,
6
+ genreImage = 5,
7
+ genreIcon = 6,
8
+ subgenreImage = 7,
9
+ subgenreIcon = 8,
10
+ promoImage = 9,
11
+ promoIcon = 10,
12
+ chapter = 11,
13
+ authorDocument = 12
14
+ }
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ImageType = void 0;
4
+ var ImageType;
5
+ (function (ImageType) {
6
+ ImageType[ImageType["cover"] = 1] = "cover";
7
+ ImageType[ImageType["profile"] = 2] = "profile";
8
+ ImageType[ImageType["book"] = 3] = "book";
9
+ ImageType[ImageType["banner"] = 4] = "banner";
10
+ ImageType[ImageType["genreImage"] = 5] = "genreImage";
11
+ ImageType[ImageType["genreIcon"] = 6] = "genreIcon";
12
+ ImageType[ImageType["subgenreImage"] = 7] = "subgenreImage";
13
+ ImageType[ImageType["subgenreIcon"] = 8] = "subgenreIcon";
14
+ ImageType[ImageType["promoImage"] = 9] = "promoImage";
15
+ ImageType[ImageType["promoIcon"] = 10] = "promoIcon";
16
+ ImageType[ImageType["chapter"] = 11] = "chapter";
17
+ ImageType[ImageType["authorDocument"] = 12] = "authorDocument";
18
+ })(ImageType || (exports.ImageType = ImageType = {}));
@@ -0,0 +1,9 @@
1
+ import { CustomError } from './custom-error';
2
+ export declare class ConflictError extends CustomError {
3
+ message: string;
4
+ statusCode: number;
5
+ constructor(message?: string);
6
+ serializeErrors(): {
7
+ message: string;
8
+ }[];
9
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ConflictError = void 0;
4
+ const custom_error_1 = require("./custom-error");
5
+ class ConflictError extends custom_error_1.CustomError {
6
+ constructor(message = 'Internal Server Error') {
7
+ super(message);
8
+ this.message = message;
9
+ this.statusCode = 409;
10
+ Object.setPrototypeOf(this, ConflictError.prototype);
11
+ }
12
+ serializeErrors() {
13
+ return [{ message: this.message }];
14
+ }
15
+ }
16
+ exports.ConflictError = ConflictError;
@@ -1,4 +1,4 @@
1
- import { CustomError } from "./custom-error";
1
+ import { CustomError } from './custom-error';
2
2
  export declare class ForbiddenError extends CustomError {
3
3
  message: string;
4
4
  statusCode: number;
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ForbiddenError = void 0;
4
4
  const custom_error_1 = require("./custom-error");
5
5
  class ForbiddenError extends custom_error_1.CustomError {
6
- constructor(message = "Forbidden") {
6
+ constructor(message = 'Forbidden') {
7
7
  super(message);
8
8
  this.message = message;
9
9
  this.statusCode = 403;
@@ -0,0 +1,9 @@
1
+ import { CustomError } from './custom-error';
2
+ export declare class InternalError extends CustomError {
3
+ message: string;
4
+ statusCode: number;
5
+ constructor(message?: string);
6
+ serializeErrors(): {
7
+ message: string;
8
+ }[];
9
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InternalError = void 0;
4
+ const custom_error_1 = require("./custom-error");
5
+ class InternalError extends custom_error_1.CustomError {
6
+ constructor(message = 'Internal Server Error') {
7
+ super(message);
8
+ this.message = message;
9
+ this.statusCode = 500;
10
+ Object.setPrototypeOf(this, InternalError.prototype);
11
+ }
12
+ serializeErrors() {
13
+ return [{ message: this.message }];
14
+ }
15
+ }
16
+ exports.InternalError = InternalError;
@@ -1,4 +1,4 @@
1
- import { CustomError } from "./custom-error";
1
+ import { CustomError } from './custom-error';
2
2
  export declare class NotAuthorizedError extends CustomError {
3
3
  statusCode: number;
4
4
  constructor(message?: string);
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.NotAuthorizedError = void 0;
4
4
  const custom_error_1 = require("./custom-error");
5
5
  class NotAuthorizedError extends custom_error_1.CustomError {
6
- constructor(message = "Not Authorized") {
6
+ constructor(message = 'Not Authorized') {
7
7
  super(message);
8
8
  this.statusCode = 401;
9
9
  Object.setPrototypeOf(this, NotAuthorizedError.prototype);
@@ -1,4 +1,4 @@
1
- import { CustomError } from "./custom-error";
1
+ import { CustomError } from './custom-error';
2
2
  export declare class NotFoundError extends CustomError {
3
3
  message: string;
4
4
  statusCode: number;
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.NotFoundError = void 0;
4
4
  const custom_error_1 = require("./custom-error");
5
5
  class NotFoundError extends custom_error_1.CustomError {
6
- constructor(message = "Not Found") {
7
- super("Route not found");
6
+ constructor(message = 'Not Found') {
7
+ super('Route not found');
8
8
  this.message = message;
9
9
  this.statusCode = 404;
10
10
  Object.setPrototypeOf(this, NotFoundError.prototype);
@@ -11,7 +11,7 @@ class RequestValidationError extends custom_error_1.CustomError {
11
11
  Object.setPrototypeOf(this, RequestValidationError.prototype);
12
12
  }
13
13
  serializeErrors() {
14
- return this.errors.map((err) => {
14
+ return this.errors.map(err => {
15
15
  if (err.type === 'field') {
16
16
  return { message: err.msg, field: err.path };
17
17
  }
@@ -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 AdminDeletedEvent {
4
4
  subject: Subjects.AdminDeleted;
5
5
  stream: Streams.AuthServiceStream;
@@ -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 AdminSignedUpEvent {
4
4
  subject: Subjects.AdminSignedUp;
5
5
  stream: Streams.AuthServiceStream;
@@ -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 AdminUpdatedEvent {
4
4
  subject: Subjects.AdminUpdated;
5
5
  stream: Streams.AuthServiceStream;
@@ -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 AuthorDeletedEvent {
4
4
  subject: Subjects.AuthorDeleted;
5
5
  stream: Streams.AuthServiceStream;
@@ -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 AuthorSignedInEvent {
4
4
  subject: Subjects.AuthorSignedIn;
5
5
  stream: Streams.AuthServiceStream;
@@ -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 AuthorSignedOutEvent {
4
4
  subject: Subjects.AuthorSignedOut;
5
5
  stream: Streams.AuthServiceStream;
@@ -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 AuthorSignedUpEvent {
4
4
  subject: Subjects.AuthorSignedUp;
5
5
  stream: Streams.AuthServiceStream;
@@ -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 AuthorUpdatedEvent {
4
4
  subject: Subjects.AuthorUpdated;
5
5
  stream: Streams.AuthServiceStream;
@@ -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 AuthorVerifiedEvent {
4
4
  subject: Subjects.AuthorVerified;
5
5
  stream: Streams.AuthServiceStream;
@@ -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 ReaderDeletedEvent {
4
4
  subject: Subjects.ReaderDeleted;
5
5
  stream: Streams.AuthServiceStream;
@@ -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 ReaderSignedInEvent {
4
4
  subject: Subjects.ReaderSignedIn;
5
5
  stream: Streams.AuthServiceStream;
@@ -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 ReaderSignedOutEvent {
4
4
  subject: Subjects.ReaderSignedOut;
5
5
  stream: Streams.AuthServiceStream;
@@ -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 ReaderSignedUpEvent {
4
4
  subject: Subjects.ReaderSignedUp;
5
5
  stream: Streams.AuthServiceStream;
@@ -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 ReaderUpdatedEvent {
4
4
  subject: Subjects.ReaderUpdated;
5
5
  stream: Streams.AuthServiceStream;
@@ -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 ReaderVerifiedEvent {
4
4
  subject: Subjects.ReaderVerified;
5
5
  stream: Streams.AuthServiceStream;
@@ -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 BookCreatedEvent {
4
4
  subject: Subjects.BookCreated;
5
5
  stream: Streams.BookServiceStream;
@@ -7,5 +7,28 @@ export interface BookCreatedEvent {
7
7
  id: string;
8
8
  version: number;
9
9
  title: string;
10
+ description: string;
11
+ synopsis: string;
12
+ status: number;
13
+ price: number;
14
+ type: number;
15
+ hoursToRead: number;
16
+ sexualContentLevel: number;
17
+ violenceContentLevel: number;
18
+ isbn: string | null;
19
+ numberInSeries: number | null;
20
+ isUploaded: boolean;
21
+ wordsCount: number | null;
22
+ pagesCount: number | null;
23
+ readerAgeGroup: number | null;
24
+ isComplete: boolean;
25
+ authorId: string;
26
+ genreId: string;
27
+ subgenreId: string | null;
28
+ seriesId: string | null;
29
+ tagIds: string[];
30
+ tropeIds: string[];
31
+ triggerIds: string[];
32
+ createdAt: string;
10
33
  };
11
34
  }
@@ -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 BookDeletedEvent {
4
4
  subject: Subjects.BookDeleted;
5
5
  stream: Streams.BookServiceStream;
@@ -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 BookUpdatedEvent {
4
4
  subject: Subjects.BookUpdated;
5
5
  stream: Streams.BookServiceStream;
@@ -7,5 +7,29 @@ export interface BookUpdatedEvent {
7
7
  id: string;
8
8
  version: number;
9
9
  title: string;
10
+ description: string;
11
+ synopsis: string;
12
+ status: number;
13
+ price: number;
14
+ type: number;
15
+ hoursToRead: number;
16
+ sexualContentLevel: number;
17
+ violenceContentLevel: number;
18
+ isbn: string | null;
19
+ numberInSeries: number | null;
20
+ isUploaded: boolean;
21
+ wordsCount: number | null;
22
+ pagesCount: number | null;
23
+ readerAgeGroup: number | null;
24
+ isComplete: boolean;
25
+ authorId: string;
26
+ genreId: string;
27
+ subgenreId: string | null;
28
+ seriesId: string | null;
29
+ tagIds: string[];
30
+ tropeIds: string[];
31
+ triggerIds: string[];
32
+ createdAt: string;
33
+ updatedAt: string;
10
34
  };
11
35
  }
@@ -0,0 +1,16 @@
1
+ import { Streams } from '../../streams';
2
+ import { Subjects } from '../../subjects';
3
+ export interface ChapterCreatedEvent {
4
+ subject: Subjects.ChapterCreated;
5
+ stream: Streams.BookServiceStream;
6
+ data: {
7
+ id: string;
8
+ title: string;
9
+ sequenceNumber: number;
10
+ wordCount: number;
11
+ pageCount: number;
12
+ note: string | null;
13
+ bookId: string;
14
+ createdAt: string;
15
+ };
16
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,10 @@
1
+ import { Streams } from '../../streams';
2
+ import { Subjects } from '../../subjects';
3
+ export interface ChapterDeletedEvent {
4
+ subject: Subjects.ChapterDeleted;
5
+ stream: Streams.BookServiceStream;
6
+ data: {
7
+ id: string;
8
+ bookId: string;
9
+ };
10
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,17 @@
1
+ import { Streams } from '../../streams';
2
+ import { Subjects } from '../../subjects';
3
+ export interface ChapterUpdatedEvent {
4
+ subject: Subjects.ChapterUpdated;
5
+ stream: Streams.BookServiceStream;
6
+ data: {
7
+ id: string;
8
+ title: string;
9
+ sequenceNumber: number;
10
+ wordCount: number;
11
+ pageCount: number;
12
+ note: string | null;
13
+ bookId: string;
14
+ createdAt: string;
15
+ updatedAt: string;
16
+ };
17
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,13 @@
1
+ import { Streams } from '../../streams';
2
+ import { Subjects } from '../../subjects';
3
+ export interface GenreCreatedEvent {
4
+ subject: Subjects.GenreCreated;
5
+ stream: Streams.BookServiceStream;
6
+ data: {
7
+ id: string;
8
+ name: string;
9
+ description: string | null;
10
+ sortOrder: number;
11
+ isActive: boolean;
12
+ };
13
+ }
@@ -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 GenreDeletedEvent {
4
+ subject: Subjects.GenreDeleted;
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,13 @@
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
+ }