@effect-auth/core 0.1.0-alpha.0 → 0.1.0-alpha.10

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 (222) hide show
  1. package/README.md +774 -36
  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 +278 -1
  7. package/dist/AuditLog.d.ts.map +1 -1
  8. package/dist/AuditLog.js +217 -2
  9. package/dist/AuditLog.js.map +1 -1
  10. package/dist/AuthConfig.d.ts +42 -0
  11. package/dist/AuthConfig.d.ts.map +1 -0
  12. package/dist/AuthConfig.js +43 -0
  13. package/dist/AuthConfig.js.map +1 -0
  14. package/dist/AuthFlow.d.ts +465 -36
  15. package/dist/AuthFlow.d.ts.map +1 -1
  16. package/dist/AuthFlow.js +660 -5
  17. package/dist/AuthFlow.js.map +1 -1
  18. package/dist/AuthKernel.d.ts +3 -0
  19. package/dist/AuthKernel.d.ts.map +1 -0
  20. package/dist/AuthKernel.js +9 -0
  21. package/dist/AuthKernel.js.map +1 -0
  22. package/dist/Challenge.d.ts +27 -4
  23. package/dist/Challenge.d.ts.map +1 -1
  24. package/dist/Challenge.js +170 -1
  25. package/dist/Challenge.js.map +1 -1
  26. package/dist/Client.d.ts +378 -0
  27. package/dist/Client.d.ts.map +1 -0
  28. package/dist/Client.js +768 -0
  29. package/dist/Client.js.map +1 -0
  30. package/dist/Crypto.d.ts +9 -1
  31. package/dist/Crypto.d.ts.map +1 -1
  32. package/dist/Crypto.js +65 -1
  33. package/dist/Crypto.js.map +1 -1
  34. package/dist/EffectQbSqliteStorage.d.ts +600 -0
  35. package/dist/EffectQbSqliteStorage.d.ts.map +1 -0
  36. package/dist/EffectQbSqliteStorage.js +1637 -0
  37. package/dist/EffectQbSqliteStorage.js.map +1 -0
  38. package/dist/EmailOtp.d.ts +120 -0
  39. package/dist/EmailOtp.d.ts.map +1 -0
  40. package/dist/EmailOtp.js +286 -0
  41. package/dist/EmailOtp.js.map +1 -0
  42. package/dist/EmailVerification.d.ts +121 -0
  43. package/dist/EmailVerification.d.ts.map +1 -0
  44. package/dist/EmailVerification.js +200 -0
  45. package/dist/EmailVerification.js.map +1 -0
  46. package/dist/HttpApi/Api.d.ts +1956 -0
  47. package/dist/HttpApi/Api.d.ts.map +1 -0
  48. package/dist/HttpApi/Api.js +2325 -0
  49. package/dist/HttpApi/Api.js.map +1 -0
  50. package/dist/HttpApi/Endpoints.d.ts +945 -0
  51. package/dist/HttpApi/Endpoints.d.ts.map +1 -0
  52. package/dist/HttpApi/Endpoints.js +373 -0
  53. package/dist/HttpApi/Endpoints.js.map +1 -0
  54. package/dist/HttpApi/Errors.d.ts +82 -0
  55. package/dist/HttpApi/Errors.d.ts.map +1 -0
  56. package/dist/HttpApi/Errors.js +184 -0
  57. package/dist/HttpApi/Errors.js.map +1 -0
  58. package/dist/HttpApi/Schemas.d.ts +1113 -0
  59. package/dist/HttpApi/Schemas.d.ts.map +1 -0
  60. package/dist/HttpApi/Schemas.js +734 -0
  61. package/dist/HttpApi/Schemas.js.map +1 -0
  62. package/dist/HttpApi/Security.d.ts +159 -0
  63. package/dist/HttpApi/Security.d.ts.map +1 -0
  64. package/dist/HttpApi/Security.js +530 -0
  65. package/dist/HttpApi/Security.js.map +1 -0
  66. package/dist/HttpApi/Transport.d.ts +65 -0
  67. package/dist/HttpApi/Transport.d.ts.map +1 -0
  68. package/dist/HttpApi/Transport.js +311 -0
  69. package/dist/HttpApi/Transport.js.map +1 -0
  70. package/dist/HttpApi/index.d.ts +8 -0
  71. package/dist/HttpApi/index.d.ts.map +1 -0
  72. package/dist/HttpApi/index.js +7 -0
  73. package/dist/HttpApi/index.js.map +1 -0
  74. package/dist/HttpApi.d.ts +2 -0
  75. package/dist/HttpApi.d.ts.map +1 -0
  76. package/dist/HttpApi.js +2 -0
  77. package/dist/HttpApi.js.map +1 -0
  78. package/dist/Identifiers.d.ts.map +1 -1
  79. package/dist/Identifiers.js.map +1 -1
  80. package/dist/Internal.d.ts +7 -0
  81. package/dist/Internal.d.ts.map +1 -0
  82. package/dist/Internal.js +12 -0
  83. package/dist/Internal.js.map +1 -0
  84. package/dist/Jwt.d.ts +271 -0
  85. package/dist/Jwt.d.ts.map +1 -0
  86. package/dist/Jwt.js +512 -0
  87. package/dist/Jwt.js.map +1 -0
  88. package/dist/LoginApproval.d.ts +314 -0
  89. package/dist/LoginApproval.d.ts.map +1 -0
  90. package/dist/LoginApproval.js +551 -0
  91. package/dist/LoginApproval.js.map +1 -0
  92. package/dist/LoginNotification.d.ts +183 -0
  93. package/dist/LoginNotification.d.ts.map +1 -0
  94. package/dist/LoginNotification.js +329 -0
  95. package/dist/LoginNotification.js.map +1 -0
  96. package/dist/LoginRisk.d.ts +73 -0
  97. package/dist/LoginRisk.d.ts.map +1 -0
  98. package/dist/LoginRisk.js +57 -0
  99. package/dist/LoginRisk.js.map +1 -0
  100. package/dist/MagicLink.d.ts +85 -0
  101. package/dist/MagicLink.d.ts.map +1 -0
  102. package/dist/MagicLink.js +206 -0
  103. package/dist/MagicLink.js.map +1 -0
  104. package/dist/Mailer.d.ts +147 -0
  105. package/dist/Mailer.d.ts.map +1 -0
  106. package/dist/Mailer.js +208 -0
  107. package/dist/Mailer.js.map +1 -0
  108. package/dist/OAuth.d.ts +934 -0
  109. package/dist/OAuth.d.ts.map +1 -0
  110. package/dist/OAuth.js +1661 -0
  111. package/dist/OAuth.js.map +1 -0
  112. package/dist/Passkey.d.ts +334 -0
  113. package/dist/Passkey.d.ts.map +1 -0
  114. package/dist/Passkey.js +422 -0
  115. package/dist/Passkey.js.map +1 -0
  116. package/dist/PasskeySimpleWebAuthn.d.ts +11 -0
  117. package/dist/PasskeySimpleWebAuthn.d.ts.map +1 -0
  118. package/dist/PasskeySimpleWebAuthn.js +181 -0
  119. package/dist/PasskeySimpleWebAuthn.js.map +1 -0
  120. package/dist/Password.d.ts +237 -0
  121. package/dist/Password.d.ts.map +1 -0
  122. package/dist/Password.js +641 -0
  123. package/dist/Password.js.map +1 -0
  124. package/dist/Policy.d.ts +7 -4
  125. package/dist/Policy.d.ts.map +1 -1
  126. package/dist/Policy.js +28 -5
  127. package/dist/Policy.js.map +1 -1
  128. package/dist/Privacy.d.ts +18 -0
  129. package/dist/Privacy.d.ts.map +1 -1
  130. package/dist/Privacy.js +63 -3
  131. package/dist/Privacy.js.map +1 -1
  132. package/dist/RateLimiter.d.ts +104 -0
  133. package/dist/RateLimiter.d.ts.map +1 -0
  134. package/dist/RateLimiter.js +118 -0
  135. package/dist/RateLimiter.js.map +1 -0
  136. package/dist/RecoveryCode.d.ts +169 -0
  137. package/dist/RecoveryCode.d.ts.map +1 -0
  138. package/dist/RecoveryCode.js +299 -0
  139. package/dist/RecoveryCode.js.map +1 -0
  140. package/dist/RefreshToken.d.ts +222 -0
  141. package/dist/RefreshToken.d.ts.map +1 -0
  142. package/dist/RefreshToken.js +342 -0
  143. package/dist/RefreshToken.js.map +1 -0
  144. package/dist/SecurityTimeline.d.ts +72 -0
  145. package/dist/SecurityTimeline.d.ts.map +1 -0
  146. package/dist/SecurityTimeline.js +386 -0
  147. package/dist/SecurityTimeline.js.map +1 -0
  148. package/dist/Sessions.d.ts +135 -11
  149. package/dist/Sessions.d.ts.map +1 -1
  150. package/dist/Sessions.js +546 -1
  151. package/dist/Sessions.js.map +1 -1
  152. package/dist/StepUp.d.ts +44 -0
  153. package/dist/StepUp.d.ts.map +1 -0
  154. package/dist/StepUp.js +82 -0
  155. package/dist/StepUp.js.map +1 -0
  156. package/dist/Storage.d.ts +175 -0
  157. package/dist/Storage.d.ts.map +1 -0
  158. package/dist/Storage.js +27 -0
  159. package/dist/Storage.js.map +1 -0
  160. package/dist/StorageMigrations.d.ts +19 -0
  161. package/dist/StorageMigrations.d.ts.map +1 -0
  162. package/dist/StorageMigrations.js +291 -0
  163. package/dist/StorageMigrations.js.map +1 -0
  164. package/dist/Testing.d.ts +9 -1
  165. package/dist/Testing.d.ts.map +1 -1
  166. package/dist/Testing.js +30 -2
  167. package/dist/Testing.js.map +1 -1
  168. package/dist/Totp.d.ts +220 -0
  169. package/dist/Totp.d.ts.map +1 -0
  170. package/dist/Totp.js +477 -0
  171. package/dist/Totp.js.map +1 -0
  172. package/dist/TrustedDevice.d.ts +127 -0
  173. package/dist/TrustedDevice.d.ts.map +1 -0
  174. package/dist/TrustedDevice.js +252 -0
  175. package/dist/TrustedDevice.js.map +1 -0
  176. package/dist/WaitUntil.d.ts +3 -0
  177. package/dist/WaitUntil.d.ts.map +1 -1
  178. package/dist/WaitUntil.js +6 -3
  179. package/dist/WaitUntil.js.map +1 -1
  180. package/dist/Webhook.d.ts +72 -0
  181. package/dist/Webhook.d.ts.map +1 -0
  182. package/dist/Webhook.js +82 -0
  183. package/dist/Webhook.js.map +1 -0
  184. package/dist/alchemy/cloudflare/Email.d.ts +25 -0
  185. package/dist/alchemy/cloudflare/Email.d.ts.map +1 -0
  186. package/dist/alchemy/cloudflare/Email.js +117 -0
  187. package/dist/alchemy/cloudflare/Email.js.map +1 -0
  188. package/dist/alchemy/cloudflare/RateLimitDurableObject.d.ts +34 -0
  189. package/dist/alchemy/cloudflare/RateLimitDurableObject.d.ts.map +1 -0
  190. package/dist/alchemy/cloudflare/RateLimitDurableObject.js +30 -0
  191. package/dist/alchemy/cloudflare/RateLimitDurableObject.js.map +1 -0
  192. package/dist/cloudflare/Email.d.ts +25 -0
  193. package/dist/cloudflare/Email.d.ts.map +1 -0
  194. package/dist/cloudflare/Email.js +153 -0
  195. package/dist/cloudflare/Email.js.map +1 -0
  196. package/dist/cloudflare/RateLimitDurableObject.d.ts +50 -0
  197. package/dist/cloudflare/RateLimitDurableObject.d.ts.map +1 -0
  198. package/dist/cloudflare/RateLimitDurableObject.js +51 -0
  199. package/dist/cloudflare/RateLimitDurableObject.js.map +1 -0
  200. package/dist/index.d.ts +22 -0
  201. package/dist/index.d.ts.map +1 -1
  202. package/dist/index.js +22 -0
  203. package/dist/index.js.map +1 -1
  204. package/dist/internal/RateLimitDurableObject.d.ts +32 -0
  205. package/dist/internal/RateLimitDurableObject.d.ts.map +1 -0
  206. package/dist/internal/RateLimitDurableObject.js +80 -0
  207. package/dist/internal/RateLimitDurableObject.js.map +1 -0
  208. package/migrations/0001_auth_storage.sql +32 -0
  209. package/migrations/0002_auth_password.sql +25 -0
  210. package/migrations/0003_auth_login_approval_review.sql +22 -0
  211. package/migrations/0004_auth_trusted_device.sql +12 -0
  212. package/migrations/0005_auth_passkey.sql +17 -0
  213. package/migrations/0006_auth_totp_factor.sql +17 -0
  214. package/migrations/0007_auth_recovery_code.sql +13 -0
  215. package/migrations/0008_auth_api_key.sql +17 -0
  216. package/migrations/0009_auth_refresh_token.sql +21 -0
  217. package/migrations/0010_auth_jwt_revocation.sql +8 -0
  218. package/migrations/0011_auth_oauth_account.sql +16 -0
  219. package/migrations/0012_auth_oauth_provider_token_vault.sql +20 -0
  220. package/migrations/0013_auth_security_timeline.sql +16 -0
  221. package/package.json +161 -16
  222. package/LICENSE +0 -21
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OAuth.js","sourceRoot":"","sources":["../src/OAuth.ts"],"names":[],"mappings":"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"}
@@ -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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"}