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

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 (147) hide show
  1. package/README.md +679 -36
  2. package/dist/AuditLog.d.ts +3 -0
  3. package/dist/AuditLog.d.ts.map +1 -1
  4. package/dist/AuditLog.js +6 -3
  5. package/dist/AuditLog.js.map +1 -1
  6. package/dist/AuthConfig.d.ts +51 -0
  7. package/dist/AuthConfig.d.ts.map +1 -0
  8. package/dist/AuthConfig.js +56 -0
  9. package/dist/AuthConfig.js.map +1 -0
  10. package/dist/AuthFlow.d.ts +295 -35
  11. package/dist/AuthFlow.d.ts.map +1 -1
  12. package/dist/AuthFlow.js +133 -6
  13. package/dist/AuthFlow.js.map +1 -1
  14. package/dist/AuthKernel.d.ts +3 -0
  15. package/dist/AuthKernel.d.ts.map +1 -0
  16. package/dist/AuthKernel.js +9 -0
  17. package/dist/AuthKernel.js.map +1 -0
  18. package/dist/Challenge.d.ts +22 -3
  19. package/dist/Challenge.d.ts.map +1 -1
  20. package/dist/Challenge.js +160 -1
  21. package/dist/Challenge.js.map +1 -1
  22. package/dist/Client.d.ts +36 -0
  23. package/dist/Client.d.ts.map +1 -0
  24. package/dist/Client.js +55 -0
  25. package/dist/Client.js.map +1 -0
  26. package/dist/Crypto.d.ts +9 -1
  27. package/dist/Crypto.d.ts.map +1 -1
  28. package/dist/Crypto.js +65 -1
  29. package/dist/Crypto.js.map +1 -1
  30. package/dist/D1Kysely.d.ts +43 -0
  31. package/dist/D1Kysely.d.ts.map +1 -0
  32. package/dist/D1Kysely.js +78 -0
  33. package/dist/D1Kysely.js.map +1 -0
  34. package/dist/EffectQbSqliteStorage.d.ts +183 -0
  35. package/dist/EffectQbSqliteStorage.d.ts.map +1 -0
  36. package/dist/EffectQbSqliteStorage.js +446 -0
  37. package/dist/EffectQbSqliteStorage.js.map +1 -0
  38. package/dist/EmailOtp.d.ts +117 -0
  39. package/dist/EmailOtp.d.ts.map +1 -0
  40. package/dist/EmailOtp.js +279 -0
  41. package/dist/EmailOtp.js.map +1 -0
  42. package/dist/EmailVerification.d.ts +121 -0
  43. package/dist/EmailVerification.d.ts.map +1 -0
  44. package/dist/EmailVerification.js +201 -0
  45. package/dist/EmailVerification.js.map +1 -0
  46. package/dist/HttpApi/Api.d.ts +175 -0
  47. package/dist/HttpApi/Api.d.ts.map +1 -0
  48. package/dist/HttpApi/Api.js +340 -0
  49. package/dist/HttpApi/Api.js.map +1 -0
  50. package/dist/HttpApi/Endpoints.d.ts +92 -0
  51. package/dist/HttpApi/Endpoints.d.ts.map +1 -0
  52. package/dist/HttpApi/Endpoints.js +48 -0
  53. package/dist/HttpApi/Endpoints.js.map +1 -0
  54. package/dist/HttpApi/Errors.d.ts +82 -0
  55. package/dist/HttpApi/Errors.d.ts.map +1 -0
  56. package/dist/HttpApi/Errors.js +184 -0
  57. package/dist/HttpApi/Errors.js.map +1 -0
  58. package/dist/HttpApi/Schemas.d.ts +86 -0
  59. package/dist/HttpApi/Schemas.d.ts.map +1 -0
  60. package/dist/HttpApi/Schemas.js +63 -0
  61. package/dist/HttpApi/Schemas.js.map +1 -0
  62. package/dist/HttpApi/Security.d.ts +147 -0
  63. package/dist/HttpApi/Security.d.ts.map +1 -0
  64. package/dist/HttpApi/Security.js +439 -0
  65. package/dist/HttpApi/Security.js.map +1 -0
  66. package/dist/HttpApi/Transport.d.ts +31 -0
  67. package/dist/HttpApi/Transport.d.ts.map +1 -0
  68. package/dist/HttpApi/Transport.js +169 -0
  69. package/dist/HttpApi/Transport.js.map +1 -0
  70. package/dist/HttpApi/index.d.ts +8 -0
  71. package/dist/HttpApi/index.d.ts.map +1 -0
  72. package/dist/HttpApi/index.js +7 -0
  73. package/dist/HttpApi/index.js.map +1 -0
  74. package/dist/HttpApi.d.ts +2 -0
  75. package/dist/HttpApi.d.ts.map +1 -0
  76. package/dist/HttpApi.js +2 -0
  77. package/dist/HttpApi.js.map +1 -0
  78. package/dist/Identifiers.d.ts.map +1 -1
  79. package/dist/Identifiers.js.map +1 -1
  80. package/dist/Internal.d.ts +7 -0
  81. package/dist/Internal.d.ts.map +1 -0
  82. package/dist/Internal.js +12 -0
  83. package/dist/Internal.js.map +1 -0
  84. package/dist/KyselyStorage.d.ts +67 -0
  85. package/dist/KyselyStorage.d.ts.map +1 -0
  86. package/dist/KyselyStorage.js +366 -0
  87. package/dist/KyselyStorage.js.map +1 -0
  88. package/dist/Mailer.d.ts +116 -0
  89. package/dist/Mailer.d.ts.map +1 -0
  90. package/dist/Mailer.js +101 -0
  91. package/dist/Mailer.js.map +1 -0
  92. package/dist/Password.d.ts +107 -0
  93. package/dist/Password.d.ts.map +1 -0
  94. package/dist/Password.js +252 -0
  95. package/dist/Password.js.map +1 -0
  96. package/dist/Policy.d.ts +7 -4
  97. package/dist/Policy.d.ts.map +1 -1
  98. package/dist/Policy.js +28 -5
  99. package/dist/Policy.js.map +1 -1
  100. package/dist/Privacy.d.ts +18 -0
  101. package/dist/Privacy.d.ts.map +1 -1
  102. package/dist/Privacy.js +63 -3
  103. package/dist/Privacy.js.map +1 -1
  104. package/dist/RateLimiter.d.ts +104 -0
  105. package/dist/RateLimiter.d.ts.map +1 -0
  106. package/dist/RateLimiter.js +118 -0
  107. package/dist/RateLimiter.js.map +1 -0
  108. package/dist/Sessions.d.ts +85 -11
  109. package/dist/Sessions.d.ts.map +1 -1
  110. package/dist/Sessions.js +424 -1
  111. package/dist/Sessions.js.map +1 -1
  112. package/dist/Storage.d.ts +162 -0
  113. package/dist/Storage.d.ts.map +1 -0
  114. package/dist/Storage.js +27 -0
  115. package/dist/Storage.js.map +1 -0
  116. package/dist/StorageMigrations.d.ts +8 -0
  117. package/dist/StorageMigrations.d.ts.map +1 -0
  118. package/dist/StorageMigrations.js +68 -0
  119. package/dist/StorageMigrations.js.map +1 -0
  120. package/dist/Testing.d.ts +9 -1
  121. package/dist/Testing.d.ts.map +1 -1
  122. package/dist/Testing.js +30 -2
  123. package/dist/Testing.js.map +1 -1
  124. package/dist/WaitUntil.d.ts +3 -0
  125. package/dist/WaitUntil.d.ts.map +1 -1
  126. package/dist/WaitUntil.js +6 -3
  127. package/dist/WaitUntil.js.map +1 -1
  128. package/dist/alchemy/cloudflare/RateLimitDurableObject.d.ts +34 -0
  129. package/dist/alchemy/cloudflare/RateLimitDurableObject.d.ts.map +1 -0
  130. package/dist/alchemy/cloudflare/RateLimitDurableObject.js +30 -0
  131. package/dist/alchemy/cloudflare/RateLimitDurableObject.js.map +1 -0
  132. package/dist/cloudflare/RateLimitDurableObject.d.ts +50 -0
  133. package/dist/cloudflare/RateLimitDurableObject.d.ts.map +1 -0
  134. package/dist/cloudflare/RateLimitDurableObject.js +51 -0
  135. package/dist/cloudflare/RateLimitDurableObject.js.map +1 -0
  136. package/dist/index.d.ts +7 -0
  137. package/dist/index.d.ts.map +1 -1
  138. package/dist/index.js +7 -0
  139. package/dist/index.js.map +1 -1
  140. package/dist/internal/RateLimitDurableObject.d.ts +32 -0
  141. package/dist/internal/RateLimitDurableObject.d.ts.map +1 -0
  142. package/dist/internal/RateLimitDurableObject.js +80 -0
  143. package/dist/internal/RateLimitDurableObject.js.map +1 -0
  144. package/migrations/0001_auth_storage.sql +32 -0
  145. package/migrations/0002_auth_password.sql +25 -0
  146. package/package.json +97 -16
  147. package/LICENSE +0 -21
