@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.
- package/README.md +774 -36
- package/dist/ApiKey.d.ts +207 -0
- package/dist/ApiKey.d.ts.map +1 -0
- package/dist/ApiKey.js +275 -0
- package/dist/ApiKey.js.map +1 -0
- package/dist/AuditLog.d.ts +278 -1
- package/dist/AuditLog.d.ts.map +1 -1
- package/dist/AuditLog.js +217 -2
- package/dist/AuditLog.js.map +1 -1
- package/dist/AuthConfig.d.ts +42 -0
- package/dist/AuthConfig.d.ts.map +1 -0
- package/dist/AuthConfig.js +43 -0
- package/dist/AuthConfig.js.map +1 -0
- package/dist/AuthFlow.d.ts +465 -36
- package/dist/AuthFlow.d.ts.map +1 -1
- package/dist/AuthFlow.js +660 -5
- package/dist/AuthFlow.js.map +1 -1
- package/dist/AuthKernel.d.ts +3 -0
- package/dist/AuthKernel.d.ts.map +1 -0
- package/dist/AuthKernel.js +9 -0
- package/dist/AuthKernel.js.map +1 -0
- package/dist/Challenge.d.ts +27 -4
- package/dist/Challenge.d.ts.map +1 -1
- package/dist/Challenge.js +170 -1
- package/dist/Challenge.js.map +1 -1
- package/dist/Client.d.ts +378 -0
- package/dist/Client.d.ts.map +1 -0
- package/dist/Client.js +768 -0
- package/dist/Client.js.map +1 -0
- package/dist/Crypto.d.ts +9 -1
- package/dist/Crypto.d.ts.map +1 -1
- package/dist/Crypto.js +65 -1
- package/dist/Crypto.js.map +1 -1
- package/dist/EffectQbSqliteStorage.d.ts +600 -0
- package/dist/EffectQbSqliteStorage.d.ts.map +1 -0
- package/dist/EffectQbSqliteStorage.js +1637 -0
- package/dist/EffectQbSqliteStorage.js.map +1 -0
- package/dist/EmailOtp.d.ts +120 -0
- package/dist/EmailOtp.d.ts.map +1 -0
- package/dist/EmailOtp.js +286 -0
- package/dist/EmailOtp.js.map +1 -0
- package/dist/EmailVerification.d.ts +121 -0
- package/dist/EmailVerification.d.ts.map +1 -0
- package/dist/EmailVerification.js +200 -0
- package/dist/EmailVerification.js.map +1 -0
- package/dist/HttpApi/Api.d.ts +1956 -0
- package/dist/HttpApi/Api.d.ts.map +1 -0
- package/dist/HttpApi/Api.js +2325 -0
- package/dist/HttpApi/Api.js.map +1 -0
- package/dist/HttpApi/Endpoints.d.ts +945 -0
- package/dist/HttpApi/Endpoints.d.ts.map +1 -0
- package/dist/HttpApi/Endpoints.js +373 -0
- package/dist/HttpApi/Endpoints.js.map +1 -0
- package/dist/HttpApi/Errors.d.ts +82 -0
- package/dist/HttpApi/Errors.d.ts.map +1 -0
- package/dist/HttpApi/Errors.js +184 -0
- package/dist/HttpApi/Errors.js.map +1 -0
- package/dist/HttpApi/Schemas.d.ts +1113 -0
- package/dist/HttpApi/Schemas.d.ts.map +1 -0
- package/dist/HttpApi/Schemas.js +734 -0
- package/dist/HttpApi/Schemas.js.map +1 -0
- package/dist/HttpApi/Security.d.ts +159 -0
- package/dist/HttpApi/Security.d.ts.map +1 -0
- package/dist/HttpApi/Security.js +530 -0
- package/dist/HttpApi/Security.js.map +1 -0
- package/dist/HttpApi/Transport.d.ts +65 -0
- package/dist/HttpApi/Transport.d.ts.map +1 -0
- package/dist/HttpApi/Transport.js +311 -0
- package/dist/HttpApi/Transport.js.map +1 -0
- package/dist/HttpApi/index.d.ts +8 -0
- package/dist/HttpApi/index.d.ts.map +1 -0
- package/dist/HttpApi/index.js +7 -0
- package/dist/HttpApi/index.js.map +1 -0
- package/dist/HttpApi.d.ts +2 -0
- package/dist/HttpApi.d.ts.map +1 -0
- package/dist/HttpApi.js +2 -0
- package/dist/HttpApi.js.map +1 -0
- package/dist/Identifiers.d.ts.map +1 -1
- package/dist/Identifiers.js.map +1 -1
- package/dist/Internal.d.ts +7 -0
- package/dist/Internal.d.ts.map +1 -0
- package/dist/Internal.js +12 -0
- package/dist/Internal.js.map +1 -0
- package/dist/Jwt.d.ts +271 -0
- package/dist/Jwt.d.ts.map +1 -0
- package/dist/Jwt.js +512 -0
- package/dist/Jwt.js.map +1 -0
- package/dist/LoginApproval.d.ts +314 -0
- package/dist/LoginApproval.d.ts.map +1 -0
- package/dist/LoginApproval.js +551 -0
- package/dist/LoginApproval.js.map +1 -0
- package/dist/LoginNotification.d.ts +183 -0
- package/dist/LoginNotification.d.ts.map +1 -0
- package/dist/LoginNotification.js +329 -0
- package/dist/LoginNotification.js.map +1 -0
- package/dist/LoginRisk.d.ts +73 -0
- package/dist/LoginRisk.d.ts.map +1 -0
- package/dist/LoginRisk.js +57 -0
- package/dist/LoginRisk.js.map +1 -0
- package/dist/MagicLink.d.ts +85 -0
- package/dist/MagicLink.d.ts.map +1 -0
- package/dist/MagicLink.js +206 -0
- package/dist/MagicLink.js.map +1 -0
- package/dist/Mailer.d.ts +147 -0
- package/dist/Mailer.d.ts.map +1 -0
- package/dist/Mailer.js +208 -0
- package/dist/Mailer.js.map +1 -0
- package/dist/OAuth.d.ts +934 -0
- package/dist/OAuth.d.ts.map +1 -0
- package/dist/OAuth.js +1661 -0
- package/dist/OAuth.js.map +1 -0
- package/dist/Passkey.d.ts +334 -0
- package/dist/Passkey.d.ts.map +1 -0
- package/dist/Passkey.js +422 -0
- package/dist/Passkey.js.map +1 -0
- package/dist/PasskeySimpleWebAuthn.d.ts +11 -0
- package/dist/PasskeySimpleWebAuthn.d.ts.map +1 -0
- package/dist/PasskeySimpleWebAuthn.js +181 -0
- package/dist/PasskeySimpleWebAuthn.js.map +1 -0
- package/dist/Password.d.ts +237 -0
- package/dist/Password.d.ts.map +1 -0
- package/dist/Password.js +641 -0
- package/dist/Password.js.map +1 -0
- package/dist/Policy.d.ts +7 -4
- package/dist/Policy.d.ts.map +1 -1
- package/dist/Policy.js +28 -5
- package/dist/Policy.js.map +1 -1
- package/dist/Privacy.d.ts +18 -0
- package/dist/Privacy.d.ts.map +1 -1
- package/dist/Privacy.js +63 -3
- package/dist/Privacy.js.map +1 -1
- package/dist/RateLimiter.d.ts +104 -0
- package/dist/RateLimiter.d.ts.map +1 -0
- package/dist/RateLimiter.js +118 -0
- package/dist/RateLimiter.js.map +1 -0
- package/dist/RecoveryCode.d.ts +169 -0
- package/dist/RecoveryCode.d.ts.map +1 -0
- package/dist/RecoveryCode.js +299 -0
- package/dist/RecoveryCode.js.map +1 -0
- package/dist/RefreshToken.d.ts +222 -0
- package/dist/RefreshToken.d.ts.map +1 -0
- package/dist/RefreshToken.js +342 -0
- package/dist/RefreshToken.js.map +1 -0
- package/dist/SecurityTimeline.d.ts +72 -0
- package/dist/SecurityTimeline.d.ts.map +1 -0
- package/dist/SecurityTimeline.js +386 -0
- package/dist/SecurityTimeline.js.map +1 -0
- package/dist/Sessions.d.ts +135 -11
- package/dist/Sessions.d.ts.map +1 -1
- package/dist/Sessions.js +546 -1
- package/dist/Sessions.js.map +1 -1
- package/dist/StepUp.d.ts +44 -0
- package/dist/StepUp.d.ts.map +1 -0
- package/dist/StepUp.js +82 -0
- package/dist/StepUp.js.map +1 -0
- package/dist/Storage.d.ts +175 -0
- package/dist/Storage.d.ts.map +1 -0
- package/dist/Storage.js +27 -0
- package/dist/Storage.js.map +1 -0
- package/dist/StorageMigrations.d.ts +19 -0
- package/dist/StorageMigrations.d.ts.map +1 -0
- package/dist/StorageMigrations.js +291 -0
- package/dist/StorageMigrations.js.map +1 -0
- package/dist/Testing.d.ts +9 -1
- package/dist/Testing.d.ts.map +1 -1
- package/dist/Testing.js +30 -2
- package/dist/Testing.js.map +1 -1
- package/dist/Totp.d.ts +220 -0
- package/dist/Totp.d.ts.map +1 -0
- package/dist/Totp.js +477 -0
- package/dist/Totp.js.map +1 -0
- package/dist/TrustedDevice.d.ts +127 -0
- package/dist/TrustedDevice.d.ts.map +1 -0
- package/dist/TrustedDevice.js +252 -0
- package/dist/TrustedDevice.js.map +1 -0
- package/dist/WaitUntil.d.ts +3 -0
- package/dist/WaitUntil.d.ts.map +1 -1
- package/dist/WaitUntil.js +6 -3
- package/dist/WaitUntil.js.map +1 -1
- package/dist/Webhook.d.ts +72 -0
- package/dist/Webhook.d.ts.map +1 -0
- package/dist/Webhook.js +82 -0
- package/dist/Webhook.js.map +1 -0
- package/dist/alchemy/cloudflare/Email.d.ts +25 -0
- package/dist/alchemy/cloudflare/Email.d.ts.map +1 -0
- package/dist/alchemy/cloudflare/Email.js +117 -0
- package/dist/alchemy/cloudflare/Email.js.map +1 -0
- package/dist/alchemy/cloudflare/RateLimitDurableObject.d.ts +34 -0
- package/dist/alchemy/cloudflare/RateLimitDurableObject.d.ts.map +1 -0
- package/dist/alchemy/cloudflare/RateLimitDurableObject.js +30 -0
- package/dist/alchemy/cloudflare/RateLimitDurableObject.js.map +1 -0
- package/dist/cloudflare/Email.d.ts +25 -0
- package/dist/cloudflare/Email.d.ts.map +1 -0
- package/dist/cloudflare/Email.js +153 -0
- package/dist/cloudflare/Email.js.map +1 -0
- package/dist/cloudflare/RateLimitDurableObject.d.ts +50 -0
- package/dist/cloudflare/RateLimitDurableObject.d.ts.map +1 -0
- package/dist/cloudflare/RateLimitDurableObject.js +51 -0
- package/dist/cloudflare/RateLimitDurableObject.js.map +1 -0
- package/dist/index.d.ts +22 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +22 -0
- package/dist/index.js.map +1 -1
- package/dist/internal/RateLimitDurableObject.d.ts +32 -0
- package/dist/internal/RateLimitDurableObject.d.ts.map +1 -0
- package/dist/internal/RateLimitDurableObject.js +80 -0
- package/dist/internal/RateLimitDurableObject.js.map +1 -0
- package/migrations/0001_auth_storage.sql +32 -0
- package/migrations/0002_auth_password.sql +25 -0
- package/migrations/0003_auth_login_approval_review.sql +22 -0
- package/migrations/0004_auth_trusted_device.sql +12 -0
- package/migrations/0005_auth_passkey.sql +17 -0
- package/migrations/0006_auth_totp_factor.sql +17 -0
- package/migrations/0007_auth_recovery_code.sql +13 -0
- package/migrations/0008_auth_api_key.sql +17 -0
- package/migrations/0009_auth_refresh_token.sql +21 -0
- package/migrations/0010_auth_jwt_revocation.sql +8 -0
- package/migrations/0011_auth_oauth_account.sql +16 -0
- package/migrations/0012_auth_oauth_provider_token_vault.sql +20 -0
- package/migrations/0013_auth_security_timeline.sql +16 -0
- package/package.json +161 -16
- package/LICENSE +0 -21
|
@@ -0,0 +1,314 @@
|
|
|
1
|
+
import type { Redacted } from "effect";
|
|
2
|
+
import { Context, Duration, Effect, Layer, Option } from "effect";
|
|
3
|
+
import type { AuthMethod } from "./AuthFlow.js";
|
|
4
|
+
import { Challenge } from "./Challenge.js";
|
|
5
|
+
import type { ChallengeService } from "./Challenge.js";
|
|
6
|
+
import type { AuthFlowId, ChallengeId, Email, UnixMillis, UserId } from "./Identifiers.js";
|
|
7
|
+
import { LoginRiskContext } from "./LoginRisk.js";
|
|
8
|
+
import { AuthMailer } from "./Mailer.js";
|
|
9
|
+
import type { AuthMailerService } from "./Mailer.js";
|
|
10
|
+
import type { AuthAssuranceLevel, AuthMethodReference } from "./Sessions.js";
|
|
11
|
+
export type LoginApprovalMode = "never" | "new-device" | "always";
|
|
12
|
+
export type LoginApprovalChannel = "email" | (string & {});
|
|
13
|
+
export type LoginApprovalIntent = "sign-in" | "sign-up";
|
|
14
|
+
export type LoginApprovalSessionBinding = "originating-device" | "approval-device" | "none";
|
|
15
|
+
export type LoginDeviceStatus = "known" | "new" | "unknown";
|
|
16
|
+
export interface LoginDeviceContext {
|
|
17
|
+
readonly status: LoginDeviceStatus;
|
|
18
|
+
}
|
|
19
|
+
export declare const unknownLoginDeviceContext: LoginDeviceContext;
|
|
20
|
+
export type LoginApprovalReason = "always" | "new-device" | "unknown-device" | "unverified-email" | (string & {});
|
|
21
|
+
export interface LoginApprovalPolicyOptions {
|
|
22
|
+
readonly mode?: LoginApprovalMode;
|
|
23
|
+
readonly channel?: LoginApprovalChannel;
|
|
24
|
+
readonly sessionBinding?: LoginApprovalSessionBinding;
|
|
25
|
+
readonly sameDeviceRequired?: boolean;
|
|
26
|
+
readonly requireForUnverifiedEmail?: boolean;
|
|
27
|
+
readonly skipMethods?: readonly AuthMethod[];
|
|
28
|
+
readonly skipWhenAalAtLeast?: AuthAssuranceLevel;
|
|
29
|
+
}
|
|
30
|
+
export interface LoginApprovalPolicyInput {
|
|
31
|
+
readonly intent?: LoginApprovalIntent;
|
|
32
|
+
readonly userId: UserId;
|
|
33
|
+
readonly email?: Email;
|
|
34
|
+
readonly emailVerified?: boolean;
|
|
35
|
+
readonly method: AuthMethod;
|
|
36
|
+
readonly amr: readonly AuthMethodReference[];
|
|
37
|
+
readonly aal: AuthAssuranceLevel;
|
|
38
|
+
readonly device: LoginDeviceContext;
|
|
39
|
+
readonly risk: LoginRiskContext;
|
|
40
|
+
readonly metadata?: Readonly<Record<string, unknown>>;
|
|
41
|
+
}
|
|
42
|
+
export type LoginApprovalPolicyDecision = {
|
|
43
|
+
readonly _tag: "Continue";
|
|
44
|
+
} | {
|
|
45
|
+
readonly _tag: "RequiresApproval";
|
|
46
|
+
readonly channel: LoginApprovalChannel;
|
|
47
|
+
readonly sessionBinding: LoginApprovalSessionBinding;
|
|
48
|
+
readonly sameDeviceRequired: boolean;
|
|
49
|
+
readonly reason: LoginApprovalReason;
|
|
50
|
+
readonly markEmailVerified?: boolean;
|
|
51
|
+
};
|
|
52
|
+
export interface LoginApprovalPolicyService {
|
|
53
|
+
readonly decide: (input: LoginApprovalPolicyInput) => Effect.Effect<LoginApprovalPolicyDecision>;
|
|
54
|
+
}
|
|
55
|
+
export interface LoginApprovalRequiresApprovalInput {
|
|
56
|
+
readonly channel: LoginApprovalChannel;
|
|
57
|
+
readonly sessionBinding?: LoginApprovalSessionBinding;
|
|
58
|
+
readonly sameDeviceRequired?: boolean;
|
|
59
|
+
readonly reason: LoginApprovalReason;
|
|
60
|
+
readonly markEmailVerified?: boolean;
|
|
61
|
+
}
|
|
62
|
+
export interface LoginApprovalSemanticDecisionInput {
|
|
63
|
+
readonly sessionBinding?: LoginApprovalSessionBinding;
|
|
64
|
+
readonly reason?: LoginApprovalReason;
|
|
65
|
+
readonly markEmailVerified?: boolean;
|
|
66
|
+
}
|
|
67
|
+
declare const LoginApprovalPolicy_base: Context.ServiceClass<LoginApprovalPolicy, "auth/LoginApprovalPolicy", LoginApprovalPolicyService>;
|
|
68
|
+
export declare class LoginApprovalPolicy extends LoginApprovalPolicy_base {
|
|
69
|
+
}
|
|
70
|
+
export declare namespace LoginApprovalPolicy {
|
|
71
|
+
const make: (service: LoginApprovalPolicyService) => LoginApprovalPolicyService;
|
|
72
|
+
const custom: (decide: LoginApprovalPolicyService["decide"]) => LoginApprovalPolicyService;
|
|
73
|
+
}
|
|
74
|
+
export declare const LoginApprovalDecision: {
|
|
75
|
+
continue: () => LoginApprovalPolicyDecision;
|
|
76
|
+
requiresApproval: (input: LoginApprovalRequiresApprovalInput) => LoginApprovalPolicyDecision;
|
|
77
|
+
custom: (input: LoginApprovalRequiresApprovalInput) => LoginApprovalPolicyDecision;
|
|
78
|
+
emailCode: (input?: LoginApprovalSemanticDecisionInput) => LoginApprovalPolicyDecision;
|
|
79
|
+
emailLink: (input?: LoginApprovalSemanticDecisionInput) => LoginApprovalPolicyDecision;
|
|
80
|
+
sms: (input?: LoginApprovalSemanticDecisionInput) => LoginApprovalPolicyDecision;
|
|
81
|
+
adminReview: (input?: LoginApprovalSemanticDecisionInput) => LoginApprovalPolicyDecision;
|
|
82
|
+
};
|
|
83
|
+
export declare const makeLoginApprovalPolicy: (options?: LoginApprovalPolicyOptions) => LoginApprovalPolicyService;
|
|
84
|
+
export declare const LoginApprovalPolicyLive: (options?: LoginApprovalPolicyOptions) => Layer.Layer<LoginApprovalPolicy, never, never>;
|
|
85
|
+
export interface LoginApprovalIssueInput {
|
|
86
|
+
readonly userId: UserId;
|
|
87
|
+
readonly email?: Email;
|
|
88
|
+
readonly channel?: LoginApprovalChannel;
|
|
89
|
+
readonly reason: LoginApprovalReason;
|
|
90
|
+
readonly sessionBinding?: LoginApprovalSessionBinding;
|
|
91
|
+
readonly sameDeviceRequired?: boolean;
|
|
92
|
+
readonly markEmailVerified?: boolean;
|
|
93
|
+
readonly risk?: LoginRiskContext;
|
|
94
|
+
readonly ttl?: Duration.Duration;
|
|
95
|
+
readonly secret?: Redacted.Redacted<string>;
|
|
96
|
+
readonly metadata?: Readonly<Record<string, unknown>>;
|
|
97
|
+
}
|
|
98
|
+
export interface IssuedLoginApproval {
|
|
99
|
+
readonly challengeId: ChallengeId;
|
|
100
|
+
readonly userId: UserId;
|
|
101
|
+
readonly email?: Email;
|
|
102
|
+
readonly channel: LoginApprovalChannel;
|
|
103
|
+
readonly reason: LoginApprovalReason;
|
|
104
|
+
readonly sessionBinding: LoginApprovalSessionBinding;
|
|
105
|
+
readonly sameDeviceRequired: boolean;
|
|
106
|
+
readonly markEmailVerified?: boolean;
|
|
107
|
+
readonly risk?: LoginRiskContext;
|
|
108
|
+
readonly secret?: Redacted.Redacted<string>;
|
|
109
|
+
readonly expiresAt: UnixMillis;
|
|
110
|
+
}
|
|
111
|
+
export interface LoginApprovalVerifyInput {
|
|
112
|
+
readonly challengeId: ChallengeId;
|
|
113
|
+
readonly secret?: Redacted.Redacted<string>;
|
|
114
|
+
}
|
|
115
|
+
export interface VerifiedLoginApproval {
|
|
116
|
+
readonly challengeId: ChallengeId;
|
|
117
|
+
readonly userId: UserId;
|
|
118
|
+
readonly channel: LoginApprovalChannel;
|
|
119
|
+
readonly reason: LoginApprovalReason;
|
|
120
|
+
readonly sessionBinding: LoginApprovalSessionBinding;
|
|
121
|
+
readonly sameDeviceRequired: boolean;
|
|
122
|
+
readonly markEmailVerified?: boolean;
|
|
123
|
+
readonly metadata?: Readonly<Record<string, unknown>>;
|
|
124
|
+
}
|
|
125
|
+
export interface InspectedLoginApproval extends VerifiedLoginApproval {
|
|
126
|
+
readonly expiresAt: UnixMillis;
|
|
127
|
+
}
|
|
128
|
+
declare const LoginApprovalIssueError_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 & {
|
|
129
|
+
readonly _tag: "LoginApprovalIssueError";
|
|
130
|
+
} & Readonly<A>;
|
|
131
|
+
export declare class LoginApprovalIssueError extends LoginApprovalIssueError_base<{
|
|
132
|
+
readonly message: string;
|
|
133
|
+
readonly cause?: unknown;
|
|
134
|
+
}> {
|
|
135
|
+
}
|
|
136
|
+
declare const LoginApprovalVerifyError_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 & {
|
|
137
|
+
readonly _tag: "LoginApprovalVerifyError";
|
|
138
|
+
} & Readonly<A>;
|
|
139
|
+
export declare class LoginApprovalVerifyError extends LoginApprovalVerifyError_base<{
|
|
140
|
+
readonly message: string;
|
|
141
|
+
readonly cause?: unknown;
|
|
142
|
+
}> {
|
|
143
|
+
}
|
|
144
|
+
export interface LoginApprovalDeliveryInput {
|
|
145
|
+
readonly userId: UserId;
|
|
146
|
+
readonly email?: Email;
|
|
147
|
+
readonly channel: LoginApprovalChannel;
|
|
148
|
+
readonly challengeId: ChallengeId;
|
|
149
|
+
readonly secret?: Redacted.Redacted<string>;
|
|
150
|
+
readonly expiresAt: UnixMillis;
|
|
151
|
+
readonly reason: LoginApprovalReason;
|
|
152
|
+
readonly sessionBinding: LoginApprovalSessionBinding;
|
|
153
|
+
readonly sameDeviceRequired: boolean;
|
|
154
|
+
readonly markEmailVerified?: boolean;
|
|
155
|
+
readonly risk?: LoginRiskContext;
|
|
156
|
+
readonly metadata?: Readonly<Record<string, unknown>>;
|
|
157
|
+
}
|
|
158
|
+
declare const LoginApprovalDeliveryError_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 & {
|
|
159
|
+
readonly _tag: "LoginApprovalDeliveryError";
|
|
160
|
+
} & Readonly<A>;
|
|
161
|
+
export declare class LoginApprovalDeliveryError extends LoginApprovalDeliveryError_base<{
|
|
162
|
+
readonly message: string;
|
|
163
|
+
readonly cause?: unknown;
|
|
164
|
+
}> {
|
|
165
|
+
}
|
|
166
|
+
export interface LoginApprovalDeliveryService {
|
|
167
|
+
readonly sendLoginApproval: (input: LoginApprovalDeliveryInput) => Effect.Effect<void, LoginApprovalDeliveryError>;
|
|
168
|
+
}
|
|
169
|
+
declare const LoginApprovalDelivery_base: Context.ServiceClass<LoginApprovalDelivery, "auth/LoginApprovalDelivery", LoginApprovalDeliveryService>;
|
|
170
|
+
export declare class LoginApprovalDelivery extends LoginApprovalDelivery_base {
|
|
171
|
+
}
|
|
172
|
+
export declare namespace LoginApprovalDelivery {
|
|
173
|
+
const make: (service: LoginApprovalDeliveryService) => LoginApprovalDeliveryService;
|
|
174
|
+
}
|
|
175
|
+
export interface LoginApprovalService {
|
|
176
|
+
readonly issue: (input: LoginApprovalIssueInput) => Effect.Effect<IssuedLoginApproval, LoginApprovalIssueError>;
|
|
177
|
+
readonly inspect: (input: LoginApprovalVerifyInput) => Effect.Effect<InspectedLoginApproval, LoginApprovalVerifyError>;
|
|
178
|
+
readonly verify: (input: LoginApprovalVerifyInput) => Effect.Effect<VerifiedLoginApproval, LoginApprovalVerifyError>;
|
|
179
|
+
}
|
|
180
|
+
declare const LoginApproval_base: Context.ServiceClass<LoginApproval, "auth/LoginApproval", LoginApprovalService>;
|
|
181
|
+
export declare class LoginApproval extends LoginApproval_base {
|
|
182
|
+
}
|
|
183
|
+
export declare namespace LoginApproval {
|
|
184
|
+
const make: (service: LoginApprovalService) => LoginApprovalService;
|
|
185
|
+
}
|
|
186
|
+
export type LoginApprovalReviewStatus = "pending" | "approved" | "denied";
|
|
187
|
+
export type LoginApprovalReviewerId = string & {};
|
|
188
|
+
export interface LoginApprovalReviewRecord {
|
|
189
|
+
readonly approvalChallengeId: ChallengeId;
|
|
190
|
+
readonly flowId: AuthFlowId;
|
|
191
|
+
readonly userId: UserId;
|
|
192
|
+
readonly channel: LoginApprovalChannel;
|
|
193
|
+
readonly reason: LoginApprovalReason;
|
|
194
|
+
readonly sessionBinding: LoginApprovalSessionBinding;
|
|
195
|
+
readonly sameDeviceRequired: boolean;
|
|
196
|
+
readonly status: LoginApprovalReviewStatus;
|
|
197
|
+
readonly createdAt: UnixMillis;
|
|
198
|
+
readonly expiresAt: UnixMillis;
|
|
199
|
+
readonly reviewedAt?: UnixMillis;
|
|
200
|
+
readonly reviewedBy?: LoginApprovalReviewerId;
|
|
201
|
+
readonly deniedReason?: string;
|
|
202
|
+
readonly risk?: LoginRiskContext;
|
|
203
|
+
readonly metadata?: Readonly<Record<string, unknown>>;
|
|
204
|
+
readonly reviewMetadata?: Readonly<Record<string, unknown>>;
|
|
205
|
+
}
|
|
206
|
+
export interface LoginApprovalReviewStartInput {
|
|
207
|
+
readonly approval: IssuedLoginApproval;
|
|
208
|
+
readonly flowId: AuthFlowId;
|
|
209
|
+
readonly metadata?: Readonly<Record<string, unknown>>;
|
|
210
|
+
}
|
|
211
|
+
export interface LoginApprovalReviewLookupInput {
|
|
212
|
+
readonly approvalChallengeId: ChallengeId;
|
|
213
|
+
}
|
|
214
|
+
export interface LoginApprovalReviewApproveInput {
|
|
215
|
+
readonly approval: LoginApprovalVerifyInput;
|
|
216
|
+
readonly reviewedBy?: LoginApprovalReviewerId;
|
|
217
|
+
readonly metadata?: Readonly<Record<string, unknown>>;
|
|
218
|
+
}
|
|
219
|
+
export interface LoginApprovalReviewDenyInput {
|
|
220
|
+
readonly approval: LoginApprovalVerifyInput;
|
|
221
|
+
readonly reviewedBy?: LoginApprovalReviewerId;
|
|
222
|
+
readonly reason?: string;
|
|
223
|
+
readonly metadata?: Readonly<Record<string, unknown>>;
|
|
224
|
+
}
|
|
225
|
+
declare const LoginApprovalReviewError_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 & {
|
|
226
|
+
readonly _tag: "LoginApprovalReviewError";
|
|
227
|
+
} & Readonly<A>;
|
|
228
|
+
export declare class LoginApprovalReviewError extends LoginApprovalReviewError_base<{
|
|
229
|
+
readonly message: string;
|
|
230
|
+
readonly cause?: unknown;
|
|
231
|
+
}> {
|
|
232
|
+
}
|
|
233
|
+
export interface LoginApprovalReviewStoreService {
|
|
234
|
+
readonly insertPending: (input: LoginApprovalReviewRecord) => Effect.Effect<LoginApprovalReviewRecord, LoginApprovalReviewError>;
|
|
235
|
+
readonly findByApprovalChallengeId: (input: LoginApprovalReviewLookupInput) => Effect.Effect<Option.Option<LoginApprovalReviewRecord>, LoginApprovalReviewError>;
|
|
236
|
+
readonly approve: (input: {
|
|
237
|
+
readonly approvalChallengeId: ChallengeId;
|
|
238
|
+
readonly reviewedAt: UnixMillis;
|
|
239
|
+
readonly reviewedBy?: LoginApprovalReviewerId;
|
|
240
|
+
readonly metadata?: Readonly<Record<string, unknown>>;
|
|
241
|
+
}) => Effect.Effect<Option.Option<LoginApprovalReviewRecord>, LoginApprovalReviewError>;
|
|
242
|
+
readonly deny: (input: {
|
|
243
|
+
readonly approvalChallengeId: ChallengeId;
|
|
244
|
+
readonly reviewedAt: UnixMillis;
|
|
245
|
+
readonly reviewedBy?: LoginApprovalReviewerId;
|
|
246
|
+
readonly reason?: string;
|
|
247
|
+
readonly metadata?: Readonly<Record<string, unknown>>;
|
|
248
|
+
}) => Effect.Effect<Option.Option<LoginApprovalReviewRecord>, LoginApprovalReviewError>;
|
|
249
|
+
}
|
|
250
|
+
declare const LoginApprovalReviewStore_base: Context.ServiceClass<LoginApprovalReviewStore, "auth/LoginApprovalReviewStore", LoginApprovalReviewStoreService>;
|
|
251
|
+
export declare class LoginApprovalReviewStore extends LoginApprovalReviewStore_base {
|
|
252
|
+
}
|
|
253
|
+
export declare namespace LoginApprovalReviewStore {
|
|
254
|
+
const make: (service: LoginApprovalReviewStoreService) => LoginApprovalReviewStoreService;
|
|
255
|
+
}
|
|
256
|
+
export interface LoginApprovalReviewService {
|
|
257
|
+
readonly start: (input: LoginApprovalReviewStartInput) => Effect.Effect<LoginApprovalReviewRecord, LoginApprovalReviewError>;
|
|
258
|
+
readonly status: (input: LoginApprovalReviewLookupInput) => Effect.Effect<Option.Option<LoginApprovalReviewRecord>, LoginApprovalReviewError>;
|
|
259
|
+
readonly approve: (input: LoginApprovalReviewApproveInput) => Effect.Effect<LoginApprovalReviewRecord, LoginApprovalReviewError>;
|
|
260
|
+
readonly deny: (input: LoginApprovalReviewDenyInput) => Effect.Effect<LoginApprovalReviewRecord, LoginApprovalReviewError>;
|
|
261
|
+
}
|
|
262
|
+
declare const LoginApprovalReview_base: Context.ServiceClass<LoginApprovalReview, "auth/LoginApprovalReview", LoginApprovalReviewService>;
|
|
263
|
+
export declare class LoginApprovalReview extends LoginApprovalReview_base {
|
|
264
|
+
}
|
|
265
|
+
export declare namespace LoginApprovalReview {
|
|
266
|
+
const make: (service: LoginApprovalReviewService) => LoginApprovalReviewService;
|
|
267
|
+
}
|
|
268
|
+
export interface LoginApprovalReviewDependencies {
|
|
269
|
+
readonly loginApproval: LoginApprovalService;
|
|
270
|
+
readonly store: LoginApprovalReviewStoreService;
|
|
271
|
+
}
|
|
272
|
+
declare const LoginApprovalFlowStartError_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 & {
|
|
273
|
+
readonly _tag: "LoginApprovalFlowStartError";
|
|
274
|
+
} & Readonly<A>;
|
|
275
|
+
export declare class LoginApprovalFlowStartError extends LoginApprovalFlowStartError_base<{
|
|
276
|
+
readonly message: string;
|
|
277
|
+
readonly cause?: unknown;
|
|
278
|
+
}> {
|
|
279
|
+
}
|
|
280
|
+
export interface LoginApprovalFlowService {
|
|
281
|
+
readonly start: (input: LoginApprovalIssueInput) => Effect.Effect<IssuedLoginApproval, LoginApprovalFlowStartError>;
|
|
282
|
+
}
|
|
283
|
+
declare const LoginApprovalFlow_base: Context.ServiceClass<LoginApprovalFlow, "auth/LoginApprovalFlow", LoginApprovalFlowService>;
|
|
284
|
+
export declare class LoginApprovalFlow extends LoginApprovalFlow_base {
|
|
285
|
+
}
|
|
286
|
+
export declare namespace LoginApprovalFlow {
|
|
287
|
+
const make: (service: LoginApprovalFlowService) => LoginApprovalFlowService;
|
|
288
|
+
}
|
|
289
|
+
export interface LoginApprovalOptions {
|
|
290
|
+
readonly ttl?: Duration.Duration;
|
|
291
|
+
}
|
|
292
|
+
export interface LoginApprovalDependencies extends LoginApprovalOptions {
|
|
293
|
+
readonly challenge: ChallengeService;
|
|
294
|
+
}
|
|
295
|
+
export interface LoginApprovalFlowDependencies {
|
|
296
|
+
readonly loginApproval: LoginApprovalService;
|
|
297
|
+
readonly delivery: LoginApprovalDeliveryService;
|
|
298
|
+
}
|
|
299
|
+
export interface LoginApprovalDeliveryFromAuthMailerDependencies {
|
|
300
|
+
readonly authMailer: AuthMailerService;
|
|
301
|
+
}
|
|
302
|
+
export declare const defaultLoginApprovalTtl: Duration.Duration;
|
|
303
|
+
export declare const makeLoginApproval: (dependencies: LoginApprovalDependencies) => LoginApprovalService;
|
|
304
|
+
export declare const LoginApprovalLive: (options?: LoginApprovalOptions) => Layer.Layer<LoginApproval, never, Challenge>;
|
|
305
|
+
export declare const makeLoginApprovalReviewStoreMemory: () => LoginApprovalReviewStoreService;
|
|
306
|
+
export declare const LoginApprovalReviewStoreMemoryLive: Layer.Layer<LoginApprovalReviewStore, never, never>;
|
|
307
|
+
export declare const makeLoginApprovalReview: (dependencies: LoginApprovalReviewDependencies) => LoginApprovalReviewService;
|
|
308
|
+
export declare const LoginApprovalReviewLive: Layer.Layer<LoginApprovalReview, never, LoginApproval | LoginApprovalReviewStore>;
|
|
309
|
+
export declare const makeLoginApprovalFlow: (dependencies: LoginApprovalFlowDependencies) => LoginApprovalFlowService;
|
|
310
|
+
export declare const LoginApprovalFlowLive: Layer.Layer<LoginApprovalFlow, never, LoginApprovalDelivery | LoginApproval>;
|
|
311
|
+
export declare const makeLoginApprovalDeliveryFromAuthMailer: (dependencies: LoginApprovalDeliveryFromAuthMailerDependencies) => LoginApprovalDeliveryService;
|
|
312
|
+
export declare const LoginApprovalDeliveryFromAuthMailerLive: Layer.Layer<LoginApprovalDelivery, never, AuthMailer>;
|
|
313
|
+
export {};
|
|
314
|
+
//# sourceMappingURL=LoginApproval.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LoginApproval.d.ts","sourceRoot":"","sources":["../src/LoginApproval.ts"],"names":[],"mappings":"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"}
|