Skip to content

MailKit macOS xcode13.1 rc

Alex Soto edited this page Oct 26, 2021 · 2 revisions

#MailKit.framework https://github.com/xamarin/xamarin-macios/pull/13113

diff -ruN /Applications/Xcode_13.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MailKit.framework/Headers/MEAddressAnnotation.h /Applications/Xcode_13.1.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MailKit.framework/Headers/MEAddressAnnotation.h
--- /Applications/Xcode_13.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MailKit.framework/Headers/MEAddressAnnotation.h	2021-08-07 05:22:33.000000000 -0400
+++ /Applications/Xcode_13.1.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MailKit.framework/Headers/MEAddressAnnotation.h	2021-09-18 08:45:31.000000000 -0400
@@ -14,7 +14,7 @@
 @interface MEAddressAnnotation : NSObject <NSSecureCoding>
 
 - (instancetype)init NS_UNAVAILABLE;
-- (instancetype)new NS_UNAVAILABLE;
++ (instancetype)new NS_UNAVAILABLE;
 
 /// @brief An annotation to denote a recipeint email address has an error when composing a mail message.
 /// @param localizedDescription - A localized string with a brief description of the error that may be presented to the user.
diff -ruN /Applications/Xcode_13.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MailKit.framework/Headers/MEComposeContext.h /Applications/Xcode_13.1.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MailKit.framework/Headers/MEComposeContext.h
--- /Applications/Xcode_13.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MailKit.framework/Headers/MEComposeContext.h	1969-12-31 19:00:00.000000000 -0500
+++ /Applications/Xcode_13.1.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MailKit.framework/Headers/MEComposeContext.h	2021-09-18 08:45:31.000000000 -0400
@@ -0,0 +1,57 @@
+//
+//  MEComposeContext.h
+//  MailKit
+//
+//  Copyright © 2021 Apple Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+@class MEMessage;
+
+NS_ASSUME_NONNULL_BEGIN
+
+/// @brief An enumeration corresponding to the action user took to start a new mail compose window.
+typedef NS_ENUM(NSInteger, MEComposeUserAction) {
+  /// Compose a new message.
+  MEComposeUserActionNewMessage = 1,
+  /// Reply to the sender of an original email.
+  MEComposeUserActionReply = 2,
+  /// Reply to the sender and all the recipeients of original email.
+  MEComposeUserActionReplyAll = 3,
+  /// Forward an original message.
+  MEComposeUserActionForward = 4,
+} API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, watchos, tvos, macCatalyst);
+
+/// @brief An object encapsulating additional information about the message being composed.
+API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, watchos, tvos, macCatalyst)
+@interface MEComposeContext : NSObject
+
+//+ (instancetype)new NS_UNAVAILABLE;
+//- (instancetype)init NS_UNAVAILABLE;
+
+/// @brief A unique identifier for the compose context.
+@property (nonatomic, readonly, strong) NSUUID *contextID;
+
+/// @brief The original email message on which user performed an action
+/// It is @c nil for @c MEComposeUserActionNewMessage actions.
+@property (nonatomic, nullable, readonly, strong) MEMessage *originalMessage;
+
+/// Indicates the action performed by the user that created this compose context.
+@property (nonatomic, readonly) MEComposeUserAction action;
+
+/// Boolean that indicates the message is encrypted by a Message Security extension.
+@property (nonatomic, readonly, assign) BOOL isEncrypted;
+
+/// Boolean that indicates if the user wants to encrypt the message.
+@property (nonatomic, readonly, assign) BOOL shouldEncrypt;
+
+/// Boolean that indicates the message is signed by a Message Security extension.
+@property (nonatomic, readonly, assign) BOOL isSigned;
+
+/// A Boolean that indicates if the user wants to sign the message.
+@property (nonatomic, readonly, assign) BOOL shouldSign;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_13.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MailKit.framework/Headers/MEComposeSession.h /Applications/Xcode_13.1.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MailKit.framework/Headers/MEComposeSession.h
--- /Applications/Xcode_13.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MailKit.framework/Headers/MEComposeSession.h	2021-08-07 05:22:32.000000000 -0400
+++ /Applications/Xcode_13.1.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MailKit.framework/Headers/MEComposeSession.h	2021-09-18 08:45:30.000000000 -0400
@@ -11,6 +11,7 @@
 NS_ASSUME_NONNULL_BEGIN
 
 @class MEAddressAnnotation;
