@builder6/rooms 0.9.2 → 0.10.0

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 (60) hide show
  1. package/README.md +14 -1
  2. package/dist/rooms/app.controller.d.ts +10 -0
  3. package/dist/rooms/app.controller.js +72 -0
  4. package/dist/rooms/app.controller.js.map +1 -0
  5. package/dist/rooms/dtos/notifications.dto.d.ts +9 -0
  6. package/dist/rooms/dtos/notifications.dto.js +7 -0
  7. package/dist/rooms/dtos/notifications.dto.js.map +1 -0
  8. package/dist/rooms/dtos/room_members.dto.d.ts +7 -0
  9. package/dist/rooms/dtos/room_members.dto.js +53 -0
  10. package/dist/rooms/dtos/room_members.dto.js.map +1 -0
  11. package/dist/rooms/dtos/rooms.dto.d.ts +12 -0
  12. package/dist/rooms/dtos/rooms.dto.js +59 -0
  13. package/dist/rooms/dtos/rooms.dto.js.map +1 -0
  14. package/dist/rooms/lib/Json.js +4 -3
  15. package/dist/rooms/lib/Json.js.map +1 -1
  16. package/dist/rooms/lib/utils.js +17 -16
  17. package/dist/rooms/lib/utils.js.map +1 -1
  18. package/dist/rooms/notifications.service.d.ts +19 -0
  19. package/dist/rooms/notifications.service.js +68 -0
  20. package/dist/rooms/notifications.service.js.map +1 -0
  21. package/dist/rooms/protocol/AuthToken.js +6 -6
  22. package/dist/rooms/protocol/AuthToken.js.map +1 -1
  23. package/dist/rooms/protocol/ClientMsg.js +1 -1
  24. package/dist/rooms/protocol/ClientMsg.js.map +1 -1
  25. package/dist/rooms/protocol/Op.js +4 -4
  26. package/dist/rooms/protocol/Op.js.map +1 -1
  27. package/dist/rooms/protocol/SerializedCrdt.js +4 -4
  28. package/dist/rooms/protocol/SerializedCrdt.js.map +1 -1
  29. package/dist/rooms/protocol/ServerMsg.js +1 -1
  30. package/dist/rooms/protocol/ServerMsg.js.map +1 -1
  31. package/dist/rooms/rooms.controller.d.ts +33 -7
  32. package/dist/rooms/rooms.controller.js +126 -31
  33. package/dist/rooms/rooms.controller.js.map +1 -1
  34. package/dist/rooms/rooms.gateway.d.ts +3 -1
  35. package/dist/rooms/rooms.gateway.js +14 -7
  36. package/dist/rooms/rooms.gateway.js.map +1 -1
  37. package/dist/rooms/rooms.guard.d.ts +1 -3
  38. package/dist/rooms/rooms.guard.js +4 -7
  39. package/dist/rooms/rooms.guard.js.map +1 -1
  40. package/dist/rooms/rooms.module.js +9 -4
  41. package/dist/rooms/rooms.module.js.map +1 -1
  42. package/dist/rooms/rooms.moleculer.d.ts +11 -0
  43. package/dist/rooms/rooms.moleculer.js +91 -0
  44. package/dist/rooms/rooms.moleculer.js.map +1 -0
  45. package/dist/rooms/rooms.service.d.ts +44 -1
  46. package/dist/rooms/rooms.service.js +161 -5
  47. package/dist/rooms/rooms.service.js.map +1 -1
  48. package/package.json +14 -5
  49. package/src/rooms/app.controller.ts +63 -0
  50. package/src/rooms/dtos/notifications.dto.ts +9 -0
  51. package/src/rooms/dtos/room_members.dto.ts +31 -0
  52. package/src/rooms/dtos/rooms.dto.ts +51 -0
  53. package/src/rooms/notifications.service.ts +85 -0
  54. package/src/rooms/rooms.controller.ts +139 -20
  55. package/src/rooms/rooms.gateway.ts +17 -4
  56. package/src/rooms/rooms.guard.ts +1 -1
  57. package/src/rooms/rooms.module.ts +7 -2
  58. package/src/rooms/rooms.moleculer.ts +78 -0
  59. package/src/rooms/rooms.service.ts +234 -1
  60. package/.eslintrc.js +0 -25
package/README.md CHANGED
@@ -1,7 +1,20 @@
1
1
  # Builder6 Rooms Module
2
2
 
3
-
4
3
  ## Environment Variables
5
4
 
6
5
  ```shell
7
6
  ```
