@haex-space/vault-sdk 3.3.0 → 3.5.0

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.
@@ -1344,6 +1344,8 @@ interface MessageEnvelope {
1344
1344
  inReplyTo?: string;
1345
1345
  references: string[];
1346
1346
  size?: number;
1347
+ /** Whether the message has any non-primary-body MIME part (regular attachment or inline cid part). */
1348
+ hasAttachments: boolean;
1347
1349
  }
1348
1350
  interface Attachment {
1349
1351
  partIndex: number;
@@ -1426,6 +1428,14 @@ declare class MailAPI {
1426
1428
  fetchEnvelopesAsync(imap: ImapConfig, mailbox: string, range: FetchRange): Promise<MessageEnvelope[]>;
1427
1429
  /** Fetch a full message (envelope + body + attachment metadata) by UID. */
1428
1430
  fetchMessageAsync(imap: ImapConfig, mailbox: string, uid: number): Promise<MailMessage>;
1431
+ /**
1432
+ * Fetch a single attachment's raw bytes by its `partIndex` (from the
1433
+ * `attachments` array of a fetched `MailMessage`), returned as a
1434
+ * standard-alphabet base64 string. The base64 form drops straight into
1435
+ * `OutgoingAttachment.data` when forwarding, and decodes to bytes for
1436
+ * viewing or downloading.
1437
+ */
1438
+ fetchAttachmentAsync(imap: ImapConfig, mailbox: string, uid: number, partIndex: number): Promise<string>;
1429
1439
  /**
1430
1440
  * Set or unset IMAP flags. Use `flags=["\\Seen"]` + `add=true` to
1431
1441
  * mark messages as read; `add=false` removes the flag(s).
@@ -1344,6 +1344,8 @@ interface MessageEnvelope {
1344
1344
  inReplyTo?: string;
1345
1345
  references: string[];
1346
1346
  size?: number;
1347
+ /** Whether the message has any non-primary-body MIME part (regular attachment or inline cid part). */
1348
+ hasAttachments: boolean;
1347
1349
  }
1348
1350
  interface Attachment {
1349
1351
  partIndex: number;
@@ -1426,6 +1428,14 @@ declare class MailAPI {
1426
1428
  fetchEnvelopesAsync(imap: ImapConfig, mailbox: string, range: FetchRange): Promise<MessageEnvelope[]>;
1427
1429
  /** Fetch a full message (envelope + body + attachment metadata) by UID. */
1428
1430
  fetchMessageAsync(imap: ImapConfig, mailbox: string, uid: number): Promise<MailMessage>;
1431
+ /**
1432
+ * Fetch a single attachment's raw bytes by its `partIndex` (from the
1433
+ * `attachments` array of a fetched `MailMessage`), returned as a
1434
+ * standard-alphabet base64 string. The base64 form drops straight into
1435
+ * `OutgoingAttachment.data` when forwarding, and decodes to bytes for
1436
+ * viewing or downloading.
1437
+ */
1438
+ fetchAttachmentAsync(imap: ImapConfig, mailbox: string, uid: number, partIndex: number): Promise<string>;
1429
1439
  /**
1430
1440
  * Set or unset IMAP flags. Use `flags=["\\Seen"]` + `add=true` to
1431
1441
  * mark messages as read; `add=false` removes the flag(s).
package/dist/index.d.mts CHANGED
@@ -1,5 +1,5 @@
1
- import { H as HaexVaultSdk } from './client-BW3ayV19.mjs';
2
- export { A as AuthorizedClient, B as BlockedClient, C as ConnectionSecurity, D as DatabaseAPI, a as DecryptedSpace, b as DeepLink, c as Device, d as DeviceInfo, e as DeviceType, f as DirEntry, E as ExternalAuthDecision, g as ExternalConnection, h as ExternalConnectionErrorCode, i as ExternalConnectionState, j as ExternalRequest, k as ExternalRequestEvent, l as ExternalRequestHandler, m as ExternalRequestPayload, n as ExternalResponse, F as FileStat, o as FilesystemAPI, I as ImapConfig, K as KnownPath, p as KnownPaths, L as LOCALSEND_EVENTS, q as LocalSendAPI, r as LocalSendEvent, s as LocalSendFileInfo, t as LocalSendSettings, M as MailAPI, u as MailAccount, v as MailAddress, w as MailAttachment, x as MailFetchRange, y as MailMessage, z as MailboxInfo, G as MessageEnvelope, N as NotificationAction, J as NotificationClickEvent, O as NotificationOptions, P as NotificationsAPI, Q as OutgoingAttachment, R as OutgoingMessage, T as PasswordInput, U as PasswordItemFull, V as PasswordItemSummary, W as PasswordKeyValue, X as PasswordKeyValueInput, Y as PasswordsAPI, Z as PendingAuthorization, _ as PendingTransfer, $ as PermissionsAPI, a0 as RemoteAddBackendRequest, a1 as RemoteS3Config, a2 as RemoteS3PublicConfig, a3 as RemoteStorageAPI, a4 as RemoteStorageBackendInfo, a5 as RemoteStorageObjectInfo, a6 as RemoteUpdateBackendRequest, a7 as RequestedExtension, a8 as SelectFileOptions, a9 as SelectFolderOptions, aa as ServerInfo, ab as ServerStatus, ac as SessionAuthorization, ad as SharedSpace, ae as ShellAPI, af as ShellCreateOptions, ag as ShellCreateResponse, ah as ShellExitEvent, ai as ShellOutputEvent, aj as SmtpConfig, ak as SpaceAccessTokenInfo, al as SpaceAssignment, am as SpaceInvite, an as SpaceKeyGrantInfo, ao as SpaceMemberInfo, ap as SpacesAPI, aq as SyncBackendInfo, ar as TransferDirection, as as TransferProgress, at as TransferState, au as WebAPI, av as canExternalClientSendRequests, aw as isExternalClientConnected } from './client-BW3ayV19.mjs';
1
+ import { H as HaexVaultSdk } from './client-DCoY4f3Q.mjs';
2
+ export { A as AuthorizedClient, B as BlockedClient, C as ConnectionSecurity, D as DatabaseAPI, a as DecryptedSpace, b as DeepLink, c as Device, d as DeviceInfo, e as DeviceType, f as DirEntry, E as ExternalAuthDecision, g as ExternalConnection, h as ExternalConnectionErrorCode, i as ExternalConnectionState, j as ExternalRequest, k as ExternalRequestEvent, l as ExternalRequestHandler, m as ExternalRequestPayload, n as ExternalResponse, F as FileStat, o as FilesystemAPI, I as ImapConfig, K as KnownPath, p as KnownPaths, L as LOCALSEND_EVENTS, q as LocalSendAPI, r as LocalSendEvent, s as LocalSendFileInfo, t as LocalSendSettings, M as MailAPI, u as MailAccount, v as MailAddress, w as MailAttachment, x as MailFetchRange, y as MailMessage, z as MailboxInfo, G as MessageEnvelope, N as NotificationAction, J as NotificationClickEvent, O as NotificationOptions, P as NotificationsAPI, Q as OutgoingAttachment, R as OutgoingMessage, T as PasswordInput, U as PasswordItemFull, V as PasswordItemSummary, W as PasswordKeyValue, X as PasswordKeyValueInput, Y as PasswordsAPI, Z as PendingAuthorization, _ as PendingTransfer, $ as PermissionsAPI, a0 as RemoteAddBackendRequest, a1 as RemoteS3Config, a2 as RemoteS3PublicConfig, a3 as RemoteStorageAPI, a4 as RemoteStorageBackendInfo, a5 as RemoteStorageObjectInfo, a6 as RemoteUpdateBackendRequest, a7 as RequestedExtension, a8 as SelectFileOptions, a9 as SelectFolderOptions, aa as ServerInfo, ab as ServerStatus, ac as SessionAuthorization, ad as SharedSpace, ae as ShellAPI, af as ShellCreateOptions, ag as ShellCreateResponse, ah as ShellExitEvent, ai as ShellOutputEvent, aj as SmtpConfig, ak as SpaceAccessTokenInfo, al as SpaceAssignment, am as SpaceInvite, an as SpaceKeyGrantInfo, ao as SpaceMemberInfo, ap as SpacesAPI, aq as SyncBackendInfo, ar as TransferDirection, as as TransferProgress, at as TransferState, au as WebAPI, av as canExternalClientSendRequests, aw as isExternalClientConnected } from './client-DCoY4f3Q.mjs';
3
3
  import { E as ExtensionManifest, h as SignedClaimPresentation, H as HaexHubConfig } from './types-fHuxbqa4.mjs';
4
4
  export { A as ApplicationContext, C as ClaimRequirement, i as ContextChangedEvent, j as DEFAULT_TIMEOUT, k as DatabaseColumnInfo, l as DatabaseExecuteParams, m as DatabasePermission, g as DatabasePermissionRequest, n as DatabaseQueryParams, D as DatabaseQueryResult, o as DatabaseTableInfo, c as EXTERNAL_EVENTS, p as ErrorCode, f as EventCallback, a as ExtensionInfo, q as ExtensionRuntimeMode, r as ExternalEvent, F as FileChangeEvent, s as FileChangePayload, t as FileChangeType, u as FilteredSyncTablesResult, v as HAEXTENSION_EVENTS, b as HaexHubEvent, w as HaexHubRequest, x as HaexHubResponse, y as HaexVaultSdkError, z as HaextensionEvent, I as IdentityClaim, B as ManifestI18nEntry, N as NOTIFICATION_EVENTS, G as NotificationEvent, J as PermissionDeniedError, K as PermissionErrorBase, L as PermissionErrorCode, O as PermissionPromptError, P as PermissionResponse, Q as PermissionStatus, R as SHELL_EVENTS, T as SearchQuery, U as SearchRequestEvent, S as SearchResult, V as ShellEvent, X as SyncTablesUpdatedEvent, Y as TABLE_SEPARATOR, W as WebRequestOptions, e as WebResponse, Z as getTableName, _ as isPermissionDeniedError, $ as isPermissionError, a0 as isPermissionPromptError } from './types-fHuxbqa4.mjs';
5
5
  export { H as HaextensionConfig } from './config-D_HXjsEV.mjs';
@@ -122,6 +122,8 @@ declare const MAIL_COMMANDS: {
122
122
  readonly fetchEnvelopes: "extension_mail_fetch_envelopes";
123
123
  /** Full message fetch (envelope + body + attachment metadata) */
124
124
  readonly fetchMessage: "extension_mail_fetch_message";
125
+ /** Fetch a single attachment's bytes (base64) by part index */
126
+ readonly fetchAttachment: "extension_mail_fetch_attachment";
125
127
  /** Set or unset IMAP flags on a UID set */
126
128
  readonly setFlags: "extension_mail_set_flags";
127
129
  /** MOVE messages between mailboxes (COPY+EXPUNGE fallback) */
@@ -785,6 +787,7 @@ declare const TAURI_COMMANDS: {
785
787
  readonly listMailboxes: "extension_mail_list_mailboxes";
786
788
  readonly fetchEnvelopes: "extension_mail_fetch_envelopes";
787
789
  readonly fetchMessage: "extension_mail_fetch_message";
790
+ readonly fetchAttachment: "extension_mail_fetch_attachment";
788
791
  readonly setFlags: "extension_mail_set_flags";
789
792
  readonly moveMessages: "extension_mail_move_messages";
790
793
  readonly appendMessage: "extension_mail_append_message";
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { H as HaexVaultSdk } from './client-Cm23j1wm.js';
2
- export { A as AuthorizedClient, B as BlockedClient, C as ConnectionSecurity, D as DatabaseAPI, a as DecryptedSpace, b as DeepLink, c as Device, d as DeviceInfo, e as DeviceType, f as DirEntry, E as ExternalAuthDecision, g as ExternalConnection, h as ExternalConnectionErrorCode, i as ExternalConnectionState, j as ExternalRequest, k as ExternalRequestEvent, l as ExternalRequestHandler, m as ExternalRequestPayload, n as ExternalResponse, F as FileStat, o as FilesystemAPI, I as ImapConfig, K as KnownPath, p as KnownPaths, L as LOCALSEND_EVENTS, q as LocalSendAPI, r as LocalSendEvent, s as LocalSendFileInfo, t as LocalSendSettings, M as MailAPI, u as MailAccount, v as MailAddress, w as MailAttachment, x as MailFetchRange, y as MailMessage, z as MailboxInfo, G as MessageEnvelope, N as NotificationAction, J as NotificationClickEvent, O as NotificationOptions, P as NotificationsAPI, Q as OutgoingAttachment, R as OutgoingMessage, T as PasswordInput, U as PasswordItemFull, V as PasswordItemSummary, W as PasswordKeyValue, X as PasswordKeyValueInput, Y as PasswordsAPI, Z as PendingAuthorization, _ as PendingTransfer, $ as PermissionsAPI, a0 as RemoteAddBackendRequest, a1 as RemoteS3Config, a2 as RemoteS3PublicConfig, a3 as RemoteStorageAPI, a4 as RemoteStorageBackendInfo, a5 as RemoteStorageObjectInfo, a6 as RemoteUpdateBackendRequest, a7 as RequestedExtension, a8 as SelectFileOptions, a9 as SelectFolderOptions, aa as ServerInfo, ab as ServerStatus, ac as SessionAuthorization, ad as SharedSpace, ae as ShellAPI, af as ShellCreateOptions, ag as ShellCreateResponse, ah as ShellExitEvent, ai as ShellOutputEvent, aj as SmtpConfig, ak as SpaceAccessTokenInfo, al as SpaceAssignment, am as SpaceInvite, an as SpaceKeyGrantInfo, ao as SpaceMemberInfo, ap as SpacesAPI, aq as SyncBackendInfo, ar as TransferDirection, as as TransferProgress, at as TransferState, au as WebAPI, av as canExternalClientSendRequests, aw as isExternalClientConnected } from './client-Cm23j1wm.js';
1
+ import { H as HaexVaultSdk } from './client-mcuC3gP5.js';
2
+ export { A as AuthorizedClient, B as BlockedClient, C as ConnectionSecurity, D as DatabaseAPI, a as DecryptedSpace, b as DeepLink, c as Device, d as DeviceInfo, e as DeviceType, f as DirEntry, E as ExternalAuthDecision, g as ExternalConnection, h as ExternalConnectionErrorCode, i as ExternalConnectionState, j as ExternalRequest, k as ExternalRequestEvent, l as ExternalRequestHandler, m as ExternalRequestPayload, n as ExternalResponse, F as FileStat, o as FilesystemAPI, I as ImapConfig, K as KnownPath, p as KnownPaths, L as LOCALSEND_EVENTS, q as LocalSendAPI, r as LocalSendEvent, s as LocalSendFileInfo, t as LocalSendSettings, M as MailAPI, u as MailAccount, v as MailAddress, w as MailAttachment, x as MailFetchRange, y as MailMessage, z as MailboxInfo, G as MessageEnvelope, N as NotificationAction, J as NotificationClickEvent, O as NotificationOptions, P as NotificationsAPI, Q as OutgoingAttachment, R as OutgoingMessage, T as PasswordInput, U as PasswordItemFull, V as PasswordItemSummary, W as PasswordKeyValue, X as PasswordKeyValueInput, Y as PasswordsAPI, Z as PendingAuthorization, _ as PendingTransfer, $ as PermissionsAPI, a0 as RemoteAddBackendRequest, a1 as RemoteS3Config, a2 as RemoteS3PublicConfig, a3 as RemoteStorageAPI, a4 as RemoteStorageBackendInfo, a5 as RemoteStorageObjectInfo, a6 as RemoteUpdateBackendRequest, a7 as RequestedExtension, a8 as SelectFileOptions, a9 as SelectFolderOptions, aa as ServerInfo, ab as ServerStatus, ac as SessionAuthorization, ad as SharedSpace, ae as ShellAPI, af as ShellCreateOptions, ag as ShellCreateResponse, ah as ShellExitEvent, ai as ShellOutputEvent, aj as SmtpConfig, ak as SpaceAccessTokenInfo, al as SpaceAssignment, am as SpaceInvite, an as SpaceKeyGrantInfo, ao as SpaceMemberInfo, ap as SpacesAPI, aq as SyncBackendInfo, ar as TransferDirection, as as TransferProgress, at as TransferState, au as WebAPI, av as canExternalClientSendRequests, aw as isExternalClientConnected } from './client-mcuC3gP5.js';
3
3
  import { E as ExtensionManifest, h as SignedClaimPresentation, H as HaexHubConfig } from './types-fHuxbqa4.js';
4
4
  export { A as ApplicationContext, C as ClaimRequirement, i as ContextChangedEvent, j as DEFAULT_TIMEOUT, k as DatabaseColumnInfo, l as DatabaseExecuteParams, m as DatabasePermission, g as DatabasePermissionRequest, n as DatabaseQueryParams, D as DatabaseQueryResult, o as DatabaseTableInfo, c as EXTERNAL_EVENTS, p as ErrorCode, f as EventCallback, a as ExtensionInfo, q as ExtensionRuntimeMode, r as ExternalEvent, F as FileChangeEvent, s as FileChangePayload, t as FileChangeType, u as FilteredSyncTablesResult, v as HAEXTENSION_EVENTS, b as HaexHubEvent, w as HaexHubRequest, x as HaexHubResponse, y as HaexVaultSdkError, z as HaextensionEvent, I as IdentityClaim, B as ManifestI18nEntry, N as NOTIFICATION_EVENTS, G as NotificationEvent, J as PermissionDeniedError, K as PermissionErrorBase, L as PermissionErrorCode, O as PermissionPromptError, P as PermissionResponse, Q as PermissionStatus, R as SHELL_EVENTS, T as SearchQuery, U as SearchRequestEvent, S as SearchResult, V as ShellEvent, X as SyncTablesUpdatedEvent, Y as TABLE_SEPARATOR, W as WebRequestOptions, e as WebResponse, Z as getTableName, _ as isPermissionDeniedError, $ as isPermissionError, a0 as isPermissionPromptError } from './types-fHuxbqa4.js';
5
5
  export { H as HaextensionConfig } from './config-D_HXjsEV.js';
@@ -122,6 +122,8 @@ declare const MAIL_COMMANDS: {
122
122
  readonly fetchEnvelopes: "extension_mail_fetch_envelopes";
123
123
  /** Full message fetch (envelope + body + attachment metadata) */
124
124
  readonly fetchMessage: "extension_mail_fetch_message";
125
+ /** Fetch a single attachment's bytes (base64) by part index */
126
+ readonly fetchAttachment: "extension_mail_fetch_attachment";
125
127
  /** Set or unset IMAP flags on a UID set */
126
128
  readonly setFlags: "extension_mail_set_flags";
127
129
  /** MOVE messages between mailboxes (COPY+EXPUNGE fallback) */
@@ -785,6 +787,7 @@ declare const TAURI_COMMANDS: {
785
787
  readonly listMailboxes: "extension_mail_list_mailboxes";
786
788
  readonly fetchEnvelopes: "extension_mail_fetch_envelopes";
787
789
  readonly fetchMessage: "extension_mail_fetch_message";
790
+ readonly fetchAttachment: "extension_mail_fetch_attachment";
788
791
  readonly setFlags: "extension_mail_set_flags";
789
792
  readonly moveMessages: "extension_mail_move_messages";
790
793
  readonly appendMessage: "extension_mail_append_message";
package/dist/index.js CHANGED
@@ -1079,6 +1079,8 @@ var MAIL_COMMANDS = {
1079
1079
  fetchEnvelopes: "extension_mail_fetch_envelopes",
1080
1080
  /** Full message fetch (envelope + body + attachment metadata) */
1081
1081
  fetchMessage: "extension_mail_fetch_message",
1082
+ /** Fetch a single attachment's bytes (base64) by part index */
1083
+ fetchAttachment: "extension_mail_fetch_attachment",
1082
1084
  /** Set or unset IMAP flags on a UID set */
1083
1085
  setFlags: "extension_mail_set_flags",
1084
1086
  /** MOVE messages between mailboxes (COPY+EXPUNGE fallback) */
@@ -2145,6 +2147,21 @@ var MailAPI = class {
2145
2147
  uid
2146
2148
  });
2147
2149
  }
2150
+ /**
2151
+ * Fetch a single attachment's raw bytes by its `partIndex` (from the
2152
+ * `attachments` array of a fetched `MailMessage`), returned as a
2153
+ * standard-alphabet base64 string. The base64 form drops straight into
2154
+ * `OutgoingAttachment.data` when forwarding, and decodes to bytes for
2155
+ * viewing or downloading.
2156
+ */
2157
+ async fetchAttachmentAsync(imap, mailbox, uid, partIndex) {
2158
+ return this.client.request(MAIL_COMMANDS.fetchAttachment, {
2159
+ imap,
2160
+ mailbox,
2161
+ uid,
2162
+ partIndex
2163
+ });
2164
+ }
2148
2165
  /**
2149
2166
  * Set or unset IMAP flags. Use `flags=["\\Seen"]` + `add=true` to
2150
2167
  * mark messages as read; `add=false` removes the flag(s).