@gauts/auth 0.8.2 → 0.9.0

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/README.md +292 -66
  2. package/dist/adapters/drizzle/config.d.ts +11 -0
  3. package/dist/adapters/drizzle/config.d.ts.map +1 -0
  4. package/dist/adapters/drizzle/config.js +147 -0
  5. package/dist/adapters/drizzle/config.js.map +1 -0
  6. package/dist/adapters/drizzle/index.d.ts +4 -0
  7. package/dist/adapters/drizzle/index.d.ts.map +1 -0
  8. package/dist/adapters/drizzle/index.js +156 -0
  9. package/dist/adapters/drizzle/index.js.map +1 -0
  10. package/dist/adapters/drizzle/model.d.ts +21 -0
  11. package/dist/adapters/drizzle/model.d.ts.map +1 -0
  12. package/dist/adapters/drizzle/model.js +61 -0
  13. package/dist/adapters/drizzle/model.js.map +1 -0
  14. package/dist/adapters/drizzle/schema.d.ts +311 -0
  15. package/dist/adapters/drizzle/schema.d.ts.map +1 -0
  16. package/dist/adapters/drizzle/schema.js +37 -0
  17. package/dist/adapters/drizzle/schema.js.map +1 -0
  18. package/dist/adapters/drizzle/types.d.ts +109 -0
  19. package/dist/adapters/drizzle/types.d.ts.map +1 -0
  20. package/dist/adapters/drizzle/types.js +2 -0
  21. package/dist/adapters/drizzle/types.js.map +1 -0
  22. package/dist/adapters/express/index.d.ts +83 -0
  23. package/dist/adapters/express/index.d.ts.map +1 -0
  24. package/dist/adapters/express/index.js +72 -0
  25. package/dist/adapters/express/index.js.map +1 -0
  26. package/dist/adapters/express/social.d.ts +29 -0
  27. package/dist/adapters/express/social.d.ts.map +1 -0
  28. package/dist/adapters/express/social.js +44 -0
  29. package/dist/adapters/express/social.js.map +1 -0
  30. package/dist/adapters/fastify/index.d.ts +85 -0
  31. package/dist/adapters/fastify/index.d.ts.map +1 -0
  32. package/dist/adapters/fastify/index.js +100 -0
  33. package/dist/adapters/fastify/index.js.map +1 -0
  34. package/dist/adapters/fastify/social.d.ts +27 -0
  35. package/dist/adapters/fastify/social.d.ts.map +1 -0
  36. package/dist/adapters/fastify/social.js +48 -0
  37. package/dist/adapters/fastify/social.js.map +1 -0
  38. package/dist/adapters/hono/index.d.ts +4 -11
  39. package/dist/adapters/hono/index.d.ts.map +1 -1
  40. package/dist/adapters/hono/index.js +31 -223
  41. package/dist/adapters/hono/index.js.map +1 -1
  42. package/dist/adapters/hono/social.d.ts +4 -10
  43. package/dist/adapters/hono/social.d.ts.map +1 -1
  44. package/dist/adapters/hono/social.js +25 -221
  45. package/dist/adapters/hono/social.js.map +1 -1
  46. package/dist/adapters/model.d.ts +33 -0
  47. package/dist/adapters/model.d.ts.map +1 -0
  48. package/dist/adapters/model.js +87 -0
  49. package/dist/adapters/model.js.map +1 -0
  50. package/dist/adapters/prisma/config.d.ts.map +1 -1
  51. package/dist/adapters/prisma/config.js +1 -4
  52. package/dist/adapters/prisma/config.js.map +1 -1
  53. package/dist/adapters/prisma/model.d.ts +7 -8
  54. package/dist/adapters/prisma/model.d.ts.map +1 -1
  55. package/dist/adapters/prisma/model.js +11 -79
  56. package/dist/adapters/prisma/model.js.map +1 -1
  57. package/dist/adapters/utils/cookie.d.ts +17 -0
  58. package/dist/adapters/utils/cookie.d.ts.map +1 -0
  59. package/dist/adapters/utils/cookie.js +59 -0
  60. package/dist/adapters/utils/cookie.js.map +1 -0
  61. package/dist/adapters/utils/session.d.ts +4 -0
  62. package/dist/adapters/utils/session.d.ts.map +1 -0
  63. package/dist/adapters/utils/session.js +216 -0
  64. package/dist/adapters/utils/session.js.map +1 -0
  65. package/dist/adapters/utils/social.d.ts +51 -0
  66. package/dist/adapters/utils/social.d.ts.map +1 -0
  67. package/dist/adapters/utils/social.js +278 -0
  68. package/dist/adapters/utils/social.js.map +1 -0
  69. package/dist/adapters/utils/types.d.ts +67 -0
  70. package/dist/adapters/utils/types.d.ts.map +1 -0
  71. package/dist/adapters/utils/types.js +2 -0
  72. package/dist/adapters/utils/types.js.map +1 -0
  73. package/package.json +40 -3
  74. package/src/adapters/drizzle/schema.ts +47 -0
  75. package/src/adapters/prisma/schema.prisma +38 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gauts/auth",
