@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.
- package/README.md +790 -73
- 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 +335 -1
- package/dist/AuditLog.d.ts.map +1 -1
- package/dist/AuditLog.js +318 -1
- 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 +462 -36
- package/dist/AuthFlow.d.ts.map +1 -1
- package/dist/AuthFlow.js +657 -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 +24 -4
- package/dist/Challenge.d.ts.map +1 -1
- package/dist/Challenge.js +167 -1
- package/dist/Challenge.js.map +1 -1
- package/dist/Client.d.ts +449 -0
- package/dist/Client.d.ts.map +1 -0
- package/dist/Client.js +985 -0
- package/dist/Client.js.map +1 -0
- package/dist/Crypto.d.ts +6 -1
- package/dist/Crypto.d.ts.map +1 -1
- package/dist/Crypto.js +62 -1
- package/dist/Crypto.js.map +1 -1
- package/dist/DomainVerification.d.ts +200 -0
- package/dist/DomainVerification.d.ts.map +1 -0
- package/dist/DomainVerification.js +304 -0
- package/dist/DomainVerification.js.map +1 -0
- package/dist/EffectQbSqliteStorage.d.ts +985 -0
- package/dist/EffectQbSqliteStorage.d.ts.map +1 -0
- package/dist/EffectQbSqliteStorage.js +2824 -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 +2410 -0
- package/dist/HttpApi/Api.d.ts.map +1 -0
- package/dist/HttpApi/Api.js +3026 -0
- package/dist/HttpApi/Api.js.map +1 -0
- package/dist/HttpApi/Endpoints.d.ts +1073 -0
- package/dist/HttpApi/Endpoints.d.ts.map +1 -0
- package/dist/HttpApi/Endpoints.js +428 -0
- package/dist/HttpApi/Endpoints.js.map +1 -0
- package/dist/HttpApi/Errors.d.ts +114 -0
- package/dist/HttpApi/Errors.d.ts.map +1 -0
- package/dist/HttpApi/Errors.js +230 -0
- package/dist/HttpApi/Errors.js.map +1 -0
- package/dist/HttpApi/Schemas.d.ts +1254 -0
- package/dist/HttpApi/Schemas.d.ts.map +1 -0
- package/dist/HttpApi/Schemas.js +862 -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 +3 -0
- package/dist/Identifiers.d.ts.map +1 -1
- package/dist/Identifiers.js +2 -0
- package/dist/Identifiers.js.map +1 -1
- package/dist/IncidentAction.d.ts +80 -0
- package/dist/IncidentAction.d.ts.map +1 -0
- package/dist/IncidentAction.js +158 -0
- package/dist/IncidentAction.js.map +1 -0
- 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 +281 -0
- package/dist/Jwt.d.ts.map +1 -0
- package/dist/Jwt.js +721 -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 +344 -0
- package/dist/LoginRisk.d.ts.map +1 -0
- package/dist/LoginRisk.js +484 -0
- package/dist/LoginRisk.js.map +1 -0
- package/dist/MachineAuth.d.ts +73 -0
- package/dist/MachineAuth.d.ts.map +1 -0
- package/dist/MachineAuth.js +147 -0
- package/dist/MachineAuth.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 +1890 -0
- package/dist/OAuth.d.ts.map +1 -0
- package/dist/OAuth.js +3063 -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 +15 -0
- package/dist/Privacy.d.ts.map +1 -1
- package/dist/Privacy.js +58 -1
- 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/Retention.d.ts +98 -0
- package/dist/Retention.d.ts.map +1 -0
- package/dist/Retention.js +204 -0
- package/dist/Retention.js.map +1 -0
- package/dist/SecurityTimeline.d.ts +78 -0
- package/dist/SecurityTimeline.d.ts.map +1 -0
- package/dist/SecurityTimeline.js +461 -0
- package/dist/SecurityTimeline.js.map +1 -0
- package/dist/Sessions.d.ts +123 -11
- package/dist/Sessions.d.ts.map +1 -1
- package/dist/Sessions.js +534 -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 +73 -5
- package/dist/Storage.d.ts.map +1 -1
- package/dist/Storage.js +11 -1
- package/dist/Storage.js.map +1 -1
- package/dist/StorageMigrations.d.ts +23 -1
- package/dist/StorageMigrations.d.ts.map +1 -1
- package/dist/StorageMigrations.js +462 -2
- package/dist/StorageMigrations.js.map +1 -1
- 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.map +1 -1
- package/dist/WaitUntil.js +1 -1
- package/dist/WaitUntil.js.map +1 -1
- package/dist/Webhook.d.ts +380 -0
- package/dist/Webhook.d.ts.map +1 -0
- package/dist/Webhook.js +592 -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 +25 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +25 -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/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/migrations/0014_auth_webhook_outbox.sql +16 -0
- package/migrations/0015_auth_webhook_replay.sql +7 -0
- package/migrations/0016_auth_login_risk_history.sql +23 -0
- package/migrations/0017_auth_audit_log.sql +17 -0
- package/migrations/0018_auth_domain_verification.sql +18 -0
- package/migrations/0019_auth_oauth_authorization_code.sql +17 -0
- package/migrations/0020_auth_oauth_provider_mode_token.sql +24 -0
- package/migrations/0021_auth_oauth_client_secret.sql +14 -0
- package/migrations/0022_auth_oauth_client.sql +15 -0
- package/migrations/0023_auth_oauth_consent.sql +15 -0
- package/package.json +162 -26
- package/dist/D1Kysely.d.ts +0 -40
- package/dist/D1Kysely.d.ts.map +0 -1
- package/dist/D1Kysely.js +0 -75
- package/dist/D1Kysely.js.map +0 -1
- package/dist/KyselyStorage.d.ts +0 -41
- package/dist/KyselyStorage.d.ts.map +0 -1
- package/dist/KyselyStorage.js +0 -176
- package/dist/KyselyStorage.js.map +0 -1
|
@@ -0,0 +1,344 @@
|
|
|
1
|
+
import { Context, Effect, Layer, Schema } from "effect";
|
|
2
|
+
import type { AuthMethod } from "./AuthFlow.js";
|
|
3
|
+
import type { Email, UnixMillis, UserId } from "./Identifiers.js";
|
|
4
|
+
import type { LoginDeviceContext } from "./LoginApproval.js";
|
|
5
|
+
import type { AuthAssuranceLevel, AuthMethodReference } from "./Sessions.js";
|
|
6
|
+
export declare const LoginRiskLevelSchema: Schema.Literals<readonly ["unknown", "low", "medium", "high", "critical"]>;
|
|
7
|
+
export type LoginRiskLevel = Schema.Schema.Type<typeof LoginRiskLevelSchema>;
|
|
8
|
+
export type LoginRiskMetadata = Readonly<Record<string, unknown>>;
|
|
9
|
+
export declare const compareLoginRiskLevels: (left: LoginRiskLevel, right: LoginRiskLevel) => number;
|
|
10
|
+
export declare const maxLoginRiskLevel: (levels: Iterable<LoginRiskLevel>, emptyLevel?: LoginRiskLevel) => LoginRiskLevel;
|
|
11
|
+
declare const LoginRiskSignal_base: Schema.Class<LoginRiskSignal, Schema.Struct<{
|
|
12
|
+
readonly type: Schema.String;
|
|
13
|
+
readonly level: Schema.optional<Schema.Literals<readonly ["unknown", "low", "medium", "high", "critical"]>>;
|
|
14
|
+
readonly metadata: Schema.optional<Schema.$Record<Schema.String, Schema.Unknown>>;
|
|
15
|
+
}>, {}>;
|
|
16
|
+
export declare class LoginRiskSignal extends LoginRiskSignal_base {
|
|
17
|
+
}
|
|
18
|
+
export interface LoginRiskSignalEncoded extends Schema.Codec.Encoded<typeof LoginRiskSignal> {
|
|
19
|
+
}
|
|
20
|
+
export declare const isLoginRiskSignal: <I>(input: I) => input is I & LoginRiskSignal;
|
|
21
|
+
export interface LoginRiskSignalInput {
|
|
22
|
+
readonly type: string;
|
|
23
|
+
readonly level?: LoginRiskLevel;
|
|
24
|
+
readonly metadata?: LoginRiskMetadata;
|
|
25
|
+
}
|
|
26
|
+
declare const LoginRiskContext_base: Schema.Class<LoginRiskContext, Schema.Struct<{
|
|
27
|
+
readonly level: Schema.Literals<readonly ["unknown", "low", "medium", "high", "critical"]>;
|
|
28
|
+
readonly signals: Schema.$Array<typeof LoginRiskSignal>;
|
|
29
|
+
readonly metadata: Schema.optional<Schema.$Record<Schema.String, Schema.Unknown>>;
|
|
30
|
+
}>, {}>;
|
|
31
|
+
export declare class LoginRiskContext extends LoginRiskContext_base {
|
|
32
|
+
hasSignal(type: string): boolean;
|
|
33
|
+
getSignal(type: string): LoginRiskSignal | undefined;
|
|
34
|
+
isAtLeast(level: LoginRiskLevel): boolean;
|
|
35
|
+
}
|
|
36
|
+
export interface LoginRiskContextEncoded extends Schema.Codec.Encoded<typeof LoginRiskContext> {
|
|
37
|
+
}
|
|
38
|
+
export declare const isLoginRiskContext: <I>(input: I) => input is I & LoginRiskContext;
|
|
39
|
+
export interface LoginRiskContextInput {
|
|
40
|
+
readonly level?: LoginRiskLevel;
|
|
41
|
+
readonly signals?: Iterable<LoginRiskSignal | LoginRiskSignalInput>;
|
|
42
|
+
readonly emptyLevel?: LoginRiskLevel;
|
|
43
|
+
readonly metadata?: LoginRiskMetadata;
|
|
44
|
+
}
|
|
45
|
+
export interface LoginRiskSignalSummary {
|
|
46
|
+
readonly type: string;
|
|
47
|
+
readonly level?: LoginRiskLevel;
|
|
48
|
+
}
|
|
49
|
+
export interface LoginRiskContextSummary {
|
|
50
|
+
readonly level: LoginRiskLevel;
|
|
51
|
+
readonly signals: readonly LoginRiskSignalSummary[];
|
|
52
|
+
}
|
|
53
|
+
export interface LoginRiskAssessment {
|
|
54
|
+
readonly userId: UserId;
|
|
55
|
+
readonly method: AuthMethod;
|
|
56
|
+
readonly amr: readonly AuthMethodReference[];
|
|
57
|
+
readonly aal: AuthAssuranceLevel;
|
|
58
|
+
readonly device: LoginDeviceContext;
|
|
59
|
+
readonly risk: LoginRiskContextSummary;
|
|
60
|
+
readonly metadata?: LoginRiskMetadata;
|
|
61
|
+
}
|
|
62
|
+
export interface LoginRiskAssessmentInput {
|
|
63
|
+
readonly userId: UserId;
|
|
64
|
+
readonly method: AuthMethod;
|
|
65
|
+
readonly amr: readonly AuthMethodReference[];
|
|
66
|
+
readonly aal: AuthAssuranceLevel;
|
|
67
|
+
readonly device: LoginDeviceContext;
|
|
68
|
+
readonly risk: LoginRiskContext;
|
|
69
|
+
readonly metadata?: LoginRiskMetadata;
|
|
70
|
+
}
|
|
71
|
+
export interface LoginRequestContext {
|
|
72
|
+
readonly ip?: string;
|
|
73
|
+
readonly userAgent?: string;
|
|
74
|
+
readonly country?: string;
|
|
75
|
+
readonly region?: string;
|
|
76
|
+
readonly city?: string;
|
|
77
|
+
readonly latitude?: number;
|
|
78
|
+
readonly longitude?: number;
|
|
79
|
+
}
|
|
80
|
+
export interface LoginRiskAssessInput {
|
|
81
|
+
readonly userId: UserId;
|
|
82
|
+
readonly email?: Email;
|
|
83
|
+
readonly emailVerified?: boolean;
|
|
84
|
+
readonly occurredAt?: UnixMillis;
|
|
85
|
+
readonly method: AuthMethod;
|
|
86
|
+
readonly amr: readonly AuthMethodReference[];
|
|
87
|
+
readonly aal: AuthAssuranceLevel;
|
|
88
|
+
readonly device: LoginDeviceContext;
|
|
89
|
+
readonly deviceKey?: string;
|
|
90
|
+
readonly locationKey?: string;
|
|
91
|
+
readonly request?: LoginRequestContext;
|
|
92
|
+
readonly metadata?: Readonly<Record<string, unknown>>;
|
|
93
|
+
}
|
|
94
|
+
declare const LoginRiskError_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 & {
|
|
95
|
+
readonly _tag: "LoginRiskError";
|
|
96
|
+
} & Readonly<A>;
|
|
97
|
+
export declare class LoginRiskError extends LoginRiskError_base<{
|
|
98
|
+
readonly message: string;
|
|
99
|
+
readonly cause?: unknown;
|
|
100
|
+
}> {
|
|
101
|
+
}
|
|
102
|
+
export type EmailReputationOperation = "lookup";
|
|
103
|
+
declare const EmailReputationError_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 & {
|
|
104
|
+
readonly _tag: "EmailReputationError";
|
|
105
|
+
} & Readonly<A>;
|
|
106
|
+
export declare class EmailReputationError extends EmailReputationError_base<{
|
|
107
|
+
readonly operation: EmailReputationOperation;
|
|
108
|
+
readonly message: string;
|
|
109
|
+
readonly cause?: unknown;
|
|
110
|
+
}> {
|
|
111
|
+
}
|
|
112
|
+
export type IpReputationOperation = "lookup";
|
|
113
|
+
declare const IpReputationError_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 & {
|
|
114
|
+
readonly _tag: "IpReputationError";
|
|
115
|
+
} & Readonly<A>;
|
|
116
|
+
export declare class IpReputationError extends IpReputationError_base<{
|
|
117
|
+
readonly operation: IpReputationOperation;
|
|
118
|
+
readonly message: string;
|
|
119
|
+
readonly cause?: unknown;
|
|
120
|
+
}> {
|
|
121
|
+
}
|
|
122
|
+
export type LoginRiskHistoryOperation = "lookup" | "record" | "deleteBefore";
|
|
123
|
+
declare const LoginRiskHistoryError_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 & {
|
|
124
|
+
readonly _tag: "LoginRiskHistoryError";
|
|
125
|
+
} & Readonly<A>;
|
|
126
|
+
export declare class LoginRiskHistoryError extends LoginRiskHistoryError_base<{
|
|
127
|
+
readonly operation: LoginRiskHistoryOperation;
|
|
128
|
+
readonly message: string;
|
|
129
|
+
readonly cause?: unknown;
|
|
130
|
+
}> {
|
|
131
|
+
}
|
|
132
|
+
export interface EmailReputationLookupInput {
|
|
133
|
+
readonly email: Email;
|
|
134
|
+
readonly metadata?: LoginRiskMetadata;
|
|
135
|
+
}
|
|
136
|
+
export interface EmailReputationLookupResult {
|
|
137
|
+
readonly disposable?: boolean;
|
|
138
|
+
readonly suspiciousDomain?: boolean;
|
|
139
|
+
readonly blocked?: boolean;
|
|
140
|
+
readonly riskLevel?: LoginRiskLevel;
|
|
141
|
+
readonly reasons?: readonly string[];
|
|
142
|
+
}
|
|
143
|
+
export interface IpReputationLookupInput {
|
|
144
|
+
readonly ip: string;
|
|
145
|
+
readonly request?: Omit<LoginRequestContext, "ip">;
|
|
146
|
+
readonly metadata?: LoginRiskMetadata;
|
|
147
|
+
}
|
|
148
|
+
export interface IpReputationLookupResult {
|
|
149
|
+
readonly proxy?: boolean;
|
|
150
|
+
readonly vpn?: boolean;
|
|
151
|
+
readonly tor?: boolean;
|
|
152
|
+
readonly datacenter?: boolean;
|
|
153
|
+
readonly blocked?: boolean;
|
|
154
|
+
readonly riskLevel?: LoginRiskLevel;
|
|
155
|
+
readonly reasons?: readonly string[];
|
|
156
|
+
}
|
|
157
|
+
export interface LoginRiskHistoryLookupInput {
|
|
158
|
+
readonly userId: UserId;
|
|
159
|
+
readonly email?: Email;
|
|
160
|
+
readonly occurredAt: UnixMillis;
|
|
161
|
+
readonly method: AuthMethod;
|
|
162
|
+
readonly amr: readonly AuthMethodReference[];
|
|
163
|
+
readonly aal: AuthAssuranceLevel;
|
|
164
|
+
readonly device: LoginDeviceContext;
|
|
165
|
+
readonly deviceKey?: string;
|
|
166
|
+
readonly locationKey?: string;
|
|
167
|
+
readonly request?: LoginRequestContext;
|
|
168
|
+
readonly metadata?: LoginRiskMetadata;
|
|
169
|
+
}
|
|
170
|
+
export type LoginRiskHistoryOutcome = "success" | "failure";
|
|
171
|
+
export interface LoginRiskHistoryRecordInput {
|
|
172
|
+
readonly id: string;
|
|
173
|
+
readonly userId: UserId;
|
|
174
|
+
readonly occurredAt: UnixMillis;
|
|
175
|
+
readonly outcome: LoginRiskHistoryOutcome;
|
|
176
|
+
readonly method: AuthMethod;
|
|
177
|
+
readonly amr: readonly AuthMethodReference[];
|
|
178
|
+
readonly aal: AuthAssuranceLevel;
|
|
179
|
+
readonly device: LoginDeviceContext;
|
|
180
|
+
readonly deviceKey?: string;
|
|
181
|
+
readonly locationKey?: string;
|
|
182
|
+
readonly country?: string;
|
|
183
|
+
readonly region?: string;
|
|
184
|
+
readonly latitude?: number;
|
|
185
|
+
readonly longitude?: number;
|
|
186
|
+
readonly riskLevel?: LoginRiskLevel;
|
|
187
|
+
readonly createdAt?: UnixMillis;
|
|
188
|
+
}
|
|
189
|
+
export interface LoginRiskHistoryDeleteBeforeInput {
|
|
190
|
+
readonly beforeOccurredAt: UnixMillis;
|
|
191
|
+
readonly userId?: UserId;
|
|
192
|
+
}
|
|
193
|
+
export interface LoginRiskHistoryLookupResult {
|
|
194
|
+
readonly recentLoginCount?: number;
|
|
195
|
+
readonly recentFailedLoginCount?: number;
|
|
196
|
+
readonly recentSuccessfulLoginCount?: number;
|
|
197
|
+
readonly velocityRiskLevel?: LoginRiskLevel;
|
|
198
|
+
readonly knownDevice?: boolean;
|
|
199
|
+
readonly newDevice?: boolean;
|
|
200
|
+
readonly knownLocation?: boolean;
|
|
201
|
+
readonly newLocation?: boolean;
|
|
202
|
+
readonly impossibleTravel?: boolean;
|
|
203
|
+
readonly riskLevel?: LoginRiskLevel;
|
|
204
|
+
readonly reasons?: readonly string[];
|
|
205
|
+
}
|
|
206
|
+
export interface EmailReputationService {
|
|
207
|
+
readonly lookup: (input: EmailReputationLookupInput) => Effect.Effect<EmailReputationLookupResult, EmailReputationError>;
|
|
208
|
+
}
|
|
209
|
+
export interface IpReputationService {
|
|
210
|
+
readonly lookup: (input: IpReputationLookupInput) => Effect.Effect<IpReputationLookupResult, IpReputationError>;
|
|
211
|
+
}
|
|
212
|
+
export interface LoginRiskHistoryService {
|
|
213
|
+
readonly lookup: (input: LoginRiskHistoryLookupInput) => Effect.Effect<LoginRiskHistoryLookupResult, LoginRiskHistoryError>;
|
|
214
|
+
readonly record: (input: LoginRiskHistoryRecordInput) => Effect.Effect<void, LoginRiskHistoryError>;
|
|
215
|
+
readonly deleteBefore: (input: LoginRiskHistoryDeleteBeforeInput) => Effect.Effect<number, LoginRiskHistoryError>;
|
|
216
|
+
}
|
|
217
|
+
declare const EmailReputation_base: Context.ServiceClass<EmailReputation, "auth/EmailReputation", EmailReputationService>;
|
|
218
|
+
export declare class EmailReputation extends EmailReputation_base {
|
|
219
|
+
}
|
|
220
|
+
export declare namespace EmailReputation {
|
|
221
|
+
const make: (service: EmailReputationService) => EmailReputationService;
|
|
222
|
+
}
|
|
223
|
+
declare const IpReputation_base: Context.ServiceClass<IpReputation, "auth/IpReputation", IpReputationService>;
|
|
224
|
+
export declare class IpReputation extends IpReputation_base {
|
|
225
|
+
}
|
|
226
|
+
export declare namespace IpReputation {
|
|
227
|
+
const make: (service: IpReputationService) => IpReputationService;
|
|
228
|
+
}
|
|
229
|
+
declare const LoginRiskHistory_base: Context.ServiceClass<LoginRiskHistory, "auth/LoginRiskHistory", LoginRiskHistoryService>;
|
|
230
|
+
export declare class LoginRiskHistory extends LoginRiskHistory_base {
|
|
231
|
+
}
|
|
232
|
+
export declare namespace LoginRiskHistory {
|
|
233
|
+
const make: (service: LoginRiskHistoryService) => LoginRiskHistoryService;
|
|
234
|
+
}
|
|
235
|
+
export type LoginRiskRuleResult = LoginRiskSignal | LoginRiskSignalInput | readonly (LoginRiskSignal | LoginRiskSignalInput)[] | undefined;
|
|
236
|
+
export interface LoginRiskRule {
|
|
237
|
+
readonly assess: (input: LoginRiskAssessInput) => Effect.Effect<LoginRiskRuleResult, LoginRiskError>;
|
|
238
|
+
}
|
|
239
|
+
export interface LoginRiskEngineOptions {
|
|
240
|
+
readonly rules?: readonly LoginRiskRule[];
|
|
241
|
+
readonly emptyLevel?: LoginRiskLevel;
|
|
242
|
+
readonly metadata?: LoginRiskMetadata;
|
|
243
|
+
}
|
|
244
|
+
export interface LoginRiskDeviceRuleOptions {
|
|
245
|
+
readonly knownDeviceLevel?: LoginRiskLevel;
|
|
246
|
+
readonly newDeviceLevel?: LoginRiskLevel;
|
|
247
|
+
readonly unknownDeviceLevel?: LoginRiskLevel;
|
|
248
|
+
}
|
|
249
|
+
export interface LoginRiskEmailVerificationRuleOptions {
|
|
250
|
+
readonly unverifiedEmailLevel?: LoginRiskLevel;
|
|
251
|
+
}
|
|
252
|
+
export interface LoginRiskAssuranceRuleOptions {
|
|
253
|
+
readonly minimum?: AuthAssuranceLevel;
|
|
254
|
+
readonly level?: LoginRiskLevel;
|
|
255
|
+
}
|
|
256
|
+
export type LoginRiskReputationLookupFailure = "ignore" | "fail";
|
|
257
|
+
export interface LoginRiskEmailReputationRuleOptions {
|
|
258
|
+
readonly lookupFailure?: LoginRiskReputationLookupFailure;
|
|
259
|
+
readonly disposableLevel?: LoginRiskLevel;
|
|
260
|
+
readonly suspiciousDomainLevel?: LoginRiskLevel;
|
|
261
|
+
readonly blockedLevel?: LoginRiskLevel;
|
|
262
|
+
}
|
|
263
|
+
export interface LoginRiskIpReputationRuleOptions {
|
|
264
|
+
readonly lookupFailure?: LoginRiskReputationLookupFailure;
|
|
265
|
+
readonly proxyLevel?: LoginRiskLevel;
|
|
266
|
+
readonly vpnLevel?: LoginRiskLevel;
|
|
267
|
+
readonly torLevel?: LoginRiskLevel;
|
|
268
|
+
readonly datacenterLevel?: LoginRiskLevel;
|
|
269
|
+
readonly blockedLevel?: LoginRiskLevel;
|
|
270
|
+
}
|
|
271
|
+
export type LoginRiskHistoryLookupFailure = "ignore" | "fail";
|
|
272
|
+
export interface LoginRiskHistoryRuleOptions {
|
|
273
|
+
readonly lookupFailure?: LoginRiskHistoryLookupFailure;
|
|
274
|
+
readonly loginCountThreshold?: number;
|
|
275
|
+
readonly failedLoginCountThreshold?: number;
|
|
276
|
+
readonly velocityLevel?: LoginRiskLevel;
|
|
277
|
+
readonly newDeviceLevel?: LoginRiskLevel;
|
|
278
|
+
readonly newLocationLevel?: LoginRiskLevel;
|
|
279
|
+
readonly impossibleTravelLevel?: LoginRiskLevel;
|
|
280
|
+
}
|
|
281
|
+
export interface LoginRiskEmailReputationRuleDependencies {
|
|
282
|
+
readonly emailReputation: EmailReputationService;
|
|
283
|
+
readonly options?: LoginRiskEmailReputationRuleOptions;
|
|
284
|
+
}
|
|
285
|
+
export interface LoginRiskIpReputationRuleDependencies {
|
|
286
|
+
readonly ipReputation: IpReputationService;
|
|
287
|
+
readonly options?: LoginRiskIpReputationRuleOptions;
|
|
288
|
+
}
|
|
289
|
+
export interface LoginRiskHistoryRuleDependencies {
|
|
290
|
+
readonly loginRiskHistory: LoginRiskHistoryService;
|
|
291
|
+
readonly options?: LoginRiskHistoryRuleOptions;
|
|
292
|
+
}
|
|
293
|
+
export interface LoginRiskEngineBasicOptions {
|
|
294
|
+
readonly device?: boolean | LoginRiskDeviceRuleOptions;
|
|
295
|
+
readonly emailVerification?: boolean | LoginRiskEmailVerificationRuleOptions;
|
|
296
|
+
readonly assurance?: boolean | LoginRiskAssuranceRuleOptions;
|
|
297
|
+
readonly rules?: readonly LoginRiskRule[];
|
|
298
|
+
readonly emptyLevel?: LoginRiskLevel;
|
|
299
|
+
readonly metadata?: LoginRiskMetadata;
|
|
300
|
+
}
|
|
301
|
+
export interface LoginRiskEngineService {
|
|
302
|
+
readonly assess: (input: LoginRiskAssessInput) => Effect.Effect<LoginRiskContext, LoginRiskError>;
|
|
303
|
+
}
|
|
304
|
+
declare const LoginRiskEngine_base: Context.ServiceClass<LoginRiskEngine, "auth/LoginRiskEngine", LoginRiskEngineService>;
|
|
305
|
+
export declare class LoginRiskEngine extends LoginRiskEngine_base {
|
|
306
|
+
}
|
|
307
|
+
export declare namespace LoginRiskEngine {
|
|
308
|
+
const make: (service: LoginRiskEngineService) => LoginRiskEngineService;
|
|
309
|
+
const custom: (assess: LoginRiskEngineService["assess"]) => LoginRiskEngineService;
|
|
310
|
+
}
|
|
311
|
+
export declare const makeLoginRiskSignal: (input: LoginRiskSignal | LoginRiskSignalInput) => LoginRiskSignal;
|
|
312
|
+
export declare const makeLoginRiskContext: (input?: LoginRiskContextInput) => LoginRiskContext;
|
|
313
|
+
export declare const summarizeLoginRiskContext: (risk: LoginRiskContext) => LoginRiskContextSummary;
|
|
314
|
+
export declare const makeLoginRiskAssessment: (input: LoginRiskAssessmentInput) => LoginRiskAssessment;
|
|
315
|
+
export declare const makeLoginRiskRule: (assess: LoginRiskRule["assess"]) => LoginRiskRule;
|
|
316
|
+
export declare const makeLoginRiskDeviceRule: (options?: LoginRiskDeviceRuleOptions) => LoginRiskRule;
|
|
317
|
+
export declare const makeLoginRiskEmailVerificationRule: (options?: LoginRiskEmailVerificationRuleOptions) => LoginRiskRule;
|
|
318
|
+
export declare const makeLoginRiskAssuranceRule: (options?: LoginRiskAssuranceRuleOptions) => LoginRiskRule;
|
|
319
|
+
export declare const makeEmailReputationRiskRule: (dependencies: LoginRiskEmailReputationRuleDependencies) => LoginRiskRule;
|
|
320
|
+
export declare const makeIpReputationRiskRule: (dependencies: LoginRiskIpReputationRuleDependencies) => LoginRiskRule;
|
|
321
|
+
export declare const makeLoginHistoryRiskRule: (dependencies: LoginRiskHistoryRuleDependencies) => LoginRiskRule;
|
|
322
|
+
export declare const makeLoginVelocityRiskRule: (dependencies: LoginRiskHistoryRuleDependencies) => LoginRiskRule;
|
|
323
|
+
export declare const makeLoginDeviceHistoryRiskRule: (dependencies: LoginRiskHistoryRuleDependencies) => LoginRiskRule;
|
|
324
|
+
export declare const makeImpossibleTravelRiskRule: (dependencies: LoginRiskHistoryRuleDependencies) => LoginRiskRule;
|
|
325
|
+
export declare const makeLoginRiskEngine: (options?: LoginRiskEngineOptions) => LoginRiskEngineService;
|
|
326
|
+
export declare const makeLoginRiskEngineBasic: (options?: LoginRiskEngineBasicOptions) => LoginRiskEngineService;
|
|
327
|
+
export declare const assessLoginRisk: (input: LoginRiskAssessInput) => Effect.Effect<LoginRiskContext, LoginRiskError, LoginRiskEngine>;
|
|
328
|
+
export declare const lookupEmailReputation: (input: EmailReputationLookupInput) => Effect.Effect<EmailReputationLookupResult, EmailReputationError, EmailReputation>;
|
|
329
|
+
export declare const lookupIpReputation: (input: IpReputationLookupInput) => Effect.Effect<IpReputationLookupResult, IpReputationError, IpReputation>;
|
|
330
|
+
export declare const lookupLoginRiskHistory: (input: LoginRiskHistoryLookupInput) => Effect.Effect<LoginRiskHistoryLookupResult, LoginRiskHistoryError, LoginRiskHistory>;
|
|
331
|
+
export declare const recordLoginRiskHistory: (input: LoginRiskHistoryRecordInput) => Effect.Effect<void, LoginRiskHistoryError, LoginRiskHistory>;
|
|
332
|
+
export declare const deleteLoginRiskHistoryBefore: (input: LoginRiskHistoryDeleteBeforeInput) => Effect.Effect<number, LoginRiskHistoryError, LoginRiskHistory>;
|
|
333
|
+
export declare const defaultLoginRiskContext: LoginRiskContext;
|
|
334
|
+
export declare const makeLoginRiskEngineNoop: () => LoginRiskEngineService;
|
|
335
|
+
export declare const LoginRiskEngineNoopLive: Layer.Layer<LoginRiskEngine, never, never>;
|
|
336
|
+
export declare const LoginRiskEngineBasicLive: (options?: LoginRiskEngineBasicOptions) => Layer.Layer<LoginRiskEngine, never, never>;
|
|
337
|
+
export declare const makeEmailReputationNoop: () => EmailReputationService;
|
|
338
|
+
export declare const EmailReputationNoopLive: Layer.Layer<EmailReputation, never, never>;
|
|
339
|
+
export declare const makeIpReputationNoop: () => IpReputationService;
|
|
340
|
+
export declare const IpReputationNoopLive: Layer.Layer<IpReputation, never, never>;
|
|
341
|
+
export declare const makeLoginRiskHistoryNoop: () => LoginRiskHistoryService;
|
|
342
|
+
export declare const LoginRiskHistoryNoopLive: Layer.Layer<LoginRiskHistory, never, never>;
|
|
343
|
+
export {};
|
|
344
|
+
//# sourceMappingURL=LoginRisk.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LoginRisk.d.ts","sourceRoot":"","sources":["../src/LoginRisk.ts"],"names":[],"mappings":"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"}
|