react-native-email-imap-smtp 0.1.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.
Files changed (201) hide show
  1. package/EmailImapSmtp.podspec +29 -0
  2. package/LICENSE +20 -0
  3. package/README.md +121 -0
  4. package/android/CMakeLists.txt +24 -0
  5. package/android/build.gradle +117 -0
  6. package/android/src/main/AndroidManifest.xml +3 -0
  7. package/android/src/main/cpp/cpp-adapter.cpp +11 -0
  8. package/android/src/main/java/com/margelo/nitro/emailimapsmtp/EmailImapSmtp.kt +1533 -0
  9. package/android/src/main/java/com/margelo/nitro/emailimapsmtp/EmailImapSmtpPackage.kt +22 -0
  10. package/ios/EmailImapSmtp.swift +5 -0
  11. package/lib/module/EmailImapSmtp.nitro.js +4 -0
  12. package/lib/module/EmailImapSmtp.nitro.js.map +1 -0
  13. package/lib/module/NativeEmailImapSmtp.js +14 -0
  14. package/lib/module/NativeEmailImapSmtp.js.map +1 -0
  15. package/lib/module/index.js +64 -0
  16. package/lib/module/index.js.map +1 -0
  17. package/lib/module/native.js +227 -0
  18. package/lib/module/native.js.map +1 -0
  19. package/lib/module/package.json +1 -0
  20. package/lib/module/types.js +2 -0
  21. package/lib/module/types.js.map +1 -0
  22. package/lib/module/web.js +107 -0
  23. package/lib/module/web.js.map +1 -0
  24. package/lib/module/windows.js +156 -0
  25. package/lib/module/windows.js.map +1 -0
  26. package/lib/typescript/package.json +1 -0
  27. package/lib/typescript/src/EmailImapSmtp.nitro.d.ts +268 -0
  28. package/lib/typescript/src/EmailImapSmtp.nitro.d.ts.map +1 -0
  29. package/lib/typescript/src/NativeEmailImapSmtp.d.ts +36 -0
  30. package/lib/typescript/src/NativeEmailImapSmtp.d.ts.map +1 -0
  31. package/lib/typescript/src/index.d.ts +33 -0
  32. package/lib/typescript/src/index.d.ts.map +1 -0
  33. package/lib/typescript/src/native.d.ts +32 -0
  34. package/lib/typescript/src/native.d.ts.map +1 -0
  35. package/lib/typescript/src/types.d.ts +261 -0
  36. package/lib/typescript/src/types.d.ts.map +1 -0
  37. package/lib/typescript/src/web.d.ts +32 -0
  38. package/lib/typescript/src/web.d.ts.map +1 -0
  39. package/lib/typescript/src/windows.d.ts +32 -0
  40. package/lib/typescript/src/windows.d.ts.map +1 -0
  41. package/nitro.json +23 -0
  42. package/nitrogen/generated/android/c++/JAppendResult.hpp +65 -0
  43. package/nitrogen/generated/android/c++/JAttachmentInfo.hpp +96 -0
  44. package/nitrogen/generated/android/c++/JConnectionConfig.hpp +94 -0
  45. package/nitrogen/generated/android/c++/JConnectionResult.hpp +73 -0
  46. package/nitrogen/generated/android/c++/JDeleteResult.hpp +87 -0
  47. package/nitrogen/generated/android/c++/JEmailAddress.hpp +61 -0
  48. package/nitrogen/generated/android/c++/JEmailBody.hpp +84 -0
  49. package/nitrogen/generated/android/c++/JEmailMessage.hpp +273 -0
  50. package/nitrogen/generated/android/c++/JFetchEmailsOptions.hpp +110 -0
  51. package/nitrogen/generated/android/c++/JFolderInfo.hpp +126 -0
  52. package/nitrogen/generated/android/c++/JFunc_void_IdleNotification.hpp +79 -0
  53. package/nitrogen/generated/android/c++/JHybridEmailImapSmtpSpec.cpp +697 -0
  54. package/nitrogen/generated/android/c++/JHybridEmailImapSmtpSpec.hpp +92 -0
  55. package/nitrogen/generated/android/c++/JIdleNotification.hpp +78 -0
  56. package/nitrogen/generated/android/c++/JImapServerInfo.hpp +84 -0
  57. package/nitrogen/generated/android/c++/JMailboxInfo.hpp +134 -0
  58. package/nitrogen/generated/android/c++/JMailboxListItem.hpp +92 -0
  59. package/nitrogen/generated/android/c++/JQuotaInfo.hpp +78 -0
  60. package/nitrogen/generated/android/c++/JSearchCriteria.hpp +187 -0
  61. package/nitrogen/generated/android/c++/JSearchHeader.hpp +61 -0
  62. package/nitrogen/generated/android/c++/JSendMailOptions.hpp +229 -0
  63. package/nitrogen/generated/android/c++/JSendMailResult.hpp +88 -0
  64. package/nitrogen/generated/android/c++/JSmtpAttachment.hpp +80 -0
  65. package/nitrogen/generated/android/c++/JSmtpConnectionConfig.hpp +98 -0
  66. package/nitrogen/generated/android/c++/JSmtpServerInfo.hpp +102 -0
  67. package/nitrogen/generated/android/c++/JVariant_ImapServerInfo_SmtpServerInfo.cpp +26 -0
  68. package/nitrogen/generated/android/c++/JVariant_ImapServerInfo_SmtpServerInfo.hpp +73 -0
  69. package/nitrogen/generated/android/c++/JVariant_NullType_AttachmentInfo.cpp +26 -0
  70. package/nitrogen/generated/android/c++/JVariant_NullType_AttachmentInfo.hpp +75 -0
  71. package/nitrogen/generated/android/c++/JVariant_NullType_EmailMessage.cpp +26 -0
  72. package/nitrogen/generated/android/c++/JVariant_NullType_EmailMessage.hpp +83 -0
  73. package/nitrogen/generated/android/emailimapsmtp+autolinking.cmake +84 -0
  74. package/nitrogen/generated/android/emailimapsmtp+autolinking.gradle +27 -0
  75. package/nitrogen/generated/android/emailimapsmtpOnLoad.cpp +56 -0
  76. package/nitrogen/generated/android/emailimapsmtpOnLoad.hpp +34 -0
  77. package/nitrogen/generated/android/kotlin/com/margelo/nitro/emailimapsmtp/AppendResult.kt +61 -0
  78. package/nitrogen/generated/android/kotlin/com/margelo/nitro/emailimapsmtp/AttachmentInfo.kt +96 -0
  79. package/nitrogen/generated/android/kotlin/com/margelo/nitro/emailimapsmtp/ConnectionConfig.kt +96 -0
  80. package/nitrogen/generated/android/kotlin/com/margelo/nitro/emailimapsmtp/ConnectionResult.kt +61 -0
  81. package/nitrogen/generated/android/kotlin/com/margelo/nitro/emailimapsmtp/DeleteResult.kt +61 -0
  82. package/nitrogen/generated/android/kotlin/com/margelo/nitro/emailimapsmtp/EmailAddress.kt +56 -0
  83. package/nitrogen/generated/android/kotlin/com/margelo/nitro/emailimapsmtp/EmailBody.kt +61 -0
  84. package/nitrogen/generated/android/kotlin/com/margelo/nitro/emailimapsmtp/EmailMessage.kt +156 -0
  85. package/nitrogen/generated/android/kotlin/com/margelo/nitro/emailimapsmtp/FetchEmailsOptions.kt +116 -0
  86. package/nitrogen/generated/android/kotlin/com/margelo/nitro/emailimapsmtp/FolderInfo.kt +91 -0
  87. package/nitrogen/generated/android/kotlin/com/margelo/nitro/emailimapsmtp/Func_void_IdleNotification.kt +80 -0
  88. package/nitrogen/generated/android/kotlin/com/margelo/nitro/emailimapsmtp/HybridEmailImapSmtpSpec.kt +178 -0
  89. package/nitrogen/generated/android/kotlin/com/margelo/nitro/emailimapsmtp/IdleNotification.kt +76 -0
  90. package/nitrogen/generated/android/kotlin/com/margelo/nitro/emailimapsmtp/ImapServerInfo.kt +61 -0
  91. package/nitrogen/generated/android/kotlin/com/margelo/nitro/emailimapsmtp/MailboxInfo.kt +101 -0
  92. package/nitrogen/generated/android/kotlin/com/margelo/nitro/emailimapsmtp/MailboxListItem.kt +71 -0
  93. package/nitrogen/generated/android/kotlin/com/margelo/nitro/emailimapsmtp/QuotaInfo.kt +76 -0
  94. package/nitrogen/generated/android/kotlin/com/margelo/nitro/emailimapsmtp/SearchCriteria.kt +196 -0
  95. package/nitrogen/generated/android/kotlin/com/margelo/nitro/emailimapsmtp/SearchHeader.kt +56 -0
  96. package/nitrogen/generated/android/kotlin/com/margelo/nitro/emailimapsmtp/SendMailOptions.kt +126 -0
  97. package/nitrogen/generated/android/kotlin/com/margelo/nitro/emailimapsmtp/SendMailResult.kt +86 -0
  98. package/nitrogen/generated/android/kotlin/com/margelo/nitro/emailimapsmtp/SmtpAttachment.kt +76 -0
  99. package/nitrogen/generated/android/kotlin/com/margelo/nitro/emailimapsmtp/SmtpConnectionConfig.kt +101 -0
  100. package/nitrogen/generated/android/kotlin/com/margelo/nitro/emailimapsmtp/SmtpServerInfo.kt +61 -0
  101. package/nitrogen/generated/android/kotlin/com/margelo/nitro/emailimapsmtp/Variant_ImapServerInfo_SmtpServerInfo.kt +62 -0
  102. package/nitrogen/generated/android/kotlin/com/margelo/nitro/emailimapsmtp/Variant_NullType_AttachmentInfo.kt +62 -0
  103. package/nitrogen/generated/android/kotlin/com/margelo/nitro/emailimapsmtp/Variant_NullType_EmailMessage.kt +62 -0
  104. package/nitrogen/generated/android/kotlin/com/margelo/nitro/emailimapsmtp/emailimapsmtpOnLoad.kt +35 -0
  105. package/nitrogen/generated/ios/EmailImapSmtp+autolinking.rb +62 -0
  106. package/nitrogen/generated/ios/EmailImapSmtp-Swift-Cxx-Bridge.cpp +161 -0
  107. package/nitrogen/generated/ios/EmailImapSmtp-Swift-Cxx-Bridge.hpp +1132 -0
  108. package/nitrogen/generated/ios/EmailImapSmtp-Swift-Cxx-Umbrella.hpp +118 -0
  109. package/nitrogen/generated/ios/EmailImapSmtpAutolinking.mm +33 -0
  110. package/nitrogen/generated/ios/EmailImapSmtpAutolinking.swift +26 -0
  111. package/nitrogen/generated/ios/c++/HybridEmailImapSmtpSpecSwift.cpp +11 -0
  112. package/nitrogen/generated/ios/c++/HybridEmailImapSmtpSpecSwift.hpp +390 -0
  113. package/nitrogen/generated/ios/swift/AppendResult.swift +39 -0
  114. package/nitrogen/generated/ios/swift/AttachmentInfo.swift +113 -0
  115. package/nitrogen/generated/ios/swift/ConnectionConfig.swift +87 -0
  116. package/nitrogen/generated/ios/swift/ConnectionResult.swift +84 -0
  117. package/nitrogen/generated/ios/swift/DeleteResult.swift +64 -0
  118. package/nitrogen/generated/ios/swift/EmailAddress.swift +34 -0
  119. package/nitrogen/generated/ios/swift/EmailBody.swift +45 -0
  120. package/nitrogen/generated/ios/swift/EmailMessage.swift +184 -0
  121. package/nitrogen/generated/ios/swift/FetchEmailsOptions.swift +198 -0
  122. package/nitrogen/generated/ios/swift/FolderInfo.swift +81 -0
  123. package/nitrogen/generated/ios/swift/Func_void.swift +46 -0
  124. package/nitrogen/generated/ios/swift/Func_void_AppendResult.swift +46 -0
  125. package/nitrogen/generated/ios/swift/Func_void_ConnectionResult.swift +46 -0
  126. package/nitrogen/generated/ios/swift/Func_void_DeleteResult.swift +46 -0
  127. package/nitrogen/generated/ios/swift/Func_void_IdleNotification.swift +46 -0
  128. package/nitrogen/generated/ios/swift/Func_void_MailboxInfo.swift +46 -0
  129. package/nitrogen/generated/ios/swift/Func_void_QuotaInfo.swift +46 -0
  130. package/nitrogen/generated/ios/swift/Func_void_SendMailResult.swift +46 -0
  131. package/nitrogen/generated/ios/swift/Func_void_bool.swift +46 -0
  132. package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +46 -0
  133. package/nitrogen/generated/ios/swift/Func_void_std__variant_nitro__NullType__AttachmentInfo_.swift +58 -0
  134. package/nitrogen/generated/ios/swift/Func_void_std__variant_nitro__NullType__EmailMessage_.swift +58 -0
  135. package/nitrogen/generated/ios/swift/Func_void_std__vector_AttachmentInfo_.swift +46 -0
  136. package/nitrogen/generated/ios/swift/Func_void_std__vector_EmailMessage_.swift +46 -0
  137. package/nitrogen/generated/ios/swift/Func_void_std__vector_FolderInfo_.swift +46 -0
  138. package/nitrogen/generated/ios/swift/Func_void_std__vector_MailboxListItem_.swift +46 -0
  139. package/nitrogen/generated/ios/swift/HybridEmailImapSmtpSpec.swift +84 -0
  140. package/nitrogen/generated/ios/swift/HybridEmailImapSmtpSpec_cxx.swift +759 -0
  141. package/nitrogen/generated/ios/swift/IdleNotification.swift +93 -0
  142. package/nitrogen/generated/ios/swift/ImapServerInfo.swift +45 -0
  143. package/nitrogen/generated/ios/swift/MailboxInfo.swift +91 -0
  144. package/nitrogen/generated/ios/swift/MailboxListItem.swift +55 -0
  145. package/nitrogen/generated/ios/swift/QuotaInfo.swift +80 -0
  146. package/nitrogen/generated/ios/swift/SearchCriteria.swift +485 -0
  147. package/nitrogen/generated/ios/swift/SearchHeader.swift +34 -0
  148. package/nitrogen/generated/ios/swift/SendMailOptions.swift +310 -0
  149. package/nitrogen/generated/ios/swift/SendMailResult.swift +155 -0
  150. package/nitrogen/generated/ios/swift/SmtpAttachment.swift +80 -0
  151. package/nitrogen/generated/ios/swift/SmtpConnectionConfig.swift +105 -0
  152. package/nitrogen/generated/ios/swift/SmtpServerInfo.swift +51 -0
  153. package/nitrogen/generated/ios/swift/Variant_ImapServerInfo_SmtpServerInfo.swift +30 -0
  154. package/nitrogen/generated/ios/swift/Variant_NullType_AttachmentInfo.swift +30 -0
  155. package/nitrogen/generated/ios/swift/Variant_NullType_EmailMessage.swift +30 -0
  156. package/nitrogen/generated/shared/c++/AppendResult.hpp +91 -0
  157. package/nitrogen/generated/shared/c++/AttachmentInfo.hpp +121 -0
  158. package/nitrogen/generated/shared/c++/ConnectionConfig.hpp +120 -0
  159. package/nitrogen/generated/shared/c++/ConnectionResult.hpp +98 -0
  160. package/nitrogen/generated/shared/c++/DeleteResult.hpp +93 -0
  161. package/nitrogen/generated/shared/c++/EmailAddress.hpp +87 -0
  162. package/nitrogen/generated/shared/c++/EmailBody.hpp +92 -0
  163. package/nitrogen/generated/shared/c++/EmailMessage.hpp +177 -0
  164. package/nitrogen/generated/shared/c++/FetchEmailsOptions.hpp +136 -0
  165. package/nitrogen/generated/shared/c++/FolderInfo.hpp +116 -0
  166. package/nitrogen/generated/shared/c++/HybridEmailImapSmtpSpec.cpp +50 -0
  167. package/nitrogen/generated/shared/c++/HybridEmailImapSmtpSpec.hpp +145 -0
  168. package/nitrogen/generated/shared/c++/IdleNotification.hpp +104 -0
  169. package/nitrogen/generated/shared/c++/ImapServerInfo.hpp +92 -0
  170. package/nitrogen/generated/shared/c++/MailboxInfo.hpp +124 -0
  171. package/nitrogen/generated/shared/c++/MailboxListItem.hpp +100 -0
  172. package/nitrogen/generated/shared/c++/QuotaInfo.hpp +104 -0
  173. package/nitrogen/generated/shared/c++/SearchCriteria.hpp +203 -0
  174. package/nitrogen/generated/shared/c++/SearchHeader.hpp +87 -0
  175. package/nitrogen/generated/shared/c++/SendMailOptions.hpp +151 -0
  176. package/nitrogen/generated/shared/c++/SendMailResult.hpp +113 -0
  177. package/nitrogen/generated/shared/c++/SmtpAttachment.hpp +105 -0
  178. package/nitrogen/generated/shared/c++/SmtpConnectionConfig.hpp +124 -0
  179. package/nitrogen/generated/shared/c++/SmtpServerInfo.hpp +92 -0
  180. package/package.json +196 -0
  181. package/react-native.config.js +27 -0
  182. package/src/EmailImapSmtp.nitro.ts +333 -0
  183. package/src/NativeEmailImapSmtp.ts +100 -0
  184. package/src/index.tsx +166 -0
  185. package/src/native.ts +305 -0
  186. package/src/types.ts +328 -0
  187. package/src/web.ts +196 -0
  188. package/src/windows.ts +304 -0
  189. package/windows/EmailImapSmtp.cpp +735 -0
  190. package/windows/EmailImapSmtp.h +137 -0
  191. package/windows/EmailImapSmtpModule.cpp +10 -0
  192. package/windows/EmailImapSmtpModule.h +139 -0
  193. package/windows/EmailImapSmtpPackage.cpp +15 -0
  194. package/windows/EmailImapSmtpPackage.h +13 -0
  195. package/windows/ImapProtocol.cpp +1382 -0
  196. package/windows/ImapProtocol.h +97 -0
  197. package/windows/ProtocolDefs.h +300 -0
  198. package/windows/SmtpProtocol.cpp +334 -0
  199. package/windows/SmtpProtocol.h +36 -0
  200. package/windows/TlsSocket.cpp +818 -0
  201. package/windows/TlsSocket.h +87 -0
