@synonymdev/react-native-pubky 0.2.3 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +39 -5
- package/android/src/main/java/com/pubky/PubkyModule.kt +140 -0
- package/android/src/main/java/uniffi/pubkymobile/pubkymobile.kt +187 -0
- package/android/src/main/jniLibs/arm64-v8a/libpubkymobile.so +0 -0
- package/android/src/main/jniLibs/armeabi-v7a/libpubkymobile.so +0 -0
- package/android/src/main/jniLibs/x86/libpubkymobile.so +0 -0
- package/android/src/main/jniLibs/x86_64/libpubkymobile.so +0 -0
- package/ios/Frameworks/PubkyMobile.xcframework/ios-arm64/Headers/pubkymobileFFI.h +35 -0
- package/ios/Frameworks/PubkyMobile.xcframework/ios-arm64/libpubkymobile.a +0 -0
- package/ios/Frameworks/PubkyMobile.xcframework/ios-arm64-simulator/Headers/pubkymobileFFI.h +35 -0
- package/ios/Frameworks/PubkyMobile.xcframework/ios-arm64-simulator/libpubkymobile.a +0 -0
- package/ios/Pubky.mm +32 -0
- package/ios/Pubky.swift +85 -0
- package/ios/pubkymobile.swift +196 -0
- package/lib/commonjs/index.js +84 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/index.js +77 -0
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/commonjs/src/index.d.ts +24 -0
- package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
- package/lib/typescript/module/src/index.d.ts +24 -0
- package/lib/typescript/module/src/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/index.tsx +111 -0
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
|
-
- [ ]
|
17
|
-
- [ ]
|
18
|
-
- [ ]
|
19
|
-
- [ ]
|
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(
|
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
|
|
@@ -11,6 +11,13 @@ import kotlinx.coroutines.launch
|
|
11
11
|
import kotlinx.coroutines.withContext
|
12
12
|
import uniffi.pubkymobile.auth
|
13
13
|
import uniffi.pubkymobile.parseAuthUrl
|
14
|
+
import uniffi.pubkymobile.publish
|
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
|
14
21
|
|
15
22
|
class PubkyModule(reactContext: ReactApplicationContext) :
|
16
23
|
ReactContextBaseJavaModule(reactContext) {
|
@@ -51,6 +58,139 @@ class PubkyModule(reactContext: ReactApplicationContext) :
|
|
51
58
|
}
|
52
59
|
}
|
53
60
|
|
61
|
+
@ReactMethod
|
62
|
+
fun publish(recordName: String, recordContent: String, secretKey: String, promise: Promise) {
|
63
|
+
CoroutineScope(Dispatchers.IO).launch {
|
64
|
+
try {
|
65
|
+
val result = publish(recordName, recordContent, secretKey)
|
66
|
+
val array = Arguments.createArray().apply {
|
67
|
+
result.forEach { pushString(it) }
|
68
|
+
}
|
69
|
+
withContext(Dispatchers.Main) {
|
70
|
+
promise.resolve(array)
|
71
|
+
}
|
72
|
+
} catch (e: Exception) {
|
73
|
+
withContext(Dispatchers.Main) {
|
74
|
+
promise.reject("Error", e.message)
|
75
|
+
}
|
76
|
+
}
|
77
|
+
}
|
78
|
+
}
|
79
|
+
|
80
|
+
@ReactMethod
|
81
|
+
fun resolve(publicKey: String, promise: Promise) {
|
82
|
+
CoroutineScope(Dispatchers.IO).launch {
|
83
|
+
try {
|
84
|
+
val result = resolve(publicKey)
|
85
|
+
val array = Arguments.createArray().apply {
|
86
|
+
result.forEach { pushString(it) }
|
87
|
+
}
|
88
|
+
withContext(Dispatchers.Main) {
|
89
|
+
promise.resolve(array)
|
90
|
+
}
|
91
|
+
} catch (e: Exception) {
|
92
|
+
withContext(Dispatchers.Main) {
|
93
|
+
promise.reject("Error", e.message)
|
94
|
+
}
|
95
|
+
}
|
96
|
+
}
|
97
|
+
}
|
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
|
+
|
54
194
|
companion object {
|
55
195
|
const val NAME = "Pubky"
|
56
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,14 +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
|
394
|
+
fun uniffi_pubkymobile_fn_func_publish(`recordName`: RustBuffer.ByValue,`recordContent`: RustBuffer.ByValue,`secretKey`: RustBuffer.ByValue,_uniffi_out_err: RustCallStatus,
|
395
|
+
): RustBuffer.ByValue
|
396
|
+
fun uniffi_pubkymobile_fn_func_put(`url`: RustBuffer.ByValue,`content`: RustBuffer.ByValue,
|
397
|
+
): Pointer
|
398
|
+
fun uniffi_pubkymobile_fn_func_resolve(`publicKey`: RustBuffer.ByValue,_uniffi_out_err: RustCallStatus,
|
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
|
388
406
|
fun ffi_pubkymobile_rustbuffer_alloc(`size`: Int,_uniffi_out_err: RustCallStatus,
|
389
407
|
): RustBuffer.ByValue
|
390
408
|
fun ffi_pubkymobile_rustbuffer_from_bytes(`bytes`: ForeignBytes.ByValue,_uniffi_out_err: RustCallStatus,
|
@@ -501,8 +519,22 @@ internal interface _UniFFILib : Library {
|
|
501
519
|
): Unit
|
502
520
|
fun uniffi_pubkymobile_checksum_func_auth(
|
503
521
|
): Short
|
522
|
+
fun uniffi_pubkymobile_checksum_func_get(
|
523
|
+
): Short
|
504
524
|
fun uniffi_pubkymobile_checksum_func_parse_auth_url(
|
505
525
|
): Short
|
526
|
+
fun uniffi_pubkymobile_checksum_func_publish(
|
527
|
+
): Short
|
528
|
+
fun uniffi_pubkymobile_checksum_func_put(
|
529
|
+
): Short
|
530
|
+
fun uniffi_pubkymobile_checksum_func_resolve(
|
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
|
506
538
|
fun ffi_pubkymobile_uniffi_contract_version(
|
507
539
|
): Int
|
508
540
|
|
@@ -523,12 +555,77 @@ private fun uniffiCheckApiChecksums(lib: _UniFFILib) {
|
|
523
555
|
if (lib.uniffi_pubkymobile_checksum_func_auth() != 61378.toShort()) {
|
524
556
|
throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
|
525
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
|
+
}
|
526
561
|
if (lib.uniffi_pubkymobile_checksum_func_parse_auth_url() != 29088.toShort()) {
|
527
562
|
throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
|
528
563
|
}
|
564
|
+
if (lib.uniffi_pubkymobile_checksum_func_publish() != 20156.toShort()) {
|
565
|
+
throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
|
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
|
+
}
|
570
|
+
if (lib.uniffi_pubkymobile_checksum_func_resolve() != 18303.toShort()) {
|
571
|
+
throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
|
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
|
+
}
|
529
582
|
}
|
530
583
|
|
531
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
|
+
|
532
629
|
|
533
630
|
// Public interface members begin here.
|
534
631
|
|
@@ -612,6 +709,10 @@ public object FfiConverterSequenceString: FfiConverterRustBuffer<List<String>> {
|
|
612
709
|
}
|
613
710
|
}
|
614
711
|
|
712
|
+
|
713
|
+
|
714
|
+
|
715
|
+
|
615
716
|
fun `auth`(`url`: String, `secretKey`: String): List<String> {
|
616
717
|
return FfiConverterSequenceString.lift(
|
617
718
|
rustCall() { _status ->
|
@@ -620,6 +721,20 @@ fun `auth`(`url`: String, `secretKey`: String): List<String> {
|
|
620
721
|
}
|
621
722
|
|
622
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
|
+
|
623
738
|
fun `parseAuthUrl`(`url`: String): List<String> {
|
624
739
|
return FfiConverterSequenceString.lift(
|
625
740
|
rustCall() { _status ->
|
@@ -628,3 +743,75 @@ fun `parseAuthUrl`(`url`: String): List<String> {
|
|
628
743
|
}
|
629
744
|
|
630
745
|
|
746
|
+
fun `publish`(`recordName`: String, `recordContent`: String, `secretKey`: String): List<String> {
|
747
|
+
return FfiConverterSequenceString.lift(
|
748
|
+
rustCall() { _status ->
|
749
|
+
_UniFFILib.INSTANCE.uniffi_pubkymobile_fn_func_publish(FfiConverterString.lower(`recordName`),FfiConverterString.lower(`recordContent`),FfiConverterString.lower(`secretKey`),_status)
|
750
|
+
})
|
751
|
+
}
|
752
|
+
|
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
|
+
|
768
|
+
fun `resolve`(`publicKey`: String): List<String> {
|
769
|
+
return FfiConverterSequenceString.lift(
|
770
|
+
rustCall() { _status ->
|
771
|
+
_UniFFILib.INSTANCE.uniffi_pubkymobile_fn_func_resolve(FfiConverterString.lower(`publicKey`),_status)
|
772
|
+
})
|
773
|
+
}
|
774
|
+
|
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
|
+
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -65,8 +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
|
);
|
72
|
+
RustBuffer uniffi_pubkymobile_fn_func_publish(RustBuffer record_name, RustBuffer record_content, RustBuffer secret_key, RustCallStatus *_Nonnull out_status
|
73
|
+
);
|
74
|
+
void* _Nonnull uniffi_pubkymobile_fn_func_put(RustBuffer url, RustBuffer content
|
75
|
+
);
|
76
|
+
RustBuffer uniffi_pubkymobile_fn_func_resolve(RustBuffer public_key, RustCallStatus *_Nonnull out_status
|
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
|
+
);
|
70
84
|
RustBuffer ffi_pubkymobile_rustbuffer_alloc(int32_t size, RustCallStatus *_Nonnull out_status
|
71
85
|
);
|
72
86
|
RustBuffer ffi_pubkymobile_rustbuffer_from_bytes(ForeignBytes bytes, RustCallStatus *_Nonnull out_status
|
@@ -183,9 +197,30 @@ void ffi_pubkymobile_rust_future_complete_void(void* _Nonnull handle, RustCallSt
|
|
183
197
|
);
|
184
198
|
uint16_t uniffi_pubkymobile_checksum_func_auth(void
|
185
199
|
|
200
|
+
);
|
201
|
+
uint16_t uniffi_pubkymobile_checksum_func_get(void
|
202
|
+
|
186
203
|
);
|
187
204
|
uint16_t uniffi_pubkymobile_checksum_func_parse_auth_url(void
|
188
205
|
|
206
|
+
);
|
207
|
+
uint16_t uniffi_pubkymobile_checksum_func_publish(void
|
208
|
+
|
209
|
+
);
|
210
|
+
uint16_t uniffi_pubkymobile_checksum_func_put(void
|
211
|
+
|
212
|
+
);
|
213
|
+
uint16_t uniffi_pubkymobile_checksum_func_resolve(void
|
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
|
+
|
189
224
|
);
|
190
225
|
uint32_t ffi_pubkymobile_uniffi_contract_version(void
|
191
226
|
|
Binary file
|
@@ -65,8 +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
|
);
|
72
|
+
RustBuffer uniffi_pubkymobile_fn_func_publish(RustBuffer record_name, RustBuffer record_content, RustBuffer secret_key, RustCallStatus *_Nonnull out_status
|
73
|
+
);
|
74
|
+
void* _Nonnull uniffi_pubkymobile_fn_func_put(RustBuffer url, RustBuffer content
|
75
|
+
);
|
76
|
+
RustBuffer uniffi_pubkymobile_fn_func_resolve(RustBuffer public_key, RustCallStatus *_Nonnull out_status
|
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
|
+
);
|
70
84
|
RustBuffer ffi_pubkymobile_rustbuffer_alloc(int32_t size, RustCallStatus *_Nonnull out_status
|
71
85
|
);
|
72
86
|
RustBuffer ffi_pubkymobile_rustbuffer_from_bytes(ForeignBytes bytes, RustCallStatus *_Nonnull out_status
|
@@ -183,9 +197,30 @@ void ffi_pubkymobile_rust_future_complete_void(void* _Nonnull handle, RustCallSt
|
|
183
197
|
);
|
184
198
|
uint16_t uniffi_pubkymobile_checksum_func_auth(void
|
185
199
|
|
200
|
+
);
|
201
|
+
uint16_t uniffi_pubkymobile_checksum_func_get(void
|
202
|
+
|
186
203
|
);
|
187
204
|
uint16_t uniffi_pubkymobile_checksum_func_parse_auth_url(void
|
188
205
|
|
206
|
+
);
|
207
|
+
uint16_t uniffi_pubkymobile_checksum_func_publish(void
|
208
|
+
|
209
|
+
);
|
210
|
+
uint16_t uniffi_pubkymobile_checksum_func_put(void
|
211
|
+
|
212
|
+
);
|
213
|
+
uint16_t uniffi_pubkymobile_checksum_func_resolve(void
|
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
|
+
|
189
224
|
);
|
190
225
|
uint32_t ffi_pubkymobile_uniffi_contract_version(void
|
191
226
|
|
Binary file
|
package/ios/Pubky.mm
CHANGED
@@ -11,6 +11,38 @@ RCT_EXTERN_METHOD(parseAuthUrl:(NSString *)url
|
|
11
11
|
withResolver:(RCTPromiseResolveBlock)resolve
|
12
12
|
withRejecter:(RCTPromiseRejectBlock)reject)
|
13
13
|
|
14
|
+
RCT_EXTERN_METHOD(publish:(NSString *)recordName
|
15
|
+
recordContent:(NSString *)recordContent
|
16
|
+
secretKey:(NSString *)secretKey
|
17
|
+
withResolver:(RCTPromiseResolveBlock)resolve
|
18
|
+
withRejecter:(RCTPromiseRejectBlock)reject)
|
19
|
+
|
20
|
+
RCT_EXTERN_METHOD(resolve:(NSString *)publicKey
|
21
|
+
withResolver:(RCTPromiseResolveBlock)resolve
|
22
|
+
withRejecter:(RCTPromiseRejectBlock)reject)
|
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
|
+
|
14
46
|
+ (BOOL)requiresMainQueueSetup
|
15
47
|
{
|
16
48
|
return NO;
|