7
+
8
+ ## Liveblocks API Docs
9
+ https://liveblocks.io/docs/api-reference/rest-api-endpoints#Room
10
+
11
+
12
+ ## Objects
13
+
14
+ ```yml
15
+ - b6_rooms
16
+ - b6_room_members
17
+ - b6_threads
18
+ - b6_comments
19
+ - b6_notifications
20
+ ```
@@ -0,0 +1,10 @@
1
+ import { Response } from 'express';
2
+ import { PagesService } from '@builder6/pages';
3
+ export declare class RoomsAppController {
4
+ private readonly pagesService;
5
+ constructor(pagesService: PagesService);
6
+ getRooms(roomId: string, query: Record<string, any>, req: Request, res: Response): Promise<{
7
+ error: string;
8
+ details: any;
9
+ }>;
10
+ }
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.RoomsAppController = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const core_1 = require("@builder6/core");
18
+ const pages_1 = require("@builder6/pages");
19
+ let RoomsAppController = class RoomsAppController {
20
+ constructor(pagesService) {
21
+ this.pagesService = pagesService;
22
+ }
23
+ async getRooms(roomId = 'test', query, req, res) {
24
+ const user = req['user'];
25
+ try {
26
+ const schema = {
27
+ type: 'rooms-provider',
28
+ baseUrl: '',
29
+ body: [
30
+ {
31
+ type: 'rooms-inbox-popover',
32
+ className: 'flex flex-col m-3 gap-3',
33
+ },
34
+ {
35
+ type: 'rooms-comments',
36
+ className: 'flex flex-col m-3 gap-3',
37
+ roomId: `${roomId}`,
38
+ },
39
+ ],
40
+ };
41
+ const data = {};
42
+ const env = {
43
+ assetUrls: [
44
+ 'https://unpkg.com/@steedos-widgets/liveblocks@6.3.12-beta.1/dist/assets.json',
45
+ ],
46
+ };
47
+ const rendered = await this.pagesService.renderAmis(schema, data, env, user);
48
+ res.status(200).send(rendered);
49
+ }
50
+ catch (error) {
51
+ console.log(error);
52
+ return { error: 'Rooms rendering failed', details: error.message };
53
+ }
54
+ }
55
+ };
56
+ __decorate([
57
+ (0, common_1.Get)(':roomId'),
58
+ __param(0, (0, common_1.Param)('roomId')),
59
+ __param(1, (0, common_1.Query)()),
60
+ __param(2, (0, common_1.Req)()),
61
+ __param(3, (0, common_1.Res)()),
62
+ __metadata("design:type", Function),
63
+ __metadata("design:paramtypes", [String, Object, Request, Object]),
64
+ __metadata("design:returntype", Promise)
65
+ ], RoomsAppController.prototype, "getRooms", null);
66
+ RoomsAppController = __decorate([
67
+ (0, common_1.Controller)('b6/rooms/'),
68
+ (0, common_1.UseGuards)(core_1.AuthGuard),
69
+ __metadata("design:paramtypes", [pages_1.PagesService])
70
+ ], RoomsAppController);
71
+ exports.RoomsAppController = RoomsAppController;
72
+ //# sourceMappingURL=app.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.controller.js","sourceRoot":"","sources":["../../src/rooms/app.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAQwB;AAExB,yCAA2C;AAC3C,2CAA+C;AAKxC,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAC7B,YAA6B,YAA0B;QAA1B,iBAAY,GAAZ,YAAY,CAAc;IAAG,CAAC;IAGrD,AAAN,KAAK,CAAC,QAAQ,CACK,SAAiB,MAAM,EAC/B,KAA0B,EAC5B,GAAY,EACZ,GAAa;QAEpB,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;QACzB,IAAI;YACF,MAAM,MAAM,GAAG;gBACb,IAAI,EAAE,gBAAgB;gBACtB,OAAO,EAAE,EAAE;gBACX,IAAI,EAAE;oBACJ;wBACE,IAAI,EAAE,qBAAqB;wBAC3B,SAAS,EAAE,yBAAyB;qBACrC;oBACD;wBACE,IAAI,EAAE,gBAAgB;wBACtB,SAAS,EAAE,yBAAyB;wBACpC,MAAM,EAAE,GAAG,MAAM,EAAE;qBACpB;iBACF;aACF,CAAC;YACF,MAAM,IAAI,GAAG,EAAE,CAAC;YAChB,MAAM,GAAG,GAAG;gBACV,SAAS,EAAE;oBACT,8EAA8E;iBAC/E;aACF,CAAC;YACF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CACjD,MAAM,EACN,IAAI,EACJ,GAAG,EACH,IAAI,CACL,CAAC;YAEF,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAChC;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACnB,OAAO,EAAE,KAAK,EAAE,wBAAwB,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;SACpE;IACH,CAAC;CACF,CAAA;AA1CO;IADL,IAAA,YAAG,EAAC,SAAS,CAAC;IAEZ,WAAA,IAAA,cAAK,EAAC,QAAQ,CAAC,CAAA;IACf,WAAA,IAAA,cAAK,GAAE,CAAA;IACP,WAAA,IAAA,YAAG,GAAE,CAAA;IACL,WAAA,IAAA,YAAG,GAAE,CAAA;;qDADM,OAAO;;kDAsCpB;AA7CU,kBAAkB;IAF9B,IAAA,mBAAU,EAAC,WAAW,CAAC;IACvB,IAAA,kBAAS,EAAC,gBAAS,CAAC;qCAEwB,oBAAY;GAD5C,kBAAkB,CA8C9B;AA9CY,gDAAkB"}
@@ -0,0 +1,9 @@
1
+ export declare class NotificationDTO {
2
+ id: string;
3
+ userId: string;
4
+ kind: string;
5
+ notifiedAt?: Date;
6
+ readAt?: Date;
7
+ roomId: string;
8
+ threadId: string;
9
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NotificationDTO = void 0;
4
+ class NotificationDTO {
5
+ }
6
+ exports.NotificationDTO = NotificationDTO;
7
+ //# sourceMappingURL=notifications.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notifications.dto.js","sourceRoot":"","sources":["../../../src/rooms/dtos/notifications.dto.ts"],"names":[],"mappings":";;;AAAA,MAAa,eAAe;CAQ3B;AARD,0CAQC"}
@@ -0,0 +1,7 @@
1
+ export declare class RoomMemberDTO {
2
+ _id?: string;
3
+ userId: string;
4
+ roles?: string[];
5
+ notifications?: string[];
6
+ scopes?: string[];
7
+ }
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.RoomMemberDTO = void 0;
13
+ const swagger_1 = require("@nestjs/swagger");
14
+ const rooms_dto_1 = require("./rooms.dto");
15
+ class RoomMemberDTO {
16
+ constructor() {
17
+ this.roles = [];
18
+ this.notifications = ['replies', 'mentions'];
19
+ this.scopes = rooms_dto_1.FULL_ACCESS;
20
+ }
21
+ }
22
+ __decorate([
23
+ (0, swagger_1.ApiProperty)(),
24
+ __metadata("design:type", String)
25
+ ], RoomMemberDTO.prototype, "_id", void 0);
26
+ __decorate([
27
+ (0, swagger_1.ApiProperty)(),
28
+ __metadata("design:type", String)
29
+ ], RoomMemberDTO.prototype, "userId", void 0);
30
+ __decorate([
31
+ (0, swagger_1.ApiProperty)({
32
+ enum: ['owner'],
33
+ default: [],
34
+ }),
35
+ (0, swagger_1.ApiProperty)(),
36
+ __metadata("design:type", Array)
37
+ ], RoomMemberDTO.prototype, "roles", void 0);
38
+ __decorate([
39
+ (0, swagger_1.ApiProperty)({
40
+ enum: ['all', 'replies', 'mentions'],
41
+ default: ['replies', 'mentions'],
42
+ }),
43
+ __metadata("design:type", Array)
44
+ ], RoomMemberDTO.prototype, "notifications", void 0);
45
+ __decorate([
46
+ (0, swagger_1.ApiProperty)({
47
+ enum: ['room:read', 'room:write'],
48
+ default: rooms_dto_1.FULL_ACCESS,
49
+ }),
50
+ __metadata("design:type", Array)
51
+ ], RoomMemberDTO.prototype, "scopes", void 0);
52
+ exports.RoomMemberDTO = RoomMemberDTO;
53
+ //# sourceMappingURL=room_members.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"room_members.dto.js","sourceRoot":"","sources":["../../../src/rooms/dtos/room_members.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAC9C,2CAA0C;AAE1C,MAAa,aAAa;IAA1B;QAcE,UAAK,GAAc,EAAE,CAAC;QAMtB,kBAAa,GAAc,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAMnD,WAAM,GAAc,uBAAW,CAAC;IAClC,CAAC;CAAA;AA1BC;IAAC,IAAA,qBAAW,GAAE;;0CACD;AAEb;IAAC,IAAA,qBAAW,GAAE;;6CACC;AAGf;IAAC,IAAA,qBAAW,EAAC;QACX,IAAI,EAAE,CAAC,OAAO,CAAC;QACf,OAAO,EAAE,EAAE;KACZ,CAAC;IAED,IAAA,qBAAW,GAAE;;4CACQ;AAEtB;IAAC,IAAA,qBAAW,EAAC;QACX,IAAI,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC;QACpC,OAAO,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC;KACjC,CAAC;;oDACiD;AAEnD;IAAC,IAAA,qBAAW,EAAC;QACX,IAAI,EAAE,CAAC,WAAW,EAAE,YAAY,CAAC;QACjC,OAAO,EAAE,uBAAW;KACrB,CAAC;;6CAC8B;AA1BlC,sCA2BC"}
@@ -0,0 +1,12 @@
1
+ import { RoomMemberDTO } from './room_members.dto';
2
+ export declare const READ_ACCESS: string[];
3
+ export declare const FULL_ACCESS: string[];
4
+ export declare class RoomDTO {
5
+ _id?: string;
6
+ name: string;
7
+ description?: string;
8
+ membershipType?: string;
9
+ members?: RoomMemberDTO[];
10
+ defaultScopes?: string[];
11
+ defaultNotifications?: string[];
12
+ }
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.RoomDTO = exports.FULL_ACCESS = exports.READ_ACCESS = void 0;
13
+ const swagger_1 = require("@nestjs/swagger");
14
+ exports.READ_ACCESS = [
15
+ 'room:read',
16
+ 'room:presence:write',
17
+ 'comments:read',
18
+ ];
19
+ exports.FULL_ACCESS = ['room:write', 'comments:write'];
20
+ class RoomDTO {
21
+ constructor() {
22
+ this.defaultScopes = exports.FULL_ACCESS;
23
+ }
24
+ }
25
+ __decorate([
26
+ (0, swagger_1.ApiProperty)(),
27
+ __metadata("design:type", String)
28
+ ], RoomDTO.prototype, "_id", void 0);
29
+ __decorate([
30
+ (0, swagger_1.ApiProperty)(),
31
+ __metadata("design:type", String)
32
+ ], RoomDTO.prototype, "name", void 0);
33
+ __decorate([
34
+ (0, swagger_1.ApiProperty)(),
35
+ __metadata("design:type", String)
36
+ ], RoomDTO.prototype, "description", void 0);
37
+ __decorate([
38
+ (0, swagger_1.ApiProperty)({
39
+ enum: ['standard', 'private', 'shared'],
40
+ default: 'standard',
41
+ }),
42
+ __metadata("design:type", String)
43
+ ], RoomDTO.prototype, "membershipType", void 0);
44
+ __decorate([
45
+ (0, swagger_1.ApiProperty)({
46
+ enum: ['room:read', 'room:write'],
47
+ default: exports.FULL_ACCESS,
48
+ }),
49
+ __metadata("design:type", Array)
50
+ ], RoomDTO.prototype, "defaultScopes", void 0);
51
+ __decorate([
52
+ (0, swagger_1.ApiProperty)({
53
+ enum: ['all', 'replies', 'mentions'],
54
+ default: ['replies', 'mentions'],
55
+ }),
56
+ __metadata("design:type", Array)
57
+ ], RoomDTO.prototype, "defaultNotifications", void 0);
58
+ exports.RoomDTO = RoomDTO;
59
+ //# sourceMappingURL=rooms.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rooms.dto.js","sourceRoot":"","sources":["../../../src/rooms/dtos/rooms.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAQjC,QAAA,WAAW,GAAG;IACzB,WAAW;IACX,qBAAqB;IACrB,eAAe;CAChB,CAAC;AAMW,QAAA,WAAW,GAAG,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;AAE5D,MAAa,OAAO;IAApB;QAuBE,kBAAa,GAAc,mBAAW,CAAC;IAOzC,CAAC;CAAA;AA7BC;IAAC,IAAA,qBAAW,GAAE;;oCACD;AAEb;IAAC,IAAA,qBAAW,GAAE;;qCACD;AAEb;IAAC,IAAA,qBAAW,GAAE;;4CACO;AAGrB;IAAC,IAAA,qBAAW,EAAC;QACX,IAAI,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC;QACvC,OAAO,EAAE,UAAU;KACpB,CAAC;;+CACsB;AAIxB;IAAC,IAAA,qBAAW,EAAC;QACX,IAAI,EAAE,CAAC,WAAW,EAAE,YAAY,CAAC;QACjC,OAAO,EAAE,mBAAW;KACrB,CAAC;;8CACqC;AAEvC;IAAC,IAAA,qBAAW,EAAC;QACX,IAAI,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC;QACpC,OAAO,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC;KACjC,CAAC;;qDAC8B;AA7BlC,0BA8BC"}
@@ -1,18 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isJsonScalar = isJsonScalar;
4
- exports.isJsonArray = isJsonArray;
5
- exports.isJsonObject = isJsonObject;
3
+ exports.isJsonObject = exports.isJsonArray = exports.isJsonScalar = void 0;
6
4
  function isJsonScalar(data) {
7
5
  return (data === null ||
8
6
  typeof data === 'string' ||
9
7
  typeof data === 'number' ||
10
8
  typeof data === 'boolean');
11
9
  }
10
+ exports.isJsonScalar = isJsonScalar;
12
11
  function isJsonArray(data) {
13
12
  return Array.isArray(data);
14
13
  }
14
+ exports.isJsonArray = isJsonArray;
15
15
  function isJsonObject(data) {
16
16
  return !isJsonScalar(data) && !isJsonArray(data);
17
17
  }
18
+ exports.isJsonObject = isJsonObject;
18
19
  //# sourceMappingURL=Json.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Json.js","sourceRoot":"","sources":["../../../src/rooms/lib/Json.ts"],"names":[],"mappings":";;AAkBA,oCAOC;AAED,kCAEC;AAED,oCAEC;AAfD,SAAgB,YAAY,CAAC,IAAU;IACrC,OAAO,CACL,IAAI,KAAK,IAAI;QACb,OAAO,IAAI,KAAK,QAAQ;QACxB,OAAO,IAAI,KAAK,QAAQ;QACxB,OAAO,IAAI,KAAK,SAAS,CAC1B,CAAC;AACJ,CAAC;AAED,SAAgB,WAAW,CAAC,IAAU;IACpC,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED,SAAgB,YAAY,CAAC,IAAU;IACrC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AACnD,CAAC"}
1
+ {"version":3,"file":"Json.js","sourceRoot":"","sources":["../../../src/rooms/lib/Json.ts"],"names":[],"mappings":";;;AAkBA,SAAgB,YAAY,CAAC,IAAU;IACrC,OAAO,CACL,IAAI,KAAK,IAAI;QACb,OAAO,IAAI,KAAK,QAAQ;QACxB,OAAO,IAAI,KAAK,QAAQ;QACxB,OAAO,IAAI,KAAK,SAAS,CAC1B,CAAC;AACJ,CAAC;AAPD,oCAOC;AAED,SAAgB,WAAW,CAAC,IAAU;IACpC,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAFD,kCAEC;AAED,SAAgB,YAAY,CAAC,IAAU;IACrC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AACnD,CAAC;AAFD,oCAEC"}
@@ -1,37 +1,28 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.raise = raise;
4
- exports.isPlainObject = isPlainObject;
5
- exports.entries = entries;
6
- exports.keys = keys;
7
- exports.values = values;
8
- exports.mapValues = mapValues;
9
- exports.tryParseJson = tryParseJson;
10
- exports.deepClone = deepClone;
11
- exports.b64decode = b64decode;
12
- exports.remove = remove;
13
- exports.compact = compact;
14
- exports.compactObject = compactObject;
15
- exports.wait = wait;
16
- exports.withTimeout = withTimeout;
17
- exports.memoizeOnSuccess = memoizeOnSuccess;
3
+ exports.memoizeOnSuccess = exports.withTimeout = exports.wait = exports.compactObject = exports.compact = exports.remove = exports.b64decode = exports.deepClone = exports.tryParseJson = exports.mapValues = exports.values = exports.keys = exports.entries = exports.isPlainObject = exports.raise = void 0;
18
4
  function raise(msg) {
19
5
  throw new Error(msg);
20
6
  }
7
+ exports.raise = raise;
21
8
  function isPlainObject(blob) {
22
9
  return (blob !== null &&
23
10
  typeof blob === 'object' &&
24
11
  Object.prototype.toString.call(blob) === '[object Object]');
25
12
  }
13
+ exports.isPlainObject = isPlainObject;
26
14
  function entries(obj) {
27
15
  return Object.entries(obj);
28
16
  }
17
+ exports.entries = entries;
29
18
  function keys(obj) {
30
19
  return Object.keys(obj);
31
20
  }
21
+ exports.keys = keys;
32
22
  function values(obj) {
33
23
  return Object.values(obj);
34
24
  }
25
+ exports.values = values;
35
26
  function mapValues(obj, mapFn) {
36
27
  const result = {};
37
28
  for (const pair of Object.entries(obj)) {
@@ -44,6 +35,7 @@ function mapValues(obj, mapFn) {
44
35
  }
45
36
  return result;
46
37
  }
38
+ exports.mapValues = mapValues;
47
39
  function tryParseJson(rawMessage) {
48
40
  try {
49
41
  return JSON.parse(rawMessage);
@@ -52,9 +44,11 @@ function tryParseJson(rawMessage) {
52
44
  return undefined;
53
45
  }
54
46
  }
47
+ exports.tryParseJson = tryParseJson;
55
48
  function deepClone(value) {
56
49
  return JSON.parse(JSON.stringify(value));
57
50
  }
51
+ exports.deepClone = deepClone;
58
52
  function b64decode(b64value) {
59
53
  try {
60
54
  const formattedValue = b64value.replace(/-/g, '+').replace(/_/g, '/');
@@ -70,6 +64,7 @@ function b64decode(b64value) {
70
64
  return atob(b64value);
71
65
  }
72
66
  }
67
+ exports.b64decode = b64decode;
73
68
  function remove(array, item) {
74
69
  for (let i = 0; i < array.length; i++) {
75
70
  if (array[i] === item) {
@@ -78,9 +73,11 @@ function remove(array, item) {
78
73
  }
79
74
  }
80
75
  }
76
+ exports.remove = remove;
81
77
  function compact(items) {
82
78
  return items.filter((item) => item !== null && item !== undefined);
83
79
  }
80
+ exports.compact = compact;
84
81
  function compactObject(obj) {
85
82
  const newObj = { ...obj };
86
83
  Object.keys(obj).forEach((k) => {
@@ -91,9 +88,11 @@ function compactObject(obj) {
91
88
  });
92
89
  return newObj;
93
90
  }
91
+ exports.compactObject = compactObject;
94
92
  function wait(millis) {
95
93
  return new Promise((res) => setTimeout(res, millis));
96
94
  }
95
+ exports.wait = wait;
97
96
  async function withTimeout(promise, millis, errmsg) {
98
97
  let timerID;
99
98
  const timer$ = new Promise((_, reject) => {
@@ -105,6 +104,7 @@ async function withTimeout(promise, millis, errmsg) {
105
104
  .race([promise, timer$])
106
105
  .finally(() => clearTimeout(timerID)));
107
106
  }
107
+ exports.withTimeout = withTimeout;
108
108
  function memoizeOnSuccess(factoryFn) {
109
109
  let cached = null;
110
110
  return () => {
@@ -112,11 +112,12 @@ function memoizeOnSuccess(factoryFn) {
112
112
  cached = factoryFn().catch((err) => {
113
113
  setTimeout(() => {
114
114
  cached = null;
115
- }, 5_000);
115
+ }, 5000);
116
116
  throw err;
117
117
  });
118
118
  }
119
119
  return cached;
120
120
  };
121
121
  }
122
+ exports.memoizeOnSuccess = memoizeOnSuccess;
122
123
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/rooms/lib/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/rooms/lib/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { MongodbService } from '@builder6/core';
2
+ import { ServiceBroker } from 'moleculer';
3
+ import { NotificationDTO } from './dtos/notifications.dto';
4
+ export declare class NotificationsService {
5
+ private mongodbService;
6
+ private readonly broker;
7
+ constructor(mongodbService: MongodbService, broker: ServiceBroker);
8
+ createThreadNotification({ id, userId, kind, notifiedAt, readAt, roomId, threadId, }: NotificationDTO): Promise<any>;
9
+ findNotifications({ userId, unread, limit, sinceDate, roomId, threadId, inboxNotificationIds, }: {
10
+ userId: string;
11
+ unread?: boolean;
12
+ limit?: number;
13
+ sinceDate?: Date;
14
+ roomId?: string;
15
+ threadId?: string;
16
+ inboxNotificationIds?: string[];
17
+ }): Promise<any>;
18
+ markAsRead(roomId: string, userId: string, notificationIds: string[]): Promise<any>;
19
+ }
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.NotificationsService = void 0;
16
+ const core_1 = require("@builder6/core");
17
+ const moleculer_1 = require("@builder6/moleculer");
18
+ const common_1 = require("@nestjs/common");
19
+ const moleculer_2 = require("moleculer");
20
+ let NotificationsService = class NotificationsService {
21
+ constructor(mongodbService, broker) {
22
+ this.mongodbService = mongodbService;
23
+ this.broker = broker;
24
+ }
25
+ async createThreadNotification({ id, userId, kind = 'thread', notifiedAt, readAt, roomId, threadId, }) {
26
+ return this.mongodbService.insertOne('b6_notifications', {
27
+ id,
28
+ userId,
29
+ kind,
30
+ notifiedAt,
31
+ readAt,
32
+ roomId,
33
+ threadId,
34
+ });
35
+ }
36
+ async findNotifications({ userId, unread, limit, sinceDate, roomId, threadId, inboxNotificationIds, }) {
37
+ const queryOptions = { userId };
38
+ if (unread)
39
+ queryOptions.readAt = null;
40
+ if (sinceDate) {
41
+ queryOptions.notifiedAt = { $gt: sinceDate };
42
+ }
43
+ if (roomId)
44
+ queryOptions.roomId = roomId;
45
+ if (threadId)
46
+ queryOptions.threadId = threadId;
47
+ if (inboxNotificationIds && inboxNotificationIds.length > 0) {
48
+ queryOptions.id = { $in: inboxNotificationIds };
49
+ }
50
+ const collection = (await this.mongodbService.getCollection('b6_notifications'));
51
+ const query = collection.find(queryOptions).sort({ notifiedAt: 1 });
52
+ if (limit)
53
+ query.limit(limit);
54
+ return query.toArray();
55
+ }
56
+ async markAsRead(roomId, userId, notificationIds) {
57
+ const collection = (await this.mongodbService.getCollection('b6_notifications'));
58
+ return collection.updateMany({ _id: { $in: notificationIds }, roomId, userId }, { $set: { readAt: new Date() } });
59
+ }
60
+ };
61
+ NotificationsService = __decorate([
62
+ (0, common_1.Injectable)(),
63
+ __param(1, (0, moleculer_1.InjectBroker)()),
64
+ __metadata("design:paramtypes", [core_1.MongodbService,
65
+ moleculer_2.ServiceBroker])
66
+ ], NotificationsService);
67
+ exports.NotificationsService = NotificationsService;
68
+ //# sourceMappingURL=notifications.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notifications.service.js","sourceRoot":"","sources":["../../src/rooms/notifications.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,yCAAgD;AAChD,mDAAmD;AACnD,2CAA4C;AAC5C,yCAA0C;AAInC,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAC/B,YACU,cAA8B,EACL,MAAqB;QAD9C,mBAAc,GAAd,cAAc,CAAgB;QACL,WAAM,GAAN,MAAM,CAAe;IACrD,CAAC;IAEJ,KAAK,CAAC,wBAAwB,CAAC,EAC7B,EAAE,EACF,MAAM,EACN,IAAI,GAAG,QAAQ,EACf,UAAU,EACV,MAAM,EACN,MAAM,EACN,QAAQ,GACQ;QAChB,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,kBAAkB,EAAE;YACvD,EAAE;YACF,MAAM;YACN,IAAI;YACJ,UAAU;YACV,MAAM;YACN,MAAM;YACN,QAAQ;SACT,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,EACtB,MAAM,EACN,MAAM,EACN,KAAK,EACL,SAAS,EACT,MAAM,EACN,QAAQ,EACR,oBAAoB,GASrB;QACC,MAAM,YAAY,GAAG,EAAE,MAAM,EAO5B,CAAC;QACF,IAAI,MAAM;YAAE,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC;QACvC,IAAI,SAAS,EAAE;YACb,YAAY,CAAC,UAAU,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;SAC9C;QACD,IAAI,MAAM;YAAE,YAAY,CAAC,MAAM,GAAG,MAAM,CAAC;QACzC,IAAI,QAAQ;YAAE,YAAY,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC/C,IAAI,oBAAoB,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE;YAC3D,YAAY,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,oBAAoB,EAAE,CAAC;SACjD;QACD,MAAM,UAAU,GAAG,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CACzD,kBAAkB,CACnB,CAAQ,CAAC;QACV,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;QACpE,IAAI,KAAK;YAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC9B,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAc,EAAE,MAAc,EAAE,eAAyB;QACxE,MAAM,UAAU,GAAG,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CACzD,kBAAkB,CACnB,CAAQ,CAAC;QACV,OAAO,UAAU,CAAC,UAAU,CAC1B,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,eAAe,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EACjD,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,CACjC,CAAC;IACJ,CAAC;CACF,CAAA;AA7EY,oBAAoB;IADhC,IAAA,mBAAU,GAAE;IAIR,WAAA,IAAA,wBAAY,GAAE,CAAA;qCADS,qBAAc;QACG,yBAAa;GAH7C,oBAAoB,CA6EhC;AA7EY,oDAAoB"}
@@ -1,9 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TokenKind = exports.Permission = void 0;
4
- exports.canWriteStorage = canWriteStorage;
5
- exports.canComment = canComment;
6
- exports.parseAuthToken = parseAuthToken;
3
+ exports.parseAuthToken = exports.canComment = exports.canWriteStorage = exports.TokenKind = exports.Permission = void 0;
7
4
  const utils_1 = require("../lib/utils");
8
5
  var Permission;
9
6
  (function (Permission) {
@@ -12,20 +9,22 @@ var Permission;
12
9
  Permission["PresenceWrite"] = "room:presence:write";
13
10
  Permission["CommentsWrite"] = "comments:write";
14
11
  Permission["CommentsRead"] = "comments:read";
15
- })(Permission || (exports.Permission = Permission = {}));
12
+ })(Permission = exports.Permission || (exports.Permission = {}));
16
13
  var TokenKind;
17
14
  (function (TokenKind) {
18
15
  TokenKind["SECRET_LEGACY"] = "sec-legacy";
19
16
  TokenKind["ACCESS_TOKEN"] = "acc";
20
17
  TokenKind["ID_TOKEN"] = "id";
21
- })(TokenKind || (exports.TokenKind = TokenKind = {}));
18
+ })(TokenKind = exports.TokenKind || (exports.TokenKind = {}));
22
19
  function canWriteStorage(scopes) {
23
20
  return scopes.includes(Permission.Write);
24
21
  }
22
+ exports.canWriteStorage = canWriteStorage;
25
23
  function canComment(scopes) {
26
24
  return (scopes.includes(Permission.CommentsWrite) ||
27
25
  scopes.includes(Permission.Write));
28
26
  }
27
+ exports.canComment = canComment;
29
28
  function isValidAuthTokenPayload(data) {
30
29
  return ((0, utils_1.isPlainObject)(data) &&
31
30
  (data.k === TokenKind.ACCESS_TOKEN ||
@@ -46,4 +45,5 @@ function parseAuthToken(rawTokenString) {
46
45
  parsed: payload,
47
46
  };
48
47
  }
48
+ exports.parseAuthToken = parseAuthToken;
49
49
  //# sourceMappingURL=AuthToken.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AuthToken.js","sourceRoot":"","sources":["../../../src/rooms/protocol/AuthToken.ts"],"names":[],"mappings":";;;AAwBA,0CAEC;AAED,gCAKC;AA2ED,wCAiBC;AA5HD,wCAAsE;AAGtE,IAAY,UAMX;AAND,WAAY,UAAU;IACpB,gCAAkB,CAAA;IAClB,kCAAoB,CAAA;IACpB,mDAAqC,CAAA;IACrC,8CAAgC,CAAA;IAChC,4CAA8B,CAAA;AAChC,CAAC,EANW,UAAU,0BAAV,UAAU,QAMrB;AAID,IAAY,SAIX;AAJD,WAAY,SAAS;IACnB,yCAA4B,CAAA;IAC5B,iCAAoB,CAAA;IACpB,4BAAe,CAAA;AACjB,CAAC,EAJW,SAAS,yBAAT,SAAS,QAIpB;AAMD,SAAgB,eAAe,CAAC,MAAyB;IACvD,OAAO,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAC3C,CAAC;AAED,SAAgB,UAAU,CAAC,MAAyB;IAClD,OAAO,CACL,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC;QACzC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAClC,CAAC;AACJ,CAAC;AAyDD,SAAS,uBAAuB,CAC9B,IAAU;IAEV,OAAO,CACL,IAAA,qBAAa,EAAC,IAAI,CAAC;QACnB,CAAC,IAAI,CAAC,CAAC,KAAK,SAAS,CAAC,YAAY;YAChC,IAAI,CAAC,CAAC,KAAK,SAAS,CAAC,QAAQ;YAC7B,IAAI,CAAC,CAAC,KAAK,SAAS,CAAC,aAAa,CAAC,CACtC,CAAC;AACJ,CAAC;AASD,SAAgB,cAAc,CAAC,cAAsB;IACnD,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7C,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,OAAO,GAAG,IAAA,oBAAY,EAAC,IAAA,iBAAS,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,IAAI,CAAC,CAAC,OAAO,IAAI,uBAAuB,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,KAAK,CACb,+PAA+P,CAChQ,CAAC;IACJ,CAAC;IAED,OAAO;QACL,GAAG,EAAE,cAAc;QACnB,MAAM,EAAE,OAAO;KAChB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"AuthToken.js","sourceRoot":"","sources":["../../../src/rooms/protocol/AuthToken.ts"],"names":[],"mappings":";;;AACA,wCAAsE;AAGtE,IAAY,UAMX;AAND,WAAY,UAAU;IACpB,gCAAkB,CAAA;IAClB,kCAAoB,CAAA;IACpB,mDAAqC,CAAA;IACrC,8CAAgC,CAAA;IAChC,4CAA8B,CAAA;AAChC,CAAC,EANW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAMrB;AAID,IAAY,SAIX;AAJD,WAAY,SAAS;IACnB,yCAA4B,CAAA;IAC5B,iCAAoB,CAAA;IACpB,4BAAe,CAAA;AACjB,CAAC,EAJW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAIpB;AAMD,SAAgB,eAAe,CAAC,MAAyB;IACvD,OAAO,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAC3C,CAAC;AAFD,0CAEC;AAED,SAAgB,UAAU,CAAC,MAAyB;IAClD,OAAO,CACL,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC;QACzC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAClC,CAAC;AACJ,CAAC;AALD,gCAKC;AAyDD,SAAS,uBAAuB,CAC9B,IAAU;IAEV,OAAO,CACL,IAAA,qBAAa,EAAC,IAAI,CAAC;QACnB,CAAC,IAAI,CAAC,CAAC,KAAK,SAAS,CAAC,YAAY;YAChC,IAAI,CAAC,CAAC,KAAK,SAAS,CAAC,QAAQ;YAC7B,IAAI,CAAC,CAAC,KAAK,SAAS,CAAC,aAAa,CAAC,CACtC,CAAC;AACJ,CAAC;AASD,SAAgB,cAAc,CAAC,cAAsB;IACnD,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7C,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;QAC3B,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;KAC5D;IAED,MAAM,OAAO,GAAG,IAAA,oBAAY,EAAC,IAAA,iBAAS,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,IAAI,CAAC,CAAC,OAAO,IAAI,uBAAuB,CAAC,OAAO,CAAC,CAAC,EAAE;QAClD,MAAM,IAAI,KAAK,CACb,+PAA+P,CAChQ,CAAC;KACH;IAED,OAAO;QACL,GAAG,EAAE,cAAc;QACnB,MAAM,EAAE,OAAO;KAChB,CAAC;AACJ,CAAC;AAjBD,wCAiBC"}
@@ -9,5 +9,5 @@ var ClientMsgCode;
9
9
  ClientMsgCode[ClientMsgCode["UPDATE_STORAGE"] = 201] = "UPDATE_STORAGE";
10
10
  ClientMsgCode[ClientMsgCode["FETCH_YDOC"] = 300] = "FETCH_YDOC";
11
11
  ClientMsgCode[ClientMsgCode["UPDATE_YDOC"] = 301] = "UPDATE_YDOC";
12
- })(ClientMsgCode || (exports.ClientMsgCode = ClientMsgCode = {}));
12
+ })(ClientMsgCode = exports.ClientMsgCode || (exports.ClientMsgCode = {}));
13
13
  //# sourceMappingURL=ClientMsg.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ClientMsg.js","sourceRoot":"","sources":["../../../src/rooms/protocol/ClientMsg.ts"],"names":[],"mappings":";;;AAGA,IAAY,aAYX;AAZD,WAAY,aAAa;IAEvB,yEAAqB,CAAA;IACrB,yEAAqB,CAAA;IAGrB,qEAAmB,CAAA;IACnB,uEAAoB,CAAA;IAGpB,+DAAgB,CAAA;IAChB,iEAAiB,CAAA;AACnB,CAAC,EAZW,aAAa,6BAAb,aAAa,QAYxB"}
