@effect-auth/core 0.1.0-alpha.1 → 0.1.0-alpha.13

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 (255) hide show
  1. package/README.md +790 -73
  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 +335 -1
  7. package/dist/AuditLog.d.ts.map +1 -1
  8. package/dist/AuditLog.js +318 -1
  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 +462 -36
  15. package/dist/AuthFlow.d.ts.map +1 -1
  16. package/dist/AuthFlow.js +657 -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 +24 -4
  23. package/dist/Challenge.d.ts.map +1 -1
  24. package/dist/Challenge.js +167 -1
  25. package/dist/Challenge.js.map +1 -1
  26. package/dist/Client.d.ts +449 -0
  27. package/dist/Client.d.ts.map +1 -0
  28. package/dist/Client.js +985 -0
  29. package/dist/Client.js.map +1 -0
  30. package/dist/Crypto.d.ts +6 -1
  31. package/dist/Crypto.d.ts.map +1 -1
  32. package/dist/Crypto.js +62 -1
  33. package/dist/Crypto.js.map +1 -1
  34. package/dist/DomainVerification.d.ts +200 -0
  35. package/dist/DomainVerification.d.ts.map +1 -0
  36. package/dist/DomainVerification.js +304 -0
  37. package/dist/DomainVerification.js.map +1 -0
  38. package/dist/EffectQbSqliteStorage.d.ts +985 -0
  39. package/dist/EffectQbSqliteStorage.d.ts.map +1 -0
  40. package/dist/EffectQbSqliteStorage.js +2824 -0
  41. package/dist/EffectQbSqliteStorage.js.map +1 -0
  42. package/dist/EmailOtp.d.ts +120 -0
  43. package/dist/EmailOtp.d.ts.map +1 -0
  44. package/dist/EmailOtp.js +286 -0
  45. package/dist/EmailOtp.js.map +1 -0
  46. package/dist/EmailVerification.d.ts +121 -0
  47. package/dist/EmailVerification.d.ts.map +1 -0
  48. package/dist/EmailVerification.js +200 -0
  49. package/dist/EmailVerification.js.map +1 -0
  50. package/dist/HttpApi/Api.d.ts +2410 -0
  51. package/dist/HttpApi/Api.d.ts.map +1 -0
  52. package/dist/HttpApi/Api.js +3026 -0
  53. package/dist/HttpApi/Api.js.map +1 -0
  54. package/dist/HttpApi/Endpoints.d.ts +1073 -0
  55. package/dist/HttpApi/Endpoints.d.ts.map +1 -0
  56. package/dist/HttpApi/Endpoints.js +428 -0
  57. package/dist/HttpApi/Endpoints.js.map +1 -0
  58. package/dist/HttpApi/Errors.d.ts +114 -0
  59. package/dist/HttpApi/Errors.d.ts.map +1 -0
  60. package/dist/HttpApi/Errors.js +230 -0
  61. package/dist/HttpApi/Errors.js.map +1 -0
  62. package/dist/HttpApi/Schemas.d.ts +1254 -0
  63. package/dist/HttpApi/Schemas.d.ts.map +1 -0
  64. package/dist/HttpApi/Schemas.js +862 -0
  65. package/dist/HttpApi/Schemas.js.map +1 -0
  66. package/dist/HttpApi/Security.d.ts +159 -0
  67. package/dist/HttpApi/Security.d.ts.map +1 -0
  68. package/dist/HttpApi/Security.js +530 -0
  69. package/dist/HttpApi/Security.js.map +1 -0
  70. package/dist/HttpApi/Transport.d.ts +65 -0
  71. package/dist/HttpApi/Transport.d.ts.map +1 -0
  72. package/dist/HttpApi/Transport.js +311 -0
  73. package/dist/HttpApi/Transport.js.map +1 -0
  74. package/dist/HttpApi/index.d.ts +8 -0
  75. package/dist/HttpApi/index.d.ts.map +1 -0
  76. package/dist/HttpApi/index.js +7 -0
  77. package/dist/HttpApi/index.js.map +1 -0
  78. package/dist/HttpApi.d.ts +2 -0
  79. package/dist/HttpApi.d.ts.map +1 -0
  80. package/dist/HttpApi.js +2 -0
  81. package/dist/HttpApi.js.map +1 -0
  82. package/dist/Identifiers.d.ts +3 -0
  83. package/dist/Identifiers.d.ts.map +1 -1
  84. package/dist/Identifiers.js +2 -0
  85. package/dist/Identifiers.js.map +1 -1
  86. package/dist/IncidentAction.d.ts +80 -0
  87. package/dist/IncidentAction.d.ts.map +1 -0
  88. package/dist/IncidentAction.js +158 -0
  89. package/dist/IncidentAction.js.map +1 -0
  90. package/dist/Internal.d.ts +7 -0
  91. package/dist/Internal.d.ts.map +1 -0
  92. package/dist/Internal.js +12 -0
  93. package/dist/Internal.js.map +1 -0
  94. package/dist/Jwt.d.ts +281 -0
  95. package/dist/Jwt.d.ts.map +1 -0
  96. package/dist/Jwt.js +721 -0
  97. package/dist/Jwt.js.map +1 -0
  98. package/dist/LoginApproval.d.ts +314 -0
  99. package/dist/LoginApproval.d.ts.map +1 -0
  100. package/dist/LoginApproval.js +551 -0
  101. package/dist/LoginApproval.js.map +1 -0
  102. package/dist/LoginNotification.d.ts +183 -0
  103. package/dist/LoginNotification.d.ts.map +1 -0
  104. package/dist/LoginNotification.js +329 -0
  105. package/dist/LoginNotification.js.map +1 -0
  106. package/dist/LoginRisk.d.ts +344 -0
  107. package/dist/LoginRisk.d.ts.map +1 -0
  108. package/dist/LoginRisk.js +484 -0
  109. package/dist/LoginRisk.js.map +1 -0
  110. package/dist/MachineAuth.d.ts +73 -0
  111. package/dist/MachineAuth.d.ts.map +1 -0
  112. package/dist/MachineAuth.js +147 -0
  113. package/dist/MachineAuth.js.map +1 -0
  114. package/dist/MagicLink.d.ts +85 -0
  115. package/dist/MagicLink.d.ts.map +1 -0
  116. package/dist/MagicLink.js +206 -0
  117. package/dist/MagicLink.js.map +1 -0
  118. package/dist/Mailer.d.ts +147 -0
  119. package/dist/Mailer.d.ts.map +1 -0
  120. package/dist/Mailer.js +208 -0
  121. package/dist/Mailer.js.map +1 -0
  122. package/dist/OAuth.d.ts +1890 -0
  123. package/dist/OAuth.d.ts.map +1 -0
  124. package/dist/OAuth.js +3063 -0
  125. package/dist/OAuth.js.map +1 -0
  126. package/dist/Passkey.d.ts +334 -0
  127. package/dist/Passkey.d.ts.map +1 -0
  128. package/dist/Passkey.js +422 -0
  129. package/dist/Passkey.js.map +1 -0
  130. package/dist/PasskeySimpleWebAuthn.d.ts +11 -0
  131. package/dist/PasskeySimpleWebAuthn.d.ts.map +1 -0
  132. package/dist/PasskeySimpleWebAuthn.js +181 -0
  133. package/dist/PasskeySimpleWebAuthn.js.map +1 -0
  134. package/dist/Password.d.ts +237 -0
  135. package/dist/Password.d.ts.map +1 -0
  136. package/dist/Password.js +641 -0
  137. package/dist/Password.js.map +1 -0
  138. package/dist/Policy.d.ts +7 -4
  139. package/dist/Policy.d.ts.map +1 -1
  140. package/dist/Policy.js +28 -5
  141. package/dist/Policy.js.map +1 -1
  142. package/dist/Privacy.d.ts +15 -0
  143. package/dist/Privacy.d.ts.map +1 -1
  144. package/dist/Privacy.js +58 -1
  145. package/dist/Privacy.js.map +1 -1
  146. package/dist/RateLimiter.d.ts +104 -0
  147. package/dist/RateLimiter.d.ts.map +1 -0
  148. package/dist/RateLimiter.js +118 -0
  149. package/dist/RateLimiter.js.map +1 -0
  150. package/dist/RecoveryCode.d.ts +169 -0
  151. package/dist/RecoveryCode.d.ts.map +1 -0
  152. package/dist/RecoveryCode.js +299 -0
  153. package/dist/RecoveryCode.js.map +1 -0
  154. package/dist/RefreshToken.d.ts +222 -0
  155. package/dist/RefreshToken.d.ts.map +1 -0
  156. package/dist/RefreshToken.js +342 -0
  157. package/dist/RefreshToken.js.map +1 -0
  158. package/dist/Retention.d.ts +98 -0
  159. package/dist/Retention.d.ts.map +1 -0
  160. package/dist/Retention.js +204 -0
  161. package/dist/Retention.js.map +1 -0
  162. package/dist/SecurityTimeline.d.ts +78 -0
  163. package/dist/SecurityTimeline.d.ts.map +1 -0
  164. package/dist/SecurityTimeline.js +461 -0
  165. package/dist/SecurityTimeline.js.map +1 -0
  166. package/dist/Sessions.d.ts +123 -11
  167. package/dist/Sessions.d.ts.map +1 -1
  168. package/dist/Sessions.js +534 -1
  169. package/dist/Sessions.js.map +1 -1
  170. package/dist/StepUp.d.ts +44 -0
  171. package/dist/StepUp.d.ts.map +1 -0
  172. package/dist/StepUp.js +82 -0
  173. package/dist/StepUp.js.map +1 -0
  174. package/dist/Storage.d.ts +73 -5
  175. package/dist/Storage.d.ts.map +1 -1
  176. package/dist/Storage.js +11 -1
  177. package/dist/Storage.js.map +1 -1
  178. package/dist/StorageMigrations.d.ts +23 -1
  179. package/dist/StorageMigrations.d.ts.map +1 -1
  180. package/dist/StorageMigrations.js +462 -2
  181. package/dist/StorageMigrations.js.map +1 -1
  182. package/dist/Testing.d.ts +9 -1
  183. package/dist/Testing.d.ts.map +1 -1
  184. package/dist/Testing.js +30 -2
  185. package/dist/Testing.js.map +1 -1
  186. package/dist/Totp.d.ts +220 -0
  187. package/dist/Totp.d.ts.map +1 -0
  188. package/dist/Totp.js +477 -0
  189. package/dist/Totp.js.map +1 -0
  190. package/dist/TrustedDevice.d.ts +127 -0
  191. package/dist/TrustedDevice.d.ts.map +1 -0
  192. package/dist/TrustedDevice.js +252 -0
  193. package/dist/TrustedDevice.js.map +1 -0
  194. package/dist/WaitUntil.d.ts.map +1 -1
  195. package/dist/WaitUntil.js +1 -1
  196. package/dist/WaitUntil.js.map +1 -1
  197. package/dist/Webhook.d.ts +380 -0
  198. package/dist/Webhook.d.ts.map +1 -0
  199. package/dist/Webhook.js +592 -0
  200. package/dist/Webhook.js.map +1 -0
  201. package/dist/alchemy/cloudflare/Email.d.ts +25 -0
  202. package/dist/alchemy/cloudflare/Email.d.ts.map +1 -0
  203. package/dist/alchemy/cloudflare/Email.js +117 -0
  204. package/dist/alchemy/cloudflare/Email.js.map +1 -0
  205. package/dist/alchemy/cloudflare/RateLimitDurableObject.d.ts +34 -0
  206. package/dist/alchemy/cloudflare/RateLimitDurableObject.d.ts.map +1 -0
  207. package/dist/alchemy/cloudflare/RateLimitDurableObject.js +30 -0
  208. package/dist/alchemy/cloudflare/RateLimitDurableObject.js.map +1 -0
  209. package/dist/cloudflare/Email.d.ts +25 -0
  210. package/dist/cloudflare/Email.d.ts.map +1 -0
  211. package/dist/cloudflare/Email.js +153 -0
  212. package/dist/cloudflare/Email.js.map +1 -0
  213. package/dist/cloudflare/RateLimitDurableObject.d.ts +50 -0
  214. package/dist/cloudflare/RateLimitDurableObject.d.ts.map +1 -0
  215. package/dist/cloudflare/RateLimitDurableObject.js +51 -0
  216. package/dist/cloudflare/RateLimitDurableObject.js.map +1 -0
  217. package/dist/index.d.ts +25 -0
  218. package/dist/index.d.ts.map +1 -1
  219. package/dist/index.js +25 -0
  220. package/dist/index.js.map +1 -1
  221. package/dist/internal/RateLimitDurableObject.d.ts +32 -0
  222. package/dist/internal/RateLimitDurableObject.d.ts.map +1 -0
  223. package/dist/internal/RateLimitDurableObject.js +80 -0
  224. package/dist/internal/RateLimitDurableObject.js.map +1 -0
  225. package/migrations/0002_auth_password.sql +25 -0
  226. package/migrations/0003_auth_login_approval_review.sql +22 -0
  227. package/migrations/0004_auth_trusted_device.sql +12 -0
  228. package/migrations/0005_auth_passkey.sql +17 -0
  229. package/migrations/0006_auth_totp_factor.sql +17 -0
  230. package/migrations/0007_auth_recovery_code.sql +13 -0
  231. package/migrations/0008_auth_api_key.sql +17 -0
  232. package/migrations/0009_auth_refresh_token.sql +21 -0
  233. package/migrations/0010_auth_jwt_revocation.sql +8 -0
  234. package/migrations/0011_auth_oauth_account.sql +16 -0
  235. package/migrations/0012_auth_oauth_provider_token_vault.sql +20 -0
  236. package/migrations/0013_auth_security_timeline.sql +16 -0
  237. package/migrations/0014_auth_webhook_outbox.sql +16 -0
  238. package/migrations/0015_auth_webhook_replay.sql +7 -0
  239. package/migrations/0016_auth_login_risk_history.sql +23 -0
  240. package/migrations/0017_auth_audit_log.sql +17 -0
  241. package/migrations/0018_auth_domain_verification.sql +18 -0
  242. package/migrations/0019_auth_oauth_authorization_code.sql +17 -0
  243. package/migrations/0020_auth_oauth_provider_mode_token.sql +24 -0
  244. package/migrations/0021_auth_oauth_client_secret.sql +14 -0
  245. package/migrations/0022_auth_oauth_client.sql +15 -0
  246. package/migrations/0023_auth_oauth_consent.sql +15 -0
  247. package/package.json +162 -26
  248. package/dist/D1Kysely.d.ts +0 -40
  249. package/dist/D1Kysely.d.ts.map +0 -1
  250. package/dist/D1Kysely.js +0 -75
  251. package/dist/D1Kysely.js.map +0 -1
  252. package/dist/KyselyStorage.d.ts +0 -41
  253. package/dist/KyselyStorage.d.ts.map +0 -1
  254. package/dist/KyselyStorage.js +0 -176
  255. package/dist/KyselyStorage.js.map +0 -1
