@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,7 +1,11 @@
1
1
  import { Data, Effect, Layer, Option } from "effect";
2
2
  import { Column, Executor, Query, Scalar, Table } from "effect-qb/sqlite";
3
- import { ChallengeId, CredentialId, Email, SessionId, UnixMillis, UserId, } from "./Identifiers.js";
3
+ import { AuthFlowId, ChallengeId, CredentialId, Email, SessionId, UnixMillis, UserId, } from "./Identifiers.js";
4
+ import { JwtError, JwtRevocationStore } from "./Jwt.js";
5
+ import { LoginApprovalReviewError, LoginApprovalReviewStore, } from "./LoginApproval.js";
6
+ import { LoginRiskContext, LoginRiskSignal } from "./LoginRisk.js";
4
7
  import { CredentialStore, SessionStore, StorageError, UserStore, VerificationStore, } from "./Storage.js";
8
+ import { TrustedDeviceError, TrustedDeviceStore } from "./TrustedDevice.js";
5
9
  export class D1EffectQbError extends Data.TaggedError("D1EffectQbError") {
6
10
  }
7
11
  const makeAuthUserTable = (name) => Table.make(name, {
@@ -48,6 +52,38 @@ const makeAuthVerificationTable = (name) => Table.make(name, {
48
52
  metadata: Column.text().pipe(Column.nullable),
49
53
  consumed_at: Column.int().pipe(Column.nullable),
50
54
  });
55
+ const makeAuthLoginApprovalReviewTable = (name) => Table.make(name, {
56
+ approval_challenge_id: Column.text().pipe(Column.primaryKey),
57
+ flow_id: Column.text(),
58
+ user_id: Column.text(),
59
+ channel: Column.text(),
60
+ reason: Column.text(),
61
+ session_binding: Column.text(),
62
+ same_device_required: Column.int(),
63
+ status: Column.text(),
64
+ created_at: Column.int(),
65
+ expires_at: Column.int(),
66
+ reviewed_at: Column.int().pipe(Column.nullable),
67
+ reviewed_by: Column.text().pipe(Column.nullable),
68
+ denied_reason: Column.text().pipe(Column.nullable),
69
+ risk: Column.text().pipe(Column.nullable),
70
+ metadata: Column.text().pipe(Column.nullable),
71
+ review_metadata: Column.text().pipe(Column.nullable),
72
+ });
73
+ const makeAuthTrustedDeviceTable = (name) => Table.make(name, {
74
+ user_id: Column.text(),
75
+ token_hash: Column.text(),
76
+ created_at: Column.int(),
77
+ last_seen_at: Column.int(),
78
+ expires_at: Column.int(),
79
+ metadata: Column.text().pipe(Column.nullable),
80
+ });
81
+ const makeAuthJwtRevocationTable = (name) => Table.make(name, {
82
+ jwt_id: Column.text().pipe(Column.primaryKey),
83
+ revoked_at: Column.int(),
84
+ expires_at: Column.int().pipe(Column.nullable),
85
+ reason: Column.text().pipe(Column.nullable),
86
+ });
51
87
  const authSqliteTablesTypeId = Symbol.for("@effect-auth/core/EffectQbSqliteStorage/AuthSqliteTables");
52
88
  const jsonEncode = (value) => value === undefined ? null : JSON.stringify(value);
53
89
  const jsonDecode = (value) => {
@@ -84,6 +120,45 @@ const executePlan = (executor, plan) => executor.execute(plan);
84
120
  const omitUndefined = (record) => Object.fromEntries(Object.entries(record).filter(([, value]) => value !== undefined));
85
121
  const sessionMetadataEnvelopeKey = "__effectAuthSession";
86
122
  const isRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
123
+ const isLoginRiskLevel = (value) => value === "unknown" ||
124
+ value === "low" ||
125
+ value === "medium" ||
126
+ value === "high" ||
127
+ value === "critical";
128
+ const decodeLoginRiskSignal = (value) => {
129
+ const record = isRecord(value) ? value : {};
130
+ const level = isLoginRiskLevel(record.level) ? record.level : undefined;
131
+ return LoginRiskSignal.make({
132
+ type: typeof record.type === "string" ? record.type : "unknown",
133
+ ...(level === undefined ? {} : { level }),
134
+ ...(isRecord(record.metadata) ? { metadata: record.metadata } : {}),
135
+ });
136
+ };
137
+ const decodeLoginRiskContext = (value) => {
138
+ const decoded = jsonDecode(value);
139
+ if (!isRecord(decoded)) {
140
+ return undefined;
141
+ }
142
+ return LoginRiskContext.make({
143
+ level: isLoginRiskLevel(decoded.level) ? decoded.level : "unknown",
144
+ signals: Array.isArray(decoded.signals)
145
+ ? decoded.signals.map(decodeLoginRiskSignal)
146
+ : [],
147
+ ...(isRecord(decoded.metadata) ? { metadata: decoded.metadata } : {}),
148
+ });
149
+ };
150
+ const encodeLoginRiskSignal = (signal) => omitUndefined({
151
+ type: signal.type,
152
+ level: signal.level,
153
+ metadata: signal.metadata,
154
+ });
155
+ const encodeLoginRiskContext = (risk) => risk === undefined
156
+ ? null
157
+ : jsonEncode(omitUndefined({
158
+ level: risk.level,
159
+ signals: risk.signals.map(encodeLoginRiskSignal),
160
+ metadata: risk.metadata,
161
+ }));
87
162
  const decodeSessionMetadata = (value) => {
88
163
  const decoded = jsonDecode(value);
89
164
  const envelope = isRecord(decoded)
@@ -170,6 +245,49 @@ const decodeDefaultVerificationRow = (row) => omitUndefined({
170
245
  const decodeVerificationRow = (tables, row) => tables.verification.decode === undefined
171
246
  ? decodeDefaultVerificationRow(row)
172
247
  : tables.verification.decode(row);
248
+ const decodeDefaultLoginApprovalReviewRow = (row) => omitUndefined({
249
+ approvalChallengeId: ChallengeId(row.approvalChallengeId),
250
+ flowId: AuthFlowId(row.flowId),
251
+ userId: UserId(row.userId),
252
+ channel: row.channel,
253
+ reason: row.reason,
254
+ sessionBinding: row.sessionBinding,
255
+ sameDeviceRequired: decodeBoolean(row.sameDeviceRequired),
256
+ status: row.status,
257
+ createdAt: UnixMillis(Number(row.createdAt)),
258
+ expiresAt: UnixMillis(Number(row.expiresAt)),
259
+ reviewedAt: optionalUnixMillis(row.reviewedAt),
260
+ reviewedBy: row.reviewedBy === null
261
+ ? undefined
262
+ : row.reviewedBy,
263
+ deniedReason: row.deniedReason === null ? undefined : row.deniedReason,
264
+ risk: decodeLoginRiskContext(row.risk),
265
+ metadata: jsonDecode(row.metadata),
266
+ reviewMetadata: jsonDecode(row.reviewMetadata),
267
+ });
268
+ const decodeLoginApprovalReviewRow = (tables, row) => tables.loginApprovalReview.decode === undefined
269
+ ? decodeDefaultLoginApprovalReviewRow(row)
270
+ : tables.loginApprovalReview.decode(row);
271
+ const decodeDefaultTrustedDeviceRow = (row) => omitUndefined({
272
+ userId: UserId(row.userId),
273
+ tokenHash: row.tokenHash,
274
+ createdAt: UnixMillis(Number(row.createdAt)),
275
+ lastSeenAt: UnixMillis(Number(row.lastSeenAt)),
276
+ expiresAt: UnixMillis(Number(row.expiresAt)),
277
+ metadata: jsonDecode(row.metadata),
278
+ });
279
+ const decodeTrustedDeviceRow = (tables, row) => tables.trustedDevice.decode === undefined
280
+ ? decodeDefaultTrustedDeviceRow(row)
281
+ : tables.trustedDevice.decode(row);
282
+ const decodeDefaultJwtRevocationRow = (row) => omitUndefined({
283
+ jwtId: row.jwtId,
284
+ revokedAt: UnixMillis(Number(row.revokedAt)),
285
+ expiresAt: optionalUnixMillis(row.expiresAt),
286
+ reason: row.reason ?? undefined,
287
+ });
288
+ const decodeJwtRevocationRow = (tables, row) => tables.jwtRevocation.decode === undefined
289
+ ? decodeDefaultJwtRevocationRow(row)
290
+ : tables.jwtRevocation.decode(row);
173
291
  const userInsert = (row) => ({
174
292
  id: row.id,
175
293
  email: row.email,
@@ -189,6 +307,10 @@ const passwordCredentialInsert = (row) => ({
189
307
  revoked_at: row.revokedAt === undefined ? null : Number(row.revokedAt),
190
308
  metadata: jsonEncode(row.metadata),
191
309
  });
310
+ const passwordCredentialUpdatePassword = (input) => ({
311
+ password_hash: input.passwordHash,
312
+ updated_at: Number(input.updatedAt),
313
+ });
192
314
  const sessionInsert = (row) => ({
193
315
  id: row.id,
194
316
  user_id: row.userId,
@@ -214,6 +336,24 @@ const verificationInsert = (row) => ({
214
336
  metadata: jsonEncode(row.metadata),
215
337
  consumed_at: null,
216
338
  });
339
+ const loginApprovalReviewInsert = (row) => ({
340
+ approval_challenge_id: row.approvalChallengeId,
341
+ flow_id: row.flowId,
342
+ user_id: row.userId,
343
+ channel: row.channel,
344
+ reason: row.reason,
345
+ session_binding: row.sessionBinding,
346
+ same_device_required: row.sameDeviceRequired ? 1 : 0,
347
+ status: row.status,
348
+ created_at: Number(row.createdAt),
349
+ expires_at: Number(row.expiresAt),
350
+ reviewed_at: row.reviewedAt === undefined ? null : Number(row.reviewedAt),
351
+ reviewed_by: row.reviewedBy ?? null,
352
+ denied_reason: row.deniedReason ?? null,
353
+ risk: encodeLoginRiskContext(row.risk),
354
+ metadata: jsonEncode(row.metadata),
355
+ review_metadata: jsonEncode(row.reviewMetadata),
356
+ });
217
357
  const userMarkEmailVerifiedUpdate = (input) => ({
218
358
  email_verified: 1,
219
359
  updated_at: Number(input.updatedAt),
@@ -227,10 +367,13 @@ const sessionRotateUpdate = (input) => omitUndefined({
227
367
  rotated_at: Number(input.rotatedAt),
228
368
  expires_at: input.expiresAt === undefined ? undefined : Number(input.expiresAt),
229
369
  });
230
- const sessionUpdateClaimsUpdate = (row, input) => ({
370
+ const sessionUpdateClaimsUpdate = (row, input) => omitUndefined({
371
+ aal: input.aal,
372
+ amr: input.amr === undefined ? undefined : JSON.stringify(input.amr),
373
+ mfa_verified_at: input.mfaVerifiedAt === undefined ? undefined : Number(input.mfaVerifiedAt),
231
374
  metadata: encodeSessionMetadata({
232
375
  ...row,
233
- claims: input.claims,
376
+ claims: input.claims ?? row.claims,
234
377
  }),
235
378
  });
236
379
  const sessionRevokeUpdate = (input) => ({
@@ -239,11 +382,51 @@ const sessionRevokeUpdate = (input) => ({
239
382
  const verificationConsumeUpdate = (input) => ({
240
383
  consumed_at: Number(input.consumedAt),
241
384
  });
385
+ const loginApprovalReviewApproveUpdate = (input) => ({
386
+ status: "approved",
387
+ reviewed_at: Number(input.reviewedAt),
388
+ reviewed_by: input.reviewedBy ?? null,
389
+ review_metadata: jsonEncode(input.metadata),
390
+ });
391
+ const loginApprovalReviewDenyUpdate = (input) => ({
392
+ status: "denied",
393
+ reviewed_at: Number(input.reviewedAt),
394
+ reviewed_by: input.reviewedBy ?? null,
395
+ denied_reason: input.reason ?? null,
396
+ review_metadata: jsonEncode(input.metadata),
397
+ });
398
+ const trustedDeviceInsert = (input, createdAt) => ({
399
+ user_id: input.userId,
400
+ token_hash: input.tokenHash,
401
+ created_at: Number(createdAt),
402
+ last_seen_at: Number(input.now),
403
+ expires_at: Number(input.expiresAt),
404
+ metadata: jsonEncode(input.metadata),
405
+ });
406
+ const trustedDeviceUpdate = (input, existing) => ({
407
+ last_seen_at: Number(input.now),
408
+ expires_at: Number(input.expiresAt),
409
+ metadata: jsonEncode(input.metadata ?? existing.metadata),
410
+ });
411
+ const jwtRevocationInsert = (record) => ({
412
+ jwt_id: record.jwtId,
413
+ revoked_at: Number(record.revokedAt),
414
+ expires_at: record.expiresAt === undefined ? null : Number(record.expiresAt),
415
+ reason: record.reason ?? null,
416
+ });
417
+ const jwtRevocationUpdate = (record) => ({
418
+ revoked_at: Number(record.revokedAt),
419
+ expires_at: record.expiresAt === undefined ? null : Number(record.expiresAt),
420
+ reason: record.reason ?? null,
421
+ });
242
422
  const makeInternalAuthSqliteTables = (names = {}) => {
243
423
  const user = makeAuthUserTable(names.user ?? "auth_user");
244
424
  const credential = makeAuthCredentialTable(names.credential ?? "auth_credential");
245
425
  const session = makeAuthSessionTable(names.session ?? "auth_session");
246
426
  const verification = makeAuthVerificationTable(names.verification ?? "auth_verification");
427
+ const loginApprovalReview = makeAuthLoginApprovalReviewTable(names.loginApprovalReview ?? "auth_login_approval_review");
428
+ const trustedDevice = makeAuthTrustedDeviceTable(names.trustedDevice ?? "auth_trusted_device");
429
+ const jwtRevocation = makeAuthJwtRevocationTable(names.jwtRevocation ?? "auth_jwt_revocation");
247
430
  return {
248
431
  user: {
249
432
  table: user,
@@ -272,6 +455,7 @@ const makeInternalAuthSqliteTables = (names = {}) => {
272
455
  metadata: credential.metadata,
273
456
  },
274
457
  insertPassword: passwordCredentialInsert,
458
+ updatePassword: passwordCredentialUpdatePassword,
275
459
  },
276
460
  session: {
277
461
  table: session,
@@ -311,6 +495,54 @@ const makeInternalAuthSqliteTables = (names = {}) => {
311
495
  insert: verificationInsert,
312
496
  consume: verificationConsumeUpdate,
313
497
  },
498
+ loginApprovalReview: {
499
+ table: loginApprovalReview,
500
+ select: {
501
+ approvalChallengeId: loginApprovalReview.approval_challenge_id,
502
+ flowId: loginApprovalReview.flow_id,
503
+ userId: loginApprovalReview.user_id,
504
+ channel: loginApprovalReview.channel,
505
+ reason: loginApprovalReview.reason,
506
+ sessionBinding: loginApprovalReview.session_binding,
507
+ sameDeviceRequired: loginApprovalReview.same_device_required,
508
+ status: loginApprovalReview.status,
509
+ createdAt: loginApprovalReview.created_at,
510
+ expiresAt: loginApprovalReview.expires_at,
511
+ reviewedAt: loginApprovalReview.reviewed_at,
512
+ reviewedBy: loginApprovalReview.reviewed_by,
513
+ deniedReason: loginApprovalReview.denied_reason,
514
+ risk: loginApprovalReview.risk,
515
+ metadata: loginApprovalReview.metadata,
516
+ reviewMetadata: loginApprovalReview.review_metadata,
517
+ },
518
+ insertPending: loginApprovalReviewInsert,
519
+ approve: loginApprovalReviewApproveUpdate,
520
+ deny: loginApprovalReviewDenyUpdate,
521
+ },
522
+ trustedDevice: {
523
+ table: trustedDevice,
524
+ select: {
525
+ userId: trustedDevice.user_id,
526
+ tokenHash: trustedDevice.token_hash,
527
+ createdAt: trustedDevice.created_at,
528
+ lastSeenAt: trustedDevice.last_seen_at,
529
+ expiresAt: trustedDevice.expires_at,
530
+ metadata: trustedDevice.metadata,
531
+ },
532
+ insert: trustedDeviceInsert,
533
+ update: trustedDeviceUpdate,
534
+ },
535
+ jwtRevocation: {
536
+ table: jwtRevocation,
537
+ select: {
538
+ jwtId: jwtRevocation.jwt_id,
539
+ revokedAt: jwtRevocation.revoked_at,
540
+ expiresAt: jwtRevocation.expires_at,
541
+ reason: jwtRevocation.reason,
542
+ },
543
+ insert: jwtRevocationInsert,
544
+ update: jwtRevocationUpdate,
545
+ },
314
546
  };
315
547
  };
316
548
  const asAuthSqliteTables = (tables) => tables;
@@ -321,7 +553,24 @@ const selectUserColumns = (tables) => tables.user.select;
321
553
  const selectCredentialColumns = (tables) => tables.credential.select;
322
554
  const selectSessionColumns = (tables) => tables.session.select;
323
555
  const selectVerificationColumns = (tables) => tables.verification.select;
556
+ const selectLoginApprovalReviewColumns = (tables) => tables.loginApprovalReview.select;
557
+ const selectTrustedDeviceColumns = (tables) => tables.trustedDevice.select;
558
+ const selectJwtRevocationColumns = (tables) => tables.jwtRevocation.select;
324
559
  const storageError = (entity, operation, cause) => StorageError.fromUnknown(entity, operation, cause);
560
+ const loginApprovalReviewStoreError = (operation, cause) => new LoginApprovalReviewError({
561
+ message: `Login approval review ${operation} failed`,
562
+ cause,
563
+ });
564
+ const trustedDeviceStoreError = (operation, cause) => new TrustedDeviceError({
565
+ operation,
566
+ message: `Trusted device ${operation} failed`,
567
+ cause,
568
+ });
569
+ const jwtRevocationStoreError = (operation, cause) => new JwtError({
570
+ operation: "revocation",
571
+ message: `JWT revocation ${operation} failed`,
572
+ cause,
573
+ });
325
574
  const findUserById = (executor, tables, id, operation = "find") => executePlan(executor, Query.select(selectUserColumns(tables)).pipe(Query.from(tables.user.table), Query.where(queryEq(tables.user.select.id, id)))).pipe(Effect.mapError((cause) => storageError("user", operation, cause)), Effect.map((rows) => rows[0] === undefined
326
575
  ? Option.none()
327
576
  : Option.some(decodeUserRow(tables, rows[0]))));
@@ -331,12 +580,25 @@ const findUserByEmail = (executor, tables, email, operation = "find") => execute
331
580
  const findPasswordCredentialByUserId = (executor, tables, userId, operation = "find") => executePlan(executor, Query.select(selectCredentialColumns(tables)).pipe(Query.from(tables.credential.table), Query.where(queryEq(tables.credential.select.userId, userId)), Query.where(queryEq(tables.credential.select.type, "password")))).pipe(Effect.mapError((cause) => storageError("credential", operation, cause)), Effect.map((rows) => rows[0] === undefined
332
581
  ? Option.none()
333
582
  : Option.some(decodePasswordCredentialRow(tables, rows[0]))));
583
+ const findJwtRevocation = (executor, tables, jwtId, operation = "find") => executePlan(executor, Query.select(selectJwtRevocationColumns(tables)).pipe(Query.from(tables.jwtRevocation.table), Query.where(queryEq(tables.jwtRevocation.select.jwtId, jwtId)))).pipe(Effect.mapError((cause) => jwtRevocationStoreError(operation, cause)), Effect.map((rows) => rows[0] === undefined
584
+ ? Option.none()
585
+ : Option.some(decodeJwtRevocationRow(tables, rows[0]))));
334
586
  const findSessionById = (executor, tables, id, operation = "find") => executePlan(executor, Query.select(selectSessionColumns(tables)).pipe(Query.from(tables.session.table), Query.where(queryEq(tables.session.select.id, id)))).pipe(Effect.mapError((cause) => storageError("session", operation, cause)), Effect.map((rows) => rows[0] === undefined
335
587
  ? Option.none()
336
588
  : Option.some(decodeSessionRow(tables, rows[0]))));
589
+ const listSessionsByUser = (executor, tables, input, operation = "listByUser") => executePlan(executor, Query.select(selectSessionColumns(tables)).pipe(Query.from(tables.session.table), Query.where(queryEq(tables.session.select.userId, input.userId)))).pipe(Effect.mapError((cause) => storageError("session", operation, cause)), Effect.map((rows) => rows.map((row) => decodeSessionRow(tables, row))));
337
590
  const findVerificationById = (executor, tables, id, operation = "find") => executePlan(executor, Query.select(selectVerificationColumns(tables)).pipe(Query.from(tables.verification.table), Query.where(queryEq(tables.verification.select.id, id)))).pipe(Effect.mapError((cause) => storageError("verification", operation, cause)), Effect.map((rows) => rows[0] === undefined
338
591
  ? Option.none()
339
592
  : Option.some(decodeVerificationRow(tables, rows[0]))));
593
+ const findLoginApprovalReviewByApprovalChallengeId = (executor, tables, input, operation = "find") => executePlan(executor, Query.select(selectLoginApprovalReviewColumns(tables)).pipe(Query.from(tables.loginApprovalReview.table), Query.where(queryEq(tables.loginApprovalReview.select.approvalChallengeId, input.approvalChallengeId)))).pipe(Effect.mapError((cause) => loginApprovalReviewStoreError(operation, cause)), Effect.map((rows) => rows[0] === undefined
594
+ ? Option.none()
595
+ : Option.some(decodeLoginApprovalReviewRow(tables, rows[0]))));
596
+ const findTrustedDevice = (executor, tables, input, operation = "status") => executePlan(executor, Query.select(selectTrustedDeviceColumns(tables)).pipe(Query.from(tables.trustedDevice.table), Query.where(queryEq(tables.trustedDevice.select.userId, input.userId)), Query.where(queryEq(tables.trustedDevice.select.tokenHash, input.tokenHash)), Query.where(queryGt(tables.trustedDevice.select.expiresAt, Number(input.now))))).pipe(Effect.mapError((cause) => trustedDeviceStoreError(operation, cause)), Effect.map((rows) => rows[0] === undefined
597
+ ? Option.none()
598
+ : Option.some(decodeTrustedDeviceRow(tables, rows[0]))));
599
+ const findTrustedDeviceIncludingExpired = (executor, tables, input) => executePlan(executor, Query.select(selectTrustedDeviceColumns(tables)).pipe(Query.from(tables.trustedDevice.table), Query.where(queryEq(tables.trustedDevice.select.userId, input.userId)), Query.where(queryEq(tables.trustedDevice.select.tokenHash, input.tokenHash)))).pipe(Effect.mapError((cause) => trustedDeviceStoreError("trust", cause)), Effect.map((rows) => rows[0] === undefined
600
+ ? Option.none()
601
+ : Option.some(decodeTrustedDeviceRow(tables, rows[0]))));
340
602
  export const makeEffectQbSqliteUserStore = (executor, options = {}) => {
341
603
  const tables = options.tables ?? authSqliteTables;
342
604
  return UserStore.make({
@@ -353,12 +615,16 @@ export const makeEffectQbSqliteCredentialStore = (executor, options = {}) => {
353
615
  return CredentialStore.make({
354
616
  findPasswordByUserId: (userId) => findPasswordCredentialByUserId(executor, tables, userId),
355
617
  insertPassword: (row) => executePlan(executor, queryInsert(tables.credential.table, mutationValues(tables.credential.insertPassword(row)))).pipe(Effect.mapError((cause) => storageError("credential", "insert", cause)), Effect.asVoid),
618
+ updatePassword: (input) => executePlan(executor, queryUpdate(tables.credential.table, mutationValues(tables.credential.updatePassword(input))).pipe(Query.where(queryEq(tables.credential.select.userId, input.userId)), Query.where(queryEq(tables.credential.select.type, "password")), Query.where(queryIsNull(tables.credential.select.revokedAt)), Query.returning({ id: tables.credential.select.id }))).pipe(Effect.mapError((cause) => storageError("credential", "updatePassword", cause)), Effect.flatMap((rows) => rows[0] === undefined
619
+ ? Effect.succeed(Option.none())
620
+ : findPasswordCredentialByUserId(executor, tables, input.userId, "updatePassword"))),
356
621
  });
357
622
  };
358
623
  export const makeEffectQbSqliteSessionStore = (executor, options = {}) => {
359
624
  const tables = options.tables ?? authSqliteTables;
360
625
  return SessionStore.make({
361
626
  findById: (id) => findSessionById(executor, tables, id),
627
+ listByUser: (input) => listSessionsByUser(executor, tables, input),
362
628
  insert: (row) => executePlan(executor, queryInsert(tables.session.table, mutationValues(tables.session.insert(row)))).pipe(Effect.mapError((cause) => storageError("session", "insert", cause)), Effect.asVoid),
363
629
  refresh: (input) => {
364
630
  const query = queryUpdate(tables.session.table, mutationValues(tables.session.refresh(input))).pipe(Query.where(queryEq(tables.session.select.id, input.sessionId)), Query.returning(selectSessionColumns(tables)));
@@ -412,13 +678,57 @@ export const makeEffectQbSqliteVerificationStore = (executor, options = {}) => {
412
678
  },
413
679
  });
414
680
  };
681
+ export const makeEffectQbSqliteLoginApprovalReviewStore = (executor, options = {}) => {
682
+ const tables = options.tables ?? authSqliteTables;
683
+ return LoginApprovalReviewStore.make({
684
+ insertPending: (input) => executePlan(executor, queryInsert(tables.loginApprovalReview.table, mutationValues(tables.loginApprovalReview.insertPending(input)))).pipe(Effect.mapError((cause) => loginApprovalReviewStoreError("insert", cause)), Effect.as(input)),
685
+ findByApprovalChallengeId: (input) => findLoginApprovalReviewByApprovalChallengeId(executor, tables, input),
686
+ approve: (input) => executePlan(executor, queryUpdate(tables.loginApprovalReview.table, mutationValues(tables.loginApprovalReview.approve(input))).pipe(Query.where(queryEq(tables.loginApprovalReview.select.approvalChallengeId, input.approvalChallengeId)), Query.where(queryEq(tables.loginApprovalReview.select.status, "pending")), Query.returning(selectLoginApprovalReviewColumns(tables)))).pipe(Effect.mapError((cause) => loginApprovalReviewStoreError("approve", cause)), Effect.map((rows) => rows[0] === undefined
687
+ ? Option.none()
688
+ : Option.some(decodeLoginApprovalReviewRow(tables, rows[0])))),
689
+ deny: (input) => executePlan(executor, queryUpdate(tables.loginApprovalReview.table, mutationValues(tables.loginApprovalReview.deny(input))).pipe(Query.where(queryEq(tables.loginApprovalReview.select.approvalChallengeId, input.approvalChallengeId)), Query.where(queryEq(tables.loginApprovalReview.select.status, "pending")), Query.returning(selectLoginApprovalReviewColumns(tables)))).pipe(Effect.mapError((cause) => loginApprovalReviewStoreError("deny", cause)), Effect.map((rows) => rows[0] === undefined
690
+ ? Option.none()
691
+ : Option.some(decodeLoginApprovalReviewRow(tables, rows[0])))),
692
+ });
693
+ };
694
+ export const makeEffectQbSqliteTrustedDeviceStore = (executor, options = {}) => {
695
+ const tables = options.tables ?? authSqliteTables;
696
+ return TrustedDeviceStore.make({
697
+ find: (input) => findTrustedDevice(executor, tables, input),
698
+ upsert: (input) => findTrustedDeviceIncludingExpired(executor, tables, input).pipe(Effect.flatMap((existing) => {
699
+ if (Option.isNone(existing)) {
700
+ return executePlan(executor, queryInsert(tables.trustedDevice.table, mutationValues(tables.trustedDevice.insert(input, input.now)))).pipe(Effect.mapError((cause) => trustedDeviceStoreError("trust", cause)), Effect.asVoid);
701
+ }
702
+ return executePlan(executor, queryUpdate(tables.trustedDevice.table, mutationValues(tables.trustedDevice.update(input, existing.value))).pipe(Query.where(queryEq(tables.trustedDevice.select.userId, input.userId)), Query.where(queryEq(tables.trustedDevice.select.tokenHash, input.tokenHash)))).pipe(Effect.mapError((cause) => trustedDeviceStoreError("trust", cause)), Effect.asVoid);
703
+ }), Effect.flatMap(() => findTrustedDeviceIncludingExpired(executor, tables, input)), Effect.flatMap((stored) => Option.isSome(stored)
704
+ ? Effect.succeed(stored.value)
705
+ : Effect.fail(trustedDeviceStoreError("trust", "missing row")))),
706
+ });
707
+ };
708
+ export const makeEffectQbSqliteJwtRevocationStore = (executor, options = {}) => {
709
+ const tables = options.tables ?? authSqliteTables;
710
+ return JwtRevocationStore.make({
711
+ revoke: (record) => findJwtRevocation(executor, tables, record.jwtId, "revoke").pipe(Effect.flatMap((existing) => {
712
+ if (Option.isNone(existing)) {
713
+ return executePlan(executor, queryInsert(tables.jwtRevocation.table, mutationValues(tables.jwtRevocation.insert(record))));
714
+ }
715
+ return executePlan(executor, queryUpdate(tables.jwtRevocation.table, mutationValues(tables.jwtRevocation.update(record))).pipe(Query.where(queryEq(tables.jwtRevocation.select.jwtId, record.jwtId))));
716
+ }), Effect.mapError((cause) => cause instanceof JwtError
717
+ ? cause
718
+ : jwtRevocationStoreError("revoke", cause)), Effect.asVoid),
719
+ find: (jwtId) => findJwtRevocation(executor, tables, jwtId),
720
+ });
721
+ };
415
722
  export const makeEffectQbSqliteStorage = (executor, options = {}) => ({
416
723
  userStore: makeEffectQbSqliteUserStore(executor, options),
417
724
  credentialStore: makeEffectQbSqliteCredentialStore(executor, options),
418
725
  sessionStore: makeEffectQbSqliteSessionStore(executor, options),
419
726
  verificationStore: makeEffectQbSqliteVerificationStore(executor, options),
727
+ loginApprovalReviewStore: makeEffectQbSqliteLoginApprovalReviewStore(executor, options),
728
+ trustedDeviceStore: makeEffectQbSqliteTrustedDeviceStore(executor, options),
729
+ jwtRevocationStore: makeEffectQbSqliteJwtRevocationStore(executor, options),
420
730
  });
421
- export const EffectQbSqliteAuthStorageLive = (executor, options = {}) => Layer.mergeAll(Layer.succeed(UserStore)(makeEffectQbSqliteUserStore(executor, options)), Layer.succeed(CredentialStore)(makeEffectQbSqliteCredentialStore(executor, options)), Layer.succeed(SessionStore)(makeEffectQbSqliteSessionStore(executor, options)), Layer.succeed(VerificationStore)(makeEffectQbSqliteVerificationStore(executor, options)));
731
+ export const EffectQbSqliteAuthStorageLive = (executor, options = {}) => Layer.mergeAll(Layer.succeed(UserStore)(makeEffectQbSqliteUserStore(executor, options)), Layer.succeed(CredentialStore)(makeEffectQbSqliteCredentialStore(executor, options)), Layer.succeed(SessionStore)(makeEffectQbSqliteSessionStore(executor, options)), Layer.succeed(VerificationStore)(makeEffectQbSqliteVerificationStore(executor, options)), Layer.succeed(LoginApprovalReviewStore)(makeEffectQbSqliteLoginApprovalReviewStore(executor, options)), Layer.succeed(TrustedDeviceStore)(makeEffectQbSqliteTrustedDeviceStore(executor, options)), Layer.succeed(JwtRevocationStore)(makeEffectQbSqliteJwtRevocationStore(executor, options)));
422
732
  export const makeD1EffectQbSqliteExecutor = (database) => Executor.make({
423
733
  driver: Executor.driver((query) => Effect.tryPromise({
424
734
  try: () => database
@@ -1 +1 @@
1
- {"version":3,"file":"EffectQbSqliteStorage.js","sourceRoot":"","sources":["../src/EffectQbSqliteStorage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EffectQbSqliteStorage.js","sourceRoot":"","sources":["../src/EffectQbSqliteStorage.ts"],"names":[],"mappings":"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"}