+@class MEComposeContext;
 @class MEEmailAddress;
 @class MEExtensionViewController;
 @class MEMessage;
@@ -28,6 +29,9 @@
 /// @brief An instance of @c MEMessage that represents properties of the mail message that author is composing in this @c MEComposeSession
 @property (nonatomic, readonly, strong) MEMessage *mailMessage;
 
+/// @brief An instance of @c MEComposeContext that provides additional information about the compose session.
+@property (nonatomic, readonly, strong) MEComposeContext *composeContext;
+
 /// @brief Requests Mail to refresh compose session with new information that the extension has.
 /// @discussion Extensions can use this call this method to regenerate @c MEAddressAnnotation instances to replace those that were previously generated for this session. This will result in invocations to @c -[MEComposeSessionHandler @c session:annotateAddressesWithCompletionHandler:].
 - (void)reloadSession;
diff -ruN /Applications/Xcode_13.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MailKit.framework/Headers/MEDecodedMessage.h /Applications/Xcode_13.1.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MailKit.framework/Headers/MEDecodedMessage.h
--- /Applications/Xcode_13.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MailKit.framework/Headers/MEDecodedMessage.h	2021-08-07 05:22:32.000000000 -0400
+++ /Applications/Xcode_13.1.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MailKit.framework/Headers/MEDecodedMessage.h	2021-09-18 08:45:30.000000000 -0400
@@ -7,6 +7,7 @@
 
 #import <Foundation/Foundation.h>
 
+@class MEDecodedMessageBanner;
 @class MEMessageSecurityInformation;
 
 NS_ASSUME_NONNULL_BEGIN
@@ -23,9 +24,16 @@
 /// @brief The security information for whether or not the message was signed, encrypted, or had an errors in decoding.
 @property (nonatomic, readonly, strong) MEMessageSecurityInformation *securityInformation;
 
+/// @brief The context for the decoded message. This will be passed back to the extension when Mail loads the extension's custom view controller for the message.
+@property (nonatomic, nullable, readonly) NSData *context;
+
+/// @brief Suggestion information used to populate a suggestion banner at the top of the message view. Clicking on the action associated with the suggestion banner will present the extension's view controller for the provided message context.
+@property (nonatomic, nullable, readonly) MEDecodedMessageBanner *banner;
+
 + (instancetype)new NS_UNAVAILABLE;
 - (instancetype)init NS_UNAVAILABLE;
-- (instancetype)initWithData:(nullable NSData *)rawData securityInformation:(MEMessageSecurityInformation *)securityInformation;
+- (instancetype)initWithData:(nullable NSData *)rawData securityInformation:(MEMessageSecurityInformation *)securityInformation context:(nullable NSData *)context;
+- (instancetype)initWithData:(nullable NSData *)rawData securityInformation:(MEMessageSecurityInformation *)securityInformation context:(nullable NSData *)context banner:(nullable MEDecodedMessageBanner *)banner;
 @end
 
 NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_13.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MailKit.framework/Headers/MEDecodedMessageBanner.h /Applications/Xcode_13.1.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MailKit.framework/Headers/MEDecodedMessageBanner.h
--- /Applications/Xcode_13.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MailKit.framework/Headers/MEDecodedMessageBanner.h	1969-12-31 19:00:00.000000000 -0500
+++ /Applications/Xcode_13.1.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MailKit.framework/Headers/MEDecodedMessageBanner.h	2021-09-18 08:45:31.000000000 -0400
@@ -0,0 +1,24 @@
+//
+//  MEDecodedMessageBanner.h
+//  MailKit
+//
+//  Copyright © 2021 Apple Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+/// @brief Contains security information in order to populate a banner in the message view.
+API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, watchos, tvos, macCatalyst)
+@interface MEDecodedMessageBanner : NSObject <NSSecureCoding, NSCopying>
+
+@property (nonatomic, readonly, strong) NSString *title;
+@property (nonatomic, readonly, strong) NSString *primaryActionTitle;
+@property (nonatomic, readonly, getter=isDismissable) BOOL dismissable;
++ (instancetype)new NS_UNAVAILABLE;
+- (instancetype)init NS_UNAVAILABLE;
+- (instancetype)initWithTitle:(NSString *)title primaryActionTitle:(NSString *)primaryActionTitle dismissable:(BOOL)dismissable;
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_13.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MailKit.framework/Headers/MEExtensionManager.h /Applications/Xcode_13.1.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MailKit.framework/Headers/MEExtensionManager.h
--- /Applications/Xcode_13.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MailKit.framework/Headers/MEExtensionManager.h	2021-08-07 05:22:32.000000000 -0400
+++ /Applications/Xcode_13.1.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MailKit.framework/Headers/MEExtensionManager.h	2021-09-18 08:45:30.000000000 -0400
@@ -16,6 +16,8 @@
 - (instancetype)init NS_UNAVAILABLE;
 /// @brief This will call on Mail to reload the content rule list associated with the given identifier. Mail May throttle reloading the content blocker to once every few minutes.
 + (void)reloadContentBlockerWithIdentifier:(NSString *)identifier completionHandler:(void (^ _Nullable)(NSError * _Nullable error))completionHandler;