package/dist/StepUp.js ADDED
@@ -0,0 +1,82 @@
1
+ import { Data, Duration, Effect } from "effect";
2
+ import { currentUnixMillis } from "./Internal.js";
3
+ import { AuthzError } from "./Policy.js";
4
+ import { CurrentSession } from "./Sessions.js";
5
+ export class StepUpRequired extends Data.TaggedError("StepUpRequired") {
6
+ }
7
+ const aalRank = {
8
+ aal1: 1,
9
+ aal2: 2,
10
+ aal3: 3,
11
+ };
12
+ export const aalAtLeast = (actual, minimum) => aalRank[actual] >= aalRank[minimum];
13
+ const aalFailure = (session, requiredAal) => aalAtLeast(session.aal, requiredAal)
14
+ ? undefined
15
+ : {
16
+ reason: "aal-too-low",
17
+ requiredAal,
18
+ currentAal: session.aal,
19
+ };
20
+ const freshnessFailure = (session, now, maxAge, verifiedAt = Number(session.authTime)) => {
21
+ const maxAgeMillis = Duration.toMillis(maxAge);
22
+ const authAgeMillis = Math.max(0, now - verifiedAt);
23
+ return authAgeMillis <= maxAgeMillis
24
+ ? undefined
25
+ : {
26
+ reason: "auth-too-old",
27
+ maxAgeMillis,
28
+ authAgeMillis,
29
+ };
30
+ };
31
+ const freshnessReferenceTime = (session, requiredAal) => requiredAal !== undefined &&
32
+ aalRank[requiredAal] >= aalRank.aal2 &&
33
+ session.mfaVerifiedAt !== undefined
34
+ ? Number(session.mfaVerifiedAt)
35
+ : Number(session.authTime);
36
+ const sessionRequirementFailures = (session, noSessionRequirements) => {
37
+ if (noSessionRequirements === undefined || noSessionRequirements.length === 0) {
38
+ return [];
39
+ }
40
+ const activeRequirements = session.claims?.requirements ?? [];
41
+ return noSessionRequirements.flatMap((requirement) => activeRequirements.includes(requirement)
42
+ ? [
43
+ {
44
+ reason: "session-requirement-unsatisfied",
45
+ requirement,
46
+ },
47
+ ]
48
+ : []);
49
+ };
50
+ export const checkStepUp = (requirement) => Effect.gen(function* () {
51
+ const session = yield* CurrentSession;
52
+ const now = requirement.maxAge === undefined ? undefined : yield* currentUnixMillis;
53
+ const failures = [
54
+ ...(requirement.aal === undefined
55
+ ? []
56
+ : [aalFailure(session, requirement.aal)].filter((failure) => failure !== undefined)),
57
+ ...(requirement.maxAge === undefined || now === undefined
58
+ ? []
59
+ : [
60
+ freshnessFailure(session, Number(now), requirement.maxAge, freshnessReferenceTime(session, requirement.aal)),
61
+ ].filter((failure) => failure !== undefined)),
62
+ ...sessionRequirementFailures(session, requirement.noSessionRequirements),
63
+ ];
64
+ return failures.length === 0
65
+ ? { _tag: "Satisfied", session }
66
+ : { _tag: "Required", session, failures };
67
+ });
68
+ export const requireStepUp = (requirement) => Effect.flatMap(checkStepUp(requirement), (decision) => decision._tag === "Satisfied"
69
+ ? Effect.void
70
+ : Effect.fail(new StepUpRequired({
71
+ failures: decision.failures,
72
+ session: decision.session,
73
+ })));
74
+ export const requireAal = (aal) => requireStepUp({ aal });
75
+ export const requireFresh = (maxAge) => requireStepUp({ maxAge });
76
+ export const requireNoSessionRequirements = (...requirements) => requireStepUp({ noSessionRequirements: requirements });
77
+ export const toPolicy = (requirement, policyId) => requireStepUp(requirement).pipe(Effect.mapError((cause) => new AuthzError({
78
+ reason: "step-up-required",
79
+ policyId,
80
+ cause,
81
+ })));
82
+ //# sourceMappingURL=StepUp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StepUp.js","sourceRoot":"","sources":["../src/StepUp.ts"],"names":[],"mappings":"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"}
package/dist/Storage.d.ts CHANGED
@@ -1,9 +1,10 @@
1
- import { Context, Effect } from "effect";
1
+ import type { Effect } from "effect";
2
+ import { Context } from "effect";
2
3
  import type * as Option from "effect/Option";
