@tokamakdev/plugin-local-authentication 0.1.0-beta.127 → 0.1.0-beta.128

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.
@@ -1,532 +0,0 @@
1
- // Generated by `tok bindings` from the iOS and macOS 26.2 SDKs: LocalAuthentication. Do not edit.
2
-
3
- import Foundation
4
- import LocalAuthentication
5
-
6
- #if hasAttribute(diagnose)
7
- @diagnose(DeprecatedDeclaration, as: ignored)
8
- #endif
9
- final class TokamakBindings_local_authentication: TokamakPlugin {
10
- let id = "local-authentication/apple"
11
- private let host: TokamakHost
12
-
13
- init(host: TokamakHost) { self.host = host }
14
-
15
- func callBytes(method: String, payload: Data, reply: @escaping TokamakPluginBytesReply)
16
- throws(TokamakPluginError) -> (() -> Void)?
17
- {
18
- let b = try TokamakBinding(payload, resources: host.resources, reply: reply)
19
- switch method {
20
- case "LAAuthenticationRequirement.biometry":
21
- guard #available(iOS 16.0, macOS 13.0, *) else { throw TokamakBinding.unavailable }
22
- return b.run { let value = LAAuthenticationRequirement.biometry; return b.encode(object: value) }
23
- case "LAAuthenticationRequirement.biometryCurrentSet":
24
- guard #available(iOS 16.0, macOS 13.0, *) else { throw TokamakBinding.unavailable }
25
- return b.run { let value = LAAuthenticationRequirement.biometryCurrentSet; return b.encode(object: value) }
26
- case "LAAuthenticationRequirement.default":
27
- guard #available(iOS 16.0, macOS 13.0, *) else { throw TokamakBinding.unavailable }
28
- return b.run { let value = LAAuthenticationRequirement.default; return b.encode(object: value) }
29
- case "LAAuthenticationRequirement.init()":
30
- guard #available(iOS 16.0, macOS 13.0, *) else { throw TokamakBinding.unavailable }
31
- return b.run { let value = LAAuthenticationRequirement(); return b.encode(object: value) }
32
- case "LABiometryFallbackRequirement.default":
33
- guard #available(iOS 16.0, macOS 13.0, *) else { throw TokamakBinding.unavailable }
34
- return b.run { let value = LABiometryFallbackRequirement.default; return b.encode(object: value) }
35
- case "LABiometryFallbackRequirement.devicePasscode":
36
- guard #available(iOS 16.0, macOS 13.0, *) else { throw TokamakBinding.unavailable }
37
- return b.run { let value = LABiometryFallbackRequirement.devicePasscode; return b.encode(object: value) }
38
- case "LABiometryFallbackRequirement.init()":
39
- guard #available(iOS 16.0, macOS 13.0, *) else { throw TokamakBinding.unavailable }
40
- return b.run { let value = LABiometryFallbackRequirement(); return b.encode(object: value) }
41
- case "LAContext.biometryType":
42
- guard #available(iOS 11.0, macOS 10.13.2, *) else { throw TokamakBinding.unavailable }
43
- return b.run { let value = try b.target(LAContext.self).biometryType; return TokamakBindings_local_authentication.encode(value, b) }
44
- case "LAContext.canEvaluatePolicy(_:error:)":
45
- guard #available(iOS 8.0, macOS 10.10, *) else { throw TokamakBinding.unavailable }
46
- return b.run { var error: NSError?; let value = try b.target(LAContext.self).canEvaluatePolicy(TokamakBindings_local_authentication.decode(b[0], b, as: LAPolicy.self), error: &error); if let error { throw error }; return b.encode(value) }
47
- case "LAContext.domainState":
48
- guard #available(iOS 18.0, macOS 15.0, *) else { throw TokamakBinding.unavailable }
49
- return b.run { let value = try b.target(LAContext.self).domainState; return b.encode(object: value) }
50
- case "LAContext.evaluatePolicy(_:localizedReason:)":
51
- guard #available(iOS 8.0, macOS 10.10, *) else { throw TokamakBinding.unavailable }
52
- return b.task { let value = try await b.target(LAContext.self).evaluatePolicy(TokamakBindings_local_authentication.decode(b[0], b, as: LAPolicy.self), localizedReason: b.decode(b[1], as: String.self)); return b.encode(value) }
53
- case "LAContext.evaluatedPolicyDomainState":
54
- guard #available(iOS 9.0, macOS 10.11, *) else { throw TokamakBinding.unavailable }
55
- return b.run { let value = try b.target(LAContext.self).evaluatedPolicyDomainState; return b.encode(optional: value) { b.encode($0) } }
56
- case "LAContext.interactionNotAllowed":
57
- guard #available(iOS 11.0, macOS 10.13, *) else { throw TokamakBinding.unavailable }
58
- return b.run { let value = try b.target(LAContext.self).interactionNotAllowed; return b.encode(value) }
59
- case "LAContext.interactionNotAllowed=":
60
- guard #available(iOS 11.0, macOS 10.13, *) else { throw TokamakBinding.unavailable }
61
- return b.run { try b.target(LAContext.self).interactionNotAllowed = b.decode(b[0], as: Bool.self); return nil }
62
- case "LAContext.invalidate()":
63
- guard #available(iOS 9.0, macOS 10.11, *) else { throw TokamakBinding.unavailable }
64
- return b.run { try b.target(LAContext.self).invalidate(); return nil }
65
- case "LAContext.isCredentialSet(_:)":
66
- guard #available(iOS 9.0, macOS 10.11, *) else { throw TokamakBinding.unavailable }
67
- return b.run { let value = try b.target(LAContext.self).isCredentialSet(TokamakBindings_local_authentication.decode(b[0], b, as: LACredentialType.self)); return b.encode(value) }
68
- case "LAContext.localizedCancelTitle":
69
- guard #available(iOS 10.0, macOS 10.12, *) else { throw TokamakBinding.unavailable }
70
- return b.run { let value = try b.target(LAContext.self).localizedCancelTitle; return b.encode(optional: value) { b.encode($0) } }
71
- case "LAContext.localizedCancelTitle=":
72
- guard #available(iOS 10.0, macOS 10.12, *) else { throw TokamakBinding.unavailable }
73
- return b.run { try b.target(LAContext.self).localizedCancelTitle = b.optional(b[0]) { try b.decode($0, as: String.self) }; return nil }
74
- case "LAContext.localizedFallbackTitle":
75
- guard #available(iOS 8.0, macOS 10.10, *) else { throw TokamakBinding.unavailable }
76
- return b.run { let value = try b.target(LAContext.self).localizedFallbackTitle; return b.encode(optional: value) { b.encode($0) } }
77
- case "LAContext.localizedFallbackTitle=":
78
- guard #available(iOS 8.0, macOS 10.10, *) else { throw TokamakBinding.unavailable }
79
- return b.run { try b.target(LAContext.self).localizedFallbackTitle = b.optional(b[0]) { try b.decode($0, as: String.self) }; return nil }
80
- case "LAContext.localizedReason":
81
- guard #available(iOS 11.0, macOS 10.13, *) else { throw TokamakBinding.unavailable }
82
- return b.run { let value = try b.target(LAContext.self).localizedReason; return b.encode(value) }
83
- case "LAContext.localizedReason=":
84
- guard #available(iOS 11.0, macOS 10.13, *) else { throw TokamakBinding.unavailable }
85
- return b.run { try b.target(LAContext.self).localizedReason = b.decode(b[0], as: String.self); return nil }
86
- case "LAContext.maxBiometryFailures":
87
- guard #available(iOS 8.3, macOS 10.10.3, *) else { throw TokamakBinding.unavailable }
88
- return b.run { let value = try b.target(LAContext.self).maxBiometryFailures; return b.encode(optional: value) { b.encode($0) } }
89
- case "LAContext.maxBiometryFailures=":
90
- guard #available(iOS 8.3, macOS 10.10.3, *) else { throw TokamakBinding.unavailable }
91
- return b.run { try b.target(LAContext.self).maxBiometryFailures = b.optional(b[0]) { try b.decode($0, as: NSNumber.self) }; return nil }
92
- case "LAContext.setCredential(_:type:)":
93
- guard #available(iOS 9.0, macOS 10.11, *) else { throw TokamakBinding.unavailable }
94
- return b.run { let value = try b.target(LAContext.self).setCredential(b.optional(b[0]) { try b.decode($0, as: Data.self) }, type: TokamakBindings_local_authentication.decode(b[1], b, as: LACredentialType.self)); return b.encode(value) }
95
- case "LAContext.touchIDAuthenticationAllowableReuseDuration":
96
- guard #available(iOS 9.0, macOS 10.12, *) else { throw TokamakBinding.unavailable }
97
- return b.run { let value = try b.target(LAContext.self).touchIDAuthenticationAllowableReuseDuration; return b.encode(value) }
98
- case "LAContext.touchIDAuthenticationAllowableReuseDuration=":
99
- guard #available(iOS 9.0, macOS 10.12, *) else { throw TokamakBinding.unavailable }
100
- return b.run { try b.target(LAContext.self).touchIDAuthenticationAllowableReuseDuration = b.decode(b[0], as: TimeInterval.self); return nil }
101
- case "LAContext.init()":
102
- guard #available(iOS 8.0, macOS 10.10, *) else { throw TokamakBinding.unavailable }
103
- return b.run { let value = LAContext(); return b.encode(object: value) }
104
- case "LADomainState.biometry":
105
- guard #available(iOS 18.0, macOS 15.0, *) else { throw TokamakBinding.unavailable }
106
- return b.run { let value = try b.target(LADomainState.self).biometry; return b.encode(object: value) }
107
- case "LADomainState.companion":
108
- guard #available(iOS 18.0, macOS 15.0, *) else { throw TokamakBinding.unavailable }
109
- return b.run { let value = try b.target(LADomainState.self).companion; return b.encode(object: value) }
110
- case "LADomainState.stateHash":
111
- guard #available(iOS 18.0, macOS 15.0, *) else { throw TokamakBinding.unavailable }
112
- return b.run { let value = try b.target(LADomainState.self).stateHash; return b.encode(optional: value) { b.encode($0) } }
113
- case "LADomainStateBiometry.biometryType":
114
- guard #available(iOS 18.0, macOS 15.0, *) else { throw TokamakBinding.unavailable }
115
- return b.run { let value = try b.target(LADomainStateBiometry.self).biometryType; return TokamakBindings_local_authentication.encode(value, b) }
116
- case "LADomainStateBiometry.stateHash":
117
- guard #available(iOS 18.0, macOS 15.0, *) else { throw TokamakBinding.unavailable }
118
- return b.run { let value = try b.target(LADomainStateBiometry.self).stateHash; return b.encode(optional: value) { b.encode($0) } }
119
- case "LADomainStateCompanion.availableCompanionTypes":
120
- guard #available(iOS 18.0, macOS 15.0, *) else { throw TokamakBinding.unavailable }
121
- return b.run { let value = try b.target(LADomainStateCompanion.self).availableCompanionTypes; return b.encode(array: value) { TokamakBindings_local_authentication.encode($0, b) } }
122
- case "LADomainStateCompanion.stateHash":
123
- guard #available(iOS 18.0, macOS 15.0, *) else { throw TokamakBinding.unavailable }
124
- return b.run { let value = try b.target(LADomainStateCompanion.self).stateHash; return b.encode(optional: value) { b.encode($0) } }
125
- case "LADomainStateCompanion.stateHash(for:)":
126
- guard #available(iOS 18.0, macOS 15.0, *) else { throw TokamakBinding.unavailable }
127
- return b.run { let value = try b.target(LADomainStateCompanion.self).stateHash(for: TokamakBindings_local_authentication.decode(b[0], b, as: LACompanionType.self)); return b.encode(optional: value) { b.encode($0) } }
128
- case "LAEnvironment.addObserver(_:)":
129
- guard #available(iOS 18.0, macOS 15.0, *) else { throw TokamakBinding.unavailable }
130
- return b.run { try b.target(LAEnvironment.self).addObserver(b.object(b[0], as: (any LAEnvironment.Observer).self)); return nil }
131
- case "LAEnvironment.currentUser":
132
- guard #available(iOS 18.0, macOS 15.0, *) else { throw TokamakBinding.unavailable }
133
- return b.run { let value = LAEnvironment.currentUser; return b.encode(object: value) }
134
- case "LAEnvironment.removeObserver(_:)":
135
- guard #available(iOS 18.0, macOS 15.0, *) else { throw TokamakBinding.unavailable }
136
- return b.run { try b.target(LAEnvironment.self).removeObserver(b.object(b[0], as: (any LAEnvironment.Observer).self)); return nil }
137
- case "LAEnvironment.state":
138
- guard #available(iOS 18.0, macOS 15.0, *) else { throw TokamakBinding.unavailable }
139
- return b.run { let value = try b.target(LAEnvironment.self).state; return b.encode(object: value) }
140
- case "LAEnvironment.Mechanism.iconSystemName":
141
- guard #available(iOS 18.0, macOS 15.0, *) else { throw TokamakBinding.unavailable }
142
- return b.run { let value = try b.target(LAEnvironment.Mechanism.self).iconSystemName; return b.encode(value) }
143
- case "LAEnvironment.Mechanism.isUsable":
144
- guard #available(iOS 18.0, macOS 15.0, *) else { throw TokamakBinding.unavailable }
145
- return b.run { let value = try b.target(LAEnvironment.Mechanism.self).isUsable; return b.encode(value) }
146
- case "LAEnvironment.Mechanism.localizedName":
147
- guard #available(iOS 18.0, macOS 15.0, *) else { throw TokamakBinding.unavailable }
148
- return b.run { let value = try b.target(LAEnvironment.Mechanism.self).localizedName; return b.encode(value) }
149
- case "LAEnvironment.MechanismBiometry.biometryType":
150
- guard #available(iOS 18.0, macOS 15.0, *) else { throw TokamakBinding.unavailable }
151
- return b.run { let value = try b.target(LAEnvironment.MechanismBiometry.self).biometryType; return TokamakBindings_local_authentication.encode(value, b) }
152
- case "LAEnvironment.MechanismBiometry.builtInSensorInaccessible":
153
- guard #available(iOS 18.0, macOS 15.0, *) else { throw TokamakBinding.unavailable }
154
- return b.run { let value = try b.target(LAEnvironment.MechanismBiometry.self).builtInSensorInaccessible; return b.encode(value) }
155
- case "LAEnvironment.MechanismBiometry.isEnrolled":
156
- guard #available(iOS 18.0, macOS 15.0, *) else { throw TokamakBinding.unavailable }
157
- return b.run { let value = try b.target(LAEnvironment.MechanismBiometry.self).isEnrolled; return b.encode(value) }
158
- case "LAEnvironment.MechanismBiometry.isLockedOut":
159
- guard #available(iOS 18.0, macOS 15.0, *) else { throw TokamakBinding.unavailable }
160
- return b.run { let value = try b.target(LAEnvironment.MechanismBiometry.self).isLockedOut; return b.encode(value) }
161
- case "LAEnvironment.MechanismBiometry.stateHash":
162
- guard #available(iOS 18.0, macOS 15.0, *) else { throw TokamakBinding.unavailable }
163
- return b.run { let value = try b.target(LAEnvironment.MechanismBiometry.self).stateHash; return b.encode(value) }
164
- case "LAEnvironment.MechanismCompanion.stateHash":
165
- guard #available(iOS 18.0, macOS 15.0, *) else { throw TokamakBinding.unavailable }
166
- return b.run { let value = try b.target(LAEnvironment.MechanismCompanion.self).stateHash; return b.encode(optional: value) { b.encode($0) } }
167
- case "LAEnvironment.MechanismCompanion.type":
168
- guard #available(iOS 18.0, macOS 15.0, *) else { throw TokamakBinding.unavailable }
169
- return b.run { let value = try b.target(LAEnvironment.MechanismCompanion.self).type; return TokamakBindings_local_authentication.encode(value, b) }
170
- case "LAEnvironment.MechanismUserPassword.isSet":
171
- guard #available(iOS 18.0, macOS 15.0, *) else { throw TokamakBinding.unavailable }
172
- return b.run { let value = try b.target(LAEnvironment.MechanismUserPassword.self).isSet; return b.encode(value) }
173
- case "LAEnvironment.State.allMechanisms":
174
- guard #available(iOS 18.0, macOS 15.0, *) else { throw TokamakBinding.unavailable }
175
- return b.run { let value = try b.target(LAEnvironment.State.self).allMechanisms; return b.encode(array: value) { b.encode(object: $0) } }
176
- case "LAEnvironment.State.biometry":
177
- guard #available(iOS 18.0, macOS 15.0, *) else { throw TokamakBinding.unavailable }
178
- return b.run { let value = try b.target(LAEnvironment.State.self).biometry; return b.encode(optional: value) { b.encode(object: $0) } }
179
- case "LAEnvironment.State.companions":
180
- guard #available(iOS 18.0, macOS 15.0, *) else { throw TokamakBinding.unavailable }
181
- return b.run { let value = try b.target(LAEnvironment.State.self).companions; return b.encode(array: value) { b.encode(object: $0) } }
182
- case "LAEnvironment.State.userPassword":
183
- guard #available(iOS 18.0, macOS 15.0, *) else { throw TokamakBinding.unavailable }
184
- return b.run { let value = try b.target(LAEnvironment.State.self).userPassword; return b.encode(optional: value) { b.encode(object: $0) } }
185
- case "LAPersistedRight.key":
186
- guard #available(iOS 16.0, macOS 13.0, *) else { throw TokamakBinding.unavailable }
187
- return b.run { let value = try b.target(LAPersistedRight.self).key; return b.encode(object: value) }
188
- case "LAPersistedRight.secret":
189
- guard #available(iOS 16.0, macOS 13.0, *) else { throw TokamakBinding.unavailable }
190
- return b.run { let value = try b.target(LAPersistedRight.self).secret; return b.encode(object: value) }
191
- case "LAPrivateKey.publicKey":
192
- guard #available(iOS 16.0, macOS 13.0, *) else { throw TokamakBinding.unavailable }
193
- return b.run { let value = try b.target(LAPrivateKey.self).publicKey; return b.encode(object: value) }
194
- case "LAPublicKey.bytes":
195
- guard #available(iOS 16.0, macOS 13.0, *) else { throw TokamakBinding.unavailable }
196
- return b.task { let value = try await b.target(LAPublicKey.self).bytes; return b.encode(value) }
197
- case "LARight.authorize(localizedReason:)":
198
- guard #available(iOS 16.0, macOS 13.0, *) else { throw TokamakBinding.unavailable }
199
- return b.task { try await b.target(LARight.self).authorize(localizedReason: b.decode(b[0], as: String.self)); return nil }
200
- case "LARight.checkCanAuthorize()":
201
- guard #available(iOS 16.0, macOS 13.0, *) else { throw TokamakBinding.unavailable }
202
- return b.task { try await b.target(LARight.self).checkCanAuthorize(); return nil }
203
- case "LARight.deauthorize()":
204
- guard #available(iOS 16.0, macOS 13.0, *) else { throw TokamakBinding.unavailable }
205
- return b.task { try await b.target(LARight.self).deauthorize(); return nil }
206
- case "LARight.init()":
207
- guard #available(iOS 16.0, macOS 13.0, *) else { throw TokamakBinding.unavailable }
208
- return b.run { let value = LARight(); return b.encode(object: value) }
209
- case "LARight.init(requirement:)":
210
- guard #available(iOS 16.0, macOS 13.0, *) else { throw TokamakBinding.unavailable }
211
- return b.run { let value = try LARight(requirement: b.object(b[0], as: LAAuthenticationRequirement.self)); return b.encode(object: value) }
212
- case "LARight.state":
213
- guard #available(iOS 16.0, macOS 13.0, *) else { throw TokamakBinding.unavailable }
214
- return b.run { let value = try b.target(LARight.self).state; return TokamakBindings_local_authentication.encode(value, b) }
215
- case "LARight.tag":
216
- guard #available(iOS 16.0, macOS 13.0, *) else { throw TokamakBinding.unavailable }
217
- return b.run { let value = try b.target(LARight.self).tag; return b.encode(value) }
218
- case "LARight.tag=":
219
- guard #available(iOS 16.0, macOS 13.0, *) else { throw TokamakBinding.unavailable }
220
- return b.run { try b.target(LARight.self).tag = b.decode(b[0], as: Int.self); return nil }
221
- case "LARightStore.removeAllRights()":
222
- guard #available(iOS 16.0, macOS 13.0, *) else { throw TokamakBinding.unavailable }
223
- return b.task { try await b.target(LARightStore.self).removeAllRights(); return nil }
224
- case "LARightStore.removeRight(_:)":
225
- guard #available(iOS 16.0, macOS 13.0, *) else { throw TokamakBinding.unavailable }
226
- return b.task { try await b.target(LARightStore.self).removeRight(b.object(b[0], as: LAPersistedRight.self)); return nil }
227
- case "LARightStore.removeRight(forIdentifier:)":
228
- guard #available(iOS 16.0, macOS 13.0, *) else { throw TokamakBinding.unavailable }
229
- return b.task { try await b.target(LARightStore.self).removeRight(forIdentifier: b.decode(b[0], as: String.self)); return nil }
230
- case "LARightStore.right(forIdentifier:)":
231
- guard #available(iOS 16.0, macOS 13.0, *) else { throw TokamakBinding.unavailable }
232
- return b.task { let value = try await b.target(LARightStore.self).right(forIdentifier: b.decode(b[0], as: String.self)); return b.encode(object: value) }
233
- case "LARightStore.saveRight(_:identifier:)":
234
- guard #available(iOS 16.0, macOS 13.0, *) else { throw TokamakBinding.unavailable }
235
- return b.task { let value = try await b.target(LARightStore.self).saveRight(b.object(b[0], as: LARight.self), identifier: b.decode(b[1], as: String.self)); return b.encode(object: value) }
236
- case "LARightStore.saveRight(_:identifier:secret:)":
237
- guard #available(iOS 16.0, macOS 13.0, *) else { throw TokamakBinding.unavailable }
238
- return b.task { let value = try await b.target(LARightStore.self).saveRight(b.object(b[0], as: LARight.self), identifier: b.decode(b[1], as: String.self), secret: b.decode(b[2], as: Data.self)); return b.encode(object: value) }
239
- case "LARightStore.shared":
240
- guard #available(iOS 16.0, macOS 13.0, *) else { throw TokamakBinding.unavailable }
241
- return b.run { let value = LARightStore.shared; return b.encode(object: value) }
242
- case "LASecret.rawData":
243
- guard #available(iOS 16.0, macOS 13.0, *) else { throw TokamakBinding.unavailable }
244
- return b.task { let value = try await b.target(LASecret.self).rawData; return b.encode(value) }
245
- case "LAErrorDomain":
246
- guard #available(iOS 8.3, macOS 10.11, *) else { throw TokamakBinding.unavailable }
247
- return b.run { let value = LAErrorDomain; return b.encode(value) }
248
- case "LATouchIDAuthenticationMaximumAllowableReuseDuration":
249
- guard #available(iOS 9.0, macOS 10.12, *) else { throw TokamakBinding.unavailable }
250
- return b.run { let value = LATouchIDAuthenticationMaximumAllowableReuseDuration; return b.encode(value) }
251
- case "kLAAccessControlOperationCreateItem":
252
- return b.run { let value = kLAAccessControlOperationCreateItem; return b.encode(value) }
253
- case "kLAAccessControlOperationCreateKey":
254
- return b.run { let value = kLAAccessControlOperationCreateKey; return b.encode(value) }
255
- case "kLAAccessControlOperationUseItem":
256
- return b.run { let value = kLAAccessControlOperationUseItem; return b.encode(value) }
257
- case "kLAAccessControlOperationUseKeyDecrypt":
258
- return b.run { let value = kLAAccessControlOperationUseKeyDecrypt; return b.encode(value) }
259
- case "kLAAccessControlOperationUseKeyKeyExchange":
260
- return b.run { let value = kLAAccessControlOperationUseKeyKeyExchange; return b.encode(value) }
261
- case "kLAAccessControlOperationUseKeySign":
262
- return b.run { let value = kLAAccessControlOperationUseKeySign; return b.encode(value) }
263
- case "kLABiometryTypeFaceID":
264
- return b.run { let value = kLABiometryTypeFaceID; return b.encode(value) }
265
- case "kLABiometryTypeNone":
266
- return b.run { let value = kLABiometryTypeNone; return b.encode(value) }
267
- case "kLABiometryTypeOpticID":
268
- return b.run { let value = kLABiometryTypeOpticID; return b.encode(value) }
269
- case "kLABiometryTypeTouchID":
270
- return b.run { let value = kLABiometryTypeTouchID; return b.encode(value) }
271
- case "kLACompanionTypeMac":
272
- return b.run { let value = kLACompanionTypeMac; return b.encode(value) }
273
- case "kLACompanionTypeNone":
274
- return b.run { let value = kLACompanionTypeNone; return b.encode(value) }
275
- case "kLACompanionTypeVision":
276
- return b.run { let value = kLACompanionTypeVision; return b.encode(value) }
277
- case "kLACompanionTypeWatch":
278
- return b.run { let value = kLACompanionTypeWatch; return b.encode(value) }
279
- case "kLACredentialSmartCardPIN":
280
- return b.run { let value = kLACredentialSmartCardPIN; return b.encode(value) }
281
- case "kLACredentialTypeApplicationPassword":
282
- return b.run { let value = kLACredentialTypeApplicationPassword; return b.encode(value) }
283
- case "kLAErrorAppCancel":
284
- return b.run { let value = kLAErrorAppCancel; return b.encode(value) }
285
- case "kLAErrorAuthenticationFailed":
286
- return b.run { let value = kLAErrorAuthenticationFailed; return b.encode(value) }
287
- case "kLAErrorBiometryDisconnected":
288
- return b.run { let value = kLAErrorBiometryDisconnected; return b.encode(value) }
289
- case "kLAErrorBiometryLockout":
290
- return b.run { let value = kLAErrorBiometryLockout; return b.encode(value) }
291
- case "kLAErrorBiometryNotAvailable":
292
- return b.run { let value = kLAErrorBiometryNotAvailable; return b.encode(value) }
293
- case "kLAErrorBiometryNotEnrolled":
294
- return b.run { let value = kLAErrorBiometryNotEnrolled; return b.encode(value) }
295
- case "kLAErrorBiometryNotPaired":
296
- return b.run { let value = kLAErrorBiometryNotPaired; return b.encode(value) }
297
- case "kLAErrorCompanionNotAvailable":
298
- return b.run { let value = kLAErrorCompanionNotAvailable; return b.encode(value) }
299
- case "kLAErrorDomain":
300
- return b.run { let value = kLAErrorDomain; return b.encode(value) }
301
- case "kLAErrorInvalidContext":
302
- return b.run { let value = kLAErrorInvalidContext; return b.encode(value) }
303
- case "kLAErrorInvalidDimensions":
304
- return b.run { let value = kLAErrorInvalidDimensions; return b.encode(value) }
305
- case "kLAErrorNotInteractive":
306
- return b.run { let value = kLAErrorNotInteractive; return b.encode(value) }
307
- case "kLAErrorPasscodeNotSet":
308
- return b.run { let value = kLAErrorPasscodeNotSet; return b.encode(value) }
309
- case "kLAErrorSystemCancel":
310
- return b.run { let value = kLAErrorSystemCancel; return b.encode(value) }
311
- case "kLAErrorTouchIDLockout":
312
- return b.run { let value = kLAErrorTouchIDLockout; return b.encode(value) }
313
- case "kLAErrorTouchIDNotAvailable":
314
- return b.run { let value = kLAErrorTouchIDNotAvailable; return b.encode(value) }
315
- case "kLAErrorTouchIDNotEnrolled":
316
- return b.run { let value = kLAErrorTouchIDNotEnrolled; return b.encode(value) }
317
- case "kLAErrorUserCancel":
318
- return b.run { let value = kLAErrorUserCancel; return b.encode(value) }
319
- case "kLAErrorUserFallback":
320
- return b.run { let value = kLAErrorUserFallback; return b.encode(value) }
321
- case "kLAErrorWatchNotAvailable":
322
- return b.run { let value = kLAErrorWatchNotAvailable; return b.encode(value) }
323
- case "kLAPolicyDeviceOwnerAuthentication":
324
- return b.run { let value = kLAPolicyDeviceOwnerAuthentication; return b.encode(value) }
325
- case "kLAPolicyDeviceOwnerAuthenticationWithBiometrics":
326
- return b.run { let value = kLAPolicyDeviceOwnerAuthenticationWithBiometrics; return b.encode(value) }
327
- case "kLAPolicyDeviceOwnerAuthenticationWithBiometricsOrCompanion":
328
- return b.run { let value = kLAPolicyDeviceOwnerAuthenticationWithBiometricsOrCompanion; return b.encode(value) }
329
- case "kLAPolicyDeviceOwnerAuthenticationWithBiometricsOrWatch":
330
- return b.run { let value = kLAPolicyDeviceOwnerAuthenticationWithBiometricsOrWatch; return b.encode(value) }
331
- case "kLAPolicyDeviceOwnerAuthenticationWithCompanion":
332
- return b.run { let value = kLAPolicyDeviceOwnerAuthenticationWithCompanion; return b.encode(value) }
333
- case "kLAPolicyDeviceOwnerAuthenticationWithWatch":
334
- return b.run { let value = kLAPolicyDeviceOwnerAuthenticationWithWatch; return b.encode(value) }
335
- case "kLAPolicyDeviceOwnerAuthenticationWithWristDetection":
336
- return b.run { let value = kLAPolicyDeviceOwnerAuthenticationWithWristDetection; return b.encode(value) }
337
- default:
338
- throw .notSupported("\(method) is not supported")
339
- }
340
- }
341
-
342
- func subscribeBytes(method: String, payload: Data, reply: @escaping TokamakPluginBytesReply)
343
- throws(TokamakPluginError) -> () -> Void
344
- {
345
- let b = try TokamakBinding(payload, resources: host.resources, reply: reply)
346
- switch method {
347
- case "LAEnvironment.Observer":
348
- guard #available(iOS 18.0, macOS 15.0, *) else { throw TokamakBinding.unavailable }
349
- return b.implement(LAEnvironment_ObserverImplementation.self)
350
- default:
351
- throw .notSupported("\(method) is not supported")
352
- }
353
- }
354
-
355
- @available(iOS 9.0, macOS 10.11, *)
356
- private static func encode(_ value: LAAccessControlOperation, _ b: TokamakBinding) -> Any {
357
- if value == .createItem { return "createItem" }
358
- if value == .createKey { return "createKey" }
359
- if value == .useItem { return "useItem" }
360
- if #available(iOS 10.0, macOS 10.12, *), value == .useKeyDecrypt { return "useKeyDecrypt" }
361
- if #available(iOS 10.0, macOS 10.12, *), value == .useKeyKeyExchange { return "useKeyKeyExchange" }
362
- if value == .useKeySign { return "useKeySign" }
363
- return "\(value)"
364
- }
365
-
366
- @available(iOS 9.0, macOS 10.11, *)
367
- private static func decode(_ value: Any, _ b: TokamakBinding, as type: LAAccessControlOperation.Type) throws -> LAAccessControlOperation {
368
- switch try b.decode(value, as: String.self) {
369
- case "createItem":
370
- return .createItem
371
- case "createKey":
372
- return .createKey
373
- case "useItem":
374
- return .useItem
375
- case "useKeyDecrypt":
376
- guard #available(iOS 10.0, macOS 10.12, *) else { throw TokamakBinding.unavailable }
377
- return .useKeyDecrypt
378
- case "useKeyKeyExchange":
379
- guard #available(iOS 10.0, macOS 10.12, *) else { throw TokamakBinding.unavailable }
380
- return .useKeyKeyExchange
381
- case "useKeySign":
382
- return .useKeySign
383
- default: throw b.mismatch(value, type)
384
- }
385
- }
386
-
387
- @available(iOS 11.0, macOS 10.13.2, *)
388
- private static func encode(_ value: LABiometryType, _ b: TokamakBinding) -> Any {
389
- if #available(macOS 10.15, *), value == .faceID { return "faceID" }
390
- if #available(iOS 11.2, *), value == .none { return "none" }
391
- if #available(iOS 17.0, macOS 14.0, *), value == .opticID { return "opticID" }
392
- if value == .touchID { return "touchID" }
393
- return "\(value)"
394
- }
395
-
396
- @available(iOS 11.0, macOS 10.13.2, *)
397
- private static func decode(_ value: Any, _ b: TokamakBinding, as type: LABiometryType.Type) throws -> LABiometryType {
398
- switch try b.decode(value, as: String.self) {
399
- case "faceID":
400
- guard #available(macOS 10.15, *) else { throw TokamakBinding.unavailable }
401
- return .faceID
402
- case "none":
403
- guard #available(iOS 11.2, *) else { throw TokamakBinding.unavailable }
404
- return .none
405
- case "opticID":
406
- guard #available(iOS 17.0, macOS 14.0, *) else { throw TokamakBinding.unavailable }
407
- return .opticID
408
- case "touchID":
409
- return .touchID
410
- default: throw b.mismatch(value, type)
411
- }
412
- }
413
-
414
- @available(iOS 18.0, macOS 15.0, *)
415
- private static func encode(_ value: LACompanionType, _ b: TokamakBinding) -> Any {
416
- #if os(iOS)
417
- if value == .mac { return "mac" }
418
- #endif
419
- #if os(iOS)
420
- if #available(iOS 26.0, *), value == .vision { return "vision" }
421
- #endif
422
- #if os(macOS)
423
- if value == .watch { return "watch" }
424
- #endif
425
- return "\(value)"
426
- }
427
-
428
- @available(iOS 18.0, macOS 15.0, *)
429
- private static func decode(_ value: Any, _ b: TokamakBinding, as type: LACompanionType.Type) throws -> LACompanionType {
430
- switch try b.decode(value, as: String.self) {
431
- #if os(iOS)
432
- case "mac":
433
- return .mac
434
- #endif
435
- #if os(iOS)
436
- case "vision":
437
- guard #available(iOS 26.0, *) else { throw TokamakBinding.unavailable }
438
- return .vision
439
- #endif
440
- #if os(macOS)
441
- case "watch":
442
- return .watch
443
- #endif
444
- default: throw b.mismatch(value, type)
445
- }
446
- }
447
-
448
- @available(iOS 9.0, macOS 10.11, *)
449
- private static func encode(_ value: LACredentialType, _ b: TokamakBinding) -> Any {
450
- if value == .applicationPassword { return "applicationPassword" }
451
- if #available(iOS 13.4, macOS 10.15.4, *), value == .smartCardPIN { return "smartCardPIN" }
452
- return "\(value)"
453
- }
454
-
455
- @available(iOS 9.0, macOS 10.11, *)
456
- private static func decode(_ value: Any, _ b: TokamakBinding, as type: LACredentialType.Type) throws -> LACredentialType {
457
- switch try b.decode(value, as: String.self) {
458
- case "applicationPassword":
459
- return .applicationPassword
460
- case "smartCardPIN":
461
- guard #available(iOS 13.4, macOS 10.15.4, *) else { throw TokamakBinding.unavailable }
462
- return .smartCardPIN
463
- default: throw b.mismatch(value, type)
464
- }
465
- }
466
-
467
- @available(iOS 18.0, macOS 15.0, *)
468
- private final class LAEnvironment_ObserverImplementation: TokamakBindingImplementation, LAEnvironment.Observer {
469
- override class var selectors: [Selector: String] {
470
- [
471
- NSSelectorFromString("environment:stateDidChangeFromOldState:"): "environmentStateDidChangeFromOldState",
472
- ]
473
- }
474
-
475
- @available(iOS 18.0, macOS 15.0, *)
476
- func environment(_ environment: LAEnvironment, stateDidChangeFromOldState oldState: LAEnvironment.State) {
477
- call("environmentStateDidChangeFromOldState") { b in [b.encode(object: environment), b.encode(object: oldState)] }
478
- }
479
- }
480
-
481
- @available(iOS 8.0, macOS 10.10, *)
482
- private static func encode(_ value: LAPolicy, _ b: TokamakBinding) -> Any {
483
- if #available(iOS 9.0, macOS 10.11, *), value == .deviceOwnerAuthentication { return "deviceOwnerAuthentication" }
484
- if #available(macOS 10.12.2, *), value == .deviceOwnerAuthenticationWithBiometrics { return "deviceOwnerAuthenticationWithBiometrics" }
485
- if #available(iOS 18.0, macOS 15.0, *), value == .deviceOwnerAuthenticationWithBiometricsOrCompanion { return "deviceOwnerAuthenticationWithBiometricsOrCompanion" }
486
- if #available(iOS 18.0, macOS 15.0, *), value == .deviceOwnerAuthenticationWithCompanion { return "deviceOwnerAuthenticationWithCompanion" }
487
- return "\(value)"
488
- }
489
-
490
- @available(iOS 8.0, macOS 10.10, *)
491
- private static func decode(_ value: Any, _ b: TokamakBinding, as type: LAPolicy.Type) throws -> LAPolicy {
492
- switch try b.decode(value, as: String.self) {
493
- case "deviceOwnerAuthentication":
494
- guard #available(iOS 9.0, macOS 10.11, *) else { throw TokamakBinding.unavailable }
495
- return .deviceOwnerAuthentication
496
- case "deviceOwnerAuthenticationWithBiometrics":
497
- guard #available(macOS 10.12.2, *) else { throw TokamakBinding.unavailable }
498
- return .deviceOwnerAuthenticationWithBiometrics
499
- case "deviceOwnerAuthenticationWithBiometricsOrCompanion":
500
- guard #available(iOS 18.0, macOS 15.0, *) else { throw TokamakBinding.unavailable }
501
- return .deviceOwnerAuthenticationWithBiometricsOrCompanion
502
- case "deviceOwnerAuthenticationWithCompanion":
503
- guard #available(iOS 18.0, macOS 15.0, *) else { throw TokamakBinding.unavailable }
504
- return .deviceOwnerAuthenticationWithCompanion
505
- default: throw b.mismatch(value, type)
506
- }
507
- }
508
-
509
- @available(iOS 16.0, macOS 13.0, *)
510
- private static func encode(_ value: LARight.State, _ b: TokamakBinding) -> Any {
511
- if value == .authorized { return "authorized" }
512
- if value == .authorizing { return "authorizing" }
513
- if value == .notAuthorized { return "notAuthorized" }
514
- if value == .unknown { return "unknown" }
515
- return "\(value)"
516
- }
517
-
518
- @available(iOS 16.0, macOS 13.0, *)
519
- private static func decode(_ value: Any, _ b: TokamakBinding, as type: LARight.State.Type) throws -> LARight.State {
520
- switch try b.decode(value, as: String.self) {
521
- case "authorized":
522
- return .authorized
523
- case "authorizing":
524
- return .authorizing
525
- case "notAuthorized":
526
- return .notAuthorized
527
- case "unknown":
528
- return .unknown
529
- default: throw b.mismatch(value, type)
530
- }
531
- }
532
- }