1
+ {"version":3,"file":"ClientMsg.js","sourceRoot":"","sources":["../../../src/rooms/protocol/ClientMsg.ts"],"names":[],"mappings":";;;AAGA,IAAY,aAYX;AAZD,WAAY,aAAa;IAEvB,yEAAqB,CAAA;IACrB,yEAAqB,CAAA;IAGrB,qEAAmB,CAAA;IACnB,uEAAoB,CAAA;IAGpB,+DAAgB,CAAA;IAChB,iEAAiB,CAAA;AACnB,CAAC,EAZW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAYxB"}
@@ -1,8 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OpCode = void 0;
4
- exports.ackOp = ackOp;
5
- exports.isAckOp = isAckOp;
3
+ exports.isAckOp = exports.ackOp = exports.OpCode = void 0;
6
4
  var OpCode;
7
5
  (function (OpCode) {
8
6
  OpCode[OpCode["INIT"] = 0] = "INIT";
@@ -14,7 +12,7 @@ var OpCode;
14
12
  OpCode[OpCode["DELETE_OBJECT_KEY"] = 6] = "DELETE_OBJECT_KEY";
15
13
  OpCode[OpCode["CREATE_MAP"] = 7] = "CREATE_MAP";
16
14
  OpCode[OpCode["CREATE_REGISTER"] = 8] = "CREATE_REGISTER";
17
- })(OpCode || (exports.OpCode = OpCode = {}));
15
+ })(OpCode = exports.OpCode || (exports.OpCode = {}));
18
16
  function ackOp(opId) {
19
17
  return {
20
18
  type: OpCode.DELETE_CRDT,
@@ -22,7 +20,9 @@ function ackOp(opId) {
22
20
  opId,
23
21
  };
24
22
  }
23
+ exports.ackOp = ackOp;
25
24
  function isAckOp(op) {
26
25
  return op.type === OpCode.DELETE_CRDT && op.id === 'ACK';
27
26
  }
27
+ exports.isAckOp = isAckOp;
28
28
  //# sourceMappingURL=Op.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Op.js","sourceRoot":"","sources":["../../../src/rooms/protocol/Op.ts"],"names":[],"mappings":";;;AAsHA,sBAMC;AAED,0BAEC;AA9HD,IAAY,MAUX;AAVD,WAAY,MAAM;IAChB,mCAAQ,CAAA;IACR,uDAAkB,CAAA;IAClB,iDAAe,CAAA;IACf,qDAAiB,CAAA;IACjB,qDAAiB,CAAA;IACjB,iDAAe,CAAA;IACf,6DAAqB,CAAA;IACrB,+CAAc,CAAA;IACd,yDAAmB,CAAA;AACrB,CAAC,EAVW,MAAM,sBAAN,MAAM,QAUjB;AA0GD,SAAgB,KAAK,CAAC,IAAY;IAChC,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,WAAW;QACxB,EAAE,EAAE,KAAK;QACT,IAAI;KACL,CAAC;AACJ,CAAC;AAED,SAAgB,OAAO,CAAC,EAAM;IAC5B,OAAO,EAAE,CAAC,IAAI,KAAK,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,EAAE,KAAK,KAAK,CAAC;AAC3D,CAAC"}
1
+ {"version":3,"file":"Op.js","sourceRoot":"","sources":["../../../src/rooms/protocol/Op.ts"],"names":[],"mappings":";;;AAEA,IAAY,MAUX;AAVD,WAAY,MAAM;IAChB,mCAAQ,CAAA;IACR,uDAAkB,CAAA;IAClB,iDAAe,CAAA;IACf,qDAAiB,CAAA;IACjB,qDAAiB,CAAA;IACjB,iDAAe,CAAA;IACf,6DAAqB,CAAA;IACrB,+CAAc,CAAA;IACd,yDAAmB,CAAA;AACrB,CAAC,EAVW,MAAM,GAAN,cAAM,KAAN,cAAM,QAUjB;AA0GD,SAAgB,KAAK,CAAC,IAAY;IAChC,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,WAAW;QACxB,EAAE,EAAE,KAAK;QACT,IAAI;KACL,CAAC;AACJ,CAAC;AAND,sBAMC;AAED,SAAgB,OAAO,CAAC,EAAM;IAC5B,OAAO,EAAE,CAAC,IAAI,KAAK,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,EAAE,KAAK,KAAK,CAAC;AAC3D,CAAC;AAFD,0BAEC"}