@awiki/dsh-plugin 0.3.4 → 0.3.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.
Files changed (88) hide show
  1. package/README.md +60 -51
  2. package/README.zh.md +51 -43
  3. package/cordis.patch.yml +7 -21
  4. package/lib/client.js +785 -1308
  5. package/lib/client.js.map +1 -1
  6. package/lib/index.js +715 -1017
  7. package/lib/provider.js +16 -52
  8. package/lib/{sdk-adapter-BeJakxLP.mjs → sdk-adapter--trNlr-T.mjs} +38 -143
  9. package/lib/typert.host.js +139 -414
  10. package/lib/typert.remote-client.d.ts +5 -19
  11. package/lib/typert.remote-client.d.ts.map +1 -1
  12. package/lib/typert.remote-client.js +139 -414
  13. package/lib/types/client/AwikiIdentityAccess.d.ts +5 -6
  14. package/lib/types/client/AwikiIdentityAccess.d.ts.map +1 -1
  15. package/lib/types/client/AwikiIdentityAccess.js +27 -88
  16. package/lib/types/client/AwikiIdentityAccess.js.map +1 -1
  17. package/lib/types/client/AwikiMail.d.ts +1 -1
  18. package/lib/types/client/AwikiMail.d.ts.map +1 -1
  19. package/lib/types/client/AwikiMail.js +130 -6
  20. package/lib/types/client/AwikiMail.js.map +1 -1
  21. package/lib/types/client/AwikiOverlay.d.ts.map +1 -1
  22. package/lib/types/client/AwikiOverlay.js +3 -4
  23. package/lib/types/client/AwikiOverlay.js.map +1 -1
  24. package/lib/types/client/controller.d.ts +11 -20
  25. package/lib/types/client/controller.d.ts.map +1 -1
  26. package/lib/types/client/controller.js +48 -53
  27. package/lib/types/client/controller.js.map +1 -1
  28. package/lib/types/client/index.d.ts.map +1 -1
  29. package/lib/types/client/index.js +2 -8
  30. package/lib/types/client/index.js.map +1 -1
  31. package/lib/types/client/mail-attachment.d.ts +40 -0
  32. package/lib/types/client/mail-attachment.d.ts.map +1 -0
  33. package/lib/types/client/mail-attachment.js +186 -0
  34. package/lib/types/client/mail-attachment.js.map +1 -0
  35. package/lib/types/client/settings-locales.js +8 -8
  36. package/lib/types/client/settings-locales.js.map +1 -1
  37. package/lib/types/client/slots.d.ts +6 -10
  38. package/lib/types/client/slots.d.ts.map +1 -1
  39. package/lib/types/index.d.ts +28 -59
  40. package/lib/types/index.d.ts.map +1 -1
  41. package/lib/types/index.js +417 -800
  42. package/lib/types/index.js.map +1 -1
  43. package/lib/types/listener-state.d.ts +3 -5
  44. package/lib/types/listener-state.d.ts.map +1 -1
  45. package/lib/types/listener-state.js +13 -28
  46. package/lib/types/listener-state.js.map +1 -1
  47. package/lib/types/listener.d.ts +32 -9
  48. package/lib/types/listener.d.ts.map +1 -1
  49. package/lib/types/listener.js +127 -11
  50. package/lib/types/listener.js.map +1 -1
  51. package/lib/types/mail.d.ts +28 -2
  52. package/lib/types/mail.d.ts.map +1 -1
  53. package/lib/types/mail.js +78 -2
  54. package/lib/types/mail.js.map +1 -1
  55. package/lib/types/profile-state.d.ts +17 -0
  56. package/lib/types/profile-state.d.ts.map +1 -0
  57. package/lib/types/profile-state.js +58 -0
  58. package/lib/types/profile-state.js.map +1 -0
  59. package/lib/types/provider-api.d.ts +36 -100
  60. package/lib/types/provider-api.d.ts.map +1 -1
  61. package/lib/types/provider.d.ts +1 -7
  62. package/lib/types/provider.d.ts.map +1 -1
  63. package/lib/types/provider.js +15 -53
  64. package/lib/types/provider.js.map +1 -1
  65. package/lib/types/sdk-adapter.d.ts +5 -30
  66. package/lib/types/sdk-adapter.d.ts.map +1 -1
  67. package/lib/types/sdk-adapter.js +48 -133
  68. package/lib/types/sdk-adapter.js.map +1 -1
  69. package/lib/types/sent-mail-store.d.ts +7 -2
  70. package/lib/types/sent-mail-store.d.ts.map +1 -1
  71. package/lib/types/sent-mail-store.js +125 -23
  72. package/lib/types/sent-mail-store.js.map +1 -1
  73. package/lib/types/tools.d.ts +1 -1
  74. package/lib/types/tools.d.ts.map +1 -1
  75. package/lib/types/tools.js +20 -4
  76. package/lib/types/tools.js.map +1 -1
  77. package/lib/types/types.d.ts +45 -77
  78. package/lib/types/types.d.ts.map +1 -1
  79. package/lib/types/types.js.map +1 -1
  80. package/package.json +4 -6
  81. package/lib/types/client/AwikiDevices.d.ts +0 -28
  82. package/lib/types/client/AwikiDevices.d.ts.map +0 -1
  83. package/lib/types/client/AwikiDevices.js +0 -85
  84. package/lib/types/client/AwikiDevices.js.map +0 -1
  85. package/lib/types/realtime-supervisor.d.ts +0 -43
  86. package/lib/types/realtime-supervisor.d.ts.map +0 -1
  87. package/lib/types/realtime-supervisor.js +0 -166
  88. package/lib/types/realtime-supervisor.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"listener.d.ts","sourceRoot":"","sources":["../../src/listener.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"listener.d.ts","sourceRoot":"","sources":["../../src/listener.ts"],"names":[],"mappings":"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"}
@@ -198,12 +198,11 @@ function incomingFromPeer(message, conversation) {
198
198
  }
199
199
  function copyState(state) {
200
200
  return {
201
- version: 2,
202
- identityScopeHash: state.identityScopeHash,
201
+ version: 1,
203
202
  conversations: Object.fromEntries(Object.entries(state.conversations).map(([id, route]) => [id, { ...route }])),
204
203
  };
205
204
  }
206
- /** Consume authorized Direct text only after the identity supervisor commits synchronization. */
205
+ /** Reconcile authorized Direct text from Core history whenever realtime schedules synchronization. */
207
206
  export class AwikiAgentListener {
208
207
  awiki;
209
208
  agents;
@@ -212,28 +211,64 @@ export class AwikiAgentListener {
212
211
  store;
213
212
  logger;
214
213
  stateReady;
215
- state;
214
+ state = { version: 1, conversations: {} };
216
215
  stateMutation = Promise.resolve();
217
216
  syncMutation = Promise.resolve();
218
217
  scheduledMessageIds = new Set();
219
218
  conversationQueues = new Map();
219
+ lifecycle;
220
+ started;
221
+ resolveStarted;
222
+ rejectStarted;
223
+ lifecycleGeneration = 0;
224
+ streamGeneration = 0;
225
+ activeRealtime;
220
226
  stopped = false;
227
+ termination;
228
+ resolveTermination;
229
+ terminationSettled = false;
221
230
  constructor(awiki, agents, config, logger, store) {
222
231
  this.awiki = awiki;
223
232
  this.agents = agents;
224
233
  this.config = config;
234
+ this.termination = new Promise(resolve => { this.resolveTermination = resolve; });
225
235
  this.allowedPeers = new Set(config.allowedPeers.map(peer => peer.startsWith('did:') ? peer : peer.toLowerCase()));
226
- this.store = store ?? new AwikiListenerStateStore(config.stateRoot, config.identityScope);
227
- this.state = { version: 2, identityScopeHash: this.store.identityScopeHash, conversations: {} };
236
+ this.store = store ?? new AwikiListenerStateStore(config.stateRoot);
228
237
  this.logger = logger ?? {
229
238
  debug() { }, info() { }, warn() { }, error() { }, name: 'awiki-listener',
230
239
  };
231
240
  this.stateReady = this.store.load().then((state) => { this.state = state; });
232
241
  }
233
- /** Reconcile only committed history; this consumer cannot start WSS or advance sync. */
234
- async reconcileOnce() {
242
+ /** Start canonical startup sync followed by the single Core-owned realtime stream. */
243
+ start() {
244
+ if (this.started !== undefined)
245
+ return this.started;
246
+ this.started = new Promise((resolve, reject) => {
247
+ this.resolveStarted = resolve;
248
+ this.rejectStarted = reject;
249
+ });
250
+ const generation = ++this.lifecycleGeneration;
251
+ this.lifecycle = this.run(generation).then(() => { this.finishTermination({ kind: 'stopped' }); }, (error) => {
252
+ this.rejectStarted?.(error);
253
+ this.rejectStarted = undefined;
254
+ this.finishTermination({ kind: 'failed', error });
255
+ if (!this.stopped) {
256
+ this.logger.warn('AWiki realtime listener stopped: %s', error instanceof Error ? error.message : 'unknown failure');
257
+ }
258
+ });
259
+ return this.started;
260
+ }
261
+ /** Resolve once with either orderly shutdown or the exact terminal lifecycle failure. */
262
+ whenTerminated() {
263
+ return this.termination;
264
+ }
265
+ /** Deterministic canonical sync plus committed-history reconciliation for tests and recovery. */
266
+ async synchronizeOnce(reason) {
235
267
  await this.enqueueSync(async () => {
236
268
  await this.stateReady;
269
+ if (this.stopped)
270
+ return;
271
+ await this.awiki.syncNow(reason);
237
272
  if (this.stopped)
238
273
  return;
239
274
  await this.reconcileCommittedHistory();
@@ -247,13 +282,95 @@ export class AwikiAgentListener {
247
282
  }
248
283
  await this.stateMutation;
249
284
  }
250
- /** Fence late work, drain committed messages, then release listener-owned Agents. */
285
+ /** Stop realtime first, fence late events, drain messages, then release listener-owned Agents. */
251
286
  async dispose() {
252
287
  if (this.stopped)
253
288
  return;
254
289
  this.stopped = true;
290
+ this.lifecycleGeneration += 1;
291
+ this.streamGeneration += 1;
292
+ const active = this.activeRealtime;
293
+ this.activeRealtime = undefined;
294
+ await active?.session.stop().catch(() => undefined);
295
+ await this.lifecycle;
296
+ this.resolveStarted?.();
297
+ this.resolveStarted = undefined;
298
+ this.rejectStarted = undefined;
255
299
  await this.whenIdle();
256
300
  await this.agents.dispose();
301
+ this.finishTermination({ kind: 'stopped' });
302
+ }
303
+ finishTermination(result) {
304
+ if (this.terminationSettled)
305
+ return;
306
+ this.terminationSettled = true;
307
+ this.resolveTermination(result);
308
+ }
309
+ currentLifecycle(generation) {
310
+ return !this.stopped && this.lifecycleGeneration === generation;
311
+ }
312
+ async run(lifecycleGeneration) {
313
+ await this.synchronize('session_start', lifecycleGeneration);
314
+ if (!this.currentLifecycle(lifecycleGeneration))
315
+ return;
316
+ let active = await this.openRealtime(lifecycleGeneration);
317
+ if (active === undefined)
318
+ return;
319
+ this.resolveStarted?.();
320
+ this.resolveStarted = undefined;
321
+ this.rejectStarted = undefined;
322
+ try {
323
+ while (this.currentLifecycle(lifecycleGeneration)) {
324
+ const event = await active.session.nextEvent();
325
+ if (!this.currentLifecycle(lifecycleGeneration)
326
+ || this.activeRealtime?.generation !== active.generation)
327
+ return;
328
+ if (event === null) {
329
+ this.activeRealtime = undefined;
330
+ this.streamGeneration += 1;
331
+ await active.session.stop();
332
+ if (!this.currentLifecycle(lifecycleGeneration))
333
+ return;
334
+ await this.synchronize('websocket_reconnect', lifecycleGeneration);
335
+ if (!this.currentLifecycle(lifecycleGeneration))
336
+ return;
337
+ const replacement = await this.openRealtime(lifecycleGeneration);
338
+ if (replacement === undefined)
339
+ return;
340
+ active = replacement;
341
+ continue;
342
+ }
343
+ if (event.kind !== 'sync_required')
344
+ continue;
345
+ await this.synchronize(event.cause === 'reconnected' ? 'websocket_reconnect' : 'websocket_hint', lifecycleGeneration);
346
+ }
347
+ }
348
+ finally {
349
+ if (this.activeRealtime?.generation === active.generation)
350
+ this.activeRealtime = undefined;
351
+ await active.session.stop().catch(() => undefined);
352
+ }
353
+ }
354
+ async openRealtime(lifecycleGeneration) {
355
+ const session = await this.awiki.startRealtime();
356
+ if (!this.currentLifecycle(lifecycleGeneration)) {
357
+ await session.stop().catch(() => undefined);
358
+ return undefined;
359
+ }
360
+ const active = { generation: ++this.streamGeneration, session };
361
+ this.activeRealtime = active;
362
+ return active;
363
+ }
364
+ async synchronize(reason, lifecycleGeneration) {
365
+ await this.enqueueSync(async () => {
366
+ await this.stateReady;
367
+ if (!this.currentLifecycle(lifecycleGeneration))
368
+ return;
369
+ await this.awiki.syncNow(reason);
370
+ if (!this.currentLifecycle(lifecycleGeneration))
371
+ return;
372
+ await this.reconcileCommittedHistory();
373
+ });
257
374
  }
258
375
  enqueueSync(operation) {
259
376
  const pending = this.syncMutation.then(operation, operation);
@@ -446,8 +563,7 @@ export class AwikiAgentListener {
446
563
  : { lastProcessedMessageId: update.lastProcessedMessageId }),
447
564
  };
448
565
  this.state = {
449
- version: 2,
450
- identityScopeHash: this.state.identityScopeHash,
566
+ version: 1,
451
567
  conversations: { ...this.state.conversations, [conversation.id]: route },
452
568
  };
453
569
  await this.store.save(copyState(this.state));
@@ -1 +1 @@
1
- {"version":3,"file":"listener.js","sourceRoot":"","sources":["../../src/listener.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"listener.js","sourceRoot":"","sources":["../../src/listener.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,34 @@
1
1
  /** Host-owned validation for on-demand mail requests. */
2
- import type { AwikiMailInboxRequest, AwikiMailMarkReadRequest, AwikiMailReadRequest, AwikiMailSendRequest } from './types.ts';
2
+ import type { AwikiMailAttachmentDownloadRequest, AwikiMailInboxRequest, AwikiMailMarkReadRequest, AwikiMailReadRequest, AwikiMailSendRequest } from './types.ts';
3
+ export declare const MAIL_ATTACHMENT_SERVICE_MAX_COUNT = 10;
4
+ export declare const MAIL_ATTACHMENT_SERVICE_MAX_BYTES: number;
5
+ export declare const MAIL_ATTACHMENT_SERVICE_TOTAL_MAX_BYTES: number;
6
+ export interface AwikiMailAttachmentLimits {
7
+ readonly maxCount: number;
8
+ readonly maxBytes: number;
9
+ readonly totalMaxBytes: number;
10
+ }
11
+ export interface AwikiValidatedMailSendAttachment {
12
+ readonly fileName: string;
13
+ readonly contentType: string;
14
+ readonly sizeBytes: number;
15
+ readonly sha256: string;
16
+ readonly bytes: Uint8Array;
17
+ }
18
+ export interface AwikiValidatedMailSendRequest {
19
+ readonly to: readonly string[];
20
+ readonly cc: readonly string[];
21
+ readonly subject: string;
22
+ readonly bodyText: string;
23
+ readonly attachments: readonly AwikiValidatedMailSendAttachment[];
24
+ }
25
+ export declare const DEFAULT_MAIL_ATTACHMENT_LIMITS: AwikiMailAttachmentLimits;
26
+ export declare function mailAttachmentFileName(value: unknown): string;
27
+ export declare function mailAttachmentContentType(value: unknown): string;
3
28
  /** Resolve mailbox defaults before the provider is invoked. */
4
29
  export declare function mailInboxRequest(request?: AwikiMailInboxRequest): AwikiMailInboxRequest;
5
30
  export declare function mailReadRequest(request: AwikiMailReadRequest): AwikiMailReadRequest;
6
31
  export declare function mailMarkReadRequest(request: AwikiMailMarkReadRequest): AwikiMailMarkReadRequest;
7
- export declare function mailSendRequest(request: AwikiMailSendRequest): AwikiMailSendRequest;
32
+ export declare function mailSendRequest(request: AwikiMailSendRequest, limits?: AwikiMailAttachmentLimits): AwikiValidatedMailSendRequest;
33
+ export declare function mailAttachmentDownloadRequest(request: AwikiMailAttachmentDownloadRequest): AwikiMailAttachmentDownloadRequest;
8
34
  //# sourceMappingURL=mail.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mail.d.ts","sourceRoot":"","sources":["../../src/mail.ts"],"names":[],"mappings":"AAAA,yDAAyD;AAEzD,OAAO,KAAK,EACV,qBAAqB,EACrB,wBAAwB,EAExB,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,YAAY,CAAA;AA6BnB,+DAA+D;AAC/D,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,qBAA0B,GAAG,qBAAqB,CAS3F;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,oBAAoB,GAAG,oBAAoB,CAEnF;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,wBAAwB,GAAG,wBAAwB,CAO/F;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,oBAAoB,GAAG,oBAAoB,CAenF"}
1
+ {"version":3,"file":"mail.d.ts","sourceRoot":"","sources":["../../src/mail.ts"],"names":[],"mappings":"AAAA,yDAAyD;AAIzD,OAAO,KAAK,EACV,kCAAkC,EAClC,qBAAqB,EACrB,wBAAwB,EAExB,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,YAAY,CAAA;AAKnB,eAAO,MAAM,iCAAiC,KAAK,CAAA;AACnD,eAAO,MAAM,iCAAiC,QAAmB,CAAA;AACjE,eAAO,MAAM,uCAAuC,QAAmB,CAAA;AAEvE,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;CAC/B;AAED,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAA;CAC3B;AAED,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,EAAE,EAAE,SAAS,MAAM,EAAE,CAAA;IAC9B,QAAQ,CAAC,EAAE,EAAE,SAAS,MAAM,EAAE,CAAA;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,WAAW,EAAE,SAAS,gCAAgC,EAAE,CAAA;CAClE;AAED,eAAO,MAAM,8BAA8B,EAAE,yBAI3C,CAAA;AAyBF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAU7D;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAKhE;AAcD,+DAA+D;AAC/D,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,qBAA0B,GAAG,qBAAqB,CAS3F;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,oBAAoB,GAAG,oBAAoB,CAEnF;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,wBAAwB,GAAG,wBAAwB,CAO/F;AAED,wBAAgB,eAAe,CAC7B,OAAO,EAAE,oBAAoB,EAC7B,MAAM,GAAE,yBAA0D,GACjE,6BAA6B,CAiC/B;AAED,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,kCAAkC,GAC1C,kCAAkC,CAQpC"}
package/lib/types/mail.js CHANGED
@@ -1,7 +1,16 @@
1
1
  /** Host-owned validation for on-demand mail requests. */
2
+ import { createHash } from 'node:crypto';
2
3
  const U32_MAX = 0xffff_ffff;
3
4
  const MAX_MESSAGE_IDS = 100;
4
5
  const MAX_RECIPIENTS = 20;
6
+ export const MAIL_ATTACHMENT_SERVICE_MAX_COUNT = 10;
7
+ export const MAIL_ATTACHMENT_SERVICE_MAX_BYTES = 10 * 1024 * 1024;
8
+ export const MAIL_ATTACHMENT_SERVICE_TOTAL_MAX_BYTES = 18 * 1024 * 1024;
9
+ export const DEFAULT_MAIL_ATTACHMENT_LIMITS = Object.freeze({
10
+ maxCount: MAIL_ATTACHMENT_SERVICE_MAX_COUNT,
11
+ maxBytes: MAIL_ATTACHMENT_SERVICE_MAX_BYTES,
12
+ totalMaxBytes: MAIL_ATTACHMENT_SERVICE_TOTAL_MAX_BYTES,
13
+ });
5
14
  function reject() {
6
15
  throw new TypeError('invalid AWiki mail request');
7
16
  }
@@ -25,6 +34,41 @@ function address(value) {
25
34
  reject();
26
35
  return value;
27
36
  }
37
+ export function mailAttachmentFileName(value) {
38
+ if (typeof value !== 'string'
39
+ || value.length === 0
40
+ || value.trim() !== value
41
+ || value.replace(/[. ]+$/u, '') !== value
42
+ || value === '.'
43
+ || value === '..'
44
+ || Buffer.byteLength(value, 'utf8') > 255
45
+ || /[\\/\p{C}]/u.test(value))
46
+ reject();
47
+ return value;
48
+ }
49
+ export function mailAttachmentContentType(value) {
50
+ if (value === '')
51
+ return 'application/octet-stream';
52
+ if (typeof value !== 'string'
53
+ || !/^[A-Za-z0-9!#$&^_.+-]+\/[A-Za-z0-9!#$&^_.+-]+$/u.test(value))
54
+ reject();
55
+ return value;
56
+ }
57
+ function attachmentBytes(value, sizeBytes, maxBytes) {
58
+ if (typeof value !== 'string')
59
+ reject();
60
+ const expectedEncodedLength = Math.ceil(sizeBytes / 3) * 4;
61
+ if (value.length !== expectedEncodedLength
62
+ || value.length % 4 !== 0
63
+ || !/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/u.test(value))
64
+ reject();
65
+ const bytes = Buffer.from(value, 'base64');
66
+ if (bytes.byteLength !== sizeBytes || bytes.byteLength > maxBytes)
67
+ reject();
68
+ if (Buffer.from(bytes).toString('base64') !== value)
69
+ reject();
70
+ return bytes;
71
+ }
28
72
  /** Resolve mailbox defaults before the provider is invoked. */
29
73
  export function mailInboxRequest(request = {}) {
30
74
  const folder = token(request.folder ?? 'inbox', 64);
@@ -51,7 +95,7 @@ export function mailMarkReadRequest(request) {
51
95
  messageIds: request.messageIds.map(value => token(value, 2_048)),
52
96
  };
53
97
  }
54
- export function mailSendRequest(request) {
98
+ export function mailSendRequest(request, limits = DEFAULT_MAIL_ATTACHMENT_LIMITS) {
55
99
  if (!Array.isArray(request.to) || request.to.length === 0 || !Array.isArray(request.cc ?? []))
56
100
  reject();
57
101
  const to = request.to.map(address);
@@ -70,6 +114,38 @@ export function mailSendRequest(request) {
70
114
  || request.bodyText.trim().length === 0
71
115
  || Buffer.byteLength(request.bodyText, 'utf8') > 65_536)
72
116
  reject();
73
- return { to, cc, subject: request.subject, bodyText: request.bodyText };
117
+ if (!Array.isArray(request.attachments ?? []) || (request.attachments?.length ?? 0) > limits.maxCount)
118
+ reject();
119
+ let totalBytes = 0;
120
+ const attachments = (request.attachments ?? []).map((attachment) => {
121
+ if (typeof attachment !== 'object' || attachment === null || Array.isArray(attachment))
122
+ reject();
123
+ if (!Number.isSafeInteger(attachment.sizeBytes)
124
+ || attachment.sizeBytes < 0
125
+ || attachment.sizeBytes > limits.maxBytes)
126
+ reject();
127
+ const bytes = attachmentBytes(attachment.bytesBase64, attachment.sizeBytes, limits.maxBytes);
128
+ totalBytes += bytes.byteLength;
129
+ if (!Number.isSafeInteger(totalBytes) || totalBytes > limits.totalMaxBytes)
130
+ reject();
131
+ return {
132
+ fileName: mailAttachmentFileName(attachment.fileName),
133
+ contentType: mailAttachmentContentType(attachment.contentType),
134
+ sizeBytes: bytes.byteLength,
135
+ sha256: createHash('sha256').update(bytes).digest('hex'),
136
+ bytes,
137
+ };
138
+ });
139
+ return { to, cc, subject: request.subject, bodyText: request.bodyText, attachments };
140
+ }
141
+ export function mailAttachmentDownloadRequest(request) {
142
+ if (!Number.isSafeInteger(request.attachmentIndex)
143
+ || request.attachmentIndex < 0
144
+ || request.attachmentIndex > U32_MAX)
145
+ reject();
146
+ return {
147
+ localMessageId: token(request.localMessageId, 2_048),
148
+ attachmentIndex: request.attachmentIndex,
149
+ };
74
150
  }
75
151
  //# sourceMappingURL=mail.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mail.js","sourceRoot":"","sources":["../../src/mail.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mail.js","sourceRoot":"","sources":["../../src/mail.ts"],"names":[],"mappings":"AAAA,yDAAyD;AAEzD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAWxC,MAAM,OAAO,GAAG,WAAW,CAAA;AAC3B,MAAM,eAAe,GAAG,GAAG,CAAA;AAC3B,MAAM,cAAc,GAAG,EAAE,CAAA;AACzB,MAAM,CAAC,MAAM,iCAAiC,GAAG,EAAE,CAAA;AACnD,MAAM,CAAC,MAAM,iCAAiC,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAA;AACjE,MAAM,CAAC,MAAM,uCAAuC,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAA;AAwBvE,MAAM,CAAC,MAAM,8BAA8B,GAA8B,MAAM,CAAC,MAAM,CAAC;IACrF,QAAQ,EAAE,iCAAiC;IAC3C,QAAQ,EAAE,iCAAiC;IAC3C,aAAa,EAAE,uCAAuC;CACvD,CAAC,CAAA;AAEF,SAAS,MAAM;IACb,MAAM,IAAI,SAAS,CAAC,4BAA4B,CAAC,CAAA;AACnD,CAAC;AAED,SAAS,KAAK,CAAC,KAAc,EAAE,aAAqB;IAClD,IAAI,OAAO,KAAK,KAAK,QAAQ;WACxB,KAAK,CAAC,MAAM,KAAK,CAAC;WAClB,KAAK,CAAC,IAAI,EAAE,KAAK,KAAK;WACtB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,aAAa;WACxC,+BAA+B,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,MAAM,EAAE,CAAA;IAC1D,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,OAAO,CAAC,KAAc;IAC7B,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,MAAM,EAAE,CAAA;IACvC,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAA;IACvC,IAAI,MAAM,GAAG,CAAC;WACT,MAAM,GAAG,GAAG;WACZ,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;WACpB,iCAAiC,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,MAAM,EAAE,CAAA;IAC5D,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAAc;IACnD,IAAI,OAAO,KAAK,KAAK,QAAQ;WACxB,KAAK,CAAC,MAAM,KAAK,CAAC;WAClB,KAAK,CAAC,IAAI,EAAE,KAAK,KAAK;WACtB,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,KAAK,KAAK;WACtC,KAAK,KAAK,GAAG;WACb,KAAK,KAAK,IAAI;WACd,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,GAAG;WACtC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,MAAM,EAAE,CAAA;IACxC,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,KAAc;IACtD,IAAI,KAAK,KAAK,EAAE;QAAE,OAAO,0BAA0B,CAAA;IACnD,IAAI,OAAO,KAAK,KAAK,QAAQ;WACxB,CAAC,iDAAiD,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,MAAM,EAAE,CAAA;IAC7E,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,eAAe,CAAC,KAAc,EAAE,SAAiB,EAAE,QAAgB;IAC1E,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,MAAM,EAAE,CAAA;IACvC,MAAM,qBAAqB,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;IAC1D,IAAI,KAAK,CAAC,MAAM,KAAK,qBAAqB;WACrC,KAAK,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC;WACtB,CAAC,mEAAmE,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,MAAM,EAAE,CAAA;IAC/F,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;IAC1C,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,KAAK,CAAC,UAAU,GAAG,QAAQ;QAAE,MAAM,EAAE,CAAA;IAC3E,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,KAAK;QAAE,MAAM,EAAE,CAAA;IAC7D,OAAO,KAAK,CAAA;AACd,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,gBAAgB,CAAC,UAAiC,EAAE;IAClE,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,EAAE,EAAE,CAAC,CAAA;IACnD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAA;IACjC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,CAAA;IAClC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,KAAK,CAAA;IAC9C,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,GAAG;QAAE,MAAM,EAAE,CAAA;IACtE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,IAAI,MAAM,GAAG,OAAO;QAAE,MAAM,EAAE,CAAA;IAC7E,IAAI,OAAO,UAAU,KAAK,SAAS;QAAE,MAAM,EAAE,CAAA;IAC7C,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,CAAA;AAC9C,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAA6B;IAC3D,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAuB,EAAE,CAAA;AAC7E,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAAiC;IACnE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;WACjC,OAAO,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;WAC/B,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,eAAe;QAAE,MAAM,EAAE,CAAA;IAC1D,OAAO;QACL,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAuB,CAAC;KACvF,CAAA;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,OAA6B,EAC7B,SAAoC,8BAA8B;IAElE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,EAAE,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC;QAAE,MAAM,EAAE,CAAA;IACvG,MAAM,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAClC,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAC1C,IAAI,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,GAAG,cAAc;QAAE,MAAM,EAAE,CAAA;IACpD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;IAC1C,IAAI,UAAU,CAAC,IAAI,KAAK,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM;QAAE,MAAM,EAAE,CAAA;IACvD,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ;WAClC,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;WAC5B,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,OAAO,CAAC,OAAO;WAC1C,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,KAAK;QAAE,MAAM,EAAE,CAAA;IACjE,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ;WACnC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;WACpC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,MAAM;QAAE,MAAM,EAAE,CAAA;IACnE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,QAAQ;QAAE,MAAM,EAAE,CAAA;IAC/G,IAAI,UAAU,GAAG,CAAC,CAAA;IAClB,MAAM,WAAW,GAAG,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;QACjE,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;YAAE,MAAM,EAAE,CAAA;QAChG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,SAAS,CAAC;eAC1C,UAAU,CAAC,SAAS,GAAG,CAAC;eACxB,UAAU,CAAC,SAAS,GAAG,MAAM,CAAC,QAAQ;YAAE,MAAM,EAAE,CAAA;QACrD,MAAM,KAAK,GAAG,eAAe,CAAC,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAA;QAC5F,UAAU,IAAI,KAAK,CAAC,UAAU,CAAA;QAC9B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,UAAU,GAAG,MAAM,CAAC,aAAa;YAAE,MAAM,EAAE,CAAA;QACpF,OAAO;YACL,QAAQ,EAAE,sBAAsB,CAAC,UAAU,CAAC,QAAQ,CAAC;YACrD,WAAW,EAAE,yBAAyB,CAAC,UAAU,CAAC,WAAW,CAAC;YAC9D,SAAS,EAAE,KAAK,CAAC,UAAU;YAC3B,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YACxD,KAAK;SACN,CAAA;IACH,CAAC,CAAC,CAAA;IACF,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAA;AACtF,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,OAA2C;IAE3C,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,eAAe,CAAC;WAC7C,OAAO,CAAC,eAAe,GAAG,CAAC;WAC3B,OAAO,CAAC,eAAe,GAAG,OAAO;QAAE,MAAM,EAAE,CAAA;IAChD,OAAO;QACL,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,cAAc,EAAE,KAAK,CAAuB;QAC1E,eAAe,EAAE,OAAO,CAAC,eAAe;KACzC,CAAA;AACH,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { Context } from '@deepseek-ai/cordis';
2
+ /**
3
+ * Resolve the active DSH profile without guessing it from argv or process type.
4
+ * Desktop's generation-scoped service is authoritative. Ordinary DSH has no
5
+ * corresponding service, so its Loader root is accepted only when it is the
6
+ * exact `$DSH_HOME/profiles/<name>` directory.
7
+ */
8
+ export declare function resolveAwikiProfileName(ctx: Context, dshHome: string): string | undefined;
9
+ /** Resolve the profile-local default while preserving the legacy fallback. */
10
+ export declare function resolveAwikiStateRoot(ctx: Context, dshHome: string): string;
11
+ /**
12
+ * Keep the deployment-default tenant on its historical path while isolating
13
+ * every selected tenant beside it. Switching back therefore restores the
14
+ * original identity instead of rewriting or clearing cryptographic state.
15
+ */
16
+ export declare function resolveAwikiTenantStateRoot(baseStateRoot: string, domain: string, baseDomain: string): string;
17
+ //# sourceMappingURL=profile-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile-state.d.ts","sourceRoot":"","sources":["../../src/profile-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAoBlD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAoBzF;AAED,8EAA8E;AAC9E,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAK3E;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GACjB,MAAM,CAGR"}
@@ -0,0 +1,58 @@
1
+ import { fileURLToPath } from 'node:url';
2
+ import { basename, dirname, join, resolve } from 'node:path';
3
+ /** Match the profile-name boundary enforced by the DSH launcher. */
4
+ function assertProfileName(value, source) {
5
+ if (typeof value !== 'string' || value.length === 0
6
+ || value.includes('/') || value.includes('\\')
7
+ || value === '.' || value === '..' || value === 'node_modules') {
8
+ throw new TypeError(`awiki: ${source} supplied an invalid profile name`);
9
+ }
10
+ return value;
11
+ }
12
+ /**
13
+ * Resolve the active DSH profile without guessing it from argv or process type.
14
+ * Desktop's generation-scoped service is authoritative. Ordinary DSH has no
15
+ * corresponding service, so its Loader root is accepted only when it is the
16
+ * exact `$DSH_HOME/profiles/<name>` directory.
17
+ */
18
+ export function resolveAwikiProfileName(ctx, dshHome) {
19
+ const desktopProfiles = ctx.get('desktopProfiles');
20
+ if (desktopProfiles !== undefined) {
21
+ return assertProfileName(desktopProfiles.current?.name, 'desktopProfiles.current');
22
+ }
23
+ let profileDir;
24
+ try {
25
+ if (ctx.baseUrl === undefined)
26
+ return undefined;
27
+ const baseUrl = new URL(ctx.baseUrl);
28
+ if (baseUrl.protocol !== 'file:')
29
+ return undefined;
30
+ profileDir = resolve(fileURLToPath(baseUrl));
31
+ }
32
+ catch {
33
+ return undefined;
34
+ }
35
+ const profilesDir = resolve(dshHome, 'profiles');
36
+ if (dirname(profileDir) !== profilesDir)
37
+ return undefined;
38
+ const name = basename(profileDir);
39
+ return assertProfileName(name, 'Loader profile directory');
40
+ }
41
+ /** Resolve the profile-local default while preserving the legacy fallback. */
42
+ export function resolveAwikiStateRoot(ctx, dshHome) {
43
+ const profileName = resolveAwikiProfileName(ctx, dshHome);
44
+ return profileName === undefined
45
+ ? join(dshHome, 'awiki', 'im-core')
46
+ : join(dshHome, 'awiki', profileName, 'im-core');
47
+ }
48
+ /**
49
+ * Keep the deployment-default tenant on its historical path while isolating
50
+ * every selected tenant beside it. Switching back therefore restores the
51
+ * original identity instead of rewriting or clearing cryptographic state.
52
+ */
53
+ export function resolveAwikiTenantStateRoot(baseStateRoot, domain, baseDomain) {
54
+ if (domain === baseDomain)
55
+ return baseStateRoot;
56
+ return join(dirname(baseStateRoot), 'tenants', domain, basename(baseStateRoot));
57
+ }
58
+ //# sourceMappingURL=profile-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile-state.js","sourceRoot":"","sources":["../../src/profile-state.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAQ5D,oEAAoE;AACpE,SAAS,iBAAiB,CAAC,KAAc,EAAE,MAAc;IACvD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;WAC9C,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;WAC3C,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,cAAc,EAAE,CAAC;QACjE,MAAM,IAAI,SAAS,CAAC,UAAU,MAAM,mCAAmC,CAAC,CAAA;IAC1E,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CAAC,GAAY,EAAE,OAAe;IACnE,MAAM,eAAe,GAAG,GAAG,CAAC,GAAG,CAAC,iBAAiB,CAAoC,CAAA;IACrF,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;QAClC,OAAO,iBAAiB,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,EAAE,yBAAyB,CAAC,CAAA;IACpF,CAAC;IAED,IAAI,UAAkB,CAAA;IACtB,IAAI,CAAC;QACH,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS;YAAE,OAAO,SAAS,CAAA;QAC/C,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACpC,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO;YAAE,OAAO,SAAS,CAAA;QAClD,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAA;IAC9C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;IAChD,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,WAAW;QAAE,OAAO,SAAS,CAAA;IACzD,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAA;IACjC,OAAO,iBAAiB,CAAC,IAAI,EAAE,0BAA0B,CAAC,CAAA;AAC5D,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,qBAAqB,CAAC,GAAY,EAAE,OAAe;IACjE,MAAM,WAAW,GAAG,uBAAuB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;IACzD,OAAO,WAAW,KAAK,SAAS;QAC9B,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC;QACnC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC,CAAA;AACpD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,2BAA2B,CACzC,aAAqB,EACrB,MAAc,EACd,UAAkB;IAElB,IAAI,MAAM,KAAK,UAAU;QAAE,OAAO,aAAa,CAAA;IAC/C,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAA;AACjF,CAAC"}