3
- "version": "0.8.2",
3
+ "version": "0.9.0",
4
4
  "description": "Database-backed password, session, and social authentication for Node.js.",
5
5
  "license": "MIT",
6
6
  "author": "GVALFER",
@@ -16,7 +16,12 @@
16
16
  "authentication",
17
17
  "argon2",
18
18
  "bcrypt",
19
+ "drizzle",
20
+ "express",
21
+ "fastify",
19
22
  "hono",
23
+ "mariadb",
24
+ "mysql",
20
25
  "nextjs",
21
26
  "oauth",
22
27
  "session"
@@ -28,6 +33,8 @@
28
33
  },
29
34
  "files": [
30
35
  "dist",
36
+ "src/adapters/drizzle/schema.ts",
37
+ "src/adapters/prisma/schema.prisma",
31
38
  "LICENSE",
32
39
  "README.md",
33
40
  "SECURITY.md"
@@ -41,6 +48,18 @@
41
48
  "types": "./dist/adapters/prisma/index.d.ts",
42
49
  "import": "./dist/adapters/prisma/index.js"
43
50
  },
51
+ "./drizzle": {
52
+ "types": "./dist/adapters/drizzle/index.d.ts",
53
+ "import": "./dist/adapters/drizzle/index.js"
54
+ },
55
+ "./express": {
56
+ "types": "./dist/adapters/express/index.d.ts",
57
+ "import": "./dist/adapters/express/index.js"
58
+ },
59
+ "./fastify": {
60
+ "types": "./dist/adapters/fastify/index.d.ts",
61
+ "import": "./dist/adapters/fastify/index.js"
62
+ },
44
63
  "./hono": {
45
64
  "types": "./dist/adapters/hono/index.d.ts",
46
65
  "import": "./dist/adapters/hono/index.js"
@@ -58,7 +77,7 @@
58
77
  "clean": "node --eval \"import { rmSync } from 'node:fs'; rmSync('dist', { force: true, recursive: true })\"",
59
78
  "build": "npm run clean && tsc -p tsconfig.build.json",
60
79
  "typecheck": "tsc --noEmit",
61
- "typecheck:examples": "npm run build && tsc -p examples/hono/tsconfig.json && tsc -p examples/next/tsconfig.json",
80
+ "typecheck:examples": "npm run build && tsc -p examples/drizzle/tsconfig.json && tsc -p examples/express/tsconfig.json && tsc -p examples/fastify/tsconfig.json && tsc -p examples/hono/tsconfig.json && tsc -p examples/next/tsconfig.json",
62
81
  "lint": "eslint src tests examples",
63
82
  "test": "node --import tsx --test tests/**/*.test.ts",
64
83
  "check": "npm run build && npm run lint && npm run typecheck && npm test",
@@ -69,13 +88,26 @@
69
88
  },
70
89
  "dependencies": {
71
90
  "argon2": "^0.45.1",
72
- "bcryptjs": "^3.0.2"
91
+ "bcryptjs": "^3.0.2",
92
+ "cookie": "^2.0.1"
73
93
  },
74
94
  "peerDependencies": {
95
+ "drizzle-orm": "^0.45.2",
96
+ "express": "^5.0.0",
97
+ "fastify": "^5.0.0",
75
98
  "hono": "^4.13.0",
76
99
  "next": ">=15.0.0"
77
100
  },
78
101
  "peerDependenciesMeta": {
102
+ "drizzle-orm": {
103
+ "optional": true
104
+ },
105
+ "express": {
106
+ "optional": true
107
+ },
108
+ "fastify": {
109
+ "optional": true
110
+ },
79
111
  "hono": {
80
112
  "optional": true
81
113
  },
@@ -85,10 +117,15 @@
85
117
  },
