@effect-auth/core 0.1.0-alpha.3 → 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 +115 -3
  30. package/dist/EffectQbSqliteStorage.d.ts.map +1 -1
  31. package/dist/EffectQbSqliteStorage.js +314 -4
  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
@@ -1 +1 @@
1
- {"version":3,"file":"Password.d.ts","sourceRoot":"","sources":["../src/Password.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Password.d.ts","sourceRoot":"","sources":["../src/Password.ts"],"names":[],"mappings":"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"}
package/dist/Password.js CHANGED
@@ -1,10 +1,11 @@
1
- import { Context, Data, Effect, Encoding, Layer, Option, Redacted, Result, } from "effect";
2
- import { AuthPasswordHasherConfig } from "./AuthConfig.js";
1
+ import { Context, Data, Duration, Effect, Encoding, Layer, Option, Redacted, Result, } from "effect";
3
2
  import { AuthFlow, AuthResult } from "./AuthFlow.js";
3
+ import { Challenge } from "./Challenge.js";
4
4
  import { Crypto } from "./Crypto.js";
5
- import { CredentialId, UserId } from "./Identifiers.js";
6
- import { currentUnixMillis, timingSafeEqualString } from "./Internal.js";
7
- import { CredentialStore, UserStore } from "./Storage.js";
5
+ import { CredentialId, Email, UserId } from "./Identifiers.js";
6
+ import { addMillis, currentUnixMillis, timingSafeEqualString, } from "./Internal.js";
7
+ import { AuthMailer } from "./Mailer.js";
8
+ import { CredentialStore, SessionStore, UserStore } from "./Storage.js";
8
9
  export class PasswordHashError extends Data.TaggedError("PasswordHashError") {
9
10
  }
10
11
  export class PasswordHasher extends Context.Service()("auth/PasswordHasher") {
@@ -52,7 +53,7 @@ const parsePasswordHash = (hash) => {
52
53
  };
53
54
  const derivePbkdf2Sha256 = (input) => Effect.tryPromise({
54
55
  try: async () => {
55
- const key = await input.webCrypto.subtle.importKey("raw", textEncoder.encode(Redacted.value(input.password)), "PBKDF2", false, ["deriveBits"]);
56
+ const key = await input.webCrypto.subtle.importKey("raw", textEncoder.encode(Redacted.value(input.password)), { name: "PBKDF2" }, false, ["deriveBits"]);
56
57
  const bits = await input.webCrypto.subtle.deriveBits({
57
58
  name: "PBKDF2",
58
59
  hash: "SHA-256",
@@ -123,7 +124,7 @@ export const makePbkdf2PasswordHasher = (dependencies) => {
123
124
  };
124
125
  export const Pbkdf2PasswordHasherLive = (options) => Layer.effect(PasswordHasher)(Effect.gen(function* () {
125
126
  const crypto = yield* Crypto;
126
- const resolvedOptions = options ?? (yield* AuthPasswordHasherConfig);
127
+ const resolvedOptions = options ?? {};
127
128
  return makePbkdf2PasswordHasher({
128
129
  ...resolvedOptions,
129
130
  crypto,
@@ -163,10 +164,16 @@ export const makePasswordLogin = (dependencies) => PasswordLogin.make({
163
164
  return yield* dependencies.authFlow.completePrimaryFactor({
164
165
  userId: user.value.id,
165
166
  email: user.value.email,
167
+ intent: "sign-in",
166
168
  method: "password",
167
169
  amr: ["pwd"],
168
170
  aal: "aal1",
169
171
  claims: { emailVerified: user.value.emailVerified },
172
+ ...(input.trustedDeviceToken === undefined
173
+ ? {}
174
+ : { trustedDeviceToken: input.trustedDeviceToken }),
175
+ ...(input.request === undefined ? {} : { request: input.request }),
176
+ ...(input.metadata === undefined ? {} : { metadata: input.metadata }),
170
177
  });
171
178
  }),
172
179
  });
@@ -226,10 +233,13 @@ export const makePasswordRegistration = (dependencies) => {
226
233
  return yield* dependencies.authFlow.completePrimaryFactor({
227
234
  userId,
228
235
  email: input.email,
236
+ intent: "sign-up",
229
237
  method: "password",
230
238
  amr: ["pwd"],
231
239
  aal: "aal1",
232
240
  claims: { emailVerified },
241
+ ...(input.request === undefined ? {} : { request: input.request }),
242
+ ...(input.metadata === undefined ? {} : { metadata: input.metadata }),
233
243
  });
234
244
  }),
235
245
  });
@@ -248,5 +258,384 @@ export const PasswordRegistrationLive = Layer.effect(PasswordRegistration)(Effec
248
258
  crypto,
249
259
  });
250
260
  }));
251
- export const PasswordFeatureLive = Layer.mergeAll(PasswordLoginLive, PasswordRegistrationLive).pipe(Layer.provideMerge(Pbkdf2PasswordHasherLive()));
261
+ export class PasswordResetStartError extends Data.TaggedError("PasswordResetStartError") {
262
+ }
263
+ export class PasswordResetVerifyError extends Data.TaggedError("PasswordResetVerifyError") {
264
+ }
265
+ export class PasswordReset extends Context.Service()("auth/password/Reset") {
266
+ }
267
+ (function (PasswordReset) {
268
+ PasswordReset.make = (service) => PasswordReset.of(service);
269
+ })(PasswordReset || (PasswordReset = {}));
270
+ export const defaultPasswordResetTtl = Duration.minutes(15);
271
+ export const defaultPasswordResetSecretBytes = 32;
272
+ const passwordResetUserIdFromMetadata = (metadata) => {
273
+ const userId = metadata?.userId;
274
+ return typeof userId === "string" && userId.length > 0
275
+ ? UserId(userId)
276
+ : undefined;
277
+ };
278
+ const passwordResetTtlMillis = (ttl) => {
279
+ const millis = Duration.toMillis(ttl);
280
+ return Number.isFinite(millis) && millis > 0
281
+ ? Effect.succeed(millis)
282
+ : Effect.fail(new PasswordResetStartError({
283
+ message: "Password reset ttl must be a positive finite duration",
284
+ }));
285
+ };
286
+ const passwordResetStartSecret = (crypto, input, secretBytes) => {
287
+ if (input.secret !== undefined) {
288
+ return Effect.succeed(Redacted.make(Redacted.value(input.secret).trim()));
289
+ }
290
+ return crypto.randomToken(secretBytes).pipe(Effect.map(Redacted.make), Effect.mapError((cause) => new PasswordResetStartError({
291
+ message: "Failed to generate password reset secret",
292
+ cause,
293
+ })));
294
+ };
295
+ const passwordResetVerifySecret = (secret) => Redacted.make(Redacted.value(secret).trim());
296
+ const makePasswordResetUrl = (dependencies, input) => Effect.try({
297
+ try: () => dependencies.makeUrl(input),
298
+ catch: (cause) => new PasswordResetStartError({
299
+ message: "Failed to build password reset URL",
300
+ cause,
301
+ }),
302
+ });
303
+ const invalidatePasswordResetChallenge = (challenge, id) => challenge
304
+ .consume(id)
305
+ .pipe(Effect.catchTag("ChallengeConsumeError", () => Effect.void));
306
+ export const makePasswordReset = (dependencies) => {
307
+ const ttl = dependencies.ttl ?? defaultPasswordResetTtl;
308
+ const secretBytes = dependencies.secretBytes ?? defaultPasswordResetSecretBytes;
309
+ const credentialIdBytes = dependencies.credentialIdBytes ?? 16;
310
+ return PasswordReset.make({
311
+ start: Effect.fn("auth.password_reset.start")(function* (input) {
312
+ yield* Effect.annotateCurrentSpan("auth.method", "password-reset");
313
+ const resolvedTtl = input.ttl ?? ttl;
314
+ const expiresIn = yield* passwordResetTtlMillis(resolvedTtl);
315
+ const now = yield* currentUnixMillis;
316
+ const genericStarted = {
317
+ email: input.email,
318
+ expiresAt: addMillis(now, expiresIn),
319
+ };
320
+ const userOption = yield* dependencies.users.findByEmail(input.email).pipe(Effect.mapError((cause) => new PasswordResetStartError({
321
+ message: "Failed to load user for password reset",
322
+ cause,
323
+ })));
324
+ if (Option.isNone(userOption)) {
325
+ yield* Effect.annotateCurrentSpan("auth.result", "PasswordResetIgnored");
326
+ return genericStarted;
327
+ }
328
+ const user = userOption.value;
329
+ if (user.disabledAt !== undefined) {
330
+ yield* Effect.annotateCurrentSpan("auth.result", "PasswordResetIgnored");
331
+ return genericStarted;
332
+ }
333
+ const credentialOption = yield* dependencies.credentials
334
+ .findPasswordByUserId(user.id)
335
+ .pipe(Effect.mapError((cause) => new PasswordResetStartError({
336
+ message: "Failed to load password credential for reset",
337
+ cause,
338
+ })));
339
+ if (Option.isSome(credentialOption) &&
340
+ credentialOption.value.revokedAt !== undefined) {
341
+ yield* Effect.annotateCurrentSpan("auth.result", "PasswordResetIgnored");
342
+ return genericStarted;
343
+ }
344
+ const secret = yield* passwordResetStartSecret(dependencies.crypto, input, secretBytes);
345
+ const issued = yield* dependencies.challenge
346
+ .issue({
347
+ type: "reset-password",
348
+ subject: user.email,
349
+ ttl: resolvedTtl,
350
+ secret,
351
+ metadata: {
352
+ ...input.metadata,
353
+ userId: user.id,
354
+ },
355
+ })
356
+ .pipe(Effect.mapError((cause) => new PasswordResetStartError({
357
+ message: "Failed to issue password reset challenge",
358
+ cause,
359
+ })));
360
+ const started = {
361
+ email: user.email,
362
+ expiresAt: issued.expiresAt,
363
+ };
364
+ const url = yield* makePasswordResetUrl(dependencies, {
365
+ ...started,
366
+ challengeId: issued.id,
367
+ secret,
368
+ locale: input.locale,
369
+ metadata: input.metadata,
370
+ }).pipe(Effect.matchEffect({
371
+ onSuccess: Effect.succeed,
372
+ onFailure: (error) => invalidatePasswordResetChallenge(dependencies.challenge, issued.id).pipe(Effect.flatMap(() => Effect.fail(error))),
373
+ }));
374
+ yield* dependencies.authMailer
375
+ .send({
376
+ _tag: "PasswordReset",
377
+ to: user.email,
378
+ challengeId: issued.id,
379
+ url,
380
+ expiresAt: issued.expiresAt,
381
+ locale: input.locale,
382
+ metadata: input.metadata,
383
+ })
384
+ .pipe(Effect.matchEffect({
385
+ onSuccess: () => Effect.void,
386
+ onFailure: (cause) => invalidatePasswordResetChallenge(dependencies.challenge, issued.id).pipe(Effect.flatMap(() => Effect.fail(new PasswordResetStartError({
387
+ message: "Failed to send password reset email",
388
+ cause,
389
+ })))),
390
+ }));
391
+ yield* Effect.annotateCurrentSpan("auth.result", "PasswordResetStarted");
392
+ return started;
393
+ }),
394
+ verify: Effect.fn("auth.password_reset.verify")(function* (input) {
395
+ yield* Effect.annotateCurrentSpan("auth.method", "password-reset");
396
+ const verified = yield* dependencies.challenge
397
+ .verify({
398
+ challengeId: input.challengeId,
399
+ type: "reset-password",
400
+ secret: passwordResetVerifySecret(input.secret),
401
+ })
402
+ .pipe(Effect.mapError((cause) => new PasswordResetVerifyError({
403
+ message: "Invalid password reset challenge",
404
+ cause,
405
+ })));
406
+ const userId = passwordResetUserIdFromMetadata(verified.metadata);
407
+ if (userId === undefined) {
408
+ return yield* new PasswordResetVerifyError({
409
+ message: "Password reset challenge is missing user metadata",
410
+ });
411
+ }
412
+ const userOption = yield* dependencies.users.findById(userId).pipe(Effect.mapError((cause) => new PasswordResetVerifyError({
413
+ message: "Failed to load user for password reset",
414
+ cause,
415
+ })));
416
+ if (Option.isNone(userOption) ||
417
+ userOption.value.disabledAt !== undefined ||
418
+ userOption.value.email !== Email(verified.subject)) {
419
+ return yield* new PasswordResetVerifyError({
420
+ message: "Invalid password reset challenge",
421
+ });
422
+ }
423
+ const credentialOption = yield* dependencies.credentials
424
+ .findPasswordByUserId(userId)
425
+ .pipe(Effect.mapError((cause) => new PasswordResetVerifyError({
426
+ message: "Failed to load password credential for reset",
427
+ cause,
428
+ })));
429
+ if (Option.isSome(credentialOption) &&
430
+ credentialOption.value.revokedAt !== undefined) {
431
+ return yield* new PasswordResetVerifyError({
432
+ message: "Password credential not found",
433
+ });
434
+ }
435
+ const now = yield* currentUnixMillis;
436
+ const passwordHash = yield* dependencies.hasher
437
+ .hash({ password: input.password })
438
+ .pipe(Effect.mapError((cause) => new PasswordResetVerifyError({
439
+ message: "Failed to hash password reset password",
440
+ cause,
441
+ })));
442
+ if (Option.isSome(credentialOption)) {
443
+ const updated = yield* dependencies.credentials
444
+ .updatePassword({
445
+ userId,
446
+ passwordHash,
447
+ updatedAt: now,
448
+ })
449
+ .pipe(Effect.mapError((cause) => new PasswordResetVerifyError({
450
+ message: "Failed to update password credential",
451
+ cause,
452
+ })));
453
+ if (Option.isNone(updated)) {
454
+ return yield* new PasswordResetVerifyError({
455
+ message: "Password credential not found",
456
+ });
457
+ }
458
+ }
459
+ else {
460
+ const credentialId = CredentialId(yield* dependencies.crypto.randomToken(credentialIdBytes).pipe(Effect.mapError((cause) => new PasswordResetVerifyError({
461
+ message: "Failed to generate password credential id",
462
+ cause,
463
+ }))));
464
+ yield* dependencies.credentials
465
+ .insertPassword({
466
+ id: credentialId,
467
+ userId,
468
+ passwordHash,
469
+ createdAt: now,
470
+ updatedAt: now,
471
+ })
472
+ .pipe(Effect.mapError((cause) => new PasswordResetVerifyError({
473
+ message: "Failed to create password credential",
474
+ cause,
475
+ })));
476
+ }
477
+ yield* dependencies.sessionStore
478
+ .revokeAllForUser({
479
+ userId,
480
+ revokedAt: now,
481
+ reason: "password_reset",
482
+ })
483
+ .pipe(Effect.mapError((cause) => new PasswordResetVerifyError({
484
+ message: "Failed to revoke sessions after password reset",
485
+ cause,
486
+ })));
487
+ yield* Effect.annotateCurrentSpan("auth.result", "PasswordResetVerified");
488
+ }),
489
+ });
490
+ };
491
+ export const PasswordResetLive = (options) => Layer.effect(PasswordReset)(Effect.gen(function* () {
492
+ const challenge = yield* Challenge;
493
+ const users = yield* UserStore;
494
+ const credentials = yield* CredentialStore;
495
+ const hasher = yield* PasswordHasher;
496
+ const crypto = yield* Crypto;
497
+ const authMailer = yield* AuthMailer;
498
+ const sessionStore = yield* SessionStore;
499
+ return makePasswordReset({
500
+ ...options,
501
+ challenge,
502
+ users,
503
+ credentials,
504
+ hasher,
505
+ crypto,
506
+ authMailer,
507
+ sessionStore,
508
+ });
509
+ }));
510
+ export const PasswordResetFeatureLive = (options) => {
511
+ const { passwordHasher, ...resetOptions } = options;
512
+ return PasswordResetLive(resetOptions).pipe(Layer.provideMerge(Pbkdf2PasswordHasherLive(passwordHasher)));
513
+ };
514
+ export class PasswordSetError extends Data.TaggedError("PasswordSetError") {
515
+ }
516
+ export class PasswordChangeError extends Data.TaggedError("PasswordChangeError") {
517
+ }
518
+ export class PasswordManagement extends Context.Service()("auth/password/Management") {
519
+ }
520
+ (function (PasswordManagement) {
521
+ PasswordManagement.make = (service) => PasswordManagement.of(service);
522
+ })(PasswordManagement || (PasswordManagement = {}));
523
+ export const makePasswordManagement = (dependencies) => {
524
+ const credentialIdBytes = dependencies.credentialIdBytes ?? 16;
525
+ return PasswordManagement.make({
526
+ set: Effect.fn("auth.password.set")(function* (input) {
527
+ const credential = yield* dependencies.credentials
528
+ .findPasswordByUserId(input.userId)
529
+ .pipe(Effect.mapError((cause) => new PasswordSetError({
530
+ reason: "internal",
531
+ message: "Failed to load password credential",
532
+ cause,
533
+ })));
534
+ if (Option.isSome(credential)) {
535
+ return yield* new PasswordSetError({
536
+ reason: credential.value.revokedAt === undefined
537
+ ? "password_exists"
538
+ : "password_revoked",
539
+ message: "Password credential already exists",
540
+ });
541
+ }
542
+ const now = yield* currentUnixMillis;
543
+ const credentialId = CredentialId(yield* dependencies.crypto.randomToken(credentialIdBytes).pipe(Effect.mapError((cause) => new PasswordSetError({
544
+ reason: "internal",
545
+ message: "Failed to generate password credential id",
546
+ cause,
547
+ }))));
548
+ const passwordHash = yield* dependencies.hasher
549
+ .hash({ password: input.password })
550
+ .pipe(Effect.mapError((cause) => new PasswordSetError({
551
+ reason: "internal",
552
+ message: "Failed to hash password",
553
+ cause,
554
+ })));
555
+ yield* dependencies.credentials
556
+ .insertPassword({
557
+ id: credentialId,
558
+ userId: input.userId,
559
+ passwordHash,
560
+ createdAt: now,
561
+ updatedAt: now,
562
+ metadata: input.metadata,
563
+ })
564
+ .pipe(Effect.mapError((cause) => new PasswordSetError({
565
+ reason: "internal",
566
+ message: "Failed to create password credential",
567
+ cause,
568
+ })));
569
+ }),
570
+ change: Effect.fn("auth.password.change")(function* (input) {
571
+ const credential = yield* dependencies.credentials
572
+ .findPasswordByUserId(input.userId)
573
+ .pipe(Effect.mapError((cause) => new PasswordChangeError({
574
+ reason: "internal",
575
+ message: "Failed to load password credential",
576
+ cause,
577
+ })));
578
+ if (Option.isNone(credential)) {
579
+ return yield* new PasswordChangeError({
580
+ reason: "password_missing",
581
+ message: "Password credential not found",
582
+ });
583
+ }
584
+ if (credential.value.revokedAt !== undefined) {
585
+ return yield* new PasswordChangeError({
586
+ reason: "password_revoked",
587
+ message: "Password credential not found",
588
+ });
589
+ }
590
+ const verified = yield* dependencies.hasher
591
+ .verify({
592
+ hash: credential.value.passwordHash,
593
+ password: input.currentPassword,
594
+ })
595
+ .pipe(Effect.mapError((cause) => new PasswordChangeError({
596
+ reason: "internal",
597
+ message: "Failed to verify current password",
598
+ cause,
599
+ })));
600
+ if (!verified) {
601
+ return yield* new PasswordChangeError({
602
+ reason: "invalid_current_password",
603
+ message: "Current password is invalid",
604
+ });
605
+ }
606
+ const now = yield* currentUnixMillis;
607
+ const passwordHash = yield* dependencies.hasher
608
+ .hash({ password: input.newPassword })
609
+ .pipe(Effect.mapError((cause) => new PasswordChangeError({
610
+ reason: "internal",
611
+ message: "Failed to hash new password",
612
+ cause,
613
+ })));
614
+ const updated = yield* dependencies.credentials
615
+ .updatePassword({
616
+ userId: input.userId,
617
+ passwordHash,
618
+ updatedAt: now,
619
+ })
620
+ .pipe(Effect.mapError((cause) => new PasswordChangeError({
621
+ reason: "internal",
622
+ message: "Failed to update password credential",
623
+ cause,
624
+ })));
625
+ if (Option.isNone(updated)) {
626
+ return yield* new PasswordChangeError({
627
+ reason: "password_missing",
628
+ message: "Password credential not found",
629
+ });
630
+ }
631
+ }),
632
+ });
633
+ };
634
+ export const PasswordManagementLive = Layer.effect(PasswordManagement)(Effect.gen(function* () {
635
+ const credentials = yield* CredentialStore;
636
+ const hasher = yield* PasswordHasher;
637
+ const crypto = yield* Crypto;
638
+ return makePasswordManagement({ credentials, hasher, crypto });
639
+ }));
640
+ export const PasswordFeatureLive = (options) => Layer.mergeAll(PasswordLoginLive, PasswordRegistrationLive, PasswordManagementLive).pipe(Layer.provideMerge(Pbkdf2PasswordHasherLive(options)));
252
641
  //# sourceMappingURL=Password.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Password.js","sourceRoot":"","sources":["../src/Password.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Password.js","sourceRoot":"","sources":["../src/Password.ts"],"names":[],"mappings":"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"}