@inkbox/sdk 0.2.10 → 0.2.12

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 (90) hide show
  1. package/README.md +4 -4
  2. package/dist/_http.d.ts +24 -2
  3. package/dist/_http.d.ts.map +1 -1
  4. package/dist/_http.js +76 -15
  5. package/dist/_http.js.map +1 -1
  6. package/dist/agent_identity.d.ts +38 -1
  7. package/dist/agent_identity.d.ts.map +1 -1
  8. package/dist/agent_identity.js +28 -0
  9. package/dist/agent_identity.js.map +1 -1
  10. package/dist/contacts/index.d.ts +3 -0
  11. package/dist/contacts/index.d.ts.map +1 -0
  12. package/dist/contacts/index.js +2 -0
  13. package/dist/contacts/index.js.map +1 -0
  14. package/dist/contacts/resources/contactAccess.d.ts +21 -0
  15. package/dist/contacts/resources/contactAccess.d.ts.map +1 -0
  16. package/dist/contacts/resources/contactAccess.js +32 -0
  17. package/dist/contacts/resources/contactAccess.js.map +1 -0
  18. package/dist/contacts/resources/contacts.d.ts +82 -0
  19. package/dist/contacts/resources/contacts.d.ts.map +1 -0
  20. package/dist/contacts/resources/contacts.js +143 -0
  21. package/dist/contacts/resources/contacts.js.map +1 -0
  22. package/dist/contacts/resources/vcards.d.ts +23 -0
  23. package/dist/contacts/resources/vcards.d.ts.map +1 -0
  24. package/dist/contacts/resources/vcards.js +31 -0
  25. package/dist/contacts/resources/vcards.js.map +1 -0
  26. package/dist/contacts/types.d.ts +177 -0
  27. package/dist/contacts/types.d.ts.map +1 -0
  28. package/dist/contacts/types.js +144 -0
  29. package/dist/contacts/types.js.map +1 -0
  30. package/dist/identities/types.d.ts +21 -0
  31. package/dist/identities/types.d.ts.map +1 -1
  32. package/dist/identities/types.js +11 -0
  33. package/dist/identities/types.js.map +1 -1
  34. package/dist/index.d.ts +10 -4
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +4 -2
  37. package/dist/index.js.map +1 -1
  38. package/dist/inkbox.d.ts +16 -0
  39. package/dist/inkbox.d.ts.map +1 -1
  40. package/dist/inkbox.js +20 -0
  41. package/dist/inkbox.js.map +1 -1
  42. package/dist/mail/resources/contactRules.d.ts +40 -0
  43. package/dist/mail/resources/contactRules.d.ts.map +1 -0
  44. package/dist/mail/resources/contactRules.js +74 -0
  45. package/dist/mail/resources/contactRules.js.map +1 -0
  46. package/dist/mail/resources/mailboxes.d.ts +2 -1
  47. package/dist/mail/resources/mailboxes.d.ts.map +1 -1
  48. package/dist/mail/resources/mailboxes.js +3 -0
  49. package/dist/mail/resources/mailboxes.js.map +1 -1
  50. package/dist/mail/resources/messages.d.ts +46 -2
  51. package/dist/mail/resources/messages.d.ts.map +1 -1
  52. package/dist/mail/resources/messages.js +61 -2
  53. package/dist/mail/resources/messages.js.map +1 -1
  54. package/dist/mail/resources/threads.d.ts +32 -5
  55. package/dist/mail/resources/threads.d.ts.map +1 -1
  56. package/dist/mail/resources/threads.js +51 -6
  57. package/dist/mail/resources/threads.js.map +1 -1
  58. package/dist/mail/types.d.ts +105 -0
  59. package/dist/mail/types.d.ts.map +1 -1
  60. package/dist/mail/types.js +81 -0
  61. package/dist/mail/types.js.map +1 -1
  62. package/dist/notes/resources/noteAccess.d.ts +15 -0
  63. package/dist/notes/resources/noteAccess.d.ts.map +1 -0
  64. package/dist/notes/resources/noteAccess.js +26 -0
  65. package/dist/notes/resources/noteAccess.js.map +1 -0
  66. package/dist/notes/resources/notes.d.ts +40 -0
  67. package/dist/notes/resources/notes.d.ts.map +1 -0
  68. package/dist/notes/resources/notes.js +62 -0
  69. package/dist/notes/resources/notes.js.map +1 -0
  70. package/dist/notes/types.d.ts +40 -0
  71. package/dist/notes/types.d.ts.map +1 -0
  72. package/dist/notes/types.js +26 -0
  73. package/dist/notes/types.js.map +1 -0
  74. package/dist/phone/resources/contactRules.d.ts +41 -0
  75. package/dist/phone/resources/contactRules.d.ts.map +1 -0
  76. package/dist/phone/resources/contactRules.js +74 -0
  77. package/dist/phone/resources/contactRules.js.map +1 -0
  78. package/dist/phone/resources/numbers.d.ts +2 -0
  79. package/dist/phone/resources/numbers.d.ts.map +1 -1
  80. package/dist/phone/resources/numbers.js +3 -0
  81. package/dist/phone/resources/numbers.js.map +1 -1
  82. package/dist/phone/types.d.ts +42 -0
  83. package/dist/phone/types.d.ts.map +1 -1
  84. package/dist/phone/types.js +29 -0
  85. package/dist/phone/types.js.map +1 -1
  86. package/dist/whoami/types.d.ts +9 -0
  87. package/dist/whoami/types.d.ts.map +1 -1
  88. package/dist/whoami/types.js +9 -0
  89. package/dist/whoami/types.js.map +1 -1
  90. package/package.json +1 -1
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Message operations: list (auto-paginated), get, send, flag updates, delete.
5
5
  */