@@ -0,0 +1,92 @@
1
+ ///
2
+ /// HybridEmailImapSmtpSpec.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #include <NitroModules/JHybridObject.hpp>
11
+ #include <fbjni/fbjni.h>
12
+ #include "HybridEmailImapSmtpSpec.hpp"
13
+
14
+
15
+
16
+
17
+ namespace margelo::nitro::emailimapsmtp {
18
+
19
+ using namespace facebook;
20
+
21
+ class JHybridEmailImapSmtpSpec: public virtual HybridEmailImapSmtpSpec, public virtual JHybridObject {
22
+ public:
23
+ struct JavaPart: public jni::JavaClass<JavaPart, JHybridObject::JavaPart> {
24
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/emailimapsmtp/HybridEmailImapSmtpSpec;";
25
+ std::shared_ptr<JHybridEmailImapSmtpSpec> getJHybridEmailImapSmtpSpec();
26
+ };
27
+ struct CxxPart: public jni::HybridClass<CxxPart, JHybridObject::CxxPart> {
28
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/emailimapsmtp/HybridEmailImapSmtpSpec$CxxPart;";
29
+ static jni::local_ref<jhybriddata> initHybrid(jni::alias_ref<jhybridobject> jThis);
30
+ static void registerNatives();
31
+ using HybridBase::HybridBase;
32
+ protected:
33
+ std::shared_ptr<JHybridObject> createHybridObject(const jni::local_ref<JHybridObject::JavaPart>& javaPart) override;
34
+ };
35
+
36
+ public:
37
+ explicit JHybridEmailImapSmtpSpec(const jni::local_ref<JHybridEmailImapSmtpSpec::JavaPart>& javaPart):
38
+ HybridObject(HybridEmailImapSmtpSpec::TAG),
39
+ JHybridObject(javaPart),
40
+ _javaPart(jni::make_global(javaPart)) {}
41
+ ~JHybridEmailImapSmtpSpec() override {
42
+ // Hermes GC can destroy JS objects on a non-JNI Thread.
43
+ jni::ThreadScope::WithClassLoader([&] { _javaPart.reset(); });
44
+ }
45
+
46
+ public:
47
+ inline const jni::global_ref<JHybridEmailImapSmtpSpec::JavaPart>& getJavaPart() const noexcept {
48
+ return _javaPart;
49
+ }
50
+
51
+ public:
52
+ // Properties
53
+
54
+
55
+ public:
56
+ // Methods
57
+ std::shared_ptr<Promise<ConnectionResult>> imapConnect(const ConnectionConfig& config) override;
58
+ std::shared_ptr<Promise<void>> imapDisconnect() override;
59
+ std::shared_ptr<Promise<std::vector<MailboxListItem>>> imapListMailboxes() override;
60
+ std::shared_ptr<Promise<MailboxInfo>> imapSelectMailbox(const std::string& mailbox, bool readOnly) override;
61
+ std::shared_ptr<Promise<MailboxInfo>> imapRefreshMailbox() override;
62
+ std::shared_ptr<Promise<std::vector<FolderInfo>>> imapFetchFolders() override;
63
+ std::shared_ptr<Promise<void>> imapCreateFolder(const std::string& folderName) override;
64
+ std::shared_ptr<Promise<void>> imapDeleteFolder(const std::string& folderName) override;
65
+ std::shared_ptr<Promise<void>> imapRenameFolder(const std::string& oldName, const std::string& newName) override;
66
+ std::shared_ptr<Promise<void>> imapSubscribeFolder(const std::string& folderName) override;
67
+ std::shared_ptr<Promise<void>> imapUnsubscribeFolder(const std::string& folderName) override;
68
+ std::shared_ptr<Promise<std::vector<EmailMessage>>> imapFetchEmails(const FetchEmailsOptions& options) override;
69
+ std::shared_ptr<Promise<std::variant<nitro::NullType, EmailMessage>>> imapFetchEmailByUID(double uid) override;
70
+ std::shared_ptr<Promise<std::vector<EmailMessage>>> imapSearchEmails(const SearchCriteria& criteria) override;
71
+ std::shared_ptr<Promise<void>> imapMarkAsRead(const std::vector<double>& uids, bool silent) override;
72
+ std::shared_ptr<Promise<void>> imapMarkAsFlagged(const std::vector<double>& uids, bool flagged) override;
73
+ std::shared_ptr<Promise<void>> imapMoveEmails(const std::vector<double>& uids, const std::string& destinationMailbox) override;
74
+ std::shared_ptr<Promise<void>> imapCopyEmails(const std::vector<double>& uids, const std::string& destinationMailbox) override;
75
+ std::shared_ptr<Promise<DeleteResult>> imapDeleteEmails(const std::vector<double>& uids) override;
76
+ std::shared_ptr<Promise<void>> imapExpunge() override;
77
+ std::shared_ptr<Promise<std::variant<nitro::NullType, AttachmentInfo>>> imapFetchAttachments(double uid, const std::string& partId) override;
78
+ std::shared_ptr<Promise<std::vector<AttachmentInfo>>> imapFetchAllAttachments(double uid) override;
79
+ std::shared_ptr<Promise<void>> imapIdle(const std::function<void(const IdleNotification& /* notification */)>& callback) override;
80
+ std::shared_ptr<Promise<void>> imapStopIdle() override;
81
+ std::shared_ptr<Promise<QuotaInfo>> imapGetQuota(const std::optional<std::string>& root) override;
82
+ std::shared_ptr<Promise<AppendResult>> imapAppendMessage(const std::string& mailbox, const std::shared_ptr<ArrayBuffer>& rawMimeData, const std::optional<std::vector<std::string>>& flags) override;
83
+ std::shared_ptr<Promise<ConnectionResult>> smtpConnect(const SmtpConnectionConfig& config) override;
84
+ std::shared_ptr<Promise<void>> smtpDisconnect() override;
85
+ std::shared_ptr<Promise<SendMailResult>> smtpSendMail(const SendMailOptions& options) override;
86
+ std::shared_ptr<Promise<bool>> smtpVerifyConnection() override;
87
+
88
+ private:
89
+ jni::global_ref<JHybridEmailImapSmtpSpec::JavaPart> _javaPart;
90
+ };
91
+
92
+ } // namespace margelo::nitro::emailimapsmtp
@@ -0,0 +1,78 @@
1
+ ///
2
+ /// JIdleNotification.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #include <fbjni/fbjni.h>
11
+ #include "IdleNotification.hpp"
12
+
13
+ #include <optional>
14
+ #include <string>
15
+
16
+ namespace margelo::nitro::emailimapsmtp {
17
+
18
+ using namespace facebook;
19
+
20
+ /**
21
+ * The C++ JNI bridge between the C++ struct "IdleNotification" and the Kotlin data class "IdleNotification".
22
+ */
23
+ struct JIdleNotification final: public jni::JavaClass<JIdleNotification> {
24
+ public:
25
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/emailimapsmtp/IdleNotification;";
26
+
27
+ public:
28
+ /**
29
+ * Convert this Java/Kotlin-based struct to the C++ struct IdleNotification by copying all values to C++.
30
+ */
31
+ [[maybe_unused]]
32
+ [[nodiscard]]
33
+ IdleNotification toCpp() const {
34
+ static const auto clazz = javaClassStatic();
35
+ static const auto fieldType = clazz->getField<jni::JString>("type");
36
+ jni::local_ref<jni::JString> type = this->getFieldValue(fieldType);
37
+ static const auto fieldMailbox = clazz->getField<jni::JString>("mailbox");
38
+ jni::local_ref<jni::JString> mailbox = this->getFieldValue(fieldMailbox);
39
+ static const auto fieldUid = clazz->getField<jni::JDouble>("uid");
40
+ jni::local_ref<jni::JDouble> uid = this->getFieldValue(fieldUid);
41
+ static const auto fieldFlag = clazz->getField<jni::JString>("flag");
42
+ jni::local_ref<jni::JString> flag = this->getFieldValue(fieldFlag);
43
+ static const auto fieldMessageCount = clazz->getField<jni::JDouble>("messageCount");
44
+ jni::local_ref<jni::JDouble> messageCount = this->getFieldValue(fieldMessageCount);
45
+ static const auto fieldTimestamp = clazz->getField<double>("timestamp");
46
+ double timestamp = this->getFieldValue(fieldTimestamp);
47
+ return IdleNotification(
48
+ type->toStdString(),
49
+ mailbox->toStdString(),
50
+ uid != nullptr ? std::make_optional(uid->value()) : std::nullopt,
51
+ flag != nullptr ? std::make_optional(flag->toStdString()) : std::nullopt,
52
+ messageCount != nullptr ? std::make_optional(messageCount->value()) : std::nullopt,
53
+ timestamp
54
+ );
55
+ }
56
+
57
+ public:
58
+ /**
59
+ * Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
60
+ */
61
+ [[maybe_unused]]
62
+ static jni::local_ref<JIdleNotification::javaobject> fromCpp(const IdleNotification& value) {
63
+ using JSignature = JIdleNotification(jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JDouble>, double);
64
+ static const auto clazz = javaClassStatic();
65
+ static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
66
+ return create(
67
+ clazz,
68
+ jni::make_jstring(value.type),
69
+ jni::make_jstring(value.mailbox),
70
+ value.uid.has_value() ? jni::JDouble::valueOf(value.uid.value()) : nullptr,
71
+ value.flag.has_value() ? jni::make_jstring(value.flag.value()) : nullptr,
72
+ value.messageCount.has_value() ? jni::JDouble::valueOf(value.messageCount.value()) : nullptr,
73
+ value.timestamp
74
+ );
75
+ }
76
+ };
77
+
78
+ } // namespace margelo::nitro::emailimapsmtp
@@ -0,0 +1,84 @@
1
+ ///
2
+ /// JImapServerInfo.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #include <fbjni/fbjni.h>
11
+ #include "ImapServerInfo.hpp"
12
+
13
+ #include <string>
14
+ #include <vector>
15
+
16
+ namespace margelo::nitro::emailimapsmtp {
17
+
18
+ using namespace facebook;
19
+
20
+ /**
21
+ * The C++ JNI bridge between the C++ struct "ImapServerInfo" and the Kotlin data class "ImapServerInfo".
22
+ */
23
+ struct JImapServerInfo final: public jni::JavaClass<JImapServerInfo> {
24
+ public:
25
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/emailimapsmtp/ImapServerInfo;";
26
+
27
+ public:
28
+ /**
29
+ * Convert this Java/Kotlin-based struct to the C++ struct ImapServerInfo by copying all values to C++.
30
+ */
31
+ [[maybe_unused]]
32
+ [[nodiscard]]
33
+ ImapServerInfo toCpp() const {
34
+ static const auto clazz = javaClassStatic();
35
+ static const auto fieldServerName = clazz->getField<jni::JString>("serverName");
36
+ jni::local_ref<jni::JString> serverName = this->getFieldValue(fieldServerName);
37
+ static const auto fieldCapabilities = clazz->getField<jni::JArrayClass<jni::JString>>("capabilities");
38
+ jni::local_ref<jni::JArrayClass<jni::JString>> capabilities = this->getFieldValue(fieldCapabilities);
39
+ static const auto fieldIsCompressed = clazz->getField<jboolean>("isCompressed");
40
+ jboolean isCompressed = this->getFieldValue(fieldIsCompressed);
41
+ return ImapServerInfo(
42
+ serverName->toStdString(),
43
+ [&](auto&& __input) {
44
+ size_t __size = __input->size();
45
+ std::vector<std::string> __vector;
46
+ __vector.reserve(__size);
47
+ for (size_t __i = 0; __i < __size; __i++) {
48
+ auto __element = __input->getElement(__i);
49
+ __vector.push_back(__element->toStdString());
50
+ }
51
+ return __vector;
52
+ }(capabilities),
53
+ static_cast<bool>(isCompressed)
54
+ );
55
+ }
56
+
57
+ public:
58
+ /**
59
+ * Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
60
+ */
61
+ [[maybe_unused]]
62
+ static jni::local_ref<JImapServerInfo::javaobject> fromCpp(const ImapServerInfo& value) {
63
+ using JSignature = JImapServerInfo(jni::alias_ref<jni::JString>, jni::alias_ref<jni::JArrayClass<jni::JString>>, jboolean);
64
+ static const auto clazz = javaClassStatic();
65
+ static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
66
+ return create(
67
+ clazz,
68
+ jni::make_jstring(value.serverName),
69
+ [&](auto&& __input) {
70
+ size_t __size = __input.size();
71
+ jni::local_ref<jni::JArrayClass<jni::JString>> __array = jni::JArrayClass<jni::JString>::newArray(__size);
72
+ for (size_t __i = 0; __i < __size; __i++) {
73
+ const auto& __element = __input[__i];
74
+ auto __elementJni = jni::make_jstring(__element);
75
+ __array->setElement(__i, *__elementJni);
76
+ }
77
+ return __array;
78
+ }(value.capabilities),
79
+ value.isCompressed
80
+ );
81
+ }
82
+ };
83
+
84
+ } // namespace margelo::nitro::emailimapsmtp
@@ -0,0 +1,134 @@
1
+ ///
2
+ /// JMailboxInfo.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #include <fbjni/fbjni.h>
11
+ #include "MailboxInfo.hpp"
12
+
13
+ #include <string>
14
+ #include <vector>
15
+
16
+ namespace margelo::nitro::emailimapsmtp {
17
+
18
+ using namespace facebook;
19
+
20
+ /**
21
+ * The C++ JNI bridge between the C++ struct "MailboxInfo" and the Kotlin data class "MailboxInfo".
22
+ */
23
+ struct JMailboxInfo final: public jni::JavaClass<JMailboxInfo> {
24
+ public:
25
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/emailimapsmtp/MailboxInfo;";
26
+
27
+ public:
28
+ /**
29
+ * Convert this Java/Kotlin-based struct to the C++ struct MailboxInfo by copying all values to C++.
30
+ */
31
+ [[maybe_unused]]
32
+ [[nodiscard]]
33
+ MailboxInfo toCpp() const {
34
+ static const auto clazz = javaClassStatic();
35
+ static const auto fieldName = clazz->getField<jni::JString>("name");
36
+ jni::local_ref<jni::JString> name = this->getFieldValue(fieldName);
37
+ static const auto fieldPath = clazz->getField<jni::JString>("path");
38
+ jni::local_ref<jni::JString> path = this->getFieldValue(fieldPath);
39
+ static const auto fieldUidNext = clazz->getField<double>("uidNext");
40
+ double uidNext = this->getFieldValue(fieldUidNext);
41
+ static const auto fieldUidValidity = clazz->getField<double>("uidValidity");
42
+ double uidValidity = this->getFieldValue(fieldUidValidity);
43
+ static const auto fieldMessageCount = clazz->getField<double>("messageCount");
44
+ double messageCount = this->getFieldValue(fieldMessageCount);
45
+ static const auto fieldRecentCount = clazz->getField<double>("recentCount");
46
+ double recentCount = this->getFieldValue(fieldRecentCount);
47
+ static const auto fieldUnseenCount = clazz->getField<double>("unseenCount");
48
+ double unseenCount = this->getFieldValue(fieldUnseenCount);
49
+ static const auto fieldFirstUnseenUid = clazz->getField<double>("firstUnseenUid");
50
+ double firstUnseenUid = this->getFieldValue(fieldFirstUnseenUid);
51
+ static const auto fieldHighestModSeq = clazz->getField<double>("highestModSeq");
52
+ double highestModSeq = this->getFieldValue(fieldHighestModSeq);
53
+ static const auto fieldFlags = clazz->getField<jni::JArrayClass<jni::JString>>("flags");
54
+ jni::local_ref<jni::JArrayClass<jni::JString>> flags = this->getFieldValue(fieldFlags);
55
+ static const auto fieldPermanentFlags = clazz->getField<jni::JArrayClass<jni::JString>>("permanentFlags");
56
+ jni::local_ref<jni::JArrayClass<jni::JString>> permanentFlags = this->getFieldValue(fieldPermanentFlags);
57
+ return MailboxInfo(
58
+ name->toStdString(),
59
+ path->toStdString(),
60
+ uidNext,
61
+ uidValidity,
62
+ messageCount,
63
+ recentCount,
64
+ unseenCount,
65
+ firstUnseenUid,
66
+ highestModSeq,
67
+ [&](auto&& __input) {
68
+ size_t __size = __input->size();
69
+ std::vector<std::string> __vector;
70
+ __vector.reserve(__size);
71
+ for (size_t __i = 0; __i < __size; __i++) {
72
+ auto __element = __input->getElement(__i);
73
+ __vector.push_back(__element->toStdString());
74
+ }
75
+ return __vector;
76
+ }(flags),
77
+ [&](auto&& __input) {
78
+ size_t __size = __input->size();
79
+ std::vector<std::string> __vector;
80
+ __vector.reserve(__size);
81
+ for (size_t __i = 0; __i < __size; __i++) {
82
+ auto __element = __input->getElement(__i);
83
+ __vector.push_back(__element->toStdString());
84
+ }
85
+ return __vector;
86
+ }(permanentFlags)
87
+ );
88
+ }
89
+
90
+ public:
91
+ /**
92
+ * Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
93
+ */
94
+ [[maybe_unused]]
95
+ static jni::local_ref<JMailboxInfo::javaobject> fromCpp(const MailboxInfo& value) {
96
+ using JSignature = JMailboxInfo(jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, double, double, double, double, double, double, double, jni::alias_ref<jni::JArrayClass<jni::JString>>, jni::alias_ref<jni::JArrayClass<jni::JString>>);
97
+ static const auto clazz = javaClassStatic();
98
+ static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
99
+ return create(
100
+ clazz,
101
+ jni::make_jstring(value.name),
102
+ jni::make_jstring(value.path),
103
+ value.uidNext,
104
+ value.uidValidity,
105
+ value.messageCount,
106
+ value.recentCount,
107
+ value.unseenCount,
108
+ value.firstUnseenUid,
109
+ value.highestModSeq,
110
+ [&](auto&& __input) {
111
+ size_t __size = __input.size();
112
+ jni::local_ref<jni::JArrayClass<jni::JString>> __array = jni::JArrayClass<jni::JString>::newArray(__size);
113
+ for (size_t __i = 0; __i < __size; __i++) {
114
+ const auto& __element = __input[__i];
115
+ auto __elementJni = jni::make_jstring(__element);
116
+ __array->setElement(__i, *__elementJni);
117
+ }
118
+ return __array;
119
+ }(value.flags),
120
+ [&](auto&& __input) {
121
+ size_t __size = __input.size();
122
+ jni::local_ref<jni::JArrayClass<jni::JString>> __array = jni::JArrayClass<jni::JString>::newArray(__size);
123
+ for (size_t __i = 0; __i < __size; __i++) {
124
+ const auto& __element = __input[__i];
125
+ auto __elementJni = jni::make_jstring(__element);
126
+ __array->setElement(__i, *__elementJni);
127
+ }
128
+ return __array;
129
+ }(value.permanentFlags)
130
+ );
131
+ }
132
+ };
133
+
134
+ } // namespace margelo::nitro::emailimapsmtp
@@ -0,0 +1,92 @@
1
+ ///
2
+ /// JMailboxListItem.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #include <fbjni/fbjni.h>
11
+ #include "MailboxListItem.hpp"
12
+
13
+ #include <string>
14
+ #include <vector>
15
+
16
+ namespace margelo::nitro::emailimapsmtp {
17
+
18
+ using namespace facebook;
19
+
20
+ /**
21
+ * The C++ JNI bridge between the C++ struct "MailboxListItem" and the Kotlin data class "MailboxListItem".
22
+ */
23
+ struct JMailboxListItem final: public jni::JavaClass<JMailboxListItem> {
24
+ public:
25
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/emailimapsmtp/MailboxListItem;";
26
+
27
+ public:
28
+ /**
29
+ * Convert this Java/Kotlin-based struct to the C++ struct MailboxListItem by copying all values to C++.
30
+ */
31
+ [[maybe_unused]]
32
+ [[nodiscard]]
33
+ MailboxListItem toCpp() const {
34
+ static const auto clazz = javaClassStatic();
35
+ static const auto fieldName = clazz->getField<jni::JString>("name");
36
+ jni::local_ref<jni::JString> name = this->getFieldValue(fieldName);
37
+ static const auto fieldPath = clazz->getField<jni::JString>("path");
38
+ jni::local_ref<jni::JString> path = this->getFieldValue(fieldPath);
39
+ static const auto fieldDelimiter = clazz->getField<jni::JString>("delimiter");
40
+ jni::local_ref<jni::JString> delimiter = this->getFieldValue(fieldDelimiter);
41
+ static const auto fieldFlags = clazz->getField<jni::JArrayClass<jni::JString>>("flags");
42
+ jni::local_ref<jni::JArrayClass<jni::JString>> flags = this->getFieldValue(fieldFlags);
43
+ static const auto fieldSubscribed = clazz->getField<jboolean>("subscribed");
44
+ jboolean subscribed = this->getFieldValue(fieldSubscribed);
45
+ return MailboxListItem(
46
+ name->toStdString(),
47
+ path->toStdString(),
48
+ delimiter->toStdString(),
49
+ [&](auto&& __input) {
50
+ size_t __size = __input->size();
51
+ std::vector<std::string> __vector;
52
+ __vector.reserve(__size);
53
+ for (size_t __i = 0; __i < __size; __i++) {
54
+ auto __element = __input->getElement(__i);
55
+ __vector.push_back(__element->toStdString());
56
+ }
57
+ return __vector;
58
+ }(flags),
59
+ static_cast<bool>(subscribed)
60
+ );
61
+ }
62
+
63
+ public:
64
+ /**
65
+ * Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
66
+ */
67
+ [[maybe_unused]]
68
+ static jni::local_ref<JMailboxListItem::javaobject> fromCpp(const MailboxListItem& value) {
69
+ using JSignature = JMailboxListItem(jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JArrayClass<jni::JString>>, jboolean);
70
+ static const auto clazz = javaClassStatic();
71
+ static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
72
+ return create(
73
+ clazz,
74
+ jni::make_jstring(value.name),
75
+ jni::make_jstring(value.path),
76
+ jni::make_jstring(value.delimiter),
77
+ [&](auto&& __input) {
78
+ size_t __size = __input.size();
79
+ jni::local_ref<jni::JArrayClass<jni::JString>> __array = jni::JArrayClass<jni::JString>::newArray(__size);
80
+ for (size_t __i = 0; __i < __size; __i++) {
81
+ const auto& __element = __input[__i];
82
+ auto __elementJni = jni::make_jstring(__element);
83
+ __array->setElement(__i, *__elementJni);
84
+ }
85
+ return __array;
86
+ }(value.flags),
87
+ value.subscribed
88
+ );
89
+ }
90
+ };
91
+
92
+ } // namespace margelo::nitro::emailimapsmtp
@@ -0,0 +1,78 @@
1
+ ///
2
+ /// JQuotaInfo.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #include <fbjni/fbjni.h>
11
+ #include "QuotaInfo.hpp"
12
+
13
+ #include <optional>
14
+ #include <string>
15
+
16
+ namespace margelo::nitro::emailimapsmtp {
17
+
18
+ using namespace facebook;
19
+
20
+ /**
21
+ * The C++ JNI bridge between the C++ struct "QuotaInfo" and the Kotlin data class "QuotaInfo".
22
+ */
23
+ struct JQuotaInfo final: public jni::JavaClass<JQuotaInfo> {
24
+ public:
25
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/emailimapsmtp/QuotaInfo;";
26
+
27
+ public:
28
+ /**
29
+ * Convert this Java/Kotlin-based struct to the C++ struct QuotaInfo by copying all values to C++.
30
+ */
31
+ [[maybe_unused]]
32
+ [[nodiscard]]
33
+ QuotaInfo toCpp() const {
34
+ static const auto clazz = javaClassStatic();
35
+ static const auto fieldStorageUsed = clazz->getField<double>("storageUsed");
36
+ double storageUsed = this->getFieldValue(fieldStorageUsed);
37
+ static const auto fieldStorageLimit = clazz->getField<double>("storageLimit");
38
+ double storageLimit = this->getFieldValue(fieldStorageLimit);
39
+ static const auto fieldStorageUnit = clazz->getField<jni::JString>("storageUnit");
40
+ jni::local_ref<jni::JString> storageUnit = this->getFieldValue(fieldStorageUnit);
41
+ static const auto fieldMessagesUsed = clazz->getField<jni::JDouble>("messagesUsed");
42
+ jni::local_ref<jni::JDouble> messagesUsed = this->getFieldValue(fieldMessagesUsed);
43
+ static const auto fieldMessagesLimit = clazz->getField<jni::JDouble>("messagesLimit");
44
+ jni::local_ref<jni::JDouble> messagesLimit = this->getFieldValue(fieldMessagesLimit);
45
+ static const auto fieldRoot = clazz->getField<jni::JString>("root");
46
+ jni::local_ref<jni::JString> root = this->getFieldValue(fieldRoot);
47
+ return QuotaInfo(
48
+ storageUsed,
49
+ storageLimit,
50
+ storageUnit->toStdString(),
51
+ messagesUsed != nullptr ? std::make_optional(messagesUsed->value()) : std::nullopt,
52
+ messagesLimit != nullptr ? std::make_optional(messagesLimit->value()) : std::nullopt,
53
+ root->toStdString()
54
+ );
55
+ }
56
+
57
+ public:
58
+ /**
59
+ * Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
60
+ */
61
+ [[maybe_unused]]
62
+ static jni::local_ref<JQuotaInfo::javaobject> fromCpp(const QuotaInfo& value) {
63
+ using JSignature = JQuotaInfo(double, double, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JString>);
64
+ static const auto clazz = javaClassStatic();
65
+ static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
66
+ return create(
67
+ clazz,
68
+ value.storageUsed,
69
+ value.storageLimit,
70
+ jni::make_jstring(value.storageUnit),
71
+ value.messagesUsed.has_value() ? jni::JDouble::valueOf(value.messagesUsed.value()) : nullptr,
72
+ value.messagesLimit.has_value() ? jni::JDouble::valueOf(value.messagesLimit.value()) : nullptr,
73
+ jni::make_jstring(value.root)
74
+ );
75
+ }
76
+ };
77
+
78
+ } // namespace margelo::nitro::emailimapsmtp