@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
package/ios/Pubky.mm CHANGED
@@ -1,6 +1,21 @@
1
1
  #import <React/RCTBridgeModule.h>
2
+ #import <React/RCTEventEmitter.h>
2
3
 
3
- @interface RCT_EXTERN_MODULE(Pubky, NSObject)
4
+ @interface RCT_EXTERN_MODULE(Pubky, RCTEventEmitter)
5
+
6
+ RCT_EXTERN_METHOD(setEventListener:(RCTPromiseResolveBlock)resolve
7
+ withRejecter:(RCTPromiseRejectBlock)reject)
8
+
9
+ RCT_EXTERN_METHOD(removeEventListener:(RCTPromiseResolveBlock)resolve
10
+ withRejecter:(RCTPromiseRejectBlock)reject)
11
+
12
+ RCT_EXTERN_METHOD(deleteFile:(NSString *)url
13
+ withResolver:(RCTPromiseResolveBlock)resolve
14
+ withRejecter:(RCTPromiseRejectBlock)reject)
15
+
16
+ RCT_EXTERN_METHOD(session:(NSString *)pubky
17
+ withResolver:(RCTPromiseResolveBlock)resolve
18
+ withRejecter:(RCTPromiseRejectBlock)reject)
4
19
 
5
20
  RCT_EXTERN_METHOD(auth:(NSString *)url
6
21
  secretKey:(NSString *)secretKey
package/ios/Pubky.swift CHANGED
@@ -1,7 +1,46 @@
1
1
  import Foundation
2
+ import React
2
3
 
3
4
  @objc(Pubky)
4
- class Pubky: NSObject {
5
+ class Pubky: RCTEventEmitter {
6
+
7
+ override init() {
8
+ super.init()
9
+ }
10
+
11
+ @objc override static func requiresMainQueueSetup() -> Bool {
12
+ return false
13
+ }
14
+
15
+ override func supportedEvents() -> [String]! {
16
+ return ["PubkyEvent"]
17
+ }
18
+
19
+ class EventListenerImpl: EventListener {
20
+ weak var pubky: Pubky?
21
+
22
+ init(pubky: Pubky) {
23
+ self.pubky = pubky
24
+ }
25
+
26
+ func onEventOccurred(eventData: String) {
27
+ pubky?.sendEvent(withName: "PubkyEvent", body: eventData)
28
+ }
29
+ }
30
+
31
+ @objc(setEventListener:withRejecter:)
32
+ func setEventListener(_ resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
33
+ let listener = EventListenerImpl(pubky: self)
34
+ react_native_pubky.setEventListener(listener: listener)
35
+ resolve(nil)
36
+ }
37
+
38
+ @objc(removeEventListener:withRejecter:)
39
+ func removeEventListener(_ resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
40
+ react_native_pubky.removeEventListener()
41
+ resolve(nil)
42
+ }
43
+
5
44
  @objc(auth:secretKey:withResolver:withRejecter:)
6
45
  func auth(_ url: String, secretKey: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
7
46
  Task {
@@ -144,6 +183,30 @@ class Pubky: NSObject {
144
183
  }
145
184
  }
146
185
 
186
+ @objc(deleteFile:withResolver:withRejecter:)
187
+ func deleteFile(_ url: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
188
+ Task {
189
+ do {
190
+ let result = try await react_native_pubky.deleteFile(url: url)
191
+ resolve(result)
192
+ } catch {
193
+ reject("list Error", "Failed to deleteFile", error)
194
+ }
195
+ }
196
+ }
197
+
198
+ @objc(session:withResolver:withRejecter:)
199
+ func session(_ pubky: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
200
+ Task {
201
+ do {
202
+ let result = react_native_pubky.session(pubky: pubky)
203
+ resolve(result)
204
+ } catch {
205
+ reject("session Error", "Failed to get session", error)
206
+ }
207
+ }
208
+ }
209
+
147
210
  @objc(generateSecretKey:withRejecter:)
148
211
  func generateSecretKey(_ resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
149
212
  Task {
@@ -5,8 +5,8 @@ import Foundation
5
5
  // Depending on the consumer's build setup, the low-level FFI code
6
6
  // might be in a separate module, or it might be compiled inline into
7
7
  // this module. This is a bit of light hackery to work with both.
8
- #if canImport(pubkymobileFFI)
9
- import pubkymobileFFI
8
+ #if canImport(pubkycoreFFI)
9
+ import pubkycoreFFI
10
10
  #endif
11
11
 
12
12
  fileprivate extension RustBuffer {
@@ -19,13 +19,13 @@ fileprivate extension RustBuffer {
19
19
  }
20
20
 
21
21
  static func from(_ ptr: UnsafeBufferPointer<UInt8>) -> RustBuffer {
22
- try! rustCall { ffi_pubkymobile_rustbuffer_from_bytes(ForeignBytes(bufferPointer: ptr), $0) }
22
+ try! rustCall { ffi_pubkycore_rustbuffer_from_bytes(ForeignBytes(bufferPointer: ptr), $0) }
23
23
  }
24
24
 
25
25
  // Frees the buffer in place.
26
26
  // The buffer must not be used after this is called.
27
27
  func deallocate() {
28
- try! rustCall { ffi_pubkymobile_rustbuffer_free(self, $0) }
28
+ try! rustCall { ffi_pubkycore_rustbuffer_free(self, $0) }
29
29
  }
30
30
  }
31
31
 
@@ -297,6 +297,27 @@ private func uniffiCheckCallStatus(
297
297
  // Public interface members begin here.
298
298
 
299
299
 
300
+ fileprivate struct FfiConverterBool : FfiConverter {
301
+ typealias FfiType = Int8
302
+ typealias SwiftType = Bool
303
+
304
+ public static func lift(_ value: Int8) throws -> Bool {
305
+ return value != 0
306
+ }
307
+
308
+ public static func lower(_ value: Bool) -> Int8 {
309
+ return value ? 1 : 0
310
+ }
311
+
312
+ public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Bool {
313
+ return try lift(readInt(&buf))
314
+ }
315
+
316
+ public static func write(_ value: Bool, into buf: inout [UInt8]) {
317
+ writeInt(&buf, lower(value))
318
+ }
319
+ }
320
+
300
321
  fileprivate struct FfiConverterString: FfiConverter {
301
322
  typealias SwiftType = String
302
323
  typealias FfiType = RustBuffer
@@ -335,6 +356,240 @@ fileprivate struct FfiConverterString: FfiConverter {
335
356
  }
336
357
  }
337
358
 
359
+
360
+ public protocol EventNotifierProtocol {
361
+
362
+ }
363
+
364
+ public class EventNotifier: EventNotifierProtocol {
365
+ fileprivate let pointer: UnsafeMutableRawPointer
366
+
367
+ // TODO: We'd like this to be `private` but for Swifty reasons,
368
+ // we can't implement `FfiConverter` without making this `required` and we can't
369
+ // make it `required` without making it `public`.
370
+ required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) {
371
+ self.pointer = pointer
372
+ }
373
+
374
+ deinit {
375
+ try! rustCall { uniffi_pubkycore_fn_free_eventnotifier(pointer, $0) }
376
+ }
377
+
378
+
379
+
380
+
381
+
382
+ }
383
+
384
+ public struct FfiConverterTypeEventNotifier: FfiConverter {
385
+ typealias FfiType = UnsafeMutableRawPointer
386
+ typealias SwiftType = EventNotifier
387
+
388
+ public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> EventNotifier {
389
+ let v: UInt64 = try readInt(&buf)
390
+ // The Rust code won't compile if a pointer won't fit in a UInt64.
391
+ // We have to go via `UInt` because that's the thing that's the size of a pointer.
392
+ let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v))
393
+ if (ptr == nil) {
394
+ throw UniffiInternalError.unexpectedNullPointer
395
+ }
396
+ return try lift(ptr!)
397
+ }
398
+
399
+ public static func write(_ value: EventNotifier, into buf: inout [UInt8]) {
400
+ // This fiddling is because `Int` is the thing that's the same size as a pointer.
401
+ // The Rust code won't compile if a pointer won't fit in a `UInt64`.
402
+ writeInt(&buf, UInt64(bitPattern: Int64(Int(bitPattern: lower(value)))))
403
+ }
404
+
405
+ public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> EventNotifier {
406
+ return EventNotifier(unsafeFromRawPointer: pointer)
407
+ }
408
+
409
+ public static func lower(_ value: EventNotifier) -> UnsafeMutableRawPointer {
410
+ return value.pointer
411
+ }
412
+ }
413
+
414
+
415
+ public func FfiConverterTypeEventNotifier_lift(_ pointer: UnsafeMutableRawPointer) throws -> EventNotifier {
416
+ return try FfiConverterTypeEventNotifier.lift(pointer)
417
+ }
418
+
419
+ public func FfiConverterTypeEventNotifier_lower(_ value: EventNotifier) -> UnsafeMutableRawPointer {
420
+ return FfiConverterTypeEventNotifier.lower(value)
421
+ }
422
+
423
+ fileprivate extension NSLock {
424
+ func withLock<T>(f: () throws -> T) rethrows -> T {
425
+ self.lock()
426
+ defer { self.unlock() }
427
+ return try f()
428
+ }
429
+ }
430
+
431
+ fileprivate typealias UniFFICallbackHandle = UInt64
432
+ fileprivate class UniFFICallbackHandleMap<T> {
433
+ private var leftMap: [UniFFICallbackHandle: T] = [:]
434
+ private var counter: [UniFFICallbackHandle: UInt64] = [:]
435
+ private var rightMap: [ObjectIdentifier: UniFFICallbackHandle] = [:]
436
+
437
+ private let lock = NSLock()
438
+ private var currentHandle: UniFFICallbackHandle = 0
439
+ private let stride: UniFFICallbackHandle = 1
440
+
441
+ func insert(obj: T) -> UniFFICallbackHandle {
442
+ lock.withLock {
443
+ let id = ObjectIdentifier(obj as AnyObject)
444
+ let handle = rightMap[id] ?? {
445
+ currentHandle += stride
446
+ let handle = currentHandle
447
+ leftMap[handle] = obj
448
+ rightMap[id] = handle
449
+ return handle
450
+ }()
451
+ counter[handle] = (counter[handle] ?? 0) + 1
452
+ return handle
453
+ }
454
+ }
455
+
456
+ func get(handle: UniFFICallbackHandle) -> T? {
457
+ lock.withLock {
458
+ leftMap[handle]
459
+ }
460
+ }
461
+
462
+ func delete(handle: UniFFICallbackHandle) {
463
+ remove(handle: handle)
464
+ }
465
+
466
+ @discardableResult
467
+ func remove(handle: UniFFICallbackHandle) -> T? {
468
+ lock.withLock {
469
+ defer { counter[handle] = (counter[handle] ?? 1) - 1 }
470
+ guard counter[handle] == 1 else { return leftMap[handle] }
471
+ let obj = leftMap.removeValue(forKey: handle)
472
+ if let obj = obj {
473
+ rightMap.removeValue(forKey: ObjectIdentifier(obj as AnyObject))
474
+ }
475
+ return obj
476
+ }
477
+ }
478
+ }
479
+
480
+ // Magic number for the Rust proxy to call using the same mechanism as every other method,
481
+ // to free the callback once it's dropped by Rust.
482
+ private let IDX_CALLBACK_FREE: Int32 = 0
483
+ // Callback return codes
484
+ private let UNIFFI_CALLBACK_SUCCESS: Int32 = 0
485
+ private let UNIFFI_CALLBACK_ERROR: Int32 = 1
486
+ private let UNIFFI_CALLBACK_UNEXPECTED_ERROR: Int32 = 2
487
+
488
+ // Declaration and FfiConverters for EventListener Callback Interface
489
+
490
+ public protocol EventListener : AnyObject {
491
+ func onEventOccurred(eventData: String)
492
+
493
+ }
494
+
495
+ // The ForeignCallback that is passed to Rust.
496
+ fileprivate let foreignCallbackCallbackInterfaceEventListener : ForeignCallback =
497
+ { (handle: UniFFICallbackHandle, method: Int32, argsData: UnsafePointer<UInt8>, argsLen: Int32, out_buf: UnsafeMutablePointer<RustBuffer>) -> Int32 in
498
+
499
+
500
+ func invokeOnEventOccurred(_ swiftCallbackInterface: EventListener, _ argsData: UnsafePointer<UInt8>, _ argsLen: Int32, _ out_buf: UnsafeMutablePointer<RustBuffer>) throws -> Int32 {
501
+ var reader = createReader(data: Data(bytes: argsData, count: Int(argsLen)))
502
+ func makeCall() throws -> Int32 {
503
+ try swiftCallbackInterface.onEventOccurred(
504
+ eventData: try FfiConverterString.read(from: &reader)
505
+ )
506
+ return UNIFFI_CALLBACK_SUCCESS
507
+ }
508
+ return try makeCall()
509
+ }
510
+
511
+
512
+ switch method {
513
+ case IDX_CALLBACK_FREE:
514
+ FfiConverterCallbackInterfaceEventListener.drop(handle: handle)
515
+ // Sucessful return
516
+ // See docs of ForeignCallback in `uniffi_core/src/ffi/foreigncallbacks.rs`
517
+ return UNIFFI_CALLBACK_SUCCESS
518
+ case 1:
519
+ let cb: EventListener
520
+ do {
521
+ cb = try FfiConverterCallbackInterfaceEventListener.lift(handle)
522
+ } catch {
523
+ out_buf.pointee = FfiConverterString.lower("EventListener: Invalid handle")
524
+ return UNIFFI_CALLBACK_UNEXPECTED_ERROR
525
+ }
526
+ do {
527
+ return try invokeOnEventOccurred(cb, argsData, argsLen, out_buf)
528
+ } catch let error {
529
+ out_buf.pointee = FfiConverterString.lower(String(describing: error))
530
+ return UNIFFI_CALLBACK_UNEXPECTED_ERROR
531
+ }
532
+
533
+ // This should never happen, because an out of bounds method index won't
534
+ // ever be used. Once we can catch errors, we should return an InternalError.
535
+ // https://github.com/mozilla/uniffi-rs/issues/351
536
+ default:
537
+ // An unexpected error happened.
538
+ // See docs of ForeignCallback in `uniffi_core/src/ffi/foreigncallbacks.rs`
539
+ return UNIFFI_CALLBACK_UNEXPECTED_ERROR
540
+ }
541
+ }
542
+
543
+ // FfiConverter protocol for callback interfaces
544
+ fileprivate struct FfiConverterCallbackInterfaceEventListener {
545
+ private static let initCallbackOnce: () = {
546
+ // Swift ensures this initializer code will once run once, even when accessed by multiple threads.
547
+ try! rustCall { (err: UnsafeMutablePointer<RustCallStatus>) in
548
+ uniffi_pubkycore_fn_init_callback_eventlistener(foreignCallbackCallbackInterfaceEventListener, err)
549
+ }
550
+ }()
551
+
552
+ private static func ensureCallbackinitialized() {
553
+ _ = initCallbackOnce
554
+ }
555
+
556
+ static func drop(handle: UniFFICallbackHandle) {
557
+ handleMap.remove(handle: handle)
558
+ }
559
+
560
+ private static var handleMap = UniFFICallbackHandleMap<EventListener>()
561
+ }
562
+
563
+ extension FfiConverterCallbackInterfaceEventListener : FfiConverter {
564
+ typealias SwiftType = EventListener
565
+ // We can use Handle as the FfiType because it's a typealias to UInt64
566
+ typealias FfiType = UniFFICallbackHandle
567
+
568
+ public static func lift(_ handle: UniFFICallbackHandle) throws -> SwiftType {
569
+ ensureCallbackinitialized();
570
+ guard let callback = handleMap.get(handle: handle) else {
571
+ throw UniffiInternalError.unexpectedStaleHandle
572
+ }
573
+ return callback
574
+ }
575
+
576
+ public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> SwiftType {
577
+ ensureCallbackinitialized();
578
+ let handle: UniFFICallbackHandle = try readInt(&buf)
579
+ return try lift(handle)
580
+ }
581
+
582
+ public static func lower(_ v: SwiftType) -> UniFFICallbackHandle {
583
+ ensureCallbackinitialized();
584
+ return handleMap.insert(obj: v)
585
+ }
586
+
587
+ public static func write(_ v: SwiftType, into buf: inout [UInt8]) {
588
+ ensureCallbackinitialized();
589
+ writeInt(&buf, lower(v))
590
+ }
591
+ }
592
+
338
593
  fileprivate struct FfiConverterSequenceString: FfiConverterRustBuffer {
339
594
  typealias SwiftType = [String]
340
595
 
@@ -360,7 +615,7 @@ fileprivate struct FfiConverterSequenceString: FfiConverterRustBuffer {
360
615
  public func auth(url: String, secretKey: String) -> [String] {
361
616
  return try! FfiConverterSequenceString.lift(
362
617
  try! rustCall() {
363
- uniffi_pubkymobile_fn_func_auth(
618
+ uniffi_pubkycore_fn_func_auth(
364
619
  FfiConverterString.lower(url),
365
620
  FfiConverterString.lower(secretKey),$0)
366
621
  }
@@ -370,7 +625,7 @@ public func auth(url: String, secretKey: String) -> [String] {
370
625
  public func createRecoveryFile(secretKey: String, passphrase: String) -> [String] {
371
626
  return try! FfiConverterSequenceString.lift(
372
627
  try! rustCall() {
373
- uniffi_pubkymobile_fn_func_create_recovery_file(
628
+ uniffi_pubkycore_fn_func_create_recovery_file(
374
629
  FfiConverterString.lower(secretKey),
375
630
  FfiConverterString.lower(passphrase),$0)
376
631
  }
@@ -380,17 +635,26 @@ public func createRecoveryFile(secretKey: String, passphrase: String) -> [Strin
380
635
  public func decryptRecoveryFile(recoveryFile: String, passphrase: String) -> [String] {
381
636
  return try! FfiConverterSequenceString.lift(
382
637
  try! rustCall() {
383
- uniffi_pubkymobile_fn_func_decrypt_recovery_file(
638
+ uniffi_pubkycore_fn_func_decrypt_recovery_file(
384
639
  FfiConverterString.lower(recoveryFile),
385
640
  FfiConverterString.lower(passphrase),$0)
386
641
  }
387
642
  )
388
643
  }
389
644
 
645
+ public func deleteFile(url: String) -> [String] {
646
+ return try! FfiConverterSequenceString.lift(
647
+ try! rustCall() {
648
+ uniffi_pubkycore_fn_func_delete_file(
649
+ FfiConverterString.lower(url),$0)
650
+ }
651
+ )
652
+ }
653
+
390
654
  public func generateSecretKey() -> [String] {
391
655
  return try! FfiConverterSequenceString.lift(
392
656
  try! rustCall() {
393
- uniffi_pubkymobile_fn_func_generate_secret_key($0)
657
+ uniffi_pubkycore_fn_func_generate_secret_key($0)
394
658
  }
395
659
  )
396
660
  }
@@ -398,7 +662,7 @@ public func generateSecretKey() -> [String] {
398
662
  public func get(url: String) -> [String] {
399
663
  return try! FfiConverterSequenceString.lift(
400
664
  try! rustCall() {
401
- uniffi_pubkymobile_fn_func_get(
665
+ uniffi_pubkycore_fn_func_get(
402
666
  FfiConverterString.lower(url),$0)
403
667
  }
404
668
  )
@@ -407,7 +671,7 @@ public func get(url: String) -> [String] {
407
671
  public func getPublicKeyFromSecretKey(secretKey: String) -> [String] {
408
672
  return try! FfiConverterSequenceString.lift(
409
673
  try! rustCall() {
410
- uniffi_pubkymobile_fn_func_get_public_key_from_secret_key(
674
+ uniffi_pubkycore_fn_func_get_public_key_from_secret_key(
411
675
  FfiConverterString.lower(secretKey),$0)
412
676
  }
413
677
  )
@@ -416,7 +680,7 @@ public func getPublicKeyFromSecretKey(secretKey: String) -> [String] {
416
680
  public func list(url: String) -> [String] {
417
681
  return try! FfiConverterSequenceString.lift(
418
682
  try! rustCall() {
419
- uniffi_pubkymobile_fn_func_list(
683
+ uniffi_pubkycore_fn_func_list(
420
684
  FfiConverterString.lower(url),$0)
421
685
  }
422
686
  )
@@ -425,7 +689,7 @@ public func list(url: String) -> [String] {
425
689
  public func parseAuthUrl(url: String) -> [String] {
426
690
  return try! FfiConverterSequenceString.lift(
427
691
  try! rustCall() {
428
- uniffi_pubkymobile_fn_func_parse_auth_url(
692
+ uniffi_pubkycore_fn_func_parse_auth_url(
429
693
  FfiConverterString.lower(url),$0)
430
694
  }
431
695
  )
@@ -434,7 +698,7 @@ public func parseAuthUrl(url: String) -> [String] {
434
698
  public func publish(recordName: String, recordContent: String, secretKey: String) -> [String] {
435
699
  return try! FfiConverterSequenceString.lift(
436
700
  try! rustCall() {
437
- uniffi_pubkymobile_fn_func_publish(
701
+ uniffi_pubkycore_fn_func_publish(
438
702
  FfiConverterString.lower(recordName),
439
703
  FfiConverterString.lower(recordContent),
440
704
  FfiConverterString.lower(secretKey),$0)
@@ -445,7 +709,7 @@ public func publish(recordName: String, recordContent: String, secretKey: String
445
709
  public func publishHttps(recordName: String, target: String, secretKey: String) -> [String] {
446
710
  return try! FfiConverterSequenceString.lift(
447
711
  try! rustCall() {
448
- uniffi_pubkymobile_fn_func_publish_https(
712
+ uniffi_pubkycore_fn_func_publish_https(
449
713
  FfiConverterString.lower(recordName),
450
714
  FfiConverterString.lower(target),
451
715
  FfiConverterString.lower(secretKey),$0)
@@ -456,17 +720,25 @@ public func publishHttps(recordName: String, target: String, secretKey: String)
456
720
  public func put(url: String, content: String) -> [String] {
457
721
  return try! FfiConverterSequenceString.lift(
458
722
  try! rustCall() {
459
- uniffi_pubkymobile_fn_func_put(
723
+ uniffi_pubkycore_fn_func_put(
460
724
  FfiConverterString.lower(url),
461
725
  FfiConverterString.lower(content),$0)
462
726
  }
463
727
  )
464
728
  }
465
729
 
730
+ public func removeEventListener() {
731
+ try! rustCall() {
732
+ uniffi_pubkycore_fn_func_remove_event_listener($0)
733
+ }
734
+ }
735
+
736
+
737
+
466
738
  public func resolve(publicKey: String) -> [String] {
467
739
  return try! FfiConverterSequenceString.lift(
468
740
  try! rustCall() {
469
- uniffi_pubkymobile_fn_func_resolve(
741
+ uniffi_pubkycore_fn_func_resolve(
470
742
  FfiConverterString.lower(publicKey),$0)
471
743
  }
472
744
  )
@@ -475,16 +747,34 @@ public func resolve(publicKey: String) -> [String] {
475
747
  public func resolveHttps(publicKey: String) -> [String] {
476
748
  return try! FfiConverterSequenceString.lift(
477
749
  try! rustCall() {
478
- uniffi_pubkymobile_fn_func_resolve_https(
750
+ uniffi_pubkycore_fn_func_resolve_https(
479
751
  FfiConverterString.lower(publicKey),$0)
480
752
  }
481
753
  )
482
754
  }
483
755
 
756
+ public func session(pubky: String) -> [String] {
757
+ return try! FfiConverterSequenceString.lift(
758
+ try! rustCall() {
759
+ uniffi_pubkycore_fn_func_session(
760
+ FfiConverterString.lower(pubky),$0)
761
+ }
762
+ )
763
+ }
764
+
765
+ public func setEventListener(listener: EventListener) {
766
+ try! rustCall() {
767
+ uniffi_pubkycore_fn_func_set_event_listener(
768
+ FfiConverterCallbackInterfaceEventListener.lower(listener),$0)
769
+ }
770
+ }
771
+
772
+
773
+
484
774
  public func signIn(secretKey: String) -> [String] {
485
775
  return try! FfiConverterSequenceString.lift(
486
776
  try! rustCall() {
487
- uniffi_pubkymobile_fn_func_sign_in(
777
+ uniffi_pubkycore_fn_func_sign_in(
488
778
  FfiConverterString.lower(secretKey),$0)
489
779
  }
490
780
  )
@@ -493,7 +783,7 @@ public func signIn(secretKey: String) -> [String] {
493
783
  public func signOut(secretKey: String) -> [String] {
494
784
  return try! FfiConverterSequenceString.lift(
495
785
  try! rustCall() {
496
- uniffi_pubkymobile_fn_func_sign_out(
786
+ uniffi_pubkycore_fn_func_sign_out(
497
787
  FfiConverterString.lower(secretKey),$0)
498
788
  }
499
789
  )
@@ -502,13 +792,22 @@ public func signOut(secretKey: String) -> [String] {
502
792
  public func signUp(secretKey: String, homeserver: String) -> [String] {
503
793
  return try! FfiConverterSequenceString.lift(
504
794
  try! rustCall() {
505
- uniffi_pubkymobile_fn_func_sign_up(
795
+ uniffi_pubkycore_fn_func_sign_up(
506
796
  FfiConverterString.lower(secretKey),
507
797
  FfiConverterString.lower(homeserver),$0)
508
798
  }
509
799
  )
510
800
  }
511
801
 
802
+ public func switchNetwork(useTestnet: Bool) -> [String] {
803
+ return try! FfiConverterSequenceString.lift(
804
+ try! rustCall() {
805
+ uniffi_pubkycore_fn_func_switch_network(
806
+ FfiConverterBool.lower(useTestnet),$0)
807
+ }
808
+ )
809
+ }
810
+
512
811
  private enum InitializationResult {
513
812
  case ok
514
813
  case contractVersionMismatch
@@ -520,56 +819,74 @@ private var initializationResult: InitializationResult {
520
819
  // Get the bindings contract version from our ComponentInterface
521
820
  let bindings_contract_version = 24
522
821
  // Get the scaffolding contract version by calling the into the dylib
523
- let scaffolding_contract_version = ffi_pubkymobile_uniffi_contract_version()
822
+ let scaffolding_contract_version = ffi_pubkycore_uniffi_contract_version()
524
823
  if bindings_contract_version != scaffolding_contract_version {
525
824
  return InitializationResult.contractVersionMismatch
526
825
  }
527
- if (uniffi_pubkymobile_checksum_func_auth() != 61378) {
826
+ if (uniffi_pubkycore_checksum_func_auth() != 51826) {
827
+ return InitializationResult.apiChecksumMismatch
828
+ }
829
+ if (uniffi_pubkycore_checksum_func_create_recovery_file() != 48846) {
830
+ return InitializationResult.apiChecksumMismatch
831
+ }
832
+ if (uniffi_pubkycore_checksum_func_decrypt_recovery_file() != 26407) {
833
+ return InitializationResult.apiChecksumMismatch
834
+ }
835
+ if (uniffi_pubkycore_checksum_func_delete_file() != 9063) {
836
+ return InitializationResult.apiChecksumMismatch
837
+ }
838
+ if (uniffi_pubkycore_checksum_func_generate_secret_key() != 12800) {
839
+ return InitializationResult.apiChecksumMismatch
840
+ }
841
+ if (uniffi_pubkycore_checksum_func_get() != 6591) {
842
+ return InitializationResult.apiChecksumMismatch
843
+ }
844
+ if (uniffi_pubkycore_checksum_func_get_public_key_from_secret_key() != 40316) {
528
845
  return InitializationResult.apiChecksumMismatch
529
846
  }
530
- if (uniffi_pubkymobile_checksum_func_create_recovery_file() != 55903) {
847
+ if (uniffi_pubkycore_checksum_func_list() != 43198) {
531
848
  return InitializationResult.apiChecksumMismatch
532
849
  }
533
- if (uniffi_pubkymobile_checksum_func_decrypt_recovery_file() != 59688) {
850
+ if (uniffi_pubkycore_checksum_func_parse_auth_url() != 27379) {
534
851
  return InitializationResult.apiChecksumMismatch
535
852
  }
536
- if (uniffi_pubkymobile_checksum_func_generate_secret_key() != 63116) {
853
+ if (uniffi_pubkycore_checksum_func_publish() != 48989) {
537
854
  return InitializationResult.apiChecksumMismatch
538
855
  }
539
- if (uniffi_pubkymobile_checksum_func_get() != 21596) {
856
+ if (uniffi_pubkycore_checksum_func_publish_https() != 5614) {
540
857
  return InitializationResult.apiChecksumMismatch
541
858
  }
542
- if (uniffi_pubkymobile_checksum_func_get_public_key_from_secret_key() != 23603) {
859
+ if (uniffi_pubkycore_checksum_func_put() != 48150) {
543
860
  return InitializationResult.apiChecksumMismatch
544
861
  }
545
- if (uniffi_pubkymobile_checksum_func_list() != 8522) {
862
+ if (uniffi_pubkycore_checksum_func_remove_event_listener() != 23534) {
546
863
  return InitializationResult.apiChecksumMismatch
547
864
  }
548
- if (uniffi_pubkymobile_checksum_func_parse_auth_url() != 29088) {
865
+ if (uniffi_pubkycore_checksum_func_resolve() != 34317) {
549
866
  return InitializationResult.apiChecksumMismatch
550
867
  }
551
- if (uniffi_pubkymobile_checksum_func_publish() != 20156) {
868
+ if (uniffi_pubkycore_checksum_func_resolve_https() != 17266) {
552
869
  return InitializationResult.apiChecksumMismatch
553
870
  }
554
- if (uniffi_pubkymobile_checksum_func_publish_https() != 14705) {
871
+ if (uniffi_pubkycore_checksum_func_session() != 59795) {
555
872
  return InitializationResult.apiChecksumMismatch
556
873
  }
557
- if (uniffi_pubkymobile_checksum_func_put() != 51107) {
874
+ if (uniffi_pubkycore_checksum_func_set_event_listener() != 60071) {
558
875
  return InitializationResult.apiChecksumMismatch
559
876
  }
560
- if (uniffi_pubkymobile_checksum_func_resolve() != 18303) {
877
+ if (uniffi_pubkycore_checksum_func_sign_in() != 21584) {
561
878
  return InitializationResult.apiChecksumMismatch
562
879
  }
563
- if (uniffi_pubkymobile_checksum_func_resolve_https() != 34593) {
880
+ if (uniffi_pubkycore_checksum_func_sign_out() != 34903) {
564
881
  return InitializationResult.apiChecksumMismatch
565
882
  }
566
- if (uniffi_pubkymobile_checksum_func_sign_in() != 21006) {
883
+ if (uniffi_pubkycore_checksum_func_sign_up() != 37999) {
567
884
  return InitializationResult.apiChecksumMismatch
568
885
  }
569
- if (uniffi_pubkymobile_checksum_func_sign_out() != 59116) {
886
+ if (uniffi_pubkycore_checksum_func_switch_network() != 64215) {
570
887
  return InitializationResult.apiChecksumMismatch
571
888
  }
572
- if (uniffi_pubkymobile_checksum_func_sign_up() != 58756) {
889
+ if (uniffi_pubkycore_checksum_method_eventlistener_on_event_occurred() != 11531) {
573
890
  return InitializationResult.apiChecksumMismatch
574
891
  }
575
892