@effect-auth/core 0.1.0-alpha.2 → 0.1.0-alpha.4

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 (149) hide show
  1. package/README.md +148 -13
  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 +204 -1
  7. package/dist/AuditLog.d.ts.map +1 -1
  8. package/dist/AuditLog.js +170 -0
  9. package/dist/AuditLog.js.map +1 -1
  10. package/dist/AuthConfig.d.ts +0 -9
  11. package/dist/AuthConfig.d.ts.map +1 -1
  12. package/dist/AuthConfig.js +1 -14
  13. package/dist/AuthConfig.js.map +1 -1
  14. package/dist/AuthFlow.d.ts +220 -51
  15. package/dist/AuthFlow.d.ts.map +1 -1
  16. package/dist/AuthFlow.js +550 -22
  17. package/dist/AuthFlow.js.map +1 -1
  18. package/dist/AuthKernel.d.ts +1 -1
  19. package/dist/Challenge.d.ts +5 -1
  20. package/dist/Challenge.d.ts.map +1 -1
  21. package/dist/Challenge.js +58 -48
  22. package/dist/Challenge.js.map +1 -1
  23. package/dist/Client.d.ts +242 -1
  24. package/dist/Client.d.ts.map +1 -1
  25. package/dist/Client.js +489 -1
  26. package/dist/Client.js.map +1 -1
  27. package/dist/D1Kysely.d.ts +1 -1
  28. package/dist/D1Kysely.d.ts.map +1 -1
  29. package/dist/EffectQbSqliteStorage.d.ts +156 -41
  30. package/dist/EffectQbSqliteStorage.d.ts.map +1 -1
  31. package/dist/EffectQbSqliteStorage.js +336 -33
  32. package/dist/EffectQbSqliteStorage.js.map +1 -1
  33. package/dist/EmailOtp.d.ts +5 -2
  34. package/dist/EmailOtp.d.ts.map +1 -1
  35. package/dist/EmailOtp.js +11 -4
  36. package/dist/EmailOtp.js.map +1 -1
  37. package/dist/EmailVerification.d.ts +2 -2
  38. package/dist/EmailVerification.d.ts.map +1 -1
  39. package/dist/EmailVerification.js +2 -3
  40. package/dist/EmailVerification.js.map +1 -1
  41. package/dist/HttpApi/Api.d.ts +1161 -19
  42. package/dist/HttpApi/Api.d.ts.map +1 -1
  43. package/dist/HttpApi/Api.js +1433 -20
  44. package/dist/HttpApi/Api.js.map +1 -1
  45. package/dist/HttpApi/Endpoints.d.ts +611 -0
  46. package/dist/HttpApi/Endpoints.d.ts.map +1 -1
  47. package/dist/HttpApi/Endpoints.js +242 -1
  48. package/dist/HttpApi/Endpoints.js.map +1 -1
  49. package/dist/HttpApi/Schemas.d.ts +704 -0
  50. package/dist/HttpApi/Schemas.d.ts.map +1 -1
  51. package/dist/HttpApi/Schemas.js +435 -1
  52. package/dist/HttpApi/Schemas.js.map +1 -1
  53. package/dist/HttpApi/Security.d.ts +13 -1
  54. package/dist/HttpApi/Security.d.ts.map +1 -1
  55. package/dist/HttpApi/Security.js +107 -16
  56. package/dist/HttpApi/Security.js.map +1 -1
  57. package/dist/HttpApi/Transport.d.ts +36 -2
  58. package/dist/HttpApi/Transport.d.ts.map +1 -1
  59. package/dist/HttpApi/Transport.js +151 -9
  60. package/dist/HttpApi/Transport.js.map +1 -1
  61. package/dist/Jwt.d.ts +271 -0
  62. package/dist/Jwt.d.ts.map +1 -0
  63. package/dist/Jwt.js +512 -0
  64. package/dist/Jwt.js.map +1 -0
  65. package/dist/KyselyStorage.d.ts +134 -1
  66. package/dist/KyselyStorage.d.ts.map +1 -1
  67. package/dist/KyselyStorage.js +918 -4
  68. package/dist/KyselyStorage.js.map +1 -1
  69. package/dist/LoginApproval.d.ts +314 -0
  70. package/dist/LoginApproval.d.ts.map +1 -0
  71. package/dist/LoginApproval.js +551 -0
  72. package/dist/LoginApproval.js.map +1 -0
  73. package/dist/LoginNotification.d.ts +183 -0
  74. package/dist/LoginNotification.d.ts.map +1 -0
  75. package/dist/LoginNotification.js +329 -0
  76. package/dist/LoginNotification.js.map +1 -0
  77. package/dist/LoginRisk.d.ts +73 -0
  78. package/dist/LoginRisk.d.ts.map +1 -0
  79. package/dist/LoginRisk.js +57 -0
  80. package/dist/LoginRisk.js.map +1 -0
  81. package/dist/MagicLink.d.ts +85 -0
  82. package/dist/MagicLink.d.ts.map +1 -0
  83. package/dist/MagicLink.js +206 -0
  84. package/dist/MagicLink.js.map +1 -0
  85. package/dist/Mailer.d.ts +33 -2
  86. package/dist/Mailer.d.ts.map +1 -1
  87. package/dist/Mailer.js +107 -0
  88. package/dist/Mailer.js.map +1 -1
  89. package/dist/Passkey.d.ts +334 -0
  90. package/dist/Passkey.d.ts.map +1 -0
  91. package/dist/Passkey.js +422 -0
  92. package/dist/Passkey.js.map +1 -0
  93. package/dist/Password.d.ts +138 -8
  94. package/dist/Password.d.ts.map +1 -1
  95. package/dist/Password.js +397 -8
  96. package/dist/Password.js.map +1 -1
  97. package/dist/RecoveryCode.d.ts +169 -0
  98. package/dist/RecoveryCode.d.ts.map +1 -0
  99. package/dist/RecoveryCode.js +299 -0
  100. package/dist/RecoveryCode.js.map +1 -0
  101. package/dist/RefreshToken.d.ts +222 -0
  102. package/dist/RefreshToken.d.ts.map +1 -0
  103. package/dist/RefreshToken.js +342 -0
  104. package/dist/RefreshToken.js.map +1 -0
  105. package/dist/Sessions.d.ts +52 -2
  106. package/dist/Sessions.d.ts.map +1 -1
  107. package/dist/Sessions.js +123 -1
  108. package/dist/Sessions.js.map +1 -1
  109. package/dist/StepUp.d.ts +44 -0
  110. package/dist/StepUp.d.ts.map +1 -0
  111. package/dist/StepUp.js +82 -0
  112. package/dist/StepUp.js.map +1 -0
  113. package/dist/Storage.d.ts +14 -1
  114. package/dist/Storage.d.ts.map +1 -1
  115. package/dist/Storage.js.map +1 -1
  116. package/dist/StorageMigrations.d.ts +9 -1
  117. package/dist/StorageMigrations.d.ts.map +1 -1
  118. package/dist/StorageMigrations.js +159 -0
  119. package/dist/StorageMigrations.js.map +1 -1
  120. package/dist/Testing.d.ts +1 -1
  121. package/dist/Totp.d.ts +220 -0
  122. package/dist/Totp.d.ts.map +1 -0
  123. package/dist/Totp.js +477 -0
  124. package/dist/Totp.js.map +1 -0
  125. package/dist/TrustedDevice.d.ts +115 -0
  126. package/dist/TrustedDevice.d.ts.map +1 -0
  127. package/dist/TrustedDevice.js +222 -0
  128. package/dist/TrustedDevice.js.map +1 -0
  129. package/dist/alchemy/cloudflare/Email.d.ts +25 -0
  130. package/dist/alchemy/cloudflare/Email.d.ts.map +1 -0
  131. package/dist/alchemy/cloudflare/Email.js +117 -0
  132. package/dist/alchemy/cloudflare/Email.js.map +1 -0
  133. package/dist/cloudflare/Email.d.ts +25 -0
  134. package/dist/cloudflare/Email.d.ts.map +1 -0
  135. package/dist/cloudflare/Email.js +153 -0
  136. package/dist/cloudflare/Email.js.map +1 -0
  137. package/dist/index.d.ts +12 -0
  138. package/dist/index.d.ts.map +1 -1
  139. package/dist/index.js +12 -0
  140. package/dist/index.js.map +1 -1
  141. package/migrations/0003_auth_login_approval_review.sql +22 -0
  142. package/migrations/0004_auth_trusted_device.sql +12 -0
  143. package/migrations/0005_auth_passkey.sql +17 -0
  144. package/migrations/0006_auth_totp_factor.sql +17 -0
  145. package/migrations/0007_auth_recovery_code.sql +13 -0
  146. package/migrations/0008_auth_api_key.sql +17 -0
  147. package/migrations/0009_auth_refresh_token.sql +21 -0
  148. package/migrations/0010_auth_jwt_revocation.sql +8 -0
  149. package/package.json +57 -1
