Skip to content

Commit ddcea95

Browse files
author
Isaac
committed
Update API [skip ci]
1 parent 6e6b5b5 commit ddcea95

File tree

4 files changed

+41
-20
lines changed

4 files changed

+41
-20
lines changed

submodules/TelegramApi/Sources/Api0.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -759,7 +759,7 @@ fileprivate let parsers: [Int32 : (BufferReader) -> Any?] = {
759759
dict[520887001] = { return Api.PaidReactionPrivacy.parse_paidReactionPrivacyAnonymous($0) }
760760
dict[543872158] = { return Api.PaidReactionPrivacy.parse_paidReactionPrivacyDefault($0) }
761761
dict[-596837136] = { return Api.PaidReactionPrivacy.parse_paidReactionPrivacyPeer($0) }
762-
dict[1047842022] = { return Api.Passkey.parse_passkey($0) }
762+
dict[-1738457409] = { return Api.Passkey.parse_passkey($0) }
763763
dict[982592842] = { return Api.PasswordKdfAlgo.parse_passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow($0) }
764764
dict[-732254058] = { return Api.PasswordKdfAlgo.parse_passwordKdfAlgoUnknown($0) }
765765
dict[-368917890] = { return Api.PaymentCharge.parse_paymentCharge($0) }

submodules/TelegramApi/Sources/Api19.swift

Lines changed: 23 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -398,40 +398,52 @@ public extension Api {
398398
}
399399
public extension Api {
400400
enum Passkey: TypeConstructorDescription {
401-
case passkey(id: String, name: String, date: Int32)
401+
case passkey(flags: Int32, id: String, name: String, date: Int32, softwareEmojiId: Int64?, lastUsageDate: Int32?)
402402

403403
public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) {
404404
switch self {
405-
case .passkey(let id, let name, let date):
405+
case .passkey(let flags, let id, let name, let date, let softwareEmojiId, let lastUsageDate):
406406
if boxed {
407-
buffer.appendInt32(1047842022)
407+
buffer.appendInt32(-1738457409)
408408
}
409+
serializeInt32(flags, buffer: buffer, boxed: false)
409410
serializeString(id, buffer: buffer, boxed: false)
410411
serializeString(name, buffer: buffer, boxed: false)
411412
serializeInt32(date, buffer: buffer, boxed: false)
413+
if Int(flags) & Int(1 << 0) != 0 {serializeInt64(softwareEmojiId!, buffer: buffer, boxed: false)}
414+
if Int(flags) & Int(1 << 1) != 0 {serializeInt32(lastUsageDate!, buffer: buffer, boxed: false)}
412415
break
413416
}
414417
}
415418

416419
public func descriptionFields() -> (String, [(String, Any)]) {
417420
switch self {
418-
case .passkey(let id, let name, let date):
419-
return ("passkey", [("id", id as Any), ("name", name as Any), ("date", date as Any)])
421+
case .passkey(let flags, let id, let name, let date, let softwareEmojiId, let lastUsageDate):
422+
return ("passkey", [("flags", flags as Any), ("id", id as Any), ("name", name as Any), ("date", date as Any), ("softwareEmojiId", softwareEmojiId as Any), ("lastUsageDate", lastUsageDate as Any)])
420423
}
421424
}
422425

423426
public static func parse_passkey(_ reader: BufferReader) -> Passkey? {
424-
var _1: String?
425-
_1 = parseString(reader)
427+
var _1: Int32?
428+
_1 = reader.readInt32()
426429
var _2: String?
427430
_2 = parseString(reader)
428-
var _3: Int32?
429-
_3 = reader.readInt32()
431+
var _3: String?
432+
_3 = parseString(reader)
433+
var _4: Int32?
434+
_4 = reader.readInt32()
435+
var _5: Int64?
436+
if Int(_1!) & Int(1 << 0) != 0 {_5 = reader.readInt64() }
437+
var _6: Int32?
438+
if Int(_1!) & Int(1 << 1) != 0 {_6 = reader.readInt32() }
430439
let _c1 = _1 != nil
431440
let _c2 = _2 != nil
432441
let _c3 = _3 != nil
433-
if _c1 && _c2 && _c3 {
434-
return Api.Passkey.passkey(id: _1!, name: _2!, date: _3!)
442+
let _c4 = _4 != nil
443+
let _c5 = (Int(_1!) & Int(1 << 0) == 0) || _5 != nil
444+
let _c6 = (Int(_1!) & Int(1 << 1) == 0) || _6 != nil
445+
if _c1 && _c2 && _c3 && _c4 && _c5 && _c6 {
446+
return Api.Passkey.passkey(flags: _1!, id: _2!, name: _3!, date: _4!, softwareEmojiId: _5, lastUsageDate: _6)
435447
}
436448
else {
437449
return nil

submodules/TelegramApi/Sources/Api39.swift

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1039,12 +1039,11 @@ public extension Api.functions.account {
10391039
}
10401040
}
10411041
public extension Api.functions.account {
1042-
static func registerPasskey(credential: Api.InputPasskeyCredential, name: String) -> (FunctionDescription, Buffer, DeserializeFunctionResponse<Api.Passkey>) {
1042+
static func registerPasskey(credential: Api.InputPasskeyCredential) -> (FunctionDescription, Buffer, DeserializeFunctionResponse<Api.Passkey>) {
10431043
let buffer = Buffer()
1044-
buffer.appendInt32(-810803168)
1044+
buffer.appendInt32(1437867990)
10451045
credential.serialize(buffer, true)
1046-
serializeString(name, buffer: buffer, boxed: false)
1047-
return (FunctionDescription(name: "account.registerPasskey", parameters: [("credential", String(describing: credential)), ("name", String(describing: name))]), buffer, DeserializeFunctionResponse { (buffer: Buffer) -> Api.Passkey? in
1046+
return (FunctionDescription(name: "account.registerPasskey", parameters: [("credential", String(describing: credential))]), buffer, DeserializeFunctionResponse { (buffer: Buffer) -> Api.Passkey? in
10481047
let reader = BufferReader(buffer)
10491048
var result: Api.Passkey?
10501049
if let signature = reader.readInt32() {

submodules/TelegramCore/Sources/Account/Account.swift

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -457,11 +457,15 @@ public final class TelegramPasskey: Equatable {
457457
public let id: String
458458
public let name: String
459459
public let date: Int32
460+
public let emojiId: Int64?
461+
public let lastUsageDate: Int32?
460462

461-
public init(id: String, name: String, date: Int32) {
463+
public init(id: String, name: String, date: Int32, emojiId: Int64?, lastUsageDate: Int32?) {
462464
self.id = id
463465
self.name = name
464466
self.date = date
467+
self.emojiId = emojiId
468+
self.lastUsageDate = lastUsageDate
465469
}
466470

467471
public static func ==(lhs: TelegramPasskey, rhs: TelegramPasskey) -> Bool {
@@ -474,15 +478,21 @@ public final class TelegramPasskey: Equatable {
474478
if lhs.date != rhs.date {
475479
return false
476480
}
481+
if lhs.emojiId != rhs.emojiId {
482+
return false
483+
}
484+
if lhs.lastUsageDate != rhs.lastUsageDate {
485+
return false
486+
}
477487
return true
478488
}
479489
}
480490

481491
extension TelegramPasskey {
482492
convenience init(apiPasskey: Api.Passkey) {
483493
switch apiPasskey {
484-
case let .passkey(id, name, date):
485-
self.init(id: id, name: name, date: date)
494+
case let .passkey(_, id, name, date, softwareEmojiId, lastUsageDate):
495+
self.init(id: id, name: name, date: date, emojiId: softwareEmojiId, lastUsageDate: lastUsageDate)
486496
}
487497
}
488498
}
@@ -527,7 +537,7 @@ func _internal_requestPasskeyRegistration(network: Network) -> Signal<String?, N
527537
}
528538

529539
func _internal_requestCreatePasskey(network: Network, id: String, clientData: String, attestationObject: Data) -> Signal<TelegramPasskey?, NoError> {
530-
return network.request(Api.functions.account.registerPasskey(credential: .inputPasskeyCredentialPublicKey(id: id, rawId: id, response: .inputPasskeyResponseRegister(clientData: .dataJSON(data: clientData), attestationData: Buffer(data: attestationObject))), name: "iCloud"))
540+
return network.request(Api.functions.account.registerPasskey(credential: .inputPasskeyCredentialPublicKey(id: id, rawId: id, response: .inputPasskeyResponseRegister(clientData: .dataJSON(data: clientData), attestationData: Buffer(data: attestationObject)))))
531541
|> map(Optional.init)
532542
|> `catch` { _ -> Signal<Api.Passkey?, NoError> in
533543
return .single(nil)

0 commit comments

Comments
 (0)