@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.
- package/README.md +14 -1
- package/dist/rooms/app.controller.d.ts +10 -0
- package/dist/rooms/app.controller.js +72 -0
- package/dist/rooms/app.controller.js.map +1 -0
- package/dist/rooms/dtos/notifications.dto.d.ts +9 -0
- package/dist/rooms/dtos/notifications.dto.js +7 -0
- package/dist/rooms/dtos/notifications.dto.js.map +1 -0
- package/dist/rooms/dtos/room_members.dto.d.ts +7 -0
- package/dist/rooms/dtos/room_members.dto.js +53 -0
- package/dist/rooms/dtos/room_members.dto.js.map +1 -0
- package/dist/rooms/dtos/rooms.dto.d.ts +12 -0
- package/dist/rooms/dtos/rooms.dto.js +59 -0
- package/dist/rooms/dtos/rooms.dto.js.map +1 -0
- package/dist/rooms/lib/Json.js +4 -3
- package/dist/rooms/lib/Json.js.map +1 -1
- package/dist/rooms/lib/utils.js +17 -16
- package/dist/rooms/lib/utils.js.map +1 -1
- package/dist/rooms/notifications.service.d.ts +19 -0
- package/dist/rooms/notifications.service.js +68 -0
- package/dist/rooms/notifications.service.js.map +1 -0
- package/dist/rooms/protocol/AuthToken.js +6 -6
- package/dist/rooms/protocol/AuthToken.js.map +1 -1
- package/dist/rooms/protocol/ClientMsg.js +1 -1
- package/dist/rooms/protocol/ClientMsg.js.map +1 -1
- package/dist/rooms/protocol/Op.js +4 -4
- package/dist/rooms/protocol/Op.js.map +1 -1
- package/dist/rooms/protocol/SerializedCrdt.js +4 -4
- package/dist/rooms/protocol/SerializedCrdt.js.map +1 -1
- package/dist/rooms/protocol/ServerMsg.js +1 -1
- package/dist/rooms/protocol/ServerMsg.js.map +1 -1
- package/dist/rooms/rooms.controller.d.ts +33 -7
- package/dist/rooms/rooms.controller.js +126 -31
- package/dist/rooms/rooms.controller.js.map +1 -1
- package/dist/rooms/rooms.gateway.d.ts +3 -1
- package/dist/rooms/rooms.gateway.js +14 -7
- package/dist/rooms/rooms.gateway.js.map +1 -1
- package/dist/rooms/rooms.guard.d.ts +1 -3
- package/dist/rooms/rooms.guard.js +4 -7
- package/dist/rooms/rooms.guard.js.map +1 -1
- package/dist/rooms/rooms.module.js +9 -4
- package/dist/rooms/rooms.module.js.map +1 -1
- package/dist/rooms/rooms.moleculer.d.ts +11 -0
- package/dist/rooms/rooms.moleculer.js +91 -0
- package/dist/rooms/rooms.moleculer.js.map +1 -0
- package/dist/rooms/rooms.service.d.ts +44 -1
- package/dist/rooms/rooms.service.js +161 -5
- package/dist/rooms/rooms.service.js.map +1 -1
- package/package.json +14 -5
- package/src/rooms/app.controller.ts +63 -0
- package/src/rooms/dtos/notifications.dto.ts +9 -0
- package/src/rooms/dtos/room_members.dto.ts +31 -0
- package/src/rooms/dtos/rooms.dto.ts +51 -0
- package/src/rooms/notifications.service.ts +85 -0
- package/src/rooms/rooms.controller.ts +139 -20
- package/src/rooms/rooms.gateway.ts +17 -4
- package/src/rooms/rooms.guard.ts +1 -1
- package/src/rooms/rooms.module.ts +7 -2
- package/src/rooms/rooms.moleculer.ts +78 -0
- package/src/rooms/rooms.service.ts +234 -1
- 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 @@
|
|
|
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,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"}
|
package/dist/rooms/lib/Json.js
CHANGED
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.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":"
|
|
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"}
|
package/dist/rooms/lib/utils.js
CHANGED
|
@@ -1,37 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.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
|
-
},
|
|
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":"
|
|
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
|
|
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
|
|
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":";;;
|
|
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
|
|
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,
|
|
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
|
|
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":";;;
|
|
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"}
|