@@ -1 +1 @@
1
- {"version":3,"file":"Crypto.js","sourceRoot":"","sources":["../src/Crypto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AASxD,MAAM,OAAO,WAAY,SAAQ,IAAI,CAAC,WAAW,CAAC,aAAa,CAI7D;CAAG;AA0BL,MAAM,OAAO,MAAO,SAAQ,OAAO,CAAC,OAAO,EAAyB,CAAC,aAAa,CAAC;CAAG"}
1
+ {"version":3,"file":"Crypto.js","sourceRoot":"","sources":["../src/Crypto.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ import { Kysely, SqliteAdapter } from "kysely";
2
+ import type { DatabaseIntrospector, Dialect, Driver, QueryCompiler } from "kysely";
3
+ import type { KyselyAuthDatabase } from "./KyselyStorage.js";
4
+ export interface D1Result<Row extends Readonly<Record<string, unknown>> = Readonly<Record<string, unknown>>> {
5
+ readonly success?: boolean;
6
+ readonly error?: string;
7
+ readonly results?: readonly Row[];
8
+ readonly meta?: {
9
+ readonly changes?: number;
10
+ readonly rows_written?: number;
11
+ readonly last_row_id?: number | null;
12
+ };
13
+ }
14
+ export interface D1PreparedStatementLike {
15
+ readonly bind: (...values: readonly unknown[]) => D1PreparedStatementLike;
16
+ readonly all: <Row extends Readonly<Record<string, unknown>> = Readonly<Record<string, unknown>>>() => Promise<D1Result<Row>>;
17
+ }
18
+ export interface D1DatabaseLike {
19
+ readonly prepare: (sql: string) => D1PreparedStatementLike;
20
+ }
21
+ declare const D1KyselyError_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 & {
22
+ readonly _tag: "D1KyselyError";
23
+ } & Readonly<A>;
24
+ export declare class D1KyselyError extends D1KyselyError_base<{
25
+ readonly message: string;
26
+ readonly cause?: unknown;
27
+ }> {
28
+ }
29
+ export interface D1KyselyDialectOptions {
30
+ readonly database: D1DatabaseLike;
31
+ }
32
+ export declare class D1KyselyDialect implements Dialect {
33
+ #private;
34
+ constructor(options: D1KyselyDialectOptions);
35
+ createAdapter(): SqliteAdapter;
36
+ createDriver(): Driver;
37
+ createQueryCompiler(): QueryCompiler;
38
+ createIntrospector(db: Kysely<unknown>): DatabaseIntrospector;
39
+ }
40
+ export declare const makeD1Kysely: <DB>(database: D1DatabaseLike) => Kysely<DB>;
41
+ export declare const D1AuthStorageLive: <DB extends KyselyAuthDatabase = KyselyAuthDatabase>(database: D1DatabaseLike) => import("effect/Layer").Layer<import("./Storage.js").VerificationStore | import("./Storage.js").UserStore | import("./Storage.js").CredentialStore | import("./Storage.js").SessionStore, never, never>;
42
+ export {};
43
+ //# sourceMappingURL=D1Kysely.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"D1Kysely.d.ts","sourceRoot":"","sources":["../src/D1Kysely.ts"],"names":[],"mappings":"AACA,OAAO,EACL,MAAM,EACN,aAAa,EAGd,MAAM,QAAQ,CAAC;AAChB,OAAO,KAAK,EAGV,oBAAoB,EACpB,OAAO,EACP,MAAM,EACN,aAAa,EAGd,MAAM,QAAQ,CAAC;AAGhB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE7D,MAAM,WAAW,QAAQ,CACvB,GAAG,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,QAAQ,CACtD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CACxB;IAED,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,GAAG,EAAE,CAAC;IAClC,QAAQ,CAAC,IAAI,CAAC,EAAE;QACd,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAC/B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACtC,CAAC;CACH;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,MAAM,EAAE,SAAS,OAAO,EAAE,KAAK,uBAAuB,CAAC;IAC1E,QAAQ,CAAC,GAAG,EAAE,CACZ,GAAG,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,QAAQ,CACtD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CACxB,OACI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,uBAAuB,CAAC;CAC5D;;;;AAED,qBAAa,aAAc,SAAQ,mBAAkC;IACnE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;CAAG;AAEL,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;CACnC;AAED,qBAAa,eAAgB,YAAW,OAAO;;gBAGjC,OAAO,EAAE,sBAAsB;IAI3C,aAAa;IAIb,YAAY,IAAI,MAAM;IAItB,mBAAmB,IAAI,aAAa;IAIpC,kBAAkB,CAAC,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,oBAAoB;CAG9D;AA6ED,eAAO,MAAM,YAAY,GAAI,EAAE,EAAE,UAAU,cAAc,KAAG,MAAM,CAAC,EAAE,CAGjE,CAAC;AAEL,eAAO,MAAM,iBAAiB,GAC5B,EAAE,SAAS,kBAAkB,GAAG,kBAAkB,EAElD,UAAU,cAAc,2MAC4B,CAAC"}
@@ -0,0 +1,78 @@
1
+ import { Data } from "effect";
2
+ import { Kysely, SqliteAdapter, SqliteIntrospector, SqliteQueryCompiler, } from "kysely";
3
+ import { KyselyAuthStorageLive } from "./KyselyStorage.js";
4
+ export class D1KyselyError extends Data.TaggedError("D1KyselyError") {
5
+ }
6
+ export class D1KyselyDialect {
7
+ #database;
8
+ constructor(options) {
9
+ this.#database = options.database;
10
+ }
11
+ createAdapter() {
12
+ return new SqliteAdapter();
13
+ }
14
+ createDriver() {
15
+ return new D1KyselyDriver(this.#database);
16
+ }
17
+ createQueryCompiler() {
18
+ return new SqliteQueryCompiler();
19
+ }
20
+ createIntrospector(db) {
21
+ return new SqliteIntrospector(db);
22
+ }
23
+ }
24
+ class D1KyselyDriver {
25
+ #database;
26
+ constructor(database) {
27
+ this.#database = database;
28
+ }
29
+ async init() { }
30
+ async acquireConnection() {
31
+ return new D1KyselyConnection(this.#database);
32
+ }
33
+ async beginTransaction(_connection, _settings) {
34
+ throw new D1KyselyError({ message: "D1 transactions are not supported" });
35
+ }
36
+ async commitTransaction(_connection) {
37
+ throw new D1KyselyError({ message: "D1 transactions are not supported" });
38
+ }
39
+ async rollbackTransaction(_connection) {
40
+ throw new D1KyselyError({ message: "D1 transactions are not supported" });
41
+ }
42
+ async releaseConnection(_connection) { }
43
+ async destroy() { }
44
+ }
45
+ class D1KyselyConnection {
46
+ #database;
47
+ constructor(database) {
48
+ this.#database = database;
49
+ }
50
+ async executeQuery(compiledQuery) {
51
+ const result = await this.#database
52
+ .prepare(compiledQuery.sql)
53
+ .bind(...compiledQuery.parameters)
54
+ .all();
55
+ if (result.success === false || result.error !== undefined) {
56
+ throw new D1KyselyError({
57
+ message: result.error ?? "D1 query failed",
58
+ });
59
+ }
60
+ const rowsAffected = result.meta?.changes ?? result.meta?.rows_written ?? 0;
61
+ return {
62
+ insertId: result.meta?.last_row_id === undefined ||
63
+ result.meta.last_row_id === null
64
+ ? undefined
65
+ : BigInt(result.meta.last_row_id),
66
+ numAffectedRows: BigInt(rowsAffected),
67
+ rows: [...(result.results ?? [])],
68
+ };
69
+ }
70
+ async *streamQuery(_compiledQuery, _chunkSize) {
71
+ throw new D1KyselyError({ message: "D1 streaming is not supported" });
72
+ }
73
+ }
74
+ export const makeD1Kysely = (database) => new Kysely({
75
+ dialect: new D1KyselyDialect({ database }),
76
+ });
77
+ export const D1AuthStorageLive = (database) => KyselyAuthStorageLive(makeD1Kysely(database));
78
+ //# sourceMappingURL=D1Kysely.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"D1Kysely.js","sourceRoot":"","sources":["../src/D1Kysely.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,183 @@
1
+ import { Layer } from "effect";
2
+ import { Executor, Query, Table } from "effect-qb/sqlite";
3
+ import type { AuthMethodReference } from "./Sessions.js";
4
+ import { CredentialStore, SessionStore, UserStore, VerificationStore } from "./Storage.js";
5
+ import type { CredentialStoreService, NewPasswordCredentialRow, NewSessionRow, NewUserRow, NewVerificationRow, PasswordCredentialRow, SessionRefreshStoreInput, SessionRevokeAllForUserStoreInput, SessionRevokeStoreInput, SessionRotateStoreInput, SessionRow, SessionStoreService, SessionUpdateClaimsStoreInput, UserMarkEmailVerifiedInput, UserRow, UserStoreService, VerificationConsumeInput, VerificationRow, VerificationStoreService } from "./Storage.js";
6
+ export interface D1EffectQbResult<Row extends Readonly<Record<string, unknown>> = Readonly<Record<string, unknown>>> {
7
+ readonly success?: boolean;
8
+ readonly error?: string;
9
+ readonly results?: readonly Row[];
10
+ }
11
+ export interface D1EffectQbPreparedStatementLike {
12
+ readonly bind: (...values: readonly unknown[]) => D1EffectQbPreparedStatementLike;
13
+ readonly all: <Row extends Readonly<Record<string, unknown>> = Readonly<Record<string, unknown>>>() => Promise<D1EffectQbResult<Row>>;
14
+ }
15
+ export interface D1EffectQbDatabaseLike {
16
+ readonly prepare: (sql: string) => D1EffectQbPreparedStatementLike;
17
+ }
18
+ declare const D1EffectQbError_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 & {
19
+ readonly _tag: "D1EffectQbError";
20
+ } & Readonly<A>;
21
+ export declare class D1EffectQbError extends D1EffectQbError_base<{
22
+ readonly message: string;
23
+ readonly cause?: unknown;
24
+ }> {
25
+ }
26
+ export interface EffectQbAuthUserSelectedRow {
27
+ readonly id: string;
28
+ readonly email: string;
29
+ readonly emailVerified: boolean | number | string | null;
30
+ readonly createdAt: number;
31
+ readonly updatedAt: number;
32
+ readonly disabledAt: number | null;
33
+ readonly metadata: unknown;
34
+ }
35
+ export interface EffectQbAuthCredentialSelectedRow {
36
+ readonly id: string;
37
+ readonly userId: string;
38
+ readonly type: string;
39
+ readonly passwordHash: string | null;
40
+ readonly createdAt: number;
41
+ readonly updatedAt: number;
42
+ readonly revokedAt: number | null;
43
+ readonly metadata: unknown;
44
+ }
45
+ export interface EffectQbAuthSessionSelectedRow {
46
+ readonly id: string;
47
+ readonly userId: string;
48
+ readonly secretHash: string;
49
+ readonly createdAt: number;
50
+ readonly expiresAt: number;
51
+ readonly authTime: number;
52
+ readonly aal: string;
53
+ readonly amr: string | readonly AuthMethodReference[];
54
+ readonly mfaVerifiedAt: number | null;
55
+ readonly metadata: unknown;
56
+ readonly revokedAt: number | null;
57
+ readonly lastSeenAt: number | null;
58
+ readonly rotatedAt: number | null;
59
+ }
60
+ export interface EffectQbAuthVerificationSelectedRow {
61
+ readonly id: string;
62
+ readonly type: string;
63
+ readonly subject: string;
64
+ readonly secretHash: string | null;
65
+ readonly createdAt: number;
66
+ readonly expiresAt: number;
67
+ readonly metadata: unknown;
68
+ readonly consumedAt: number | null;
69
+ }
70
+ declare const authSqliteTablesTypeId: unique symbol;
71
+ export interface AuthSqliteTableNames {
72
+ readonly user?: string;
73
+ readonly credential?: string;
74
+ readonly session?: string;
75
+ readonly verification?: string;
76
+ }
77
+ type EffectQbSqliteTable = Table.AnyTable;
78
+ type EffectQbInsertInput<TableValue extends EffectQbSqliteTable> = Query.MutationInputOf<Table.InsertOf<TableValue>>;
79
+ type EffectQbUpdateInput<TableValue extends EffectQbSqliteTable> = Query.MutationInputOf<Table.UpdateOf<TableValue>>;
80
+ type EffectQbSelection = Readonly<Record<string, Query.ExpressionInput>>;
81
+ export interface EffectQbAuthUserTable<TableValue extends EffectQbSqliteTable = EffectQbSqliteTable> {
82
+ readonly table: TableValue;
83
+ readonly select: EffectQbSelection & {
84
+ readonly id: Query.ExpressionInput;
85
+ readonly email: Query.ExpressionInput;
86
+ readonly emailVerified: Query.ExpressionInput;
87
+ readonly createdAt: Query.ExpressionInput;
88
+ readonly updatedAt: Query.ExpressionInput;
89
+ readonly disabledAt: Query.ExpressionInput;
90
+ readonly metadata: Query.ExpressionInput;
91
+ };
92
+ readonly insert: (row: NewUserRow) => EffectQbInsertInput<TableValue>;
93
+ readonly markEmailVerified: (input: UserMarkEmailVerifiedInput) => EffectQbUpdateInput<TableValue>;
94
+ readonly decode?: (row: EffectQbAuthUserSelectedRow) => UserRow;
95
+ }
96
+ export interface EffectQbAuthCredentialTable<TableValue extends EffectQbSqliteTable = EffectQbSqliteTable> {
97
+ readonly table: TableValue;
98
+ readonly select: EffectQbSelection & {
99
+ readonly id: Query.ExpressionInput;
100
+ readonly userId: Query.ExpressionInput;
101
+ readonly type: Query.ExpressionInput;
102
+ readonly passwordHash: Query.ExpressionInput;
103
+ readonly createdAt: Query.ExpressionInput;
104
+ readonly updatedAt: Query.ExpressionInput;
105
+ readonly revokedAt: Query.ExpressionInput;
106
+ readonly metadata: Query.ExpressionInput;
107
+ };
108
+ readonly insertPassword: (row: NewPasswordCredentialRow) => EffectQbInsertInput<TableValue>;
109
+ readonly decodePassword?: (row: EffectQbAuthCredentialSelectedRow) => PasswordCredentialRow;
110
+ }
111
+ export type EffectQbSessionRevokeInput = SessionRevokeStoreInput | SessionRevokeAllForUserStoreInput;
112
+ export interface EffectQbAuthSessionTable<TableValue extends EffectQbSqliteTable = EffectQbSqliteTable> {
113
+ readonly table: TableValue;
114
+ readonly select: EffectQbSelection & {
115
+ readonly id: Query.ExpressionInput;
116
+ readonly userId: Query.ExpressionInput;
117
+ readonly secretHash: Query.ExpressionInput;
118
+ readonly createdAt: Query.ExpressionInput;
119
+ readonly expiresAt: Query.ExpressionInput;
120
+ readonly authTime: Query.ExpressionInput;
121
+ readonly aal: Query.ExpressionInput;
122
+ readonly amr: Query.ExpressionInput;
123
+ readonly mfaVerifiedAt: Query.ExpressionInput;
124
+ readonly metadata: Query.ExpressionInput;
125
+ readonly revokedAt: Query.ExpressionInput;
126
+ readonly lastSeenAt: Query.ExpressionInput;
127
+ readonly rotatedAt: Query.ExpressionInput;
128
+ };
129
+ readonly insert: (row: NewSessionRow) => EffectQbInsertInput<TableValue>;
130
+ readonly refresh: (input: SessionRefreshStoreInput) => EffectQbUpdateInput<TableValue>;
131
+ readonly rotate: (input: SessionRotateStoreInput) => EffectQbUpdateInput<TableValue>;
132
+ readonly updateClaims: (row: SessionRow, input: SessionUpdateClaimsStoreInput) => EffectQbUpdateInput<TableValue>;
133
+ readonly revoke: (input: EffectQbSessionRevokeInput) => EffectQbUpdateInput<TableValue>;
134
+ readonly decode?: (row: EffectQbAuthSessionSelectedRow) => SessionRow;
135
+ }
136
+ export interface EffectQbAuthVerificationTable<TableValue extends EffectQbSqliteTable = EffectQbSqliteTable> {
137
+ readonly table: TableValue;
138
+ readonly select: EffectQbSelection & {
139
+ readonly id: Query.ExpressionInput;
140
+ readonly type: Query.ExpressionInput;
141
+ readonly subject: Query.ExpressionInput;
142
+ readonly secretHash: Query.ExpressionInput;
143
+ readonly createdAt: Query.ExpressionInput;
144
+ readonly expiresAt: Query.ExpressionInput;
145
+ readonly metadata: Query.ExpressionInput;
146
+ readonly consumedAt: Query.ExpressionInput;
147
+ };
148
+ readonly insert: (row: NewVerificationRow) => EffectQbInsertInput<TableValue>;
149
+ readonly consume: (input: VerificationConsumeInput) => EffectQbUpdateInput<TableValue>;
150
+ readonly decode?: (row: EffectQbAuthVerificationSelectedRow) => VerificationRow;
151
+ }
152
+ export interface EffectQbAuthTablesInput {
153
+ readonly user: EffectQbAuthUserTable;
154
+ readonly credential: EffectQbAuthCredentialTable;
155
+ readonly session: EffectQbAuthSessionTable;
156
+ readonly verification: EffectQbAuthVerificationTable;
157
+ }
158
+ export interface AuthSqliteTables extends EffectQbAuthTablesInput {
159
+ readonly [authSqliteTablesTypeId]: typeof authSqliteTablesTypeId;
160
+ }
161
+ export interface EffectQbSqliteAuthStorageOptions {
162
+ readonly tables?: AuthSqliteTables;
163
+ }
164
+ export interface EffectQbSqliteStorageStores {
165
+ readonly userStore: UserStoreService;
166
+ readonly credentialStore: CredentialStoreService;
167
+ readonly sessionStore: SessionStoreService;
168
+ readonly verificationStore: VerificationStoreService;
169
+ }
170
+ type EffectQbSqliteExecutor = Executor.QueryExecutor<never>;
171
+ export declare const defineEffectQbAuthTables: <const Tables extends EffectQbAuthTablesInput>(tables: Tables) => AuthSqliteTables & Tables;
172
+ export declare const makeAuthSqliteTables: (names?: AuthSqliteTableNames) => AuthSqliteTables;
173
+ export declare const authSqliteTables: AuthSqliteTables;
174
+ export declare const makeEffectQbSqliteUserStore: (executor: EffectQbSqliteExecutor, options?: EffectQbSqliteAuthStorageOptions) => UserStoreService;
175
+ export declare const makeEffectQbSqliteCredentialStore: (executor: EffectQbSqliteExecutor, options?: EffectQbSqliteAuthStorageOptions) => CredentialStoreService;
176
+ export declare const makeEffectQbSqliteSessionStore: (executor: EffectQbSqliteExecutor, options?: EffectQbSqliteAuthStorageOptions) => SessionStoreService;
177
+ export declare const makeEffectQbSqliteVerificationStore: (executor: EffectQbSqliteExecutor, options?: EffectQbSqliteAuthStorageOptions) => VerificationStoreService;
178
+ export declare const makeEffectQbSqliteStorage: (executor: EffectQbSqliteExecutor, options?: EffectQbSqliteAuthStorageOptions) => EffectQbSqliteStorageStores;
179
+ export declare const EffectQbSqliteAuthStorageLive: (executor: EffectQbSqliteExecutor, options?: EffectQbSqliteAuthStorageOptions) => Layer.Layer<VerificationStore | UserStore | CredentialStore | SessionStore, never, never>;
180
+ export declare const makeD1EffectQbSqliteExecutor: (database: D1EffectQbDatabaseLike) => EffectQbSqliteExecutor;
181
+ export declare const D1EffectQbSqliteAuthStorageLive: (database: D1EffectQbDatabaseLike, options?: EffectQbSqliteAuthStorageOptions) => Layer.Layer<VerificationStore | UserStore | CredentialStore | SessionStore, never, never>;
182
+ export {};
183
+ //# sourceMappingURL=EffectQbSqliteStorage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EffectQbSqliteStorage.d.ts","sourceRoot":"","sources":["../src/EffectQbSqliteStorage.ts"],"names":[],"mappings":"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"}