@effect-auth/core 0.1.0-alpha.2 → 0.1.0-alpha.4

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.
Files changed (149) hide show
  1. package/README.md +148 -13
  2. package/dist/ApiKey.d.ts +207 -0
  3. package/dist/ApiKey.d.ts.map +1 -0
  4. package/dist/ApiKey.js +275 -0
  5. package/dist/ApiKey.js.map +1 -0
  6. package/dist/AuditLog.d.ts +204 -1
  7. package/dist/AuditLog.d.ts.map +1 -1
  8. package/dist/AuditLog.js +170 -0
  9. package/dist/AuditLog.js.map +1 -1
  10. package/dist/AuthConfig.d.ts +0 -9
  11. package/dist/AuthConfig.d.ts.map +1 -1
  12. package/dist/AuthConfig.js +1 -14
  13. package/dist/AuthConfig.js.map +1 -1
  14. package/dist/AuthFlow.d.ts +220 -51
  15. package/dist/AuthFlow.d.ts.map +1 -1
  16. package/dist/AuthFlow.js +550 -22
  17. package/dist/AuthFlow.js.map +1 -1
  18. package/dist/AuthKernel.d.ts +1 -1
  19. package/dist/Challenge.d.ts +5 -1
  20. package/dist/Challenge.d.ts.map +1 -1
  21. package/dist/Challenge.js +58 -48
  22. package/dist/Challenge.js.map +1 -1
  23. package/dist/Client.d.ts +242 -1
  24. package/dist/Client.d.ts.map +1 -1
  25. package/dist/Client.js +489 -1
  26. package/dist/Client.js.map +1 -1
  27. package/dist/D1Kysely.d.ts +1 -1
  28. package/dist/D1Kysely.d.ts.map +1 -1
  29. package/dist/EffectQbSqliteStorage.d.ts +156 -41
  30. package/dist/EffectQbSqliteStorage.d.ts.map +1 -1
  31. package/dist/EffectQbSqliteStorage.js +336 -33
  32. package/dist/EffectQbSqliteStorage.js.map +1 -1
  33. package/dist/EmailOtp.d.ts +5 -2
  34. package/dist/EmailOtp.d.ts.map +1 -1
  35. package/dist/EmailOtp.js +11 -4
  36. package/dist/EmailOtp.js.map +1 -1
  37. package/dist/EmailVerification.d.ts +2 -2
  38. package/dist/EmailVerification.d.ts.map +1 -1
  39. package/dist/EmailVerification.js +2 -3
  40. package/dist/EmailVerification.js.map +1 -1
  41. package/dist/HttpApi/Api.d.ts +1161 -19
  42. package/dist/HttpApi/Api.d.ts.map +1 -1
  43. package/dist/HttpApi/Api.js +1433 -20
  44. package/dist/HttpApi/Api.js.map +1 -1
  45. package/dist/HttpApi/Endpoints.d.ts +611 -0
  46. package/dist/HttpApi/Endpoints.d.ts.map +1 -1
  47. package/dist/HttpApi/Endpoints.js +242 -1
  48. package/dist/HttpApi/Endpoints.js.map +1 -1
  49. package/dist/HttpApi/Schemas.d.ts +704 -0
  50. package/dist/HttpApi/Schemas.d.ts.map +1 -1
  51. package/dist/HttpApi/Schemas.js +435 -1
  52. package/dist/HttpApi/Schemas.js.map +1 -1
  53. package/dist/HttpApi/Security.d.ts +13 -1
  54. package/dist/HttpApi/Security.d.ts.map +1 -1
  55. package/dist/HttpApi/Security.js +107 -16
  56. package/dist/HttpApi/Security.js.map +1 -1
  57. package/dist/HttpApi/Transport.d.ts +36 -2
  58. package/dist/HttpApi/Transport.d.ts.map +1 -1
  59. package/dist/HttpApi/Transport.js +151 -9
  60. package/dist/HttpApi/Transport.js.map +1 -1
  61. package/dist/Jwt.d.ts +271 -0
  62. package/dist/Jwt.d.ts.map +1 -0
  63. package/dist/Jwt.js +512 -0
  64. package/dist/Jwt.js.map +1 -0
  65. package/dist/KyselyStorage.d.ts +134 -1
  66. package/dist/KyselyStorage.d.ts.map +1 -1
  67. package/dist/KyselyStorage.js +918 -4
  68. package/dist/KyselyStorage.js.map +1 -1
  69. package/dist/LoginApproval.d.ts +314 -0
  70. package/dist/LoginApproval.d.ts.map +1 -0
  71. package/dist/LoginApproval.js +551 -0
  72. package/dist/LoginApproval.js.map +1 -0
  73. package/dist/LoginNotification.d.ts +183 -0
  74. package/dist/LoginNotification.d.ts.map +1 -0
  75. package/dist/LoginNotification.js +329 -0
  76. package/dist/LoginNotification.js.map +1 -0
  77. package/dist/LoginRisk.d.ts +73 -0
  78. package/dist/LoginRisk.d.ts.map +1 -0
  79. package/dist/LoginRisk.js +57 -0
  80. package/dist/LoginRisk.js.map +1 -0
  81. package/dist/MagicLink.d.ts +85 -0
  82. package/dist/MagicLink.d.ts.map +1 -0
  83. package/dist/MagicLink.js +206 -0
  84. package/dist/MagicLink.js.map +1 -0
  85. package/dist/Mailer.d.ts +33 -2
  86. package/dist/Mailer.d.ts.map +1 -1
  87. package/dist/Mailer.js +107 -0
  88. package/dist/Mailer.js.map +1 -1
  89. package/dist/Passkey.d.ts +334 -0
  90. package/dist/Passkey.d.ts.map +1 -0
  91. package/dist/Passkey.js +422 -0
  92. package/dist/Passkey.js.map +1 -0
  93. package/dist/Password.d.ts +138 -8
  94. package/dist/Password.d.ts.map +1 -1
  95. package/dist/Password.js +397 -8
  96. package/dist/Password.js.map +1 -1
  97. package/dist/RecoveryCode.d.ts +169 -0
  98. package/dist/RecoveryCode.d.ts.map +1 -0
  99. package/dist/RecoveryCode.js +299 -0
  100. package/dist/RecoveryCode.js.map +1 -0
  101. package/dist/RefreshToken.d.ts +222 -0
  102. package/dist/RefreshToken.d.ts.map +1 -0
  103. package/dist/RefreshToken.js +342 -0
  104. package/dist/RefreshToken.js.map +1 -0
  105. package/dist/Sessions.d.ts +52 -2
  106. package/dist/Sessions.d.ts.map +1 -1
  107. package/dist/Sessions.js +123 -1
  108. package/dist/Sessions.js.map +1 -1
  109. package/dist/StepUp.d.ts +44 -0
  110. package/dist/StepUp.d.ts.map +1 -0
  111. package/dist/StepUp.js +82 -0
  112. package/dist/StepUp.js.map +1 -0
  113. package/dist/Storage.d.ts +14 -1
  114. package/dist/Storage.d.ts.map +1 -1
  115. package/dist/Storage.js.map +1 -1
  116. package/dist/StorageMigrations.d.ts +9 -1
  117. package/dist/StorageMigrations.d.ts.map +1 -1
  118. package/dist/StorageMigrations.js +159 -0
  119. package/dist/StorageMigrations.js.map +1 -1
  120. package/dist/Testing.d.ts +1 -1
  121. package/dist/Totp.d.ts +220 -0
  122. package/dist/Totp.d.ts.map +1 -0
  123. package/dist/Totp.js +477 -0
  124. package/dist/Totp.js.map +1 -0
  125. package/dist/TrustedDevice.d.ts +115 -0
  126. package/dist/TrustedDevice.d.ts.map +1 -0
  127. package/dist/TrustedDevice.js +222 -0
  128. package/dist/TrustedDevice.js.map +1 -0
  129. package/dist/alchemy/cloudflare/Email.d.ts +25 -0
  130. package/dist/alchemy/cloudflare/Email.d.ts.map +1 -0
  131. package/dist/alchemy/cloudflare/Email.js +117 -0
  132. package/dist/alchemy/cloudflare/Email.js.map +1 -0
  133. package/dist/cloudflare/Email.d.ts +25 -0
  134. package/dist/cloudflare/Email.d.ts.map +1 -0
  135. package/dist/cloudflare/Email.js +153 -0
  136. package/dist/cloudflare/Email.js.map +1 -0
  137. package/dist/index.d.ts +12 -0
  138. package/dist/index.d.ts.map +1 -1
  139. package/dist/index.js +12 -0
  140. package/dist/index.js.map +1 -1
  141. package/migrations/0003_auth_login_approval_review.sql +22 -0
  142. package/migrations/0004_auth_trusted_device.sql +12 -0
  143. package/migrations/0005_auth_passkey.sql +17 -0
  144. package/migrations/0006_auth_totp_factor.sql +17 -0
  145. package/migrations/0007_auth_recovery_code.sql +13 -0
  146. package/migrations/0008_auth_api_key.sql +17 -0
  147. package/migrations/0009_auth_refresh_token.sql +21 -0
  148. package/migrations/0010_auth_jwt_revocation.sql +8 -0
  149. package/package.json +57 -1