+/// @brief This will call on Mail to reload the currently visible messages.  Mail may throttle reloading visible messages.
++ (void)reloadVisibleMessagesWithCompletionHandler:(void (^ _Nullable)(NSError * _Nullable error))completionHandler;
 
 @end
 
diff -ruN /Applications/Xcode_13.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MailKit.framework/Headers/MEMessage.h /Applications/Xcode_13.1.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MailKit.framework/Headers/MEMessage.h
--- /Applications/Xcode_13.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MailKit.framework/Headers/MEMessage.h	2021-08-07 05:22:33.000000000 -0400
+++ /Applications/Xcode_13.1.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MailKit.framework/Headers/MEMessage.h	2021-09-18 08:45:31.000000000 -0400
@@ -5,7 +5,9 @@
 //  Copyright © 2020 Apple Inc. All rights reserved.
 //
 
-#import <MailKit/MEEmailAddress.h>
+#import <Foundation/Foundation.h>
+
+@class MEEmailAddress;
 
 NS_ASSUME_NONNULL_BEGIN
 
@@ -15,12 +17,21 @@
     MEMessageStateSending = 2,
 } API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, watchos, tvos, macCatalyst);
 
+typedef NS_ENUM(NSInteger, MEMessageEncryptionState) {
+    MEMessageEncryptionStateUnknown = 0,
+    MEMessageEncryptionStateNotEncrypted = 1,
+    MEMessageEncryptionStateEncrypted = 2,
+} API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, watchos, tvos, macCatalyst);
+
 /// @brief Contains information about a mail message on which actions can be performed.
 API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, watchos, tvos, macCatalyst)
 @interface MEMessage : NSObject <NSSecureCoding>
 
 /// @brief The state of the mail message.
-@property (nonatomic, readonly, assign) MEMessageState state NS_REFINED_FOR_SWIFT;
+@property (nonatomic, readonly, assign) MEMessageState state;
+
+/// @brief The encryption state of the mail message.
+@property (nonatomic, readonly, assign) MEMessageEncryptionState encryptionState;
 
 /// @brief The subject of the mail message.
 @property (nonatomic, readonly, copy) NSString *subject;
diff -ruN /Applications/Xcode_13.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MailKit.framework/Headers/MEMessageAction.h /Applications/Xcode_13.1.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MailKit.framework/Headers/MEMessageAction.h
--- /Applications/Xcode_13.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MailKit.framework/Headers/MEMessageAction.h	2021-08-07 05:22:33.000000000 -0400
+++ /Applications/Xcode_13.1.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MailKit.framework/Headers/MEMessageAction.h	2021-09-18 08:45:31.000000000 -0400
@@ -18,7 +18,19 @@
     MEMessageActionMessageColorPurple,
     MEMessageActionMessageColorBlue,
     MEMessageActionMessageColorGray,
-} API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, watchos, tvos, macCatalyst);
+} NS_SWIFT_NAME(MEMessageAction.MessageColor) API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, watchos, tvos, macCatalyst);
+
+typedef NS_ENUM(NSInteger, MEMessageActionFlag) {
+    MEMessageActionFlagNone,
+    MEMessageActionFlagDefaultColor,
+    MEMessageActionFlagRed,
+    MEMessageActionFlagOrange,
+    MEMessageActionFlagYellow,
+    MEMessageActionFlagGreen,
+    MEMessageActionFlagBlue,
+    MEMessageActionFlagPurple,
+    MEMessageActionFlagGray,
+} NS_SWIFT_NAME(MEMessageAction.Flag) API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, watchos, tvos, macCatalyst);
 
 /// @brief An action that can be performed on a mail message.
 API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, watchos, tvos, macCatalyst)
