@synonymdev/react-native-pubky 0.8.0 → 0.9.1

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 (40) hide show
  1. package/README.md +52 -9
  2. package/android/src/main/java/com/pubky/PubkyModule.kt +364 -273
  3. package/android/src/main/java/uniffi/pubkycore/pubkycore.kt +1327 -0
  4. package/android/src/main/jniLibs/arm64-v8a/libpubkycore.so +0 -0
  5. package/android/src/main/jniLibs/armeabi-v7a/libpubkycore.so +0 -0
  6. package/android/src/main/jniLibs/x86/libpubkycore.so +0 -0
  7. package/android/src/main/jniLibs/x86_64/libpubkycore.so +0 -0
  8. package/ios/Frameworks/{PubkyMobile.xcframework → PubkyCore.xcframework}/Info.plist +8 -8
  9. package/ios/Frameworks/{PubkyMobile.xcframework → PubkyCore.xcframework}/ios-arm64/Headers/module.modulemap +2 -2
  10. package/ios/Frameworks/PubkyCore.xcframework/ios-arm64/Headers/pubkycoreFFI.h +297 -0
  11. package/ios/Frameworks/{PubkyMobile.xcframework/ios-arm64/libpubkymobile.a → PubkyCore.xcframework/ios-arm64/libpubkycore.a} +0 -0
  12. package/ios/Frameworks/{PubkyMobile.xcframework → PubkyCore.xcframework}/ios-arm64-simulator/Headers/module.modulemap +2 -2
  13. package/ios/Frameworks/PubkyCore.xcframework/ios-arm64-simulator/Headers/pubkycoreFFI.h +297 -0
  14. package/ios/Frameworks/{PubkyMobile.xcframework/ios-arm64-simulator/libpubkymobile.a → PubkyCore.xcframework/ios-arm64-simulator/libpubkycore.a} +0 -0
  15. package/ios/Pubky-Bridging-Header.h +1 -0
  16. package/ios/Pubky.mm +16 -1
  17. package/ios/Pubky.swift +64 -1
  18. package/ios/{pubkymobile.swift → pubkycore.swift} +354 -37
  19. package/lib/commonjs/index.js +45 -0
  20. package/lib/commonjs/index.js.map +1 -1
  21. package/lib/module/index.js +42 -1
  22. package/lib/module/index.js.map +1 -1
  23. package/lib/typescript/commonjs/src/index.d.ts +16 -9
  24. package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
  25. package/lib/typescript/module/src/index.d.ts +16 -9
  26. package/lib/typescript/module/src/index.d.ts.map +1 -1
  27. package/package.json +12 -7
  28. package/react-native-pubky.podspec +1 -1
  29. package/src/index.tsx +62 -9
  30. package/android/src/main/java/uniffi/pubkymobile/pubkymobile.kt +0 -862
  31. package/android/src/main/jniLibs/arm64-v8a/libpubkymobile.so +0 -0
  32. package/android/src/main/jniLibs/armeabi-v7a/libpubkymobile.so +0 -0
  33. package/android/src/main/jniLibs/x86/libpubkymobile.so +0 -0
  34. package/android/src/main/jniLibs/x86_64/libpubkymobile.so +0 -0
  35. package/ios/Frameworks/PubkyMobile.xcframework/ios-arm64/Headers/mobileFFI.h +0 -188
  36. package/ios/Frameworks/PubkyMobile.xcframework/ios-arm64/Headers/pubkymobileFFI.h +0 -264
  37. package/ios/Frameworks/PubkyMobile.xcframework/ios-arm64/libmobile.a +0 -0
  38. package/ios/Frameworks/PubkyMobile.xcframework/ios-arm64-simulator/Headers/mobileFFI.h +0 -188
  39. package/ios/Frameworks/PubkyMobile.xcframework/ios-arm64-simulator/Headers/pubkymobileFFI.h +0 -264
  40. package/ios/Frameworks/PubkyMobile.xcframework/ios-arm64-simulator/libmobile.a +0 -0