86
118
  "devDependencies": {
87
119
  "@eslint/js": "^9.39.5",
120
+ "@types/express": "^5.0.6",
88
121
  "@types/node": "^24.10.0",
122
+ "drizzle-orm": "^0.45.2",
89
123
  "eslint": "^9.39.5",
124
+ "express": "^5.2.1",
125
+ "fastify": "^5.12.1",
90
126
  "globals": "^16.5.0",
91
127
  "hono": "^4.13.0",
128
+ "mysql2": "^3.23.3",
92
129
  "next": "^16.2.12",
93
130
  "tsx": "^4.23.0",
94
131
  "typescript": "^5.9.3",
@@ -0,0 +1,47 @@
1
+ import { index, mysqlTable, text, timestamp, uniqueIndex, varchar } from "drizzle-orm/mysql-core";
2
+
3
+ export const users = mysqlTable("users", {
4
+ id: varchar("id", { length: 255 }).primaryKey(),
5
+ name: varchar("name", { length: 255 }).notNull(),
6
+ });
7
+
8
+ export const userAccounts = mysqlTable(
9
+ "user_accounts",
10
+ {
11
+ email: varchar("email", { length: 255 }).notNull(),
12
+ id: varchar("id", { length: 255 }).primaryKey(),
13
+ password_hash: varchar("password_hash", { length: 255 }),
14
+ user_id: varchar("user_id", { length: 255 })
15
+ .notNull()
16
+ .references(() => users.id, { onDelete: "cascade" }),
17
+ },
18
+ (table) => [
19
+ uniqueIndex("user_accounts_email_key").on(table.email),
20
+ index("user_accounts_user_id_idx").on(table.user_id),
21
+ ],
22
+ );
23
+
24
+ export const accountSessions = mysqlTable(
25
+ "account_sessions",
26
+ {
27
+ account_id: varchar("account_id", { length: 255 })
28
+ .notNull()
29
+ .references(() => userAccounts.id, { onDelete: "cascade" }),
30
+ agent: text("agent"),
31
+ country: varchar("country", { length: 2 }),
32
+ created_at: timestamp("created_at", { mode: "date" }).defaultNow().notNull(),
33
+ expires_at: timestamp("expires_at", { mode: "date" }).notNull(),
34
+ id: varchar("id", { length: 255 }).primaryKey(),
35
+ ip: varchar("ip", { length: 45 }),
36
+ platform: varchar("platform", { length: 255 }),
37
+ revoked_at: timestamp("revoked_at", { mode: "date" }),
38
+ token_hash: varchar("token_hash", { length: 64 }).notNull(),
39
+ updated_at: timestamp("updated_at", { mode: "date" }),
40
+ },
41
+ (table) => [
42
+ index("account_sessions_account_id_idx").on(table.account_id),
43
+ index("account_sessions_expires_at_idx").on(table.expires_at),
44
+ index("account_sessions_revoked_at_idx").on(table.revoked_at),
45
+ uniqueIndex("account_sessions_token_hash_key").on(table.token_hash),
46
+ ],
47
+ );
@@ -0,0 +1,38 @@
1
+ model users {
2
+ id String @id @default(uuid()) @db.VarChar(255)
3
+ name String @db.VarChar(255)
4
+
5
+ accounts user_accounts[]
6
+ }
7
+
8
+ model user_accounts {
9
+ id String @id @default(uuid()) @db.VarChar(255)
10
+ user_id String @db.VarChar(255)
11
+ email String @unique @db.VarChar(255)
12
+ password_hash String? @db.VarChar(255)
13
+
14
+ user users @relation(fields: [user_id], references: [id], onDelete: Cascade)
15
+ sessions account_sessions[]
16
+
17
+ @@index([user_id])
18
+ }
19
+
20
+ model account_sessions {
21
+ id String @id @default(uuid()) @db.VarChar(255)
22
+ account_id String @db.VarChar(255)
23
+ token_hash String @unique @db.VarChar(64)
24
+ ip String? @db.VarChar(45)
25
+ country String? @db.VarChar(2)
26
+ platform String? @db.VarChar(255)
27
+ agent String? @db.Text
28
+ expires_at DateTime @db.Timestamp(0)
29
+ revoked_at DateTime? @db.Timestamp(0)
30
+ created_at DateTime @default(now()) @db.Timestamp(0)
31
+ updated_at DateTime? @db.Timestamp(0)
32
+
33
+ account user_accounts @relation(fields: [account_id], references: [id], onDelete: Cascade)
34
+
35
+ @@index([account_id])
36
+ @@index([expires_at])
37
+ @@index([revoked_at])
38
+ }