@@ -39,14 +51,11 @@
 /// @brief Marks the mail  message as unread.
 @property (class, readonly) MEMessageAction *markAsUnreadAction;
 
-/// @brief Marks the mail message as flagged.
-@property (class, readonly) MEMessageAction *flagAction;
-
-/// @brief Removes any flags from the mail message.
-@property (class, readonly) MEMessageAction *unflagAction;
+/// @brief Marks the message as flagged with the provided color.
++ (instancetype)flagActionWithFlag:(MEMessageActionFlag)flag NS_SWIFT_NAME(flag(_:));
 
 /// @brief Adds a color to the message when shown in the message list.
-+ (MEMessageAction *)setColorActionWithColor:(MEMessageActionMessageColor)color NS_SWIFT_NAME(setColor(_:));
++ (instancetype)setBackgroundColorActionWithColor:(MEMessageActionMessageColor)color NS_SWIFT_NAME(setBackgroundColor(_:));
 
 - (instancetype)init NS_UNAVAILABLE;
 + (instancetype)new NS_UNAVAILABLE;
diff -ruN /Applications/Xcode_13.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MailKit.framework/Headers/MEMessageActionDecision.h /Applications/Xcode_13.1.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MailKit.framework/Headers/MEMessageActionDecision.h
--- /Applications/Xcode_13.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MailKit.framework/Headers/MEMessageActionDecision.h	2021-08-07 05:22:33.000000000 -0400
+++ /Applications/Xcode_13.1.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MailKit.framework/Headers/MEMessageActionDecision.h	2021-09-18 08:45:31.000000000 -0400
@@ -15,7 +15,8 @@
 + (instancetype)decisionApplyingAction:(MEMessageAction *)action NS_SWIFT_NAME(action(_:));
 /// @brief Creates an @c MEMessageActionDecision with multiple actions. Conflicting actions will be ignored.
 + (instancetype)decisionApplyingActions:(NSArray<MEMessageAction *> *)actions NS_SWIFT_NAME(actions(_:));
-- (instancetype)new NS_UNAVAILABLE;
+
++ (instancetype)new NS_UNAVAILABLE;
 - (instancetype)init NS_UNAVAILABLE;
 @end
 
diff -ruN /Applications/Xcode_13.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MailKit.framework/Headers/MEMessageEncoder.h /Applications/Xcode_13.1.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MailKit.framework/Headers/MEMessageEncoder.h
--- /Applications/Xcode_13.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MailKit.framework/Headers/MEMessageEncoder.h	2021-08-07 05:22:33.000000000 -0400
+++ /Applications/Xcode_13.1.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MailKit.framework/Headers/MEMessageEncoder.h	2021-09-18 08:45:31.000000000 -0400
@@ -5,6 +5,9 @@
 //  Copyright © 2020 Apple Inc. All rights reserved.
 //
 
+#import <Foundation/Foundation.h>
+
+@class MEComposeContext;
 @class MEMessage;
 @class MEMessageEncodingResult;
 @class MEOutgoingMessageEncodingStatus;
@@ -18,12 +21,14 @@
 /// @brief This is invoked while a message is being composed. This will be be invoked each time the sending address or the list of recipients changes. The supplied @c message will contain the email address of the sender, the recipient email addresses, and
 ///  the message data being sent.  The completion handler should be called with the current encoding status of the message indicating whether the message is able to be signed, encrypted, both or neither. The result will also contain any error that occured, including a list of any recipients whose encryption keys are expected and missing.
 /// @param message - The outgoing message to apply any security mechanisms on.
-- (void)getEncodingStatusForMessage:(MEMessage *)message completionHandler:(void (^)(MEOutgoingMessageEncodingStatus *status))completionHandler NS_SWIFT_ASYNC_NAME(encodingStatus(message:));
+/// @param composeContext - @c MEComposeContext instance which corresponds to the @c message being composed.
+- (void)getEncodingStatusForMessage:(MEMessage *)message composeContext:(MEComposeContext *)composeContext completionHandler:(void (^)(MEOutgoingMessageEncodingStatus *status))completionHandler;
 
 /// @brief This is invoked when an outgoing message is sent. The supplied @c message will contain the email address of the sender, the recipient email addresses, and
 ///  the message data being sent. The completion handler should be called with the @c result of applying any encoding if needed based on @c shouldSign and @c shouldEncrypt. If the @c result is not encrypted or signed and does not have  any errors, it is assumed the message did not need a signature or encryption applied. In this case the @c data for the result will be ignored.
 /// @param message - The outgoing message to apply any security mechanisms on.
