@agentunion/fastaun 0.5.3 → 0.5.6
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/CHANGELOG.md +126 -52
- package/_packed_docs/AUN/347/246/273/347/272/277/346/216/250/351/200/201/346/216/245/345/205/245/344/270/216/346/274/224/347/244/272/346/214/207/345/215/227.md +290 -0
- package/_packed_docs/AUN/347/246/273/347/272/277/346/216/250/351/200/201/346/234/215/345/212/241/346/236/266/346/236/204/344/270/216/350/257/246/347/273/206/345/256/236/347/216/260/350/256/241/345/210/222-codex.md +994 -0
- package/_packed_docs/AUN/347/246/273/347/272/277/346/216/250/351/200/201/346/234/215/345/212/241/350/277/220/347/273/264/344/270/216/345/217/221/345/270/203/346/214/207/345/215/227.md +144 -0
- package/_packed_docs/CHANGELOG.md +126 -52
- package/_packed_docs/INDEX.md +127 -69
- package/_packed_docs/KITE_DOCS_GUIDE.md +63 -29
- package/_packed_docs/audit/AUN/346/234/215/345/212/241Go/345/214/226/351/207/215/346/236/204/347/262/276/347/273/206/345/214/226/346/272/220/347/240/201/345/256/241/346/237/245-20260718.md +366 -0
- package/_packed_docs/aun/345/205/254/347/275/221/346/265/213/350/257/225/350/277/220/350/241/214/346/214/207/345/215/227.md +227 -0
- package/_packed_docs/aun/345/210/206/345/270/203/345/274/217/346/265/213/350/257/225/350/277/220/350/241/214/346/214/207/345/215/227.md +1004 -0
- package/_packed_docs/aun/346/265/213/350/257/225/350/277/220/350/241/214/346/214/207/345/215/227.md +999 -0
- package/_packed_docs/cli/CLI/346/211/213/345/206/214.md +6 -4
- package/_packed_docs/protocol/06-/346/234/215/345/212/241/345/215/217/350/256/256.md +58 -20
- package/_packed_docs/protocol/10-Group-/345/255/220/345/215/217/350/256/256.md +219 -247
- package/_packed_docs/protocol/12-Stream-/345/255/220/345/215/217/350/256/256.md +14 -14
- package/_packed_docs/protocol/13-Agent/350/241/214/344/270/272/350/247/204/350/214/203.md +3 -3
- package/_packed_docs/protocol/15-/347/246/273/347/272/277/346/216/250/351/200/201/351/200/232/347/237/245/345/215/217/350/256/256.md +165 -421
- package/_packed_docs/protocol/README.md +1 -0
- package/_packed_docs/protocol/aun-docs-guide.md +7 -4
- package/_packed_docs/protocol/index.md +25 -19
- package/_packed_docs/sdk/02-WebSocket/345/215/217/350/256/256.md +62 -17
- package/_packed_docs/sdk/03-/346/240/270/345/277/203/346/246/202/345/277/265.md +22 -0
- package/_packed_docs/sdk/04-/350/277/236/346/216/245/344/270/216/350/256/244/350/257/201.md +67 -78
- package/_packed_docs/sdk/05-E2EE/345/212/240/345/257/206/351/200/232/344/277/241.md +6 -2
- package/_packed_docs/sdk/06-API/346/211/213/345/206/214.md +87 -41
- package/_packed_docs/sdk/08-/346/234/200/344/275/263/345/256/236/350/267/265.md +18 -5
- package/_packed_docs/sdk/09-group-rpc-manual.md +307 -267
- package/_packed_docs/sdk/09-message-rpc-manual.md +142 -103
- package/_packed_docs/sdk/09-payload-reference.md +1 -1
- package/_packed_docs/sdk/09-stream-rpc-manual.md +8 -8
- package/_packed_docs/sdk/AUN_DOCS_GUIDE.md +26 -17
- package/_packed_docs/sdk/INDEX.md +42 -34
- package/_packed_docs/sdk/README.md +7 -6
- package/_packed_docs//346/266/210/346/201/257/345/220/214/346/255/245/344/270/216/345/216/206/345/217/262/346/213/211/345/217/226/344/273/243/347/240/201/345/256/241/346/237/245/351/227/256/351/242/230/346/270/205/345/215/225.md +229 -0
- package/_packed_docs//346/266/210/346/201/257/345/220/214/346/255/245/344/270/216/345/216/206/345/217/262/346/213/211/345/217/226/346/224/271/351/200/240/346/226/271/346/241/210.md +750 -0
- package/dist/agent-md.js +8 -2
- package/dist/agent-md.js.map +1 -1
- package/dist/aid-store.d.ts +2 -0
- package/dist/aid-store.js +43 -7
- package/dist/aid-store.js.map +1 -1
- package/dist/auth.d.ts +0 -2
- package/dist/auth.js +97 -50
- package/dist/auth.js.map +1 -1
- package/dist/client/delivery.d.ts +70 -7
- package/dist/client/delivery.js +1334 -236
- package/dist/client/delivery.js.map +1 -1
- package/dist/client/group-state.js +25 -22
- package/dist/client/group-state.js.map +1 -1
- package/dist/client/lifecycle.js +46 -3
- package/dist/client/lifecycle.js.map +1 -1
- package/dist/client/mention-mode.d.ts +6 -0
- package/dist/client/mention-mode.js +184 -0
- package/dist/client/mention-mode.js.map +1 -0
- package/dist/client/peers.d.ts +1 -1
- package/dist/client/peers.js +26 -3
- package/dist/client/peers.js.map +1 -1
- package/dist/client/rpc-pipeline.d.ts +20 -1
- package/dist/client/rpc-pipeline.js +332 -73
- package/dist/client/rpc-pipeline.js.map +1 -1
- package/dist/client/v2-e2ee.d.ts +20 -1
- package/dist/client/v2-e2ee.js +625 -105
- package/dist/client/v2-e2ee.js.map +1 -1
- package/dist/client.d.ts +17 -5
- package/dist/client.js +332 -167
- package/dist/client.js.map +1 -1
- package/dist/errors.js +4 -1
- package/dist/errors.js.map +1 -1
- package/dist/facades.d.ts +6 -0
- package/dist/facades.js +196 -80
- package/dist/facades.js.map +1 -1
- package/dist/group-index.d.ts +5 -0
- package/dist/group-index.js +65 -30
- package/dist/group-index.js.map +1 -1
- package/dist/keystore/aid-db.d.ts +12 -0
- package/dist/keystore/aid-db.js +68 -4
- package/dist/keystore/aid-db.js.map +1 -1
- package/dist/keystore/index.d.ts +12 -0
- package/dist/keystore/local-identity-store.d.ts +10 -0
- package/dist/keystore/local-identity-store.js +8 -2
- package/dist/keystore/local-identity-store.js.map +1 -1
- package/dist/keystore/local-token-store.d.ts +10 -0
- package/dist/keystore/local-token-store.js +8 -2
- package/dist/keystore/local-token-store.js.map +1 -1
- package/dist/register-flow.d.ts +0 -1
- package/dist/register-flow.js +96 -38
- package/dist/register-flow.js.map +1 -1
- package/dist/secret-store/file-store.d.ts +3 -14
- package/dist/secret-store/file-store.js +7 -98
- package/dist/secret-store/file-store.js.map +1 -1
- package/dist/secret-store/index.d.ts +1 -4
- package/dist/secret-store/index.js +2 -2
- package/dist/secret-store/index.js.map +1 -1
- package/dist/seq-tracker.d.ts +29 -9
- package/dist/seq-tracker.js +233 -64
- package/dist/seq-tracker.js.map +1 -1
- package/dist/storage/vfs.d.ts +1 -0
- package/dist/storage/vfs.js +28 -4
- package/dist/storage/vfs.js.map +1 -1
- package/dist/tools/cross-sdk-agent.js +360 -8
- package/dist/tools/cross-sdk-agent.js.map +1 -1
- package/dist/transport.d.ts +19 -0
- package/dist/transport.js +197 -14
- package/dist/transport.js.map +1 -1
- package/dist/v2/e2ee/decrypt.js +26 -23
- package/dist/v2/e2ee/decrypt.js.map +1 -1
- package/dist/v2/session/session.js +3 -4
- package/dist/v2/session/session.js.map +1 -1
- package/dist/v2/state/commitment.js +1 -2
- package/dist/v2/state/commitment.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +5 -4
- package/dist/e2ee-group.d.ts +0 -249
- package/dist/e2ee-group.js +0 -1567
- package/dist/e2ee-group.js.map +0 -1
- package/dist/group-resources.d.ts +0 -31
- package/dist/group-resources.js +0 -84
- package/dist/group-resources.js.map +0 -1
- package/dist/keystore/file.d.ts +0 -109
- package/dist/keystore/file.js +0 -772
- package/dist/keystore/file.js.map +0 -1
- package/dist/keystore/sqlite-backup.d.ts +0 -44
- package/dist/keystore/sqlite-backup.js +0 -382
- package/dist/keystore/sqlite-backup.js.map +0 -1
- package/dist/namespaces/auth.d.ts +0 -118
- package/dist/namespaces/auth.js +0 -968
- package/dist/namespaces/auth.js.map +0 -1
- package/dist/namespaces/custody.d.ts +0 -48
- package/dist/namespaces/custody.js +0 -313
- package/dist/namespaces/custody.js.map +0 -1
- package/dist/namespaces/meta.d.ts +0 -76
- package/dist/namespaces/meta.js +0 -490
- package/dist/namespaces/meta.js.map +0 -1
package/dist/errors.js
CHANGED
|
@@ -190,7 +190,10 @@ export function mapRemoteError(error) {
|
|
|
190
190
|
const RATE_LIMIT_CODES = new Set([4290, 429, -32029, -32429]);
|
|
191
191
|
const SESSION_CODES = new Set([-32010, -32011, -32013]);
|
|
192
192
|
const VALIDATION_CODES = new Set([-32600, -32601, -32602, 4000]);
|
|
193
|
-
const
|
|
193
|
+
const messageLower = message.trim().toLowerCase();
|
|
194
|
+
const transientRetryable = isTransientGatewayDegradedError(message)
|
|
195
|
+
|| messageLower.includes('long_connection_already_exists')
|
|
196
|
+
|| messageLower.includes('long connection already exists');
|
|
194
197
|
const opts = { code, data, traceId, retryable: transientRetryable };
|
|
195
198
|
let err;
|
|
196
199
|
if (AUTH_CODES.has(code)) {
|
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
package/dist/facades.d.ts
CHANGED
|
@@ -26,6 +26,7 @@ export declare class MessageFacade extends RpcFacade {
|
|
|
26
26
|
get thought(): MessageThoughtFacade;
|
|
27
27
|
send(params?: FacadeParams): Promise<RpcResult>;
|
|
28
28
|
pull(params?: FacadeParams): Promise<RpcResult>;
|
|
29
|
+
history(params?: FacadeParams): Promise<RpcResult>;
|
|
29
30
|
ack(params?: FacadeParams): Promise<RpcResult>;
|
|
30
31
|
recall(params?: FacadeParams): Promise<RpcResult>;
|
|
31
32
|
queryOnline(params?: FacadeParams): Promise<RpcResult>;
|
|
@@ -54,6 +55,9 @@ export declare class GroupFacade extends RpcFacade {
|
|
|
54
55
|
setRole(params?: FacadeParams): Promise<RpcResult>;
|
|
55
56
|
transferOwner(params?: FacadeParams): Promise<RpcResult>;
|
|
56
57
|
completeTransfer(params?: FacadeParams): Promise<RpcResult>;
|
|
58
|
+
private documentSettingResult;
|
|
59
|
+
getSettingWithIndex(params?: FacadeParams): Promise<RpcResult>;
|
|
60
|
+
updateSettingWithIndex(params?: FacadeParams): Promise<RpcResult>;
|
|
57
61
|
getRules(params?: FacadeParams): Promise<RpcResult>;
|
|
58
62
|
updateRules(params?: FacadeParams): Promise<RpcResult>;
|
|
59
63
|
getAnnouncement(params?: FacadeParams): Promise<RpcResult>;
|
|
@@ -73,6 +77,7 @@ export declare class GroupFacade extends RpcFacade {
|
|
|
73
77
|
unban(params?: FacadeParams): Promise<RpcResult>;
|
|
74
78
|
send(params?: FacadeParams): Promise<RpcResult>;
|
|
75
79
|
pull(params?: FacadeParams): Promise<RpcResult>;
|
|
80
|
+
history(params?: FacadeParams): Promise<RpcResult>;
|
|
76
81
|
recall(params?: FacadeParams): Promise<RpcResult>;
|
|
77
82
|
pullEvents(params?: FacadeParams): Promise<RpcResult>;
|
|
78
83
|
ackMessages(params?: FacadeParams): Promise<RpcResult>;
|
|
@@ -89,6 +94,7 @@ export declare class GroupFacade extends RpcFacade {
|
|
|
89
94
|
updateGroupIndex(params?: FacadeParams): Promise<RpcResult>;
|
|
90
95
|
private getIndexedSettings;
|
|
91
96
|
private hydrateGroupIndexSettings;
|
|
97
|
+
private validateGroupIndexEntries;
|
|
92
98
|
getOnlineMembers(params?: FacadeParams): Promise<RpcResult>;
|
|
93
99
|
}
|
|
94
100
|
export declare class StreamFacade extends RpcFacade {
|
package/dist/facades.js
CHANGED
|
@@ -1,6 +1,20 @@
|
|
|
1
1
|
import { GroupFSVFS } from './group-fs.js';
|
|
2
|
-
import { GROUP_INDEX_KEY, parseGroupIndex, prepareGroupSettingsWithIndex, verifyGroupIndex } from './group-index.js';
|
|
2
|
+
import { GROUP_INDEX_KEY, groupIndexSettingEtag, parseGroupIndex, prepareGroupSettingsWithIndex, verifyGroupIndex, } from './group-index.js';
|
|
3
|
+
import { certMatchesFingerprint } from './cert-utils.js';
|
|
3
4
|
import { validateAIDFormat, validateGroupIDFormat } from './validators.js';
|
|
5
|
+
const INDEXED_DOCUMENT_SETTING_KEY_NAME_RE = /^[A-Za-z][A-Za-z0-9_-]{0,63}$/;
|
|
6
|
+
const INDEXED_DOCUMENT_SETTING_RESERVED_BASES = new Set([
|
|
7
|
+
'join',
|
|
8
|
+
'mention_mode',
|
|
9
|
+
'duty',
|
|
10
|
+
'e2ee',
|
|
11
|
+
'group',
|
|
12
|
+
'group_index',
|
|
13
|
+
'index',
|
|
14
|
+
'name',
|
|
15
|
+
'description',
|
|
16
|
+
'visibility',
|
|
17
|
+
]);
|
|
4
18
|
export function stripNil(params = {}) {
|
|
5
19
|
const out = {};
|
|
6
20
|
for (const [key, value] of Object.entries(params)) {
|
|
@@ -32,6 +46,14 @@ function indexUpdateParams(groupId, settings, merged) {
|
|
|
32
46
|
}
|
|
33
47
|
return out;
|
|
34
48
|
}
|
|
49
|
+
function indexedDocumentKeyName(params) {
|
|
50
|
+
const raw = 'keyName' in params ? params.keyName : params.key_name;
|
|
51
|
+
const keyName = String(raw ?? '').trim();
|
|
52
|
+
if (!keyName || INDEXED_DOCUMENT_SETTING_RESERVED_BASES.has(keyName.toLowerCase()) || !INDEXED_DOCUMENT_SETTING_KEY_NAME_RE.test(keyName)) {
|
|
53
|
+
throw new Error('keyName must match ^[A-Za-z][A-Za-z0-9_-]{0,63}$');
|
|
54
|
+
}
|
|
55
|
+
return keyName;
|
|
56
|
+
}
|
|
35
57
|
class RpcFacade {
|
|
36
58
|
client;
|
|
37
59
|
constructor(client) {
|
|
@@ -71,6 +93,9 @@ export class MessageFacade extends RpcFacade {
|
|
|
71
93
|
pull(params) {
|
|
72
94
|
return this.call('message.pull', params);
|
|
73
95
|
}
|
|
96
|
+
history(params) {
|
|
97
|
+
return this.call('message.history', params);
|
|
98
|
+
}
|
|
74
99
|
ack(params) {
|
|
75
100
|
return this.call('message.ack', params);
|
|
76
101
|
}
|
|
@@ -144,47 +169,84 @@ export class GroupFacade extends RpcFacade {
|
|
|
144
169
|
}
|
|
145
170
|
return this.call('group.complete_transfer', split.params);
|
|
146
171
|
}
|
|
147
|
-
|
|
172
|
+
documentSettingResult(groupId, keyName, settings) {
|
|
173
|
+
const contentKey = `${keyName}.content`;
|
|
174
|
+
const attachmentsKey = `${keyName}.attachments`;
|
|
175
|
+
return {
|
|
176
|
+
group_id: groupId,
|
|
177
|
+
setting: {
|
|
178
|
+
group_id: groupId,
|
|
179
|
+
key_name: keyName,
|
|
180
|
+
content: settings[contentKey] ?? '',
|
|
181
|
+
attachments: settings[attachmentsKey] ?? [],
|
|
182
|
+
updated_by: settings[`${contentKey}.updated_by`] ?? '',
|
|
183
|
+
updated_at: settings[`${contentKey}.updated_at`] ?? 0,
|
|
184
|
+
},
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
async getSettingWithIndex(params) {
|
|
148
188
|
const merged = params || {};
|
|
149
189
|
const groupId = merged.group_id;
|
|
150
190
|
if (!groupId)
|
|
151
191
|
throw new Error('group_id is required');
|
|
152
|
-
const
|
|
153
|
-
|
|
192
|
+
const keyName = indexedDocumentKeyName(merged);
|
|
193
|
+
const { groupId: resultGroupId, settings } = await this.getIndexedSettings(String(groupId), [`${keyName}.content`, `${keyName}.attachments`]);
|
|
194
|
+
return this.documentSettingResult(resultGroupId, keyName, settings);
|
|
154
195
|
}
|
|
155
|
-
async
|
|
196
|
+
async updateSettingWithIndex(params) {
|
|
156
197
|
const merged = params || {};
|
|
157
|
-
const
|
|
198
|
+
const groupId = merged.group_id;
|
|
158
199
|
if (!groupId)
|
|
159
200
|
throw new Error('group_id is required');
|
|
160
|
-
|
|
201
|
+
const keyName = indexedDocumentKeyName(merged);
|
|
202
|
+
if (!('content' in merged))
|
|
161
203
|
throw new Error('content is required');
|
|
162
|
-
const
|
|
163
|
-
|
|
164
|
-
|
|
204
|
+
const content = merged.content;
|
|
205
|
+
const attachments = merged.attachments ?? [];
|
|
206
|
+
const settingsUpdate = { [`${keyName}.content`]: content };
|
|
207
|
+
if ('attachments' in merged)
|
|
208
|
+
settingsUpdate[`${keyName}.attachments`] = attachments;
|
|
165
209
|
const result = await this.updateGroupIndex(indexUpdateParams(groupId, settingsUpdate, merged));
|
|
166
|
-
|
|
210
|
+
const resultGroupId = String(result.group_id ?? groupId);
|
|
211
|
+
return {
|
|
212
|
+
group_id: resultGroupId,
|
|
213
|
+
setting: {
|
|
214
|
+
group_id: resultGroupId,
|
|
215
|
+
key_name: keyName,
|
|
216
|
+
content,
|
|
217
|
+
attachments,
|
|
218
|
+
updated_by: '',
|
|
219
|
+
updated_at: 0,
|
|
220
|
+
},
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
async getRules(params) {
|
|
224
|
+
const merged = params || {};
|
|
225
|
+
const result = await this.getSettingWithIndex({ ...merged, keyName: 'rules' });
|
|
226
|
+
const resultMap = result;
|
|
227
|
+
const setting = result.setting;
|
|
228
|
+
return { group_id: resultMap.group_id, rules: { group_id: setting.group_id, content: setting.content, attachments: setting.attachments, updated_by: setting.updated_by, updated_at: setting.updated_at } };
|
|
229
|
+
}
|
|
230
|
+
async updateRules(params) {
|
|
231
|
+
const merged = params || {};
|
|
232
|
+
const result = await this.updateSettingWithIndex({ ...merged, keyName: 'rules' });
|
|
233
|
+
const resultMap = result;
|
|
234
|
+
const setting = result.setting;
|
|
235
|
+
return { group_id: resultMap.group_id, rules: { group_id: resultMap.group_id, content: setting.content, attachments: setting.attachments } };
|
|
167
236
|
}
|
|
168
237
|
async getAnnouncement(params) {
|
|
169
238
|
const merged = params || {};
|
|
170
|
-
const
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
return { group_id: resultGroupId, announcement: { group_id: resultGroupId, content: settings['announcement.content'] || '', attachments: settings['announcement.attachments'] || [], updated_by: settings['announcement.content.updated_by'] || '', updated_at: settings['announcement.content.updated_at'] || 0 } };
|
|
239
|
+
const result = await this.getSettingWithIndex({ ...merged, keyName: 'announcement' });
|
|
240
|
+
const resultMap = result;
|
|
241
|
+
const setting = result.setting;
|
|
242
|
+
return { group_id: resultMap.group_id, announcement: { group_id: setting.group_id, content: setting.content, attachments: setting.attachments, updated_by: setting.updated_by, updated_at: setting.updated_at } };
|
|
175
243
|
}
|
|
176
244
|
async updateAnnouncement(params) {
|
|
177
245
|
const merged = params || {};
|
|
178
|
-
const
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
throw new Error('content is required');
|
|
183
|
-
const settingsUpdate = { 'announcement.content': content };
|
|
184
|
-
if (attachments !== undefined)
|
|
185
|
-
settingsUpdate['announcement.attachments'] = attachments;
|
|
186
|
-
const result = await this.updateGroupIndex(indexUpdateParams(groupId, settingsUpdate, merged));
|
|
187
|
-
return { group_id: result.group_id, announcement: { group_id: result.group_id, content, attachments: attachments || [] } };
|
|
246
|
+
const result = await this.updateSettingWithIndex({ ...merged, keyName: 'announcement' });
|
|
247
|
+
const resultMap = result;
|
|
248
|
+
const setting = result.setting;
|
|
249
|
+
return { group_id: resultMap.group_id, announcement: { group_id: resultMap.group_id, content: setting.content, attachments: setting.attachments } };
|
|
188
250
|
}
|
|
189
251
|
requestJoin(params) { return this.call('group.request_join', params); }
|
|
190
252
|
listJoinRequests(params) { return this.call('group.list_join_requests', params); }
|
|
@@ -195,8 +257,8 @@ export class GroupFacade extends RpcFacade {
|
|
|
195
257
|
const groupId = merged.group_id;
|
|
196
258
|
if (!groupId)
|
|
197
259
|
throw new Error('group_id is required');
|
|
198
|
-
const { groupId: resultGroupId, settings } = await this.getIndexedSettings(String(groupId), ['join.mode', 'join.question', 'join.auto_approve_patterns', 'join.max_pending']);
|
|
199
|
-
return { group_id: resultGroupId, join_requirements: { group_id: resultGroupId, mode: settings['join.mode'] || 'open', question: settings['join.question'] || '', auto_approve_patterns: settings['join.auto_approve_patterns'] || [], max_pending: settings['join.max_pending'] || 100, updated_by: settings['join.mode.updated_by'] || '', updated_at: settings['join.mode.updated_at'] || 0 } };
|
|
260
|
+
const { groupId: resultGroupId, settings } = await this.getIndexedSettings(String(groupId), ['join.mode', 'join.question', 'join.auto_approve_patterns', 'join.max_pending', 'join.attachments']);
|
|
261
|
+
return { group_id: resultGroupId, join_requirements: { group_id: resultGroupId, mode: settings['join.mode'] || 'open', question: settings['join.question'] || '', auto_approve_patterns: settings['join.auto_approve_patterns'] || [], max_pending: settings['join.max_pending'] || 100, attachments: settings['join.attachments'] || [], updated_by: settings['join.mode.updated_by'] || '', updated_at: settings['join.mode.updated_at'] || 0 } };
|
|
200
262
|
}
|
|
201
263
|
async updateJoinRequirements(params) {
|
|
202
264
|
const merged = params || {};
|
|
@@ -212,10 +274,12 @@ export class GroupFacade extends RpcFacade {
|
|
|
212
274
|
settingsUpdate['join.auto_approve_patterns'] = merged.auto_approve_patterns;
|
|
213
275
|
if ('max_pending' in merged)
|
|
214
276
|
settingsUpdate['join.max_pending'] = merged.max_pending;
|
|
277
|
+
if ('attachments' in merged)
|
|
278
|
+
settingsUpdate['join.attachments'] = merged.attachments;
|
|
215
279
|
if (Object.keys(settingsUpdate).length === 0)
|
|
216
280
|
throw new Error('at least one field to update is required');
|
|
217
281
|
const result = await this.updateGroupIndex(indexUpdateParams(groupId, settingsUpdate, merged));
|
|
218
|
-
return { group_id: result.group_id, join_requirements: { group_id: result.group_id, mode: merged.mode, question: merged.question, auto_approve_patterns: merged.auto_approve_patterns, max_pending: merged.max_pending } };
|
|
282
|
+
return { group_id: result.group_id, join_requirements: { group_id: result.group_id, mode: merged.mode, question: merged.question, auto_approve_patterns: merged.auto_approve_patterns, max_pending: merged.max_pending, attachments: merged.attachments || [] } };
|
|
219
283
|
}
|
|
220
284
|
createInviteCode(params) { return this.call('group.create_invite_code', params); }
|
|
221
285
|
listInviteCodes(params) { return this.call('group.list_invite_codes', params); }
|
|
@@ -232,6 +296,10 @@ export class GroupFacade extends RpcFacade {
|
|
|
232
296
|
validateGroupIDFormat(params?.group_id, 'group_id');
|
|
233
297
|
return this.call('group.pull', params);
|
|
234
298
|
}
|
|
299
|
+
history(params) {
|
|
300
|
+
validateGroupIDFormat(params?.group_id, 'group_id');
|
|
301
|
+
return this.call('group.history', params);
|
|
302
|
+
}
|
|
235
303
|
recall(params) { return this.call('group.recall', params); }
|
|
236
304
|
pullEvents(params) { return this.call('group.pull_events', params); }
|
|
237
305
|
ackMessages(params) { return this.call('group.ack_messages', params); }
|
|
@@ -280,7 +348,10 @@ export class GroupFacade extends RpcFacade {
|
|
|
280
348
|
if (!groupId)
|
|
281
349
|
throw new Error('group_id is required');
|
|
282
350
|
const result = await this.getSettings({ group_id: groupId, keys: [GROUP_INDEX_KEY] });
|
|
283
|
-
const
|
|
351
|
+
const resultMap = result;
|
|
352
|
+
const groupAid = String(resultMap.group_aid ?? '').trim();
|
|
353
|
+
if (!groupAid)
|
|
354
|
+
throw new Error('group.get_settings response group_aid is required');
|
|
284
355
|
let groupIndex = null;
|
|
285
356
|
for (const item of result.settings ?? []) {
|
|
286
357
|
if (item?.key !== GROUP_INDEX_KEY)
|
|
@@ -289,18 +360,15 @@ export class GroupFacade extends RpcFacade {
|
|
|
289
360
|
break;
|
|
290
361
|
}
|
|
291
362
|
if (!groupIndex) {
|
|
292
|
-
return { group_id:
|
|
363
|
+
return { group_id: resultMap.group_id, group_aid: groupAid, group_index: null, meta: {}, entries: [], settings: {} };
|
|
293
364
|
}
|
|
294
365
|
const parsed = parseGroupIndex(groupIndex);
|
|
295
|
-
|
|
366
|
+
this.validateGroupIndexEntries(parsed.entries);
|
|
367
|
+
await this.verifyPulledGroupIndex(groupId, groupAid, groupIndex, parsed);
|
|
296
368
|
const etag = String(parsed.meta.etag ?? '');
|
|
297
369
|
const settings = await this.hydrateGroupIndexSettings(groupId, groupAid, parsed.entries, etag, groupIndex);
|
|
298
|
-
const clientAny = this.client;
|
|
299
|
-
if (etag && typeof clientAny.markGroupIndexFresh === 'function') {
|
|
300
|
-
clientAny.markGroupIndexFresh(groupAid, { etag });
|
|
301
|
-
}
|
|
302
370
|
return {
|
|
303
|
-
group_id:
|
|
371
|
+
group_id: resultMap.group_id,
|
|
304
372
|
group_aid: groupAid,
|
|
305
373
|
group_index: groupIndex,
|
|
306
374
|
meta: parsed.meta,
|
|
@@ -308,14 +376,29 @@ export class GroupFacade extends RpcFacade {
|
|
|
308
376
|
settings: settings,
|
|
309
377
|
};
|
|
310
378
|
}
|
|
311
|
-
async verifyPulledGroupIndex(groupIndex, parsed) {
|
|
379
|
+
async verifyPulledGroupIndex(groupId, groupAid, groupIndex, parsed) {
|
|
380
|
+
if (String(parsed.meta?.group_aid ?? '').trim() !== groupAid) {
|
|
381
|
+
throw new Error('group.index group_aid does not match group.get_settings response');
|
|
382
|
+
}
|
|
312
383
|
const signedBy = String(parsed.meta?.signed_by ?? '').trim();
|
|
313
384
|
if (!signedBy)
|
|
314
385
|
throw new Error('group.index signed_by is required');
|
|
386
|
+
const certFingerprint = String(parsed.meta?.cert_fingerprint ?? '').trim();
|
|
315
387
|
const clientAny = this.client;
|
|
316
|
-
|
|
388
|
+
const currentAid = clientAny.currentAid;
|
|
389
|
+
let signer = currentAid?.aid === signedBy && !certFingerprint ? currentAid : null;
|
|
390
|
+
if (currentAid?.aid === signedBy && certFingerprint) {
|
|
391
|
+
try {
|
|
392
|
+
if (typeof currentAid.certPem === 'string' && currentAid.certPem && certMatchesFingerprint(currentAid.certPem, certFingerprint)) {
|
|
393
|
+
signer = currentAid;
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
catch {
|
|
397
|
+
signer = null;
|
|
398
|
+
}
|
|
399
|
+
}
|
|
317
400
|
if (!signer && typeof clientAny.lookupPeer === 'function') {
|
|
318
|
-
signer = await clientAny.lookupPeer(signedBy);
|
|
401
|
+
signer = await clientAny.lookupPeer(signedBy, certFingerprint || undefined);
|
|
319
402
|
}
|
|
320
403
|
if (!signer)
|
|
321
404
|
throw new Error(`group.index signer is unavailable: ${signedBy}`);
|
|
@@ -324,6 +407,14 @@ export class GroupFacade extends RpcFacade {
|
|
|
324
407
|
throw new Error(verified.error.message || 'group.index verification failed');
|
|
325
408
|
if (!verified.data.valid)
|
|
326
409
|
throw new Error(`group.index verification failed: ${verified.data.reason || 'invalid signature'}`);
|
|
410
|
+
const adminsResult = await this.call('group.get_admins', { group_id: groupId });
|
|
411
|
+
const adminsMap = adminsResult;
|
|
412
|
+
if (String(adminsMap.group_aid ?? '').trim() !== groupAid) {
|
|
413
|
+
throw new Error('group.get_admins response group_aid does not match group.get_settings response');
|
|
414
|
+
}
|
|
415
|
+
const authorized = Array.isArray(adminsMap.admins) && adminsMap.admins.some((item) => String(item?.aid ?? '').trim() === signedBy && ['owner', 'admin'].includes(String(item?.role ?? '').trim().toLowerCase()));
|
|
416
|
+
if (!authorized)
|
|
417
|
+
throw new Error(`group.index signer is not a current owner or admin: ${signedBy}`);
|
|
327
418
|
}
|
|
328
419
|
async updateGroupIndex(params) {
|
|
329
420
|
const merged = stripNil(params ?? {});
|
|
@@ -341,18 +432,13 @@ export class GroupFacade extends RpcFacade {
|
|
|
341
432
|
const maxAttempts = Math.max(1, Math.trunc(Number(merged.max_attempts ?? 2)));
|
|
342
433
|
let lastError = null;
|
|
343
434
|
for (let attempt = 0; attempt < maxAttempts; attempt++) {
|
|
344
|
-
const current = await this.
|
|
345
|
-
const groupAid = String(current.group_aid ??
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
currentIndex = item.value;
|
|
352
|
-
if (currentIndex)
|
|
353
|
-
expectedEtag = String(parseGroupIndex(currentIndex).meta.etag ?? '');
|
|
354
|
-
break;
|
|
355
|
-
}
|
|
435
|
+
const current = await this.getGroupIndex({ group_id: groupId });
|
|
436
|
+
const groupAid = String(current.group_aid ?? '').trim();
|
|
437
|
+
const currentIndex = current.group_index ?? null;
|
|
438
|
+
const expectedEtag = currentIndex ? String(parseGroupIndex(currentIndex).meta.etag ?? '') : '';
|
|
439
|
+
const baseSettings = current.settings && typeof current.settings === 'object' && !Array.isArray(current.settings)
|
|
440
|
+
? current.settings
|
|
441
|
+
: {};
|
|
356
442
|
const signedSettings = prepareGroupSettingsWithIndex({
|
|
357
443
|
groupAid,
|
|
358
444
|
settings: settings,
|
|
@@ -368,12 +454,13 @@ export class GroupFacade extends RpcFacade {
|
|
|
368
454
|
});
|
|
369
455
|
const pushedEtag = String(parseGroupIndex(signedSettings[GROUP_INDEX_KEY]).meta.etag ?? '');
|
|
370
456
|
const clientAny = this.client;
|
|
371
|
-
if (pushedEtag && typeof clientAny.markGroupIndexFresh === 'function') {
|
|
372
|
-
clientAny.markGroupIndexFresh(groupAid, { etag: pushedEtag });
|
|
373
|
-
}
|
|
374
457
|
if (typeof clientAny.cacheGroupIndexSettings === 'function') {
|
|
375
458
|
const parsed = parseGroupIndex(signedSettings[GROUP_INDEX_KEY]);
|
|
376
|
-
clientAny.cacheGroupIndexSettings(groupAid,
|
|
459
|
+
clientAny.cacheGroupIndexSettings(groupAid, { ...baseSettings, ...settings }, {
|
|
460
|
+
entries: parsed.entries,
|
|
461
|
+
etag: pushedEtag,
|
|
462
|
+
groupIndex: signedSettings[GROUP_INDEX_KEY],
|
|
463
|
+
});
|
|
377
464
|
}
|
|
378
465
|
return result;
|
|
379
466
|
}
|
|
@@ -394,42 +481,71 @@ export class GroupFacade extends RpcFacade {
|
|
|
394
481
|
if (cached && typeof cached === 'object')
|
|
395
482
|
return { groupId, settings: cached };
|
|
396
483
|
}
|
|
397
|
-
const result = await this.
|
|
484
|
+
const result = await this.getGroupIndex({ group_id: groupId });
|
|
398
485
|
const resultMap = result;
|
|
399
|
-
const
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
486
|
+
const allSettings = resultMap.settings && typeof resultMap.settings === 'object' && !Array.isArray(resultMap.settings)
|
|
487
|
+
? resultMap.settings
|
|
488
|
+
: {};
|
|
489
|
+
const settings = Object.fromEntries(keys.filter((key) => key in allSettings).map((key) => [key, allSettings[key]]));
|
|
490
|
+
const groupAid = String(resultMap.group_aid ?? '').trim();
|
|
491
|
+
if (groupAid && groupAid !== groupId && typeof clientAny.cacheGroupIndexSettings === 'function' && resultMap.group_index) {
|
|
492
|
+
clientAny.cacheGroupIndexSettings(groupId, allSettings, {
|
|
493
|
+
entries: resultMap.entries,
|
|
494
|
+
etag: String(resultMap.meta?.etag ?? ''),
|
|
495
|
+
groupIndex: resultMap.group_index,
|
|
496
|
+
});
|
|
406
497
|
}
|
|
407
498
|
return { groupId: String(resultMap.group_id ?? groupId), settings };
|
|
408
499
|
}
|
|
409
500
|
async hydrateGroupIndexSettings(groupId, groupAid, entries, etag, groupIndex = null) {
|
|
410
|
-
const keys = entries
|
|
411
|
-
.filter((item) => String(item.source ?? 'db') === 'db' && String(item.key ?? ''))
|
|
412
|
-
.map((item) => String(item.key));
|
|
413
|
-
if (keys.length === 0)
|
|
414
|
-
return {};
|
|
501
|
+
const keys = entries.map((item) => String(item.key));
|
|
415
502
|
const clientAny = this.client;
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
const
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
503
|
+
const settings = {};
|
|
504
|
+
if (keys.length > 0) {
|
|
505
|
+
const fetchedResult = await this.getSettings({ group_id: groupId, keys });
|
|
506
|
+
const fetchedMap = fetchedResult;
|
|
507
|
+
if (String(fetchedMap.group_aid ?? '').trim() !== groupAid) {
|
|
508
|
+
throw new Error('group settings response group_aid does not match verified group.index');
|
|
509
|
+
}
|
|
510
|
+
const seen = new Set();
|
|
511
|
+
for (const item of fetchedMap.settings ?? []) {
|
|
512
|
+
const key = String(item?.key ?? '').trim();
|
|
513
|
+
if (!key || seen.has(key))
|
|
514
|
+
throw new Error(`group settings response contains duplicate or empty key: ${key}`);
|
|
515
|
+
seen.add(key);
|
|
516
|
+
settings[key] = item?.value;
|
|
517
|
+
}
|
|
518
|
+
for (const entry of entries) {
|
|
519
|
+
const key = String(entry.key);
|
|
520
|
+
if (!seen.has(key))
|
|
521
|
+
throw new Error(`group.index setting is missing: ${key}`);
|
|
522
|
+
if (groupIndexSettingEtag(settings[key]) !== String(entry.etag)) {
|
|
523
|
+
throw new Error(`group.index setting etag mismatch: ${key}`);
|
|
524
|
+
}
|
|
525
|
+
}
|
|
426
526
|
}
|
|
427
|
-
const settings = { ...cached, ...fetched };
|
|
428
527
|
if (typeof clientAny.cacheGroupIndexSettings === 'function') {
|
|
429
528
|
clientAny.cacheGroupIndexSettings(groupAid, settings, { entries, etag, groupIndex });
|
|
430
529
|
}
|
|
431
530
|
return settings;
|
|
432
531
|
}
|
|
532
|
+
validateGroupIndexEntries(entries) {
|
|
533
|
+
const seen = new Set();
|
|
534
|
+
for (const entry of entries) {
|
|
535
|
+
const key = String(entry?.key ?? '').trim();
|
|
536
|
+
const source = String(entry?.source ?? '').trim();
|
|
537
|
+
const etag = String(entry?.etag ?? '').trim();
|
|
538
|
+
if (!key)
|
|
539
|
+
throw new Error('group.index entry key is required');
|
|
540
|
+
if (seen.has(key))
|
|
541
|
+
throw new Error(`group.index contains duplicate key: ${key}`);
|
|
542
|
+
if (source !== 'db')
|
|
543
|
+
throw new Error(`group.index entry source is unsupported: ${source || '<empty>'}`);
|
|
544
|
+
if (!etag)
|
|
545
|
+
throw new Error(`group.index entry etag is required: ${key}`);
|
|
546
|
+
seen.add(key);
|
|
547
|
+
}
|
|
548
|
+
}
|
|
433
549
|
getOnlineMembers(params) { return this.call('group.get_online_members', params); }
|
|
434
550
|
}
|
|
435
551
|
export class StreamFacade extends RpcFacade {
|
package/dist/facades.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"facades.js","sourceRoot":"","sources":["../src/facades.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,6BAA6B,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAErH,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAW3E,MAAM,UAAU,QAAQ,CAAC,SAAuB,EAAE;IAChD,MAAM,GAAG,GAAiB,EAAE,CAAC;IAC7B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;YAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAC9D,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,aAAa,CAAC,MAAqB;IAC1C,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IACnC,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,SAAS,CAAC;IAC/C,OAAO,GAAG,CAAC,QAAQ,CAAC;IACpB,OAAO,GAAG,CAAC,SAAS,CAAC;IACrB,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;AACnC,CAAC;AAED,kDAAkD;AAClD,SAAS,aAAa,CAAC,MAAiB;IACtC,MAAM,QAAQ,GAAwB,EAAE,CAAC;IACzC,KAAK,MAAM,CAAC,IAAK,MAAc,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;QAC/C,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;IAC5B,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAgB,EAAE,QAA6B,EAAE,MAA2B;IACrG,MAAM,GAAG,GAAwB,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;IACjE,KAAK,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,eAAe,EAAE,cAAc,CAAC,EAAE,CAAC;QAC9D,IAAI,GAAG,IAAI,MAAM;YAAE,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAe,SAAS;IACH,MAAM,CAAkB;IAE3C,YAAY,MAAuB;QACjC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAES,IAAI,CAAC,MAAc,EAAE,MAAqB;QAClD,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IACpD,CAAC;CACF;AAED,MAAM,OAAO,oBAAqB,SAAQ,SAAS;IACjD,GAAG,CAAC,MAAqB;QACvB,IAAI,MAAM,EAAE,EAAE,EAAE,CAAC;YACf,iBAAiB,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;IAClD,CAAC;IAED,GAAG,CAAC,MAAqB;QACvB,IAAI,MAAM,EAAE,UAAU,EAAE,CAAC;YACvB,iBAAiB,CAAC,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;IAClD,CAAC;CACF;AAED,MAAM,OAAO,aAAc,SAAQ,SAAS;IAClC,QAAQ,CAAwB;IAExC,IAAI,OAAO;QACT,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1E,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,IAAI,CAAC,MAAqB;QACxB,IAAI,MAAM,EAAE,EAAE,EAAE,CAAC;YACf,iBAAiB,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED,IAAI,CAAC,MAAqB;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED,GAAG,CAAC,MAAqB;QACvB,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,CAAC,MAAqB;QAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED,WAAW,CAAC,MAAqB;QAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC;IACnD,CAAC;CACF;AAGD,MAAM,OAAO,kBAAmB,SAAQ,SAAS;IAC/C,GAAG,CAAC,MAAqB;QACvB,IAAI,MAAM,EAAE,QAAQ,EAAE,CAAC;YACrB,qBAAqB,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;IAChD,CAAC;IAED,GAAG,CAAC,MAAqB;QACvB,IAAI,MAAM,EAAE,UAAU,EAAE,CAAC;YACvB,iBAAiB,CAAC,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,MAAM,EAAE,QAAQ,EAAE,CAAC;YACrB,qBAAqB,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;IAChD,CAAC;CACF;AAED,MAAM,OAAO,WAAY,SAAQ,SAAS;IAChC,GAAG,CAAc;IACjB,QAAQ,CAAsB;IAEtC,IAAI,EAAE;QACJ,IAAI,CAAC,IAAI,CAAC,GAAG;YAAE,IAAI,CAAC,GAAG,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;IAED,IAAI,OAAO;QACT,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxE,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,MAAM,CAAC,MAAqB;QAC1B,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;QACrC,IAAI,KAAK,CAAC,UAAU,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;YACtE,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,CAAC,MAAqB,IAAwB,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAClG,YAAY,CAAC,MAAqB,IAAwB,OAAO,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAC7G,aAAa,CAAC,MAAqB,IAAwB,OAAO,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAC/G,OAAO,CAAC,MAAqB,IAAwB,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAClG,MAAM,CAAC,MAAqB,IAAwB,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAC/F,IAAI,CAAC,MAAqB,IAAwB,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAC3F,MAAM,CAAC,MAAqB,IAAwB,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAChG,UAAU,CAAC,MAAqB,IAAwB,OAAO,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IACxG,SAAS,CAAC,MAAqB,IAAwB,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IACtG,KAAK,CAAC,MAAqB,IAAwB,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAC7F,IAAI,CAAC,MAAqB,IAAwB,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAC3F,OAAO,CAAC,MAAqB,IAAwB,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAClG,aAAa,CAAC,MAAqB;QACjC,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,KAAK,CAAC,QAAQ,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,kBAAkB,KAAK,UAAU,EAAE,CAAC;YAC3E,OAAO,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QACpF,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACzD,CAAC;IACD,gBAAgB,CAAC,MAAqB;QACpC,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,KAAK,CAAC,QAAQ,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,qBAAqB,KAAK,UAAU,EAAE,CAAC;YAC9E,OAAO,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QACvF,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAAqB;QAClC,MAAM,MAAM,GAAG,MAAM,IAAI,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACtD,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAC,CAAC;QACpI,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,QAAQ,CAAC,mBAAmB,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,QAAQ,CAAC,0BAA0B,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,QAAQ,CAAC,0BAA0B,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;IACpR,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAAqB;QACrC,MAAM,MAAM,GAAG,MAAM,IAAI,EAAE,CAAC;QAC5B,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;QAC3D,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACtD,IAAI,OAAO,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAClE,MAAM,cAAc,GAAwB,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC;QACzE,IAAI,WAAW,KAAK,SAAS;YAAE,cAAc,CAAC,mBAAmB,CAAC,GAAG,WAAW,CAAC;QACjF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;QAC/F,OAAO,EAAE,QAAQ,EAAG,MAA8B,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAG,MAA8B,CAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,IAAI,EAAE,EAAE,EAAE,CAAC;IACxK,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,MAAqB;QACzC,MAAM,MAAM,GAAG,MAAM,IAAI,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACtD,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,sBAAsB,EAAE,0BAA0B,CAAC,CAAC,CAAC;QAClJ,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,QAAQ,CAAC,sBAAsB,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,QAAQ,CAAC,0BAA0B,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,QAAQ,CAAC,iCAAiC,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,QAAQ,CAAC,iCAAiC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;IACvT,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,MAAqB;QAC5C,MAAM,MAAM,GAAG,MAAM,IAAI,EAAE,CAAC;QAC5B,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;QAC3D,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACtD,IAAI,OAAO,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAClE,MAAM,cAAc,GAAwB,EAAE,sBAAsB,EAAE,OAAO,EAAE,CAAC;QAChF,IAAI,WAAW,KAAK,SAAS;YAAE,cAAc,CAAC,0BAA0B,CAAC,GAAG,WAAW,CAAC;QACxF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;QAC/F,OAAO,EAAE,QAAQ,EAAG,MAA8B,CAAC,QAAQ,EAAE,YAAY,EAAE,EAAE,QAAQ,EAAG,MAA8B,CAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,IAAI,EAAE,EAAE,EAAE,CAAC;IAC/K,CAAC;IAED,WAAW,CAAC,MAAqB,IAAwB,OAAO,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAC1G,gBAAgB,CAAC,MAAqB,IAAwB,OAAO,IAAI,CAAC,IAAI,CAAC,0BAA0B,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IACrH,iBAAiB,CAAC,MAAqB,IAAwB,OAAO,IAAI,CAAC,IAAI,CAAC,2BAA2B,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IACvH,sBAAsB,CAAC,MAAqB,IAAwB,OAAO,IAAI,CAAC,IAAI,CAAC,iCAAiC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAElI,KAAK,CAAC,mBAAmB,CAAC,MAAqB;QAC7C,MAAM,MAAM,GAAG,MAAM,IAAI,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACtD,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,WAAW,EAAE,eAAe,EAAE,4BAA4B,EAAE,kBAAkB,CAAC,CAAC,CAAC;QAC9K,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,iBAAiB,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,CAAC,WAAW,CAAC,IAAI,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE,EAAE,qBAAqB,EAAE,QAAQ,CAAC,4BAA4B,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,QAAQ,CAAC,kBAAkB,CAAC,IAAI,GAAG,EAAE,UAAU,EAAE,QAAQ,CAAC,sBAAsB,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,QAAQ,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;IACrY,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,MAAqB;QAChD,MAAM,MAAM,GAAG,MAAM,IAAI,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACtD,MAAM,cAAc,GAAwB,EAAE,CAAC;QAC/C,IAAI,MAAM,IAAI,MAAM;YAAE,cAAc,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC;QAChE,IAAI,UAAU,IAAI,MAAM;YAAE,cAAc,CAAC,eAAe,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC5E,IAAI,uBAAuB,IAAI,MAAM;YAAE,cAAc,CAAC,4BAA4B,CAAC,GAAG,MAAM,CAAC,qBAAqB,CAAC;QACnH,IAAI,aAAa,IAAI,MAAM;YAAE,cAAc,CAAC,kBAAkB,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC;QACrF,IAAI,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC1G,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;QAC/F,OAAO,EAAE,QAAQ,EAAG,MAA8B,CAAC,QAAQ,EAAE,iBAAiB,EAAE,EAAE,QAAQ,EAAG,MAA8B,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,qBAAqB,EAAE,MAAM,CAAC,qBAAqB,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC;IAC/Q,CAAC;IAED,gBAAgB,CAAC,MAAqB,IAAwB,OAAO,IAAI,CAAC,IAAI,CAAC,0BAA0B,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IACrH,eAAe,CAAC,MAAqB,IAAwB,OAAO,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IACnH,aAAa,CAAC,MAAqB,IAAwB,OAAO,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAC/G,gBAAgB,CAAC,MAAqB,IAAwB,OAAO,IAAI,CAAC,IAAI,CAAC,0BAA0B,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IACrH,UAAU,CAAC,MAAqB,IAAwB,OAAO,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IACxG,GAAG,CAAC,MAAqB,IAAwB,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IACzF,KAAK,CAAC,MAAqB,IAAwB,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAC7F,IAAI,CAAC,MAAqB;QACxB,qBAAqB,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC;IACD,IAAI,CAAC,MAAqB;QACxB,qBAAqB,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC;IACD,MAAM,CAAC,MAAqB,IAAwB,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAC/F,UAAU,CAAC,MAAqB,IAAwB,OAAO,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IACxG,WAAW,CAAC,MAAqB,IAAwB,OAAO,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAC1G,SAAS,CAAC,MAAqB,IAAwB,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IACtG,MAAM,CAAC,MAAqB,IAAwB,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAC/F,OAAO,CAAC,MAAqB,IAAwB,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IACjG,MAAM,CAAC,MAAqB,IAAwB,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAC/F,QAAQ,CAAC,MAAqB,IAAwB,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IACnG,WAAW,CAAC,MAAqB,IAAwB,OAAO,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAC1G,WAAW,CAAC,MAAqB,IAAwB,OAAO,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAE1G,KAAK,CAAC,eAAe,CAAC,MAAqB;QACzC,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;QACtC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC1E,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QACxD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAa,CAAC;QACrC,MAAM,KAAK,GAAG,OAAO,SAAS,CAAC,iBAAiB,KAAK,UAAU;YAC7D,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YAChD,CAAC,CAAC,KAAK,CAAC;QACV,MAAM,UAAU,GAAG,OAAO,SAAS,CAAC,uBAAuB,KAAK,UAAU;YACxE,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,QAAQ,CAAC,IAAI,EAAE;YACnD,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC,sBAAsB,KAAK,UAAU;YACtE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,sBAAsB,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC1D,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;QAClD,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;QACtC,MAAM,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;QACxC,MAAM,MAAM,GAAG,UAAU,IAAI,WAAW,IAAI,SAAS,KAAK,UAAU,CAAC;QACrE,OAAO;YACL,SAAS,EAAE,QAAQ;YACnB,WAAW,EAAE,UAAU;YACvB,YAAY,EAAE,WAAW;YACzB,UAAU,EAAE,SAAS;YACrB,WAAW,EAAE,UAAU;YACvB,OAAO,EAAE,MAAM;YACf,YAAY,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,CAAC;YACxD,aAAa,EAAE,UAAU,EAAE,aAAa;YACxC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;YAC/B,MAAM,EAAE,IAAI;SACb,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,MAAqB;QACvC,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;QACtC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACrD,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QACtF,MAAM,QAAQ,GAAG,MAAM,CAAE,MAA8B,CAAC,SAAS,IAAI,OAAO,CAAC,CAAC;QAC9E,IAAI,UAAU,GAAQ,IAAI,CAAC;QAC3B,KAAK,MAAM,IAAI,IAAK,MAA8B,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;YAClE,IAAI,IAAI,EAAE,GAAG,KAAK,eAAe;gBAAE,SAAS;YAC5C,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;YACxB,MAAM;QACR,CAAC;QACD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,EAAE,QAAQ,EAAG,MAA8B,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QAC/H,CAAC;QACD,MAAM,MAAM,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;QAC3C,MAAM,IAAI,CAAC,sBAAsB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAc,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;QAClH,MAAM,SAAS,GAAG,IAAI,CAAC,MAAa,CAAC;QACrC,IAAI,IAAI,IAAI,OAAO,SAAS,CAAC,mBAAmB,KAAK,UAAU,EAAE,CAAC;YAChE,SAAS,CAAC,mBAAmB,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QACpD,CAAC;QACD,OAAO;YACL,QAAQ,EAAG,MAA8B,CAAC,QAAQ;YAClD,SAAS,EAAE,QAAQ;YACnB,WAAW,EAAE,UAAU;YACvB,IAAI,EAAE,MAAM,CAAC,IAA4B;YACzC,OAAO,EAAE,MAAM,CAAC,OAA+B;YAC/C,QAAQ,EAAE,QAAqB;SAChC,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAAC,UAAmB,EAAE,MAA0E;QAClI,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7D,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACpE,MAAM,SAAS,GAAG,IAAI,CAAC,MAAa,CAAC;QACrC,IAAI,MAAM,GAAG,SAAS,CAAC,UAAU,EAAE,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;QAClF,IAAI,CAAC,MAAM,IAAI,OAAO,SAAS,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;YAC1D,MAAM,GAAG,MAAM,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,QAAQ,EAAE,CAAC,CAAC;QAC/E,MAAM,QAAQ,GAAG,gBAAgB,CAAC,UAAiB,EAAE,MAAM,CAAC,CAAC;QAC7D,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,IAAI,iCAAiC,CAAC,CAAC;QAC/F,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,QAAQ,CAAC,IAAI,CAAC,MAAM,IAAI,mBAAmB,EAAE,CAAC,CAAC;IAC/H,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,MAAqB;QAC1C,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;QACtC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACrD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACtD,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,QAAmC,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1I,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACzD,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAK,IAAI,CAAC,MAAc,CAAC,UAAU,CAAC;QAChE,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACnD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC5E,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAE9E,IAAI,SAAS,GAAY,IAAI,CAAC;QAC9B,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC;YACvD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;YACvF,MAAM,QAAQ,GAAG,MAAM,CAAE,OAA+B,CAAC,SAAS,IAAI,OAAO,CAAC,CAAC;YAC/E,IAAI,YAAY,GAAY,IAAI,CAAC;YACjC,IAAI,YAAY,GAAG,EAAE,CAAC;YACtB,KAAK,MAAM,IAAI,IAAK,OAA+B,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;gBACnE,IAAI,IAAI,EAAE,GAAG,KAAK,eAAe;oBAAE,SAAS;gBAC5C,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;gBAC1B,IAAI,YAAY;oBAAE,YAAY,GAAG,MAAM,CAAC,eAAe,CAAC,YAAmB,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;gBAC9F,MAAM;YACR,CAAC;YACD,MAAM,cAAc,GAAG,6BAA6B,CAAC;gBACnD,QAAQ;gBACR,QAAQ,EAAE,QAAmC;gBAC7C,MAAM,EAAE,MAAa;gBACrB,YAAY;gBACZ,SAAS,EAAE,YAAmB;aAC/B,CAAC,CAAC;YACH,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC;oBACpC,QAAQ,EAAE,OAAO;oBACjB,QAAQ,EAAE,cAA2B;oBACrC,mBAAmB,EAAE,YAAY;iBAClC,CAAC,CAAC;gBACH,MAAM,UAAU,GAAG,MAAM,CAAC,eAAe,CAAE,cAA0C,CAAC,eAAe,CAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;gBAChI,MAAM,SAAS,GAAG,IAAI,CAAC,MAAa,CAAC;gBACrC,IAAI,UAAU,IAAI,OAAO,SAAS,CAAC,mBAAmB,KAAK,UAAU,EAAE,CAAC;oBACtE,SAAS,CAAC,mBAAmB,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;gBAChE,CAAC;gBACD,IAAI,OAAO,SAAS,CAAC,uBAAuB,KAAK,UAAU,EAAE,CAAC;oBAC5D,MAAM,MAAM,GAAG,eAAe,CAAE,cAA0C,CAAC,eAAe,CAAQ,CAAC,CAAC;oBACpG,SAAS,CAAC,uBAAuB,CAAC,QAAQ,EAAE,QAAmC,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;gBAC/K,CAAC;gBACD,OAAO,MAAM,CAAC;YAChB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,MAAM,CAAE,GAAa,EAAE,OAAO,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC;oBAAE,MAAM,GAAG,CAAC;gBACjF,SAAS,GAAG,GAAG,CAAC;YAClB,CAAC;QACH,CAAC;QACD,IAAI,SAAS;YAAE,MAAM,SAAS,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,OAAe,EAAE,IAAc;QAC9D,MAAM,SAAS,GAAG,IAAI,CAAC,MAAa,CAAC;QACrC,IAAI,OAAO,SAAS,CAAC,2BAA2B,KAAK,UAAU,EAAE,CAAC;YAChE,MAAM,MAAM,GAAG,SAAS,CAAC,2BAA2B,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACpE,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;gBAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;QACjF,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACnE,MAAM,SAAS,GAAG,MAA6B,CAAC;QAChD,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,OAAO,SAAS,CAAC,uBAAuB,KAAK,UAAU,EAAE,CAAC;YAC5D,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,SAAS,IAAI,OAAO,CAAC,CAAC;YACxD,SAAS,CAAC,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACtD,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;gBACzB,SAAS,CAAC,uBAAuB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,IAAI,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC;IACtE,CAAC;IAEO,KAAK,CAAC,yBAAyB,CACrC,OAAe,EACf,QAAgB,EAChB,OAAmC,EACnC,IAAY,EACZ,aAAsB,IAAI;QAE1B,MAAM,IAAI,GAAG,OAAO;aACjB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;aAChF,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACnC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACjC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAa,CAAC;QACrC,IAAI,MAAM,GAAwB,EAAE,CAAC;QACrC,IAAI,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;QACxB,IAAI,OAAO,SAAS,CAAC,oCAAoC,KAAK,UAAU,EAAE,CAAC;YACzE,MAAM,KAAK,GAAG,SAAS,CAAC,oCAAoC,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YACtF,MAAM,GAAG,EAAE,GAAG,CAAC,KAAK,EAAE,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC;YACtC,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACpE,CAAC;QACD,IAAI,OAAO,GAAwB,EAAE,CAAC;QACtC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,GAAG,aAAa,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;QACxF,CAAC;QACD,MAAM,QAAQ,GAAG,EAAE,GAAG,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC;QAC3C,IAAI,OAAO,SAAS,CAAC,uBAAuB,KAAK,UAAU,EAAE,CAAC;YAC5D,SAAS,CAAC,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;QACvF,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,gBAAgB,CAAC,MAAqB,IAAwB,OAAO,IAAI,CAAC,IAAI,CAAC,0BAA0B,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;CACtH;AAED,MAAM,OAAO,YAAa,SAAQ,SAAS;IACzC,MAAM,CAAC,MAAqB;QAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,MAAqB;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,CAAC,MAAqB;QAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;IAC9C,CAAC;IAED,UAAU,CAAC,MAAqB;QAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;IACjD,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"facades.js","sourceRoot":"","sources":["../src/facades.ts"],"names":[],"mappings":"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"}
|