@synonymdev/react-native-pubky 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
package/README.md CHANGED
@@ -12,11 +12,14 @@ npm install @synonymdev/react-native-pubky
12
12
  ### Implemented Methods
13
13
  - [x] [auth](#auth): Authentication functionality.
14
14
  - [x] [parseAuthUrl](#parseAuthUrl): Method to decode an authUrl.
15
+ - [x] [publish](#publish): Functionality to publish content.
16
+ - [x] [resolve](#resolve): Functionality to resolve content.
15
17
  ### Methods to be Implemented
16
- - [ ] publish: Functionality to publish content.
17
- - [ ] resolve: Functionality to resolve content.
18
- - [ ] signIn: Functionality to sign in.
19
- - [ ] signUp: Functionality to sign up.
18
+ - [ ] signIn: Sign-in to a homeserver.
19
+ - [ ] signUp: Sign-up to a homeserver and update Pkarr accordingly.
20
+ - [ ] signOut: Sign-out from a homeserver.
21
+ - [ ] put: Upload a small payload to a given path.
22
+ - [ ] get: Download a small payload from a given path relative to a pubky author.
20
23
 
21
24
 
22
25
  ## Usage
@@ -24,7 +27,10 @@ npm install @synonymdev/react-native-pubky
24
27
  ```js
25
28
  import { auth } from '@synonymdev/react-native-pubky';
26
29
 
27
- const authRes = await auth("pubkyAuthUrl", "secretKey");
30
+ const authRes = await auth(
31
+ 'pubkyauth:///?caps=/pub/pubky.app/:rw,/pub/foo.bar/file:r&secret=U55XnoH6vsMCpx1pxHtt8fReVg4Brvu9C0gUBuw-Jkw&relay=http://167.86.102.121:4173/',
32
+ 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'
33
+ );
28
34
  if (authRes.isErr()) {
29
35
  console.log(authRes.error.message);
30
36
  return;
@@ -43,6 +49,34 @@ if (parseRes.isErr()) {
43
49
  }
44
50
  console.log(parseRes.value);
45
51
  ```
52
+ ### <a name="publish"></a>publish
53
+ ```js
54
+ import { publish } from '@synonymdev/react-native-pubky';
55
+
56
+ const publishRes = await publish(
57
+ 'recordnametest',
58
+ 'recordcontenttest',
59
+ 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'
60
+ );
61
+ if (publishRes.isErr()) {
62
+ console.log(publishRes.error.message);
63
+ return;
64
+ }
65
+ console.log(publishRes.value);
66
+ ```
67
+ ### <a name="resolve"></a>resolve
68
+ ```js
69
+ import { resolve } from '@synonymdev/react-native-pubky';
70
+
71
+ const resolveRes = await resolve(
72
+ 'z4e8s17cou9qmuwen8p1556jzhf1wktmzo6ijsfnri9c4hnrdfty'
73
+ );
74
+ if (resolveRes.isErr()) {
75
+ console.log(resolveRes.error.message);
76
+ return;
77
+ }
78
+ console.log(resolveRes.value);
79
+ ```
46
80
 
47
81
  ## Local Installation
48
82
 
@@ -13,6 +13,11 @@ import uniffi.pubkymobile.auth
13
13
  import uniffi.pubkymobile.parseAuthUrl
14
14
  import uniffi.pubkymobile.publish
15
15
  import uniffi.pubkymobile.resolve
16
+ import uniffi.pubkymobile.signUp
17
+ import uniffi.pubkymobile.signIn
18
+ import uniffi.pubkymobile.signOut
19
+ import uniffi.pubkymobile.put
20
+ import uniffi.pubkymobile.get
16
21
 
17
22
  class PubkyModule(reactContext: ReactApplicationContext) :
18
23
  ReactContextBaseJavaModule(reactContext) {
@@ -91,6 +96,101 @@ class PubkyModule(reactContext: ReactApplicationContext) :
91
96
  }
92
97
  }
93
98
 
99
+ @ReactMethod
100
+ fun signUp(secretKey: String, homeserver: String, promise: Promise) {
101
+ CoroutineScope(Dispatchers.IO).launch {
102
+ try {
103
+ val result = signUp(secretKey, homeserver)
104
+ val array = Arguments.createArray().apply {
105
+ result.forEach { pushString(it) }
106
+ }
107
+ withContext(Dispatchers.Main) {
108
+ promise.resolve(array)
109
+ }
110
+ } catch (e: Exception) {
111
+ withContext(Dispatchers.Main) {
112
+ promise.reject("Error", e.message)
113
+ }
114
+ }
115
+ }
116
+ }
117
+
118
+ @ReactMethod
119
+ fun signIn(secretKey: String, promise: Promise) {
120
+ CoroutineScope(Dispatchers.IO).launch {
121
+ try {
122
+ val result = signIn(secretKey)
123
+ val array = Arguments.createArray().apply {
124
+ result.forEach { pushString(it) }
125
+ }
126
+ withContext(Dispatchers.Main) {
127
+ promise.resolve(array)
128
+ }
129
+ } catch (e: Exception) {
130
+ withContext(Dispatchers.Main) {
131
+ promise.reject("Error", e.message)
132
+ }
133
+ }
134
+ }
135
+ }
136
+
137
+ @ReactMethod
138
+ fun signOut(secretKey: String, promise: Promise) {
139
+ CoroutineScope(Dispatchers.IO).launch {
140
+ try {
141
+ val result = signOut(secretKey)
142
+ val array = Arguments.createArray().apply {
143
+ result.forEach { pushString(it) }
144
+ }
145
+ withContext(Dispatchers.Main) {
146
+ promise.resolve(array)
147
+ }
148
+ } catch (e: Exception) {
149
+ withContext(Dispatchers.Main) {
150
+ promise.reject("Error", e.message)
151
+ }
152
+ }
153
+ }
154
+ }
155
+
156
+ @ReactMethod
157
+ fun put(url: String, content: String, promise: Promise) {
158
+ CoroutineScope(Dispatchers.IO).launch {
159
+ try {
160
+ val result = put(url, content)
161
+ val array = Arguments.createArray().apply {
162
+ result.forEach { pushString(it) }
163
+ }
164
+ withContext(Dispatchers.Main) {
165
+ promise.resolve(array)
166
+ }
167
+ } catch (e: Exception) {
168
+ withContext(Dispatchers.Main) {
169
+ promise.reject("Error", e.message)
170
+ }
171
+ }
172
+ }
173
+ }
174
+
175
+ @ReactMethod
176
+ fun get(url: String, promise: Promise) {
177
+ CoroutineScope(Dispatchers.IO).launch {
178
+ try {
179
+ val result = get(url)
180
+ val array = Arguments.createArray().apply {
181
+ result.forEach { pushString(it) }
182
+ }
183
+ withContext(Dispatchers.Main) {
184
+ promise.resolve(array)
185
+ }
186
+ } catch (e: Exception) {
187
+ withContext(Dispatchers.Main) {
188
+ promise.reject("Error", e.message)
189
+ }
190
+ }
191
+ }
192
+ }
193
+
94
194
  companion object {
95
195
  const val NAME = "Pubky"
96
196
  }
@@ -29,6 +29,9 @@ import java.nio.ByteOrder
29
29
  import java.nio.CharBuffer
30
30
  import java.nio.charset.CodingErrorAction
31
31
  import java.util.concurrent.ConcurrentHashMap
32
+ import kotlin.coroutines.resume
33
+ import kotlinx.coroutines.CancellableContinuation
34
+ import kotlinx.coroutines.suspendCancellableCoroutine
32
35
 
33
36
  // This is a helper for safely working with byte buffers returned from the Rust code.
34
37
  // A rust-owned buffer is represented by its capacity, its current length, and a
@@ -377,18 +380,29 @@ internal interface _UniFFILib : Library {
377
380
  .also { lib: _UniFFILib ->
378
381
  uniffiCheckContractApiVersion(lib)
379
382
  uniffiCheckApiChecksums(lib)
383
+ uniffiRustFutureContinuationCallback.register(lib)
380
384
  }
381
385
  }
382
386
  }
383
387
 
384
388
  fun uniffi_pubkymobile_fn_func_auth(`url`: RustBuffer.ByValue,`secretKey`: RustBuffer.ByValue,_uniffi_out_err: RustCallStatus,
385
389
  ): RustBuffer.ByValue
390
+ fun uniffi_pubkymobile_fn_func_get(`url`: RustBuffer.ByValue,
391
+ ): Pointer
386
392
  fun uniffi_pubkymobile_fn_func_parse_auth_url(`url`: RustBuffer.ByValue,_uniffi_out_err: RustCallStatus,
387
393
  ): RustBuffer.ByValue
388
394
  fun uniffi_pubkymobile_fn_func_publish(`recordName`: RustBuffer.ByValue,`recordContent`: RustBuffer.ByValue,`secretKey`: RustBuffer.ByValue,_uniffi_out_err: RustCallStatus,
389
395
  ): RustBuffer.ByValue
396
+ fun uniffi_pubkymobile_fn_func_put(`url`: RustBuffer.ByValue,`content`: RustBuffer.ByValue,
397
+ ): Pointer
390
398
  fun uniffi_pubkymobile_fn_func_resolve(`publicKey`: RustBuffer.ByValue,_uniffi_out_err: RustCallStatus,
391
399
  ): RustBuffer.ByValue
400
+ fun uniffi_pubkymobile_fn_func_sign_in(`secretKey`: RustBuffer.ByValue,
401
+ ): Pointer
402
+ fun uniffi_pubkymobile_fn_func_sign_out(`secretKey`: RustBuffer.ByValue,
403
+ ): Pointer
404
+ fun uniffi_pubkymobile_fn_func_sign_up(`secretKey`: RustBuffer.ByValue,`homeserver`: RustBuffer.ByValue,
405
+ ): Pointer
392
406
  fun ffi_pubkymobile_rustbuffer_alloc(`size`: Int,_uniffi_out_err: RustCallStatus,
393
407
  ): RustBuffer.ByValue
394
408
  fun ffi_pubkymobile_rustbuffer_from_bytes(`bytes`: ForeignBytes.ByValue,_uniffi_out_err: RustCallStatus,
@@ -505,12 +519,22 @@ internal interface _UniFFILib : Library {
505
519
  ): Unit
506
520
  fun uniffi_pubkymobile_checksum_func_auth(
507
521
  ): Short
522
+ fun uniffi_pubkymobile_checksum_func_get(
523
+ ): Short
508
524
  fun uniffi_pubkymobile_checksum_func_parse_auth_url(
509
525
  ): Short
510
526
  fun uniffi_pubkymobile_checksum_func_publish(
511
527
  ): Short
528
+ fun uniffi_pubkymobile_checksum_func_put(
529
+ ): Short
512
530
  fun uniffi_pubkymobile_checksum_func_resolve(
513
531
  ): Short
532
+ fun uniffi_pubkymobile_checksum_func_sign_in(
533
+ ): Short
534
+ fun uniffi_pubkymobile_checksum_func_sign_out(
535
+ ): Short
536
+ fun uniffi_pubkymobile_checksum_func_sign_up(
537
+ ): Short
514
538
  fun ffi_pubkymobile_uniffi_contract_version(
515
539
  ): Int
516
540
 
@@ -531,18 +555,77 @@ private fun uniffiCheckApiChecksums(lib: _UniFFILib) {
531
555
  if (lib.uniffi_pubkymobile_checksum_func_auth() != 61378.toShort()) {
532
556
  throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
533
557
  }
558
+ if (lib.uniffi_pubkymobile_checksum_func_get() != 5395.toShort()) {
559
+ throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
560
+ }
534
561
  if (lib.uniffi_pubkymobile_checksum_func_parse_auth_url() != 29088.toShort()) {
535
562
  throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
536
563
  }
537
564
  if (lib.uniffi_pubkymobile_checksum_func_publish() != 20156.toShort()) {
538
565
  throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
539
566
  }
567
+ if (lib.uniffi_pubkymobile_checksum_func_put() != 47594.toShort()) {
568
+ throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
569
+ }
540
570
  if (lib.uniffi_pubkymobile_checksum_func_resolve() != 18303.toShort()) {
541
571
  throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
542
572
  }
573
+ if (lib.uniffi_pubkymobile_checksum_func_sign_in() != 53969.toShort()) {
574
+ throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
575
+ }
576
+ if (lib.uniffi_pubkymobile_checksum_func_sign_out() != 32961.toShort()) {
577
+ throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
578
+ }
579
+ if (lib.uniffi_pubkymobile_checksum_func_sign_up() != 28083.toShort()) {
580
+ throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
581
+ }
543
582
  }
544
583
 
545
584
  // Async support
585
+ // Async return type handlers
586
+
587
+ internal const val UNIFFI_RUST_FUTURE_POLL_READY = 0.toShort()
588
+ internal const val UNIFFI_RUST_FUTURE_POLL_MAYBE_READY = 1.toShort()
589
+
590
+ internal val uniffiContinuationHandleMap = UniFfiHandleMap<CancellableContinuation<Short>>()
591
+
592
+ // FFI type for Rust future continuations
593
+ internal object uniffiRustFutureContinuationCallback: UniFffiRustFutureContinuationCallbackType {
594
+ override fun callback(continuationHandle: USize, pollResult: Short) {
595
+ uniffiContinuationHandleMap.remove(continuationHandle)?.resume(pollResult)
596
+ }
597
+
598
+ internal fun register(lib: _UniFFILib) {
599
+ lib.ffi_pubkymobile_rust_future_continuation_callback_set(this)
600
+ }
601
+ }
602
+
603
+ internal suspend fun<T, F, E: Exception> uniffiRustCallAsync(
604
+ rustFuture: Pointer,
605
+ pollFunc: (Pointer, USize) -> Unit,
606
+ completeFunc: (Pointer, RustCallStatus) -> F,
607
+ freeFunc: (Pointer) -> Unit,
608
+ liftFunc: (F) -> T,
609
+ errorHandler: CallStatusErrorHandler<E>
610
+ ): T {
611
+ try {
612
+ do {
613
+ val pollResult = suspendCancellableCoroutine<Short> { continuation ->
614
+ pollFunc(
615
+ rustFuture,
616
+ uniffiContinuationHandleMap.insert(continuation)
617
+ )
618
+ }
619
+ } while (pollResult != UNIFFI_RUST_FUTURE_POLL_READY);
620
+
621
+ return liftFunc(
622
+ rustCallWithError(errorHandler, { status -> completeFunc(rustFuture, status) })
623
+ )
624
+ } finally {
625
+ freeFunc(rustFuture)
626
+ }
627
+ }
628
+
546
629
 
547
630
  // Public interface members begin here.
548
631
 
@@ -626,6 +709,10 @@ public object FfiConverterSequenceString: FfiConverterRustBuffer<List<String>> {
626
709
  }
627
710
  }
628
711
 
712
+
713
+
714
+
715
+
629
716
  fun `auth`(`url`: String, `secretKey`: String): List<String> {
630
717
  return FfiConverterSequenceString.lift(
631
718
  rustCall() { _status ->
@@ -634,6 +721,20 @@ fun `auth`(`url`: String, `secretKey`: String): List<String> {
634
721
  }
635
722
 
636
723
 
724
+ @Suppress("ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE")
725
+ suspend fun `get`(`url`: String) : List<String> {
726
+ return uniffiRustCallAsync(
727
+ _UniFFILib.INSTANCE.uniffi_pubkymobile_fn_func_get(FfiConverterString.lower(`url`),),
728
+ { future, continuation -> _UniFFILib.INSTANCE.ffi_pubkymobile_rust_future_poll_rust_buffer(future, continuation) },
729
+ { future, continuation -> _UniFFILib.INSTANCE.ffi_pubkymobile_rust_future_complete_rust_buffer(future, continuation) },
730
+ { future -> _UniFFILib.INSTANCE.ffi_pubkymobile_rust_future_free_rust_buffer(future) },
731
+ // lift function
732
+ { FfiConverterSequenceString.lift(it) },
733
+ // Error FFI converter
734
+ NullCallStatusErrorHandler,
735
+ )
736
+ }
737
+
637
738
  fun `parseAuthUrl`(`url`: String): List<String> {
638
739
  return FfiConverterSequenceString.lift(
639
740
  rustCall() { _status ->
@@ -650,6 +751,20 @@ fun `publish`(`recordName`: String, `recordContent`: String, `secretKey`: String
650
751
  }
651
752
 
652
753
 
754
+ @Suppress("ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE")
755
+ suspend fun `put`(`url`: String, `content`: String) : List<String> {
756
+ return uniffiRustCallAsync(
757
+ _UniFFILib.INSTANCE.uniffi_pubkymobile_fn_func_put(FfiConverterString.lower(`url`),FfiConverterString.lower(`content`),),
758
+ { future, continuation -> _UniFFILib.INSTANCE.ffi_pubkymobile_rust_future_poll_rust_buffer(future, continuation) },
759
+ { future, continuation -> _UniFFILib.INSTANCE.ffi_pubkymobile_rust_future_complete_rust_buffer(future, continuation) },
760
+ { future -> _UniFFILib.INSTANCE.ffi_pubkymobile_rust_future_free_rust_buffer(future) },
761
+ // lift function
762
+ { FfiConverterSequenceString.lift(it) },
763
+ // Error FFI converter
764
+ NullCallStatusErrorHandler,
765
+ )
766
+ }
767
+
653
768
  fun `resolve`(`publicKey`: String): List<String> {
654
769
  return FfiConverterSequenceString.lift(
655
770
  rustCall() { _status ->
@@ -658,3 +773,45 @@ fun `resolve`(`publicKey`: String): List<String> {
658
773
  }
659
774
 
660
775
 
776
+ @Suppress("ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE")
777
+ suspend fun `signIn`(`secretKey`: String) : List<String> {
778
+ return uniffiRustCallAsync(
779
+ _UniFFILib.INSTANCE.uniffi_pubkymobile_fn_func_sign_in(FfiConverterString.lower(`secretKey`),),
780
+ { future, continuation -> _UniFFILib.INSTANCE.ffi_pubkymobile_rust_future_poll_rust_buffer(future, continuation) },
781
+ { future, continuation -> _UniFFILib.INSTANCE.ffi_pubkymobile_rust_future_complete_rust_buffer(future, continuation) },
782
+ { future -> _UniFFILib.INSTANCE.ffi_pubkymobile_rust_future_free_rust_buffer(future) },
783
+ // lift function
784
+ { FfiConverterSequenceString.lift(it) },
785
+ // Error FFI converter
786
+ NullCallStatusErrorHandler,
787
+ )
788
+ }
789
+
790
+ @Suppress("ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE")
791
+ suspend fun `signOut`(`secretKey`: String) : List<String> {
792
+ return uniffiRustCallAsync(
793
+ _UniFFILib.INSTANCE.uniffi_pubkymobile_fn_func_sign_out(FfiConverterString.lower(`secretKey`),),
794
+ { future, continuation -> _UniFFILib.INSTANCE.ffi_pubkymobile_rust_future_poll_rust_buffer(future, continuation) },
795
+ { future, continuation -> _UniFFILib.INSTANCE.ffi_pubkymobile_rust_future_complete_rust_buffer(future, continuation) },
796
+ { future -> _UniFFILib.INSTANCE.ffi_pubkymobile_rust_future_free_rust_buffer(future) },
797
+ // lift function
798
+ { FfiConverterSequenceString.lift(it) },
799
+ // Error FFI converter
800
+ NullCallStatusErrorHandler,
801
+ )
802
+ }
803
+
804
+ @Suppress("ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE")
805
+ suspend fun `signUp`(`secretKey`: String, `homeserver`: String) : List<String> {
806
+ return uniffiRustCallAsync(
807
+ _UniFFILib.INSTANCE.uniffi_pubkymobile_fn_func_sign_up(FfiConverterString.lower(`secretKey`),FfiConverterString.lower(`homeserver`),),
808
+ { future, continuation -> _UniFFILib.INSTANCE.ffi_pubkymobile_rust_future_poll_rust_buffer(future, continuation) },
809
+ { future, continuation -> _UniFFILib.INSTANCE.ffi_pubkymobile_rust_future_complete_rust_buffer(future, continuation) },
810
+ { future -> _UniFFILib.INSTANCE.ffi_pubkymobile_rust_future_free_rust_buffer(future) },
811
+ // lift function
812
+ { FfiConverterSequenceString.lift(it) },
813
+ // Error FFI converter
814
+ NullCallStatusErrorHandler,
815
+ )
816
+ }
817
+
@@ -10,7 +10,7 @@
10
10
  <key>HeadersPath</key>
11
11
  <string>Headers</string>
12
12
  <key>LibraryIdentifier</key>
13
- <string>ios-arm64-simulator</string>
13
+ <string>ios-arm64</string>
14
14
  <key>LibraryPath</key>
15
15
  <string>libpubkymobile.a</string>
16
16
  <key>SupportedArchitectures</key>
@@ -19,8 +19,6 @@
19
19
  </array>
20
20
  <key>SupportedPlatform</key>
21
21
  <string>ios</string>
22
- <key>SupportedPlatformVariant</key>
23
- <string>simulator</string>
24
22
  </dict>
25
23
  <dict>
26
24
  <key>BinaryPath</key>
@@ -28,7 +26,7 @@
28
26
  <key>HeadersPath</key>
29
27
  <string>Headers</string>
30
28
  <key>LibraryIdentifier</key>
31
- <string>ios-arm64</string>
29
+ <string>ios-arm64-simulator</string>
32
30
  <key>LibraryPath</key>
33
31
  <string>libpubkymobile.a</string>
34
32
  <key>SupportedArchitectures</key>
@@ -37,6 +35,8 @@
37
35
  </array>
38
36
  <key>SupportedPlatform</key>
39
37
  <string>ios</string>
38
+ <key>SupportedPlatformVariant</key>
39
+ <string>simulator</string>
40
40
  </dict>
41
41
  </array>
42
42
  <key>CFBundlePackageType</key>
@@ -65,12 +65,22 @@ typedef void (*UniFfiRustFutureContinuation)(void * _Nonnull, int8_t);
65
65
  // Scaffolding functions
66
66
  RustBuffer uniffi_pubkymobile_fn_func_auth(RustBuffer url, RustBuffer secret_key, RustCallStatus *_Nonnull out_status
67
67
  );
68
+ void* _Nonnull uniffi_pubkymobile_fn_func_get(RustBuffer url
69
+ );
68
70
  RustBuffer uniffi_pubkymobile_fn_func_parse_auth_url(RustBuffer url, RustCallStatus *_Nonnull out_status
69
71
  );
70
72
  RustBuffer uniffi_pubkymobile_fn_func_publish(RustBuffer record_name, RustBuffer record_content, RustBuffer secret_key, RustCallStatus *_Nonnull out_status
71
73
  );
74
+ void* _Nonnull uniffi_pubkymobile_fn_func_put(RustBuffer url, RustBuffer content
75
+ );
72
76
  RustBuffer uniffi_pubkymobile_fn_func_resolve(RustBuffer public_key, RustCallStatus *_Nonnull out_status
73
77
  );
78
+ void* _Nonnull uniffi_pubkymobile_fn_func_sign_in(RustBuffer secret_key
79
+ );
80
+ void* _Nonnull uniffi_pubkymobile_fn_func_sign_out(RustBuffer secret_key
81
+ );
82
+ void* _Nonnull uniffi_pubkymobile_fn_func_sign_up(RustBuffer secret_key, RustBuffer homeserver
83
+ );
74
84
  RustBuffer ffi_pubkymobile_rustbuffer_alloc(int32_t size, RustCallStatus *_Nonnull out_status
75
85
  );
76
86
  RustBuffer ffi_pubkymobile_rustbuffer_from_bytes(ForeignBytes bytes, RustCallStatus *_Nonnull out_status
@@ -187,15 +197,30 @@ void ffi_pubkymobile_rust_future_complete_void(void* _Nonnull handle, RustCallSt
187
197
  );
188
198
  uint16_t uniffi_pubkymobile_checksum_func_auth(void
189
199
 
200
+ );
201
+ uint16_t uniffi_pubkymobile_checksum_func_get(void
202
+
190
203
  );
191
204
  uint16_t uniffi_pubkymobile_checksum_func_parse_auth_url(void
192
205
 
193
206
  );
194
207
  uint16_t uniffi_pubkymobile_checksum_func_publish(void
195
208
 
209
+ );
210
+ uint16_t uniffi_pubkymobile_checksum_func_put(void
211
+
196
212
  );
197
213
  uint16_t uniffi_pubkymobile_checksum_func_resolve(void
198
214
 
215
+ );
216
+ uint16_t uniffi_pubkymobile_checksum_func_sign_in(void
217
+
218
+ );
219
+ uint16_t uniffi_pubkymobile_checksum_func_sign_out(void
220
+
221
+ );
222
+ uint16_t uniffi_pubkymobile_checksum_func_sign_up(void
223
+
199
224
  );
200
225
  uint32_t ffi_pubkymobile_uniffi_contract_version(void
201
226
 
@@ -65,12 +65,22 @@ typedef void (*UniFfiRustFutureContinuation)(void * _Nonnull, int8_t);
65
65
  // Scaffolding functions
66
66
  RustBuffer uniffi_pubkymobile_fn_func_auth(RustBuffer url, RustBuffer secret_key, RustCallStatus *_Nonnull out_status
67
67
  );
68
+ void* _Nonnull uniffi_pubkymobile_fn_func_get(RustBuffer url
69
+ );
68
70
  RustBuffer uniffi_pubkymobile_fn_func_parse_auth_url(RustBuffer url, RustCallStatus *_Nonnull out_status
69
71
  );
70
72
  RustBuffer uniffi_pubkymobile_fn_func_publish(RustBuffer record_name, RustBuffer record_content, RustBuffer secret_key, RustCallStatus *_Nonnull out_status
71
73
  );
74
+ void* _Nonnull uniffi_pubkymobile_fn_func_put(RustBuffer url, RustBuffer content
75
+ );
72
76
  RustBuffer uniffi_pubkymobile_fn_func_resolve(RustBuffer public_key, RustCallStatus *_Nonnull out_status
73
77
  );
78
+ void* _Nonnull uniffi_pubkymobile_fn_func_sign_in(RustBuffer secret_key
79
+ );
80
+ void* _Nonnull uniffi_pubkymobile_fn_func_sign_out(RustBuffer secret_key
81
+ );
82
+ void* _Nonnull uniffi_pubkymobile_fn_func_sign_up(RustBuffer secret_key, RustBuffer homeserver
83
+ );
74
84
  RustBuffer ffi_pubkymobile_rustbuffer_alloc(int32_t size, RustCallStatus *_Nonnull out_status
75
85
  );
76
86
  RustBuffer ffi_pubkymobile_rustbuffer_from_bytes(ForeignBytes bytes, RustCallStatus *_Nonnull out_status
@@ -187,15 +197,30 @@ void ffi_pubkymobile_rust_future_complete_void(void* _Nonnull handle, RustCallSt
187
197
  );
188
198
  uint16_t uniffi_pubkymobile_checksum_func_auth(void
189
199
 
200
+ );
201
+ uint16_t uniffi_pubkymobile_checksum_func_get(void
202
+
190
203
  );
191
204
  uint16_t uniffi_pubkymobile_checksum_func_parse_auth_url(void
192
205
 
193
206
  );
194
207
  uint16_t uniffi_pubkymobile_checksum_func_publish(void
195
208
 
209
+ );
210
+ uint16_t uniffi_pubkymobile_checksum_func_put(void
211
+
196
212
  );
197
213
  uint16_t uniffi_pubkymobile_checksum_func_resolve(void
198
214
 
215
+ );
216
+ uint16_t uniffi_pubkymobile_checksum_func_sign_in(void
217
+
218
+ );
219
+ uint16_t uniffi_pubkymobile_checksum_func_sign_out(void
220
+
221
+ );
222
+ uint16_t uniffi_pubkymobile_checksum_func_sign_up(void
223
+
199
224
  );
200
225
  uint32_t ffi_pubkymobile_uniffi_contract_version(void
201
226
 
package/ios/Pubky.mm CHANGED
@@ -21,6 +21,28 @@ RCT_EXTERN_METHOD(resolve:(NSString *)publicKey
21
21
  withResolver:(RCTPromiseResolveBlock)resolve
22
22
  withRejecter:(RCTPromiseRejectBlock)reject)
23
23
 
24
+ RCT_EXTERN_METHOD(signUp:(NSString *)secretKey
25
+ homeserver:(NSString *)homeserver
26
+ withResolver:(RCTPromiseResolveBlock)resolve
27
+ withRejecter:(RCTPromiseRejectBlock)reject)
28
+
29
+ RCT_EXTERN_METHOD(signIn:(NSString *)secretKey
30
+ withResolver:(RCTPromiseResolveBlock)resolve
31
+ withRejecter:(RCTPromiseRejectBlock)reject)
32
+
33
+ RCT_EXTERN_METHOD(signOut:(NSString *)secretKey
34
+ withResolver:(RCTPromiseResolveBlock)resolve
35
+ withRejecter:(RCTPromiseRejectBlock)reject)
36
+
37
+ RCT_EXTERN_METHOD(put:(NSString *)url
38
+ content:(NSString *)content
39
+ withResolver:(RCTPromiseResolveBlock)resolve
40
+ withRejecter:(RCTPromiseRejectBlock)reject)
41
+
42
+ RCT_EXTERN_METHOD(get:(NSString *)url
43
+ withResolver:(RCTPromiseResolveBlock)resolve
44
+ withRejecter:(RCTPromiseRejectBlock)reject)
45
+
24
46
  + (BOOL)requiresMainQueueSetup
25
47
  {
26
48
  return NO;
package/ios/Pubky.swift CHANGED
@@ -49,4 +49,64 @@ class Pubky: NSObject {
49
49
  }
50
50
  }
51
51
  }
52
+
53
+ @objc(signUp:homeserver:withResolver:withRejecter:)
54
+ func signUp(_ secretKey: String, homeserver: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
55
+ Task {
56
+ do {
57
+ let result = try await react_native_pubky.signUp(secretKey: secretKey, homeserver: homeserver)
58
+ resolve(result)
59
+ } catch {
60
+ reject("signUp Error", "Failed to sign up", error)
61
+ }
62
+ }
63
+ }
64
+
65
+ @objc(signIn:withResolver:withRejecter:)
66
+ func signIn(_ secretKey: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
67
+ Task {
68
+ do {
69
+ let result = try await react_native_pubky.signIn(secretKey: secretKey)
70
+ resolve(result)
71
+ } catch {
72
+ reject("signIn Error", "Failed to sign in", error)
73
+ }
74
+ }
75
+ }
76
+
77
+ @objc(signOut:withResolver:withRejecter:)
78
+ func signOut(_ secretKey: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
79
+ Task {
80
+ do {
81
+ let result = try await react_native_pubky.signOut(secretKey: secretKey)
82
+ resolve(result)
83
+ } catch {
84
+ reject("signOut Error", "Failed to sign out", error)
85
+ }
86
+ }
87
+ }
88
+
89
+ @objc(put:content:withResolver:withRejecter:)
90
+ func put(_ url: String, content: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
91
+ Task {
92
+ do {
93
+ let result = try await react_native_pubky.put(url: url, content: content)
94
+ resolve(result)
95
+ } catch {
96
+ reject("put Error", "Failed to put", error)
97
+ }
98
+ }
99
+ }
100
+
101
+ @objc(get:withResolver:withRejecter:)
102
+ func get(_ url: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
103
+ Task {
104
+ do {
105
+ let result = try await react_native_pubky.get(url: url)
106
+ resolve(result)
107
+ } catch {
108
+ reject("get Error", "Failed to get", error)
109
+ }
110
+ }
111
+ }
52
112
  }
@@ -356,6 +356,68 @@ fileprivate struct FfiConverterSequenceString: FfiConverterRustBuffer {
356
356
  return seq
357
357
  }
358
358
  }
359
+ private let UNIFFI_RUST_FUTURE_POLL_READY: Int8 = 0
360
+ private let UNIFFI_RUST_FUTURE_POLL_MAYBE_READY: Int8 = 1
361
+
362
+ fileprivate func uniffiRustCallAsync<F, T>(
363
+ rustFutureFunc: () -> UnsafeMutableRawPointer,
364
+ pollFunc: (UnsafeMutableRawPointer, UnsafeMutableRawPointer) -> (),
365
+ completeFunc: (UnsafeMutableRawPointer, UnsafeMutablePointer<RustCallStatus>) -> F,
366
+ freeFunc: (UnsafeMutableRawPointer) -> (),
367
+ liftFunc: (F) throws -> T,
368
+ errorHandler: ((RustBuffer) throws -> Error)?
369
+ ) async throws -> T {
370
+ // Make sure to call uniffiEnsureInitialized() since future creation doesn't have a
371
+ // RustCallStatus param, so doesn't use makeRustCall()
372
+ uniffiEnsureInitialized()
373
+ let rustFuture = rustFutureFunc()
374
+ defer {
375
+ freeFunc(rustFuture)
376
+ }
377
+ var pollResult: Int8;
378
+ repeat {
379
+ pollResult = await withUnsafeContinuation {
380
+ pollFunc(rustFuture, ContinuationHolder($0).toOpaque())
381
+ }
382
+ } while pollResult != UNIFFI_RUST_FUTURE_POLL_READY
383
+
384
+ return try liftFunc(makeRustCall(
385
+ { completeFunc(rustFuture, $0) },
386
+ errorHandler: errorHandler
387
+ ))
388
+ }
389
+
390
+ // Callback handlers for an async calls. These are invoked by Rust when the future is ready. They
391
+ // lift the return value or error and resume the suspended function.
392
+ fileprivate func uniffiFutureContinuationCallback(ptr: UnsafeMutableRawPointer, pollResult: Int8) {
393
+ ContinuationHolder.fromOpaque(ptr).resume(pollResult)
394
+ }
395
+
396
+ // Wraps UnsafeContinuation in a class so that we can use reference counting when passing it across
397
+ // the FFI
398
+ fileprivate class ContinuationHolder {
399
+ let continuation: UnsafeContinuation<Int8, Never>
400
+
401
+ init(_ continuation: UnsafeContinuation<Int8, Never>) {
402
+ self.continuation = continuation
403
+ }
404
+
405
+ func resume(_ pollResult: Int8) {
406
+ self.continuation.resume(returning: pollResult)
407
+ }
408
+
409
+ func toOpaque() -> UnsafeMutableRawPointer {
410
+ return Unmanaged<ContinuationHolder>.passRetained(self).toOpaque()
411
+ }
412
+
413
+ static func fromOpaque(_ ptr: UnsafeRawPointer) -> ContinuationHolder {
414
+ return Unmanaged<ContinuationHolder>.fromOpaque(ptr).takeRetainedValue()
415
+ }
416
+ }
417
+
418
+ fileprivate func uniffiInitContinuationCallback() {
419
+ ffi_pubkymobile_rust_future_continuation_callback_set(uniffiFutureContinuationCallback)
420
+ }
359
421
 
360
422
  public func auth(url: String, secretKey: String) -> [String] {
361
423
  return try! FfiConverterSequenceString.lift(
@@ -367,6 +429,24 @@ public func auth(url: String, secretKey: String) -> [String] {
367
429
  )
368
430
  }
369
431
 
432
+ public func get(url: String) async -> [String] {
433
+ return try! await uniffiRustCallAsync(
434
+ rustFutureFunc: {
435
+ uniffi_pubkymobile_fn_func_get(
436
+ FfiConverterString.lower(url)
437
+ )
438
+ },
439
+ pollFunc: ffi_pubkymobile_rust_future_poll_rust_buffer,
440
+ completeFunc: ffi_pubkymobile_rust_future_complete_rust_buffer,
441
+ freeFunc: ffi_pubkymobile_rust_future_free_rust_buffer,
442
+ liftFunc: FfiConverterSequenceString.lift,
443
+ errorHandler: nil
444
+
445
+ )
446
+ }
447
+
448
+
449
+
370
450
  public func parseAuthUrl(url: String) -> [String] {
371
451
  return try! FfiConverterSequenceString.lift(
372
452
  try! rustCall() {
@@ -387,6 +467,25 @@ public func publish(recordName: String, recordContent: String, secretKey: String
387
467
  )
388
468
  }
389
469
 
470
+ public func put(url: String, content: String) async -> [String] {
471
+ return try! await uniffiRustCallAsync(
472
+ rustFutureFunc: {
473
+ uniffi_pubkymobile_fn_func_put(
474
+ FfiConverterString.lower(url),
475
+ FfiConverterString.lower(content)
476
+ )
477
+ },
478
+ pollFunc: ffi_pubkymobile_rust_future_poll_rust_buffer,
479
+ completeFunc: ffi_pubkymobile_rust_future_complete_rust_buffer,
480
+ freeFunc: ffi_pubkymobile_rust_future_free_rust_buffer,
481
+ liftFunc: FfiConverterSequenceString.lift,
482
+ errorHandler: nil
483
+
484
+ )
485
+ }
486
+
487
+
488
+
390
489
  public func resolve(publicKey: String) -> [String] {
391
490
  return try! FfiConverterSequenceString.lift(
392
491
  try! rustCall() {
@@ -396,6 +495,61 @@ public func resolve(publicKey: String) -> [String] {
396
495
  )
397
496
  }
398
497
 
498
+ public func signIn(secretKey: String) async -> [String] {
499
+ return try! await uniffiRustCallAsync(
500
+ rustFutureFunc: {
501
+ uniffi_pubkymobile_fn_func_sign_in(
502
+ FfiConverterString.lower(secretKey)
503
+ )
504
+ },
505
+ pollFunc: ffi_pubkymobile_rust_future_poll_rust_buffer,
506
+ completeFunc: ffi_pubkymobile_rust_future_complete_rust_buffer,
507
+ freeFunc: ffi_pubkymobile_rust_future_free_rust_buffer,
508
+ liftFunc: FfiConverterSequenceString.lift,
509
+ errorHandler: nil
510
+
511
+ )
512
+ }
513
+
514
+
515
+
516
+ public func signOut(secretKey: String) async -> [String] {
517
+ return try! await uniffiRustCallAsync(
518
+ rustFutureFunc: {
519
+ uniffi_pubkymobile_fn_func_sign_out(
520
+ FfiConverterString.lower(secretKey)
521
+ )
522
+ },
523
+ pollFunc: ffi_pubkymobile_rust_future_poll_rust_buffer,
524
+ completeFunc: ffi_pubkymobile_rust_future_complete_rust_buffer,
525
+ freeFunc: ffi_pubkymobile_rust_future_free_rust_buffer,
526
+ liftFunc: FfiConverterSequenceString.lift,
527
+ errorHandler: nil
528
+
529
+ )
530
+ }
531
+
532
+
533
+
534
+ public func signUp(secretKey: String, homeserver: String) async -> [String] {
535
+ return try! await uniffiRustCallAsync(
536
+ rustFutureFunc: {
537
+ uniffi_pubkymobile_fn_func_sign_up(
538
+ FfiConverterString.lower(secretKey),
539
+ FfiConverterString.lower(homeserver)
540
+ )
541
+ },
542
+ pollFunc: ffi_pubkymobile_rust_future_poll_rust_buffer,
543
+ completeFunc: ffi_pubkymobile_rust_future_complete_rust_buffer,
544
+ freeFunc: ffi_pubkymobile_rust_future_free_rust_buffer,
545
+ liftFunc: FfiConverterSequenceString.lift,
546
+ errorHandler: nil
547
+
548
+ )
549
+ }
550
+
551
+
552
+
399
553
  private enum InitializationResult {
400
554
  case ok
401
555
  case contractVersionMismatch
@@ -414,16 +568,32 @@ private var initializationResult: InitializationResult {
414
568
  if (uniffi_pubkymobile_checksum_func_auth() != 61378) {
415
569
  return InitializationResult.apiChecksumMismatch
416
570
  }
571
+ if (uniffi_pubkymobile_checksum_func_get() != 5395) {
572
+ return InitializationResult.apiChecksumMismatch
573
+ }
417
574
  if (uniffi_pubkymobile_checksum_func_parse_auth_url() != 29088) {
418
575
  return InitializationResult.apiChecksumMismatch
419
576
  }
420
577
  if (uniffi_pubkymobile_checksum_func_publish() != 20156) {
421
578
  return InitializationResult.apiChecksumMismatch
422
579
  }
580
+ if (uniffi_pubkymobile_checksum_func_put() != 47594) {
581
+ return InitializationResult.apiChecksumMismatch
582
+ }
423
583
  if (uniffi_pubkymobile_checksum_func_resolve() != 18303) {
424
584
  return InitializationResult.apiChecksumMismatch
425
585
  }
586
+ if (uniffi_pubkymobile_checksum_func_sign_in() != 53969) {
587
+ return InitializationResult.apiChecksumMismatch
588
+ }
589
+ if (uniffi_pubkymobile_checksum_func_sign_out() != 32961) {
590
+ return InitializationResult.apiChecksumMismatch
591
+ }
592
+ if (uniffi_pubkymobile_checksum_func_sign_up() != 28083) {
593
+ return InitializationResult.apiChecksumMismatch
594
+ }
426
595
 
596
+ uniffiInitContinuationCallback()
427
597
  return InitializationResult.ok
428
598
  }
429
599
 
@@ -4,9 +4,14 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.auth = auth;
7
+ exports.get = get;
7
8
  exports.parseAuthUrl = parseAuthUrl;
8
9
  exports.publish = publish;
10
+ exports.put = put;
9
11
  exports.resolve = resolve;
12
+ exports.signIn = signIn;
13
+ exports.signOut = signOut;
14
+ exports.signUp = signUp;
10
15
  var _reactNative = require("react-native");
11
16
  var _result = require("@synonymdev/result");
12
17
  const LINKING_ERROR = `The package 'react-native-pubky' doesn't seem to be linked. Make sure: \n\n` + _reactNative.Platform.select({
@@ -59,4 +64,59 @@ async function resolve(publicKey) {
59
64
  return (0, _result.err)(JSON.stringify(e));
60
65
  }
61
66
  }
67
+ async function signUp(secretKey, homeserver) {
68
+ try {
69
+ const res = await Pubky.signUp(secretKey, homeserver);
70
+ if (res[0] === 'error') {
71
+ return (0, _result.err)(res[1]);
72
+ }
73
+ return (0, _result.ok)(res[1]);
74
+ } catch (e) {
75
+ return (0, _result.err)(JSON.stringify(e));
76
+ }
77
+ }
78
+ async function signIn(secretKey) {
79
+ try {
80
+ const res = await Pubky.signIn(secretKey);
81
+ if (res[0] === 'error') {
82
+ return (0, _result.err)(res[1]);
83
+ }
84
+ return (0, _result.ok)(res[1]);
85
+ } catch (e) {
86
+ return (0, _result.err)(JSON.stringify(e));
87
+ }
88
+ }
89
+ async function signOut(secretKey) {
90
+ try {
91
+ const res = await Pubky.signOut(secretKey);
92
+ if (res[0] === 'error') {
93
+ return (0, _result.err)(res[1]);
94
+ }
95
+ return (0, _result.ok)(res[1]);
96
+ } catch (e) {
97
+ return (0, _result.err)(JSON.stringify(e));
98
+ }
99
+ }
100
+ async function get(url) {
101
+ try {
102
+ const res = await Pubky.get(url);
103
+ if (res[0] === 'error') {
104
+ return (0, _result.err)(res[1]);
105
+ }
106
+ return (0, _result.ok)(JSON.parse(res[1]));
107
+ } catch (e) {
108
+ return (0, _result.err)(JSON.stringify(e));
109
+ }
110
+ }
111
+ async function put(url, content) {
112
+ try {
113
+ const res = await Pubky.put(url, JSON.stringify(content));
114
+ if (res[0] === 'error') {
115
+ return (0, _result.err)(res[1]);
116
+ }
117
+ return (0, _result.ok)(res[1]);
118
+ } catch (e) {
119
+ return (0, _result.err)(JSON.stringify(e));
120
+ }
121
+ }
62
122
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_result","LINKING_ERROR","Platform","select","ios","default","Pubky","NativeModules","Proxy","get","Error","auth","url","secretKey","res","err","ok","parseAuthUrl","parsed","JSON","parse","e","stringify","publish","recordName","recordContent","resolve","publicKey"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAEA,MAAME,aAAa,GACjB,6EAA6E,GAC7EC,qBAAQ,CAACC,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B;AAEjC,MAAMC,KAAK,GAAGC,0BAAa,CAACD,KAAK,GAC7BC,0BAAa,CAACD,KAAK,GACnB,IAAIE,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACT,aAAa,CAAC;EAChC;AACF,CACF,CAAC;AAEE,eAAeU,IAAIA,CACxBC,GAAW,EACXC,SAAiB,EACU;EAC3B,MAAMC,GAAG,GAAG,MAAMR,KAAK,CAACK,IAAI,CAACC,GAAG,EAAEC,SAAS,CAAC;EAC5C,IAAIC,GAAG,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE;IACtB,OAAO,IAAAC,WAAG,EAACD,GAAG,CAAC,CAAC,CAAC,CAAC;EACpB;EACA,OAAO,IAAAE,UAAE,EAACF,GAAG,CAAC,CAAC,CAAC,CAAC;AACnB;AAaO,eAAeG,YAAYA,CAChCL,GAAW,EACwB;EACnC,IAAI;IACF,MAAME,GAAG,GAAG,MAAMR,KAAK,CAACW,YAAY,CAACL,GAAG,CAAC;IACzC,IAAIE,GAAG,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE;MACtB,OAAO,IAAAC,WAAG,EAACD,GAAG,CAAC,CAAC,CAAC,CAAC;IACpB;IACA,MAAMI,MAAM,GAAGC,IAAI,CAACC,KAAK,CAACN,GAAG,CAAC,CAAC,CAAC,CAAC;IACjC,OAAO,IAAAE,UAAE,EAACE,MAAM,CAAC;EACnB,CAAC,CAAC,OAAOG,CAAC,EAAE;IACV,OAAO,IAAAN,WAAG,EAACI,IAAI,CAACG,SAAS,CAACD,CAAC,CAAC,CAAC;EAC/B;AACF;AAEO,eAAeE,OAAOA,CAC3BC,UAAkB,EAClBC,aAAqB,EACrBZ,SAAiB,EACU;EAC3B,IAAI;IACF,MAAMC,GAAG,GAAG,MAAMR,KAAK,CAACiB,OAAO,CAACC,UAAU,EAAEC,aAAa,EAAEZ,SAAS,CAAC;IACrE,IAAIC,GAAG,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE;MACtB,OAAO,IAAAC,WAAG,EAACD,GAAG,CAAC,CAAC,CAAC,CAAC;IACpB;IACA,OAAO,IAAAE,UAAE,EAACF,GAAG,CAAC,CAAC,CAAC,CAAC;EACnB,CAAC,CAAC,OAAOO,CAAC,EAAE;IACV,OAAO,IAAAN,WAAG,EAACI,IAAI,CAACG,SAAS,CAACD,CAAC,CAAC,CAAC;EAC/B;AACF;AAmBO,eAAeK,OAAOA,CAACC,SAAiB,EAA+B;EAC5E,IAAI;IACF,MAAMb,GAAG,GAAG,MAAMR,KAAK,CAACoB,OAAO,CAACC,SAAS,CAAC;IAC1C,IAAIb,GAAG,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE;MACtB,OAAO,IAAAC,WAAG,EAACD,GAAG,CAAC,CAAC,CAAC,CAAC;IACpB;IACA,OAAO,IAAAE,UAAE,EAACG,IAAI,CAACC,KAAK,CAACN,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;EAC/B,CAAC,CAAC,OAAOO,CAAC,EAAE;IACV,OAAO,IAAAN,WAAG,EAACI,IAAI,CAACG,SAAS,CAACD,CAAC,CAAC,CAAC;EAC/B;AACF","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_result","LINKING_ERROR","Platform","select","ios","default","Pubky","NativeModules","Proxy","get","Error","auth","url","secretKey","res","err","ok","parseAuthUrl","parsed","JSON","parse","e","stringify","publish","recordName","recordContent","resolve","publicKey","signUp","homeserver","signIn","signOut","put","content"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
@@ -52,4 +52,59 @@ export async function resolve(publicKey) {
52
52
  return err(JSON.stringify(e));
53
53
  }
54
54
  }
55
+ export async function signUp(secretKey, homeserver) {
56
+ try {
57
+ const res = await Pubky.signUp(secretKey, homeserver);
58
+ if (res[0] === 'error') {
59
+ return err(res[1]);
60
+ }
61
+ return ok(res[1]);
62
+ } catch (e) {
63
+ return err(JSON.stringify(e));
64
+ }
65
+ }
66
+ export async function signIn(secretKey) {
67
+ try {
68
+ const res = await Pubky.signIn(secretKey);
69
+ if (res[0] === 'error') {
70
+ return err(res[1]);
71
+ }
72
+ return ok(res[1]);
73
+ } catch (e) {
74
+ return err(JSON.stringify(e));
75
+ }
76
+ }
77
+ export async function signOut(secretKey) {
78
+ try {
79
+ const res = await Pubky.signOut(secretKey);
80
+ if (res[0] === 'error') {
81
+ return err(res[1]);
82
+ }
83
+ return ok(res[1]);
84
+ } catch (e) {
85
+ return err(JSON.stringify(e));
86
+ }
87
+ }
88
+ export async function get(url) {
89
+ try {
90
+ const res = await Pubky.get(url);
91
+ if (res[0] === 'error') {
92
+ return err(res[1]);
93
+ }
94
+ return ok(JSON.parse(res[1]));
95
+ } catch (e) {
96
+ return err(JSON.stringify(e));
97
+ }
98
+ }
99
+ export async function put(url, content) {
100
+ try {
101
+ const res = await Pubky.put(url, JSON.stringify(content));
102
+ if (res[0] === 'error') {
103
+ return err(res[1]);
104
+ }
105
+ return ok(res[1]);
106
+ } catch (e) {
107
+ return err(JSON.stringify(e));
108
+ }
109
+ }
55
110
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["NativeModules","Platform","ok","err","LINKING_ERROR","select","ios","default","Pubky","Proxy","get","Error","auth","url","secretKey","res","parseAuthUrl","parsed","JSON","parse","e","stringify","publish","recordName","recordContent","resolve","publicKey"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,QAAQ,QAAQ,cAAc;AACtD,SAASC,EAAE,EAAEC,GAAG,QAAqB,oBAAoB;AAEzD,MAAMC,aAAa,GACjB,6EAA6E,GAC7EH,QAAQ,CAACI,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B;AAEjC,MAAMC,KAAK,GAAGR,aAAa,CAACQ,KAAK,GAC7BR,aAAa,CAACQ,KAAK,GACnB,IAAIC,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACP,aAAa,CAAC;EAChC;AACF,CACF,CAAC;AAEL,OAAO,eAAeQ,IAAIA,CACxBC,GAAW,EACXC,SAAiB,EACU;EAC3B,MAAMC,GAAG,GAAG,MAAMP,KAAK,CAACI,IAAI,CAACC,GAAG,EAAEC,SAAS,CAAC;EAC5C,IAAIC,GAAG,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE;IACtB,OAAOZ,GAAG,CAACY,GAAG,CAAC,CAAC,CAAC,CAAC;EACpB;EACA,OAAOb,EAAE,CAACa,GAAG,CAAC,CAAC,CAAC,CAAC;AACnB;AAaA,OAAO,eAAeC,YAAYA,CAChCH,GAAW,EACwB;EACnC,IAAI;IACF,MAAME,GAAG,GAAG,MAAMP,KAAK,CAACQ,YAAY,CAACH,GAAG,CAAC;IACzC,IAAIE,GAAG,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE;MACtB,OAAOZ,GAAG,CAACY,GAAG,CAAC,CAAC,CAAC,CAAC;IACpB;IACA,MAAME,MAAM,GAAGC,IAAI,CAACC,KAAK,CAACJ,GAAG,CAAC,CAAC,CAAC,CAAC;IACjC,OAAOb,EAAE,CAACe,MAAM,CAAC;EACnB,CAAC,CAAC,OAAOG,CAAC,EAAE;IACV,OAAOjB,GAAG,CAACe,IAAI,CAACG,SAAS,CAACD,CAAC,CAAC,CAAC;EAC/B;AACF;AAEA,OAAO,eAAeE,OAAOA,CAC3BC,UAAkB,EAClBC,aAAqB,EACrBV,SAAiB,EACU;EAC3B,IAAI;IACF,MAAMC,GAAG,GAAG,MAAMP,KAAK,CAACc,OAAO,CAACC,UAAU,EAAEC,aAAa,EAAEV,SAAS,CAAC;IACrE,IAAIC,GAAG,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE;MACtB,OAAOZ,GAAG,CAACY,GAAG,CAAC,CAAC,CAAC,CAAC;IACpB;IACA,OAAOb,EAAE,CAACa,GAAG,CAAC,CAAC,CAAC,CAAC;EACnB,CAAC,CAAC,OAAOK,CAAC,EAAE;IACV,OAAOjB,GAAG,CAACe,IAAI,CAACG,SAAS,CAACD,CAAC,CAAC,CAAC;EAC/B;AACF;AAmBA,OAAO,eAAeK,OAAOA,CAACC,SAAiB,EAA+B;EAC5E,IAAI;IACF,MAAMX,GAAG,GAAG,MAAMP,KAAK,CAACiB,OAAO,CAACC,SAAS,CAAC;IAC1C,IAAIX,GAAG,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE;MACtB,OAAOZ,GAAG,CAACY,GAAG,CAAC,CAAC,CAAC,CAAC;IACpB;IACA,OAAOb,EAAE,CAACgB,IAAI,CAACC,KAAK,CAACJ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;EAC/B,CAAC,CAAC,OAAOK,CAAC,EAAE;IACV,OAAOjB,GAAG,CAACe,IAAI,CAACG,SAAS,CAACD,CAAC,CAAC,CAAC;EAC/B;AACF","ignoreList":[]}
1
+ {"version":3,"names":["NativeModules","Platform","ok","err","LINKING_ERROR","select","ios","default","Pubky","Proxy","get","Error","auth","url","secretKey","res","parseAuthUrl","parsed","JSON","parse","e","stringify","publish","recordName","recordContent","resolve","publicKey","signUp","homeserver","signIn","signOut","put","content"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
@@ -29,5 +29,10 @@ interface IDNSPacket {
29
29
  timestamp: number;
30
30
  }
31
31
  export declare function resolve(publicKey: string): Promise<Result<IDNSPacket>>;
32
+ export declare function signUp(secretKey: string, homeserver: string): Promise<Result<string[]>>;
33
+ export declare function signIn(secretKey: string): Promise<Result<string[]>>;
34
+ export declare function signOut(secretKey: string): Promise<Result<string[]>>;
35
+ export declare function get(url: string): Promise<Result<string[]>>;
36
+ export declare function put(url: string, content: Object): Promise<Result<string[]>>;
32
37
  export {};
33
38
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAmB1D,wBAAsB,IAAI,CACxB,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAM3B;AAED,KAAK,UAAU,GAAG;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,UAAU,EAAE,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,wBAAsB,YAAY,CAChC,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAWnC;AAED,wBAAsB,OAAO,CAC3B,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAU3B;AAED,UAAU,IAAI;IACZ,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE;QACL,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,GAAG,EAAE,MAAM,CAAC;CACb;AACD,UAAU,UAAU;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,IAAI,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AACD,wBAAsB,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAU5E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAmB1D,wBAAsB,IAAI,CACxB,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAM3B;AAED,KAAK,UAAU,GAAG;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,UAAU,EAAE,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,wBAAsB,YAAY,CAChC,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAWnC;AAED,wBAAsB,OAAO,CAC3B,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAU3B;AAED,UAAU,IAAI;IACZ,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE;QACL,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,GAAG,EAAE,MAAM,CAAC;CACb;AACD,UAAU,UAAU;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,IAAI,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AACD,wBAAsB,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAU5E;AAED,wBAAsB,MAAM,CAC1B,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAU3B;AAED,wBAAsB,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAUzE;AAED,wBAAsB,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAU1E;AAED,wBAAsB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAUhE;AAED,wBAAsB,GAAG,CACvB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAU3B"}
@@ -29,5 +29,10 @@ interface IDNSPacket {
29
29
  timestamp: number;
30
30
  }
31
31
  export declare function resolve(publicKey: string): Promise<Result<IDNSPacket>>;
32
+ export declare function signUp(secretKey: string, homeserver: string): Promise<Result<string[]>>;
33
+ export declare function signIn(secretKey: string): Promise<Result<string[]>>;
34
+ export declare function signOut(secretKey: string): Promise<Result<string[]>>;
35
+ export declare function get(url: string): Promise<Result<string[]>>;
36
+ export declare function put(url: string, content: Object): Promise<Result<string[]>>;
32
37
  export {};
33
38
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAmB1D,wBAAsB,IAAI,CACxB,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAM3B;AAED,KAAK,UAAU,GAAG;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,UAAU,EAAE,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,wBAAsB,YAAY,CAChC,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAWnC;AAED,wBAAsB,OAAO,CAC3B,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAU3B;AAED,UAAU,IAAI;IACZ,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE;QACL,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,GAAG,EAAE,MAAM,CAAC;CACb;AACD,UAAU,UAAU;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,IAAI,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AACD,wBAAsB,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAU5E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAmB1D,wBAAsB,IAAI,CACxB,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAM3B;AAED,KAAK,UAAU,GAAG;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,UAAU,EAAE,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,wBAAsB,YAAY,CAChC,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAWnC;AAED,wBAAsB,OAAO,CAC3B,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAU3B;AAED,UAAU,IAAI;IACZ,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE;QACL,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,GAAG,EAAE,MAAM,CAAC;CACb;AACD,UAAU,UAAU;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,IAAI,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AACD,wBAAsB,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAU5E;AAED,wBAAsB,MAAM,CAC1B,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAU3B;AAED,wBAAsB,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAUzE;AAED,wBAAsB,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAU1E;AAED,wBAAsB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAUhE;AAED,wBAAsB,GAAG,CACvB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAU3B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@synonymdev/react-native-pubky",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "description": "React Native Implementation of Pubky",
5
5
  "source": "./src/index.tsx",
6
6
  "main": "./lib/commonjs/index.js",
package/src/index.tsx CHANGED
@@ -99,3 +99,69 @@ export async function resolve(publicKey: string): Promise<Result<IDNSPacket>> {
99
99
  return err(JSON.stringify(e));
100
100
  }
101
101
  }
102
+
103
+ export async function signUp(
104
+ secretKey: string,
105
+ homeserver: string
106
+ ): Promise<Result<string[]>> {
107
+ try {
108
+ const res = await Pubky.signUp(secretKey, homeserver);
109
+ if (res[0] === 'error') {
110
+ return err(res[1]);
111
+ }
112
+ return ok(res[1]);
113
+ } catch (e) {
114
+ return err(JSON.stringify(e));
115
+ }
116
+ }
117
+
118
+ export async function signIn(secretKey: string): Promise<Result<string[]>> {
119
+ try {
120
+ const res = await Pubky.signIn(secretKey);
121
+ if (res[0] === 'error') {
122
+ return err(res[1]);
123
+ }
124
+ return ok(res[1]);
125
+ } catch (e) {
126
+ return err(JSON.stringify(e));
127
+ }
128
+ }
129
+
130
+ export async function signOut(secretKey: string): Promise<Result<string[]>> {
131
+ try {
132
+ const res = await Pubky.signOut(secretKey);
133
+ if (res[0] === 'error') {
134
+ return err(res[1]);
135
+ }
136
+ return ok(res[1]);
137
+ } catch (e) {
138
+ return err(JSON.stringify(e));
139
+ }
140
+ }
141
+
142
+ export async function get(url: string): Promise<Result<string[]>> {
143
+ try {
144
+ const res = await Pubky.get(url);
145
+ if (res[0] === 'error') {
146
+ return err(res[1]);
147
+ }
148
+ return ok(JSON.parse(res[1]));
149
+ } catch (e) {
150
+ return err(JSON.stringify(e));
151
+ }
152
+ }
153
+
154
+ export async function put(
155
+ url: string,
156
+ content: Object
157
+ ): Promise<Result<string[]>> {
158
+ try {
159
+ const res = await Pubky.put(url, JSON.stringify(content));
160
+ if (res[0] === 'error') {
161
+ return err(res[1]);
162
+ }
163
+ return ok(res[1]);
164
+ } catch (e) {
165
+ return err(JSON.stringify(e));
166
+ }
167
+ }