package/dist/ApiKey.js ADDED
@@ -0,0 +1,275 @@
1
+ import { Brand, Context, Data, Effect, Layer, Option, Redacted } from "effect";
2
+ import { Crypto } from "./Crypto.js";
3
+ import { currentUnixMillis } from "./Internal.js";
4
+ export const ApiKeyId = Brand.nominal();
5
+ export const ApiKeyPrefix = Brand.nominal();
6
+ export const ApiKeySecret = Brand.nominal();
7
+ export const ApiKeySecretHash = Brand.nominal();
8
+ export const defaultApiKeyPrefixBytes = 8;
9
+ export const defaultApiKeySecretBytes = 32;
10
+ export const defaultApiKeyIdBytes = 16;
11
+ export class ApiKeyError extends Data.TaggedError("ApiKeyError") {
12
+ }
13
+ export class ApiKeys extends Context.Service()("auth/ApiKeys") {
14
+ }
15
+ (function (ApiKeys) {
16
+ ApiKeys.make = (service) => ApiKeys.of(service);
17
+ })(ApiKeys || (ApiKeys = {}));
18
+ const textEncoder = new TextEncoder();
19
+ const apiKeyError = (operation, message, cause) => new ApiKeyError({
20
+ operation,
21
+ message,
22
+ ...(cause === undefined ? {} : { cause }),
23
+ });
24
+ const validateByteLength = (byteLength, operation, label) => Number.isInteger(byteLength) && byteLength >= 4 && byteLength <= 128
25
+ ? Effect.succeed(byteLength)
26
+ : Effect.fail(apiKeyError(operation, `${label} byte length must be an integer between 4 and 128`));
27
+ const parseApiKeySecretValue = (secret) => {
28
+ const value = secret.trim();
29
+ const parts = value.split(".");
30
+ if (parts.length !== 2 || parts[0] === "" || parts[1] === "") {
31
+ return Effect.fail(apiKeyError("parse", "API key secret must use '<prefix>.<secret>' format"));
32
+ }
33
+ return Effect.succeed(ApiKeyPrefix(parts[0]));
34
+ };
35
+ const hashApiKeySecretValue = (dependencies, secret, operation) => dependencies.crypto.digestSha256({ data: `api-key:${secret}` }).pipe(Effect.map((hash) => ApiKeySecretHash(`sha256:${hash}`)), Effect.mapError((cause) => apiKeyError(operation, "Failed to hash API key secret", cause)));
36
+ export const makeApiKeys = (dependencies) => ApiKeys.make({
37
+ generate: Effect.fn("auth.api_key.generate")(function* (input) {
38
+ const prefixBytes = yield* validateByteLength(input?.prefixBytes ?? defaultApiKeyPrefixBytes, "generate", "API key prefix");
39
+ const secretBytes = yield* validateByteLength(input?.secretBytes ?? defaultApiKeySecretBytes, "generate", "API key secret");
40
+ const prefix = yield* dependencies.crypto.randomToken(prefixBytes).pipe(Effect.map(ApiKeyPrefix), Effect.mapError((cause) => apiKeyError("generate", "Failed to generate API key prefix", cause)));
41
+ const secret = yield* dependencies.crypto.randomToken(secretBytes).pipe(Effect.map((value) => ApiKeySecret(`${prefix}.${value}`)), Effect.mapError((cause) => apiKeyError("generate", "Failed to generate API key secret", cause)));
42
+ return {
43
+ prefix,
44
+ secret: Redacted.make(secret),
45
+ };
46
+ }),
47
+ parse: Effect.fn("auth.api_key.parse")(function* (secret) {
48
+ return yield* parseApiKeySecretValue(Redacted.value(secret));
49
+ }),
50
+ hash: Effect.fn("auth.api_key.hash")(function* (input) {
51
+ const secret = Redacted.value(input.secret).trim();
52
+ yield* parseApiKeySecretValue(secret).pipe(Effect.mapError((cause) => apiKeyError("hash", "Cannot hash malformed API key secret", cause)));
53
+ return yield* hashApiKeySecretValue(dependencies, secret, "hash");
54
+ }),
55
+ verify: Effect.fn("auth.api_key.verify")(function* (input) {
56
+ const secret = Redacted.value(input.secret).trim();
57
+ const prefix = yield* parseApiKeySecretValue(secret).pipe(Effect.catchTag("ApiKeyError", () => Effect.succeed(undefined)));
58
+ if (prefix === undefined) {
59
+ return false;
60
+ }
61
+ const hash = yield* hashApiKeySecretValue(dependencies, secret, "verify");
62
+ return yield* dependencies.crypto
63
+ .timingSafeEqual({
64
+ left: textEncoder.encode(hash),
65
+ right: textEncoder.encode(input.hash),
66
+ })
67
+ .pipe(Effect.mapError((cause) => apiKeyError("verify", "Failed to compare API key hashes", cause)));
68
+ }),
69
+ });
70
+ export const ApiKeysLive = Layer.effect(ApiKeys)(Effect.gen(function* () {
71
+ const crypto = yield* Crypto;
72
+ return makeApiKeys({ crypto });
73
+ }));
74
+ export class ApiKeyStoreError extends Data.TaggedError("ApiKeyStoreError") {
75
+ }
76
+ export class ApiKeyStore extends Context.Service()("auth/ApiKeyStore") {
77
+ }
78
+ (function (ApiKeyStore) {
79
+ ApiKeyStore.make = (service) => ApiKeyStore.of(service);
80
+ })(ApiKeyStore || (ApiKeyStore = {}));
81
+ const cloneMetadata = (metadata) => metadata === undefined ? undefined : structuredClone(metadata);
82
+ const cloneApiKeyRecord = (record) => ({
83
+ ...record,
84
+ scopes: [...record.scopes],
85
+ ...(record.metadata === undefined ? {} : { metadata: cloneMetadata(record.metadata) }),
86
+ });
87
+ export const makeApiKeyStoreMemory = () => {
88
+ const keysById = new Map();
89
+ const idByPrefix = new Map();
90
+ return ApiKeyStore.make({
91
+ insert: (row) => Effect.sync(() => {
92
+ keysById.set(row.id, cloneApiKeyRecord(row));
93
+ idByPrefix.set(row.prefix, row.id);
94
+ }),
95
+ findById: (id) => Effect.sync(() => {
96
+ const row = keysById.get(id);
97
+ return row === undefined ? Option.none() : Option.some(cloneApiKeyRecord(row));
98
+ }),
99
+ findByPrefix: (prefix) => Effect.sync(() => {
100
+ const id = idByPrefix.get(prefix);
101
+ const row = id === undefined ? undefined : keysById.get(id);
102
+ return row === undefined ? Option.none() : Option.some(cloneApiKeyRecord(row));
103
+ }),
104
+ listByUser: (input) => Effect.sync(() => [...keysById.values()]
105
+ .filter((row) => row.userId === input.userId &&
106
+ (input.includeRevoked === true || row.revokedAt === undefined))
107
+ .map(cloneApiKeyRecord)),
108
+ markUsed: (input) => Effect.sync(() => {
109
+ const row = keysById.get(input.id);
110
+ if (row === undefined || row.revokedAt !== undefined) {
111
+ return Option.none();
112
+ }
113
+ const updated = {
114
+ ...row,
115
+ lastUsedAt: input.lastUsedAt,
116
+ metadata: input.metadata ?? row.metadata,
117
+ };
118
+ keysById.set(input.id, updated);
119
+ return Option.some(cloneApiKeyRecord(updated));
120
+ }),
121
+ revoke: (input) => Effect.sync(() => {
122
+ const row = keysById.get(input.id);
123
+ if (row !== undefined) {
124
+ keysById.set(input.id, {
125
+ ...row,
126
+ revokedAt: input.revokedAt,
127
+ metadata: input.reason === undefined
128
+ ? row.metadata
129
+ : { ...row.metadata, revokeReason: input.reason },
130
+ });
131
+ }
132
+ }),
133
+ });
134
+ };
135
+ export const ApiKeyStoreMemoryLive = Layer.sync(ApiKeyStore)(makeApiKeyStoreMemory);
136
+ export class ApiKeyManagementError extends Data.TaggedError("ApiKeyManagementError") {
137
+ }
138
+ export class ApiKeyManagement extends Context.Service()("auth/ApiKeyManagement") {
139
+ }
140
+ (function (ApiKeyManagement) {
141
+ ApiKeyManagement.make = (service) => ApiKeyManagement.of(service);
142
+ })(ApiKeyManagement || (ApiKeyManagement = {}));
143
+ const apiKeyInfo = (record) => ({
144
+ id: record.id,
145
+ userId: record.userId,
146
+ prefix: record.prefix,
147
+ scopes: [...record.scopes],
148
+ createdAt: record.createdAt,
149
+ ...(record.expiresAt === undefined ? {} : { expiresAt: record.expiresAt }),
150
+ ...(record.lastUsedAt === undefined ? {} : { lastUsedAt: record.lastUsedAt }),
151
+ ...(record.revokedAt === undefined ? {} : { revokedAt: record.revokedAt }),
152
+ ...(record.metadata === undefined ? {} : { metadata: record.metadata }),
153
+ });
154
+ const apiKeyManagementError = (operation, message, cause) => new ApiKeyManagementError({
155
+ operation,
156
+ message,
157
+ ...(cause === undefined ? {} : { cause }),
158
+ });
159
+ const makeApiKeyId = (dependencies) => dependencies.crypto.randomToken(dependencies.keyIdBytes ?? defaultApiKeyIdBytes).pipe(Effect.map(ApiKeyId), Effect.mapError((cause) => apiKeyManagementError("create", "Failed to generate API key id", cause)));
160
+ const loadOwnedApiKey = (dependencies, operation, input) => Effect.gen(function* () {
161
+ const key = yield* dependencies.keyStore.findById(input.keyId).pipe(Effect.mapError((cause) => apiKeyManagementError(operation, "Failed to load API key", cause)));
162
+ if (Option.isNone(key) || key.value.userId !== input.userId) {
163
+ return yield* apiKeyManagementError(operation, "API key not found");
164
+ }
165
+ return key.value;
166
+ });
167
+ export const makeApiKeyManagement = (dependencies) => ApiKeyManagement.make({
168
+ createForUser: Effect.fn("auth.api_key.management.create")(function* (input) {
169
+ const now = input.now ?? (yield* currentUnixMillis);
170
+ const generated = yield* dependencies.apiKeys.generate().pipe(Effect.mapError((cause) => apiKeyManagementError("create", "Failed to generate API key secret", cause)));
171
+ const secretHash = yield* dependencies.apiKeys
172
+ .hash({ secret: Redacted.make(Redacted.value(generated.secret)) })
173
+ .pipe(Effect.mapError((cause) => apiKeyManagementError("create", "Failed to hash API key secret", cause)));
174
+ const row = {
175
+ id: input.keyId ?? (yield* makeApiKeyId(dependencies)),
176
+ userId: input.userId,
177
+ prefix: generated.prefix,
178
+ secretHash,
179
+ scopes: [...(input.scopes ?? [])],
180
+ createdAt: now,
181
+ ...(input.expiresAt === undefined ? {} : { expiresAt: input.expiresAt }),
182
+ ...(input.metadata === undefined ? {} : { metadata: input.metadata }),
183
+ };
184
+ yield* dependencies.keyStore.insert(row).pipe(Effect.mapError((cause) => apiKeyManagementError("create", "Failed to store API key", cause)));
185
+ return {
186
+ secret: generated.secret,
187
+ key: apiKeyInfo(row),
188
+ };
189
+ }),
190
+ listForUser: Effect.fn("auth.api_key.management.list")(function* (input) {
191
+ const keys = yield* dependencies.keyStore
192
+ .listByUser({
193
+ userId: input.userId,
194
+ ...(input.includeRevoked === undefined
195
+ ? {}
196
+ : { includeRevoked: input.includeRevoked }),
197
+ })
198
+ .pipe(Effect.mapError((cause) => apiKeyManagementError("list", "Failed to list API keys", cause)));
199
+ return keys.map(apiKeyInfo);
200
+ }),
201
+ revokeForUser: Effect.fn("auth.api_key.management.revoke")(function* (input) {
202
+ const key = yield* loadOwnedApiKey(dependencies, "revoke", input);
203
+ if (key.revokedAt !== undefined) {
204
+ return;
205
+ }
206
+ const revokedAt = input.revokedAt ?? (yield* currentUnixMillis);
207
+ yield* dependencies.keyStore
208
+ .revoke({
209
+ id: input.keyId,
210
+ revokedAt,
211
+ ...(input.reason === undefined ? {} : { reason: input.reason }),
212
+ })
213
+ .pipe(Effect.mapError((cause) => apiKeyManagementError("revoke", "Failed to revoke API key", cause)));
214
+ }),
215
+ });
216
+ export const ApiKeyManagementLive = Layer.effect(ApiKeyManagement)(Effect.gen(function* () {
217
+ const apiKeys = yield* ApiKeys;
218
+ const crypto = yield* Crypto;
219
+ const keyStore = yield* ApiKeyStore;
220
+ return makeApiKeyManagement({ apiKeys, crypto, keyStore });
221
+ }));
222
+ export class ApiKeyVerificationError extends Data.TaggedError("ApiKeyVerificationError") {
223
+ }
224
+ export class ApiKeyVerification extends Context.Service()("auth/ApiKeyVerification") {
225
+ }
226
+ (function (ApiKeyVerification) {
227
+ ApiKeyVerification.make = (service) => ApiKeyVerification.of(service);
228
+ })(ApiKeyVerification || (ApiKeyVerification = {}));
229
+ const apiKeyVerificationError = (message, cause) => new ApiKeyVerificationError({
230
+ operation: "verify",
231
+ message,
232
+ ...(cause === undefined ? {} : { cause }),
233
+ });
234
+ export const makeApiKeyVerification = (dependencies) => ApiKeyVerification.make({
235
+ verify: Effect.fn("auth.api_key.verification.verify")(function* (input) {
236
+ const prefix = yield* dependencies.apiKeys.parse(input.secret).pipe(Effect.catchTag("ApiKeyError", () => Effect.succeed(undefined)));
237
+ if (prefix === undefined) {
238
+ return { valid: false };
239
+ }
240
+ const key = yield* dependencies.keyStore.findByPrefix(prefix).pipe(Effect.mapError((cause) => apiKeyVerificationError("Failed to load API key", cause)));
241
+ if (Option.isNone(key) || key.value.revokedAt !== undefined) {
242
+ return { valid: false };
243
+ }
244
+ const now = input.now ?? (yield* currentUnixMillis);
245
+ if (key.value.expiresAt !== undefined && Number(key.value.expiresAt) <= Number(now)) {
246
+ return { valid: false };
247
+ }
248
+ const valid = yield* dependencies.apiKeys
249
+ .verify({ secret: input.secret, hash: key.value.secretHash })
250
+ .pipe(Effect.mapError((cause) => apiKeyVerificationError("Failed to verify API key", cause)));
251
+ if (!valid) {
252
+ return { valid: false };
253
+ }
254
+ const updated = yield* dependencies.keyStore
255
+ .markUsed({
256
+ id: key.value.id,
257
+ lastUsedAt: now,
258
+ ...(input.metadata === undefined ? {} : { metadata: input.metadata }),
259
+ })
260
+ .pipe(Effect.mapError((cause) => apiKeyVerificationError("Failed to mark API key as used", cause)));
261
+ if (Option.isNone(updated)) {
262
+ return { valid: false };
263
+ }
264
+ return {
265
+ valid: true,
266
+ key: apiKeyInfo(updated.value),
267
+ };
268
+ }),
269
+ });
270
+ export const ApiKeyVerificationLive = Layer.effect(ApiKeyVerification)(Effect.gen(function* () {
271
+ const apiKeys = yield* ApiKeys;
272
+ const keyStore = yield* ApiKeyStore;
273
+ return makeApiKeyVerification({ apiKeys, keyStore });
274
+ }));
275
+ //# sourceMappingURL=ApiKey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApiKey.js","sourceRoot":"","sources":["../src/ApiKey.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,8 @@
1
1
  import { Context, Effect, Layer } from "effect";
