nx-factory-cli 2.1.24 → 2.1.26
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.
- package/dist/commands/add-app.d.ts.map +1 -1
- package/dist/commands/add-app.js +92 -90
- package/dist/commands/add-app.js.map +1 -1
- package/dist/commands/add-auth.d.ts.map +1 -1
- package/dist/commands/add-auth.js +42 -3
- package/dist/commands/add-auth.js.map +1 -1
- package/dist/commands/add-lib.d.ts.map +1 -1
- package/dist/commands/add-lib.js +76 -40
- package/dist/commands/add-lib.js.map +1 -1
- package/dist/commands/doctor.js +1 -1
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +131 -59
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/migrate.d.ts +12 -0
- package/dist/commands/migrate.d.ts.map +1 -0
- package/dist/commands/migrate.js +644 -0
- package/dist/commands/migrate.js.map +1 -0
- package/dist/config.d.ts +2 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js.map +1 -1
- package/dist/exec.d.ts +3 -1
- package/dist/exec.d.ts.map +1 -1
- package/dist/exec.js +7 -2
- package/dist/exec.js.map +1 -1
- package/dist/index.js +61 -8
- package/dist/index.js.map +1 -1
- package/dist/setups/auth/base.d.ts.map +1 -1
- package/dist/setups/auth/base.js +5 -21
- package/dist/setups/auth/base.js.map +1 -1
- package/dist/setups/auth/index.d.ts +1 -1
- package/dist/setups/auth/index.d.ts.map +1 -1
- package/dist/setups/auth/systems/better-auth.d.ts.map +1 -1
- package/dist/setups/auth/systems/better-auth.js +88 -266
- package/dist/setups/auth/systems/better-auth.js.map +1 -1
- package/dist/setups/auth/systems/clerk.d.ts.map +1 -1
- package/dist/setups/auth/systems/clerk.js +61 -142
- package/dist/setups/auth/systems/clerk.js.map +1 -1
- package/dist/setups/auth/systems/workos.d.ts.map +1 -1
- package/dist/setups/auth/systems/workos.js +92 -203
- package/dist/setups/auth/systems/workos.js.map +1 -1
- package/dist/setups/auth/types.d.ts +12 -10
- package/dist/setups/auth/types.d.ts.map +1 -1
- package/dist/tsconfigs.d.ts +88 -0
- package/dist/tsconfigs.d.ts.map +1 -0
- package/dist/tsconfigs.js +296 -0
- package/dist/tsconfigs.js.map +1 -0
- package/package.json +1 -1
|
@@ -15,31 +15,29 @@ export const betterAuthScaffolder = {
|
|
|
15
15
|
},
|
|
16
16
|
async scaffold(pkgDir, opts) {
|
|
17
17
|
const authPackageName = scopedPackageName(opts.scope, "auth");
|
|
18
|
-
const dbPackageName = scopedPackageName(opts.scope, "db");
|
|
19
18
|
await ensureDir(path.join(pkgDir, "."));
|
|
20
|
-
// ── index.ts
|
|
19
|
+
// ── index.ts ────────────────────────────────────────────────────────────
|
|
21
20
|
await writeFile(path.join(pkgDir, "index.ts"), `/**
|
|
22
|
-
* ${authPackageName} — Better Auth
|
|
21
|
+
* ${authPackageName} — Better Auth.
|
|
23
22
|
*
|
|
24
|
-
* Prefer sub-path imports
|
|
25
|
-
* import { auth }
|
|
26
|
-
* import { authClient }
|
|
23
|
+
* Prefer sub-path imports:
|
|
24
|
+
* import { auth } from "${authPackageName}/server"
|
|
25
|
+
* import { authClient } from "${authPackageName}/client"
|
|
27
26
|
* import { authMiddleware } from "${authPackageName}/next"
|
|
28
27
|
*/
|
|
29
28
|
export * from "./server.js";
|
|
30
29
|
export * from "./client.js";
|
|
31
30
|
`);
|
|
32
|
-
// ── server.ts
|
|
31
|
+
// ── server.ts ───────────────────────────────────────────────────────────
|
|
33
32
|
await writeFile(path.join(pkgDir, "server.ts"), `/**
|
|
34
|
-
* Better Auth
|
|
33
|
+
* Better Auth — server instance.
|
|
35
34
|
*
|
|
36
|
-
* This
|
|
37
|
-
|
|
35
|
+
* This is the single source of truth for your auth configuration.
|
|
36
|
+
* Import \`auth\` in API routes, server components, and middleware.
|
|
38
37
|
*
|
|
39
38
|
* @example Next.js App Router (Server Component)
|
|
40
39
|
* import { auth } from "${authPackageName}/server";
|
|
41
40
|
* import { headers } from "next/headers";
|
|
42
|
-
*
|
|
43
41
|
* const session = await auth.api.getSession({ headers: await headers() });
|
|
44
42
|
*
|
|
45
43
|
* @example Next.js Route Handler
|
|
@@ -50,329 +48,153 @@ export * from "./client.js";
|
|
|
50
48
|
* @example Remix loader
|
|
51
49
|
* import { auth } from "${authPackageName}/server";
|
|
52
50
|
* const session = await auth.api.getSession({ headers: request.headers });
|
|
51
|
+
*
|
|
52
|
+
* @example Vite / Express API
|
|
53
|
+
* import { auth } from "${authPackageName}/server";
|
|
54
|
+
* import { toNodeHandler } from "better-auth/node";
|
|
55
|
+
* app.all("/api/auth/*", toNodeHandler(auth));
|
|
53
56
|
*/
|
|
54
57
|
import { betterAuth } from "better-auth";
|
|
55
58
|
|
|
56
59
|
export const auth = betterAuth({
|
|
57
60
|
/**
|
|
58
|
-
* Database adapter.
|
|
59
|
-
*
|
|
60
|
-
* Default: in-memory (development only — data is lost on restart).
|
|
61
|
-
* For production, pick one:
|
|
61
|
+
* Database adapter — replace with your production adapter.
|
|
62
62
|
*
|
|
63
|
-
*
|
|
64
|
-
*
|
|
65
|
-
*
|
|
63
|
+
* PostgreSQL:
|
|
64
|
+
* import { pg } from "better-auth/adapters/pg";
|
|
65
|
+
* database: pg({ connectionString: process.env.DATABASE_URL! }),
|
|
66
66
|
*
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
* SQLite (local dev):
|
|
72
|
-
* import { sqlite } from "better-auth/adapters/sqlite";
|
|
73
|
-
* import Database from "better-sqlite3";
|
|
74
|
-
* database: sqlite(new Database("./dev.db")),
|
|
75
|
-
*
|
|
76
|
-
* Prisma:
|
|
77
|
-
* import { prismaAdapter } from "better-auth/adapters/prisma";
|
|
78
|
-
* import { prisma } from "${dbPackageName}";
|
|
79
|
-
* database: prismaAdapter(prisma, { provider: "postgresql" }),
|
|
80
|
-
*
|
|
81
|
-
* Drizzle:
|
|
82
|
-
* import { drizzleAdapter } from "better-auth/adapters/drizzle";
|
|
83
|
-
* import { db } from "${dbPackageName}";
|
|
84
|
-
* database: drizzleAdapter(db, { provider: "pg" }),
|
|
67
|
+
* SQLite (local dev):
|
|
68
|
+
* import Database from "better-sqlite3";
|
|
69
|
+
* import { betterSqlite3 } from "better-auth/adapters/better-sqlite3";
|
|
70
|
+
* database: betterSqlite3(new Database("./dev.db")),
|
|
85
71
|
*/
|
|
86
|
-
database: undefined as never, //
|
|
72
|
+
database: undefined as never, // replace with your adapter
|
|
87
73
|
|
|
88
74
|
emailAndPassword: {
|
|
89
75
|
enabled: true,
|
|
90
|
-
// requireEmailVerification: true,
|
|
91
|
-
// sendResetPassword: async ({ user, url }) => { ... },
|
|
92
|
-
},
|
|
93
|
-
|
|
94
|
-
session: {
|
|
95
|
-
cookieCache: {
|
|
96
|
-
enabled: true,
|
|
97
|
-
maxAge: 60 * 5, // 5 minutes
|
|
98
|
-
},
|
|
99
76
|
},
|
|
100
77
|
|
|
101
|
-
//
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
// clientSecret: process.env.GITHUB_CLIENT_SECRET!,
|
|
106
|
-
// },
|
|
107
|
-
// google: {
|
|
108
|
-
// clientId: process.env.GOOGLE_CLIENT_ID!,
|
|
109
|
-
// clientSecret: process.env.GOOGLE_CLIENT_SECRET!,
|
|
110
|
-
// },
|
|
111
|
-
// },
|
|
112
|
-
|
|
113
|
-
// Plugins (uncomment to enable):
|
|
114
|
-
// plugins: [
|
|
115
|
-
// twoFactor(), // import { twoFactor } from "better-auth/plugins";
|
|
116
|
-
// organization(), // import { organization } from "better-auth/plugins";
|
|
117
|
-
// admin(), // import { admin } from "better-auth/plugins";
|
|
118
|
-
// passkey(), // import { passkey } from "better-auth/plugins";
|
|
119
|
-
// ],
|
|
78
|
+
// Trusted origins — add your app URLs
|
|
79
|
+
trustedOrigins: [
|
|
80
|
+
process.env.NEXT_PUBLIC_APP_URL ?? "http://localhost:3000",
|
|
81
|
+
],
|
|
120
82
|
});
|
|
121
83
|
|
|
122
|
-
/** Inferred Session type from your auth config */
|
|
123
84
|
export type Session = typeof auth.$Infer.Session;
|
|
124
|
-
/** Inferred User type from your auth config */
|
|
125
85
|
export type User = typeof auth.$Infer.Session.user;
|
|
126
86
|
`);
|
|
127
|
-
// ── client.ts
|
|
87
|
+
// ── client.ts ───────────────────────────────────────────────────────────
|
|
128
88
|
await writeFile(path.join(pkgDir, "client.ts"), `/**
|
|
129
|
-
* Better Auth
|
|
130
|
-
*
|
|
131
|
-
* Works in React Client Components, Vite SPAs, and Expo.
|
|
132
|
-
* Call methods directly on authClient to avoid type inference issues.
|
|
89
|
+
* Better Auth — browser / React client.
|
|
133
90
|
*
|
|
134
91
|
* @example
|
|
135
92
|
* import { authClient } from "${authPackageName}/client";
|
|
93
|
+
* const { data: session } = await authClient.getSession();
|
|
136
94
|
*
|
|
137
|
-
*
|
|
138
|
-
* const { data: session
|
|
139
|
-
*
|
|
140
|
-
* // Sign in with email
|
|
141
|
-
* const { data, error } = await authClient.signIn.email({ email, password });
|
|
142
|
-
*
|
|
143
|
-
* // Sign in with OAuth
|
|
144
|
-
* await authClient.signIn.social({ provider: "github" });
|
|
145
|
-
*
|
|
146
|
-
* // Update user
|
|
147
|
-
* await authClient.updateUser({ name: "New Name" });
|
|
148
|
-
*
|
|
149
|
-
* // Sign out
|
|
150
|
-
* await authClient.signOut();
|
|
95
|
+
* @example React hook
|
|
96
|
+
* const { data: session } = authClient.useSession();
|
|
151
97
|
*/
|
|
152
98
|
"use client";
|
|
153
99
|
|
|
154
100
|
import { createAuthClient } from "better-auth/react";
|
|
155
101
|
|
|
156
|
-
export
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
* If your auth server is same-origin, you can omit this.
|
|
162
|
-
* For monorepos or separate origins, set it via env.
|
|
163
|
-
*/
|
|
164
|
-
baseURL:
|
|
165
|
-
process.env.NEXT_PUBLIC_APP_URL ??
|
|
166
|
-
process.env.VITE_APP_URL ??
|
|
167
|
-
"http://localhost:3000",
|
|
102
|
+
export const authClient = createAuthClient({
|
|
103
|
+
// Point to wherever your auth route handler is mounted.
|
|
104
|
+
// For Next.js this is typically the same origin (leave blank).
|
|
105
|
+
// For Vite SPAs pointing at a separate API: "http://localhost:3001"
|
|
106
|
+
baseURL: process.env.NEXT_PUBLIC_APP_URL ?? "",
|
|
168
107
|
});
|
|
169
|
-
`);
|
|
170
|
-
// ── middleware.ts ─────────────────────────────────────────────────────
|
|
171
|
-
await writeFile(path.join(pkgDir, "middleware.ts"), `/**
|
|
172
|
-
* Better Auth v1.2+ — Next.js middleware.
|
|
173
|
-
*
|
|
174
|
-
* Quick start — copy into apps/<your-app>/middleware.ts:
|
|
175
|
-
*
|
|
176
|
-
* import type { NextRequest } from "next/server";
|
|
177
|
-
* import { authMiddleware, middlewareConfig } from "${authPackageName}/middleware";
|
|
178
|
-
*
|
|
179
|
-
* export default function middleware(request: NextRequest) {
|
|
180
|
-
* return authMiddleware(request);
|
|
181
|
-
* }
|
|
182
|
-
*
|
|
183
|
-
* export const config = middlewareConfig;
|
|
184
|
-
*
|
|
185
|
-
* Custom public paths:
|
|
186
|
-
*
|
|
187
|
-
* import { buildMiddleware } from "${authPackageName}/middleware";
|
|
188
|
-
* export default buildMiddleware({ publicPaths: ["/", "/about(.*)"] });
|
|
189
|
-
* export { middlewareConfig as config } from "${authPackageName}/middleware";
|
|
190
|
-
*/
|
|
191
|
-
import { auth } from "./server.js";
|
|
192
|
-
|
|
193
|
-
type MiddlewareRequest = {
|
|
194
|
-
nextUrl: { pathname: string };
|
|
195
|
-
url: string;
|
|
196
|
-
headers: any;
|
|
197
|
-
};
|
|
198
108
|
|
|
199
|
-
const
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
export const middlewareConfig = {
|
|
208
|
-
matcher: [
|
|
209
|
-
"/((?!_next|[^?]*\\.(?:html?|css|js(?!on)|jpe?g|webp|png|gif|svg|ttf|woff2?|ico|csv|docx?|xlsx?|zip|webmanifest)).*)",
|
|
210
|
-
"/(api|trpc)(.*)",
|
|
211
|
-
],
|
|
212
|
-
};
|
|
213
|
-
|
|
214
|
-
/** Default middleware — protects everything except the paths above */
|
|
215
|
-
export const authMiddleware = buildMiddleware();
|
|
216
|
-
|
|
217
|
-
/**
|
|
218
|
-
* Build a middleware with configurable public paths.
|
|
219
|
-
*
|
|
220
|
-
* @param publicPaths - Paths that do NOT require authentication (prefix match)
|
|
221
|
-
* @param redirectTo - Where to redirect unauthenticated users (default: /sign-in)
|
|
222
|
-
*/
|
|
223
|
-
export function buildMiddleware({
|
|
224
|
-
publicPaths = DEFAULT_PUBLIC_PATHS,
|
|
225
|
-
redirectTo = "/sign-in",
|
|
226
|
-
}: {
|
|
227
|
-
publicPaths?: string[];
|
|
228
|
-
redirectTo?: string;
|
|
229
|
-
} = {}) {
|
|
230
|
-
return async function middleware(request: MiddlewareRequest): Promise<any> {
|
|
231
|
-
const { pathname } = request.nextUrl;
|
|
232
|
-
const isPublic = publicPaths.some((p) => pathname.startsWith(p));
|
|
233
|
-
|
|
234
|
-
if (!isPublic) {
|
|
235
|
-
// better-auth v1.2: auth.api.getSession({ headers })
|
|
236
|
-
const session = await auth.api.getSession({
|
|
237
|
-
headers: request.headers,
|
|
238
|
-
});
|
|
239
|
-
if (!session) {
|
|
240
|
-
const signInUrl = new URL(redirectTo, request.url);
|
|
241
|
-
signInUrl.searchParams.set("callbackUrl", pathname);
|
|
242
|
-
return Response.redirect(signInUrl);
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
return undefined;
|
|
246
|
-
};
|
|
247
|
-
}
|
|
109
|
+
export const {
|
|
110
|
+
signIn,
|
|
111
|
+
signUp,
|
|
112
|
+
signOut,
|
|
113
|
+
useSession,
|
|
114
|
+
getSession,
|
|
115
|
+
} = authClient;
|
|
248
116
|
`);
|
|
249
|
-
// ── next
|
|
250
|
-
|
|
251
|
-
|
|
117
|
+
// ── next.ts ─────────────────────────────────────────────────────────────
|
|
118
|
+
// Only generated when Next.js is among the detected frameworks
|
|
119
|
+
if (opts.frameworks.includes("nextjs")) {
|
|
120
|
+
await writeFile(path.join(pkgDir, "next.ts"), `/**
|
|
121
|
+
* Better Auth — Next.js helpers.
|
|
252
122
|
*
|
|
253
|
-
*
|
|
254
|
-
* Do NOT import this file directly — it must live under app/api/auth/[...all]/.
|
|
123
|
+
* Route handler (place at app/api/auth/[...all]/route.ts in your Next.js app):
|
|
255
124
|
*
|
|
256
|
-
*
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
// This creates GET and POST handlers that Next.js will pick up automatically.
|
|
262
|
-
export const { GET, POST } = toNextJsHandler(auth);
|
|
263
|
-
`);
|
|
264
|
-
// ── next.ts — Next.js-specific adapter exports ───────────────────────
|
|
265
|
-
await writeFile(path.join(pkgDir, "next.ts"), `/**
|
|
266
|
-
* Next.js adapter for ${authPackageName}.
|
|
125
|
+
* import { authHandler } from "${authPackageName}/next";
|
|
126
|
+
* export const { GET, POST } = authHandler;
|
|
127
|
+
*
|
|
128
|
+
* Middleware helper:
|
|
267
129
|
*
|
|
268
|
-
*
|
|
269
|
-
*
|
|
270
|
-
*
|
|
130
|
+
* import { authMiddleware } from "${authPackageName}/next";
|
|
131
|
+
* export default authMiddleware;
|
|
132
|
+
* export const config = { matcher: ["/((?!_next|api/auth).*)"] };
|
|
271
133
|
*/
|
|
272
134
|
import { toNextJsHandler } from "better-auth/next-js";
|
|
273
135
|
import { auth } from "./server.js";
|
|
274
136
|
|
|
275
|
-
export
|
|
276
|
-
authMiddleware,
|
|
277
|
-
buildMiddleware,
|
|
278
|
-
middlewareConfig,
|
|
279
|
-
} from "./middleware.js";
|
|
137
|
+
export const authHandler = toNextJsHandler(auth);
|
|
280
138
|
|
|
281
|
-
|
|
282
|
-
|
|
139
|
+
export async function authMiddleware() {
|
|
140
|
+
// Better Auth does not ship a built-in Next.js middleware.
|
|
141
|
+
// Implement session checks here using auth.api.getSession().
|
|
142
|
+
}
|
|
283
143
|
`);
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
BETTER_AUTH_SECRET=
|
|
288
|
-
|
|
289
|
-
# The canonical URL of your app (used for cookie domain & CORS)
|
|
144
|
+
}
|
|
145
|
+
// ── .env.example ────────────────────────────────────────────────────────
|
|
146
|
+
await writeFile(path.join(pkgDir, ".env.example"), `# Better Auth
|
|
147
|
+
BETTER_AUTH_SECRET=REPLACE_WITH_32_CHAR_RANDOM_STRING
|
|
290
148
|
BETTER_AUTH_URL=http://localhost:3000
|
|
291
|
-
NEXT_PUBLIC_APP_URL=http://localhost:3000
|
|
292
149
|
|
|
293
|
-
#
|
|
294
|
-
|
|
295
|
-
# DATABASE_URL=postgresql://user:pass@localhost:5432/mydb
|
|
150
|
+
# Database (pick one — see server.ts for adapter setup)
|
|
151
|
+
DATABASE_URL=postgresql://user:password@localhost:5432/mydb
|
|
296
152
|
|
|
297
|
-
#
|
|
298
|
-
|
|
299
|
-
# GITHUB_CLIENT_SECRET=
|
|
300
|
-
# GOOGLE_CLIENT_ID=
|
|
301
|
-
# GOOGLE_CLIENT_SECRET=
|
|
153
|
+
# App URL (used by the client)
|
|
154
|
+
NEXT_PUBLIC_APP_URL=http://localhost:3000
|
|
302
155
|
`);
|
|
303
|
-
// ── README.md
|
|
304
|
-
await writeFile(path.join(pkgDir, "README.md"), `# ${authPackageName} — Better Auth
|
|
156
|
+
// ── README.md ────────────────────────────────────────────────────────────
|
|
157
|
+
await writeFile(path.join(pkgDir, "README.md"), `# ${authPackageName} — Better Auth
|
|
305
158
|
|
|
306
|
-
Shared authentication powered by [Better Auth](https://www.better-auth.com)
|
|
159
|
+
Shared authentication package powered by [Better Auth](https://www.better-auth.com).
|
|
307
160
|
|
|
308
161
|
## Setup
|
|
309
162
|
|
|
310
|
-
### 1.
|
|
311
|
-
Edit \`packages/auth/server.ts\` and uncomment the adapter for your database (PostgreSQL, MySQL, SQLite, Prisma, Drizzle).
|
|
163
|
+
### 1. Configure the database adapter in \`server.ts\`
|
|
312
164
|
|
|
313
|
-
### 2. Copy env vars
|
|
165
|
+
### 2. Copy env vars
|
|
314
166
|
\`\`\`bash
|
|
315
167
|
cp packages/auth/.env.example apps/<your-app>/.env.local
|
|
316
|
-
# Fill in BETTER_AUTH_SECRET (openssl rand -base64 32) and DATABASE_URL
|
|
317
168
|
\`\`\`
|
|
318
169
|
|
|
319
|
-
### 3.
|
|
320
|
-
\`\`\`json
|
|
321
|
-
{ "dependencies": { "${authPackageName}": "workspace:*" } }
|
|
322
|
-
\`\`\`
|
|
323
|
-
|
|
324
|
-
### 4. Add the API route (Next.js)
|
|
170
|
+
### 3. Mount the route handler (Next.js)
|
|
325
171
|
\`\`\`ts
|
|
326
172
|
// apps/<your-app>/app/api/auth/[...all]/route.ts
|
|
327
|
-
|
|
328
|
-
export const { GET, POST } = nextRouteHandlers;
|
|
173
|
+
export { authHandler as GET, authHandler as POST } from "${authPackageName}/next";
|
|
329
174
|
\`\`\`
|
|
330
175
|
|
|
331
|
-
###
|
|
176
|
+
### 4. Mount the route handler (Vite/Express API)
|
|
332
177
|
\`\`\`ts
|
|
333
|
-
|
|
334
|
-
import
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
export default function middleware(request: NextRequest) {
|
|
338
|
-
return authMiddleware(request);
|
|
339
|
-
}
|
|
340
|
-
|
|
341
|
-
export const config = middlewareConfig;
|
|
178
|
+
import { toNodeHandler } from "better-auth/node";
|
|
179
|
+
import { auth } from "${authPackageName}/server";
|
|
180
|
+
app.all("/api/auth/*", toNodeHandler(auth));
|
|
342
181
|
\`\`\`
|
|
343
182
|
|
|
344
|
-
###
|
|
183
|
+
### 5. Run the DB migration
|
|
345
184
|
\`\`\`bash
|
|
346
185
|
npx better-auth migrate
|
|
347
|
-
# or: npx better-auth generate (for Drizzle/Prisma — creates migration files)
|
|
348
186
|
\`\`\`
|
|
349
187
|
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
// Server component
|
|
188
|
+
### 6. Use in your app
|
|
189
|
+
\`\`\`ts
|
|
190
|
+
// Server
|
|
354
191
|
import { auth } from "${authPackageName}/server";
|
|
355
|
-
|
|
356
|
-
const session = await auth.api.getSession({ headers: await headers() });
|
|
192
|
+
const session = await auth.api.getSession({ headers: request.headers });
|
|
357
193
|
|
|
358
|
-
// Client
|
|
359
|
-
"use client";
|
|
194
|
+
// Client
|
|
360
195
|
import { authClient } from "${authPackageName}/client";
|
|
361
|
-
const { data: session
|
|
362
|
-
await authClient.signIn.email({ email, password });
|
|
363
|
-
await authClient.signIn.social({ provider: "github" });
|
|
364
|
-
await authClient.updateUser({ name: "New Name" });
|
|
365
|
-
await authClient.signOut();
|
|
196
|
+
const { data: session } = authClient.useSession();
|
|
366
197
|
\`\`\`
|
|
367
|
-
|
|
368
|
-
## API
|
|
369
|
-
|
|
370
|
-
| Sub-path | Key exports |
|
|
371
|
-
|---|---|
|
|
372
|
-
| \`${authPackageName}/server\` | \`auth\`, \`Session\` type, \`User\` type |
|
|
373
|
-
| \`${authPackageName}/client\` | \`authClient\`, \`AuthClient\` type |
|
|
374
|
-
| \`${authPackageName}/middleware\` | \`authMiddleware\`, \`buildMiddleware()\`, \`middlewareConfig\` |
|
|
375
|
-
| \`${authPackageName}/next\` | \`nextRouteHandlers\`, \`authMiddleware\`, \`middlewareConfig\` |
|
|
376
198
|
`);
|
|
377
199
|
},
|
|
378
200
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"better-auth.js","sourceRoot":"","sources":["../../../../src/setups/auth/systems/better-auth.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAGvD,MAAM,CAAC,MAAM,oBAAoB,GAA0B;IAC1D,KAAK,EAAE,aAAa;IAEpB,YAAY,EAAE;QACb,aAAa,EAAE,QAAQ;KACvB;IAED,eAAe,EAAE;QAChB,cAAc,EAAE,SAAS;KACzB;IAED,gBAAgB,EAAE;QACjB,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,YAAY;KACzB;IAED,KAAK,CAAC,QAAQ,CAAC,MAAc,EAAE,IAAwB;QACtD,MAAM,eAAe,GAAG,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"better-auth.js","sourceRoot":"","sources":["../../../../src/setups/auth/systems/better-auth.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAGvD,MAAM,CAAC,MAAM,oBAAoB,GAA0B;IAC1D,KAAK,EAAE,aAAa;IAEpB,YAAY,EAAE;QACb,aAAa,EAAE,QAAQ;KACvB;IAED,eAAe,EAAE;QAChB,cAAc,EAAE,SAAS;KACzB;IAED,gBAAgB,EAAE;QACjB,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,YAAY;KACzB;IAED,KAAK,CAAC,QAAQ,CAAC,MAAc,EAAE,IAAwB;QACtD,MAAM,eAAe,GAAG,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAE9D,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;QAExC,2EAA2E;QAC3E,MAAM,SAAS,CACd,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,EAC7B;KACE,eAAe;;;mCAGe,eAAe;mCACf,eAAe;uCACX,eAAe;;;;CAIrD,CACE,CAAC;QAEF,2EAA2E;QAC3E,MAAM,SAAS,CACd,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,EAC9B;;;;;;;6BAO0B,eAAe;;;;;6BAKf,eAAe;;;;;6BAKf,eAAe;;;;6BAIf,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiC3C,CACE,CAAC;QAEF,2EAA2E;QAC3E,MAAM,SAAS,CACd,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,EAC9B;;;;mCAIgC,eAAe;;;;;;;;;;;;;;;;;;;;;;;;CAwBjD,CACE,CAAC;QAEF,2EAA2E;QAC3E,+DAA+D;QAC/D,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxC,MAAM,SAAS,CACd,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,EAC5B;;;;;oCAKgC,eAAe;;;;;uCAKZ,eAAe;;;;;;;;;;;;;CAarD,CACG,CAAC;QACH,CAAC;QAED,2EAA2E;QAC3E,MAAM,SAAS,CACd,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,EACjC;;;;;;;;;CASF,CACE,CAAC;QAEF,4EAA4E;QAC5E,MAAM,SAAS,CACd,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,EAC9B,KAAK,eAAe;;;;;;;;;;;;;;;;2DAgBoC,eAAe;;;;;;wBAMlD,eAAe;;;;;;;;;;;;wBAYf,eAAe;;;;8BAIT,eAAe;;;CAG5C,CACE,CAAC;IACH,CAAC;CACD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clerk.d.ts","sourceRoot":"","sources":["../../../../src/setups/auth/systems/clerk.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,qBAAqB,
|
|
1
|
+
{"version":3,"file":"clerk.d.ts","sourceRoot":"","sources":["../../../../src/setups/auth/systems/clerk.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,qBAAqB,EAAoC,MAAM,aAAa,CAAC;AAsB3F,eAAO,MAAM,eAAe,EAAE,qBAyM7B,CAAC"}
|