-- (void)encodeMessage:(MEMessage *)message shouldSign:(BOOL)shouldSign shouldEncrypt:(BOOL)shouldEncrypt completionHandler:(void (^)(MEMessageEncodingResult *result))completionHandler;
+/// @param composeContext - @c MEComposeContext instance which corresponds to the @c message being composed.
+- (void)encodeMessage:(MEMessage *)message composeContext:(MEComposeContext *)composeContext completionHandler:(void (^)(MEMessageEncodingResult *result))completionHandler;
 
 @end
 
diff -ruN /Applications/Xcode_13.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MailKit.framework/Headers/MEMessageSecurityHandler.h /Applications/Xcode_13.1.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MailKit.framework/Headers/MEMessageSecurityHandler.h
--- /Applications/Xcode_13.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MailKit.framework/Headers/MEMessageSecurityHandler.h	2021-08-07 05:22:32.000000000 -0400
+++ /Applications/Xcode_13.1.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MailKit.framework/Headers/MEMessageSecurityHandler.h	2021-09-18 08:45:31.000000000 -0400
@@ -5,17 +5,32 @@
 //  Copyright © 2021 Apple Inc. All rights reserved.
 //
 
+#import <MailKit/MailKit.h>
 #import <MailKit/MEMessageDecoder.h>
 #import <MailKit/MEMessageEncoder.h>
 
 NS_ASSUME_NONNULL_BEGIN
 
+/// @brief Error domain and codes for extensions to report errors before message is delivered.
+extern NSErrorDomain const MEMessageSecurityErrorDomain API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, watchos, tvos, macCatalyst);
+
+typedef NS_ERROR_ENUM(MEMessageSecurityErrorDomain, MEMessageSecurityErrorCode) {
+    MEMessageSecurityEncodingError = 0,
+    MEMessageSecurityDecodingError = 1,
+} API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, watchos, tvos, macCatalyst);
+
 API_AVAILABLE(macos(12.0)) API_UNAVAILABLE(ios, watchos, tvos, macCatalyst)
 @protocol MEMessageSecurityHandler <MEMessageEncoder, MEMessageDecoder>
 
 #if !TARGET_OS_WATCH
 /// @brief Invoked by Mail to request a subclass of @c MEExtensionViewController. Extensions can maintain any additional state in their subclasses and associate it with  @c messsageComposeSession instance.
 - (nullable MEExtensionViewController *)extensionViewControllerForMessageSigners:(NSArray<MEMessageSigner *> *)messageSigners NS_SWIFT_NAME(extensionViewController(signers:));
+
+// @brief Invoked by Mail to request a subclass of @c MEExtensionViewController when the user clicks a banner or on the extensions icon in the message header view.
+- (nullable MEExtensionViewController *)extensionViewControllerForMessageContext:(NSData *)context NS_SWIFT_NAME(extensionViewController(messageContext:));
+
+// @brief Invoked when the primary action for the message banner is clicked. The extension can provide an optional view controller to render any additional information.
+- (void)primaryActionClickedForMessageContext:(NSData *)context completionHandler:(void (^)(MEExtensionViewController * _Nullable result))completionHandler;
 #endif
 
 @end
diff -ruN /Applications/Xcode_13.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MailKit.framework/Headers/MailKit.h /Applications/Xcode_13.1.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MailKit.framework/Headers/MailKit.h
--- /Applications/Xcode_13.0.0-beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MailKit.framework/Headers/MailKit.h	2021-08-02 05:03:34.000000000 -0400
+++ /Applications/Xcode_13.1.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MailKit.framework/Headers/MailKit.h	2021-09-08 00:50:39.000000000 -0400
@@ -18,6 +18,7 @@
 // Compose Extension
 #import <MailKit/MEAddressAnnotation.h>
 #import <MailKit/MEComposeSession.h>
+#import <MailKit/MEComposeContext.h>
 
 // Content Blocking
 #import <MailKit/MEContentBlocker.h>
@@ -33,3 +34,4 @@
 #import <MailKit/MEDecodedMessage.h>
 #import <MailKit/MEMessageDecoder.h>
 #import <MailKit/MEMessageEncoder.h>
+#import <MailKit/MEDecodedMessageBanner.h>
Clone this wiki locally