@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
package/dist/Sessions.d.ts
CHANGED
|
@@ -1,18 +1,33 @@
|
|
|
1
|
-
import { Context, Effect } from "effect";
|
|
2
|
-
import type * as
|
|
3
|
-
import
|
|
1
|
+
import { Context, Duration, Effect, Layer } from "effect";
|
|
2
|
+
import type * as OptionTypes from "effect/Option";
|
|
3
|
+
import { AuthSecrets } from "./AuthConfig.js";
|
|
4
|
+
import { Crypto } from "./Crypto.js";
|
|
5
|
+
import type { CryptoKey, CryptoService } from "./Crypto.js";
|
|
6
|
+
import { SessionId, SessionToken, UnixMillis } from "./Identifiers.js";
|
|
7
|
+
import type { UserId } from "./Identifiers.js";
|
|
8
|
+
import { SessionStore } from "./Storage.js";
|
|
9
|
+
import type { SessionStoreService } from "./Storage.js";
|
|
4
10
|
export type AuthAssuranceLevel = "aal1" | "aal2" | "aal3";
|
|
5
11
|
export type AuthMethodReference = "pwd" | "otp" | "email" | "magic_link" | "passkey" | "oauth" | "totp" | "backup_code" | (string & {});
|
|
12
|
+
export type SessionRequirement = "email_verification" | (string & {});
|
|
13
|
+
export declare const sessionRequestMetadataKey: "__effectAuthRequest";
|
|
14
|
+
export interface SessionClaims {
|
|
15
|
+
readonly emailVerified?: boolean;
|
|
16
|
+
readonly requirements?: readonly SessionRequirement[];
|
|
17
|
+
}
|
|
6
18
|
export interface SessionTtlPolicy {
|
|
7
|
-
readonly
|
|
8
|
-
readonly
|
|
9
|
-
readonly
|
|
19
|
+
readonly idleTtl: Duration.Duration;
|
|
20
|
+
readonly absoluteTtl: Duration.Duration;
|
|
21
|
+
readonly refreshAfter: Duration.Duration;
|
|
10
22
|
}
|
|
23
|
+
export declare const defaultSessionTtlPolicy: SessionTtlPolicy;
|
|
11
24
|
export interface SessionCreateInput {
|
|
12
25
|
readonly userId: UserId;
|
|
13
26
|
readonly method: string;
|
|
14
|
-
readonly amr:
|
|
27
|
+
readonly amr: readonly AuthMethodReference[];
|
|
15
28
|
readonly aal: AuthAssuranceLevel;
|
|
29
|
+
readonly claims?: SessionClaims;
|
|
30
|
+
readonly mfaVerifiedAt?: UnixMillis;
|
|
16
31
|
readonly now?: UnixMillis;
|
|
17
32
|
readonly ttl?: SessionTtlPolicy;
|
|
18
33
|
readonly metadata?: Readonly<Record<string, unknown>>;
|
|
@@ -24,7 +39,9 @@ export interface IssuedSession {
|
|
|
24
39
|
readonly authTime: UnixMillis;
|
|
25
40
|
readonly expiresAt: UnixMillis;
|
|
26
41
|
readonly aal: AuthAssuranceLevel;
|
|
27
|
-
readonly amr:
|
|
42
|
+
readonly amr: readonly AuthMethodReference[];
|
|
43
|
+
readonly mfaVerifiedAt?: UnixMillis;
|
|
44
|
+
readonly claims?: SessionClaims;
|
|
28
45
|
}
|
|
29
46
|
export interface CurrentSessionShape {
|
|
30
47
|
readonly sessionId: SessionId;
|
|
@@ -32,12 +49,27 @@ export interface CurrentSessionShape {
|
|
|
32
49
|
readonly authTime: UnixMillis;
|
|
33
50
|
readonly expiresAt: UnixMillis;
|
|
34
51
|
readonly aal: AuthAssuranceLevel;
|
|
35
|
-
readonly amr:
|
|
52
|
+
readonly amr: readonly AuthMethodReference[];
|
|
53
|
+
readonly mfaVerifiedAt?: UnixMillis;
|
|
54
|
+
readonly claims?: SessionClaims;
|
|
36
55
|
}
|
|
37
56
|
export interface CurrentActorShape {
|
|
38
57
|
readonly userId: UserId;
|
|
39
58
|
readonly sessionId: SessionId;
|
|
40
59
|
}
|
|
60
|
+
export interface SessionInfoShape {
|
|
61
|
+
readonly sessionId: SessionId;
|
|
62
|
+
readonly userId: UserId;
|
|
63
|
+
readonly createdAt: UnixMillis;
|
|
64
|
+
readonly authTime: UnixMillis;
|
|
65
|
+
readonly lastSeenAt?: UnixMillis;
|
|
66
|
+
readonly expiresAt: UnixMillis;
|
|
67
|
+
readonly aal: AuthAssuranceLevel;
|
|
68
|
+
readonly amr: readonly AuthMethodReference[];
|
|
69
|
+
readonly mfaVerifiedAt?: UnixMillis;
|
|
70
|
+
readonly claims?: SessionClaims;
|
|
71
|
+
readonly metadata?: Readonly<Record<string, unknown>>;
|
|
72
|
+
}
|
|
41
73
|
export interface ValidatedSession {
|
|
42
74
|
readonly issued: IssuedSession;
|
|
43
75
|
readonly currentSession: CurrentSessionShape;
|
|
@@ -47,10 +79,36 @@ export interface SessionRotateInput {
|
|
|
47
79
|
readonly sessionId: SessionId;
|
|
48
80
|
readonly reason: string;
|
|
49
81
|
}
|
|
82
|
+
export interface SessionUpdateClaimsInput {
|
|
83
|
+
readonly sessionId: SessionId;
|
|
84
|
+
readonly claims?: SessionClaims;
|
|
85
|
+
readonly aal?: AuthAssuranceLevel;
|
|
86
|
+
readonly amr?: readonly AuthMethodReference[];
|
|
87
|
+
readonly mfaVerifiedAt?: UnixMillis;
|
|
88
|
+
readonly reason?: string;
|
|
89
|
+
}
|
|
90
|
+
export interface SessionUpgradeInput {
|
|
91
|
+
readonly method: AuthMethodReference | readonly AuthMethodReference[];
|
|
92
|
+
readonly aal?: AuthAssuranceLevel;
|
|
93
|
+
readonly now?: UnixMillis;
|
|
94
|
+
readonly claims?: SessionClaims;
|
|
95
|
+
readonly reason?: string;
|
|
96
|
+
}
|
|
97
|
+
export interface SessionListForUserInput {
|
|
98
|
+
readonly userId: UserId;
|
|
99
|
+
}
|
|
50
100
|
export interface SessionRevokeInput {
|
|
51
101
|
readonly sessionId: SessionId;
|
|
52
102
|
readonly reason: string;
|
|
53
103
|
}
|
|
104
|
+
export interface SessionRevokeForUserInput extends SessionRevokeInput {
|
|
105
|
+
readonly userId: UserId;
|
|
106
|
+
}
|
|
107
|
+
export interface SessionRevokeAllForUserExceptInput {
|
|
108
|
+
readonly userId: UserId;
|
|
109
|
+
readonly exceptSessionId: SessionId;
|
|
110
|
+
readonly reason: string;
|
|
111
|
+
}
|
|
54
112
|
declare const SessionCreateError_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 & {
|
|
55
113
|
readonly _tag: "SessionCreateError";
|
|
56
114
|
} & Readonly<A>;
|
|
@@ -83,6 +141,22 @@ export declare class SessionRotateError extends SessionRotateError_base<{
|
|
|
83
141
|
readonly cause?: unknown;
|
|
84
142
|
}> {
|
|
85
143
|
}
|
|
144
|
+
declare const SessionUpdateClaimsError_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 & {
|
|
145
|
+
readonly _tag: "SessionUpdateClaimsError";
|
|
146
|
+
} & Readonly<A>;
|
|
147
|
+
export declare class SessionUpdateClaimsError extends SessionUpdateClaimsError_base<{
|
|
148
|
+
readonly message: string;
|
|
149
|
+
readonly cause?: unknown;
|
|
150
|
+
}> {
|
|
151
|
+
}
|
|
152
|
+
declare const SessionListError_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 & {
|
|
153
|
+
readonly _tag: "SessionListError";
|
|
154
|
+
} & Readonly<A>;
|
|
155
|
+
export declare class SessionListError extends SessionListError_base<{
|
|
156
|
+
readonly message: string;
|
|
157
|
+
readonly cause?: unknown;
|
|
158
|
+
}> {
|
|
159
|
+
}
|
|
86
160
|
declare const SessionRevokeError_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 & {
|
|
87
161
|
readonly _tag: "SessionRevokeError";
|
|
88
162
|
} & Readonly<A>;
|
|
@@ -91,14 +165,18 @@ export declare class SessionRevokeError extends SessionRevokeError_base<{
|
|
|
91
165
|
readonly cause?: unknown;
|
|
92
166
|
}> {
|
|
93
167
|
}
|
|
94
|
-
export type SessionError = SessionCreateError | SessionValidateError | SessionRefreshError | SessionRotateError | SessionRevokeError;
|
|
168
|
+
export type SessionError = SessionCreateError | SessionValidateError | SessionRefreshError | SessionRotateError | SessionUpdateClaimsError | SessionListError | SessionRevokeError;
|
|
95
169
|
export interface SessionsService {
|
|
96
170
|
readonly create: (input: SessionCreateInput) => Effect.Effect<IssuedSession, SessionCreateError>;
|
|
97
171
|
readonly validate: (token: SessionToken) => Effect.Effect<ValidatedSession, SessionValidateError>;
|
|
98
172
|
readonly refresh: (token: SessionToken) => Effect.Effect<IssuedSession, SessionRefreshError>;
|
|
99
173
|
readonly rotate: (input: SessionRotateInput) => Effect.Effect<IssuedSession, SessionRotateError>;
|
|
174
|
+
readonly updateClaims: (input: SessionUpdateClaimsInput) => Effect.Effect<CurrentSessionShape, SessionUpdateClaimsError>;
|
|
175
|
+
readonly listForUser: (input: SessionListForUserInput) => Effect.Effect<readonly SessionInfoShape[], SessionListError>;
|
|
100
176
|
readonly revoke: (input: SessionRevokeInput) => Effect.Effect<void, SessionRevokeError>;
|
|
177
|
+
readonly revokeForUser: (input: SessionRevokeForUserInput) => Effect.Effect<void, SessionRevokeError>;
|
|
101
178
|
readonly revokeAllForUser: (userId: UserId) => Effect.Effect<void, SessionRevokeError>;
|
|
179
|
+
readonly revokeAllForUserExcept: (input: SessionRevokeAllForUserExceptInput) => Effect.Effect<void, SessionRevokeError>;
|
|
102
180
|
}
|
|
103
181
|
declare const Sessions_base: Context.ServiceClass<Sessions, "auth/Sessions", SessionsService>;
|
|
104
182
|
export declare class Sessions extends Sessions_base {
|
|
@@ -106,8 +184,22 @@ export declare class Sessions extends Sessions_base {
|
|
|
106
184
|
export declare namespace Sessions {
|
|
107
185
|
const make: (service: SessionsService) => SessionsService;
|
|
108
186
|
}
|
|
187
|
+
export interface SessionsOptions {
|
|
188
|
+
readonly secret: CryptoKey;
|
|
189
|
+
readonly ttl?: SessionTtlPolicy;
|
|
190
|
+
readonly sessionIdBytes?: number;
|
|
191
|
+
readonly sessionSecretBytes?: number;
|
|
192
|
+
}
|
|
193
|
+
export interface SessionsDependencies extends SessionsOptions {
|
|
194
|
+
readonly crypto: CryptoService;
|
|
195
|
+
readonly sessionStore: SessionStoreService;
|
|
196
|
+
}
|
|
197
|
+
export declare const makeSessions: (dependencies: SessionsDependencies) => SessionsService;
|
|
198
|
+
export declare function SessionsLive(options: SessionsOptions): Layer.Layer<Sessions, never, Crypto | SessionStore>;
|
|
199
|
+
export declare function SessionsLive(): Layer.Layer<Sessions, never, Crypto | SessionStore | AuthSecrets>;
|
|
200
|
+
export declare const upgradeCurrentSession: (input: SessionUpgradeInput) => Effect.Effect<CurrentSessionShape, SessionUpdateClaimsError, CurrentSession | Sessions>;
|
|
109
201
|
export interface SessionCookieService {
|
|
110
|
-
readonly read: (request: Request) => Effect.Effect<
|
|
202
|
+
readonly read: (request: Request) => Effect.Effect<OptionTypes.Option<SessionToken>, SessionValidateError>;
|
|
111
203
|
readonly commit: (issued: IssuedSession) => Effect.Effect<string, SessionCreateError>;
|
|
112
204
|
readonly clear: Effect.Effect<string, SessionRevokeError>;
|
|
113
205
|
}
|
|
@@ -117,6 +209,26 @@ export declare class SessionCookie extends SessionCookie_base {
|
|
|
117
209
|
export declare namespace SessionCookie {
|
|
118
210
|
const make: (service: SessionCookieService) => SessionCookieService;
|
|
119
211
|
}
|
|
212
|
+
export type SessionCookieSameSite = "lax" | "strict" | "none";
|
|
213
|
+
export interface SessionCookieOptions {
|
|
214
|
+
readonly name?: string;
|
|
215
|
+
readonly secure?: boolean;
|
|
216
|
+
readonly httpOnly?: boolean;
|
|
217
|
+
readonly sameSite?: SessionCookieSameSite;
|
|
218
|
+
readonly path?: string;
|
|
219
|
+
readonly domain?: string;
|
|
220
|
+
}
|
|
221
|
+
export interface ResolvedSessionCookieOptions {
|
|
222
|
+
readonly name: string;
|
|
223
|
+
readonly secure: boolean;
|
|
224
|
+
readonly httpOnly: boolean;
|
|
225
|
+
readonly sameSite: SessionCookieSameSite;
|
|
226
|
+
readonly path: string;
|
|
227
|
+
readonly domain?: string;
|
|
228
|
+
}
|
|
229
|
+
export declare const defaultSessionCookieOptions: ResolvedSessionCookieOptions;
|
|
230
|
+
export declare const makeSessionCookie: (options?: SessionCookieOptions) => SessionCookieService;
|
|
231
|
+
export declare const SessionCookieLive: (options?: SessionCookieOptions) => Layer.Layer<SessionCookie, never, never>;
|
|
120
232
|
declare const CurrentSession_base: Context.ServiceClass<CurrentSession, "auth/CurrentSession", CurrentSessionShape>;
|
|
121
233
|
export declare class CurrentSession extends CurrentSession_base {
|
|
122
234
|
}
|
package/dist/Sessions.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sessions.d.ts","sourceRoot":"","sources":["../src/Sessions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAQ,MAAM,EAAE,MAAM,QAAQ,
|
|
1
|
+
{"version":3,"file":"Sessions.d.ts","sourceRoot":"","sources":["../src/Sessions.ts"],"names":[],"mappings":"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"}
|