@@ -0,0 +1,334 @@
1
+ import { Brand, Context, Duration, Effect, Layer } from "effect";
2
+ import type * as OptionTypes from "effect/Option";
3
+ import { Challenge } from "./Challenge.js";
4
+ import type { ChallengeService } from "./Challenge.js";
5
+ import { Crypto } from "./Crypto.js";
6
+ import type { CryptoService } from "./Crypto.js";
7
+ import { CredentialId } from "./Identifiers.js";
8
+ import type { ChallengeId, UnixMillis, UserId } from "./Identifiers.js";
9
+ export type PasskeyCredentialId = Brand.Branded<string, "auth/PasskeyCredentialId">;
10
+ export declare const PasskeyCredentialId: Brand.Constructor<PasskeyCredentialId>;
11
+ export type PasskeyTransport = "ble" | "hybrid" | "internal" | "nfc" | "usb" | (string & {});
12
+ export type PasskeyUserVerification = "required" | "preferred" | "discouraged";
13
+ export type PasskeyAttestation = "none" | "indirect" | "direct" | "enterprise";
14
+ export type PasskeyAuthenticatorAttachment = "platform" | "cross-platform";
15
+ export type PasskeyResidentKey = "discouraged" | "preferred" | "required";
16
+ export declare const passkeyRegistrationChallengeType: "passkey-registration";
17
+ export declare const passkeyAuthenticationChallengeType: "passkey-authentication";
18
+ export declare const defaultPasskeyChallengeBytes = 32;
19
+ export declare const defaultPasskeyChallengeTtl: Duration.Duration;
20
+ export interface PasskeyCredentialRecord {
21
+ readonly id: CredentialId;
22
+ readonly userId: UserId;
23
+ readonly credentialId: PasskeyCredentialId;
24
+ readonly publicKey: string;
25
+ readonly signCount: number;
26
+ readonly transports?: readonly PasskeyTransport[];
27
+ readonly backedUp?: boolean;
28
+ readonly createdAt: UnixMillis;
29
+ readonly lastUsedAt?: UnixMillis;
30
+ readonly revokedAt?: UnixMillis;
31
+ readonly metadata?: Readonly<Record<string, unknown>>;
32
+ }
33
+ export interface PasskeyCredentialListByUserInput {
34
+ readonly userId: UserId;
35
+ readonly includeRevoked?: boolean;
36
+ }
37
+ export interface PasskeyCredentialUpdateSignCountInput {
38
+ readonly credentialId: PasskeyCredentialId;
39
+ readonly signCount: number;
40
+ readonly lastUsedAt: UnixMillis;
41
+ readonly metadata?: Readonly<Record<string, unknown>>;
42
+ }
43
+ export interface PasskeyCredentialRevokeInput {
44
+ readonly credentialId: PasskeyCredentialId;
45
+ readonly revokedAt: UnixMillis;
46
+ readonly reason?: string;
47
+ }
48
+ export type PasskeyCredentialStoreOperation = "insert" | "find" | "list" | "update-sign-count" | "revoke";
49
+ declare const PasskeyCredentialStoreError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
50
+ readonly _tag: "PasskeyCredentialStoreError";
51
+ } & Readonly<A>;
52
+ export declare class PasskeyCredentialStoreError extends PasskeyCredentialStoreError_base<{
53
+ readonly operation: PasskeyCredentialStoreOperation;
54
+ readonly message: string;
55
+ readonly cause?: unknown;
56
+ }> {
57
+ }
58
+ export interface PasskeyCredentialStoreService {
59
+ readonly insert: (row: PasskeyCredentialRecord) => Effect.Effect<void, PasskeyCredentialStoreError>;
60
+ readonly findByCredentialId: (credentialId: PasskeyCredentialId) => Effect.Effect<OptionTypes.Option<PasskeyCredentialRecord>, PasskeyCredentialStoreError>;
61
+ readonly listByUser: (input: PasskeyCredentialListByUserInput) => Effect.Effect<readonly PasskeyCredentialRecord[], PasskeyCredentialStoreError>;
62
+ readonly updateSignCount: (input: PasskeyCredentialUpdateSignCountInput) => Effect.Effect<OptionTypes.Option<PasskeyCredentialRecord>, PasskeyCredentialStoreError>;
63
+ readonly revoke: (input: PasskeyCredentialRevokeInput) => Effect.Effect<void, PasskeyCredentialStoreError>;
64
+ }
65
+ declare const PasskeyCredentialStore_base: Context.ServiceClass<PasskeyCredentialStore, "auth/PasskeyCredentialStore", PasskeyCredentialStoreService>;
66
+ export declare class PasskeyCredentialStore extends PasskeyCredentialStore_base {
67
+ }
68
+ export declare namespace PasskeyCredentialStore {
69
+ const make: (service: PasskeyCredentialStoreService) => PasskeyCredentialStoreService;
70
+ }
71
+ export declare const makePasskeyCredentialStoreMemory: () => PasskeyCredentialStoreService;
72
+ export declare const PasskeyCredentialStoreMemoryLive: Layer.Layer<PasskeyCredentialStore, never, never>;
73
+ export interface PasskeyCredentialInfo {
74
+ readonly credentialId: PasskeyCredentialId;
75
+ readonly transports?: readonly PasskeyTransport[];
76
+ readonly backedUp?: boolean;
77
+ readonly createdAt: UnixMillis;
78
+ readonly lastUsedAt?: UnixMillis;
79
+ readonly revokedAt?: UnixMillis;
80
+ readonly metadata?: Readonly<Record<string, unknown>>;
81
+ }
82
+ export interface PasskeyCredentialManagementListInput {
83
+ readonly userId: UserId;
84
+ readonly includeRevoked?: boolean;
85
+ }
86
+ export interface PasskeyCredentialManagementRevokeInput {
87
+ readonly userId: UserId;
88
+ readonly credentialId: PasskeyCredentialId;
89
+ readonly revokedAt?: UnixMillis;
90
+ readonly reason?: string;
91
+ }
92
+ export type PasskeyCredentialManagementOperation = "list" | "revoke";
93
+ declare const PasskeyCredentialManagementError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
94
+ readonly _tag: "PasskeyCredentialManagementError";
95
+ } & Readonly<A>;
96
+ export declare class PasskeyCredentialManagementError extends PasskeyCredentialManagementError_base<{
97
+ readonly operation: PasskeyCredentialManagementOperation;
98
+ readonly message: string;
99
+ readonly cause?: unknown;
100
+ }> {
101
+ }
102
+ export interface PasskeyCredentialManagementService {
103
+ readonly listForUser: (input: PasskeyCredentialManagementListInput) => Effect.Effect<readonly PasskeyCredentialInfo[], PasskeyCredentialManagementError>;
104
+ readonly revokeForUser: (input: PasskeyCredentialManagementRevokeInput) => Effect.Effect<void, PasskeyCredentialManagementError>;
105
+ }
106
+ declare const PasskeyCredentialManagement_base: Context.ServiceClass<PasskeyCredentialManagement, "auth/PasskeyCredentialManagement", PasskeyCredentialManagementService>;
107
+ export declare class PasskeyCredentialManagement extends PasskeyCredentialManagement_base {
108
+ }
109
+ export declare namespace PasskeyCredentialManagement {
110
+ const make: (service: PasskeyCredentialManagementService) => PasskeyCredentialManagementService;
111
+ }
112
+ export interface PasskeyCredentialManagementDependencies {
113
+ readonly credentialStore: PasskeyCredentialStoreService;
114
+ }
115
+ export declare const makePasskeyCredentialManagement: (dependencies: PasskeyCredentialManagementDependencies) => PasskeyCredentialManagementService;
116
+ export declare const PasskeyCredentialManagementLive: Layer.Layer<PasskeyCredentialManagement, never, PasskeyCredentialStore>;
117
+ export interface PasskeyRelyingParty {
118
+ readonly id: string;
119
+ readonly name: string;
120
+ }
121
+ export interface PasskeyCredentialDescriptor {
122
+ readonly type: "public-key";
123
+ readonly id: PasskeyCredentialId;
124
+ readonly transports?: readonly PasskeyTransport[];
125
+ }
126
+ export interface PasskeyPublicKeyCredentialParameters {
127
+ readonly type: "public-key";
128
+ readonly alg: number;
129
+ }
130
+ export interface PasskeyAuthenticatorSelection {
131
+ readonly authenticatorAttachment?: PasskeyAuthenticatorAttachment;
132
+ readonly residentKey?: PasskeyResidentKey;
133
+ readonly requireResidentKey?: boolean;
134
+ readonly userVerification?: PasskeyUserVerification;
135
+ }
136
+ export interface PasskeyRegistrationPublicKeyOptions {
137
+ readonly challenge: string;
138
+ readonly rp: PasskeyRelyingParty;
139
+ readonly user: {
140
+ readonly id: string;
141
+ readonly name: string;
142
+ readonly displayName: string;
143
+ };
144
+ readonly pubKeyCredParams: readonly PasskeyPublicKeyCredentialParameters[];
145
+ readonly timeout?: number;
146
+ readonly excludeCredentials?: readonly PasskeyCredentialDescriptor[];
147
+ readonly authenticatorSelection?: PasskeyAuthenticatorSelection;
148
+ readonly attestation?: PasskeyAttestation;
149
+ }
150
+ export interface PasskeyAuthenticationPublicKeyOptions {
151
+ readonly challenge: string;
152
+ readonly rpId: string;
153
+ readonly timeout?: number;
154
+ readonly allowCredentials?: readonly PasskeyCredentialDescriptor[];
155
+ readonly userVerification?: PasskeyUserVerification;
156
+ }
157
+ export interface PasskeyRegistrationStartInput {
158
+ readonly relyingParty: PasskeyRelyingParty;
159
+ readonly userId: UserId;
160
+ readonly userName: string;
161
+ readonly userDisplayName: string;
162
+ readonly ttl?: Duration.Duration;
163
+ readonly challengeBytes?: number;
164
+ readonly timeout?: number;
165
+ readonly pubKeyCredParams?: readonly PasskeyPublicKeyCredentialParameters[];
166
+ readonly excludeCredentials?: readonly PasskeyCredentialDescriptor[];
167
+ readonly authenticatorSelection?: PasskeyAuthenticatorSelection;
168
+ readonly attestation?: PasskeyAttestation;
169
+ readonly metadata?: Readonly<Record<string, unknown>>;
170
+ }
171
+ export interface PasskeyAuthenticationStartInput {
172
+ readonly relyingPartyId: string;
173
+ readonly userId?: UserId;
174
+ readonly ttl?: Duration.Duration;
175
+ readonly challengeBytes?: number;
176
+ readonly timeout?: number;
177
+ readonly allowCredentials?: readonly PasskeyCredentialDescriptor[];
178
+ readonly userVerification?: PasskeyUserVerification;
179
+ readonly metadata?: Readonly<Record<string, unknown>>;
180
+ }
181
+ export interface StartedPasskeyRegistration {
182
+ readonly challengeId: ChallengeId;
183
+ readonly expiresAt: UnixMillis;
184
+ readonly publicKey: PasskeyRegistrationPublicKeyOptions;
185
+ }
186
+ export interface StartedPasskeyAuthentication {
187
+ readonly challengeId: ChallengeId;
188
+ readonly expiresAt: UnixMillis;
189
+ readonly publicKey: PasskeyAuthenticationPublicKeyOptions;
190
+ }
191
+ export interface PasskeyClientCredentialJson {
192
+ readonly id: string;
193
+ readonly rawId?: string;
194
+ readonly type: "public-key";
195
+ readonly response: Readonly<Record<string, unknown>>;
196
+ readonly authenticatorAttachment?: string;
197
+ readonly clientExtensionResults?: Readonly<Record<string, unknown>>;
198
+ }
199
+ export interface PasskeyVerifierOptions {
200
+ readonly relyingPartyId: string;
201
+ readonly expectedOrigin: string | readonly string[];
202
+ readonly requireUserVerification?: boolean;
203
+ readonly metadata?: Readonly<Record<string, unknown>>;
204
+ }
205
+ export interface PasskeyVerifierRegistrationInput extends PasskeyVerifierOptions {
206
+ readonly userId: UserId;
207
+ readonly response: PasskeyClientCredentialJson;
208
+ }
209
+ export interface VerifiedPasskeyRegistration {
210
+ readonly challenge: string;
211
+ readonly credentialId: PasskeyCredentialId;
212
+ readonly publicKey: string;
213
+ readonly signCount: number;
214
+ readonly transports?: readonly PasskeyTransport[];
215
+ readonly backedUp?: boolean;
216
+ readonly metadata?: Readonly<Record<string, unknown>>;
217
+ }
218
+ export interface PasskeyVerifierAuthenticationCredentialIdInput {
219
+ readonly response: PasskeyClientCredentialJson;
220
+ }
221
+ export interface PasskeyVerifierAuthenticationInput extends PasskeyVerifierOptions {
222
+ readonly response: PasskeyClientCredentialJson;
223
+ readonly credential: PasskeyCredentialRecord;
224
+ }
225
+ export interface VerifiedPasskeyAuthentication {
226
+ readonly challenge: string;
227
+ readonly credentialId: PasskeyCredentialId;
228
+ readonly newSignCount: number;
229
+ readonly userVerified?: boolean;
230
+ readonly metadata?: Readonly<Record<string, unknown>>;
231
+ }
232
+ export type PasskeyVerifierOperation = "read-authentication-credential-id" | "verify-registration" | "verify-authentication";
233
+ declare const PasskeyVerifierError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
234
+ readonly _tag: "PasskeyVerifierError";
235
+ } & Readonly<A>;
236
+ export declare class PasskeyVerifierError extends PasskeyVerifierError_base<{
237
+ readonly operation: PasskeyVerifierOperation;
238
+ readonly message: string;
239
+ readonly cause?: unknown;
240
+ }> {
241
+ }
242
+ export interface PasskeyVerifierService {
243
+ readonly readAuthenticationCredentialId: (input: PasskeyVerifierAuthenticationCredentialIdInput) => Effect.Effect<PasskeyCredentialId, PasskeyVerifierError>;
244
+ readonly verifyRegistration: (input: PasskeyVerifierRegistrationInput) => Effect.Effect<VerifiedPasskeyRegistration, PasskeyVerifierError>;
245
+ readonly verifyAuthentication: (input: PasskeyVerifierAuthenticationInput) => Effect.Effect<VerifiedPasskeyAuthentication, PasskeyVerifierError>;
246
+ }
247
+ declare const PasskeyVerifier_base: Context.ServiceClass<PasskeyVerifier, "auth/PasskeyVerifier", PasskeyVerifierService>;
248
+ export declare class PasskeyVerifier extends PasskeyVerifier_base {
249
+ }
250
+ export declare namespace PasskeyVerifier {
251
+ const make: (service: PasskeyVerifierService) => PasskeyVerifierService;
252
+ }
253
+ export interface PasskeyRegistrationFinishInput extends PasskeyVerifierOptions {
254
+ readonly challengeId: ChallengeId;
255
+ readonly userId: UserId;
256
+ readonly response: PasskeyClientCredentialJson;
257
+ readonly recordId?: CredentialId;
258
+ readonly now?: UnixMillis;
259
+ }
260
+ export interface FinishedPasskeyRegistration {
261
+ readonly challengeId: ChallengeId;
262
+ readonly userId: UserId;
263
+ readonly credential: PasskeyCredentialRecord;
264
+ }
265
+ export interface PasskeyAuthenticationFinishInput extends PasskeyVerifierOptions {
266
+ readonly challengeId: ChallengeId;
267
+ readonly response: PasskeyClientCredentialJson;
268
+ readonly userId?: UserId;
269
+ readonly now?: UnixMillis;
270
+ }
271
+ export interface FinishedPasskeyAuthentication {
272
+ readonly challengeId: ChallengeId;
273
+ readonly userId: UserId;
274
+ readonly credential: PasskeyCredentialRecord;
275
+ }
276
+ export type PasskeyVerificationOperation = "finish-registration" | "finish-authentication";
277
+ declare const PasskeyVerificationError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
278
+ readonly _tag: "PasskeyVerificationError";
279
+ } & Readonly<A>;
280
+ export declare class PasskeyVerificationError extends PasskeyVerificationError_base<{
281
+ readonly operation: PasskeyVerificationOperation;
282
+ readonly message: string;
283
+ readonly cause?: unknown;
284
+ }> {
285
+ }
286
+ export interface PasskeyVerificationService {
287
+ readonly finishRegistration: (input: PasskeyRegistrationFinishInput) => Effect.Effect<FinishedPasskeyRegistration, PasskeyVerificationError>;
288
+ readonly finishAuthentication: (input: PasskeyAuthenticationFinishInput) => Effect.Effect<FinishedPasskeyAuthentication, PasskeyVerificationError>;
289
+ }
290
+ declare const PasskeyVerification_base: Context.ServiceClass<PasskeyVerification, "auth/PasskeyVerification", PasskeyVerificationService>;
291
+ export declare class PasskeyVerification extends PasskeyVerification_base {
292
+ }
293
+ export declare namespace PasskeyVerification {
294
+ const make: (service: PasskeyVerificationService) => PasskeyVerificationService;
295
+ }
296
+ export interface PasskeyVerificationOptions {
297
+ readonly credentialRecordIdBytes?: number;
298
+ }
299
+ export interface PasskeyVerificationDependencies extends PasskeyVerificationOptions {
300
+ readonly challenge: ChallengeService;
301
+ readonly crypto: CryptoService;
302
+ readonly credentialStore: PasskeyCredentialStoreService;
303
+ readonly verifier: PasskeyVerifierService;
304
+ }
305
+ declare const PasskeyOptionsError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
306
+ readonly _tag: "PasskeyOptionsError";
307
+ } & Readonly<A>;
308
+ export declare class PasskeyOptionsError extends PasskeyOptionsError_base<{
309
+ readonly message: string;
310
+ readonly cause?: unknown;
311
+ }> {
312
+ }
313
+ export interface PasskeyOptionsService {
314
+ readonly startRegistration: (input: PasskeyRegistrationStartInput) => Effect.Effect<StartedPasskeyRegistration, PasskeyOptionsError>;
315
+ readonly startAuthentication: (input: PasskeyAuthenticationStartInput) => Effect.Effect<StartedPasskeyAuthentication, PasskeyOptionsError>;
316
+ }
317
+ declare const PasskeyOptions_base: Context.ServiceClass<PasskeyOptions, "auth/PasskeyOptions", PasskeyOptionsService>;
318
+ export declare class PasskeyOptions extends PasskeyOptions_base {
319
+ }
320
+ export declare namespace PasskeyOptions {
321
+ const make: (service: PasskeyOptionsService) => PasskeyOptionsService;
322
+ }
323
+ export interface PasskeyOptionsDependencies {
324
+ readonly challenge: ChallengeService;
325
+ readonly crypto: CryptoService;
326
+ readonly credentialStore?: PasskeyCredentialStoreService;
327
+ }
328
+ export declare const makePasskeyVerification: (dependencies: PasskeyVerificationDependencies) => PasskeyVerificationService;
329
+ export declare const makePasskeyOptions: (dependencies: PasskeyOptionsDependencies) => PasskeyOptionsService;
330
+ export declare const PasskeyOptionsLive: Layer.Layer<PasskeyOptions, never, Crypto | Challenge>;
331
+ export declare const PasskeyVerificationLive: (options?: PasskeyVerificationOptions) => Layer.Layer<PasskeyVerification, never, Crypto | Challenge | PasskeyCredentialStore | PasskeyVerifier>;
332
+ export declare const PasskeyFeatureLive: Layer.Layer<PasskeyOptions, never, Crypto | Challenge>;
333
+ export {};
334
+ //# sourceMappingURL=Passkey.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Passkey.d.ts","sourceRoot":"","sources":["../src/Passkey.ts"],"names":[],"mappings":"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"}