6
- import { parseMessage, parseMessageDetail, } from "../types.js";
6
+ import { ForwardMode, parseMessage, parseMessageDetail, } from "../types.js";
7
7
  const DEFAULT_PAGE_SIZE = 50;
8
8
  export class MessagesResource {
9
9
  http;
@@ -91,6 +91,65 @@ export class MessagesResource {
91
91
  const data = await this.http.post(`/mailboxes/${emailAddress}/messages`, body);
92
92
  return parseMessage(data);
93
93
  }
94
+ /**
95
+ * Forward a stored message out from this mailbox.
96
+ *
97
+ * Two modes are available — see {@link ForwardMode}. Forwards start a
98
+ * brand-new thread.
99
+ *
100
+ * @param emailAddress - Full email address of the forwarding mailbox.
101
+ * @param messageId - UUID of the message being forwarded.
102
+ * @param options.to - Primary recipient addresses.
103
+ * @param options.cc - Carbon-copy recipients.
104
+ * @param options.bcc - Blind carbon-copy recipients. At least one address
105
+ * is required across `to`, `cc`, and `bcc`.
106
+ * @param options.mode - `"inline"` (default) or `"wrapped"`.
107
+ * @param options.subject - Optional override; defaults to
108
+ * `"Fwd: " + original.subject` (idempotent).
109
+ * @param options.bodyText - Optional caller note prepended above the
110
+ * original body (inline) or as a top-level note (wrapped).
111
+ * @param options.bodyHtml - Optional HTML caller note.
112
+ * @param options.additionalAttachments - Optional caller-authored
113
+ * attachments alongside the forwarded content. Same shape as
114
+ * `send({ attachments })`. Subject to the same blocked-extension and
115
+ * 25 MB limits.
116
+ * @param options.includeOriginalAttachments - `inline` mode only. When
117
+ * `true` (default), original attachments are re-attached as direct
118
+ * outbound parts. Ignored in `wrapped` mode.
119
+ * @param options.replyTo - Optional Reply-To address for the forward's
120
+ * outer envelope.
121
+ */
122
+ async forward(emailAddress, messageId, options) {
123
+ const recipients = {};
124
+ if (options.to)
125
+ recipients["to"] = options.to;
126
+ if (options.cc)
127
+ recipients["cc"] = options.cc;
128
+ if (options.bcc)
129
+ recipients["bcc"] = options.bcc;
130
+ const body = {
131
+ recipients,
132
+ mode: options.mode ?? ForwardMode.INLINE,
133
+ include_original_attachments: options.includeOriginalAttachments ?? true,
134
+ };
135
+ if (options.subject !== undefined)
136
+ body["subject"] = options.subject;
137
+ if (options.bodyText !== undefined)
138
+ body["body_text"] = options.bodyText;
139
+ if (options.bodyHtml !== undefined)
140
+ body["body_html"] = options.bodyHtml;
141
+ if (options.additionalAttachments !== undefined) {
142
+ body["additional_attachments"] = options.additionalAttachments.map((a) => ({
143
+ filename: a.filename,
144
+ content_type: a.contentType,
145
+ content_base64: a.contentBase64,
146
+ }));
147
+ }
148
+ if (options.replyTo !== undefined)
149
+ body["reply_to"] = options.replyTo;
150
+ const data = await this.http.post(`/mailboxes/${emailAddress}/messages/${messageId}/forward`, body);
151
+ return parseMessage(data);
152
+ }
94
153
  /**
95
154
  * Update read/starred flags on a message.
96
155
  *
@@ -126,7 +185,7 @@ export class MessagesResource {
126
185
  await this.http.delete(`/mailboxes/${emailAddress}/messages/${messageId}`);
127
186
  }
128
187
  /**
129
- * Get a presigned URL for a message attachment.
188
+ * Get a temporary signed URL for a message attachment.
130
189
  *
131
190
  * @param emailAddress - Full email address of the owning mailbox.
132
191
  * @param messageId - UUID of the message.
@@ -1 +1 @@
1
- {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../src/mail/resources/messages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../src/mail/resources/messages.ts"],"names":[],"mappings":"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"}
@@ -1,28 +1,42 @@
1
1
  /**
2
2
  * inkbox-mail/resources/threads.ts
3
3
  *
4
- * Thread operations: list (auto-paginated), get with messages, delete.
4
+ * Thread operations: list (auto-paginated), get with messages, folder
5
+ * listing, per-thread update, and delete.
5
6
  */
6
7
  import { HttpTransport } from "../../_http.js";
7
- import { Thread, ThreadDetail } from "../types.js";
8
+ import { Thread, ThreadDetail, ThreadFolder } from "../types.js";
8
9
  export declare class ThreadsResource {
9
10
  private readonly http;
10
11
  constructor(http: HttpTransport);
11
12
  /**
12
- * Async iterator over all threads in a mailbox, most recent activity first.
13
+ * Async iterator over threads in a mailbox, most recent activity first.
13
14
  *
14
15
  * Pagination is handled automatically — just iterate.
15
16
  *
17
+ * @param options.folder - Optional folder filter. When omitted, the server
18
+ * returns all visible folders for the caller.
19
+ * @param options.pageSize - Number of threads fetched per API call (1–100).
20
+ *
16
21
  * @example
17
22
  * ```ts
18
- * for await (const thread of client.threads.list(emailAddress)) {
19
- * console.log(thread.subject, thread.messageCount);
23
+ * for await (const thread of client.threads.list(emailAddress, { folder: ThreadFolder.BLOCKED })) {
24
+ * console.log(thread.subject, thread.folder);
20
25
  * }
21
26
  * ```
22
27
  */
23
28
  list(emailAddress: string, options?: {
29
+ folder?: ThreadFolder;
24
30
  pageSize?: number;
25
31
  }): AsyncGenerator<Thread>;
32
+ /**
33
+ * Return the distinct folders that have at least one thread in this
34
+ * mailbox.
35
+ *
36
+ * @returns Sorted list of {@link ThreadFolder} values that currently hold
37
+ * at least one non-deleted thread.
38
+ */
39
+ listFolders(emailAddress: string): Promise<ThreadFolder[]>;
26
40
  /**
27
41
  * Get a thread with all its messages inlined.
28
42
  *
@@ -30,6 +44,19 @@ export declare class ThreadsResource {
30
44
  * @param threadId - UUID of the thread.
31
45
  */
32
46
  get(emailAddress: string, threadId: string): Promise<ThreadDetail>;
47
+ /**
48
+ * Update mutable thread fields.
49
+ *
50
+ * Returns a bare {@link Thread} (no inlined messages). Use {@link get} to
51
+ * refetch the thread with messages attached.
52
+ *
53
+ * @param options.folder - New folder. `ThreadFolder.BLOCKED` is
54
+ * server-assigned and cannot be set by clients; passing it throws
55
+ * synchronously without making an HTTP call.
56
+ */
57
+ update(emailAddress: string, threadId: string, options?: {
58
+ folder?: ThreadFolder;
59
+ }): Promise<Thread>;
33
60
  /** Delete a thread. */
34
61
  delete(emailAddress: string, threadId: string): Promise<void>;
35
62
  }
@@ -1 +1 @@
1
- {"version":3,"file":"threads.d.ts","sourceRoot":"","sources":["../../../src/mail/resources/threads.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAGL,MAAM,EACN,YAAY,EAGb,MAAM,aAAa,CAAC;AAIrB,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,aAAa;IAEhD;;;;;;;;;;;OAWG;IACI,IAAI,CACT,YAAY,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAC9B,cAAc,CAAC,MAAM,CAAC;IAiBzB;;;;;OAKG;IACG,GAAG,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAOxE,uBAAuB;IACjB,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGpE"}
1
+ {"version":3,"file":"threads.d.ts","sourceRoot":"","sources":["../../../src/mail/resources/threads.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAGL,MAAM,EACN,YAAY,EACZ,YAAY,EAGb,MAAM,aAAa,CAAC;AAIrB,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,aAAa;IAEhD;;;;;;;;;;;;;;;OAeG;IACI,IAAI,CACT,YAAY,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,YAAY,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GACrD,cAAc,CAAC,MAAM,CAAC;IAwBzB;;;;;;OAMG;IACG,WAAW,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAOhE;;;;;OAKG;IACG,GAAG,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAOxE;;;;;;;;;OASG;IACG,MAAM,CACV,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,YAAY,CAAA;KAAO,GACtC,OAAO,CAAC,MAAM,CAAC;IAkBlB,uBAAuB;IACjB,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGpE"}
@@ -1,9 +1,10 @@
1
1
  /**
2
2
  * inkbox-mail/resources/threads.ts
3
3
  *
4
- * Thread operations: list (auto-paginated), get with messages, delete.
4
+ * Thread operations: list (auto-paginated), get with messages, folder
5
+ * listing, per-thread update, and delete.
5
6
  */
6
- import { parseThread, parseThreadDetail, } from "../types.js";
7
+ import { ThreadFolder, parseThread, parseThreadDetail, } from "../types.js";
7
8
  const DEFAULT_PAGE_SIZE = 50;
8
9
  export class ThreadsResource {
9
10
  http;
@@ -11,14 +12,18 @@ export class ThreadsResource {
11
12
  this.http = http;
12
13
  }
13
14
  /**
14
- * Async iterator over all threads in a mailbox, most recent activity first.
15
+ * Async iterator over threads in a mailbox, most recent activity first.
15
16
  *
16
17
  * Pagination is handled automatically — just iterate.
17
18
  *
19
+ * @param options.folder - Optional folder filter. When omitted, the server
20
+ * returns all visible folders for the caller.
21
+ * @param options.pageSize - Number of threads fetched per API call (1–100).
22
+ *
18
23
  * @example
19
24
  * ```ts
20
- * for await (const thread of client.threads.list(emailAddress)) {
21
- * console.log(thread.subject, thread.messageCount);
25
+ * for await (const thread of client.threads.list(emailAddress, { folder: ThreadFolder.BLOCKED })) {
26
+ * console.log(thread.subject, thread.folder);
22
27
  * }
23
28
  * ```
24
29
  */
@@ -26,7 +31,14 @@ export class ThreadsResource {
26
31
  const limit = options?.pageSize ?? DEFAULT_PAGE_SIZE;
27
32
  let cursor;
28
33
  while (true) {
29
- const page = await this.http.get(`/mailboxes/${emailAddress}/threads`, { limit, cursor });
34
+ const params = {
35
+ limit,
36
+ cursor,
37
+ };
38
+ if (options?.folder !== undefined) {
39
+ params.folder = options.folder;
40
+ }
41
+ const page = await this.http.get(`/mailboxes/${emailAddress}/threads`, params);
30
42
  for (const item of page.items) {
31
43
  yield parseThread(item);
32
44
  }
@@ -35,6 +47,17 @@ export class ThreadsResource {
35
47
  cursor = page.next_cursor ?? undefined;
36
48
  }
37
49
  }
50
+ /**
51
+ * Return the distinct folders that have at least one thread in this
52
+ * mailbox.
53
+ *
54
+ * @returns Sorted list of {@link ThreadFolder} values that currently hold
55
+ * at least one non-deleted thread.
56
+ */
57
+ async listFolders(emailAddress) {
58
+ const data = await this.http.get(`/mailboxes/${emailAddress}/threads/folders`);
59
+ return data.map((f) => f);
60
+ }
38
61
  /**
39
62
  * Get a thread with all its messages inlined.
40
63
  *
@@ -45,6 +68,28 @@ export class ThreadsResource {
45
68
  const data = await this.http.get(`/mailboxes/${emailAddress}/threads/${threadId}`);
46
69
  return parseThreadDetail(data);
47
70
  }
71
+ /**
72
+ * Update mutable thread fields.
73
+ *
74
+ * Returns a bare {@link Thread} (no inlined messages). Use {@link get} to
75
+ * refetch the thread with messages attached.
76
+ *
77
+ * @param options.folder - New folder. `ThreadFolder.BLOCKED` is
78
+ * server-assigned and cannot be set by clients; passing it throws
79
+ * synchronously without making an HTTP call.
80
+ */
81
+ async update(emailAddress, threadId, options = {}) {
82
+ const body = {};
83
+ if (options.folder !== undefined) {
84
+ if (options.folder === ThreadFolder.BLOCKED) {
85
+ throw new Error("folder='blocked' is server-assigned and cannot be set by clients " +
86
+ "— the server will reject this PATCH.");
87
+ }
88
+ body["folder"] = options.folder;
89
+ }
90
+ const data = await this.http.patch(`/mailboxes/${emailAddress}/threads/${threadId}`, body);
91
+ return parseThread(data);
92
+ }
48
93
  /** Delete a thread. */
49
94
  async delete(emailAddress, threadId) {
50
95
  await this.http.delete(`/mailboxes/${emailAddress}/threads/${threadId}`);
@@ -1 +1 @@
1
- {"version":3,"file":"threads.js","sourceRoot":"","sources":["../../../src/mail/resources/threads.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAKL,WAAW,EACX,iBAAiB,GAClB,MAAM,aAAa,CAAC;AAErB,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAE7B,MAAM,OAAO,eAAe;IACG;IAA7B,YAA6B,IAAmB;QAAnB,SAAI,GAAJ,IAAI,CAAe;IAAG,CAAC;IAEpD;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,CAAC,IAAI,CACT,YAAoB,EACpB,OAA+B;QAE/B,MAAM,KAAK,GAAG,OAAO,EAAE,QAAQ,IAAI,iBAAiB,CAAC;QACrD,IAAI,MAA0B,CAAC;QAE/B,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAC9B,cAAc,YAAY,UAAU,EACpC,EAAE,KAAK,EAAE,MAAM,EAAE,CAClB,CAAC;YACF,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC9B,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAAE,MAAM;YAC1B,MAAM,GAAG,IAAI,CAAC,WAAW,IAAI,SAAS,CAAC;QACzC,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,GAAG,CAAC,YAAoB,EAAE,QAAgB;QAC9C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAC9B,cAAc,YAAY,YAAY,QAAQ,EAAE,CACjD,CAAC;QACF,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,uBAAuB;IACvB,KAAK,CAAC,MAAM,CAAC,YAAoB,EAAE,QAAgB;QACjD,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,YAAY,YAAY,QAAQ,EAAE,CAAC,CAAC;IAC3E,CAAC;CACF"}
1
+ {"version":3,"file":"threads.js","sourceRoot":"","sources":["../../../src/mail/resources/threads.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAKL,YAAY,EACZ,WAAW,EACX,iBAAiB,GAClB,MAAM,aAAa,CAAC;AAErB,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAE7B,MAAM,OAAO,eAAe;IACG;IAA7B,YAA6B,IAAmB;QAAnB,SAAI,GAAJ,IAAI,CAAe;IAAG,CAAC;IAEpD;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,CAAC,IAAI,CACT,YAAoB,EACpB,OAAsD;QAEtD,MAAM,KAAK,GAAG,OAAO,EAAE,QAAQ,IAAI,iBAAiB,CAAC;QACrD,IAAI,MAA0B,CAAC;QAE/B,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,MAAM,GAAgD;gBAC1D,KAAK;gBACL,MAAM;aACP,CAAC;YACF,IAAI,OAAO,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;gBAClC,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YACjC,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAC9B,cAAc,YAAY,UAAU,EACpC,MAAM,CACP,CAAC;YACF,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC9B,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAAE,MAAM;YAC1B,MAAM,GAAG,IAAI,CAAC,WAAW,IAAI,SAAS,CAAC;QACzC,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,WAAW,CAAC,YAAoB;QACpC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAC9B,cAAc,YAAY,kBAAkB,CAC7C,CAAC;QACF,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAiB,CAAC,CAAC;IAC5C,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,GAAG,CAAC,YAAoB,EAAE,QAAgB;QAC9C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAC9B,cAAc,YAAY,YAAY,QAAQ,EAAE,CACjD,CAAC;QACF,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,MAAM,CACV,YAAoB,EACpB,QAAgB,EAChB,UAAqC,EAAE;QAEvC,MAAM,IAAI,GAA4B,EAAE,CAAC;QACzC,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACjC,IAAI,OAAO,CAAC,MAAM,KAAK,YAAY,CAAC,OAAO,EAAE,CAAC;gBAC5C,MAAM,IAAI,KAAK,CACb,mEAAmE;oBACjE,sCAAsC,CACzC,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;QAClC,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAChC,cAAc,YAAY,YAAY,QAAQ,EAAE,EAChD,IAAI,CACL,CAAC;QACF,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,uBAAuB;IACvB,KAAK,CAAC,MAAM,CAAC,YAAoB,EAAE,QAAgB;QACjD,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,YAAY,YAAY,QAAQ,EAAE,CAAC,CAAC;IAC3E,CAAC;CACF"}
@@ -8,13 +8,86 @@ export declare enum MessageDirection {
8
8
  /** Email sent by the mailbox. */
9
9
  OUTBOUND = "outbound"
10
10
  }
11
+ /**
12
+ * Strategy for embedding the original message in a forward.
13
+ *
14
+ * `INLINE` — render the original body inline below a Gmail-style preamble.
15
+ * May not perfectly preserve inline images or complex layouts.
16
+ * `WRAPPED` — attach the original raw MIME as a single `message/rfc822`
17
+ * part — semantically preserved.
18
+ */
19
+ export declare enum ForwardMode {
20
+ INLINE = "inline",
21
+ WRAPPED = "wrapped"
22
+ }
23
+ /**
24
+ * Contact-rule filter mode on a mailbox or phone number.
25
+ *
26
+ * `WHITELIST` — only addresses that match an `allow` rule are delivered.
27
+ * `BLACKLIST` — everything is delivered except matches against a
28
+ * `block` rule. This is the default.
29
+ */
30
+ export declare enum FilterMode {
31
+ WHITELIST = "whitelist",
32
+ BLACKLIST = "blacklist"
33
+ }
34
+ /**
35
+ * Logical folder a thread lives in.
36
+ *
37
+ * `BLOCKED` is server-assigned and is not client-settable — PATCH will
38
+ * reject it.
39
+ */
40
+ export declare enum ThreadFolder {
41
+ INBOX = "inbox",
42
+ SPAM = "spam",
43
+ BLOCKED = "blocked",
44
+ ARCHIVE = "archive"
45
+ }
46
+ /** Whether a matching address is allowed through or blocked. */
47
+ export declare enum MailRuleAction {
48
+ ALLOW = "allow",
49
+ BLOCK = "block"
50
+ }
51
+ /** What a mail contact rule matches on. */
52
+ export declare enum MailRuleMatchType {
53
+ EXACT_EMAIL = "exact_email",
54
+ DOMAIN = "domain"
55
+ }
56
+ /** Whether a contact rule is currently enforced. */
57
+ export declare enum ContactRuleStatus {
58
+ ACTIVE = "active",
59
+ PAUSED = "paused"
60
+ }
61
+ export interface FilterModeChangeNotice {
62
+ /** The mode the resource was just flipped to. */
63
+ newFilterMode: FilterMode;
64
+ /**
65
+ * Action whose rules are now redundant under `newFilterMode` —
66
+ * `"block"` under whitelist, `"allow"` under blacklist. Typed as a
67
+ * free-form string to tolerate new server values.
68
+ */
69
+ redundantRuleAction: string;
70
+ /**
71
+ * Count of active rules whose `action` equals `redundantRuleAction`.
72
+ * `0` is a clean flip. Paused / deleted rules are not counted.
73
+ */
74
+ redundantRuleCount: number;
75
+ }
11
76
  export interface Mailbox {
12
77
  id: string;
13
78
  emailAddress: string;
14
79
  displayName: string | null;
15
80
  webhookUrl: string | null;
81
+ filterMode: FilterMode;
82
+ /**
83
+ * UUID of the owning agent identity, or `null` if the mailbox is
84
+ * standalone (not tied to any agent). Always present on every mailbox
85
+ * response shape.
86
+ */
87
+ agentIdentityId: string | null;
16
88
  createdAt: Date;
17
89
  updatedAt: Date;
90
+ filterModeChangeNotice: FilterModeChangeNotice | null;
18
91
  }
19
92
  export interface Message {
20
93
  id: string;
@@ -51,6 +124,7 @@ export interface Thread {
51
124
  id: string;
52
125
  mailboxId: string;
53
126
  subject: string | null;
127
+ folder: ThreadFolder;
54
128
  messageCount: number;
55
129
  lastMessageAt: Date;
56
130
  createdAt: Date;
@@ -59,11 +133,29 @@ export interface ThreadDetail extends Thread {
59
133
  /** All messages in the thread, oldest-first */
60
134
  messages: Message[];
61
135
  }
136
+ export interface MailContactRule {
137
+ id: string;
138
+ mailboxId: string;
139
+ action: MailRuleAction;
140
+ matchType: MailRuleMatchType;
141
+ matchTarget: string;
142
+ status: ContactRuleStatus;
143
+ createdAt: Date;
144
+ updatedAt: Date;
145
+ }
146
+ export interface RawFilterModeChangeNotice {
147
+ new_filter_mode: string;
148
+ redundant_rule_action: string;
149
+ redundant_rule_count: number;
150
+ }
62
151
  export interface RawMailbox {
63
152
  id: string;
64
153
  email_address: string;
65
154
  display_name: string | null;
66
155
  webhook_url: string | null;
156
+ filter_mode?: string;
157
+ agent_identity_id?: string | null;
158
+ filter_mode_change_notice?: RawFilterModeChangeNotice | null;
67
159
  created_at: string;
68
160
  updated_at: string;
69
161
  }
@@ -96,19 +188,32 @@ export interface RawThread {
96
188
  id: string;
97
189
  mailbox_id: string;
98
190
  subject: string | null;
191
+ folder?: string;
99
192
  message_count: number;
100
193
  last_message_at: string;
101
194
  created_at: string;
102
195
  messages?: RawMessage[];
103
196
  }
197
+ export interface RawMailContactRule {
198
+ id: string;
199
+ mailbox_id: string;
200
+ action: string;
201
+ match_type: string;
202
+ match_target: string;
203
+ status?: string;
204
+ created_at: string;
205
+ updated_at: string;
206
+ }
104
207
  export interface RawCursorPage<T> {
105
208
  items: T[];
106
209
  next_cursor: string | null;
107
210
  has_more: boolean;
108
211
  }
212
+ export declare function parseFilterModeChangeNotice(r: RawFilterModeChangeNotice): FilterModeChangeNotice;
109
213
  export declare function parseMailbox(r: RawMailbox): Mailbox;
110
214
  export declare function parseMessage(r: RawMessage): Message;
111
215
  export declare function parseMessageDetail(r: RawMessage): MessageDetail;
112
216
  export declare function parseThread(r: RawThread): Thread;
113
217
  export declare function parseThreadDetail(r: RawThread): ThreadDetail;
218
+ export declare function parseMailContactRule(r: RawMailContactRule): MailContactRule;
114
219
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/mail/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/mail/types.ts"],"names":[],"mappings":"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"}
@@ -9,15 +9,83 @@ export var MessageDirection;
9
9
  /** Email sent by the mailbox. */
10
10
  MessageDirection["OUTBOUND"] = "outbound";
11
11
  })(MessageDirection || (MessageDirection = {}));
12
+ /**
13
+ * Strategy for embedding the original message in a forward.
14
+ *
15
+ * `INLINE` — render the original body inline below a Gmail-style preamble.
16
+ * May not perfectly preserve inline images or complex layouts.
17
+ * `WRAPPED` — attach the original raw MIME as a single `message/rfc822`
18
+ * part — semantically preserved.
19
+ */
20
+ export var ForwardMode;
21
+ (function (ForwardMode) {
22
+ ForwardMode["INLINE"] = "inline";
23
+ ForwardMode["WRAPPED"] = "wrapped";
24
+ })(ForwardMode || (ForwardMode = {}));
25
+ /**
26
+ * Contact-rule filter mode on a mailbox or phone number.
27
+ *
28
+ * `WHITELIST` — only addresses that match an `allow` rule are delivered.
29
+ * `BLACKLIST` — everything is delivered except matches against a
30
+ * `block` rule. This is the default.
31
+ */
32
+ export var FilterMode;
33
+ (function (FilterMode) {
34
+ FilterMode["WHITELIST"] = "whitelist";
35
+ FilterMode["BLACKLIST"] = "blacklist";
36
+ })(FilterMode || (FilterMode = {}));
37
+ /**
38
+ * Logical folder a thread lives in.
39
+ *
40
+ * `BLOCKED` is server-assigned and is not client-settable — PATCH will
41
+ * reject it.
42
+ */
43
+ export var ThreadFolder;
44
+ (function (ThreadFolder) {
45
+ ThreadFolder["INBOX"] = "inbox";
46
+ ThreadFolder["SPAM"] = "spam";
47
+ ThreadFolder["BLOCKED"] = "blocked";
48
+ ThreadFolder["ARCHIVE"] = "archive";
49
+ })(ThreadFolder || (ThreadFolder = {}));
50
+ /** Whether a matching address is allowed through or blocked. */
51
+ export var MailRuleAction;
52
+ (function (MailRuleAction) {
53
+ MailRuleAction["ALLOW"] = "allow";
54
+ MailRuleAction["BLOCK"] = "block";
55
+ })(MailRuleAction || (MailRuleAction = {}));
56
+ /** What a mail contact rule matches on. */
57
+ export var MailRuleMatchType;
58
+ (function (MailRuleMatchType) {
59
+ MailRuleMatchType["EXACT_EMAIL"] = "exact_email";
60
+ MailRuleMatchType["DOMAIN"] = "domain";
61
+ })(MailRuleMatchType || (MailRuleMatchType = {}));
62
+ /** Whether a contact rule is currently enforced. */
63
+ export var ContactRuleStatus;
64
+ (function (ContactRuleStatus) {
65
+ ContactRuleStatus["ACTIVE"] = "active";
66
+ ContactRuleStatus["PAUSED"] = "paused";
67
+ })(ContactRuleStatus || (ContactRuleStatus = {}));
12
68
  // ---- parsers ----
69
+ export function parseFilterModeChangeNotice(r) {
70
+ return {
71
+ newFilterMode: r.new_filter_mode,
72
+ redundantRuleAction: r.redundant_rule_action,
73
+ redundantRuleCount: r.redundant_rule_count,
74
+ };
75
+ }
13
76
  export function parseMailbox(r) {
14
77
  return {
15
78
  id: r.id,
16
79
  emailAddress: r.email_address,
17
80
  displayName: r.display_name,
18
81
  webhookUrl: r.webhook_url,
82
+ filterMode: r.filter_mode ?? FilterMode.BLACKLIST,
83
+ agentIdentityId: r.agent_identity_id ?? null,
19
84
  createdAt: new Date(r.created_at),
20
85
  updatedAt: new Date(r.updated_at),
86
+ filterModeChangeNotice: r.filter_mode_change_notice
87
+ ? parseFilterModeChangeNotice(r.filter_mode_change_notice)
88
+ : null,
21
89
  };
22
90
  }
23
91
  export function parseMessage(r) {
@@ -57,6 +125,7 @@ export function parseThread(r) {
57
125
  id: r.id,
58
126
  mailboxId: r.mailbox_id,
59
127
  subject: r.subject,
128
+ folder: r.folder ?? ThreadFolder.INBOX,
60
129
  messageCount: r.message_count,
61
130
  lastMessageAt: new Date(r.last_message_at),
62
131
  createdAt: new Date(r.created_at),
@@ -68,4 +137,16 @@ export function parseThreadDetail(r) {
68
137
  messages: (r.messages ?? []).map(parseMessage),
69
138
  };
70
139
  }
140
+ export function parseMailContactRule(r) {
141
+ return {
142
+ id: r.id,
143
+ mailboxId: r.mailbox_id,
144
+ action: r.action,
145
+ matchType: r.match_type,
146
+ matchTarget: r.match_target,
147
+ status: r.status ?? ContactRuleStatus.ACTIVE,
148
+ createdAt: new Date(r.created_at),
149
+ updatedAt: new Date(r.updated_at),
150
+ };
151
+ }
71
152
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/mail/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,gEAAgE;AAChE,MAAM,CAAN,IAAY,gBAKX;AALD,WAAY,gBAAgB;IAC1B,8CAA8C;IAC9C,uCAAmB,CAAA;IACnB,iCAAiC;IACjC,yCAAqB,CAAA;AACvB,CAAC,EALW,gBAAgB,KAAhB,gBAAgB,QAK3B;AAgHD,oBAAoB;AAEpB,MAAM,UAAU,YAAY,CAAC,CAAa;IACxC,OAAO;QACL,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,YAAY,EAAE,CAAC,CAAC,aAAa;QAC7B,WAAW,EAAE,CAAC,CAAC,YAAY;QAC3B,UAAU,EAAE,CAAC,CAAC,WAAW;QACzB,SAAS,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC;QACjC,SAAS,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC;KAClC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,CAAa;IACxC,OAAO;QACL,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,SAAS,EAAE,CAAC,CAAC,UAAU;QACvB,QAAQ,EAAE,CAAC,CAAC,SAAS;QACrB,SAAS,EAAE,CAAC,CAAC,UAAU;QACvB,WAAW,EAAE,CAAC,CAAC,YAAY;QAC3B,WAAW,EAAE,CAAC,CAAC,YAAY;QAC3B,WAAW,EAAE,CAAC,CAAC,YAAY,IAAI,IAAI;QACnC,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,SAAS,EAAE,CAAC,CAAC,SAA6B;QAC1C,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,MAAM,EAAE,CAAC,CAAC,OAAO;QACjB,SAAS,EAAE,CAAC,CAAC,UAAU;QACvB,cAAc,EAAE,CAAC,CAAC,eAAe;QACjC,SAAS,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC;KAClC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,CAAa;IAC9C,OAAO;QACL,GAAG,YAAY,CAAC,CAAC,CAAC;QAClB,QAAQ,EAAE,CAAC,CAAC,SAAS,IAAI,IAAI;QAC7B,QAAQ,EAAE,CAAC,CAAC,SAAS,IAAI,IAAI;QAC7B,YAAY,EAAE,CAAC,CAAC,aAAa,IAAI,IAAI;QACrC,SAAS,EAAE,CAAC,CAAC,WAAW,IAAI,IAAI;QAChC,UAAU,EAAE,CAAC,CAAC,UAAU,IAAI,IAAI;QAChC,kBAAkB,EAAE,CAAC,CAAC,mBAAmB,IAAI,IAAI;QACjD,YAAY,EAAE,CAAC,CAAC,cAAc,IAAI,IAAI;QACtC,SAAS,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,UAAW,CAAC;KACnC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,CAAY;IACtC,OAAO;QACL,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,SAAS,EAAE,CAAC,CAAC,UAAU;QACvB,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,YAAY,EAAE,CAAC,CAAC,aAAa;QAC7B,aAAa,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC;QAC1C,SAAS,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC;KAClC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,CAAY;IAC5C,OAAO;QACL,GAAG,WAAW,CAAC,CAAC,CAAC;QACjB,QAAQ,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC;KAC/C,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/mail/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * inkbox-notes/resources/noteAccess.ts
3
+ *
4
+ * Per-note access grant management. No wildcards.
5
+ */
6
+ import { HttpTransport } from "../../_http.js";
7
+ import { NoteAccess } from "../types.js";
8
+ export declare class NoteAccessResource {
9
+ private readonly http;
10
+ constructor(http: HttpTransport);
11
+ list(noteId: string): Promise<NoteAccess[]>;
12
+ grant(noteId: string, identityId: string): Promise<NoteAccess>;
13
+ revoke(noteId: string, identityId: string): Promise<void>;
14
+ }
15
+ //# sourceMappingURL=noteAccess.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"noteAccess.d.ts","sourceRoot":"","sources":["../../../src/notes/resources/noteAccess.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAkC,MAAM,aAAa,CAAC;AAIzE,qBAAa,kBAAkB;IACjB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,aAAa;IAE1C,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAQ3C,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAQ9D,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGhE"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * inkbox-notes/resources/noteAccess.ts
3
+ *
4
+ * Per-note access grant management. No wildcards.
5
+ */
6
+ import { parseNoteAccess } from "../types.js";
7
+ const BASE = "/notes";
8
+ export class NoteAccessResource {
9
+ http;
10
+ constructor(http) {
11
+ this.http = http;
12
+ }
13
+ async list(noteId) {
14
+ const data = await this.http.get(`${BASE}/${noteId}/access`);
15
+ const items = Array.isArray(data) ? data : data.items;
16
+ return items.map(parseNoteAccess);
17
+ }
18
+ async grant(noteId, identityId) {
19
+ const data = await this.http.post(`${BASE}/${noteId}/access`, { identity_id: identityId });
20
+ return parseNoteAccess(data);
21
+ }
22
+ async revoke(noteId, identityId) {
23
+ await this.http.delete(`${BASE}/${noteId}/access/${identityId}`);
24
+ }
25
+ }
26
+ //# sourceMappingURL=noteAccess.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"noteAccess.js","sourceRoot":"","sources":["../../../src/notes/resources/noteAccess.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAA6B,eAAe,EAAE,MAAM,aAAa,CAAC;AAEzE,MAAM,IAAI,GAAG,QAAQ,CAAC;AAEtB,MAAM,OAAO,kBAAkB;IACA;IAA7B,YAA6B,IAAmB;QAAnB,SAAI,GAAJ,IAAI,CAAe;IAAG,CAAC;IAEpD,KAAK,CAAC,IAAI,CAAC,MAAc;QACvB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAE9B,GAAG,IAAI,IAAI,MAAM,SAAS,CAAC,CAAC;QAC9B,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;QACtD,OAAO,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,MAAc,EAAE,UAAkB;QAC5C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAC/B,GAAG,IAAI,IAAI,MAAM,SAAS,EAC1B,EAAE,WAAW,EAAE,UAAU,EAAE,CAC5B,CAAC;QACF,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAc,EAAE,UAAkB;QAC7C,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,IAAI,MAAM,WAAW,UAAU,EAAE,CAAC,CAAC;IACnE,CAAC;CACF"}