3
4
  import type { ChallengeType } from "./Challenge.js";
4
- import type { ChallengeId, SessionId, UnixMillis, UserId } from "./Identifiers.js";
5
- import type { AuthAssuranceLevel, AuthMethodReference } from "./Sessions.js";
6
- export type StorageEntity = "session" | "verification" | (string & {});
5
+ import type { ChallengeId, CredentialId, Email, SessionId, UnixMillis, UserId } from "./Identifiers.js";
6
+ import type { AuthAssuranceLevel, AuthMethodReference, SessionClaims } from "./Sessions.js";
7
+ export type StorageEntity = "user" | "credential" | "session" | "verification" | (string & {});
7
8
  export type StorageOperation = "find" | "insert" | "update" | "delete" | "consume" | (string & {});
8
9
  declare const StorageError_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 & {
9
10
  readonly _tag: "StorageError";
@@ -18,6 +19,60 @@ export declare class StorageError extends StorageError_base<{
18
19
  export declare namespace StorageError {
19
20
  const fromUnknown: (entity: StorageEntity, operation: StorageOperation, cause: unknown, message?: string) => StorageError;
20
21
  }
22
+ export interface NewUserRow {
23
+ readonly id: UserId;
24
+ readonly email: Email;
25
+ readonly emailVerified: boolean;
26
+ readonly createdAt: UnixMillis;
27
+ readonly updatedAt: UnixMillis;
28
+ readonly disabledAt?: UnixMillis;
29
+ readonly metadata?: Readonly<Record<string, unknown>>;
30
+ }
31
+ export interface UserRow extends NewUserRow {
32
+ }
33
+ export interface UserMarkEmailVerifiedInput {
34
+ readonly userId: UserId;
35
+ readonly updatedAt: UnixMillis;
36
+ }
37
+ export interface UserStoreService {
38
+ readonly findById: (id: UserId) => Effect.Effect<Option.Option<UserRow>, StorageError>;
39
+ readonly findByEmail: (email: Email) => Effect.Effect<Option.Option<UserRow>, StorageError>;
40
+ readonly insert: (row: NewUserRow) => Effect.Effect<void, StorageError>;
41
+ readonly markEmailVerified: (input: UserMarkEmailVerifiedInput) => Effect.Effect<Option.Option<UserRow>, StorageError>;
42
+ }
43
+ declare const UserStore_base: Context.ServiceClass<UserStore, "auth/UserStore", UserStoreService>;
44
+ export declare class UserStore extends UserStore_base {
45
+ }
46
+ export declare namespace UserStore {
47
+ const make: (service: UserStoreService) => UserStoreService;
48
+ }
49
+ export interface NewPasswordCredentialRow {
50
+ readonly id: CredentialId;
51
+ readonly userId: UserId;
52
+ readonly passwordHash: string;
53
+ readonly createdAt: UnixMillis;
54
+ readonly updatedAt: UnixMillis;
55
+ readonly revokedAt?: UnixMillis;
56
+ readonly metadata?: Readonly<Record<string, unknown>>;
57
+ }
58
+ export interface PasswordCredentialRow extends NewPasswordCredentialRow {
59
+ }
60
+ export interface PasswordCredentialUpdatePasswordInput {
61
+ readonly userId: UserId;
62
+ readonly passwordHash: string;
63
+ readonly updatedAt: UnixMillis;
64
+ }
65
+ export interface CredentialStoreService {
66
+ readonly findPasswordByUserId: (userId: UserId) => Effect.Effect<Option.Option<PasswordCredentialRow>, StorageError>;
67
+ readonly insertPassword: (row: NewPasswordCredentialRow) => Effect.Effect<void, StorageError>;
68
+ readonly updatePassword: (input: PasswordCredentialUpdatePasswordInput) => Effect.Effect<Option.Option<PasswordCredentialRow>, StorageError>;
69
+ }
70
+ declare const CredentialStore_base: Context.ServiceClass<CredentialStore, "auth/CredentialStore", CredentialStoreService>;
71
+ export declare class CredentialStore extends CredentialStore_base {
72
+ }
73
+ export declare namespace CredentialStore {
74
+ const make: (service: CredentialStoreService) => CredentialStoreService;
75
+ }
21
76
  export interface NewSessionRow {
22
77
  readonly id: SessionId;
23
78
  readonly userId: UserId;
@@ -26,7 +81,8 @@ export interface NewSessionRow {
26
81
  readonly expiresAt: UnixMillis;
27
82
  readonly authTime: UnixMillis;
28
83
  readonly aal: AuthAssuranceLevel;
29
- readonly amr: ReadonlyArray<AuthMethodReference>;
84
+ readonly amr: readonly AuthMethodReference[];
85
+ readonly claims?: SessionClaims;
30
86
  readonly mfaVerifiedAt?: UnixMillis;
31
87
  readonly metadata?: Readonly<Record<string, unknown>>;
32
88
  }
@@ -40,12 +96,22 @@ export interface SessionRefreshStoreInput {
40
96
  readonly expiresAt: UnixMillis;
41
97
  readonly lastSeenAt?: UnixMillis;
42
98
  }
99
+ export interface SessionListByUserStoreInput {
100
+ readonly userId: UserId;
101
+ }
43
102
  export interface SessionRotateStoreInput {
44
103
  readonly sessionId: SessionId;
45
104
  readonly secretHash: string;
46
105
  readonly rotatedAt: UnixMillis;
47
106
  readonly expiresAt?: UnixMillis;
48
107
  }
108
+ export interface SessionUpdateClaimsStoreInput {
109
+ readonly sessionId: SessionId;
110
+ readonly claims?: SessionClaims;
111
+ readonly aal?: AuthAssuranceLevel;
112
+ readonly amr?: readonly AuthMethodReference[];
113
+ readonly mfaVerifiedAt?: UnixMillis;
114
+ }
49
115
  export interface SessionRevokeStoreInput {
50
116
  readonly sessionId: SessionId;
51
117
  readonly revokedAt: UnixMillis;
@@ -58,9 +124,11 @@ export interface SessionRevokeAllForUserStoreInput {
58
124
  }
59
125
  export interface SessionStoreService {
60
126
  readonly findById: (id: SessionId) => Effect.Effect<Option.Option<SessionRow>, StorageError>;
127
+ readonly listByUser: (input: SessionListByUserStoreInput) => Effect.Effect<readonly SessionRow[], StorageError>;
61
128
  readonly insert: (row: NewSessionRow) => Effect.Effect<void, StorageError>;
62
129
  readonly refresh: (input: SessionRefreshStoreInput) => Effect.Effect<Option.Option<SessionRow>, StorageError>;
63
130
  readonly rotate: (input: SessionRotateStoreInput) => Effect.Effect<Option.Option<SessionRow>, StorageError>;
131
+ readonly updateClaims: (input: SessionUpdateClaimsStoreInput) => Effect.Effect<Option.Option<SessionRow>, StorageError>;
64
132
  readonly revoke: (input: SessionRevokeStoreInput) => Effect.Effect<void, StorageError>;
65
133
  readonly revokeAllForUser: (input: SessionRevokeAllForUserStoreInput) => Effect.Effect<void, StorageError>;
66
134
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Storage.d.ts","sourceRoot":"","sources":["../src/Storage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Storage.d.ts","sourceRoot":"","sources":["../src/Storage.ts"],"names":[],"mappings":"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"}
package/dist/Storage.js CHANGED
@@ -1,9 +1,19 @@
1
- import { Context, Data, Effect } from "effect";
1
+ import { Context, Data } from "effect";
2
2
  export class StorageError extends Data.TaggedError("StorageError") {
3
3
  }
4
4
  (function (StorageError) {
5
5
  StorageError.fromUnknown = (entity, operation, cause, message = `${entity} ${operation} failed`) => new StorageError({ entity, operation, message, cause });
6
6
  })(StorageError || (StorageError = {}));
7
+ export class UserStore extends Context.Service()("auth/UserStore") {
8
+ }
9
+ (function (UserStore) {
10
+ UserStore.make = (service) => UserStore.of(service);
11
+ })(UserStore || (UserStore = {}));
12
+ export class CredentialStore extends Context.Service()("auth/CredentialStore") {
13
+ }
14
+ (function (CredentialStore) {
15
+ CredentialStore.make = (service) => CredentialStore.of(service);
16
+ })(CredentialStore || (CredentialStore = {}));
7
17
  export class SessionStore extends Context.Service()("auth/SessionStore") {
8
18
  }
9
19
  (function (SessionStore) {
@@ -1 +1 @@
1
- {"version":3,"file":"Storage.js","sourceRoot":"","sources":["../src/Storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAW9C,MAAM,OAAO,YAAa,SAAQ,IAAI,CAAC,WAAW,CAAC,cAAc,CAK/D;CAAG;AAEL,WAAiB,YAAY;IACd,wBAAW,GAAG,CACzB,MAAqB,EACrB,SAA2B,EAC3B,KAAc,EACd,OAAO,GAAG,GAAG,MAAM,IAAI,SAAS,SAAS,EAC3B,EAAE,CAAC,IAAI,YAAY,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAA;AAC5E,CAAC,EAPgB,YAAY,KAAZ,YAAY,QAO5B;AAuDD,MAAM,OAAO,YAAa,SAAQ,OAAO,CAAC,OAAO,EAAqC,CAAC,mBAAmB,CAAC;CAAG;AAE9G,WAAiB,YAAY;IACd,iBAAI,GAAG,CAAC,OAA4B,EAAuB,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,OAAO,CAAC,CAAA;AACrG,CAAC,EAFgB,YAAY,KAAZ,YAAY,QAE5B;AAkCD,MAAM,OAAO,iBAAkB,SAAQ,OAAO,CAAC,OAAO,EAA+C,CACnG,wBAAwB,CACzB;CAAG;AAEJ,WAAiB,iBAAiB;IACnB,sBAAI,GAAG,CAAC,OAAiC,EAA4B,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC,OAAO,CAAC,CAAA;AACpH,CAAC,EAFgB,iBAAiB,KAAjB,iBAAiB,QAEjC"}
1
+ {"version":3,"file":"Storage.js","sourceRoot":"","sources":["../src/Storage.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAiCvC,MAAM,OAAO,YAAa,SAAQ,IAAI,CAAC,WAAW,CAAC,cAAc,CAK/D;CAAG;AAEL,WAAiB,YAAY;IACd,wBAAW,GAAG,CACzB,MAAqB,EACrB,SAA2B,EAC3B,KAAc,EACd,OAAO,GAAG,GAAG,MAAM,IAAI,SAAS,SAAS,EAC3B,EAAE,CAAC,IAAI,YAAY,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;AAC7E,CAAC,EAPgB,YAAY,KAAZ,YAAY,QAO5B;AAgCD,MAAM,OAAO,SAAU,SAAQ,OAAO,CAAC,OAAO,EAA+B,CAC3E,gBAAgB,CACjB;CAAG;AAEJ,WAAiB,SAAS;IACX,cAAI,GAAG,CAAC,OAAyB,EAAoB,EAAE,CAClE,SAAS,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;AAC1B,CAAC,EAHgB,SAAS,KAAT,SAAS,QAGzB;AAgCD,MAAM,OAAO,eAAgB,SAAQ,OAAO,CAAC,OAAO,EAGjD,CAAC,sBAAsB,CAAC;CAAG;AAE9B,WAAiB,eAAe;IACjB,oBAAI,GAAG,CAClB,OAA+B,EACP,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;AAC3D,CAAC,EAJgB,eAAe,KAAf,eAAe,QAI/B;AAoFD,MAAM,OAAO,YAAa,SAAQ,OAAO,CAAC,OAAO,EAG9C,CAAC,mBAAmB,CAAC;CAAG;AAE3B,WAAiB,YAAY;IACd,iBAAI,GAAG,CAAC,OAA4B,EAAuB,EAAE,CACxE,YAAY,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;AAC7B,CAAC,EAHgB,YAAY,KAAZ,YAAY,QAG5B;AA0CD,MAAM,OAAO,iBAAkB,SAAQ,OAAO,CAAC,OAAO,EAGnD,CAAC,wBAAwB,CAAC;CAAG;AAEhC,WAAiB,iBAAiB;IACnB,sBAAI,GAAG,CAClB,OAAiC,EACP,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;AAC/D,CAAC,EAJgB,iBAAiB,KAAjB,iBAAiB,QAIjC"}
@@ -3,5 +3,27 @@ export interface AuthStorageMigration {
3
3
  readonly sql: string;
4
4
  }
5
5
  export declare const authStorageMigration001: AuthStorageMigration;
6
- export declare const authStorageMigrations: readonly [AuthStorageMigration];
6
+ export declare const authStorageMigration002: AuthStorageMigration;
7
+ export declare const authStorageMigration003: AuthStorageMigration;
8
+ export declare const authStorageMigration004: AuthStorageMigration;
9
+ export declare const authStorageMigration005: AuthStorageMigration;
10
+ export declare const authStorageMigration006: AuthStorageMigration;
11
+ export declare const authStorageMigration007: AuthStorageMigration;
12
+ export declare const authStorageMigration008: AuthStorageMigration;
13
+ export declare const authStorageMigration009: AuthStorageMigration;
14
+ export declare const authStorageMigration010: AuthStorageMigration;
15
+ export declare const authStorageMigration011: AuthStorageMigration;
16
+ export declare const authStorageMigration012: AuthStorageMigration;
17
+ export declare const authStorageMigration013: AuthStorageMigration;
18
+ export declare const authStorageMigration014: AuthStorageMigration;
19
+ export declare const authStorageMigration015: AuthStorageMigration;
20
+ export declare const authStorageMigration016: AuthStorageMigration;
21
+ export declare const authStorageMigration017: AuthStorageMigration;
22
+ export declare const authStorageMigration018: AuthStorageMigration;
23
+ export declare const authStorageMigration019: AuthStorageMigration;
24
+ export declare const authStorageMigration020: AuthStorageMigration;
25
+ export declare const authStorageMigration021: AuthStorageMigration;
26
+ export declare const authStorageMigration022: AuthStorageMigration;
27
+ export declare const authStorageMigration023: AuthStorageMigration;
28
+ export declare const authStorageMigrations: readonly [AuthStorageMigration, AuthStorageMigration, AuthStorageMigration, AuthStorageMigration, AuthStorageMigration, AuthStorageMigration, AuthStorageMigration, AuthStorageMigration, AuthStorageMigration, AuthStorageMigration, AuthStorageMigration, AuthStorageMigration, AuthStorageMigration, AuthStorageMigration, AuthStorageMigration, AuthStorageMigration, AuthStorageMigration, AuthStorageMigration, AuthStorageMigration, AuthStorageMigration, AuthStorageMigration, AuthStorageMigration, AuthStorageMigration];
7
29
  //# sourceMappingURL=StorageMigrations.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StorageMigrations.d.ts","sourceRoot":"","sources":["../src/StorageMigrations.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CACrB;AAED,eAAO,MAAM,uBAAuB,EAAE,oBAkCrC,CAAA;AAED,eAAO,MAAM,qBAAqB,iCAAqC,CAAA"}
1
+ {"version":3,"file":"StorageMigrations.d.ts","sourceRoot":"","sources":["../src/StorageMigrations.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,uBAAuB,EAAE,oBAkCrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,oBA2BrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,oBAwBrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,oBAcrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,oBAmBrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,oBAmBrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,oBAerC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,oBAmBrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,oBAuBrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,oBAUrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,oBAkBrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,oBAsBrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,oBAkBrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,oBAkBrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,oBASrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,oBAyBrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,oBAmBrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,oBAoBrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,oBAmBrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,oBA0BrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,oBAgBrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,oBAiBrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,oBAiBrC,CAAC;AAEF,eAAO,MAAM,qBAAqB,qgBAwBxB,CAAC"}