@revealui/auth 0.2.1 → 0.3.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 (75) hide show
  1. package/dist/index.d.ts.map +1 -1
  2. package/dist/react/index.d.ts +4 -0
  3. package/dist/react/index.d.ts.map +1 -1
  4. package/dist/react/index.js +2 -0
  5. package/dist/react/useMFA.d.ts +83 -0
  6. package/dist/react/useMFA.d.ts.map +1 -0
  7. package/dist/react/useMFA.js +182 -0
  8. package/dist/react/usePasskey.d.ts +88 -0
  9. package/dist/react/usePasskey.d.ts.map +1 -0
  10. package/dist/react/usePasskey.js +203 -0
  11. package/dist/react/useSession.d.ts.map +1 -1
  12. package/dist/react/useSession.js +16 -5
  13. package/dist/react/useSignIn.d.ts +9 -3
  14. package/dist/react/useSignIn.d.ts.map +1 -1
  15. package/dist/react/useSignIn.js +32 -10
  16. package/dist/react/useSignOut.d.ts.map +1 -1
  17. package/dist/react/useSignUp.d.ts.map +1 -1
  18. package/dist/react/useSignUp.js +25 -9
  19. package/dist/server/auth.d.ts.map +1 -1
  20. package/dist/server/auth.js +85 -8
  21. package/dist/server/brute-force.d.ts +10 -1
  22. package/dist/server/brute-force.d.ts.map +1 -1
  23. package/dist/server/brute-force.js +17 -3
  24. package/dist/server/errors.d.ts.map +1 -1
  25. package/dist/server/index.d.ts +16 -6
  26. package/dist/server/index.d.ts.map +1 -1
  27. package/dist/server/index.js +11 -5
  28. package/dist/server/magic-link.d.ts +52 -0
  29. package/dist/server/magic-link.d.ts.map +1 -0
  30. package/dist/server/magic-link.js +111 -0
  31. package/dist/server/mfa.d.ts +87 -0
  32. package/dist/server/mfa.d.ts.map +1 -0
  33. package/dist/server/mfa.js +263 -0
  34. package/dist/server/oauth.d.ts +52 -4
  35. package/dist/server/oauth.d.ts.map +1 -1
  36. package/dist/server/oauth.js +165 -18
  37. package/dist/server/passkey.d.ts +132 -0
  38. package/dist/server/passkey.d.ts.map +1 -0
  39. package/dist/server/passkey.js +257 -0
  40. package/dist/server/password-reset.d.ts +15 -0
  41. package/dist/server/password-reset.d.ts.map +1 -1
  42. package/dist/server/password-reset.js +44 -1
  43. package/dist/server/password-validation.d.ts.map +1 -1
  44. package/dist/server/providers/github.d.ts.map +1 -1
  45. package/dist/server/providers/github.js +18 -5
  46. package/dist/server/providers/google.d.ts.map +1 -1
  47. package/dist/server/providers/google.js +18 -3
  48. package/dist/server/providers/vercel.d.ts.map +1 -1
  49. package/dist/server/providers/vercel.js +18 -3
  50. package/dist/server/rate-limit.d.ts +10 -1
  51. package/dist/server/rate-limit.d.ts.map +1 -1
  52. package/dist/server/rate-limit.js +61 -43
  53. package/dist/server/session.d.ts +65 -1
  54. package/dist/server/session.d.ts.map +1 -1
  55. package/dist/server/session.js +175 -7
  56. package/dist/server/signed-cookie.d.ts +32 -0
  57. package/dist/server/signed-cookie.d.ts.map +1 -0
  58. package/dist/server/signed-cookie.js +67 -0
  59. package/dist/server/storage/database.d.ts +1 -1
  60. package/dist/server/storage/database.d.ts.map +1 -1
  61. package/dist/server/storage/database.js +15 -7
  62. package/dist/server/storage/in-memory.d.ts.map +1 -1
  63. package/dist/server/storage/in-memory.js +7 -7
  64. package/dist/server/storage/index.d.ts +11 -3
  65. package/dist/server/storage/index.d.ts.map +1 -1
  66. package/dist/server/storage/index.js +18 -4
  67. package/dist/server/storage/interface.d.ts +1 -1
  68. package/dist/server/storage/interface.d.ts.map +1 -1
  69. package/dist/server/storage/interface.js +1 -1
  70. package/dist/types.d.ts +20 -8
  71. package/dist/types.d.ts.map +1 -1
  72. package/dist/types.js +2 -2
  73. package/dist/utils/database.d.ts.map +1 -1
  74. package/dist/utils/database.js +9 -2
  75. package/package.json +31 -13
@@ -6,7 +6,7 @@
6
6
  */
7
7
  import { getClient } from '@revealui/db/client';
8
8
  import { sessions, users } from '@revealui/db/schema';
9
- import { eq } from 'drizzle-orm';
9
+ import { and, eq, isNull } from 'drizzle-orm';
10
10
  /**
11
11
  * Gets the test database connection string from environment variables
12
12
  */
