@brightchain/brightchain-lib 0.29.26 → 0.29.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +10 -4
- package/src/index.d.ts +1 -1
- package/src/index.d.ts.map +1 -1
- package/src/index.js +2 -1
- package/src/index.js.map +1 -1
- package/src/lib/enumeration-translations/index.d.ts +2 -0
- package/src/lib/enumeration-translations/index.d.ts.map +1 -1
- package/src/lib/enumeration-translations/index.js +1 -0
- package/src/lib/enumeration-translations/index.js.map +1 -1
- package/src/lib/enumeration-translations/memberStatusType.d.ts +5 -0
- package/src/lib/enumeration-translations/memberStatusType.d.ts.map +1 -0
- package/src/lib/enumeration-translations/memberStatusType.js +58 -0
- package/src/lib/enumeration-translations/memberStatusType.js.map +1 -0
- package/src/lib/enumerations/brightChainStrings.d.ts +43 -0
- package/src/lib/enumerations/brightChainStrings.d.ts.map +1 -1
- package/src/lib/enumerations/brightChainStrings.js +44 -0
- package/src/lib/enumerations/brightChainStrings.js.map +1 -1
- package/src/lib/enumerations/brightchainFeatures.d.ts +1 -0
- package/src/lib/enumerations/brightchainFeatures.d.ts.map +1 -1
- package/src/lib/enumerations/brightchainFeatures.js +1 -0
- package/src/lib/enumerations/brightchainFeatures.js.map +1 -1
- package/src/lib/enumerations/communication.d.ts +7 -1
- package/src/lib/enumerations/communication.d.ts.map +1 -1
- package/src/lib/enumerations/communication.js +6 -0
- package/src/lib/enumerations/communication.js.map +1 -1
- package/src/lib/enumerations/messaging/emailErrorType.d.ts +15 -2
- package/src/lib/enumerations/messaging/emailErrorType.d.ts.map +1 -1
- package/src/lib/enumerations/messaging/emailErrorType.js +17 -1
- package/src/lib/enumerations/messaging/emailErrorType.js.map +1 -1
- package/src/lib/enumerations/messaging/messageEncryptionScheme.d.ts +4 -2
- package/src/lib/enumerations/messaging/messageEncryptionScheme.d.ts.map +1 -1
- package/src/lib/enumerations/messaging/messageEncryptionScheme.js +3 -1
- package/src/lib/enumerations/messaging/messageEncryptionScheme.js.map +1 -1
- package/src/lib/errors/encryptionErrors.d.ts +71 -0
- package/src/lib/errors/encryptionErrors.d.ts.map +1 -0
- package/src/lib/errors/encryptionErrors.js +112 -0
- package/src/lib/errors/encryptionErrors.js.map +1 -0
- package/src/lib/errors/index.d.ts +10 -0
- package/src/lib/errors/index.d.ts.map +1 -1
- package/src/lib/errors/index.js +13 -0
- package/src/lib/errors/index.js.map +1 -1
- package/src/lib/i18n/i18n-setup.d.ts +2 -2
- package/src/lib/i18n/i18n-setup.d.ts.map +1 -1
- package/src/lib/i18n/strings/englishUK.d.ts +2 -2
- package/src/lib/i18n/strings/englishUK.d.ts.map +1 -1
- package/src/lib/i18n/strings/englishUK.js.map +1 -1
- package/src/lib/i18n/strings/englishUs.d.ts +2 -2
- package/src/lib/i18n/strings/englishUs.d.ts.map +1 -1
- package/src/lib/i18n/strings/englishUs.js +45 -1
- package/src/lib/i18n/strings/englishUs.js.map +1 -1
- package/src/lib/i18n/strings/french.d.ts +2 -2
- package/src/lib/i18n/strings/french.d.ts.map +1 -1
- package/src/lib/i18n/strings/french.js +58 -13
- package/src/lib/i18n/strings/french.js.map +1 -1
- package/src/lib/i18n/strings/german.d.ts +2 -2
- package/src/lib/i18n/strings/german.d.ts.map +1 -1
- package/src/lib/i18n/strings/german.js +57 -12
- package/src/lib/i18n/strings/german.js.map +1 -1
- package/src/lib/i18n/strings/japanese.d.ts +2 -2
- package/src/lib/i18n/strings/japanese.d.ts.map +1 -1
- package/src/lib/i18n/strings/japanese.js +57 -12
- package/src/lib/i18n/strings/japanese.js.map +1 -1
- package/src/lib/i18n/strings/mandarin.d.ts +2 -2
- package/src/lib/i18n/strings/mandarin.d.ts.map +1 -1
- package/src/lib/i18n/strings/mandarin.js +57 -12
- package/src/lib/i18n/strings/mandarin.js.map +1 -1
- package/src/lib/i18n/strings/spanish.d.ts +2 -2
- package/src/lib/i18n/strings/spanish.d.ts.map +1 -1
- package/src/lib/i18n/strings/spanish.js +57 -12
- package/src/lib/i18n/strings/spanish.js.map +1 -1
- package/src/lib/i18n/strings/ukrainian.d.ts +2 -2
- package/src/lib/i18n/strings/ukrainian.d.ts.map +1 -1
- package/src/lib/i18n/strings/ukrainian.js +57 -12
- package/src/lib/i18n/strings/ukrainian.js.map +1 -1
- package/src/lib/index.d.ts +31 -0
- package/src/lib/index.d.ts.map +1 -1
- package/src/lib/index.js +29 -1
- package/src/lib/index.js.map +1 -1
- package/src/lib/interfaces/auth/writeProof.d.ts +2 -0
- package/src/lib/interfaces/auth/writeProof.d.ts.map +1 -1
- package/src/lib/interfaces/auth/writeProofUtils.d.ts +1 -1
- package/src/lib/interfaces/auth/writeProofUtils.d.ts.map +1 -1
- package/src/lib/interfaces/auth/writeProofUtils.js +2 -2
- package/src/lib/interfaces/auth/writeProofUtils.js.map +1 -1
- package/src/lib/interfaces/availability/gossipService.d.ts +99 -1
- package/src/lib/interfaces/availability/gossipService.d.ts.map +1 -1
- package/src/lib/interfaces/availability/gossipService.js +4 -0
- package/src/lib/interfaces/availability/gossipService.js.map +1 -1
- package/src/lib/interfaces/communication/blockContentStore.d.ts +57 -0
- package/src/lib/interfaces/communication/blockContentStore.d.ts.map +1 -0
- package/src/lib/interfaces/communication/blockContentStore.js +21 -0
- package/src/lib/interfaces/communication/blockContentStore.js.map +1 -0
- package/src/lib/interfaces/communication/chatStorageProvider.d.ts +77 -0
- package/src/lib/interfaces/communication/chatStorageProvider.d.ts.map +1 -0
- package/src/lib/interfaces/communication/chatStorageProvider.js +25 -0
- package/src/lib/interfaces/communication/chatStorageProvider.js.map +1 -0
- package/src/lib/interfaces/communication/index.d.ts +4 -0
- package/src/lib/interfaces/communication/index.d.ts.map +1 -0
- package/src/lib/interfaces/communication/index.js +3 -0
- package/src/lib/interfaces/communication/index.js.map +1 -0
- package/src/lib/interfaces/communication/server.d.ts +57 -0
- package/src/lib/interfaces/communication/server.d.ts.map +1 -0
- package/src/lib/interfaces/communication/server.js +14 -0
- package/src/lib/interfaces/communication/server.js.map +1 -0
- package/src/lib/interfaces/communication.d.ts +60 -5
- package/src/lib/interfaces/communication.d.ts.map +1 -1
- package/src/lib/interfaces/communication.js +8 -0
- package/src/lib/interfaces/communication.js.map +1 -1
- package/src/lib/interfaces/communicationEvents.d.ts +59 -1
- package/src/lib/interfaces/communicationEvents.d.ts.map +1 -1
- package/src/lib/interfaces/events/communicationEventEmitter.d.ts +9 -0
- package/src/lib/interfaces/events/communicationEventEmitter.d.ts.map +1 -1
- package/src/lib/interfaces/events/communicationEventEmitter.js +9 -0
- package/src/lib/interfaces/events/communicationEventEmitter.js.map +1 -1
- package/src/lib/interfaces/index.d.ts +4 -1
- package/src/lib/interfaces/index.d.ts.map +1 -1
- package/src/lib/interfaces/index.js +3 -0
- package/src/lib/interfaces/index.js.map +1 -1
- package/src/lib/interfaces/messaging/gpgKey.d.ts +93 -0
- package/src/lib/interfaces/messaging/gpgKey.d.ts.map +1 -0
- package/src/lib/interfaces/messaging/gpgKey.js +12 -0
- package/src/lib/interfaces/messaging/gpgKey.js.map +1 -0
- package/src/lib/interfaces/messaging/index.d.ts +4 -0
- package/src/lib/interfaces/messaging/index.d.ts.map +1 -1
- package/src/lib/interfaces/messaging/index.js +4 -0
- package/src/lib/interfaces/messaging/index.js.map +1 -1
- package/src/lib/interfaces/messaging/keyStore.d.ts +100 -0
- package/src/lib/interfaces/messaging/keyStore.d.ts.map +1 -0
- package/src/lib/interfaces/messaging/keyStore.js +13 -0
- package/src/lib/interfaces/messaging/keyStore.js.map +1 -0
- package/src/lib/interfaces/messaging/recipientKeyResolver.d.ts +92 -0
- package/src/lib/interfaces/messaging/recipientKeyResolver.d.ts.map +1 -0
- package/src/lib/interfaces/messaging/recipientKeyResolver.js +13 -0
- package/src/lib/interfaces/messaging/recipientKeyResolver.js.map +1 -0
- package/src/lib/interfaces/messaging/smimeCertificate.d.ts +99 -0
- package/src/lib/interfaces/messaging/smimeCertificate.d.ts.map +1 -0
- package/src/lib/interfaces/messaging/smimeCertificate.js +12 -0
- package/src/lib/interfaces/messaging/smimeCertificate.js.map +1 -0
- package/src/lib/interfaces/responses/adminDashboardResponse.d.ts +8 -0
- package/src/lib/interfaces/responses/adminDashboardResponse.d.ts.map +1 -1
- package/src/lib/interfaces/responses/communicationResponses.d.ts +25 -0
- package/src/lib/interfaces/responses/communicationResponses.d.ts.map +1 -1
- package/src/lib/services/blockService.d.ts +11 -3
- package/src/lib/services/blockService.d.ts.map +1 -1
- package/src/lib/services/blockService.js +22 -2
- package/src/lib/services/blockService.js.map +1 -1
- package/src/lib/services/communication/__tests__/mockChatStorageProvider.d.ts +108 -0
- package/src/lib/services/communication/__tests__/mockChatStorageProvider.d.ts.map +1 -0
- package/src/lib/services/communication/__tests__/mockChatStorageProvider.js +284 -0
- package/src/lib/services/communication/__tests__/mockChatStorageProvider.js.map +1 -0
- package/src/lib/services/communication/attachmentUtils.d.ts +20 -0
- package/src/lib/services/communication/attachmentUtils.d.ts.map +1 -0
- package/src/lib/services/communication/attachmentUtils.js +43 -0
- package/src/lib/services/communication/attachmentUtils.js.map +1 -0
- package/src/lib/services/communication/channelService.d.ts +127 -12
- package/src/lib/services/communication/channelService.d.ts.map +1 -1
- package/src/lib/services/communication/channelService.js +486 -30
- package/src/lib/services/communication/channelService.js.map +1 -1
- package/src/lib/services/communication/conversationService.d.ts +91 -4
- package/src/lib/services/communication/conversationService.d.ts.map +1 -1
- package/src/lib/services/communication/conversationService.js +237 -5
- package/src/lib/services/communication/conversationService.js.map +1 -1
- package/src/lib/services/communication/eciesKeyEncryptionHandler.d.ts +36 -0
- package/src/lib/services/communication/eciesKeyEncryptionHandler.d.ts.map +1 -0
- package/src/lib/services/communication/eciesKeyEncryptionHandler.js +30 -0
- package/src/lib/services/communication/eciesKeyEncryptionHandler.js.map +1 -0
- package/src/lib/services/communication/groupService.d.ts +99 -21
- package/src/lib/services/communication/groupService.d.ts.map +1 -1
- package/src/lib/services/communication/groupService.js +359 -39
- package/src/lib/services/communication/groupService.js.map +1 -1
- package/src/lib/services/communication/index.d.ts +6 -1
- package/src/lib/services/communication/index.d.ts.map +1 -1
- package/src/lib/services/communication/index.js +20 -1
- package/src/lib/services/communication/index.js.map +1 -1
- package/src/lib/services/communication/keyEpochManager.d.ts +41 -0
- package/src/lib/services/communication/keyEpochManager.d.ts.map +1 -0
- package/src/lib/services/communication/keyEpochManager.js +59 -0
- package/src/lib/services/communication/keyEpochManager.js.map +1 -0
- package/src/lib/services/communication/rehydrationHelpers.d.ts +32 -0
- package/src/lib/services/communication/rehydrationHelpers.d.ts.map +1 -0
- package/src/lib/services/communication/rehydrationHelpers.js +58 -0
- package/src/lib/services/communication/rehydrationHelpers.js.map +1 -0
- package/src/lib/services/communication/serverService.d.ts +193 -0
- package/src/lib/services/communication/serverService.d.ts.map +1 -0
- package/src/lib/services/communication/serverService.js +497 -0
- package/src/lib/services/communication/serverService.js.map +1 -0
- package/src/lib/services/memberStore.d.ts +10 -0
- package/src/lib/services/memberStore.d.ts.map +1 -1
- package/src/lib/services/memberStore.js +41 -16
- package/src/lib/services/memberStore.js.map +1 -1
- package/src/lib/services/messaging/emailEncryptionService.d.ts +162 -0
- package/src/lib/services/messaging/emailEncryptionService.d.ts.map +1 -1
- package/src/lib/services/messaging/emailEncryptionService.js +293 -0
- package/src/lib/services/messaging/emailEncryptionService.js.map +1 -1
- package/src/lib/services/messaging/emailMessageService.d.ts +64 -0
- package/src/lib/services/messaging/emailMessageService.d.ts.map +1 -1
- package/src/lib/services/messaging/emailMessageService.js +142 -13
- package/src/lib/services/messaging/emailMessageService.js.map +1 -1
- package/src/lib/services/messaging/gpgKeyManager.d.ts +130 -0
- package/src/lib/services/messaging/gpgKeyManager.d.ts.map +1 -0
- package/src/lib/services/messaging/gpgKeyManager.js +381 -0
- package/src/lib/services/messaging/gpgKeyManager.js.map +1 -0
- package/src/lib/services/messaging/index.d.ts +3 -0
- package/src/lib/services/messaging/index.d.ts.map +1 -1
- package/src/lib/services/messaging/index.js +3 -0
- package/src/lib/services/messaging/index.js.map +1 -1
- package/src/lib/services/messaging/recipientKeyResolver.d.ts +47 -0
- package/src/lib/services/messaging/recipientKeyResolver.d.ts.map +1 -0
- package/src/lib/services/messaging/recipientKeyResolver.js +132 -0
- package/src/lib/services/messaging/recipientKeyResolver.js.map +1 -0
- package/src/lib/services/messaging/smimeCertificateManager.d.ts +207 -0
- package/src/lib/services/messaging/smimeCertificateManager.d.ts.map +1 -0
- package/src/lib/services/messaging/smimeCertificateManager.js +696 -0
- package/src/lib/services/messaging/smimeCertificateManager.js.map +1 -0
|
@@ -0,0 +1,497 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* ServerService — manages server lifecycle, membership, and channel organization.
|
|
4
|
+
*
|
|
5
|
+
* Maintains in-memory stores for servers. When an IChatStorageProvider is
|
|
6
|
+
* injected, servers are also persisted to the provider's collections (write-through).
|
|
7
|
+
* Without a provider (e.g. in unit tests), services fall back to in-memory Maps.
|
|
8
|
+
*
|
|
9
|
+
* Requirements: 1.1, 1.3, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.ServerService = exports.ServerInviteExpiredError = exports.ServerInviteNotFoundError = exports.MemberAlreadyInServerError = exports.ServerNameValidationError = exports.NotServerMemberError = exports.ServerPermissionError = exports.ServerNotFoundError = void 0;
|
|
13
|
+
const uuid_1 = require("uuid");
|
|
14
|
+
const communication_1 = require("../../enumerations/communication");
|
|
15
|
+
const events_1 = require("../../interfaces/events");
|
|
16
|
+
const pagination_1 = require("../../utils/pagination");
|
|
17
|
+
// ─── Error classes ──────────────────────────────────────────────────────────
|
|
18
|
+
class ServerNotFoundError extends Error {
|
|
19
|
+
constructor(serverId) {
|
|
20
|
+
super(`Server ${serverId} not found`);
|
|
21
|
+
this.name = 'ServerNotFoundError';
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.ServerNotFoundError = ServerNotFoundError;
|
|
25
|
+
class ServerPermissionError extends Error {
|
|
26
|
+
constructor(message = 'You do not have permission to perform this action') {
|
|
27
|
+
super(message);
|
|
28
|
+
this.name = 'ServerPermissionError';
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
exports.ServerPermissionError = ServerPermissionError;
|
|
32
|
+
class NotServerMemberError extends Error {
|
|
33
|
+
constructor() {
|
|
34
|
+
super('You are not a member of this server');
|
|
35
|
+
this.name = 'NotServerMemberError';
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.NotServerMemberError = NotServerMemberError;
|
|
39
|
+
class ServerNameValidationError extends Error {
|
|
40
|
+
constructor(message = 'Server name must be between 1 and 100 characters') {
|
|
41
|
+
super(message);
|
|
42
|
+
this.name = 'ServerNameValidationError';
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
exports.ServerNameValidationError = ServerNameValidationError;
|
|
46
|
+
class MemberAlreadyInServerError extends Error {
|
|
47
|
+
constructor(memberId) {
|
|
48
|
+
super(`Member ${memberId} is already in this server`);
|
|
49
|
+
this.name = 'MemberAlreadyInServerError';
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.MemberAlreadyInServerError = MemberAlreadyInServerError;
|
|
53
|
+
class ServerInviteNotFoundError extends Error {
|
|
54
|
+
constructor(token) {
|
|
55
|
+
super(`Server invite token ${token} not found`);
|
|
56
|
+
this.name = 'ServerInviteNotFoundError';
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
exports.ServerInviteNotFoundError = ServerInviteNotFoundError;
|
|
60
|
+
class ServerInviteExpiredError extends Error {
|
|
61
|
+
constructor() {
|
|
62
|
+
super('Server invite token has expired or exceeded max uses');
|
|
63
|
+
this.name = 'ServerInviteExpiredError';
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
exports.ServerInviteExpiredError = ServerInviteExpiredError;
|
|
67
|
+
// ─── Service ────────────────────────────────────────────────────────────────
|
|
68
|
+
class ServerService {
|
|
69
|
+
/** serverId → IServer */
|
|
70
|
+
servers = new Map();
|
|
71
|
+
/** token → IServerInviteToken */
|
|
72
|
+
serverInviteTokens = new Map();
|
|
73
|
+
channelService;
|
|
74
|
+
eventEmitter;
|
|
75
|
+
/** Optional persistent collection for servers (write-through). */
|
|
76
|
+
serverCollection;
|
|
77
|
+
/** Optional persistent collection for server invite tokens (write-through). */
|
|
78
|
+
serverInviteCollection;
|
|
79
|
+
/** Whether init() has already been called. */
|
|
80
|
+
initialized = false;
|
|
81
|
+
constructor(options) {
|
|
82
|
+
this.channelService = options.channelService;
|
|
83
|
+
this.eventEmitter = options.eventEmitter ?? new events_1.NullEventEmitter();
|
|
84
|
+
if (options.storageProvider) {
|
|
85
|
+
this.serverCollection = options.storageProvider.servers;
|
|
86
|
+
this.serverInviteCollection = options.storageProvider.serverInvites;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
// ─── Rehydration ──────────────────────────────────────────────────────
|
|
90
|
+
/**
|
|
91
|
+
* Load persisted servers and server invite tokens back into in-memory Maps.
|
|
92
|
+
*
|
|
93
|
+
* Idempotent: only the first call performs rehydration. No-op when no
|
|
94
|
+
* storage provider was supplied at construction time.
|
|
95
|
+
*
|
|
96
|
+
* Requirements: 1.4, 1.5, 1.6, 5.1, 5.2, 8.1, 8.2, 9.1
|
|
97
|
+
*/
|
|
98
|
+
async init() {
|
|
99
|
+
if (this.initialized)
|
|
100
|
+
return;
|
|
101
|
+
if (!this.serverCollection)
|
|
102
|
+
return;
|
|
103
|
+
this.initialized = true;
|
|
104
|
+
// ── Load servers ──────────────────────────────────────────────────
|
|
105
|
+
let loadedServers;
|
|
106
|
+
try {
|
|
107
|
+
loadedServers = await this.serverCollection.findMany();
|
|
108
|
+
}
|
|
109
|
+
catch (error) {
|
|
110
|
+
console.error('[ServerService] Failed to load from servers collection:', error);
|
|
111
|
+
throw error;
|
|
112
|
+
}
|
|
113
|
+
for (const server of loadedServers) {
|
|
114
|
+
this.servers.set(server.id, server);
|
|
115
|
+
}
|
|
116
|
+
// ── Load server invite tokens ───────────────────────────────────
|
|
117
|
+
let loadedInvites;
|
|
118
|
+
try {
|
|
119
|
+
loadedInvites = await this.serverInviteCollection.findMany();
|
|
120
|
+
}
|
|
121
|
+
catch (error) {
|
|
122
|
+
console.error('[ServerService] Failed to load from serverInvites collection:', error);
|
|
123
|
+
throw error;
|
|
124
|
+
}
|
|
125
|
+
for (const invite of loadedInvites) {
|
|
126
|
+
this.serverInviteTokens.set(invite.token, invite);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
// ─── Helpers ──────────────────────────────────────────────────────────
|
|
130
|
+
validateServerName(name) {
|
|
131
|
+
if (!name || name.length === 0 || name.length > 100) {
|
|
132
|
+
throw new ServerNameValidationError();
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
assertServerExists(serverId) {
|
|
136
|
+
const server = this.servers.get(serverId);
|
|
137
|
+
if (!server)
|
|
138
|
+
throw new ServerNotFoundError(serverId);
|
|
139
|
+
return server;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Returns the role of a member within a server.
|
|
143
|
+
* The server owner always has OWNER role; all other members have MEMBER role.
|
|
144
|
+
* Returns null if the user is not a member.
|
|
145
|
+
*/
|
|
146
|
+
getMemberRole(serverId, memberId) {
|
|
147
|
+
const server = this.servers.get(serverId);
|
|
148
|
+
if (!server)
|
|
149
|
+
return null;
|
|
150
|
+
if (!server.memberIds.includes(memberId))
|
|
151
|
+
return null;
|
|
152
|
+
if (server.ownerId === memberId)
|
|
153
|
+
return communication_1.DefaultRole.OWNER;
|
|
154
|
+
return communication_1.DefaultRole.MEMBER;
|
|
155
|
+
}
|
|
156
|
+
assertCanUpdate(server, userId) {
|
|
157
|
+
const role = this.getMemberRole(server.id, userId);
|
|
158
|
+
if (role !== communication_1.DefaultRole.OWNER && role !== communication_1.DefaultRole.ADMIN) {
|
|
159
|
+
throw new ServerPermissionError('Only the server owner or admin can update this server');
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
assertCanDelete(server, userId) {
|
|
163
|
+
if (server.ownerId !== userId) {
|
|
164
|
+
throw new ServerPermissionError('Only the server owner can delete this server');
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
// ─── CRUD ─────────────────────────────────────────────────────────────
|
|
168
|
+
/**
|
|
169
|
+
* Create a new server with a default "General" category and "general" channel.
|
|
170
|
+
* The owner is added as the first member.
|
|
171
|
+
*
|
|
172
|
+
* Requirements: 1.1, 1.3, 2.1
|
|
173
|
+
*/
|
|
174
|
+
async createServer(ownerId, params) {
|
|
175
|
+
this.validateServerName(params.name);
|
|
176
|
+
const now = new Date();
|
|
177
|
+
const serverId = (0, uuid_1.v4)();
|
|
178
|
+
const categoryId = (0, uuid_1.v4)();
|
|
179
|
+
// Create the default "general" channel via ChannelService
|
|
180
|
+
const generalChannel = await this.channelService.createChannel('general', ownerId, communication_1.ChannelVisibility.PUBLIC, '');
|
|
181
|
+
// Link the channel to this server
|
|
182
|
+
generalChannel.serverId = serverId;
|
|
183
|
+
// Build the default "General" category
|
|
184
|
+
const defaultCategory = {
|
|
185
|
+
id: categoryId,
|
|
186
|
+
name: 'General',
|
|
187
|
+
position: 0,
|
|
188
|
+
channelIds: [generalChannel.id],
|
|
189
|
+
};
|
|
190
|
+
const server = {
|
|
191
|
+
id: serverId,
|
|
192
|
+
name: params.name,
|
|
193
|
+
iconUrl: params.iconUrl,
|
|
194
|
+
ownerId,
|
|
195
|
+
memberIds: [ownerId],
|
|
196
|
+
channelIds: [generalChannel.id],
|
|
197
|
+
categories: [defaultCategory],
|
|
198
|
+
createdAt: now,
|
|
199
|
+
updatedAt: now,
|
|
200
|
+
};
|
|
201
|
+
this.servers.set(serverId, server);
|
|
202
|
+
// Persist to storage provider if available
|
|
203
|
+
if (this.serverCollection) {
|
|
204
|
+
await this.serverCollection.create(server);
|
|
205
|
+
}
|
|
206
|
+
return server;
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Get a server by ID.
|
|
210
|
+
* Throws ServerNotFoundError if the server does not exist.
|
|
211
|
+
*
|
|
212
|
+
* Requirement: 2.3
|
|
213
|
+
*/
|
|
214
|
+
async getServer(serverId) {
|
|
215
|
+
return this.assertServerExists(serverId);
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Update server settings (name, iconUrl, categories).
|
|
219
|
+
* Only the owner or admin can update.
|
|
220
|
+
*
|
|
221
|
+
* Requirements: 2.4, 2.5
|
|
222
|
+
*/
|
|
223
|
+
async updateServer(serverId, userId, update) {
|
|
224
|
+
const server = this.assertServerExists(serverId);
|
|
225
|
+
this.assertCanUpdate(server, userId);
|
|
226
|
+
if (update.name !== undefined) {
|
|
227
|
+
this.validateServerName(update.name);
|
|
228
|
+
server.name = update.name;
|
|
229
|
+
}
|
|
230
|
+
if (update.iconUrl !== undefined) {
|
|
231
|
+
server.iconUrl = update.iconUrl;
|
|
232
|
+
}
|
|
233
|
+
if (update.categories !== undefined) {
|
|
234
|
+
server.categories = update.categories;
|
|
235
|
+
}
|
|
236
|
+
server.updatedAt = new Date();
|
|
237
|
+
// Persist to storage provider if available
|
|
238
|
+
if (this.serverCollection) {
|
|
239
|
+
await this.serverCollection.update(serverId, server);
|
|
240
|
+
}
|
|
241
|
+
return server;
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Delete a server and cascade-delete all its channels.
|
|
245
|
+
* Only the owner can delete.
|
|
246
|
+
*
|
|
247
|
+
* Requirements: 2.5, 2.6
|
|
248
|
+
*/
|
|
249
|
+
async deleteServer(serverId, userId) {
|
|
250
|
+
const server = this.assertServerExists(serverId);
|
|
251
|
+
this.assertCanDelete(server, userId);
|
|
252
|
+
// Cascade delete all channels belonging to this server
|
|
253
|
+
for (const channelId of server.channelIds) {
|
|
254
|
+
try {
|
|
255
|
+
await this.channelService.deleteChannel(channelId, server.ownerId);
|
|
256
|
+
}
|
|
257
|
+
catch {
|
|
258
|
+
// Channel may already be deleted; continue cleanup
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
this.servers.delete(serverId);
|
|
262
|
+
// Persist deletion to storage provider if available
|
|
263
|
+
if (this.serverCollection) {
|
|
264
|
+
await this.serverCollection.delete(serverId);
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* List all servers where the given member is a member.
|
|
269
|
+
* Supports cursor-based pagination.
|
|
270
|
+
*
|
|
271
|
+
* Requirement: 2.2
|
|
272
|
+
*/
|
|
273
|
+
async listServersForMember(memberId, pagination) {
|
|
274
|
+
const memberServers = Array.from(this.servers.values()).filter((s) => s.memberIds.includes(memberId));
|
|
275
|
+
// Sort by creation date descending (newest first)
|
|
276
|
+
memberServers.sort((a, b) => b.createdAt.getTime() - a.createdAt.getTime());
|
|
277
|
+
return (0, pagination_1.paginateItems)(memberServers, pagination?.cursor, pagination?.limit ?? 50);
|
|
278
|
+
}
|
|
279
|
+
// ─── Membership ────────────────────────────────────────────────────────
|
|
280
|
+
/**
|
|
281
|
+
* Add members to a server. Only owner or admin can add members.
|
|
282
|
+
* Skips members who are already in the server. Returns the list of
|
|
283
|
+
* actually added member IDs.
|
|
284
|
+
*
|
|
285
|
+
* After adding, distributes channel keys for all server channels
|
|
286
|
+
* to each new member via ChannelService.addMemberToChannel().
|
|
287
|
+
*
|
|
288
|
+
* Requirements: 2.7, 6.1, 6.2, 6.3
|
|
289
|
+
*/
|
|
290
|
+
async addMembers(serverId, userId, memberIds) {
|
|
291
|
+
const server = this.assertServerExists(serverId);
|
|
292
|
+
this.assertCanUpdate(server, userId);
|
|
293
|
+
const added = [];
|
|
294
|
+
for (const memberId of memberIds) {
|
|
295
|
+
if (!server.memberIds.includes(memberId)) {
|
|
296
|
+
server.memberIds.push(memberId);
|
|
297
|
+
added.push(memberId);
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
if (added.length > 0) {
|
|
301
|
+
// Distribute channel keys for all server channels to each new member
|
|
302
|
+
for (const memberId of added) {
|
|
303
|
+
for (const channelId of server.channelIds) {
|
|
304
|
+
await this.channelService.addMemberToChannel(channelId, memberId);
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
server.updatedAt = new Date();
|
|
308
|
+
// Persist to storage provider if available
|
|
309
|
+
if (this.serverCollection) {
|
|
310
|
+
await this.serverCollection.update(serverId, server);
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
return added;
|
|
314
|
+
}
|
|
315
|
+
/**
|
|
316
|
+
* Remove a member from a server and all of its channels.
|
|
317
|
+
* Only owner or admin can remove members. Emits SERVER_MEMBER_REMOVED event.
|
|
318
|
+
*
|
|
319
|
+
* Delegates to ChannelService.removeMemberFromChannel() for each channel,
|
|
320
|
+
* which performs epoch-aware key rotation and removes the member's wrapped
|
|
321
|
+
* key entries from all epochs.
|
|
322
|
+
*
|
|
323
|
+
* Requirements: 2.8, 7.1, 7.2, 7.3
|
|
324
|
+
*/
|
|
325
|
+
async removeMember(serverId, userId, memberId) {
|
|
326
|
+
const server = this.assertServerExists(serverId);
|
|
327
|
+
this.assertCanUpdate(server, userId);
|
|
328
|
+
// Remove from server memberIds
|
|
329
|
+
server.memberIds = server.memberIds.filter((id) => id !== memberId);
|
|
330
|
+
// Remove from all server channels via ChannelService (triggers key rotation)
|
|
331
|
+
for (const channelId of server.channelIds) {
|
|
332
|
+
await this.channelService.removeMemberFromChannel(channelId, memberId);
|
|
333
|
+
}
|
|
334
|
+
server.updatedAt = new Date();
|
|
335
|
+
// Persist to storage provider if available
|
|
336
|
+
if (this.serverCollection) {
|
|
337
|
+
await this.serverCollection.update(serverId, server);
|
|
338
|
+
}
|
|
339
|
+
this.eventEmitter.emitServerMemberRemoved(serverId, memberId);
|
|
340
|
+
}
|
|
341
|
+
// ─── Invites ──────────────────────────────────────────────────────────
|
|
342
|
+
/**
|
|
343
|
+
* Create an invite token for a server.
|
|
344
|
+
* Only members of the server can create invites.
|
|
345
|
+
* Generates a unique token with optional expiration and max-use limits.
|
|
346
|
+
*
|
|
347
|
+
* Requirements: 3.1
|
|
348
|
+
*/
|
|
349
|
+
async createInvite(serverId, userId, params) {
|
|
350
|
+
const server = this.assertServerExists(serverId);
|
|
351
|
+
// Caller must be a member of the server
|
|
352
|
+
if (!server.memberIds.includes(userId)) {
|
|
353
|
+
throw new NotServerMemberError();
|
|
354
|
+
}
|
|
355
|
+
const now = new Date();
|
|
356
|
+
const invite = {
|
|
357
|
+
token: (0, uuid_1.v4)(),
|
|
358
|
+
serverId,
|
|
359
|
+
createdBy: userId,
|
|
360
|
+
createdAt: now,
|
|
361
|
+
expiresAt: params.expiresInMs
|
|
362
|
+
? new Date(now.getTime() + params.expiresInMs)
|
|
363
|
+
: undefined,
|
|
364
|
+
maxUses: params.maxUses,
|
|
365
|
+
currentUses: 0,
|
|
366
|
+
};
|
|
367
|
+
this.serverInviteTokens.set(invite.token, invite);
|
|
368
|
+
// Persist to storage provider if available
|
|
369
|
+
if (this.serverInviteCollection) {
|
|
370
|
+
await this.serverInviteCollection.create(invite);
|
|
371
|
+
}
|
|
372
|
+
return invite;
|
|
373
|
+
}
|
|
374
|
+
/**
|
|
375
|
+
* Redeem an invite token to join a server.
|
|
376
|
+
* Validates the token belongs to the specified server, checks expiration
|
|
377
|
+
* and max-use limits, increments currentUses, and adds the user to the server.
|
|
378
|
+
*
|
|
379
|
+
* After joining, distributes channel keys for all server channels
|
|
380
|
+
* to the new member via ChannelService.addMemberToChannel().
|
|
381
|
+
*
|
|
382
|
+
* Requirements: 3.2, 3.3, 3.4, 6.1, 6.2, 6.3
|
|
383
|
+
*/
|
|
384
|
+
async redeemInvite(serverId, token, userId) {
|
|
385
|
+
const invite = this.serverInviteTokens.get(token);
|
|
386
|
+
if (!invite) {
|
|
387
|
+
throw new ServerInviteNotFoundError(token);
|
|
388
|
+
}
|
|
389
|
+
// Validate the token belongs to the specified server
|
|
390
|
+
if (invite.serverId !== serverId) {
|
|
391
|
+
throw new ServerInviteNotFoundError(token);
|
|
392
|
+
}
|
|
393
|
+
// Check expiration
|
|
394
|
+
if (invite.expiresAt && new Date() >= invite.expiresAt) {
|
|
395
|
+
throw new ServerInviteExpiredError();
|
|
396
|
+
}
|
|
397
|
+
// Check max uses
|
|
398
|
+
if (invite.maxUses !== undefined && invite.currentUses >= invite.maxUses) {
|
|
399
|
+
throw new ServerInviteExpiredError();
|
|
400
|
+
}
|
|
401
|
+
const server = this.assertServerExists(serverId);
|
|
402
|
+
// Skip if already a member
|
|
403
|
+
if (server.memberIds.includes(userId)) {
|
|
404
|
+
throw new MemberAlreadyInServerError(userId);
|
|
405
|
+
}
|
|
406
|
+
// Add user to server
|
|
407
|
+
server.memberIds.push(userId);
|
|
408
|
+
server.updatedAt = new Date();
|
|
409
|
+
// Distribute channel keys for all server channels to the new member
|
|
410
|
+
for (const channelId of server.channelIds) {
|
|
411
|
+
await this.channelService.addMemberToChannel(channelId, userId);
|
|
412
|
+
}
|
|
413
|
+
// Increment usage
|
|
414
|
+
invite.currentUses++;
|
|
415
|
+
// Persist changes to storage provider if available
|
|
416
|
+
if (this.serverCollection) {
|
|
417
|
+
await this.serverCollection.update(serverId, server);
|
|
418
|
+
}
|
|
419
|
+
if (this.serverInviteCollection) {
|
|
420
|
+
await this.serverInviteCollection.update(invite.token, invite);
|
|
421
|
+
}
|
|
422
|
+
}
|
|
423
|
+
// ─── Channel management within server ────────────────────────────────
|
|
424
|
+
/**
|
|
425
|
+
* Create a channel within a server.
|
|
426
|
+
* Validates caller has owner/admin role, creates the channel via ChannelService,
|
|
427
|
+
* sets serverId on the channel, adds channelId to server.channelIds,
|
|
428
|
+
* adds to specified category (or first category if not specified),
|
|
429
|
+
* and emits SERVER_CHANNEL_CREATED event.
|
|
430
|
+
*
|
|
431
|
+
* Requirements: 1.3, 1.4, 7.2
|
|
432
|
+
*/
|
|
433
|
+
async createChannelInServer(serverId, userId, params, categoryId) {
|
|
434
|
+
const server = this.assertServerExists(serverId);
|
|
435
|
+
this.assertCanUpdate(server, userId);
|
|
436
|
+
// Create the channel via ChannelService
|
|
437
|
+
const channel = await this.channelService.createChannel(params.name, userId, params.visibility, params.topic ?? '');
|
|
438
|
+
// Link the channel to this server
|
|
439
|
+
channel.serverId = serverId;
|
|
440
|
+
// Add channelId to server's channelIds
|
|
441
|
+
server.channelIds.push(channel.id);
|
|
442
|
+
// Determine target category
|
|
443
|
+
let targetCategory;
|
|
444
|
+
if (categoryId) {
|
|
445
|
+
targetCategory = server.categories.find((c) => c.id === categoryId);
|
|
446
|
+
}
|
|
447
|
+
if (!targetCategory && server.categories.length > 0) {
|
|
448
|
+
targetCategory = server.categories[0];
|
|
449
|
+
}
|
|
450
|
+
const resolvedCategoryId = targetCategory?.id ?? '';
|
|
451
|
+
if (targetCategory) {
|
|
452
|
+
targetCategory.channelIds.push(channel.id);
|
|
453
|
+
}
|
|
454
|
+
server.updatedAt = new Date();
|
|
455
|
+
// Persist to storage provider if available
|
|
456
|
+
if (this.serverCollection) {
|
|
457
|
+
await this.serverCollection.update(serverId, server);
|
|
458
|
+
}
|
|
459
|
+
this.eventEmitter.emitServerChannelCreated(serverId, channel.id, channel.name, resolvedCategoryId);
|
|
460
|
+
return channel;
|
|
461
|
+
}
|
|
462
|
+
/**
|
|
463
|
+
* Remove a channel from a server.
|
|
464
|
+
* Validates caller has owner/admin role, deletes the channel via ChannelService,
|
|
465
|
+
* removes channelId from server.channelIds and from category.channelIds,
|
|
466
|
+
* and emits SERVER_CHANNEL_DELETED event.
|
|
467
|
+
*
|
|
468
|
+
* Requirements: 1.3, 1.4, 7.2
|
|
469
|
+
*/
|
|
470
|
+
async removeChannelFromServer(serverId, channelId, userId) {
|
|
471
|
+
const server = this.assertServerExists(serverId);
|
|
472
|
+
this.assertCanUpdate(server, userId);
|
|
473
|
+
// Delete the channel via ChannelService
|
|
474
|
+
await this.channelService.deleteChannel(channelId, userId);
|
|
475
|
+
// Remove channelId from server's channelIds
|
|
476
|
+
server.channelIds = server.channelIds.filter((id) => id !== channelId);
|
|
477
|
+
// Remove from any category that contains it
|
|
478
|
+
for (const category of server.categories) {
|
|
479
|
+
category.channelIds = category.channelIds.filter((id) => id !== channelId);
|
|
480
|
+
}
|
|
481
|
+
server.updatedAt = new Date();
|
|
482
|
+
// Persist to storage provider if available
|
|
483
|
+
if (this.serverCollection) {
|
|
484
|
+
await this.serverCollection.update(serverId, server);
|
|
485
|
+
}
|
|
486
|
+
this.eventEmitter.emitServerChannelDeleted(serverId, channelId);
|
|
487
|
+
}
|
|
488
|
+
// ─── Accessors (for testing / internal use) ───────────────────────────
|
|
489
|
+
getServerById(serverId) {
|
|
490
|
+
return this.servers.get(serverId);
|
|
491
|
+
}
|
|
492
|
+
getInviteToken(token) {
|
|
493
|
+
return this.serverInviteTokens.get(token);
|
|
494
|
+
}
|
|
495
|
+
}
|
|
496
|
+
exports.ServerService = ServerService;
|
|
497
|
+
//# sourceMappingURL=serverService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serverService.js","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/services/communication/serverService.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,6 +25,16 @@ export declare class MemberStore<TID extends PlatformID = Uint8Array> implements
|
|
|
25
25
|
*/
|
|
26
26
|
private idToBytes;
|
|
27
27
|
constructor(blockStore: IBlockStore, db?: IMemberStoreDb);
|
|
28
|
+
/**
|
|
29
|
+
* Pick the smallest supported block size that can hold `dataLength` bytes.
|
|
30
|
+
*
|
|
31
|
+
* Delegates to `BlockService.getBlockSizeForData` with the block store's
|
|
32
|
+
* supported sizes so that only sizes the store actually accepts are
|
|
33
|
+
* considered.
|
|
34
|
+
*
|
|
35
|
+
* @throws MemberError if no supported block size is large enough.
|
|
36
|
+
*/
|
|
37
|
+
private blockSizeForData;
|
|
28
38
|
/**
|
|
29
39
|
* Attach (or replace) the DB reference after construction.
|
|
30
40
|
* Called by the plugin after connect() so MemberStore can query
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memberStore.d.ts","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/services/memberStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,MAAM,EACN,UAAU,EACV,YAAY,EAEb,MAAM,4BAA4B,CAAC;AAmBpC,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACf,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,iCAAiC,EAEjC,gCAAgC,EAEjC,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAKrE;;GAEG;AACH,qBAAa,WAAW,CAAC,GAAG,SAAS,UAAU,GAAG,UAAU,CAC1D,YAAW,YAAY,CAAC,GAAG,CAAC;IAE5B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAc;IACzC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsC;IAClE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA2B;IACvD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsB;IAChD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IACjD,wEAAwE;IACxE,OAAO,CAAC,GAAG,CAAwB;IAEnC;;;;;;;;OAQG;IACH,OAAO,CAAC,SAAS;gBAoBL,UAAU,EAAE,WAAW,EAAE,EAAE,CAAC,EAAE,cAAc;IASxD;;;;OAIG;IACI,KAAK,CAAC,EAAE,EAAE,cAAc,GAAG,IAAI;IAItC;;;;;;;;OAQG;YACW,yBAAyB;IA6DvC;;OAEG;IACU,YAAY,CACvB,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC;QAAE,SAAS,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAAC,QAAQ,EAAE,YAAY,CAAA;KAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"memberStore.d.ts","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/services/memberStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,MAAM,EACN,UAAU,EACV,YAAY,EAEb,MAAM,4BAA4B,CAAC;AAmBpC,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACf,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,iCAAiC,EAEjC,gCAAgC,EAEjC,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAKrE;;GAEG;AACH,qBAAa,WAAW,CAAC,GAAG,SAAS,UAAU,GAAG,UAAU,CAC1D,YAAW,YAAY,CAAC,GAAG,CAAC;IAE5B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAc;IACzC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsC;IAClE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA2B;IACvD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsB;IAChD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IACjD,wEAAwE;IACxE,OAAO,CAAC,GAAG,CAAwB;IAEnC;;;;;;;;OAQG;IACH,OAAO,CAAC,SAAS;gBAoBL,UAAU,EAAE,WAAW,EAAE,EAAE,CAAC,EAAE,cAAc;IASxD;;;;;;;;OAQG;IACH,OAAO,CAAC,gBAAgB;IAYxB;;;;OAIG;IACI,KAAK,CAAC,EAAE,EAAE,cAAc,GAAG,IAAI;IAItC;;;;;;;;OAQG;YACW,yBAAyB;IA6DvC;;OAEG;IACU,YAAY,CACvB,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC;QAAE,SAAS,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAAC,QAAQ,EAAE,YAAY,CAAA;KAAE,CAAC;IAyVxE;;;;;;;;OAQG;IACU,SAAS,CAAC,EAAE,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAwErD;;;;;;;;;OASG;IACU,qBAAqB,CAAC,EAAE,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IA4CnE;;;;;;;;OAQG;IACU,gBAAgB,CAAC,EAAE,EAAE,GAAG,GAAG,OAAO,CAAC;QAC9C,aAAa,EAAE,gCAAgC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QAC5D,cAAc,EAAE,iCAAiC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;KAC/D,CAAC;IAoLF;;;;;;;;;;OAUG;IACU,YAAY,CACvB,EAAE,EAAE,GAAG,EACP,OAAO,EAAE,cAAc,CAAC,GAAG,CAAC,GAC3B,OAAO,CAAC,IAAI,CAAC;IAiLhB;;OAEG;IACU,YAAY,CAAC,EAAE,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAqCjD;;OAEG;IACU,WAAW,CAAC,KAAK,EAAE,iBAAiB,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IA2CtE;;;;;;;OAOG;IACU,UAAU,CACrB,QAAQ,EAAE,oBAAoB,CAAC,GAAG,CAAC,GAClC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;IAmFnC;;;;;;OAMG;YACW,iBAAiB;IAsF/B;;OAEG;IAEU,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtD;;OAEG;IACU,gBAAgB,CAC3B,QAAQ,EAAE,cAAc,CAAC,GAAG,CAAC,EAAE,GAC9B,OAAO,CAAC,IAAI,CAAC;CAIjB"}
|