@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
@@ -0,0 +1,380 @@
1
+ import { Brand, Context, Effect, Layer } from "effect";
2
+ import { Crypto, type CryptoKey } from "./Crypto.js";
3
+ import { UnixMillis } from "./Identifiers.js";
4
+ import type { IncidentActionResult } from "./IncidentAction.js";
5
+ import type { LoginRiskAssessment } from "./LoginRisk.js";
6
+ export type WebhookOperation = "encode" | "sign" | "verify" | "deliver";
7
+ export type WebhookEndpointResolverOperation = "resolve";
8
+ declare const WebhookError_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
+ readonly _tag: "WebhookError";
10
+ } & Readonly<A>;
11
+ export declare class WebhookError extends WebhookError_base<{
12
+ readonly operation: WebhookOperation;
13
+ readonly message: string;
14
+ readonly cause?: unknown;
15
+ }> {
16
+ }
17
+ declare const WebhookEndpointResolverError_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 & {
18
+ readonly _tag: "WebhookEndpointResolverError";
19
+ } & Readonly<A>;
20
+ export declare class WebhookEndpointResolverError extends WebhookEndpointResolverError_base<{
21
+ readonly operation: WebhookEndpointResolverOperation;
22
+ readonly endpointKey: string;
23
+ readonly message: string;
24
+ readonly cause?: unknown;
25
+ }> {
26
+ }
27
+ export type WebhookReceiverErrorReason = "missing-header" | "invalid-timestamp" | "stale-timestamp" | "invalid-signature" | "replay-detected" | "replay-store";
28
+ declare const WebhookReceiverError_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 & {
29
+ readonly _tag: "WebhookReceiverError";
30
+ } & Readonly<A>;
31
+ export declare class WebhookReceiverError extends WebhookReceiverError_base<{
32
+ readonly reason: WebhookReceiverErrorReason;
33
+ readonly message: string;
34
+ readonly cause?: unknown;
35
+ }> {
36
+ }
37
+ export type WebhookOutboxItemId = Brand.Branded<string, "auth/WebhookOutboxItemId">;
38
+ export declare const WebhookOutboxItemId: Brand.Constructor<WebhookOutboxItemId>;
39
+ export interface WebhookEvent<Type extends string = string, Payload = unknown> {
40
+ readonly id: string;
41
+ readonly type: Type;
42
+ readonly payload: Payload;
43
+ readonly occurredAt: UnixMillis;
44
+ }
45
+ export type WebhookEventInput<Type extends string = string, Payload = unknown> = Omit<WebhookEvent<Type, Payload>, "occurredAt"> & {
46
+ readonly occurredAt?: UnixMillis;
47
+ };
48
+ export type IncidentActionWebhookEventType = "auth.incident_action.executed";
49
+ export type IncidentActionWebhookPayload = IncidentActionResult;
50
+ export type IncidentActionWebhookEvent = WebhookEvent<IncidentActionWebhookEventType, IncidentActionWebhookPayload>;
51
+ export type LoginRiskWebhookEventType = "auth.risk.assessed";
52
+ export type LoginRiskWebhookPayload = LoginRiskAssessment;
53
+ export type LoginRiskWebhookEvent = WebhookEvent<LoginRiskWebhookEventType, LoginRiskWebhookPayload>;
54
+ export interface IncidentActionWebhookEventInput {
55
+ readonly id: string;
56
+ readonly result: IncidentActionResult;
57
+ readonly occurredAt?: UnixMillis;
58
+ }
59
+ export interface LoginRiskWebhookEventInput {
60
+ readonly id: string;
61
+ readonly assessment: LoginRiskAssessment;
62
+ readonly occurredAt?: UnixMillis;
63
+ }
64
+ export interface WebhookEndpoint {
65
+ readonly url: string;
66
+ readonly secret: CryptoKey;
67
+ readonly headers?: Readonly<Record<string, string>>;
68
+ }
69
+ export interface WebhookSignedRequest {
70
+ readonly url: string;
71
+ readonly method: "POST";
72
+ readonly headers: Readonly<Record<string, string>>;
73
+ readonly body: string;
74
+ }
75
+ export interface WebhookSignatureInput {
76
+ readonly id: string;
77
+ readonly timestamp: UnixMillis;
78
+ readonly body: string;
79
+ readonly secret: CryptoKey;
80
+ }
81
+ export interface WebhookVerifyInput extends WebhookSignatureInput {
82
+ readonly signatureHeader: string;
83
+ }
84
+ export type WebhookReceiverHeaders = Readonly<Record<string, string | undefined>>;
85
+ export interface VerifyWebhookRequestInput {
86
+ readonly headers: WebhookReceiverHeaders;
87
+ readonly body: string;
88
+ readonly secret: CryptoKey;
89
+ readonly now?: UnixMillis;
90
+ readonly toleranceMillis?: number;
91
+ }
92
+ export interface VerifiedWebhookRequest {
93
+ readonly id: string;
94
+ readonly timestamp: UnixMillis;
95
+ readonly eventType?: string;
96
+ readonly body: string;
97
+ }
98
+ export interface VerifyWebhookRequestOnceInput extends VerifyWebhookRequestInput {
99
+ readonly replayExpiresAt?: UnixMillis;
100
+ }
101
+ export interface MakeWebhookRequestInput<Type extends string = string, Payload = unknown> {
102
+ readonly endpoint: WebhookEndpoint;
103
+ readonly event: WebhookEvent<Type, Payload>;
104
+ }
105
+ export interface WebhookEndpointResolveInput {
106
+ readonly endpointKey: string;
107
+ readonly record: WebhookOutboxRecord;
108
+ }
109
+ export type WebhookOutboxStatus = "pending" | "failed" | "delivered" | "dead_lettered";
110
+ export interface WebhookOutboxRecord<Type extends string = string, Payload = unknown> {
111
+ readonly id: WebhookOutboxItemId;
112
+ readonly endpointKey: string;
113
+ readonly event: WebhookEvent<Type, Payload>;
114
+ readonly status: WebhookOutboxStatus;
115
+ readonly attempts: number;
116
+ readonly nextAttemptAt: UnixMillis;
117
+ readonly createdAt: UnixMillis;
118
+ readonly updatedAt: UnixMillis;
119
+ readonly deliveredAt?: UnixMillis;
120
+ readonly lastError?: string;
121
+ }
122
+ export interface WebhookOutboxEnqueueInput<Type extends string = string, Payload = unknown> {
123
+ readonly id: WebhookOutboxItemId;
124
+ readonly endpointKey: string;
125
+ readonly event: WebhookEvent<Type, Payload>;
126
+ readonly nextAttemptAt?: UnixMillis;
127
+ readonly now?: UnixMillis;
128
+ }
129
+ export interface WebhookOutboxFanoutResolveInput<Type extends string = string, Payload = unknown> {
130
+ readonly event: WebhookEvent<Type, Payload>;
131
+ readonly now: UnixMillis;
132
+ }
133
+ export type WebhookOutboxFanoutEndpointResolver<Type extends string = string, Payload = unknown, R = never> = (input: WebhookOutboxFanoutResolveInput<Type, Payload>) => Effect.Effect<readonly string[], unknown, R>;
134
+ export interface WebhookOutboxFanoutIdInput<Type extends string = string, Payload = unknown> {
135
+ readonly event: WebhookEvent<Type, Payload>;
136
+ readonly endpointKey: string;
137
+ readonly index: number;
138
+ readonly now: UnixMillis;
139
+ }
140
+ export type WebhookOutboxFanoutId<Type extends string = string, Payload = unknown> = (input: WebhookOutboxFanoutIdInput<Type, Payload>) => WebhookOutboxItemId;
141
+ interface WebhookOutboxFanoutInputBase<Type extends string = string, Payload = unknown> {
142
+ readonly event: WebhookEvent<Type, Payload>;
143
+ readonly id: WebhookOutboxFanoutId<Type, Payload>;
144
+ readonly nextAttemptAt?: UnixMillis;
145
+ readonly now?: UnixMillis;
146
+ }
147
+ export type WebhookOutboxFanoutInput<Type extends string = string, Payload = unknown, R = never> = WebhookOutboxFanoutInputBase<Type, Payload> & ({
148
+ readonly endpointKeys: readonly string[];
149
+ readonly resolveEndpointKeys?: never;
150
+ } | {
151
+ readonly endpointKeys?: never;
152
+ readonly resolveEndpointKeys: WebhookOutboxFanoutEndpointResolver<Type, Payload, R>;
153
+ });
154
+ export interface WebhookOutboxFanoutResult<Type extends string = string, Payload = unknown> {
155
+ readonly matched: number;
156
+ readonly enqueued: number;
157
+ readonly records: readonly WebhookOutboxRecord<Type, Payload>[];
158
+ }
159
+ export type WebhookOutboxFanoutOperation = "resolveEndpointKeys";
160
+ declare const WebhookOutboxFanoutError_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 & {
161
+ readonly _tag: "WebhookOutboxFanoutError";
162
+ } & Readonly<A>;
163
+ export declare class WebhookOutboxFanoutError extends WebhookOutboxFanoutError_base<{
164
+ readonly operation: WebhookOutboxFanoutOperation;
165
+ readonly message: string;
166
+ }> {
167
+ }
168
+ export interface WebhookOutboxClaimDueInput {
169
+ readonly now?: UnixMillis;
170
+ readonly limit?: number;
171
+ readonly endpointKey?: string;
172
+ }
173
+ export interface WebhookOutboxMarkDeliveredInput {
174
+ readonly id: WebhookOutboxItemId;
175
+ readonly deliveredAt?: UnixMillis;
176
+ }
177
+ export interface WebhookOutboxMarkFailedInput {
178
+ readonly id: WebhookOutboxItemId;
179
+ readonly failedAt?: UnixMillis;
180
+ readonly nextAttemptAt: UnixMillis;
181
+ readonly error?: string;
182
+ }
183
+ export interface WebhookOutboxMarkDeadLetteredInput {
184
+ readonly id: WebhookOutboxItemId;
185
+ readonly deadLetteredAt?: UnixMillis;
186
+ readonly error?: string;
187
+ }
188
+ export interface WebhookOutboxDeleteBeforeInput {
189
+ readonly beforeUpdatedAt: UnixMillis;
190
+ readonly statuses: readonly [WebhookOutboxStatus, ...WebhookOutboxStatus[]];
191
+ readonly endpointKey?: string;
192
+ }
193
+ export type WebhookOutboxFailureReason = "endpoint-not-found" | "endpoint-resolution-failed" | "dispatch-failed";
194
+ export type WebhookOutboxDeadLetterReason = WebhookOutboxFailureReason | "max-attempts";
195
+ export interface WebhookOutboxFailureInput {
196
+ readonly record: WebhookOutboxRecord;
197
+ readonly now: UnixMillis;
198
+ readonly nextAttemptNumber: number;
199
+ readonly reason: WebhookOutboxFailureReason;
200
+ readonly cause?: WebhookError | WebhookEndpointResolverError;
201
+ }
202
+ export interface WebhookOutboxDeadLetterInput {
203
+ readonly record: WebhookOutboxRecord;
204
+ readonly now: UnixMillis;
205
+ readonly attempts: number;
206
+ readonly reason: WebhookOutboxDeadLetterReason;
207
+ readonly cause?: WebhookError | WebhookEndpointResolverError;
208
+ }
209
+ export interface WebhookOutboxDeadLetterHandlerInput {
210
+ readonly id: WebhookOutboxItemId;
211
+ readonly endpointKey: string;
212
+ readonly eventId: string;
213
+ readonly eventType: string;
214
+ readonly attempts: number;
215
+ readonly reason: WebhookOutboxDeadLetterReason;
216
+ readonly deadLetteredAt: UnixMillis;
217
+ readonly error?: string;
218
+ }
219
+ export type WebhookOutboxNextAttempt = (input: WebhookOutboxFailureInput) => UnixMillis;
220
+ export type WebhookOutboxFailureMessage = (input: WebhookOutboxFailureInput) => string | undefined;
221
+ export type WebhookOutboxDeadLetterMessage = (input: WebhookOutboxDeadLetterInput) => string | undefined;
222
+ export type WebhookOutboxDeadLetterHandler = (input: WebhookOutboxDeadLetterHandlerInput) => Effect.Effect<void, unknown>;
223
+ export type WebhookOutboxDeadLetterHandlerFailure = "ignore" | "fail";
224
+ declare const WebhookOutboxDeadLetterHandlerError_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 & {
225
+ readonly _tag: "WebhookOutboxDeadLetterHandlerError";
226
+ } & Readonly<A>;
227
+ export declare class WebhookOutboxDeadLetterHandlerError extends WebhookOutboxDeadLetterHandlerError_base<{
228
+ readonly input: WebhookOutboxDeadLetterHandlerInput;
229
+ readonly message: string;
230
+ readonly cause?: unknown;
231
+ }> {
232
+ }
233
+ export interface WebhookOutboxProcessInput extends WebhookOutboxClaimDueInput {
234
+ readonly nextAttemptAt?: WebhookOutboxNextAttempt;
235
+ readonly failureMessage?: WebhookOutboxFailureMessage;
236
+ readonly maxAttempts?: number;
237
+ readonly deadLetterMessage?: WebhookOutboxDeadLetterMessage;
238
+ readonly onDeadLetter?: WebhookOutboxDeadLetterHandler;
239
+ readonly deadLetterHandlerFailure?: WebhookOutboxDeadLetterHandlerFailure;
240
+ }
241
+ export interface WebhookOutboxProcessFailInput extends WebhookOutboxProcessInput {
242
+ readonly onDeadLetter: WebhookOutboxDeadLetterHandler;
243
+ readonly deadLetterHandlerFailure: "fail";
244
+ }
245
+ export type WebhookOutboxProcessItemStatus = "delivered" | "failed" | "dead_lettered";
246
+ export interface WebhookOutboxProcessItemResult {
247
+ readonly id: WebhookOutboxItemId;
248
+ readonly endpointKey: string;
249
+ readonly eventId: string;
250
+ readonly eventType: string;
251
+ readonly status: WebhookOutboxProcessItemStatus;
252
+ readonly attempts: number;
253
+ readonly nextAttemptAt?: UnixMillis;
254
+ readonly error?: string;
255
+ }
256
+ export interface WebhookOutboxProcessResult {
257
+ readonly claimed: number;
258
+ readonly delivered: number;
259
+ readonly failed: number;
260
+ readonly deadLettered: number;
261
+ readonly records: readonly WebhookOutboxProcessItemResult[];
262
+ }
263
+ export interface WebhookReplayClaimInput {
264
+ readonly id: string;
265
+ readonly expiresAt: UnixMillis;
266
+ readonly now?: UnixMillis;
267
+ }
268
+ export interface WebhookReplayDeleteExpiredInput {
269
+ readonly now?: UnixMillis;
270
+ }
271
+ export type WebhookReplayStoreOperation = "claim" | "deleteExpired";
272
+ declare const WebhookReplayStoreError_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: "WebhookReplayStoreError";
274
+ } & Readonly<A>;
275
+ export declare class WebhookReplayStoreError extends WebhookReplayStoreError_base<{
276
+ readonly operation: WebhookReplayStoreOperation;
277
+ readonly message: string;
278
+ readonly cause?: unknown;
279
+ }> {
280
+ }
281
+ export interface WebhookReplayStoreService {
282
+ readonly claim: (input: WebhookReplayClaimInput) => Effect.Effect<boolean, WebhookReplayStoreError>;
283
+ readonly deleteExpired: (input?: WebhookReplayDeleteExpiredInput) => Effect.Effect<number, WebhookReplayStoreError>;
284
+ }
285
+ export type WebhookOutboxStoreOperation = "enqueue" | "claimDue" | "markDelivered" | "markFailed" | "markDeadLettered" | "deleteBefore";
286
+ declare const WebhookOutboxStoreError_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 & {
287
+ readonly _tag: "WebhookOutboxStoreError";
288
+ } & Readonly<A>;
289
+ export declare class WebhookOutboxStoreError extends WebhookOutboxStoreError_base<{
290
+ readonly operation: WebhookOutboxStoreOperation;
291
+ readonly message: string;
292
+ readonly cause?: unknown;
293
+ }> {
294
+ }
295
+ export type WebhookOutboxProcessError = WebhookOutboxStoreError | WebhookOutboxDeadLetterHandlerError;
296
+ export interface WebhookOutboxStoreService {
297
+ readonly enqueue: <Type extends string, Payload>(input: WebhookOutboxEnqueueInput<Type, Payload>) => Effect.Effect<WebhookOutboxRecord<Type, Payload>, WebhookOutboxStoreError>;
298
+ readonly claimDue: (input: WebhookOutboxClaimDueInput) => Effect.Effect<readonly WebhookOutboxRecord[], WebhookOutboxStoreError>;
299
+ readonly markDelivered: (input: WebhookOutboxMarkDeliveredInput) => Effect.Effect<void, WebhookOutboxStoreError>;
300
+ readonly markFailed: (input: WebhookOutboxMarkFailedInput) => Effect.Effect<void, WebhookOutboxStoreError>;
301
+ readonly markDeadLettered: (input: WebhookOutboxMarkDeadLetteredInput) => Effect.Effect<void, WebhookOutboxStoreError>;
302
+ readonly deleteBefore: (input: WebhookOutboxDeleteBeforeInput) => Effect.Effect<number, WebhookOutboxStoreError>;
303
+ }
304
+ declare const WebhookOutboxStore_base: Context.ServiceClass<WebhookOutboxStore, "auth/WebhookOutboxStore", WebhookOutboxStoreService>;
305
+ export declare class WebhookOutboxStore extends WebhookOutboxStore_base {
306
+ }
307
+ export declare namespace WebhookOutboxStore {
308
+ const make: (service: WebhookOutboxStoreService) => WebhookOutboxStoreService;
309
+ }
310
+ declare const WebhookReplayStore_base: Context.ServiceClass<WebhookReplayStore, "auth/WebhookReplayStore", WebhookReplayStoreService>;
311
+ export declare class WebhookReplayStore extends WebhookReplayStore_base {
312
+ }
313
+ export declare namespace WebhookReplayStore {
314
+ const make: (service: WebhookReplayStoreService) => WebhookReplayStoreService;
315
+ }
316
+ export interface WebhookEndpointResolverService {
317
+ readonly resolve: (input: WebhookEndpointResolveInput) => Effect.Effect<WebhookEndpoint | undefined, WebhookEndpointResolverError>;
318
+ }
319
+ declare const WebhookEndpointResolver_base: Context.ServiceClass<WebhookEndpointResolver, "auth/WebhookEndpointResolver", WebhookEndpointResolverService>;
320
+ export declare class WebhookEndpointResolver extends WebhookEndpointResolver_base {
321
+ }
322
+ export declare namespace WebhookEndpointResolver {
323
+ const make: (service: WebhookEndpointResolverService) => WebhookEndpointResolverService;
324
+ }
325
+ export interface WebhookDeliveryService {
326
+ readonly deliver: (request: WebhookSignedRequest) => Effect.Effect<void, WebhookError>;
327
+ }
328
+ declare const WebhookDelivery_base: Context.ServiceClass<WebhookDelivery, "auth/WebhookDelivery", WebhookDeliveryService>;
329
+ export declare class WebhookDelivery extends WebhookDelivery_base {
330
+ }
331
+ export declare namespace WebhookDelivery {
332
+ const make: (service: WebhookDeliveryService) => WebhookDeliveryService;
333
+ }
334
+ export interface WebhookOutboxWorkerService {
335
+ readonly process: (input?: WebhookOutboxProcessInput) => Effect.Effect<WebhookOutboxProcessResult, WebhookOutboxStoreError | WebhookOutboxDeadLetterHandlerError, WebhookOutboxStore | WebhookEndpointResolver | Crypto | WebhookDelivery>;
336
+ }
337
+ export declare const WebhookHeaders: {
338
+ readonly id: "effect-auth-webhook-id";
339
+ readonly timestamp: "effect-auth-webhook-timestamp";
340
+ readonly signature: "effect-auth-webhook-signature";
341
+ readonly eventType: "effect-auth-webhook-event";
342
+ };
343
+ export declare const defaultWebhookReceiverToleranceMillis: number;
344
+ export declare const defaultWebhookOutboxBackoffMillis: (nextAttemptNumber: number) => number;
345
+ export declare const defaultWebhookOutboxNextAttemptAt: (input: WebhookOutboxFailureInput) => UnixMillis;
346
+ export declare const defaultWebhookOutboxFailureMessage: (input: WebhookOutboxFailureInput) => string;
347
+ export declare const defaultWebhookOutboxDeadLetterMessage: (input: WebhookOutboxDeadLetterInput) => string;
348
+ export declare const filterDueWebhookOutboxRecords: (records: Iterable<WebhookOutboxRecord>, input: Required<Pick<WebhookOutboxClaimDueInput, "now">> & Omit<WebhookOutboxClaimDueInput, "now">) => readonly WebhookOutboxRecord[];
349
+ export declare const formatWebhookSignatureHeader: (signature: string) => string;
350
+ export declare const makeWebhookEvent: <Type extends string, Payload>(input: WebhookEventInput<Type, Payload>) => Effect.Effect<WebhookEvent<Type, Payload>>;
351
+ export declare const makeIncidentActionWebhookEvent: (input: IncidentActionWebhookEventInput) => Effect.Effect<IncidentActionWebhookEvent>;
352
+ export declare const makeLoginRiskWebhookEvent: (input: LoginRiskWebhookEventInput) => Effect.Effect<LoginRiskWebhookEvent>;
353
+ export declare const encodeWebhookEvent: (event: WebhookEvent) => Effect.Effect<string, WebhookError>;
354
+ export declare const signWebhookBody: (input: WebhookSignatureInput) => Effect.Effect<string, WebhookError, Crypto>;
355
+ export declare const verifyWebhookSignature: (input: WebhookVerifyInput) => Effect.Effect<boolean, WebhookError, Crypto>;
356
+ export declare const verifyWebhookRequest: (input: VerifyWebhookRequestInput) => Effect.Effect<VerifiedWebhookRequest, WebhookReceiverError, Crypto>;
357
+ export declare const claimWebhookReplay: (input: WebhookReplayClaimInput) => Effect.Effect<boolean, WebhookReplayStoreError, WebhookReplayStore>;
358
+ export declare const verifyWebhookRequestOnce: (input: VerifyWebhookRequestOnceInput) => Effect.Effect<VerifiedWebhookRequest, WebhookReceiverError, Crypto | WebhookReplayStore>;
359
+ export declare const makeWebhookRequest: <Type extends string, Payload>(input: MakeWebhookRequestInput<Type, Payload>) => Effect.Effect<WebhookSignedRequest, WebhookError, Crypto>;
360
+ export declare const deliverWebhook: (request: WebhookSignedRequest) => Effect.Effect<void, WebhookError, WebhookDelivery>;
361
+ export declare const resolveWebhookEndpoint: (input: WebhookEndpointResolveInput) => Effect.Effect<WebhookEndpoint | undefined, WebhookEndpointResolverError, WebhookEndpointResolver>;
362
+ export declare const dispatchWebhook: <Type extends string, Payload>(input: MakeWebhookRequestInput<Type, Payload>) => Effect.Effect<void, WebhookError, Crypto | WebhookDelivery>;
363
+ export declare const enqueueWebhook: <Type extends string, Payload>(input: WebhookOutboxEnqueueInput<Type, Payload>) => Effect.Effect<WebhookOutboxRecord<Type, Payload>, WebhookOutboxStoreError, WebhookOutboxStore>;
364
+ export declare const enqueueWebhookFanout: <Type extends string, Payload, R = never>(input: WebhookOutboxFanoutInput<Type, Payload, R>) => Effect.Effect<WebhookOutboxFanoutResult<Type, Payload>, WebhookOutboxFanoutError | WebhookOutboxStoreError, WebhookOutboxStore | R>;
365
+ export declare const claimDueWebhooks: (input?: WebhookOutboxClaimDueInput) => Effect.Effect<readonly WebhookOutboxRecord[], WebhookOutboxStoreError, WebhookOutboxStore>;
366
+ export declare const markWebhookDelivered: (input: WebhookOutboxMarkDeliveredInput) => Effect.Effect<void, WebhookOutboxStoreError, WebhookOutboxStore>;
367
+ export declare const markWebhookFailed: (input: WebhookOutboxMarkFailedInput) => Effect.Effect<void, WebhookOutboxStoreError, WebhookOutboxStore>;
368
+ export declare const markWebhookDeadLettered: (input: WebhookOutboxMarkDeadLetteredInput) => Effect.Effect<void, WebhookOutboxStoreError, WebhookOutboxStore>;
369
+ export declare const deleteWebhookOutboxBefore: (input: WebhookOutboxDeleteBeforeInput) => Effect.Effect<number, WebhookOutboxStoreError, WebhookOutboxStore>;
370
+ export declare const deleteExpiredWebhookReplays: (input?: WebhookReplayDeleteExpiredInput) => Effect.Effect<number, WebhookReplayStoreError, WebhookReplayStore>;
371
+ export declare function processWebhookOutbox(input: WebhookOutboxProcessFailInput): Effect.Effect<WebhookOutboxProcessResult, WebhookOutboxProcessError, WebhookOutboxStore | WebhookEndpointResolver | Crypto | WebhookDelivery>;
372
+ export declare function processWebhookOutbox(input?: WebhookOutboxProcessInput): Effect.Effect<WebhookOutboxProcessResult, WebhookOutboxStoreError, WebhookOutboxStore | WebhookEndpointResolver | Crypto | WebhookDelivery>;
373
+ export declare const makeWebhookOutboxWorker: (options?: WebhookOutboxProcessInput) => WebhookOutboxWorkerService;
374
+ export declare const makeWebhookReplayStoreMemory: () => WebhookReplayStoreService;
375
+ export declare const makeWebhookOutboxStoreMemory: () => WebhookOutboxStoreService;
376
+ export declare const WebhookDeliveryNoopLive: Layer.Layer<WebhookDelivery, never, never>;
377
+ export declare const WebhookOutboxStoreMemoryLive: Layer.Layer<WebhookOutboxStore, never, never>;
378
+ export declare const WebhookReplayStoreMemoryLive: Layer.Layer<WebhookReplayStore, never, never>;
379
+ export {};
380
+ //# sourceMappingURL=Webhook.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Webhook.d.ts","sourceRoot":"","sources":["../src/Webhook.ts"],"names":[],"mappings":"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"}