mormati-redis 0.1.3 → 0.1.5
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/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/modules/broadcast/broadcast.const.d.ts +3 -0
- package/dist/modules/broadcast/broadcast.const.js +7 -0
- package/dist/modules/broadcast/broadcast.const.js.map +1 -0
- package/dist/modules/broadcast/broadcast.controller.d.ts +8 -0
- package/dist/modules/broadcast/broadcast.controller.js +43 -0
- package/dist/modules/broadcast/broadcast.controller.js.map +1 -0
- package/dist/modules/broadcast/broadcast.module.d.ts +2 -0
- package/dist/modules/broadcast/broadcast.module.js +24 -0
- package/dist/modules/broadcast/broadcast.module.js.map +1 -0
- package/dist/modules/broadcast/broadcast.type.d.ts +20 -0
- package/dist/modules/broadcast/broadcast.type.js +3 -0
- package/dist/modules/broadcast/broadcast.type.js.map +1 -0
- package/dist/modules/broadcast/index.d.ts +6 -0
- package/dist/modules/broadcast/index.js +23 -0
- package/dist/modules/broadcast/index.js.map +1 -0
- package/dist/modules/broadcast/publish.service.d.ts +18 -0
- package/dist/modules/broadcast/publish.service.js +122 -0
- package/dist/modules/broadcast/publish.service.js.map +1 -0
- package/dist/modules/broadcast/subscribe.service.d.ts +15 -0
- package/dist/modules/broadcast/subscribe.service.js +118 -0
- package/dist/modules/broadcast/subscribe.service.js.map +1 -0
- package/dist/modules/cache/cache.controller.js +1 -1
- package/dist/modules/cache/cache.controller.js.map +1 -1
- package/dist/modules/cache/cache.service.d.ts +1 -1
- package/dist/modules/cache/cache.service.js +2 -2
- package/dist/modules/cache/cache.service.js.map +1 -1
- package/dist/modules/redis/redis.service.d.ts +1 -0
- package/dist/modules/redis/redis.service.js +3 -0
- package/dist/modules/redis/redis.service.js.map +1 -1
- package/dist/tsconfig.lib.tsbuildinfo +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -3,4 +3,5 @@ export { RedisConnection } from './modules/redis/redis.connection';
|
|
|
3
3
|
export { RedisService } from './modules/redis/redis.service';
|
|
4
4
|
export { IRedisModuleAsyncOptions } from './modules/redis/redis.type';
|
|
5
5
|
export * from './modules/cache';
|
|
6
|
+
export * from './modules/broadcast';
|
|
6
7
|
export { REDIS_CONFIG_SERVICE } from './const';
|
package/dist/index.js
CHANGED
|
@@ -22,6 +22,7 @@ Object.defineProperty(exports, "RedisConnection", { enumerable: true, get: funct
|
|
|
22
22
|
var redis_service_1 = require("./modules/redis/redis.service");
|
|
23
23
|
Object.defineProperty(exports, "RedisService", { enumerable: true, get: function () { return redis_service_1.RedisService; } });
|
|
24
24
|
__exportStar(require("./modules/cache"), exports);
|
|
25
|
+
__exportStar(require("./modules/broadcast"), exports);
|
|
25
26
|
var const_1 = require("./const");
|
|
26
27
|
Object.defineProperty(exports, "REDIS_CONFIG_SERVICE", { enumerable: true, get: function () { return const_1.REDIS_CONFIG_SERVICE; } });
|
|
27
28
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../libs/redis/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAEA,6DAA2D;AAAlD,2GAAA,WAAW,OAAA;AACpB,qEAAmE;AAA1D,mHAAA,eAAe,OAAA;AACxB,+DAA6D;AAApD,6GAAA,YAAY,OAAA;AAGrB,kDAAgC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../libs/redis/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAEA,6DAA2D;AAAlD,2GAAA,WAAW,OAAA;AACpB,qEAAmE;AAA1D,mHAAA,eAAe,OAAA;AACxB,+DAA6D;AAApD,6GAAA,YAAY,OAAA;AAGrB,kDAAgC;AAEhC,sDAAoC;AAGpC,iCAEiB;AADb,6GAAA,oBAAoB,OAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BROADCAST_CHANNEL_USER = exports.BROADCAST_CHANNEL_ROOM = exports.BROADCAST_CHANNEL = void 0;
|
|
4
|
+
exports.BROADCAST_CHANNEL = 'websocket:broadcast';
|
|
5
|
+
exports.BROADCAST_CHANNEL_ROOM = 'websocket:broadcast:room';
|
|
6
|
+
exports.BROADCAST_CHANNEL_USER = 'websocket:broadcast:user';
|
|
7
|
+
//# sourceMappingURL=broadcast.const.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"broadcast.const.js","sourceRoot":"","sources":["../../../../../libs/redis/src/modules/broadcast/broadcast.const.ts"],"names":[],"mappings":";;;AAAa,QAAA,iBAAiB,GAAG,qBAAqB,CAAC;AAC1C,QAAA,sBAAsB,GAAG,0BAA0B,CAAC;AACpD,QAAA,sBAAsB,GAAG,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { PublishService } from './publish.service';
|
|
2
|
+
import { BroadcastStats } from './broadcast.type';
|
|
3
|
+
export declare class BroadcastController {
|
|
4
|
+
private readonly publishService;
|
|
5
|
+
constructor(publishService: PublishService);
|
|
6
|
+
getBroadcastStats(): BroadcastStats;
|
|
7
|
+
resetBroadcastStats(): BroadcastStats;
|
|
8
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
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.BroadcastController = void 0;
|
|
13
|
+
const common_1 = require("@nestjs/common");
|
|
14
|
+
const publish_service_1 = require("./publish.service");
|
|
15
|
+
let BroadcastController = class BroadcastController {
|
|
16
|
+
constructor(publishService) {
|
|
17
|
+
this.publishService = publishService;
|
|
18
|
+
}
|
|
19
|
+
getBroadcastStats() {
|
|
20
|
+
return this.publishService.getBroadcastStats();
|
|
21
|
+
}
|
|
22
|
+
resetBroadcastStats() {
|
|
23
|
+
return this.publishService.resetBroadcastStats();
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
exports.BroadcastController = BroadcastController;
|
|
27
|
+
__decorate([
|
|
28
|
+
(0, common_1.Get)('stats'),
|
|
29
|
+
__metadata("design:type", Function),
|
|
30
|
+
__metadata("design:paramtypes", []),
|
|
31
|
+
__metadata("design:returntype", Object)
|
|
32
|
+
], BroadcastController.prototype, "getBroadcastStats", null);
|
|
33
|
+
__decorate([
|
|
34
|
+
(0, common_1.Get)('stats/reset'),
|
|
35
|
+
__metadata("design:type", Function),
|
|
36
|
+
__metadata("design:paramtypes", []),
|
|
37
|
+
__metadata("design:returntype", Object)
|
|
38
|
+
], BroadcastController.prototype, "resetBroadcastStats", null);
|
|
39
|
+
exports.BroadcastController = BroadcastController = __decorate([
|
|
40
|
+
(0, common_1.Controller)('redis-broadcast'),
|
|
41
|
+
__metadata("design:paramtypes", [publish_service_1.PublishService])
|
|
42
|
+
], BroadcastController);
|
|
43
|
+
//# sourceMappingURL=broadcast.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"broadcast.controller.js","sourceRoot":"","sources":["../../../../../libs/redis/src/modules/broadcast/broadcast.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAiD;AACjD,uDAAmD;AAI5C,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAC9B,YAA6B,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;IAAI,CAAC;IAOhE,iBAAiB;QACf,OAAO,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE,CAAC;IACjD,CAAC;IAOD,mBAAmB;QACjB,OAAO,IAAI,CAAC,cAAc,CAAC,mBAAmB,EAAE,CAAC;IACnD,CAAC;CACF,CAAA;AApBY,kDAAmB;AAQ9B;IADC,IAAA,YAAG,EAAC,OAAO,CAAC;;;;4DAGZ;AAOD;IADC,IAAA,YAAG,EAAC,aAAa,CAAC;;;;8DAGlB;8BAnBU,mBAAmB;IAD/B,IAAA,mBAAU,EAAC,iBAAiB,CAAC;qCAEiB,gCAAc;GADhD,mBAAmB,CAoB/B"}
|
|
@@ -0,0 +1,24 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.BroadcastModule = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
const publish_service_1 = require("./publish.service");
|
|
12
|
+
const subscribe_service_1 = require("./subscribe.service");
|
|
13
|
+
const broadcast_controller_1 = require("./broadcast.controller");
|
|
14
|
+
let BroadcastModule = class BroadcastModule {
|
|
15
|
+
};
|
|
16
|
+
exports.BroadcastModule = BroadcastModule;
|
|
17
|
+
exports.BroadcastModule = BroadcastModule = __decorate([
|
|
18
|
+
(0, common_1.Module)({
|
|
19
|
+
controllers: [broadcast_controller_1.BroadcastController],
|
|
20
|
+
providers: [publish_service_1.PublishService, subscribe_service_1.SubscribeService],
|
|
21
|
+
exports: [publish_service_1.PublishService, subscribe_service_1.SubscribeService],
|
|
22
|
+
})
|
|
23
|
+
], BroadcastModule);
|
|
24
|
+
//# sourceMappingURL=broadcast.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"broadcast.module.js","sourceRoot":"","sources":["../../../../../libs/redis/src/modules/broadcast/broadcast.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,uDAAmD;AACnD,2DAAuD;AACvD,iEAA6D;AAkDtD,IAAM,eAAe,GAArB,MAAM,eAAe;CAAI,CAAA;AAAnB,0CAAe;0BAAf,eAAe;IAL3B,IAAA,eAAM,EAAC;QACJ,WAAW,EAAE,CAAC,0CAAmB,CAAC;QAClC,SAAS,EAAE,CAAC,gCAAc,EAAE,oCAAgB,CAAC;QAC7C,OAAO,EAAE,CAAC,gCAAc,EAAE,oCAAgB,CAAC;KAC9C,CAAC;GACW,eAAe,CAAI"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export interface BroadcastStats {
|
|
2
|
+
serverId: string;
|
|
3
|
+
publishedTotal: number;
|
|
4
|
+
publishedToBroadcast: number;
|
|
5
|
+
publishedToUser: number;
|
|
6
|
+
publishedToRoom: number;
|
|
7
|
+
publishedError: number;
|
|
8
|
+
}
|
|
9
|
+
export interface BroadcastMessage {
|
|
10
|
+
timestamp: number;
|
|
11
|
+
serverId: string;
|
|
12
|
+
event: string;
|
|
13
|
+
data: any;
|
|
14
|
+
}
|
|
15
|
+
export interface BroadcastUserMessage extends BroadcastMessage {
|
|
16
|
+
userId: string;
|
|
17
|
+
}
|
|
18
|
+
export interface BroadcastRoomMessage extends BroadcastMessage {
|
|
19
|
+
room: string;
|
|
20
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"broadcast.type.js","sourceRoot":"","sources":["../../../../../libs/redis/src/modules/broadcast/broadcast.type.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./broadcast.module"), exports);
|
|
18
|
+
__exportStar(require("./broadcast.controller"), exports);
|
|
19
|
+
__exportStar(require("./publish.service"), exports);
|
|
20
|
+
__exportStar(require("./subscribe.service"), exports);
|
|
21
|
+
__exportStar(require("./broadcast.const"), exports);
|
|
22
|
+
__exportStar(require("./broadcast.type"), exports);
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../libs/redis/src/modules/broadcast/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,yDAAuC;AACvC,oDAAkC;AAClC,sDAAoC;AACpC,oDAAkC;AAClC,mDAAiC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { RedisService } from '../redis/redis.service';
|
|
2
|
+
import { BroadcastStats } from './broadcast.type';
|
|
3
|
+
export declare class PublishService {
|
|
4
|
+
private readonly redisService;
|
|
5
|
+
private readonly serverId;
|
|
6
|
+
private publishedTotal;
|
|
7
|
+
private publishedToBroadcast;
|
|
8
|
+
private publishedToUser;
|
|
9
|
+
private publishedToRoom;
|
|
10
|
+
private publishedError;
|
|
11
|
+
constructor(redisService: RedisService);
|
|
12
|
+
broadcastToAll(event: string, data: any): Promise<boolean>;
|
|
13
|
+
broadcastToRoom(room: string, event: string, data: any): Promise<boolean>;
|
|
14
|
+
broadcastToUser(userId: string, event: string, data: any): Promise<boolean>;
|
|
15
|
+
getServerId(): string;
|
|
16
|
+
getBroadcastStats(): BroadcastStats;
|
|
17
|
+
resetBroadcastStats(): BroadcastStats;
|
|
18
|
+
}
|
|
@@ -0,0 +1,122 @@
|
|
|
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.PublishService = void 0;
|
|
13
|
+
const common_1 = require("@nestjs/common");
|
|
14
|
+
const redis_service_1 = require("../redis/redis.service");
|
|
15
|
+
const broadcast_const_1 = require("./broadcast.const");
|
|
16
|
+
let PublishService = class PublishService {
|
|
17
|
+
constructor(redisService) {
|
|
18
|
+
this.redisService = redisService;
|
|
19
|
+
this.publishedTotal = 0;
|
|
20
|
+
this.publishedToBroadcast = 0;
|
|
21
|
+
this.publishedToUser = 0;
|
|
22
|
+
this.publishedToRoom = 0;
|
|
23
|
+
this.publishedError = 0;
|
|
24
|
+
this.serverId = `server-${process.pid}-${Date.now()}`;
|
|
25
|
+
}
|
|
26
|
+
async broadcastToAll(event, data) {
|
|
27
|
+
try {
|
|
28
|
+
const message = {
|
|
29
|
+
timestamp: Date.now(),
|
|
30
|
+
serverId: this.serverId,
|
|
31
|
+
event: event,
|
|
32
|
+
data: data,
|
|
33
|
+
};
|
|
34
|
+
const serialized = JSON.stringify(message);
|
|
35
|
+
await this.redisService.publish(broadcast_const_1.BROADCAST_CHANNEL, serialized);
|
|
36
|
+
this.publishedTotal++;
|
|
37
|
+
this.publishedToBroadcast++;
|
|
38
|
+
return true;
|
|
39
|
+
}
|
|
40
|
+
catch (error) {
|
|
41
|
+
console.log("## Error: 'broadcastToAll' in PublishService", error);
|
|
42
|
+
this.publishedError++;
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
async broadcastToRoom(room, event, data) {
|
|
47
|
+
try {
|
|
48
|
+
const message = {
|
|
49
|
+
timestamp: Date.now(),
|
|
50
|
+
serverId: this.serverId,
|
|
51
|
+
event,
|
|
52
|
+
room,
|
|
53
|
+
data,
|
|
54
|
+
};
|
|
55
|
+
const serialized = JSON.stringify(message);
|
|
56
|
+
await this.redisService.publish(broadcast_const_1.BROADCAST_CHANNEL_ROOM, serialized);
|
|
57
|
+
this.publishedTotal++;
|
|
58
|
+
this.publishedToRoom++;
|
|
59
|
+
return true;
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
console.log("## Error: 'broadcastToRoom' in PublishService", error);
|
|
63
|
+
this.publishedError++;
|
|
64
|
+
return false;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
async broadcastToUser(userId, event, data) {
|
|
68
|
+
try {
|
|
69
|
+
const message = {
|
|
70
|
+
timestamp: Date.now(),
|
|
71
|
+
serverId: this.serverId,
|
|
72
|
+
event,
|
|
73
|
+
userId,
|
|
74
|
+
data,
|
|
75
|
+
};
|
|
76
|
+
const serialized = JSON.stringify(message);
|
|
77
|
+
await this.redisService.publish(broadcast_const_1.BROADCAST_CHANNEL_USER, serialized);
|
|
78
|
+
this.publishedTotal++;
|
|
79
|
+
this.publishedToUser++;
|
|
80
|
+
return true;
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
console.log("## Error: 'broadcastToUser' in PublishService", error);
|
|
84
|
+
this.publishedError++;
|
|
85
|
+
return false;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
getServerId() {
|
|
89
|
+
return this.serverId;
|
|
90
|
+
}
|
|
91
|
+
getBroadcastStats() {
|
|
92
|
+
return {
|
|
93
|
+
serverId: this.getServerId(),
|
|
94
|
+
publishedTotal: this.publishedTotal,
|
|
95
|
+
publishedToBroadcast: this.publishedToBroadcast,
|
|
96
|
+
publishedToUser: this.publishedToUser,
|
|
97
|
+
publishedToRoom: this.publishedToRoom,
|
|
98
|
+
publishedError: this.publishedError,
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
resetBroadcastStats() {
|
|
102
|
+
this.publishedTotal = 0;
|
|
103
|
+
this.publishedToBroadcast = 0;
|
|
104
|
+
this.publishedToUser = 0;
|
|
105
|
+
this.publishedToRoom = 0;
|
|
106
|
+
this.publishedError = 0;
|
|
107
|
+
return {
|
|
108
|
+
serverId: this.getServerId(),
|
|
109
|
+
publishedTotal: this.publishedTotal,
|
|
110
|
+
publishedToBroadcast: this.publishedToBroadcast,
|
|
111
|
+
publishedToUser: this.publishedToUser,
|
|
112
|
+
publishedToRoom: this.publishedToRoom,
|
|
113
|
+
publishedError: this.publishedError,
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
};
|
|
117
|
+
exports.PublishService = PublishService;
|
|
118
|
+
exports.PublishService = PublishService = __decorate([
|
|
119
|
+
(0, common_1.Injectable)(),
|
|
120
|
+
__metadata("design:paramtypes", [redis_service_1.RedisService])
|
|
121
|
+
], PublishService);
|
|
122
|
+
//# sourceMappingURL=publish.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publish.service.js","sourceRoot":"","sources":["../../../../../libs/redis/src/modules/broadcast/publish.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Server } from 'socket.io';
|
|
2
|
+
import { OnModuleInit, OnModuleDestroy } from '@nestjs/common';
|
|
3
|
+
import { RedisConnection } from '../redis/redis.connection';
|
|
4
|
+
export declare class SubscribeService implements OnModuleInit, OnModuleDestroy {
|
|
5
|
+
private readonly redisConnection;
|
|
6
|
+
private server;
|
|
7
|
+
private readonly subscriber;
|
|
8
|
+
constructor(redisConnection: RedisConnection);
|
|
9
|
+
onModuleInit(): Promise<void>;
|
|
10
|
+
onModuleDestroy(): Promise<void>;
|
|
11
|
+
setServer(server: Server): void;
|
|
12
|
+
private handleBroadcastMessage;
|
|
13
|
+
private handleBroadcastRoomMessage;
|
|
14
|
+
private handleUserBroadcastMessage;
|
|
15
|
+
}
|
|
@@ -0,0 +1,118 @@
|
|
|
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.SubscribeService = void 0;
|
|
13
|
+
const common_1 = require("@nestjs/common");
|
|
14
|
+
const redis_connection_1 = require("../redis/redis.connection");
|
|
15
|
+
const broadcast_const_1 = require("./broadcast.const");
|
|
16
|
+
let SubscribeService = class SubscribeService {
|
|
17
|
+
constructor(redisConnection) {
|
|
18
|
+
this.redisConnection = redisConnection;
|
|
19
|
+
console.log('[SubscribeService] Connection Initializing..');
|
|
20
|
+
this.subscriber = this.redisConnection.getClient().duplicate();
|
|
21
|
+
console.log('[SubscribeService] Connection Initialized!');
|
|
22
|
+
}
|
|
23
|
+
async onModuleInit() {
|
|
24
|
+
const SUBSCRIBE_CHANNELS = [
|
|
25
|
+
broadcast_const_1.BROADCAST_CHANNEL,
|
|
26
|
+
broadcast_const_1.BROADCAST_CHANNEL_ROOM,
|
|
27
|
+
broadcast_const_1.BROADCAST_CHANNEL_USER
|
|
28
|
+
];
|
|
29
|
+
console.log('[SubscribeService] Channels Subscribing..', SUBSCRIBE_CHANNELS);
|
|
30
|
+
await this.subscriber.subscribe(...SUBSCRIBE_CHANNELS);
|
|
31
|
+
this.subscriber.on('message', (channel, message) => {
|
|
32
|
+
switch (channel) {
|
|
33
|
+
case broadcast_const_1.BROADCAST_CHANNEL:
|
|
34
|
+
this.handleBroadcastMessage(message);
|
|
35
|
+
break;
|
|
36
|
+
case broadcast_const_1.BROADCAST_CHANNEL_USER:
|
|
37
|
+
this.handleUserBroadcastMessage(message);
|
|
38
|
+
break;
|
|
39
|
+
case broadcast_const_1.BROADCAST_CHANNEL_ROOM:
|
|
40
|
+
this.handleBroadcastRoomMessage(message);
|
|
41
|
+
break;
|
|
42
|
+
default:
|
|
43
|
+
console.log('[SubscribeService] Unhandled incoming message', { channel, message });
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
console.log('[SubscribeService] Channels Subscribed!');
|
|
47
|
+
}
|
|
48
|
+
async onModuleDestroy() {
|
|
49
|
+
const UNSUBSCRIBE_CHANNELS = [
|
|
50
|
+
broadcast_const_1.BROADCAST_CHANNEL,
|
|
51
|
+
broadcast_const_1.BROADCAST_CHANNEL_ROOM,
|
|
52
|
+
broadcast_const_1.BROADCAST_CHANNEL_USER
|
|
53
|
+
];
|
|
54
|
+
console.log('[SubscribeService] Channels Unsubscribing..', UNSUBSCRIBE_CHANNELS);
|
|
55
|
+
await this.subscriber.unsubscribe(...UNSUBSCRIBE_CHANNELS);
|
|
56
|
+
await this.subscriber.quit();
|
|
57
|
+
console.log('[SubscribeService] Channels Unsubscribed!');
|
|
58
|
+
}
|
|
59
|
+
setServer(server) {
|
|
60
|
+
console.log('[SubscribeService] Redis + WebSocket server Attaching..');
|
|
61
|
+
this.server = server;
|
|
62
|
+
console.log('[SubscribeService] Redis + WebSocket server Attached!');
|
|
63
|
+
}
|
|
64
|
+
handleBroadcastMessage(message) {
|
|
65
|
+
try {
|
|
66
|
+
if (!this.server) {
|
|
67
|
+
console.log('[SubscribeService] Redis + WebSocket server Not Attached, skipping broadcast! [1]');
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
const parsed = JSON.parse(message);
|
|
71
|
+
const { event, data } = parsed;
|
|
72
|
+
this.server.emit(event, data);
|
|
73
|
+
console.log(`[SubscribeService] Broadcasting to WebSocket! [Event: ${event}]`);
|
|
74
|
+
}
|
|
75
|
+
catch (error) {
|
|
76
|
+
console.log(`[SubscribeService] Error while Broadcasting to WebSocket [1]'`, error);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
handleBroadcastRoomMessage(message) {
|
|
80
|
+
try {
|
|
81
|
+
if (!this.server) {
|
|
82
|
+
console.log('[SubscribeService] Redis + WebSocket server Not Attached, skipping broadcast! [2]');
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
const parsed = JSON.parse(message);
|
|
86
|
+
const { room, event, data } = parsed;
|
|
87
|
+
this.server.to(room).emit(event, data);
|
|
88
|
+
console.log(`[SubscribeService] Broadcasting to WebSocket! [Event: ${event}] [Room: ${room}]`);
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
console.log(`[SubscribeService] Error while Broadcasting to WebSocket [2]'`, error);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
handleUserBroadcastMessage(message) {
|
|
95
|
+
try {
|
|
96
|
+
if (!this.server) {
|
|
97
|
+
console.log('[SubscribeService] Redis + WebSocket server Not Attached, skipping broadcast! [3]');
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
const parsed = JSON.parse(message);
|
|
101
|
+
const { userId, event, data } = parsed;
|
|
102
|
+
const sockets = Array.from(this.server.sockets.sockets.values());
|
|
103
|
+
sockets
|
|
104
|
+
.filter((socket) => socket.data.userId === userId)
|
|
105
|
+
.forEach((socket) => socket.emit(event, data));
|
|
106
|
+
console.log(`[SubscribeService] Broadcasting to WebSocket! [Event: ${event}] [User: ${userId}]`);
|
|
107
|
+
}
|
|
108
|
+
catch (error) {
|
|
109
|
+
console.log(`[SubscribeService] Error while Broadcasting to WebSocket [3]'`, error);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
exports.SubscribeService = SubscribeService;
|
|
114
|
+
exports.SubscribeService = SubscribeService = __decorate([
|
|
115
|
+
(0, common_1.Injectable)(),
|
|
116
|
+
__metadata("design:paramtypes", [redis_connection_1.RedisConnection])
|
|
117
|
+
], SubscribeService);
|
|
118
|
+
//# sourceMappingURL=subscribe.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subscribe.service.js","sourceRoot":"","sources":["../../../../../libs/redis/src/modules/broadcast/subscribe.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -41,7 +41,7 @@ __decorate([
|
|
|
41
41
|
__metadata("design:returntype", Object)
|
|
42
42
|
], CacheController.prototype, "resetCacheStats", null);
|
|
43
43
|
exports.CacheController = CacheController = __decorate([
|
|
44
|
-
(0, common_1.Controller)('cache'),
|
|
44
|
+
(0, common_1.Controller)('redis-cache'),
|
|
45
45
|
__metadata("design:paramtypes", [cache_service_1.CacheService])
|
|
46
46
|
], CacheController);
|
|
47
47
|
//# sourceMappingURL=cache.controller.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.controller.js","sourceRoot":"","sources":["../../../../../libs/redis/src/modules/cache/cache.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAuD;AACvD,mDAA+C;AAIxC,IAAM,eAAe,GAArB,MAAM,eAAe;IAC1B,YAA6B,YAA0B;QAA1B,iBAAY,GAAZ,YAAY,CAAc;IAAG,CAAC;IAO3D,aAAa;QACX,OAAO,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC;IAC3C,CAAC;IAOD,eAAe;QACb,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC;QACpC,OAAO;YACL,OAAO,EAAE,+CAA+C;YACxD,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE;SACzC,CAAC;IACJ,CAAC;CACF,CAAA;AAxBY,0CAAe;AAQ1B;IADC,IAAA,YAAG,EAAC,OAAO,CAAC;;;;oDAGZ;AAOD;IADC,IAAA,YAAG,EAAC,aAAa,CAAC;;;;sDAOlB;0BAvBU,eAAe;IAD3B,IAAA,mBAAU,EAAC,
|
|
1
|
+
{"version":3,"file":"cache.controller.js","sourceRoot":"","sources":["../../../../../libs/redis/src/modules/cache/cache.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAuD;AACvD,mDAA+C;AAIxC,IAAM,eAAe,GAArB,MAAM,eAAe;IAC1B,YAA6B,YAA0B;QAA1B,iBAAY,GAAZ,YAAY,CAAc;IAAG,CAAC;IAO3D,aAAa;QACX,OAAO,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC;IAC3C,CAAC;IAOD,eAAe;QACb,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC;QACpC,OAAO;YACL,OAAO,EAAE,+CAA+C;YACxD,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE;SACzC,CAAC;IACJ,CAAC;CACF,CAAA;AAxBY,0CAAe;AAQ1B;IADC,IAAA,YAAG,EAAC,OAAO,CAAC;;;;oDAGZ;AAOD;IADC,IAAA,YAAG,EAAC,aAAa,CAAC;;;;sDAOlB;0BAvBU,eAAe;IAD3B,IAAA,mBAAU,EAAC,aAAa,CAAC;qCAEmB,4BAAY;GAD5C,eAAe,CAwB3B"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { RedisService } from '
|
|
1
|
+
import { RedisService } from '../redis/redis.service';
|
|
2
2
|
import { CacheKeyProps, CacheMetadata, CacheResultWithMetadata, CacheStats } from './cache.type';
|
|
3
3
|
export declare class CacheService {
|
|
4
4
|
private readonly redisService;
|
|
@@ -11,7 +11,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.CacheService = void 0;
|
|
13
13
|
const common_1 = require("@nestjs/common");
|
|
14
|
-
const
|
|
14
|
+
const redis_service_1 = require("../redis/redis.service");
|
|
15
15
|
const cache_utils_1 = require("./cache.utils");
|
|
16
16
|
const cache_const_1 = require("./cache.const");
|
|
17
17
|
let CacheService = class CacheService {
|
|
@@ -201,6 +201,6 @@ let CacheService = class CacheService {
|
|
|
201
201
|
exports.CacheService = CacheService;
|
|
202
202
|
exports.CacheService = CacheService = __decorate([
|
|
203
203
|
(0, common_1.Injectable)(),
|
|
204
|
-
__metadata("design:paramtypes", [
|
|
204
|
+
__metadata("design:paramtypes", [redis_service_1.RedisService])
|
|
205
205
|
], CacheService);
|
|
206
206
|
//# sourceMappingURL=cache.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.service.js","sourceRoot":"","sources":["../../../../../libs/redis/src/modules/cache/cache.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,
|
|
1
|
+
{"version":3,"file":"cache.service.js","sourceRoot":"","sources":["../../../../../libs/redis/src/modules/cache/cache.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -55,6 +55,9 @@ let RedisService = class RedisService {
|
|
|
55
55
|
async hgetall(key) {
|
|
56
56
|
return await this.client.hgetall(key);
|
|
57
57
|
}
|
|
58
|
+
async publish(channel, message) {
|
|
59
|
+
return await this.client.publish(channel, message);
|
|
60
|
+
}
|
|
58
61
|
};
|
|
59
62
|
exports.RedisService = RedisService;
|
|
60
63
|
exports.RedisService = RedisService = __decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redis.service.js","sourceRoot":"","sources":["../../../../../libs/redis/src/modules/redis/redis.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,yDAAqD;AAG9C,IAAM,YAAY,GAAlB,MAAM,YAAY;IACvB,YACmB,eAAgC;QAAhC,oBAAe,GAAf,eAAe,CAAiB;QAI3C,WAAM,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;IAH9C,CAAC;IAUL,KAAK,CAAC,QAAQ,CAAC,GAAG;QAChB,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACvC,CAAC;IAMD,KAAK,CAAC,IAAI,CAAC,GAAG;QACZ,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IAOD,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG;QAChB,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;QACvC,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IACjD,CAAC;IAMD,KAAK,CAAC,GAAG,CAAC,GAAG;QACX,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACxB,CAAC;IAMD,KAAK,CAAC,GAAG,CAAC,GAAG;QACX,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IAOD,KAAK,CAAC,QAAQ,CAAC,GAAG;QAChB,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC;IAOD,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,MAAO;QAC1B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC7C,IAAI,MAAM;YACR,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACxC,OAAO,GAAG,CAAC;IACb,CAAC;IAOD,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG;QACjB,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC1C,CAAC;IAGD,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM;QACpB,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK;QACnB,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAG;QACf,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACxC,CAAC;CACF,CAAA;
|
|
1
|
+
{"version":3,"file":"redis.service.js","sourceRoot":"","sources":["../../../../../libs/redis/src/modules/redis/redis.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,yDAAqD;AAG9C,IAAM,YAAY,GAAlB,MAAM,YAAY;IACvB,YACmB,eAAgC;QAAhC,oBAAe,GAAf,eAAe,CAAiB;QAI3C,WAAM,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;IAH9C,CAAC;IAUL,KAAK,CAAC,QAAQ,CAAC,GAAG;QAChB,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACvC,CAAC;IAMD,KAAK,CAAC,IAAI,CAAC,GAAG;QACZ,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IAOD,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG;QAChB,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;QACvC,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IACjD,CAAC;IAMD,KAAK,CAAC,GAAG,CAAC,GAAG;QACX,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACxB,CAAC;IAMD,KAAK,CAAC,GAAG,CAAC,GAAG;QACX,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IAOD,KAAK,CAAC,QAAQ,CAAC,GAAG;QAChB,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC;IAOD,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,MAAO;QAC1B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC7C,IAAI,MAAM;YACR,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACxC,OAAO,GAAG,CAAC;IACb,CAAC;IAOD,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG;QACjB,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC1C,CAAC;IAGD,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM;QACpB,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK;QACnB,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAG;QACf,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACxC,CAAC;IAQD,KAAK,CAAC,OAAO,CAAC,OAAe,EAAE,OAAe;QAC5C,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;CACF,CAAA;AAxGY,oCAAY;uBAAZ,YAAY;IADxB,IAAA,mBAAU,GAAE;qCAGyB,kCAAe;GAFxC,YAAY,CAwGxB"}
|