diff --git a/iosApp/iosApp/Frameworks/PubkyCore.xcframework/Info.plist b/iosApp/iosApp/Frameworks/PubkyCore.xcframework/Info.plist
index d2c2fe26..ed336bd6 100644
--- a/iosApp/iosApp/Frameworks/PubkyCore.xcframework/Info.plist
+++ b/iosApp/iosApp/Frameworks/PubkyCore.xcframework/Info.plist
@@ -10,7 +10,7 @@
HeadersPath
Headers
LibraryIdentifier
- ios-arm64
+ ios-arm64-simulator
LibraryPath
libpubkycore.a
SupportedArchitectures
@@ -19,6 +19,8 @@
SupportedPlatform
ios
+ SupportedPlatformVariant
+ simulator
BinaryPath
@@ -26,7 +28,7 @@
HeadersPath
Headers
LibraryIdentifier
- ios-arm64-simulator
+ ios-arm64
LibraryPath
libpubkycore.a
SupportedArchitectures
@@ -35,8 +37,6 @@
SupportedPlatform
ios
- SupportedPlatformVariant
- simulator
CFBundlePackageType
diff --git a/iosApp/iosApp/Frameworks/PubkyCore.xcframework/ios-arm64-simulator/Headers/pubkycoreFFI.h b/iosApp/iosApp/Frameworks/PubkyCore.xcframework/ios-arm64-simulator/Headers/pubkycoreFFI.h
index bb00823b..6bc94872 100644
--- a/iosApp/iosApp/Frameworks/PubkyCore.xcframework/ios-arm64-simulator/Headers/pubkycoreFFI.h
+++ b/iosApp/iosApp/Frameworks/PubkyCore.xcframework/ios-arm64-simulator/Headers/pubkycoreFFI.h
@@ -71,6 +71,12 @@ RustBuffer uniffi_pubkycore_fn_func_auth(RustBuffer url, RustBuffer secret_key,
);
RustBuffer uniffi_pubkycore_fn_func_await_auth_approval(RustCallStatus *_Nonnull out_status
+);
+RustBuffer uniffi_pubkycore_fn_func_await_cookie_auth_approval(RustCallStatus *_Nonnull out_status
+
+);
+RustBuffer uniffi_pubkycore_fn_func_await_grant_auth_approval(RustCallStatus *_Nonnull out_status
+
);
RustBuffer uniffi_pubkycore_fn_func_create_recovery_file(RustBuffer secret_key, RustBuffer passphrase, RustCallStatus *_Nonnull out_status
);
@@ -78,7 +84,7 @@ RustBuffer uniffi_pubkycore_fn_func_create_tag_id(RustBuffer uri, RustBuffer lab
);
RustBuffer uniffi_pubkycore_fn_func_decrypt_recovery_file(RustBuffer recovery_file, RustBuffer passphrase, RustCallStatus *_Nonnull out_status
);
-RustBuffer uniffi_pubkycore_fn_func_delete_file(RustBuffer url, RustBuffer secret_key, RustCallStatus *_Nonnull out_status
+RustBuffer uniffi_pubkycore_fn_func_delete_file(RustBuffer url, RustBuffer secret_key, RustBuffer client_id, RustCallStatus *_Nonnull out_status
);
RustBuffer uniffi_pubkycore_fn_func_delete_with_session(RustBuffer url, RustBuffer session_secret, RustCallStatus *_Nonnull out_status
);
@@ -110,13 +116,15 @@ RustBuffer uniffi_pubkycore_fn_func_mnemonic_phrase_to_keypair(RustBuffer mnemon
);
RustBuffer uniffi_pubkycore_fn_func_parse_auth_url(RustBuffer url, RustCallStatus *_Nonnull out_status
);
+RustBuffer uniffi_pubkycore_fn_func_parse_deep_link(RustBuffer url, RustCallStatus *_Nonnull out_status
+);
RustBuffer uniffi_pubkycore_fn_func_publish(RustBuffer record_name, RustBuffer record_content, RustBuffer secret_key, RustCallStatus *_Nonnull out_status
);
RustBuffer uniffi_pubkycore_fn_func_publish_https(RustBuffer record_name, RustBuffer target, RustBuffer secret_key, RustCallStatus *_Nonnull out_status
);
-RustBuffer uniffi_pubkycore_fn_func_put(RustBuffer url, RustBuffer content, RustBuffer secret_key, RustCallStatus *_Nonnull out_status
+RustBuffer uniffi_pubkycore_fn_func_put(RustBuffer url, RustBuffer content, RustBuffer secret_key, RustBuffer client_id, RustCallStatus *_Nonnull out_status
);
-RustBuffer uniffi_pubkycore_fn_func_put_bytes(RustBuffer url, RustBuffer content, RustBuffer secret_key, RustCallStatus *_Nonnull out_status
+RustBuffer uniffi_pubkycore_fn_func_put_bytes(RustBuffer url, RustBuffer content, RustBuffer secret_key, RustBuffer client_id, RustCallStatus *_Nonnull out_status
);
RustBuffer uniffi_pubkycore_fn_func_put_bytes_with_session(RustBuffer url, RustBuffer content, RustBuffer session_secret, RustCallStatus *_Nonnull out_status
);
@@ -135,13 +143,25 @@ RustBuffer uniffi_pubkycore_fn_func_revalidate_session(RustBuffer session_secret
);
void uniffi_pubkycore_fn_func_set_event_listener(uint64_t listener, RustCallStatus *_Nonnull out_status
);
-RustBuffer uniffi_pubkycore_fn_func_sign_in(RustBuffer secret_key, RustCallStatus *_Nonnull out_status
+RustBuffer uniffi_pubkycore_fn_func_sign_in(RustBuffer secret_key, RustBuffer client_id, RustCallStatus *_Nonnull out_status
+);
+RustBuffer uniffi_pubkycore_fn_func_sign_in_cookie(RustBuffer secret_key, RustCallStatus *_Nonnull out_status
+);
+RustBuffer uniffi_pubkycore_fn_func_sign_in_grant(RustBuffer secret_key, RustBuffer client_id, RustCallStatus *_Nonnull out_status
);
RustBuffer uniffi_pubkycore_fn_func_sign_out(RustBuffer session_secret, RustCallStatus *_Nonnull out_status
);
-RustBuffer uniffi_pubkycore_fn_func_sign_up(RustBuffer secret_key, RustBuffer homeserver, RustBuffer signup_token, RustCallStatus *_Nonnull out_status
+RustBuffer uniffi_pubkycore_fn_func_sign_up(RustBuffer secret_key, RustBuffer homeserver, RustBuffer signup_token, RustBuffer client_id, RustCallStatus *_Nonnull out_status
+);
+RustBuffer uniffi_pubkycore_fn_func_sign_up_cookie(RustBuffer secret_key, RustBuffer homeserver, RustBuffer signup_token, RustCallStatus *_Nonnull out_status
);
-RustBuffer uniffi_pubkycore_fn_func_start_auth_flow(RustBuffer capabilities_str, RustCallStatus *_Nonnull out_status
+RustBuffer uniffi_pubkycore_fn_func_sign_up_grant(RustBuffer secret_key, RustBuffer homeserver, RustBuffer signup_token, RustBuffer client_id, RustCallStatus *_Nonnull out_status
+);
+RustBuffer uniffi_pubkycore_fn_func_start_auth_flow(RustBuffer capabilities_str, RustBuffer client_id, RustCallStatus *_Nonnull out_status
+);
+RustBuffer uniffi_pubkycore_fn_func_start_cookie_auth_flow(RustBuffer capabilities_str, RustCallStatus *_Nonnull out_status
+);
+RustBuffer uniffi_pubkycore_fn_func_start_grant_auth_flow(RustBuffer capabilities_str, RustBuffer client_id, RustCallStatus *_Nonnull out_status
);
RustBuffer uniffi_pubkycore_fn_func_switch_network(int8_t use_testnet, RustCallStatus *_Nonnull out_status
);
@@ -266,6 +286,12 @@ uint16_t uniffi_pubkycore_checksum_func_auth(void
);
uint16_t uniffi_pubkycore_checksum_func_await_auth_approval(void
+);
+uint16_t uniffi_pubkycore_checksum_func_await_cookie_auth_approval(void
+
+);
+uint16_t uniffi_pubkycore_checksum_func_await_grant_auth_approval(void
+
);
uint16_t uniffi_pubkycore_checksum_func_create_recovery_file(void
@@ -317,6 +343,9 @@ uint16_t uniffi_pubkycore_checksum_func_mnemonic_phrase_to_keypair(void
);
uint16_t uniffi_pubkycore_checksum_func_parse_auth_url(void
+);
+uint16_t uniffi_pubkycore_checksum_func_parse_deep_link(void
+
);
uint16_t uniffi_pubkycore_checksum_func_publish(void
@@ -356,15 +385,33 @@ uint16_t uniffi_pubkycore_checksum_func_set_event_listener(void
);
uint16_t uniffi_pubkycore_checksum_func_sign_in(void
+);
+uint16_t uniffi_pubkycore_checksum_func_sign_in_cookie(void
+
+);
+uint16_t uniffi_pubkycore_checksum_func_sign_in_grant(void
+
);
uint16_t uniffi_pubkycore_checksum_func_sign_out(void
);
uint16_t uniffi_pubkycore_checksum_func_sign_up(void
+);
+uint16_t uniffi_pubkycore_checksum_func_sign_up_cookie(void
+
+);
+uint16_t uniffi_pubkycore_checksum_func_sign_up_grant(void
+
);
uint16_t uniffi_pubkycore_checksum_func_start_auth_flow(void
+);
+uint16_t uniffi_pubkycore_checksum_func_start_cookie_auth_flow(void
+
+);
+uint16_t uniffi_pubkycore_checksum_func_start_grant_auth_flow(void
+
);
uint16_t uniffi_pubkycore_checksum_func_switch_network(void
diff --git a/iosApp/iosApp/Frameworks/PubkyCore.xcframework/ios-arm64-simulator/libpubkycore.a b/iosApp/iosApp/Frameworks/PubkyCore.xcframework/ios-arm64-simulator/libpubkycore.a
index 9017230d..2132cb17 100644
Binary files a/iosApp/iosApp/Frameworks/PubkyCore.xcframework/ios-arm64-simulator/libpubkycore.a and b/iosApp/iosApp/Frameworks/PubkyCore.xcframework/ios-arm64-simulator/libpubkycore.a differ
diff --git a/iosApp/iosApp/Frameworks/PubkyCore.xcframework/ios-arm64/Headers/pubkycoreFFI.h b/iosApp/iosApp/Frameworks/PubkyCore.xcframework/ios-arm64/Headers/pubkycoreFFI.h
index bb00823b..6bc94872 100644
--- a/iosApp/iosApp/Frameworks/PubkyCore.xcframework/ios-arm64/Headers/pubkycoreFFI.h
+++ b/iosApp/iosApp/Frameworks/PubkyCore.xcframework/ios-arm64/Headers/pubkycoreFFI.h
@@ -71,6 +71,12 @@ RustBuffer uniffi_pubkycore_fn_func_auth(RustBuffer url, RustBuffer secret_key,
);
RustBuffer uniffi_pubkycore_fn_func_await_auth_approval(RustCallStatus *_Nonnull out_status
+);
+RustBuffer uniffi_pubkycore_fn_func_await_cookie_auth_approval(RustCallStatus *_Nonnull out_status
+
+);
+RustBuffer uniffi_pubkycore_fn_func_await_grant_auth_approval(RustCallStatus *_Nonnull out_status
+
);
RustBuffer uniffi_pubkycore_fn_func_create_recovery_file(RustBuffer secret_key, RustBuffer passphrase, RustCallStatus *_Nonnull out_status
);
@@ -78,7 +84,7 @@ RustBuffer uniffi_pubkycore_fn_func_create_tag_id(RustBuffer uri, RustBuffer lab
);
RustBuffer uniffi_pubkycore_fn_func_decrypt_recovery_file(RustBuffer recovery_file, RustBuffer passphrase, RustCallStatus *_Nonnull out_status
);
-RustBuffer uniffi_pubkycore_fn_func_delete_file(RustBuffer url, RustBuffer secret_key, RustCallStatus *_Nonnull out_status
+RustBuffer uniffi_pubkycore_fn_func_delete_file(RustBuffer url, RustBuffer secret_key, RustBuffer client_id, RustCallStatus *_Nonnull out_status
);
RustBuffer uniffi_pubkycore_fn_func_delete_with_session(RustBuffer url, RustBuffer session_secret, RustCallStatus *_Nonnull out_status
);
@@ -110,13 +116,15 @@ RustBuffer uniffi_pubkycore_fn_func_mnemonic_phrase_to_keypair(RustBuffer mnemon
);
RustBuffer uniffi_pubkycore_fn_func_parse_auth_url(RustBuffer url, RustCallStatus *_Nonnull out_status
);
+RustBuffer uniffi_pubkycore_fn_func_parse_deep_link(RustBuffer url, RustCallStatus *_Nonnull out_status
+);
RustBuffer uniffi_pubkycore_fn_func_publish(RustBuffer record_name, RustBuffer record_content, RustBuffer secret_key, RustCallStatus *_Nonnull out_status
);
RustBuffer uniffi_pubkycore_fn_func_publish_https(RustBuffer record_name, RustBuffer target, RustBuffer secret_key, RustCallStatus *_Nonnull out_status
);
-RustBuffer uniffi_pubkycore_fn_func_put(RustBuffer url, RustBuffer content, RustBuffer secret_key, RustCallStatus *_Nonnull out_status
+RustBuffer uniffi_pubkycore_fn_func_put(RustBuffer url, RustBuffer content, RustBuffer secret_key, RustBuffer client_id, RustCallStatus *_Nonnull out_status
);
-RustBuffer uniffi_pubkycore_fn_func_put_bytes(RustBuffer url, RustBuffer content, RustBuffer secret_key, RustCallStatus *_Nonnull out_status
+RustBuffer uniffi_pubkycore_fn_func_put_bytes(RustBuffer url, RustBuffer content, RustBuffer secret_key, RustBuffer client_id, RustCallStatus *_Nonnull out_status
);
RustBuffer uniffi_pubkycore_fn_func_put_bytes_with_session(RustBuffer url, RustBuffer content, RustBuffer session_secret, RustCallStatus *_Nonnull out_status
);
@@ -135,13 +143,25 @@ RustBuffer uniffi_pubkycore_fn_func_revalidate_session(RustBuffer session_secret
);
void uniffi_pubkycore_fn_func_set_event_listener(uint64_t listener, RustCallStatus *_Nonnull out_status
);
-RustBuffer uniffi_pubkycore_fn_func_sign_in(RustBuffer secret_key, RustCallStatus *_Nonnull out_status
+RustBuffer uniffi_pubkycore_fn_func_sign_in(RustBuffer secret_key, RustBuffer client_id, RustCallStatus *_Nonnull out_status
+);
+RustBuffer uniffi_pubkycore_fn_func_sign_in_cookie(RustBuffer secret_key, RustCallStatus *_Nonnull out_status
+);
+RustBuffer uniffi_pubkycore_fn_func_sign_in_grant(RustBuffer secret_key, RustBuffer client_id, RustCallStatus *_Nonnull out_status
);
RustBuffer uniffi_pubkycore_fn_func_sign_out(RustBuffer session_secret, RustCallStatus *_Nonnull out_status
);
-RustBuffer uniffi_pubkycore_fn_func_sign_up(RustBuffer secret_key, RustBuffer homeserver, RustBuffer signup_token, RustCallStatus *_Nonnull out_status
+RustBuffer uniffi_pubkycore_fn_func_sign_up(RustBuffer secret_key, RustBuffer homeserver, RustBuffer signup_token, RustBuffer client_id, RustCallStatus *_Nonnull out_status
+);
+RustBuffer uniffi_pubkycore_fn_func_sign_up_cookie(RustBuffer secret_key, RustBuffer homeserver, RustBuffer signup_token, RustCallStatus *_Nonnull out_status
);
-RustBuffer uniffi_pubkycore_fn_func_start_auth_flow(RustBuffer capabilities_str, RustCallStatus *_Nonnull out_status
+RustBuffer uniffi_pubkycore_fn_func_sign_up_grant(RustBuffer secret_key, RustBuffer homeserver, RustBuffer signup_token, RustBuffer client_id, RustCallStatus *_Nonnull out_status
+);
+RustBuffer uniffi_pubkycore_fn_func_start_auth_flow(RustBuffer capabilities_str, RustBuffer client_id, RustCallStatus *_Nonnull out_status
+);
+RustBuffer uniffi_pubkycore_fn_func_start_cookie_auth_flow(RustBuffer capabilities_str, RustCallStatus *_Nonnull out_status
+);
+RustBuffer uniffi_pubkycore_fn_func_start_grant_auth_flow(RustBuffer capabilities_str, RustBuffer client_id, RustCallStatus *_Nonnull out_status
);
RustBuffer uniffi_pubkycore_fn_func_switch_network(int8_t use_testnet, RustCallStatus *_Nonnull out_status
);
@@ -266,6 +286,12 @@ uint16_t uniffi_pubkycore_checksum_func_auth(void
);
uint16_t uniffi_pubkycore_checksum_func_await_auth_approval(void
+);
+uint16_t uniffi_pubkycore_checksum_func_await_cookie_auth_approval(void
+
+);
+uint16_t uniffi_pubkycore_checksum_func_await_grant_auth_approval(void
+
);
uint16_t uniffi_pubkycore_checksum_func_create_recovery_file(void
@@ -317,6 +343,9 @@ uint16_t uniffi_pubkycore_checksum_func_mnemonic_phrase_to_keypair(void
);
uint16_t uniffi_pubkycore_checksum_func_parse_auth_url(void
+);
+uint16_t uniffi_pubkycore_checksum_func_parse_deep_link(void
+
);
uint16_t uniffi_pubkycore_checksum_func_publish(void
@@ -356,15 +385,33 @@ uint16_t uniffi_pubkycore_checksum_func_set_event_listener(void
);
uint16_t uniffi_pubkycore_checksum_func_sign_in(void
+);
+uint16_t uniffi_pubkycore_checksum_func_sign_in_cookie(void
+
+);
+uint16_t uniffi_pubkycore_checksum_func_sign_in_grant(void
+
);
uint16_t uniffi_pubkycore_checksum_func_sign_out(void
);
uint16_t uniffi_pubkycore_checksum_func_sign_up(void
+);
+uint16_t uniffi_pubkycore_checksum_func_sign_up_cookie(void
+
+);
+uint16_t uniffi_pubkycore_checksum_func_sign_up_grant(void
+
);
uint16_t uniffi_pubkycore_checksum_func_start_auth_flow(void
+);
+uint16_t uniffi_pubkycore_checksum_func_start_cookie_auth_flow(void
+
+);
+uint16_t uniffi_pubkycore_checksum_func_start_grant_auth_flow(void
+
);
uint16_t uniffi_pubkycore_checksum_func_switch_network(void
diff --git a/iosApp/iosApp/Frameworks/PubkyCore.xcframework/ios-arm64/libpubkycore.a b/iosApp/iosApp/Frameworks/PubkyCore.xcframework/ios-arm64/libpubkycore.a
index a0ed1802..e41a99d6 100644
Binary files a/iosApp/iosApp/Frameworks/PubkyCore.xcframework/ios-arm64/libpubkycore.a and b/iosApp/iosApp/Frameworks/PubkyCore.xcframework/ios-arm64/libpubkycore.a differ
diff --git a/iosApp/iosApp/Pubky/IosPubkyClient.swift b/iosApp/iosApp/Pubky/IosPubkyClient.swift
index 88813f13..9adb97f7 100644
--- a/iosApp/iosApp/Pubky/IosPubkyClient.swift
+++ b/iosApp/iosApp/Pubky/IosPubkyClient.swift
@@ -1,6 +1,15 @@
import Foundation
import Shared
+/// Which application the homeserver is being told it is talking to, required by pubky 0.10's
+/// `ClientId` on every sign-in, sign-up, auth flow and secret-key write.
+///
+/// The type wants a domain string (its own example is `franky.pubky.app`), non-empty and at most
+/// 253 characters — not the iOS bundle identifier. Kept byte-for-byte identical to
+/// `LOOPKY_CLIENT_ID` in `AndroidPubkyClient.kt`: it travels to the homeserver, so the two
+/// platforms must identify as the same client.
+private let loopkyClientId = "loopky.app"
+
/// Swift implementation of the shared `RawPubkyClient` interface — a dumb pass-through to
/// the UniFFI-generated free functions in `pubkycore.swift` (backed by
/// `PubkyCore.xcframework`). Every method returns the FFI's native `[status, payload]`
@@ -45,14 +54,19 @@ final class IosPubkyClient: NSObject, RawPubkyClient {
// MARK: - Auth / sessions
func signUp(secretKey: String, homeserver: String, signupToken: String?) -> [String] {
- Loopky.signUp(secretKey: secretKey, homeserver: homeserver, signupToken: signupToken)
+ Loopky.signUp(
+ secretKey: secretKey,
+ homeserver: homeserver,
+ signupToken: signupToken,
+ clientId: loopkyClientId
+ )
}
func getSignupToken(homeserverPubky: String, adminPassword: String) -> [String] {
Loopky.getSignupToken(homeserverPubky: homeserverPubky, adminPassword: adminPassword)
}
- func signIn(secretKey: String) -> [String] { Loopky.signIn(secretKey: secretKey) }
+ func signIn(secretKey: String) -> [String] { Loopky.signIn(secretKey: secretKey, clientId: loopkyClientId) }
func signOut(sessionSecret: String) -> [String] { Loopky.signOut(sessionSecret: sessionSecret) }
@@ -61,7 +75,7 @@ final class IosPubkyClient: NSObject, RawPubkyClient {
}
func startAuthFlow(capabilities: String) -> [String] {
- Loopky.startAuthFlow(capabilitiesStr: capabilities)
+ Loopky.startAuthFlow(capabilitiesStr: capabilities, clientId: loopkyClientId)
}
func awaitAuthApproval() -> [String] { Loopky.awaitAuthApproval() }
@@ -83,14 +97,14 @@ final class IosPubkyClient: NSObject, RawPubkyClient {
}
func put(url: String, content: String, secretKey: String) -> [String] {
- Loopky.put(url: url, content: content, secretKey: secretKey)
+ Loopky.put(url: url, content: content, secretKey: secretKey, clientId: loopkyClientId)
}
func putBytesBase64(url: String, contentBase64: String, secretKey: String) -> [String] {
guard let data = Data(base64Encoded: contentBase64) else {
return ["true", "Invalid Base64 payload"]
}
- return Loopky.putBytes(url: url, content: data, secretKey: secretKey)
+ return Loopky.putBytes(url: url, content: data, secretKey: secretKey, clientId: loopkyClientId)
}
func get(url: String) -> [String] { Loopky.get(url: url) }
@@ -114,7 +128,7 @@ final class IosPubkyClient: NSObject, RawPubkyClient {
}
func deleteFile(url: String, secretKey: String) -> [String] {
- Loopky.deleteFile(url: url, secretKey: secretKey)
+ Loopky.deleteFile(url: url, secretKey: secretKey, clientId: loopkyClientId)
}
func republishHomeserver(secretKey: String, homeserver: String) -> [String] {
diff --git a/iosApp/iosApp/Pubky/pubkycore.swift b/iosApp/iosApp/Pubky/pubkycore.swift
index 97b4c68f..63b27b3a 100644
--- a/iosApp/iosApp/Pubky/pubkycore.swift
+++ b/iosApp/iosApp/Pubky/pubkycore.swift
@@ -710,6 +710,22 @@ public func awaitAuthApproval() -> [String] {
)
}
+public func awaitCookieAuthApproval() -> [String] {
+ return try! FfiConverterSequenceString.lift(
+ try! rustCall {
+ uniffi_pubkycore_fn_func_await_cookie_auth_approval($0)
+ }
+ )
+}
+
+public func awaitGrantAuthApproval() -> [String] {
+ return try! FfiConverterSequenceString.lift(
+ try! rustCall {
+ uniffi_pubkycore_fn_func_await_grant_auth_approval($0)
+ }
+ )
+}
+
public func createRecoveryFile(secretKey: String, passphrase: String) -> [String] {
return try! FfiConverterSequenceString.lift(
try! rustCall {
@@ -743,12 +759,13 @@ public func decryptRecoveryFile(recoveryFile: String, passphrase: String) -> [St
)
}
-public func deleteFile(url: String, secretKey: String) -> [String] {
+public func deleteFile(url: String, secretKey: String, clientId: String) -> [String] {
return try! FfiConverterSequenceString.lift(
try! rustCall {
uniffi_pubkycore_fn_func_delete_file(
FfiConverterString.lower(url),
- FfiConverterString.lower(secretKey), $0
+ FfiConverterString.lower(secretKey),
+ FfiConverterString.lower(clientId), $0
)
}
)
@@ -880,6 +897,16 @@ public func parseAuthUrl(url: String) -> [String] {
)
}
+public func parseDeepLink(url: String) -> [String] {
+ return try! FfiConverterSequenceString.lift(
+ try! rustCall {
+ uniffi_pubkycore_fn_func_parse_deep_link(
+ FfiConverterString.lower(url), $0
+ )
+ }
+ )
+}
+
public func publish(recordName: String, recordContent: String, secretKey: String) -> [String] {
return try! FfiConverterSequenceString.lift(
try! rustCall {
@@ -904,25 +931,27 @@ public func publishHttps(recordName: String, target: String, secretKey: String)
)
}
-public func put(url: String, content: String, secretKey: String) -> [String] {
+public func put(url: String, content: String, secretKey: String, clientId: String) -> [String] {
return try! FfiConverterSequenceString.lift(
try! rustCall {
uniffi_pubkycore_fn_func_put(
FfiConverterString.lower(url),
FfiConverterString.lower(content),
- FfiConverterString.lower(secretKey), $0
+ FfiConverterString.lower(secretKey),
+ FfiConverterString.lower(clientId), $0
)
}
)
}
-public func putBytes(url: String, content: Data, secretKey: String) -> [String] {
+public func putBytes(url: String, content: Data, secretKey: String, clientId: String) -> [String] {
return try! FfiConverterSequenceString.lift(
try! rustCall {
uniffi_pubkycore_fn_func_put_bytes(
FfiConverterString.lower(url),
FfiConverterData.lower(content),
- FfiConverterString.lower(secretKey), $0
+ FfiConverterString.lower(secretKey),
+ FfiConverterString.lower(clientId), $0
)
}
)
@@ -1007,16 +1036,38 @@ public func setEventListener(listener: EventListener) {
}
}
-public func signIn(secretKey: String) -> [String] {
+public func signIn(secretKey: String, clientId: String) -> [String] {
return try! FfiConverterSequenceString.lift(
try! rustCall {
uniffi_pubkycore_fn_func_sign_in(
+ FfiConverterString.lower(secretKey),
+ FfiConverterString.lower(clientId), $0
+ )
+ }
+ )
+}
+
+public func signInCookie(secretKey: String) -> [String] {
+ return try! FfiConverterSequenceString.lift(
+ try! rustCall {
+ uniffi_pubkycore_fn_func_sign_in_cookie(
FfiConverterString.lower(secretKey), $0
)
}
)
}
+public func signInGrant(secretKey: String, clientId: String) -> [String] {
+ return try! FfiConverterSequenceString.lift(
+ try! rustCall {
+ uniffi_pubkycore_fn_func_sign_in_grant(
+ FfiConverterString.lower(secretKey),
+ FfiConverterString.lower(clientId), $0
+ )
+ }
+ )
+}
+
public func signOut(sessionSecret: String) -> [String] {
return try! FfiConverterSequenceString.lift(
try! rustCall {
@@ -1027,10 +1078,23 @@ public func signOut(sessionSecret: String) -> [String] {
)
}
-public func signUp(secretKey: String, homeserver: String, signupToken: String?) -> [String] {
+public func signUp(secretKey: String, homeserver: String, signupToken: String?, clientId: String) -> [String] {
return try! FfiConverterSequenceString.lift(
try! rustCall {
uniffi_pubkycore_fn_func_sign_up(
+ FfiConverterString.lower(secretKey),
+ FfiConverterString.lower(homeserver),
+ FfiConverterOptionString.lower(signupToken),
+ FfiConverterString.lower(clientId), $0
+ )
+ }
+ )
+}
+
+public func signUpCookie(secretKey: String, homeserver: String, signupToken: String?) -> [String] {
+ return try! FfiConverterSequenceString.lift(
+ try! rustCall {
+ uniffi_pubkycore_fn_func_sign_up_cookie(
FfiConverterString.lower(secretKey),
FfiConverterString.lower(homeserver),
FfiConverterOptionString.lower(signupToken), $0
@@ -1039,16 +1103,51 @@ public func signUp(secretKey: String, homeserver: String, signupToken: String?)
)
}
-public func startAuthFlow(capabilitiesStr: String) -> [String] {
+public func signUpGrant(secretKey: String, homeserver: String, signupToken: String?, clientId: String) -> [String] {
+ return try! FfiConverterSequenceString.lift(
+ try! rustCall {
+ uniffi_pubkycore_fn_func_sign_up_grant(
+ FfiConverterString.lower(secretKey),
+ FfiConverterString.lower(homeserver),
+ FfiConverterOptionString.lower(signupToken),
+ FfiConverterString.lower(clientId), $0
+ )
+ }
+ )
+}
+
+public func startAuthFlow(capabilitiesStr: String, clientId: String) -> [String] {
return try! FfiConverterSequenceString.lift(
try! rustCall {
uniffi_pubkycore_fn_func_start_auth_flow(
+ FfiConverterString.lower(capabilitiesStr),
+ FfiConverterString.lower(clientId), $0
+ )
+ }
+ )
+}
+
+public func startCookieAuthFlow(capabilitiesStr: String) -> [String] {
+ return try! FfiConverterSequenceString.lift(
+ try! rustCall {
+ uniffi_pubkycore_fn_func_start_cookie_auth_flow(
FfiConverterString.lower(capabilitiesStr), $0
)
}
)
}
+public func startGrantAuthFlow(capabilitiesStr: String, clientId: String) -> [String] {
+ return try! FfiConverterSequenceString.lift(
+ try! rustCall {
+ uniffi_pubkycore_fn_func_start_grant_auth_flow(
+ FfiConverterString.lower(capabilitiesStr),
+ FfiConverterString.lower(clientId), $0
+ )
+ }
+ )
+}
+
public func switchNetwork(useTestnet: Bool) -> [String] {
return try! FfiConverterSequenceString.lift(
try! rustCall {
@@ -1091,6 +1190,12 @@ private var initializationResult: InitializationResult {
if uniffi_pubkycore_checksum_func_await_auth_approval() != 56488 {
return InitializationResult.apiChecksumMismatch
}
+ if uniffi_pubkycore_checksum_func_await_cookie_auth_approval() != 44552 {
+ return InitializationResult.apiChecksumMismatch
+ }
+ if uniffi_pubkycore_checksum_func_await_grant_auth_approval() != 15252 {
+ return InitializationResult.apiChecksumMismatch
+ }
if uniffi_pubkycore_checksum_func_create_recovery_file() != 48846 {
return InitializationResult.apiChecksumMismatch
}
@@ -1100,7 +1205,7 @@ private var initializationResult: InitializationResult {
if uniffi_pubkycore_checksum_func_decrypt_recovery_file() != 26407 {
return InitializationResult.apiChecksumMismatch
}
- if uniffi_pubkycore_checksum_func_delete_file() != 47931 {
+ if uniffi_pubkycore_checksum_func_delete_file() != 43485 {
return InitializationResult.apiChecksumMismatch
}
if uniffi_pubkycore_checksum_func_delete_with_session() != 26332 {
@@ -1142,16 +1247,19 @@ private var initializationResult: InitializationResult {
if uniffi_pubkycore_checksum_func_parse_auth_url() != 27379 {
return InitializationResult.apiChecksumMismatch
}
+ if uniffi_pubkycore_checksum_func_parse_deep_link() != 29971 {
+ return InitializationResult.apiChecksumMismatch
+ }
if uniffi_pubkycore_checksum_func_publish() != 48989 {
return InitializationResult.apiChecksumMismatch
}
if uniffi_pubkycore_checksum_func_publish_https() != 5614 {
return InitializationResult.apiChecksumMismatch
}
- if uniffi_pubkycore_checksum_func_put() != 64514 {
+ if uniffi_pubkycore_checksum_func_put() != 32173 {
return InitializationResult.apiChecksumMismatch
}
- if uniffi_pubkycore_checksum_func_put_bytes() != 16335 {
+ if uniffi_pubkycore_checksum_func_put_bytes() != 47888 {
return InitializationResult.apiChecksumMismatch
}
if uniffi_pubkycore_checksum_func_put_bytes_with_session() != 50346 {
@@ -1178,16 +1286,34 @@ private var initializationResult: InitializationResult {
if uniffi_pubkycore_checksum_func_set_event_listener() != 60071 {
return InitializationResult.apiChecksumMismatch
}
- if uniffi_pubkycore_checksum_func_sign_in() != 21584 {
+ if uniffi_pubkycore_checksum_func_sign_in() != 23529 {
+ return InitializationResult.apiChecksumMismatch
+ }
+ if uniffi_pubkycore_checksum_func_sign_in_cookie() != 28058 {
+ return InitializationResult.apiChecksumMismatch
+ }
+ if uniffi_pubkycore_checksum_func_sign_in_grant() != 49219 {
return InitializationResult.apiChecksumMismatch
}
if uniffi_pubkycore_checksum_func_sign_out() != 27163 {
return InitializationResult.apiChecksumMismatch
}
- if uniffi_pubkycore_checksum_func_sign_up() != 48789 {
+ if uniffi_pubkycore_checksum_func_sign_up() != 6399 {
+ return InitializationResult.apiChecksumMismatch
+ }
+ if uniffi_pubkycore_checksum_func_sign_up_cookie() != 55185 {
+ return InitializationResult.apiChecksumMismatch
+ }
+ if uniffi_pubkycore_checksum_func_sign_up_grant() != 65298 {
+ return InitializationResult.apiChecksumMismatch
+ }
+ if uniffi_pubkycore_checksum_func_start_auth_flow() != 45230 {
+ return InitializationResult.apiChecksumMismatch
+ }
+ if uniffi_pubkycore_checksum_func_start_cookie_auth_flow() != 49536 {
return InitializationResult.apiChecksumMismatch
}
- if uniffi_pubkycore_checksum_func_start_auth_flow() != 25681 {
+ if uniffi_pubkycore_checksum_func_start_grant_auth_flow() != 48937 {
return InitializationResult.apiChecksumMismatch
}
if uniffi_pubkycore_checksum_func_switch_network() != 64215 {
diff --git a/shared/src/androidMain/jniLibs/arm64-v8a/libpubkycore.so b/shared/src/androidMain/jniLibs/arm64-v8a/libpubkycore.so
index b8702bd1..d5c6c84f 100755
Binary files a/shared/src/androidMain/jniLibs/arm64-v8a/libpubkycore.so and b/shared/src/androidMain/jniLibs/arm64-v8a/libpubkycore.so differ
diff --git a/shared/src/androidMain/jniLibs/armeabi-v7a/libpubkycore.so b/shared/src/androidMain/jniLibs/armeabi-v7a/libpubkycore.so
index 56f31334..4568a25d 100755
Binary files a/shared/src/androidMain/jniLibs/armeabi-v7a/libpubkycore.so and b/shared/src/androidMain/jniLibs/armeabi-v7a/libpubkycore.so differ
diff --git a/shared/src/androidMain/jniLibs/x86/libpubkycore.so b/shared/src/androidMain/jniLibs/x86/libpubkycore.so
index 742cf467..01debc5f 100755
Binary files a/shared/src/androidMain/jniLibs/x86/libpubkycore.so and b/shared/src/androidMain/jniLibs/x86/libpubkycore.so differ
diff --git a/shared/src/androidMain/jniLibs/x86_64/libpubkycore.so b/shared/src/androidMain/jniLibs/x86_64/libpubkycore.so
index fa3a4e0f..44a0bd26 100755
Binary files a/shared/src/androidMain/jniLibs/x86_64/libpubkycore.so and b/shared/src/androidMain/jniLibs/x86_64/libpubkycore.so differ
diff --git a/shared/src/androidMain/kotlin/com/github/jvsena42/loopky/data/pubky/AndroidPubkyClient.kt b/shared/src/androidMain/kotlin/com/github/jvsena42/loopky/data/pubky/AndroidPubkyClient.kt
index ab68a715..c154002d 100644
--- a/shared/src/androidMain/kotlin/com/github/jvsena42/loopky/data/pubky/AndroidPubkyClient.kt
+++ b/shared/src/androidMain/kotlin/com/github/jvsena42/loopky/data/pubky/AndroidPubkyClient.kt
@@ -37,6 +37,18 @@ import uniffi.pubkycore.startAuthFlow as ffiStartAuthFlow
import uniffi.pubkycore.switchNetwork as ffiSwitchNetwork
import uniffi.pubkycore.validateMnemonicPhrase as ffiValidateMnemonicPhrase
+/**
+ * Which application the homeserver is being told it is talking to, required by pubky 0.10's
+ * `ClientId` on every sign-in, sign-up, auth flow and secret-key write.
+ *
+ * The type wants a domain string (its own example is `franky.pubky.app`), non-empty and at most
+ * 253 characters — not the Android application id, which is what makes this a constant here
+ * rather than something derived from `BuildConfig`. It travels to the homeserver, so treat it as
+ * a public, stable name for Loopky and not as a build-variant knob: staging and release identify
+ * as the same client on purpose.
+ */
+private const val LOOPKY_CLIENT_ID = "loopky.app"
+
/**
* Android implementation of [PubkyClient] delegating to the UniFFI-generated Kotlin
* bindings in `uniffi.pubkycore`. JNI libraries are shipped in `shared/androidMain/jniLibs`.
@@ -76,12 +88,14 @@ class AndroidPubkyClient : PubkyClient {
secretKey: String,
homeserver: String,
signupToken: String?,
- ) = runFfiSuspend { ffiSignUp(secretKey, homeserver, signupToken) }
+ ) = runFfiSuspend { ffiSignUp(secretKey, homeserver, signupToken, LOOPKY_CLIENT_ID) }
override suspend fun getSignupToken(homeserverPubky: String, adminPassword: String) =
runFfiSuspend { ffiGetSignupToken(homeserverPubky, adminPassword) }
- override suspend fun signIn(secretKey: String) = runFfiSuspend { ffiSignIn(secretKey) }
+ override suspend fun signIn(secretKey: String) =
+ runFfiSuspend { ffiSignIn(secretKey, LOOPKY_CLIENT_ID) }
+
override suspend fun signOut(sessionSecret: String) =
runFfiSuspend { ffiSignOut(sessionSecret) }
@@ -89,7 +103,7 @@ class AndroidPubkyClient : PubkyClient {
runFfiSuspend { ffiRevalidateSession(sessionSecret) }
override suspend fun startAuthFlow(capabilities: String) =
- runFfiSuspend { ffiStartAuthFlow(capabilities) }
+ runFfiSuspend { ffiStartAuthFlow(capabilities, LOOPKY_CLIENT_ID) }
override suspend fun awaitAuthApproval() = runFfiSuspend { ffiAwaitAuthApproval() }
override fun parseAuthUrl(url: String) = runFfi { ffiParseAuthUrl(url) }
@@ -104,10 +118,10 @@ class AndroidPubkyClient : PubkyClient {
runFfiSuspend { ffiPublishHttps(recordName, target, secretKey) }
override suspend fun put(url: String, content: String, secretKey: String) =
- runFfiSuspend { ffiPut(url, content, secretKey) }
+ runFfiSuspend { ffiPut(url, content, secretKey, LOOPKY_CLIENT_ID) }
override suspend fun putBytes(url: String, content: ByteArray, secretKey: String) =
- runFfiSuspend { ffiPutBytes(url, content, secretKey) }
+ runFfiSuspend { ffiPutBytes(url, content, secretKey, LOOPKY_CLIENT_ID) }
override suspend fun get(url: String) = runFfiSuspend { ffiGet(url) }
override suspend fun getBytes(url: String) = runFfiSuspend { ffiGetBytes(url) }
@@ -120,7 +134,7 @@ class AndroidPubkyClient : PubkyClient {
) = runFfiSuspend { ffiList(url, cursor, reverse, limit, shallow) }
override suspend fun deleteFile(url: String, secretKey: String) =
- runFfiSuspend { ffiDeleteFile(url, secretKey) }
+ runFfiSuspend { ffiDeleteFile(url, secretKey, LOOPKY_CLIENT_ID) }
override suspend fun republishHomeserver(secretKey: String, homeserver: String) =
runFfiSuspend { ffiRepublishHomeserver(secretKey, homeserver) }
diff --git a/shared/src/androidMain/kotlin/uniffi/pubkycore/pubkycore.kt b/shared/src/androidMain/kotlin/uniffi/pubkycore/pubkycore.kt
index c539ffb5..8af28cf9 100644
--- a/shared/src/androidMain/kotlin/uniffi/pubkycore/pubkycore.kt
+++ b/shared/src/androidMain/kotlin/uniffi/pubkycore/pubkycore.kt
@@ -394,13 +394,17 @@ internal interface _UniFFILib : Library {
): RustBuffer.ByValue
fun uniffi_pubkycore_fn_func_await_auth_approval(_uniffi_out_err: RustCallStatus,
): RustBuffer.ByValue
+ fun uniffi_pubkycore_fn_func_await_cookie_auth_approval(_uniffi_out_err: RustCallStatus,
+ ): RustBuffer.ByValue
+ fun uniffi_pubkycore_fn_func_await_grant_auth_approval(_uniffi_out_err: RustCallStatus,
+ ): RustBuffer.ByValue
fun uniffi_pubkycore_fn_func_create_recovery_file(`secretKey`: RustBuffer.ByValue,`passphrase`: RustBuffer.ByValue,_uniffi_out_err: RustCallStatus,
): RustBuffer.ByValue
fun uniffi_pubkycore_fn_func_create_tag_id(`uri`: RustBuffer.ByValue,`label`: RustBuffer.ByValue,_uniffi_out_err: RustCallStatus,
): RustBuffer.ByValue
fun uniffi_pubkycore_fn_func_decrypt_recovery_file(`recoveryFile`: RustBuffer.ByValue,`passphrase`: RustBuffer.ByValue,_uniffi_out_err: RustCallStatus,
): RustBuffer.ByValue
- fun uniffi_pubkycore_fn_func_delete_file(`url`: RustBuffer.ByValue,`secretKey`: RustBuffer.ByValue,_uniffi_out_err: RustCallStatus,
+ fun uniffi_pubkycore_fn_func_delete_file(`url`: RustBuffer.ByValue,`secretKey`: RustBuffer.ByValue,`clientId`: RustBuffer.ByValue,_uniffi_out_err: RustCallStatus,
): RustBuffer.ByValue
fun uniffi_pubkycore_fn_func_delete_with_session(`url`: RustBuffer.ByValue,`sessionSecret`: RustBuffer.ByValue,_uniffi_out_err: RustCallStatus,
): RustBuffer.ByValue
@@ -428,13 +432,15 @@ internal interface _UniFFILib : Library {
): RustBuffer.ByValue
fun uniffi_pubkycore_fn_func_parse_auth_url(`url`: RustBuffer.ByValue,_uniffi_out_err: RustCallStatus,
): RustBuffer.ByValue
+ fun uniffi_pubkycore_fn_func_parse_deep_link(`url`: RustBuffer.ByValue,_uniffi_out_err: RustCallStatus,
+ ): RustBuffer.ByValue
fun uniffi_pubkycore_fn_func_publish(`recordName`: RustBuffer.ByValue,`recordContent`: RustBuffer.ByValue,`secretKey`: RustBuffer.ByValue,_uniffi_out_err: RustCallStatus,
): RustBuffer.ByValue
fun uniffi_pubkycore_fn_func_publish_https(`recordName`: RustBuffer.ByValue,`target`: RustBuffer.ByValue,`secretKey`: RustBuffer.ByValue,_uniffi_out_err: RustCallStatus,
): RustBuffer.ByValue
- fun uniffi_pubkycore_fn_func_put(`url`: RustBuffer.ByValue,`content`: RustBuffer.ByValue,`secretKey`: RustBuffer.ByValue,_uniffi_out_err: RustCallStatus,
+ fun uniffi_pubkycore_fn_func_put(`url`: RustBuffer.ByValue,`content`: RustBuffer.ByValue,`secretKey`: RustBuffer.ByValue,`clientId`: RustBuffer.ByValue,_uniffi_out_err: RustCallStatus,
): RustBuffer.ByValue
- fun uniffi_pubkycore_fn_func_put_bytes(`url`: RustBuffer.ByValue,`content`: RustBuffer.ByValue,`secretKey`: RustBuffer.ByValue,_uniffi_out_err: RustCallStatus,
+ fun uniffi_pubkycore_fn_func_put_bytes(`url`: RustBuffer.ByValue,`content`: RustBuffer.ByValue,`secretKey`: RustBuffer.ByValue,`clientId`: RustBuffer.ByValue,_uniffi_out_err: RustCallStatus,
): RustBuffer.ByValue
fun uniffi_pubkycore_fn_func_put_bytes_with_session(`url`: RustBuffer.ByValue,`content`: RustBuffer.ByValue,`sessionSecret`: RustBuffer.ByValue,_uniffi_out_err: RustCallStatus,
): RustBuffer.ByValue
@@ -452,13 +458,25 @@ internal interface _UniFFILib : Library {
): RustBuffer.ByValue
fun uniffi_pubkycore_fn_func_set_event_listener(`listener`: Long,_uniffi_out_err: RustCallStatus,
): Unit
- fun uniffi_pubkycore_fn_func_sign_in(`secretKey`: RustBuffer.ByValue,_uniffi_out_err: RustCallStatus,
+ fun uniffi_pubkycore_fn_func_sign_in(`secretKey`: RustBuffer.ByValue,`clientId`: RustBuffer.ByValue,_uniffi_out_err: RustCallStatus,
+ ): RustBuffer.ByValue
+ fun uniffi_pubkycore_fn_func_sign_in_cookie(`secretKey`: RustBuffer.ByValue,_uniffi_out_err: RustCallStatus,
+ ): RustBuffer.ByValue
+ fun uniffi_pubkycore_fn_func_sign_in_grant(`secretKey`: RustBuffer.ByValue,`clientId`: RustBuffer.ByValue,_uniffi_out_err: RustCallStatus,
): RustBuffer.ByValue
fun uniffi_pubkycore_fn_func_sign_out(`sessionSecret`: RustBuffer.ByValue,_uniffi_out_err: RustCallStatus,
): RustBuffer.ByValue
- fun uniffi_pubkycore_fn_func_sign_up(`secretKey`: RustBuffer.ByValue,`homeserver`: RustBuffer.ByValue,`signupToken`: RustBuffer.ByValue,_uniffi_out_err: RustCallStatus,
+ fun uniffi_pubkycore_fn_func_sign_up(`secretKey`: RustBuffer.ByValue,`homeserver`: RustBuffer.ByValue,`signupToken`: RustBuffer.ByValue,`clientId`: RustBuffer.ByValue,_uniffi_out_err: RustCallStatus,
+ ): RustBuffer.ByValue
+ fun uniffi_pubkycore_fn_func_sign_up_cookie(`secretKey`: RustBuffer.ByValue,`homeserver`: RustBuffer.ByValue,`signupToken`: RustBuffer.ByValue,_uniffi_out_err: RustCallStatus,
): RustBuffer.ByValue
- fun uniffi_pubkycore_fn_func_start_auth_flow(`capabilitiesStr`: RustBuffer.ByValue,_uniffi_out_err: RustCallStatus,
+ fun uniffi_pubkycore_fn_func_sign_up_grant(`secretKey`: RustBuffer.ByValue,`homeserver`: RustBuffer.ByValue,`signupToken`: RustBuffer.ByValue,`clientId`: RustBuffer.ByValue,_uniffi_out_err: RustCallStatus,
+ ): RustBuffer.ByValue
+ fun uniffi_pubkycore_fn_func_start_auth_flow(`capabilitiesStr`: RustBuffer.ByValue,`clientId`: RustBuffer.ByValue,_uniffi_out_err: RustCallStatus,
+ ): RustBuffer.ByValue
+ fun uniffi_pubkycore_fn_func_start_cookie_auth_flow(`capabilitiesStr`: RustBuffer.ByValue,_uniffi_out_err: RustCallStatus,
+ ): RustBuffer.ByValue
+ fun uniffi_pubkycore_fn_func_start_grant_auth_flow(`capabilitiesStr`: RustBuffer.ByValue,`clientId`: RustBuffer.ByValue,_uniffi_out_err: RustCallStatus,
): RustBuffer.ByValue
fun uniffi_pubkycore_fn_func_switch_network(`useTestnet`: Byte,_uniffi_out_err: RustCallStatus,
): RustBuffer.ByValue
@@ -582,6 +600,10 @@ internal interface _UniFFILib : Library {
): Short
fun uniffi_pubkycore_checksum_func_await_auth_approval(
): Short
+ fun uniffi_pubkycore_checksum_func_await_cookie_auth_approval(
+ ): Short
+ fun uniffi_pubkycore_checksum_func_await_grant_auth_approval(
+ ): Short
fun uniffi_pubkycore_checksum_func_create_recovery_file(
): Short
fun uniffi_pubkycore_checksum_func_create_tag_id(
@@ -616,6 +638,8 @@ internal interface _UniFFILib : Library {
): Short
fun uniffi_pubkycore_checksum_func_parse_auth_url(
): Short
+ fun uniffi_pubkycore_checksum_func_parse_deep_link(
+ ): Short
fun uniffi_pubkycore_checksum_func_publish(
): Short
fun uniffi_pubkycore_checksum_func_publish_https(
@@ -642,12 +666,24 @@ internal interface _UniFFILib : Library {
): Short
fun uniffi_pubkycore_checksum_func_sign_in(
): Short
+ fun uniffi_pubkycore_checksum_func_sign_in_cookie(
+ ): Short
+ fun uniffi_pubkycore_checksum_func_sign_in_grant(
+ ): Short
fun uniffi_pubkycore_checksum_func_sign_out(
): Short
fun uniffi_pubkycore_checksum_func_sign_up(
): Short
+ fun uniffi_pubkycore_checksum_func_sign_up_cookie(
+ ): Short
+ fun uniffi_pubkycore_checksum_func_sign_up_grant(
+ ): Short
fun uniffi_pubkycore_checksum_func_start_auth_flow(
): Short
+ fun uniffi_pubkycore_checksum_func_start_cookie_auth_flow(
+ ): Short
+ fun uniffi_pubkycore_checksum_func_start_grant_auth_flow(
+ ): Short
fun uniffi_pubkycore_checksum_func_switch_network(
): Short
fun uniffi_pubkycore_checksum_func_validate_mnemonic_phrase(
@@ -677,6 +713,12 @@ private fun uniffiCheckApiChecksums(lib: _UniFFILib) {
if (lib.uniffi_pubkycore_checksum_func_await_auth_approval() != 56488.toShort()) {
throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
}
+ if (lib.uniffi_pubkycore_checksum_func_await_cookie_auth_approval() != 44552.toShort()) {
+ throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
+ }
+ if (lib.uniffi_pubkycore_checksum_func_await_grant_auth_approval() != 15252.toShort()) {
+ throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
+ }
if (lib.uniffi_pubkycore_checksum_func_create_recovery_file() != 48846.toShort()) {
throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
}
@@ -686,7 +728,7 @@ private fun uniffiCheckApiChecksums(lib: _UniFFILib) {
if (lib.uniffi_pubkycore_checksum_func_decrypt_recovery_file() != 26407.toShort()) {
throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
}
- if (lib.uniffi_pubkycore_checksum_func_delete_file() != 47931.toShort()) {
+ if (lib.uniffi_pubkycore_checksum_func_delete_file() != 43485.toShort()) {
throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
}
if (lib.uniffi_pubkycore_checksum_func_delete_with_session() != 26332.toShort()) {
@@ -728,16 +770,19 @@ private fun uniffiCheckApiChecksums(lib: _UniFFILib) {
if (lib.uniffi_pubkycore_checksum_func_parse_auth_url() != 27379.toShort()) {
throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
}
+ if (lib.uniffi_pubkycore_checksum_func_parse_deep_link() != 29971.toShort()) {
+ throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
+ }
if (lib.uniffi_pubkycore_checksum_func_publish() != 48989.toShort()) {
throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
}
if (lib.uniffi_pubkycore_checksum_func_publish_https() != 5614.toShort()) {
throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
}
- if (lib.uniffi_pubkycore_checksum_func_put() != 64514.toShort()) {
+ if (lib.uniffi_pubkycore_checksum_func_put() != 32173.toShort()) {
throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
}
- if (lib.uniffi_pubkycore_checksum_func_put_bytes() != 16335.toShort()) {
+ if (lib.uniffi_pubkycore_checksum_func_put_bytes() != 47888.toShort()) {
throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
}
if (lib.uniffi_pubkycore_checksum_func_put_bytes_with_session() != 50346.toShort()) {
@@ -764,16 +809,34 @@ private fun uniffiCheckApiChecksums(lib: _UniFFILib) {
if (lib.uniffi_pubkycore_checksum_func_set_event_listener() != 60071.toShort()) {
throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
}
- if (lib.uniffi_pubkycore_checksum_func_sign_in() != 21584.toShort()) {
+ if (lib.uniffi_pubkycore_checksum_func_sign_in() != 23529.toShort()) {
+ throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
+ }
+ if (lib.uniffi_pubkycore_checksum_func_sign_in_cookie() != 28058.toShort()) {
+ throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
+ }
+ if (lib.uniffi_pubkycore_checksum_func_sign_in_grant() != 49219.toShort()) {
throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
}
if (lib.uniffi_pubkycore_checksum_func_sign_out() != 27163.toShort()) {
throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
}
- if (lib.uniffi_pubkycore_checksum_func_sign_up() != 48789.toShort()) {
+ if (lib.uniffi_pubkycore_checksum_func_sign_up() != 6399.toShort()) {
+ throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
+ }
+ if (lib.uniffi_pubkycore_checksum_func_sign_up_cookie() != 55185.toShort()) {
+ throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
+ }
+ if (lib.uniffi_pubkycore_checksum_func_sign_up_grant() != 65298.toShort()) {
+ throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
+ }
+ if (lib.uniffi_pubkycore_checksum_func_start_auth_flow() != 45230.toShort()) {
throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
}
- if (lib.uniffi_pubkycore_checksum_func_start_auth_flow() != 25681.toShort()) {
+ if (lib.uniffi_pubkycore_checksum_func_start_cookie_auth_flow() != 49536.toShort()) {
+ throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
+ }
+ if (lib.uniffi_pubkycore_checksum_func_start_grant_auth_flow() != 48937.toShort()) {
throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
}
if (lib.uniffi_pubkycore_checksum_func_switch_network() != 64215.toShort()) {
@@ -1408,6 +1471,22 @@ fun `awaitAuthApproval`(): List {
}
+fun `awaitCookieAuthApproval`(): List {
+ return FfiConverterSequenceString.lift(
+ rustCall() { _status ->
+ _UniFFILib.INSTANCE.uniffi_pubkycore_fn_func_await_cookie_auth_approval(_status)
+})
+}
+
+
+fun `awaitGrantAuthApproval`(): List {
+ return FfiConverterSequenceString.lift(
+ rustCall() { _status ->
+ _UniFFILib.INSTANCE.uniffi_pubkycore_fn_func_await_grant_auth_approval(_status)
+})
+}
+
+
fun `createRecoveryFile`(`secretKey`: String, `passphrase`: String): List {
return FfiConverterSequenceString.lift(
rustCall() { _status ->
@@ -1432,10 +1511,10 @@ fun `decryptRecoveryFile`(`recoveryFile`: String, `passphrase`: String): List {
+fun `deleteFile`(`url`: String, `secretKey`: String, `clientId`: String): List {
return FfiConverterSequenceString.lift(
rustCall() { _status ->
- _UniFFILib.INSTANCE.uniffi_pubkycore_fn_func_delete_file(FfiConverterString.lower(`url`),FfiConverterString.lower(`secretKey`),_status)
+ _UniFFILib.INSTANCE.uniffi_pubkycore_fn_func_delete_file(FfiConverterString.lower(`url`),FfiConverterString.lower(`secretKey`),FfiConverterString.lower(`clientId`),_status)
})
}
@@ -1544,6 +1623,14 @@ fun `parseAuthUrl`(`url`: String): List {
}
+fun `parseDeepLink`(`url`: String): List {
+ return FfiConverterSequenceString.lift(
+ rustCall() { _status ->
+ _UniFFILib.INSTANCE.uniffi_pubkycore_fn_func_parse_deep_link(FfiConverterString.lower(`url`),_status)
+})
+}
+
+
fun `publish`(`recordName`: String, `recordContent`: String, `secretKey`: String): List {
return FfiConverterSequenceString.lift(
rustCall() { _status ->
@@ -1560,18 +1647,18 @@ fun `publishHttps`(`recordName`: String, `target`: String, `secretKey`: String):
}
-fun `put`(`url`: String, `content`: String, `secretKey`: String): List {
+fun `put`(`url`: String, `content`: String, `secretKey`: String, `clientId`: String): List {
return FfiConverterSequenceString.lift(
rustCall() { _status ->
- _UniFFILib.INSTANCE.uniffi_pubkycore_fn_func_put(FfiConverterString.lower(`url`),FfiConverterString.lower(`content`),FfiConverterString.lower(`secretKey`),_status)
+ _UniFFILib.INSTANCE.uniffi_pubkycore_fn_func_put(FfiConverterString.lower(`url`),FfiConverterString.lower(`content`),FfiConverterString.lower(`secretKey`),FfiConverterString.lower(`clientId`),_status)
})
}
-fun `putBytes`(`url`: String, `content`: ByteArray, `secretKey`: String): List {
+fun `putBytes`(`url`: String, `content`: ByteArray, `secretKey`: String, `clientId`: String): List {
return FfiConverterSequenceString.lift(
rustCall() { _status ->
- _UniFFILib.INSTANCE.uniffi_pubkycore_fn_func_put_bytes(FfiConverterString.lower(`url`),FfiConverterByteArray.lower(`content`),FfiConverterString.lower(`secretKey`),_status)
+ _UniFFILib.INSTANCE.uniffi_pubkycore_fn_func_put_bytes(FfiConverterString.lower(`url`),FfiConverterByteArray.lower(`content`),FfiConverterString.lower(`secretKey`),FfiConverterString.lower(`clientId`),_status)
})
}
@@ -1640,10 +1727,26 @@ fun `setEventListener`(`listener`: EventListener) =
-fun `signIn`(`secretKey`: String): List {
+fun `signIn`(`secretKey`: String, `clientId`: String): List {
return FfiConverterSequenceString.lift(
rustCall() { _status ->
- _UniFFILib.INSTANCE.uniffi_pubkycore_fn_func_sign_in(FfiConverterString.lower(`secretKey`),_status)
+ _UniFFILib.INSTANCE.uniffi_pubkycore_fn_func_sign_in(FfiConverterString.lower(`secretKey`),FfiConverterString.lower(`clientId`),_status)
+})
+}
+
+
+fun `signInCookie`(`secretKey`: String): List {
+ return FfiConverterSequenceString.lift(
+ rustCall() { _status ->
+ _UniFFILib.INSTANCE.uniffi_pubkycore_fn_func_sign_in_cookie(FfiConverterString.lower(`secretKey`),_status)
+})
+}
+
+
+fun `signInGrant`(`secretKey`: String, `clientId`: String): List {
+ return FfiConverterSequenceString.lift(
+ rustCall() { _status ->
+ _UniFFILib.INSTANCE.uniffi_pubkycore_fn_func_sign_in_grant(FfiConverterString.lower(`secretKey`),FfiConverterString.lower(`clientId`),_status)
})
}
@@ -1656,18 +1759,50 @@ fun `signOut`(`sessionSecret`: String): List {
}
-fun `signUp`(`secretKey`: String, `homeserver`: String, `signupToken`: String?): List {
+fun `signUp`(`secretKey`: String, `homeserver`: String, `signupToken`: String?, `clientId`: String): List {
+ return FfiConverterSequenceString.lift(
+ rustCall() { _status ->
+ _UniFFILib.INSTANCE.uniffi_pubkycore_fn_func_sign_up(FfiConverterString.lower(`secretKey`),FfiConverterString.lower(`homeserver`),FfiConverterOptionalString.lower(`signupToken`),FfiConverterString.lower(`clientId`),_status)
+})
+}
+
+
+fun `signUpCookie`(`secretKey`: String, `homeserver`: String, `signupToken`: String?): List {
+ return FfiConverterSequenceString.lift(
+ rustCall() { _status ->
+ _UniFFILib.INSTANCE.uniffi_pubkycore_fn_func_sign_up_cookie(FfiConverterString.lower(`secretKey`),FfiConverterString.lower(`homeserver`),FfiConverterOptionalString.lower(`signupToken`),_status)
+})
+}
+
+
+fun `signUpGrant`(`secretKey`: String, `homeserver`: String, `signupToken`: String?, `clientId`: String): List {
+ return FfiConverterSequenceString.lift(
+ rustCall() { _status ->
+ _UniFFILib.INSTANCE.uniffi_pubkycore_fn_func_sign_up_grant(FfiConverterString.lower(`secretKey`),FfiConverterString.lower(`homeserver`),FfiConverterOptionalString.lower(`signupToken`),FfiConverterString.lower(`clientId`),_status)
+})
+}
+
+
+fun `startAuthFlow`(`capabilitiesStr`: String, `clientId`: String): List {
+ return FfiConverterSequenceString.lift(
+ rustCall() { _status ->
+ _UniFFILib.INSTANCE.uniffi_pubkycore_fn_func_start_auth_flow(FfiConverterString.lower(`capabilitiesStr`),FfiConverterString.lower(`clientId`),_status)
+})
+}
+
+
+fun `startCookieAuthFlow`(`capabilitiesStr`: String): List {
return FfiConverterSequenceString.lift(
rustCall() { _status ->
- _UniFFILib.INSTANCE.uniffi_pubkycore_fn_func_sign_up(FfiConverterString.lower(`secretKey`),FfiConverterString.lower(`homeserver`),FfiConverterOptionalString.lower(`signupToken`),_status)
+ _UniFFILib.INSTANCE.uniffi_pubkycore_fn_func_start_cookie_auth_flow(FfiConverterString.lower(`capabilitiesStr`),_status)
})
}
-fun `startAuthFlow`(`capabilitiesStr`: String): List {
+fun `startGrantAuthFlow`(`capabilitiesStr`: String, `clientId`: String): List {
return FfiConverterSequenceString.lift(
rustCall() { _status ->
- _UniFFILib.INSTANCE.uniffi_pubkycore_fn_func_start_auth_flow(FfiConverterString.lower(`capabilitiesStr`),_status)
+ _UniFFILib.INSTANCE.uniffi_pubkycore_fn_func_start_grant_auth_flow(FfiConverterString.lower(`capabilitiesStr`),FfiConverterString.lower(`clientId`),_status)
})
}