Skip to content

Commit eed6816

Browse files
committed
Add better-auth package with core object schemas
Introduces the @objectql/better-auth package, including TypeScript configuration and object schema definitions for user, account, session, and verification entities to support authentication features.
1 parent 80977b1 commit eed6816

File tree

6 files changed

+153
-0
lines changed

6 files changed

+153
-0
lines changed

packages/better-auth/package.json

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{
2+
"name": "@objectql/better-auth",
3+
"version": "0.1.0",
4+
"description": "Better-Auth integration for ObjectQL",
5+
"main": "dist/index.js",
6+
"types": "dist/index.d.ts",
7+
"scripts": {
8+
"build": "tsc",
9+
"test": "jest"
10+
},
11+
"dependencies": {
12+
"@objectql/core": "workspace:*"
13+
},
14+
"devDependencies": {
15+
"typescript": "^5.0.0"
16+
}
17+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
name: account
2+
description: External authentication account (OAuth etc)
3+
fields:
4+
userId:
5+
type: string
6+
description: ID of the user
7+
required: true
8+
accountId:
9+
type: string
10+
description: Account ID from provider
11+
required: true
12+
providerId:
13+
type: string
14+
description: Provider ID (google, github, etc)
15+
required: true
16+
accessToken:
17+
type: string
18+
description: Access Token
19+
refreshToken:
20+
type: string
21+
description: Refresh Token
22+
accessTokenExpiresAt:
23+
type: datetime
24+
refreshTokenExpiresAt:
25+
type: datetime
26+
scope:
27+
type: string
28+
password:
29+
type: string
30+
description: Password if applicable (usually in user, but for completeness)
31+
hidden: true
32+
createdAt:
33+
type: datetime
34+
default: now()
35+
updatedAt:
36+
type: datetime
37+
default: now()
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
name: session
2+
description: User authentication session
3+
fields:
4+
userId:
5+
type: string
6+
description: ID of the user
7+
required: true
8+
token:
9+
type: string
10+
description: Session token
11+
unique: true
12+
required: true
13+
expiresAt:
14+
type: datetime
15+
description: When the session expires
16+
required: true
17+
ipAddress:
18+
type: string
19+
description: IP Address of the client
20+
userAgent:
21+
type: string
22+
description: User Agent of the client
23+
createdAt:
24+
type: datetime
25+
default: now()
26+
updatedAt:
27+
type: datetime
28+
default: now()
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
name: user
2+
description: System user for authentication
3+
fields:
4+
name:
5+
type: string
6+
description: User's display name
7+
email:
8+
type: string
9+
description: User's email address
10+
unique: true
11+
emailVerified:
12+
type: boolean
13+
description: Whether the email is verified
14+
default: false
15+
image:
16+
type: string
17+
description: URL to user's avatar
18+
createdAt:
19+
type: datetime
20+
default: now()
21+
updatedAt:
22+
type: datetime
23+
default: now()
24+
# Better Auth Specifics
25+
password:
26+
type: string
27+
description: Hashed password
28+
hidden: true
29+
role:
30+
type: string
31+
description: User role (admin, user, etc)
32+
default: user
33+
banned:
34+
type: boolean
35+
description: Whether the user is banned
36+
default: false
37+
banReason:
38+
type: string
39+
description: Reason for ban
40+
banExpires:
41+
type: datetime
42+
description: When the ban expires
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
name: verification
2+
description: Verification tokens for email etc
3+
fields:
4+
identifier:
5+
type: string
6+
description: Email or phone number
7+
required: true
8+
value:
9+
type: string
10+
description: Verification token
11+
required: true
12+
expiresAt:
13+
type: datetime
14+
description: Expiration time
15+
required: true
16+
createdAt:
17+
type: datetime
18+
default: now()
19+
updatedAt:
20+
type: datetime
21+
default: now()

packages/better-auth/tsconfig.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"extends": "../../tsconfig.base.json",
3+
"compilerOptions": {
4+
"outDir": "./dist",
5+
"rootDir": "./src"
6+
},
7+
"include": ["src/**/*"]
8+
}

0 commit comments

Comments
 (0)