@@ -5,306 +5,397 @@ import com.facebook.react.bridge.ReactApplicationContext
5
5
  import com.facebook.react.bridge.ReactContextBaseJavaModule
6
6
  import com.facebook.react.bridge.ReactMethod
7
7
  import com.facebook.react.bridge.Promise
8
+ import com.facebook.react.modules.core.DeviceEventManagerModule
8
9
  import kotlinx.coroutines.CoroutineScope
9
10
  import kotlinx.coroutines.Dispatchers
10
11
  import kotlinx.coroutines.launch
11
12
  import kotlinx.coroutines.withContext
12
- import uniffi.pubkymobile.*
13
+ import uniffi.pubkycore.*
13
14
 
14
15
  class PubkyModule(reactContext: ReactApplicationContext) :
15
- ReactContextBaseJavaModule(reactContext) {
16
+ ReactContextBaseJavaModule(reactContext) {
16
17
 
17
- override fun getName(): String {
18
- return NAME
19
- }
18
+ override fun getName(): String {
19
+ return NAME
20
+ }
21
+
22
+ private val eventListener = object : EventListener {
23
+ override fun onEventOccurred(eventData: String) {
24
+ reactContext
25
+ .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)
26
+ .emit("PubkyEvent", eventData)
27
+ }
28
+ }
29
+
30
+ @ReactMethod
31
+ fun setEventListener(promise: Promise) {
32
+ CoroutineScope(Dispatchers.IO).launch {
33
+ try {
34
+ setEventListener(eventListener)
35
+ withContext(Dispatchers.Main) {
36
+ promise.resolve(null)
37
+ }
38
+ } catch (e: Exception) {
39
+ withContext(Dispatchers.Main) {
40
+ promise.reject("Error", e.message)
41
+ }
42
+ }
43
+ }
44
+ }
20
45
 
21
- @ReactMethod
22
- fun auth(url: String, secretKey: String, promise: Promise) {
23
- CoroutineScope(Dispatchers.IO).launch {
24
- try {
25
- val result = auth(url, secretKey)
26
- val array = Arguments.createArray().apply {
27
- result.forEach { pushString(it) }
28
- }
29
- withContext(Dispatchers.Main) {
30
- promise.resolve(array)
31
- }
32
- } catch (e: Exception) {
33
- withContext(Dispatchers.Main) {
34
- promise.reject("Error", e.message)
35
- }
36
- }
37
- }
38
- }
46
+ @ReactMethod
47
+ fun removeEventListener(promise: Promise) {
48
+ CoroutineScope(Dispatchers.IO).launch {
49
+ try {
50
+ removeEventListener()
51
+ withContext(Dispatchers.Main) {
52
+ promise.resolve(null)
53
+ }
54
+ } catch (e: Exception) {
55
+ withContext(Dispatchers.Main) {
56
+ promise.reject("Error", e.message)
57
+ }
58
+ }
59
+ }
60
+ }
39
61
 
40
- @ReactMethod
41
- fun parseAuthUrl(url: String, promise: Promise) {
42
- try {
43
- val result = parseAuthUrl(url)
44
- val array = Arguments.createArray().apply {
45
- result.forEach { pushString(it) }
46
- }
47
- promise.resolve(array)
48
- } catch (e: Exception) {
49
- promise.reject("Error", e.message)
62
+ @ReactMethod
63
+ fun deleteFile(url: String, promise: Promise) {
64
+ CoroutineScope(Dispatchers.IO).launch {
65
+ try {
66
+ val result = deleteFile(url)
67
+ val array = Arguments.createArray().apply {
68
+ result.forEach { pushString(it) }
69
+ }
70
+ withContext(Dispatchers.Main) {
71
+ promise.resolve(array)
72
+ }
73
+ } catch (e: Exception) {
74
+ withContext(Dispatchers.Main) {
75
+ promise.reject("Error", e.message)
76
+ }
77
+ }
78
+ }
50
79
  }
51
- }
52
80
 
53
- @ReactMethod
54
- fun publish(recordName: String, recordContent: String, secretKey: String, promise: Promise) {
55
- CoroutineScope(Dispatchers.IO).launch {
56
- try {
57
- val result = publish(recordName, recordContent, secretKey)
58
- val array = Arguments.createArray().apply {
59
- result.forEach { pushString(it) }
60
- }
61
- withContext(Dispatchers.Main) {
62
- promise.resolve(array)
63
- }
64
- } catch (e: Exception) {
65
- withContext(Dispatchers.Main) {
66
- promise.reject("Error", e.message)
67
- }
68
- }
69
- }
70
- }
81
+ @ReactMethod
82
+ fun session(pubky: String, promise: Promise) {
83
+ CoroutineScope(Dispatchers.IO).launch {
84
+ try {
85
+ val result = session(pubky)
86
+ val array = Arguments.createArray().apply {
87
+ result.forEach { pushString(it) }
88
+ }
89
+ withContext(Dispatchers.Main) {
90
+ promise.resolve(array)
91
+ }
92
+ } catch (e: Exception) {
93
+ withContext(Dispatchers.Main) {
94
+ promise.reject("Error", e.message)
95
+ }
96
+ }
97
+ }
98
+ }
71
99
 
72
- @ReactMethod
73
- fun resolve(publicKey: String, promise: Promise) {
74
- CoroutineScope(Dispatchers.IO).launch {
75
- try {
76
- val result = resolve(publicKey)
77
- val array = Arguments.createArray().apply {
78
- result.forEach { pushString(it) }
79
- }
80
- withContext(Dispatchers.Main) {
81
- promise.resolve(array)
82
- }
83
- } catch (e: Exception) {
84
- withContext(Dispatchers.Main) {
85
- promise.reject("Error", e.message)
86
- }
87
- }
88
- }
89
- }
100
+ @ReactMethod
101
+ fun auth(url: String, secretKey: String, promise: Promise) {
102
+ CoroutineScope(Dispatchers.IO).launch {
103
+ try {
104
+ val result = auth(url, secretKey)
105
+ val array = Arguments.createArray().apply {
106
+ result.forEach { pushString(it) }
107
+ }
108
+ withContext(Dispatchers.Main) {
109
+ promise.resolve(array)
110
+ }
111
+ } catch (e: Exception) {
112
+ withContext(Dispatchers.Main) {
113
+ promise.reject("Error", e.message)
114
+ }
115
+ }
116
+ }
117
+ }
118
+
119
+ @ReactMethod
120
+ fun parseAuthUrl(url: String, promise: Promise) {
121
+ try {
122
+ val result = parseAuthUrl(url)
123
+ val array = Arguments.createArray().apply {
124
+ result.forEach { pushString(it) }
125
+ }
126
+ promise.resolve(array)
127
+ } catch (e: Exception) {
128
+ promise.reject("Error", e.message)
129
+ }
130
+ }
131
+
132
+ @ReactMethod
133
+ fun publish(recordName: String, recordContent: String, secretKey: String, promise: Promise) {
134
+ CoroutineScope(Dispatchers.IO).launch {
135
+ try {
136
+ val result = publish(recordName, recordContent, secretKey)
137
+ val array = Arguments.createArray().apply {
138
+ result.forEach { pushString(it) }
139
+ }
140
+ withContext(Dispatchers.Main) {
141
+ promise.resolve(array)
142
+ }
143
+ } catch (e: Exception) {
144
+ withContext(Dispatchers.Main) {
145
+ promise.reject("Error", e.message)
146
+ }
147
+ }
148
+ }
149
+ }
150
+
151
+ @ReactMethod
152
+ fun resolve(publicKey: String, promise: Promise) {
153
+ CoroutineScope(Dispatchers.IO).launch {
154
+ try {
155
+ val result = resolve(publicKey)
156
+ val array = Arguments.createArray().apply {
157
+ result.forEach { pushString(it) }
158
+ }
159
+ withContext(Dispatchers.Main) {
160
+ promise.resolve(array)
161
+ }
162
+ } catch (e: Exception) {
163
+ withContext(Dispatchers.Main) {
164
+ promise.reject("Error", e.message)
165
+ }
166
+ }
167
+ }
168
+ }
90
169
 
91
- @ReactMethod
92
- fun signUp(secretKey: String, homeserver: String, promise: Promise) {
93
- CoroutineScope(Dispatchers.IO).launch {
94
- try {
95
- val result = signUp(secretKey, homeserver)
96
- val array = Arguments.createArray().apply {
97
- result.forEach { pushString(it) }
98
- }
99
- withContext(Dispatchers.Main) {
100
- promise.resolve(array)
101
- }
102
- } catch (e: Exception) {
103
- withContext(Dispatchers.Main) {
104
- promise.reject("Error", e.message)
105
- }
106
- }
107
- }
108
- }
170
+ @ReactMethod
171
+ fun signUp(secretKey: String, homeserver: String, promise: Promise) {
172
+ CoroutineScope(Dispatchers.IO).launch {
173
+ try {
174
+ val result = signUp(secretKey, homeserver)
175
+ val array = Arguments.createArray().apply {
176
+ result.forEach { pushString(it) }
177
+ }
178
+ withContext(Dispatchers.Main) {
179
+ promise.resolve(array)
180
+ }
181
+ } catch (e: Exception) {
182
+ withContext(Dispatchers.Main) {
183
+ promise.reject("Error", e.message)
184
+ }
185
+ }
186
+ }
187
+ }
109
188
 
110
- @ReactMethod
111
- fun signIn(secretKey: String, promise: Promise) {
112
- CoroutineScope(Dispatchers.IO).launch {
113
- try {
114
- val result = signIn(secretKey)
115
- val array = Arguments.createArray().apply {
116
- result.forEach { pushString(it) }
117
- }
118
- withContext(Dispatchers.Main) {
119
- promise.resolve(array)
120
- }
121
- } catch (e: Exception) {
122
- withContext(Dispatchers.Main) {
123
- promise.reject("Error", e.message)
124
- }
125
- }
126
- }
127
- }
189
+ @ReactMethod
190
+ fun signIn(secretKey: String, promise: Promise) {
191
+ CoroutineScope(Dispatchers.IO).launch {
192
+ try {
193
+ val result = signIn(secretKey)
194
+ val array = Arguments.createArray().apply {
195
+ result.forEach { pushString(it) }
196
+ }
197
+ withContext(Dispatchers.Main) {
198
+ promise.resolve(array)
199
+ }
200
+ } catch (e: Exception) {
201
+ withContext(Dispatchers.Main) {
202
+ promise.reject("Error", e.message)
203
+ }
204
+ }
205
+ }
206
+ }
128
207
 
129
- @ReactMethod
130
- fun signOut(secretKey: String, promise: Promise) {
131
- CoroutineScope(Dispatchers.IO).launch {
132
- try {
133
- val result = signOut(secretKey)
134
- val array = Arguments.createArray().apply {
135
- result.forEach { pushString(it) }
136
- }
137
- withContext(Dispatchers.Main) {
138
- promise.resolve(array)
139
- }
140
- } catch (e: Exception) {
141
- withContext(Dispatchers.Main) {
142
- promise.reject("Error", e.message)
143
- }
144
- }
145
- }
146
- }
208
+ @ReactMethod
209
+ fun signOut(secretKey: String, promise: Promise) {
210
+ CoroutineScope(Dispatchers.IO).launch {
211
+ try {
212
+ val result = signOut(secretKey)
213
+ val array = Arguments.createArray().apply {
214
+ result.forEach { pushString(it) }
215
+ }
216
+ withContext(Dispatchers.Main) {
217
+ promise.resolve(array)
218
+ }
219
+ } catch (e: Exception) {
220
+ withContext(Dispatchers.Main) {
221
+ promise.reject("Error", e.message)
222
+ }
223
+ }
224
+ }
225
+ }
147
226
 
148
- @ReactMethod
149
- fun put(url: String, content: String, promise: Promise) {
150
- CoroutineScope(Dispatchers.IO).launch {
151
- try {
152
- val result = put(url, content)
153
- val array = Arguments.createArray().apply {
154
- result.forEach { pushString(it) }
155
- }
156
- withContext(Dispatchers.Main) {
157
- promise.resolve(array)
158
- }
159
- } catch (e: Exception) {
160
- withContext(Dispatchers.Main) {
161
- promise.reject("Error", e.message)
162
- }
163
- }
164
- }
165
- }
227
+ @ReactMethod
228
+ fun put(url: String, content: String, promise: Promise) {
229
+ CoroutineScope(Dispatchers.IO).launch {
230
+ try {
231
+ val result = put(url, content)
232
+ val array = Arguments.createArray().apply {
233
+ result.forEach { pushString(it) }
234
+ }
235
+ withContext(Dispatchers.Main) {
236
+ promise.resolve(array)
237
+ }
238
+ } catch (e: Exception) {
239
+ withContext(Dispatchers.Main) {
240
+ promise.reject("Error", e.message)
241
+ }
242
+ }
243
+ }
244
+ }
166
245
 
167
- @ReactMethod
168
- fun get(url: String, promise: Promise) {
169
- CoroutineScope(Dispatchers.IO).launch {
170
- try {
171
- val result = get(url)
172
- val array = Arguments.createArray().apply {
173
- result.forEach { pushString(it) }
174
- }
175
- withContext(Dispatchers.Main) {
176
- promise.resolve(array)
177
- }
178
- } catch (e: Exception) {
179
- withContext(Dispatchers.Main) {
180
- promise.reject("Error", e.message)
181
- }
182
- }
183
- }
184
- }
246
+ @ReactMethod
247
+ fun get(url: String, promise: Promise) {
248
+ CoroutineScope(Dispatchers.IO).launch {
249
+ try {
250
+ val result = get(url)
251
+ val array = Arguments.createArray().apply {
252
+ result.forEach { pushString(it) }
253
+ }
254
+ withContext(Dispatchers.Main) {
255
+ promise.resolve(array)
256
+ }
257
+ } catch (e: Exception) {
258
+ withContext(Dispatchers.Main) {
259
+ promise.reject("Error", e.message)
260
+ }
261
+ }
262
+ }
263
+ }
185
264
 
186
- @ReactMethod
187
- fun publishHttps(recordName: String, target: String, secretKey: String, promise: Promise) {
188
- CoroutineScope(Dispatchers.IO).launch {
189
- try {
190
- val result = publishHttps(recordName, target, secretKey)
191
- val array = Arguments.createArray().apply {
192
- result.forEach { pushString(it) }
193
- }
194
- withContext(Dispatchers.Main) {
195
- promise.resolve(array)
196
- }
197
- } catch (e: Exception) {
198
- withContext(Dispatchers.Main) {
199
- promise.reject("Error", e.message)
200
- }
201
- }
202
- }
203
- }
265
+ @ReactMethod
266
+ fun publishHttps(recordName: String, target: String, secretKey: String, promise: Promise) {
267
+ CoroutineScope(Dispatchers.IO).launch {
268
+ try {
269
+ val result = publishHttps(recordName, target, secretKey)
270
+ val array = Arguments.createArray().apply {
271
+ result.forEach { pushString(it) }
272
+ }
273
+ withContext(Dispatchers.Main) {
274
+ promise.resolve(array)
275
+ }
276
+ } catch (e: Exception) {
277
+ withContext(Dispatchers.Main) {
278
+ promise.reject("Error", e.message)
279
+ }
280
+ }
281
+ }
282
+ }
204
283
 
205
- @ReactMethod
206
- fun resolveHttps(publicKey: String, promise: Promise) {
207
- CoroutineScope(Dispatchers.IO).launch {
208
- try {
209
- val result = resolveHttps(publicKey)
210
- val array = Arguments.createArray().apply {
211
- result.forEach { pushString(it) }
212
- }
213
- withContext(Dispatchers.Main) {
214
- promise.resolve(array)
215
- }
216
- } catch (e: Exception) {
217
- withContext(Dispatchers.Main) {
218
- promise.reject("Error", e.message)
219
- }
220
- }
221
- }
222
- }
284
+ @ReactMethod
285
+ fun resolveHttps(publicKey: String, promise: Promise) {
286
+ CoroutineScope(Dispatchers.IO).launch {
287
+ try {
288
+ val result = resolveHttps(publicKey)
289
+ val array = Arguments.createArray().apply {
290
+ result.forEach { pushString(it) }
291
+ }
292
+ withContext(Dispatchers.Main) {
293
+ promise.resolve(array)
294
+ }
295
+ } catch (e: Exception) {
296
+ withContext(Dispatchers.Main) {
297
+ promise.reject("Error", e.message)
298
+ }
299
+ }
300
+ }
301
+ }
223
302
 
224
- @ReactMethod
225
- fun list(url: String, promise: Promise) {
226
- CoroutineScope(Dispatchers.IO).launch {
227
- try {
228
- val result = list(url)
229
- val array = Arguments.createArray().apply {
230
- result.forEach { pushString(it) }
231
- }
232
- withContext(Dispatchers.Main) {
233
- promise.resolve(array)
234
- }
235
- } catch (e: Exception) {
236
- withContext(Dispatchers.Main) {
237
- promise.reject("Error", e.message)
238
- }
239
- }
240
- }
241
- }
303
+ @ReactMethod
304
+ fun list(url: String, promise: Promise) {
305
+ CoroutineScope(Dispatchers.IO).launch {
306
+ try {
307
+ val result = list(url)
308
+ val array = Arguments.createArray().apply {
309
+ result.forEach { pushString(it) }
310
+ }
311
+ withContext(Dispatchers.Main) {
312
+ promise.resolve(array)
313
+ }
314
+ } catch (e: Exception) {
315
+ withContext(Dispatchers.Main) {
316
+ promise.reject("Error", e.message)
317
+ }
318
+ }
319
+ }
320
+ }
242
321
 
243
- @ReactMethod
244
- fun generateSecretKey(promise: Promise) {
245
- CoroutineScope(Dispatchers.IO).launch {
246
- try {
247
- val result = generate_secret_key()
248
- val array = Arguments.createArray().apply {
249
- result.forEach { pushString(it) }
250
- }
251
- withContext(Dispatchers.Main) {
252
- promise.resolve(array)
253
- }
254
- } catch (e: Exception) {
255
- withContext(Dispatchers.Main) {
256
- promise.reject("Error", e.message)
257
- }
258
- }
259
- }
260
- }
322
+ @ReactMethod
323
+ fun generateSecretKey(promise: Promise) {
324
+ CoroutineScope(Dispatchers.IO).launch {
325
+ try {
326
+ val result = generateSecretKey()
327
+ val array = Arguments.createArray().apply {
328
+ result.forEach { pushString(it) }
329
+ }
330
+ withContext(Dispatchers.Main) {
331
+ promise.resolve(array)
332
+ }
333
+ } catch (e: Exception) {
334
+ withContext(Dispatchers.Main) {
335
+ promise.reject("Error", e.message)
336
+ }
337
+ }
338
+ }
339
+ }
261
340
 
262
- @ReactMethod
263
- fun getPublicKeyFromSecretKey(secretKey: String, promise: Promise) {
264
- CoroutineScope(Dispatchers.IO).launch {
265
- try {
266
- val result = getPublicKeyFromSecretKey(secretKey)
267
- val array = Arguments.createArray().apply {
268
- result.forEach { pushString(it) }
269
- }
270
- withContext(Dispatchers.Main) {
271
- promise.resolve(array)
272
- }
273
- } catch (e: Exception) {
274
- withContext(Dispatchers.Main) {
275
- promise.reject("Error", e.message)
276
- }
277
- }
278
- }
279
- }
341
+ @ReactMethod
342
+ fun getPublicKeyFromSecretKey(secretKey: String, promise: Promise) {
343
+ CoroutineScope(Dispatchers.IO).launch {
344
+ try {
345
+ val result = getPublicKeyFromSecretKey(secretKey)
346
+ val array = Arguments.createArray().apply {
347
+ result.forEach { pushString(it) }
348
+ }
349
+ withContext(Dispatchers.Main) {
350
+ promise.resolve(array)
351
+ }
352
+ } catch (e: Exception) {
353
+ withContext(Dispatchers.Main) {
354
+ promise.reject("Error", e.message)
355
+ }
356
+ }
357
+ }
358
+ }
280
359
 
281
- @ReactMethod
282
- fun createRecoveryFile(secretKey: String, passphrase: String, promise: Promise) {
283
- try {
284
- val result = createRecoveryFile(secretKey, passphrase)
285
- val array = Arguments.createArray().apply {
286
- result.forEach { pushString(it) }
360
+ @ReactMethod
361
+ fun createRecoveryFile(secretKey: String, passphrase: String, promise: Promise) {
362
+ CoroutineScope(Dispatchers.IO).launch {
363
+ try {
364
+ val result = createRecoveryFile(secretKey, passphrase)
365
+ val array = Arguments.createArray().apply {
366
+ result.forEach { pushString(it) }
367
+ }
368
+ withContext(Dispatchers.Main) {
369
+ promise.resolve(array)
370
+ }
371
+ } catch (e: Exception) {
372
+ withContext(Dispatchers.Main) {
373
+ promise.reject("Error", e.message)
374
+ }
375
+ }
287
376
  }
288
- promise.resolve(array)
289
- } catch (e: Exception) {
290
- promise.reject("Error", e.message)
291
377
  }
292
- }
293
378
 
294
- @ReactMethod
295
- fun decryptRecoveryFile(recoveryFile: String, passphrase: String, promise: Promise) {
296
- try {
297
- val result = decryptRecoveryFile(recoveryFile, passphrase)
298
- val array = Arguments.createArray().apply {
299
- result.forEach { pushString(it) }
379
+ @ReactMethod
380
+ fun decryptRecoveryFile(recoveryFile: String, passphrase: String, promise: Promise) {
381
+ CoroutineScope(Dispatchers.IO).launch {
382
+ try {
383
+ val result = decryptRecoveryFile(recoveryFile, passphrase)
384
+ val array = Arguments.createArray().apply {
385
+ result.forEach { pushString(it) }
386
+ }
387
+ withContext(Dispatchers.Main) {
388
+ promise.resolve(array)
389
+ }
390
+ } catch (e: Exception) {
391
+ withContext(Dispatchers.Main) {
392
+ promise.reject("Error", e.message)
393
+ }
394
+ }
300
395
  }
301
- promise.resolve(array)
302
- } catch (e: Exception) {
303
- promise.reject("Error", e.message)
304
396
  }
305
- }
306
397
 
307
- companion object {
308
- const val NAME = "Pubky"
309
- }
398
+ companion object {
399
+ const val NAME = "Pubky"
400
+ }
310
401
  }