@@ -69,6 +69,8 @@ export async function createTestUser(overrides) {
69
69
  emailVerified: false,
70
70
  emailVerificationToken: null,
71
71
  emailVerifiedAt: null,
72
+ mfaEnabled: false,
73
+ mfaVerifiedAt: null,
72
74
  preferences: null,
73
75
  createdAt: new Date(),
74
76
  updatedAt: new Date(),
@@ -96,6 +98,7 @@ export async function createTestSession(userId, overrides) {
96
98
  persistent: overrides?.persistent ?? null,
97
99
  lastActivityAt: overrides?.lastActivityAt || new Date(),
98
100
  createdAt: overrides?.createdAt || new Date(),
101
+ metadata: overrides?.metadata ?? null,
99
102
  };
100
103
  await db.insert(sessions).values(testSession);
101
104
  return testSession;
@@ -105,7 +108,11 @@ export async function createTestSession(userId, overrides) {
105
108
  */
106
109
  export async function getUserByEmail(email) {
107
110
  const db = getClient();
108
- const result = await db.select().from(users).where(eq(users.email, email)).limit(1);
111
+ const result = await db
112
+ .select()
113
+ .from(users)
114
+ .where(and(eq(users.email, email), isNull(users.deletedAt)))
115
+ .limit(1);
109
116
  const user = result[0];
110
117
  return user ?? null;
111
118
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@revealui/auth",
3
- "version": "0.2.1",
3
+ "version": "0.3.2",
4
4
  "description": "Authentication system for RevealUI - database-backed sessions with Better Auth patterns",
5
5
  "keywords": [
6
6
  "auth",
@@ -10,24 +10,35 @@
10
10
  ],
11
11
  "license": "MIT",
12
12
  "dependencies": {
13
+ "@simplewebauthn/server": "^13.3.0",
13
14
  "bcryptjs": "^3.0.3",
14
- "drizzle-orm": "^0.45.1",
15
- "zod": "^4.3.5",
16
- "@revealui/contracts": "1.1.0",
17
- "@revealui/core": "0.2.1",
18
- "@revealui/db": "0.2.1",
19
- "@revealui/config": "0.2.0"
15
+ "drizzle-orm": "^0.45.2",
16
+ "zod": "^4.3.6",
17
+ "@revealui/contracts": "1.3.1",
18
+ "@revealui/config": "0.3.0",
19
+ "@revealui/db": "0.3.1",
20
+ "@revealui/core": "0.5.0"
20
21
  },
21
22
  "devDependencies": {
22
- "@types/node": "^25.3.0",
23
+ "@simplewebauthn/browser": "^13.3.0",
24
+ "@testing-library/react": "^16.3.2",
25
+ "@types/node": "^25.5.0",
23
26
  "@types/react": "^19.2.14",
24
- "@vitest/coverage-v8": "^4.0.18",
27
+ "@vitest/coverage-v8": "^4.1.0",
28
+ "happy-dom": "^20.8.4",
25
29
  "react": "^19.2.3",
26
- "typescript": "^5.9.3",
27
- "vitest": "^4.0.18",
30
+ "typescript": "^6.0.2",
31
+ "vitest": "^4.1.0",
28
32
  "dev": "0.0.1"
29
33
  },
34
+ "engines": {
35
+ "node": ">=24.13.0"
36
+ },
30
37
  "exports": {
38
+ ".": {
39
+ "types": "./dist/index.d.ts",
40
+ "import": "./dist/index.js"
41
+ },
31
42
  "./server": {
32
43
  "types": "./dist/server/index.d.ts",
33
44
  "import": "./dist/server/index.js"
@@ -44,22 +55,29 @@
44
55
  "files": [
45
56
  "dist"
46
57
  ],
58
+ "main": "./dist/index.js",
47
59
  "peerDependencies": {
60
+ "@simplewebauthn/browser": "^13.0.0",
48
61
  "react": "^18.0.0 || ^19.0.0"
49
62
  },
63
+ "peerDependenciesMeta": {
64
+ "@simplewebauthn/browser": {
65
+ "optional": true
66
+ }
67
+ },
50
68
  "publishConfig": {
51
69
  "access": "public",
52
70
  "registry": "https://registry.npmjs.org"
53
71
  },
54
72
  "type": "module",
73
+ "types": "./dist/index.d.ts",
55
74
  "scripts": {
56
75
  "build": "tsc",
57
76
  "clean": "rm -rf dist",
58
77
  "dev": "tsc --watch",
59
78
  "lint": "biome check .",
60
- "lint:eslint": "eslint .",
61
79
  "test": "vitest run",
62
- "test:coverage": "vitest run --coverage",
80
+ "test:coverage": "vitest run --coverage --coverage.reporter=json-summary --coverage.reporter=html --coverage.reporter=text",
63
81
  "test:watch": "vitest",
64
82
  "typecheck": "tsc --noEmit"
65
83
  }