2
- import type { AuditEventId, EmailHash, IpHash, PolicyId, SessionId, UnixMillis, UserAgentHash, UserId } from "./Identifiers.js";
2
+ import type { ApiKeyId } from "./ApiKey.js";
3
+ import type { AuditEventId, CredentialId, EmailHash, IpHash, PolicyId, SessionId, UnixMillis, UserAgentHash, UserId } from "./Identifiers.js";
4
+ import type { PasskeyCredentialId } from "./Passkey.js";
5
+ import type { RefreshTokenFamilyId, RefreshTokenId } from "./RefreshToken.js";
3
6
  declare const AuditLogError_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 & {
4
7
  readonly _tag: "AuditLogError";
5
8
  } & Readonly<A>;
@@ -15,6 +18,13 @@ export type AuditActor = {
15
18
  readonly userId: UserId;
16
19
  readonly sessionId?: SessionId;
17
20
  };
21
+ export declare const AuditActor: {
22
+ readonly anonymous: () => AuditActor;
23
+ readonly user: (input: {
24
+ readonly userId: UserId;
25
+ readonly sessionId?: SessionId;
26
+ }) => AuditActor;
27
+ };
18
28
  export type AuditSubject = {
19
29
  readonly type: "anonymous";
20
30
  } | {
@@ -24,6 +34,11 @@ export type AuditSubject = {
24
34
  readonly type: "user";
25
35
  readonly userId: UserId;
26
36
  };
37
+ export declare const AuditSubject: {
38
+ readonly anonymous: () => AuditSubject;
39
+ readonly email: (emailHash: EmailHash) => AuditSubject;
40
+ readonly user: (userId: UserId) => AuditSubject;
41
+ };
27
42
  export interface AuditRequest {
28
43
  readonly ipHash?: IpHash;
29
44
  readonly userAgentHash?: UserAgentHash;
@@ -59,6 +74,166 @@ export type AuthAuditEvent = {
59
74
  readonly reason: string;
60
75
  readonly request?: AuditRequest;
61
76
  readonly occurredAt: UnixMillis;
77
+ } | {
78
+ readonly type: "auth.passkey.credential.revoked";
79
+ readonly id?: AuditEventId;
80
+ readonly actor: AuditActor;
81
+ readonly userId: UserId;
82
+ readonly credentialId: PasskeyCredentialId;
83
+ readonly reason: string;
84
+ readonly request?: AuditRequest;
85
+ readonly occurredAt: UnixMillis;
86
+ } | {
87
+ readonly type: "auth.totp.enrollment.started";
88
+ readonly id?: AuditEventId;
89
+ readonly actor: AuditActor;
90
+ readonly userId: UserId;
91
+ readonly factorId: CredentialId;
92
+ readonly request?: AuditRequest;
93
+ readonly occurredAt: UnixMillis;
94
+ } | {
95
+ readonly type: "auth.totp.factor.confirmed";
96
+ readonly id?: AuditEventId;
97
+ readonly actor: AuditActor;
98
+ readonly userId: UserId;
99
+ readonly factorId: CredentialId;
100
+ readonly request?: AuditRequest;
101
+ readonly occurredAt: UnixMillis;
102
+ } | {
103
+ readonly type: "auth.totp.factor.verified";
104
+ readonly id?: AuditEventId;
105
+ readonly actor: AuditActor;
106
+ readonly userId: UserId;
107
+ readonly factorId: CredentialId;
108
+ readonly request?: AuditRequest;
109
+ readonly occurredAt: UnixMillis;
110
+ } | {
111
+ readonly type: "auth.totp.factor.revoked";
112
+ readonly id?: AuditEventId;
113
+ readonly actor: AuditActor;
114
+ readonly userId: UserId;
115
+ readonly factorId: CredentialId;
116
+ readonly reason: string;
117
+ readonly request?: AuditRequest;
118
+ readonly occurredAt: UnixMillis;
119
+ } | {
120
+ readonly type: "auth.recovery_code.generated";
121
+ readonly id?: AuditEventId;
122
+ readonly actor: AuditActor;
123
+ readonly userId: UserId;
124
+ readonly count: number;
125
+ readonly request?: AuditRequest;
126
+ readonly occurredAt: UnixMillis;
127
+ } | {
128
+ readonly type: "auth.recovery_code.verified";
129
+ readonly id?: AuditEventId;
130
+ readonly actor: AuditActor;
131
+ readonly userId: UserId;
132
+ readonly codeId: CredentialId;
133
+ readonly request?: AuditRequest;
134
+ readonly occurredAt: UnixMillis;
135
+ } | {
136
+ readonly type: "auth.recovery_code.revoked";
137
+ readonly id?: AuditEventId;
138
+ readonly actor: AuditActor;
139
+ readonly userId: UserId;
140
+ readonly codeId: CredentialId;
141
+ readonly reason: string;
142
+ readonly request?: AuditRequest;
143
+ readonly occurredAt: UnixMillis;
144
+ } | {
145
+ readonly type: "auth.api_key.created";
146
+ readonly id?: AuditEventId;
147
+ readonly actor: AuditActor;
148
+ readonly userId: UserId;
149
+ readonly keyId: ApiKeyId;
150
+ readonly scopes: readonly string[];
151
+ readonly request?: AuditRequest;
152
+ readonly occurredAt: UnixMillis;
153
+ } | {
154
+ readonly type: "auth.api_key.verified";
155
+ readonly id?: AuditEventId;
156
+ readonly actor: AuditActor;
157
+ readonly userId: UserId;
158
+ readonly keyId: ApiKeyId;
159
+ readonly scopes: readonly string[];
160
+ readonly request?: AuditRequest;
161
+ readonly occurredAt: UnixMillis;
162
+ } | {
163
+ readonly type: "auth.api_key.revoked";
164
+ readonly id?: AuditEventId;
165
+ readonly actor: AuditActor;
166
+ readonly userId: UserId;
167
+ readonly keyId: ApiKeyId;
168
+ readonly reason: string;
169
+ readonly request?: AuditRequest;
170
+ readonly occurredAt: UnixMillis;
171
+ } | {
172
+ readonly type: "auth.api_key.verification_failed";
173
+ readonly id?: AuditEventId;
174
+ readonly actor: AuditActor;
175
+ readonly reason: string;
176
+ readonly request?: AuditRequest;
177
+ readonly occurredAt: UnixMillis;
178
+ } | {
179
+ readonly type: "auth.refresh_token.issued";
180
+ readonly id?: AuditEventId;
181
+ readonly actor: AuditActor;
182
+ readonly userId: UserId;
183
+ readonly tokenId: RefreshTokenId;
184
+ readonly familyId: RefreshTokenFamilyId;
185
+ readonly expiresAt: UnixMillis;
186
+ readonly request?: AuditRequest;
187
+ readonly occurredAt: UnixMillis;
188
+ } | {
189
+ readonly type: "auth.refresh_token.rotated";
190
+ readonly id?: AuditEventId;
191
+ readonly actor: AuditActor;
192
+ readonly userId: UserId;
193
+ readonly previousTokenId: RefreshTokenId;
194
+ readonly tokenId: RefreshTokenId;
195
+ readonly familyId: RefreshTokenFamilyId;
196
+ readonly expiresAt: UnixMillis;
197
+ readonly request?: AuditRequest;
198
+ readonly occurredAt: UnixMillis;
199
+ } | {
200
+ readonly type: "auth.refresh_token.reuse_detected";
201
+ readonly id?: AuditEventId;
202
+ readonly actor: AuditActor;
203
+ readonly userId: UserId;
204
+ readonly tokenId: RefreshTokenId;
205
+ readonly familyId: RefreshTokenFamilyId;
206
+ readonly request?: AuditRequest;
207
+ readonly occurredAt: UnixMillis;
208
+ } | {
209
+ readonly type: "auth.refresh_token.revoked";
210
+ readonly id?: AuditEventId;
211
+ readonly actor: AuditActor;
212
+ readonly userId: UserId;
213
+ readonly familyId: RefreshTokenFamilyId;
214
+ readonly tokenId?: RefreshTokenId;
215
+ readonly reason: string;
216
+ readonly request?: AuditRequest;
217
+ readonly occurredAt: UnixMillis;
218
+ } | {
219
+ readonly type: "auth.jwt.introspected";
220
+ readonly id?: AuditEventId;
221
+ readonly actor: AuditActor;
222
+ readonly active: boolean;
223
+ readonly jwtId?: string;
224
+ readonly expiresAt?: UnixMillis;
225
+ readonly reason?: string;
226
+ readonly request?: AuditRequest;
227
+ readonly occurredAt: UnixMillis;
228
+ } | {
229
+ readonly type: "auth.jwt.revoked";
230
+ readonly id?: AuditEventId;
231
+ readonly actor: AuditActor;
232
+ readonly jwtId: string;
233
+ readonly expiresAt?: UnixMillis;
234
+ readonly reason: string;
235
+ readonly request?: AuditRequest;
236
+ readonly occurredAt: UnixMillis;
62
237
  };
63
238
  export interface AuditLogService {
64
239
  readonly emit: (event: AuthAuditEvent) => Effect.Effect<void, AuditLogError>;
@@ -69,6 +244,34 @@ export declare class AuditLog extends AuditLog_base {
69
244
  export declare namespace AuditLog {
70
245
  const make: (service: AuditLogService) => AuditLogService;
71
246
  }
247
+ export type AuditEventInput<Type extends AuthAuditEvent["type"]> = Omit<Extract<AuthAuditEvent, {
248
+ readonly type: Type;
249
+ }>, "type" | "occurredAt"> & {
250
+ readonly occurredAt?: UnixMillis;
251
+ };
252
+ export declare const emit: (event: AuthAuditEvent) => Effect.Effect<void, AuditLogError, AuditLog>;
253
+ export declare const loginSucceeded: (input: AuditEventInput<"auth.login.succeeded">) => Effect.Effect<void, AuditLogError, AuditLog>;
254
+ export declare const loginFailed: (input: AuditEventInput<"auth.login.failed">) => Effect.Effect<void, AuditLogError, AuditLog>;
255
+ export declare const sessionRevoked: (input: AuditEventInput<"auth.session.revoked">) => Effect.Effect<void, AuditLogError, AuditLog>;
256
+ export declare const policyDenied: (input: AuditEventInput<"auth.policy.denied">) => Effect.Effect<void, AuditLogError, AuditLog>;
257
+ export declare const passkeyCredentialRevoked: (input: AuditEventInput<"auth.passkey.credential.revoked">) => Effect.Effect<void, AuditLogError, AuditLog>;
258
+ export declare const totpEnrollmentStarted: (input: AuditEventInput<"auth.totp.enrollment.started">) => Effect.Effect<void, AuditLogError, AuditLog>;
259
+ export declare const totpFactorConfirmed: (input: AuditEventInput<"auth.totp.factor.confirmed">) => Effect.Effect<void, AuditLogError, AuditLog>;
260
+ export declare const totpFactorVerified: (input: AuditEventInput<"auth.totp.factor.verified">) => Effect.Effect<void, AuditLogError, AuditLog>;
261
+ export declare const totpFactorRevoked: (input: AuditEventInput<"auth.totp.factor.revoked">) => Effect.Effect<void, AuditLogError, AuditLog>;
262
+ export declare const recoveryCodeGenerated: (input: AuditEventInput<"auth.recovery_code.generated">) => Effect.Effect<void, AuditLogError, AuditLog>;
263
+ export declare const recoveryCodeVerified: (input: AuditEventInput<"auth.recovery_code.verified">) => Effect.Effect<void, AuditLogError, AuditLog>;
264
+ export declare const recoveryCodeRevoked: (input: AuditEventInput<"auth.recovery_code.revoked">) => Effect.Effect<void, AuditLogError, AuditLog>;
265
+ export declare const apiKeyCreated: (input: AuditEventInput<"auth.api_key.created">) => Effect.Effect<void, AuditLogError, AuditLog>;
266
+ export declare const apiKeyVerified: (input: AuditEventInput<"auth.api_key.verified">) => Effect.Effect<void, AuditLogError, AuditLog>;
267
+ export declare const apiKeyRevoked: (input: AuditEventInput<"auth.api_key.revoked">) => Effect.Effect<void, AuditLogError, AuditLog>;
268
+ export declare const apiKeyVerificationFailed: (input: AuditEventInput<"auth.api_key.verification_failed">) => Effect.Effect<void, AuditLogError, AuditLog>;
269
+ export declare const refreshTokenIssued: (input: AuditEventInput<"auth.refresh_token.issued">) => Effect.Effect<void, AuditLogError, AuditLog>;
270
+ export declare const refreshTokenRotated: (input: AuditEventInput<"auth.refresh_token.rotated">) => Effect.Effect<void, AuditLogError, AuditLog>;
271
+ export declare const refreshTokenReuseDetected: (input: AuditEventInput<"auth.refresh_token.reuse_detected">) => Effect.Effect<void, AuditLogError, AuditLog>;
272
+ export declare const refreshTokenRevoked: (input: AuditEventInput<"auth.refresh_token.revoked">) => Effect.Effect<void, AuditLogError, AuditLog>;
273
+ export declare const jwtIntrospected: (input: AuditEventInput<"auth.jwt.introspected">) => Effect.Effect<void, AuditLogError, AuditLog>;
274
+ export declare const jwtRevoked: (input: AuditEventInput<"auth.jwt.revoked">) => Effect.Effect<void, AuditLogError, AuditLog>;
72
275
  export declare const AuditLogNoopLive: Layer.Layer<AuditLog, never, never>;
73
276
  export {};
74
277
  //# sourceMappingURL=AuditLog.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AuditLog.d.ts","sourceRoot":"","sources":["../src/AuditLog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAQ,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAEtD,OAAO,KAAK,EACV,YAAY,EACZ,SAAS,EACT,MAAM,EACN,QAAQ,EACR,SAAS,EACT,UAAU,EACV,aAAa,EACb,MAAM,EACP,MAAM,kBAAkB,CAAC;;;;AAE1B,qBAAa,aAAc,SAAQ,mBAAkC;IACnE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;CAAG;AAEL,MAAM,MAAM,UAAU,GAClB;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;CAAE,GAC9B;IACE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;CAChC,CAAC;AAEN,MAAM,MAAM,YAAY,GACpB;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;CAAE,GAC9B;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;CAAE,GACzD;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;CACxC;AAED,MAAM,MAAM,cAAc,GACtB;IACE,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAC;IACtC,QAAQ,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;CACjC,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,QAAQ,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;CACjC,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAC;IACtC,QAAQ,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;CACjC,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IACpC,QAAQ,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;CACjC,CAAC;AAEN,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;CAC9E;;AAED,qBAAa,QAAS,SAAQ,aAE7B;CAAG;AAEJ,yBAAiB,QAAQ,CAAC;IACjB,MAAM,IAAI,GAAI,SAAS,eAAe,KAAG,eAC1B,CAAC;CACxB;AAED,eAAO,MAAM,gBAAgB,qCAI5B,CAAC"}
1
+ {"version":3,"file":"AuditLog.d.ts","sourceRoot":"","sources":["../src/AuditLog.ts"],"names":[],"mappings":"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"}