@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
@@ -0,0 +1,32 @@
1
+ create table if not exists auth_session (
2
+ id text primary key,
3
+ user_id text not null,
4
+ secret_hash text not null,
5
+ created_at integer not null,
6
+ expires_at integer not null,
7
+ auth_time integer not null,
8
+ aal text not null,
9
+ amr text not null,
10
+ mfa_verified_at integer,
11
+ metadata text,
12
+ revoked_at integer,
13
+ last_seen_at integer,
14
+ rotated_at integer
15
+ );
16
+
17
+ create index if not exists auth_session_user_id_idx on auth_session (user_id);
18
+ create index if not exists auth_session_expires_at_idx on auth_session (expires_at);
19
+
20
+ create table if not exists auth_verification (
21
+ id text primary key,
22
+ type text not null,
23
+ subject text not null,
24
+ secret_hash text,
25
+ created_at integer not null,
26
+ expires_at integer not null,
27
+ metadata text,
28
+ consumed_at integer
29
+ );
30
+
31
+ create index if not exists auth_verification_type_subject_idx on auth_verification (type, subject);
32
+ create index if not exists auth_verification_expires_at_idx on auth_verification (expires_at);
@@ -0,0 +1,25 @@
1
+ create table if not exists auth_user (
2
+ id text primary key,
3
+ email text not null,
4
+ email_verified integer not null,
5
+ created_at integer not null,
6
+ updated_at integer not null,
7
+ disabled_at integer,
8
+ metadata text
9
+ );
10
+
11
+ create unique index if not exists auth_user_email_idx on auth_user (email);
12
+
13
+ create table if not exists auth_credential (
14
+ id text primary key,
15
+ user_id text not null,
16
+ type text not null,
17
+ password_hash text,
18
+ created_at integer not null,
19
+ updated_at integer not null,
20
+ revoked_at integer,
21
+ metadata text
22
+ );
23
+
24
+ create index if not exists auth_credential_user_id_idx on auth_credential (user_id);
25
+ create unique index if not exists auth_credential_user_type_idx on auth_credential (user_id, type);
package/package.json CHANGED
@@ -1,13 +1,17 @@
1
1
  {
2
2
  "name": "@effect-auth/core",
3
- "version": "0.1.0-alpha.0",
3
+ "version": "0.1.0-alpha.2",
4
4
  "description": "Composable Effect-first authentication primitives.",
5
- "type": "module",
6
5
  "license": "MIT",
6
+ "files": [
7
+ "dist/**/*.d.ts",
8
+ "dist/**/*.d.ts.map",
9
+ "dist/**/*.js",
10
+ "dist/**/*.js.map",
11
+ "migrations/**/*.sql"
12
+ ],
13
+ "type": "module",
7
14
  "sideEffects": false,
8
- "publishConfig": {
9
- "access": "public"
10
- },
11
15
  "exports": {
12
16
  ".": {
13
17
  "types": "./dist/index.d.ts",
@@ -21,14 +25,50 @@
21
25
  "types": "./dist/AuthFlow.d.ts",
22
26
  "default": "./dist/AuthFlow.js"
23
27
  },
28
+ "./AuthConfig": {
29
+ "types": "./dist/AuthConfig.d.ts",
30
+ "default": "./dist/AuthConfig.js"
31
+ },
32
+ "./AuthKernel": {
33
+ "types": "./dist/AuthKernel.d.ts",
34
+ "default": "./dist/AuthKernel.js"
35
+ },
24
36
  "./Challenge": {
25
37
  "types": "./dist/Challenge.d.ts",
26
38
  "default": "./dist/Challenge.js"
27
39
  },
40
+ "./AlchemyCloudflareRateLimitDurableObject": {
41
+ "types": "./dist/alchemy/cloudflare/RateLimitDurableObject.d.ts",
42
+ "default": "./dist/alchemy/cloudflare/RateLimitDurableObject.js"
43
+ },
44
+ "./CloudflareRateLimitDurableObject": {
45
+ "types": "./dist/cloudflare/RateLimitDurableObject.d.ts",
46
+ "default": "./dist/cloudflare/RateLimitDurableObject.js"
47
+ },
48
+ "./Client": {
49
+ "types": "./dist/Client.d.ts",
50
+ "default": "./dist/Client.js"
51
+ },
28
52
  "./Crypto": {
29
53
  "types": "./dist/Crypto.d.ts",
30
54
  "default": "./dist/Crypto.js"
31
55
  },
56
+ "./D1Kysely": {
57
+ "types": "./dist/D1Kysely.d.ts",
58
+ "default": "./dist/D1Kysely.js"
59
+ },
60
+ "./EffectQbSqliteStorage": {
61
+ "types": "./dist/EffectQbSqliteStorage.d.ts",
62
+ "default": "./dist/EffectQbSqliteStorage.js"
63
+ },
64
+ "./EmailOtp": {
65
+ "types": "./dist/EmailOtp.d.ts",
66
+ "default": "./dist/EmailOtp.js"
67
+ },
68
+ "./EmailVerification": {
69
+ "types": "./dist/EmailVerification.d.ts",
70
+ "default": "./dist/EmailVerification.js"
71
+ },
32
72
  "./WaitUntil": {
33
73
  "types": "./dist/WaitUntil.d.ts",
34
74
  "default": "./dist/WaitUntil.js"
@@ -37,6 +77,14 @@
37
77
  "types": "./dist/Identifiers.d.ts",
38
78
  "default": "./dist/Identifiers.js"
39
79
  },
80
+ "./HttpApi": {
81
+ "types": "./dist/HttpApi.d.ts",
82
+ "default": "./dist/HttpApi.js"
83
+ },
84
+ "./Mailer": {
85
+ "types": "./dist/Mailer.d.ts",
86
+ "default": "./dist/Mailer.js"
87
+ },
40
88
  "./Policy": {
41
89
  "types": "./dist/Policy.d.ts",
42
90
  "default": "./dist/Policy.js"
@@ -45,10 +93,30 @@
45
93
  "types": "./dist/Privacy.d.ts",
46
94
  "default": "./dist/Privacy.js"
47
95
  },
96
+ "./RateLimiter": {
97
+ "types": "./dist/RateLimiter.d.ts",
98
+ "default": "./dist/RateLimiter.js"
99
+ },
100
+ "./KyselyStorage": {
101
+ "types": "./dist/KyselyStorage.d.ts",
102
+ "default": "./dist/KyselyStorage.js"
103
+ },
104
+ "./Password": {
105
+ "types": "./dist/Password.d.ts",
106
+ "default": "./dist/Password.js"
107
+ },
48
108
  "./Sessions": {
49
109
  "types": "./dist/Sessions.d.ts",
50
110
  "default": "./dist/Sessions.js"
51
111
  },
112
+ "./Storage": {
113
+ "types": "./dist/Storage.d.ts",
114
+ "default": "./dist/Storage.js"
115
+ },
116
+ "./StorageMigrations": {
117
+ "types": "./dist/StorageMigrations.d.ts",
118
+ "default": "./dist/StorageMigrations.js"
119
+ },
52
120
  "./Testing": {
53
121
  "types": "./dist/Testing.d.ts",
54
122
  "default": "./dist/Testing.js"
@@ -57,19 +125,32 @@
57
125
  "default": "./package.json"
58
126
  }
59
127
  },
60
- "files": [
61
- "dist/**/*.d.ts",
62
- "dist/**/*.d.ts.map",
63
- "dist/**/*.js",
64
- "dist/**/*.js.map"
65
- ],
66
- "peerDependencies": {
67
- "effect": "^4.0.0-beta.67"
128
+ "publishConfig": {
129
+ "access": "public"
68
130
  },
69
131
  "scripts": {
70
132
  "build": "tsc -b",
71
- "check": "tsc -b --pretty false && pnpm type-test",
72
- "test": "pnpm build && node --test test/*.test.mjs",
133
+ "check": "tsc -b --pretty false && bun run type-test && bun run test-type",
134
+ "prepack": "rm -rf dist && bun run build",
135
+ "test": "bun run build && bun --bun vitest run --config ../../vitest.config.ts",
136
+ "test-type": "tsc -p tsconfig.test.json --pretty false",
73
137
  "type-test": "tsc -p tsconfig.type-tests.json --pretty false"
138
+ },
139
+ "peerDependencies": {
140
+ "alchemy": ">=2.0.0-beta.44 <3",
141
+ "effect": "^4.0.0-beta.67",
142
+ "effect-qb": "4.0.0-beta.66",
143
+ "kysely": "^0.29.2"
144
+ },
145
+ "peerDependenciesMeta": {
146
+ "alchemy": {
147
+ "optional": true
148
+ },
149
+ "effect-qb": {
150
+ "optional": true
151
+ },
152
+ "kysely": {
153
+ "optional": true
154
+ }
74
155
  }
75
- }
156
+ }
package/LICENSE DELETED
@@ -1,21 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 Effect Auth contributors
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.