better-auth-studio 1.0.46 → 1.0.47-beta.10

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.
@@ -31,7 +31,7 @@ export declare function createMockUser(adapter: AuthAdapter, index: number, role
31
31
  image?: string | null | undefined;
32
32
  }) | null>;
33
33
  export declare function createMockSession(adapter: AuthAdapter, userId: string, index: number): Promise<any>;
34
- export declare function createMockAccount(adapter: AuthAdapter, userId: string, index: number): Promise<any>;
34
+ export declare function createMockAccount(adapter: AuthAdapter, userId: string, index: number, providerId?: string): Promise<any>;
35
35
  export declare function createMockVerification(adapter: AuthAdapter, _userId: string, index: number): Promise<any>;
36
36
  export {};
37
37
  //# sourceMappingURL=auth-adapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth-adapter.d.ts","sourceRoot":"","sources":["../src/auth-adapter.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAE7C,KAAK,cAAc,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC;AAEnD,KAAK,mBAAmB,GAAG,cAAc,CAAC,eAAe,CAAC,CAAA;AAG1D,MAAM,WAAW,WAAY,SAAQ,mBAAmB;IACtD,aAAa,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3C,aAAa,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3C,kBAAkB,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAChD,kBAAkB,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAChD,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1C,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1C,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1C,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACnC,QAAQ,CAAC,CAAC,GAAG,GAAG,EAAE,OAAO,EAAE;QACzB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,GAAG,CAAC;QACZ,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;CAClB;AAID,wBAAsB,cAAc,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAyKrF;AA6BD,wBAAsB,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;;;;;;;;WAkBtF;AA0JD,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,gBAkB1F;AAED,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,gBAqB1F;AAED,wBAAsB,sBAAsB,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,gBAUhG"}
1
+ {"version":3,"file":"auth-adapter.d.ts","sourceRoot":"","sources":["../src/auth-adapter.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAE7C,KAAK,cAAc,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC;AAEnD,KAAK,mBAAmB,GAAG,cAAc,CAAC,eAAe,CAAC,CAAA;AAG1D,MAAM,WAAW,WAAY,SAAQ,mBAAmB;IACtD,aAAa,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3C,aAAa,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3C,kBAAkB,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAChD,kBAAkB,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAChD,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1C,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1C,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1C,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACnC,QAAQ,CAAC,CAAC,GAAG,GAAG,EAAE,OAAO,EAAE;QACzB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,GAAG,CAAC;QACZ,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;CAClB;AAID,wBAAsB,cAAc,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAyKrF;AA6BD,wBAAsB,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;;;;;;;;WAkBtF;AA0JD,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,gBAkB1F;AAED,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,gBAgD/G;AAED,wBAAsB,sBAAsB,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,gBAUhG"}
@@ -370,19 +370,44 @@ export async function createMockSession(adapter, userId, index) {
370
370
  }
371
371
  return await adapter?.createSession(sessionData);
372
372
  }
373
- export async function createMockAccount(adapter, userId, index) {
373
+ export async function createMockAccount(adapter, userId, index, providerId) {
374
+ // List of common OAuth providers
375
+ const providers = [
376
+ 'github',
377
+ 'google',
378
+ 'discord',
379
+ 'facebook',
380
+ 'twitter',
381
+ 'linkedin',
382
+ 'apple',
383
+ 'microsoft',
384
+ 'gitlab',
385
+ 'bitbucket',
386
+ 'spotify',
387
+ 'twitch',
388
+ 'reddit',
389
+ 'slack',
390
+ 'notion',
391
+ 'tiktok',
392
+ 'zoom',
393
+ ];
394
+ // Use provided providerId or select randomly
395
+ const selectedProvider = providerId && providerId !== 'random'
396
+ ? providerId
397
+ : providers[Math.floor(Math.random() * providers.length)];
374
398
  const accountData = {
375
399
  userId: userId,
376
400
  type: 'oauth',
377
- provider: 'github',
378
- providerAccountId: `github_${index}`,
379
- refresh_token: `refresh_token_${index}`,
380
- access_token: `access_token_${index}`,
401
+ provider: selectedProvider,
402
+ providerId: selectedProvider,
403
+ accountId: `${selectedProvider}_${index}_${Date.now()}`,
404
+ refresh_token: `refresh_token_${index}_${Date.now()}`,
405
+ access_token: `access_token_${index}_${Date.now()}`,
381
406
  expires_at: Math.floor(Date.now() / 1000) + 3600,
382
407
  token_type: 'bearer',
383
408
  scope: 'read:user',
384
- id_token: `id_token_${index}`,
385
- session_state: `session_state_${index}`,
409
+ id_token: `id_token_${index}_${Date.now()}`,
410
+ session_state: `session_state_${index}_${Date.now()}`,
386
411
  createdAt: new Date(),
387
412
  updatedAt: new Date(),
388
413
  };
@@ -1 +1 @@
1
- {"version":3,"file":"auth-adapter.js","sourceRoot":"","sources":["../src/auth-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth-adapter.js","sourceRoot":"","sources":["../src/auth-adapter.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"AAMA,OAAO,EAA+B,MAAM,EAAE,MAAM,SAAS,CAAC;AAS9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AA8D9C,wBAAsB,oBAAoB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CA8I/E;AAwBD,wBAAgB,YAAY,CAC1B,UAAU,EAAE,UAAU,EACtB,UAAU,CAAC,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,GACjB,MAAM,CAw7HR"}
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"AAOA,OAAO,EAA+B,MAAM,EAAE,MAAM,SAAS,CAAC;AAS9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AA8D9C,wBAAsB,oBAAoB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CA8I/E;AAwBD,wBAAgB,YAAY,CAC1B,UAAU,EAAE,UAAU,EACtB,UAAU,CAAC,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,GACjB,MAAM,CA6hJR"}
package/dist/routes.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { createHmac, randomBytes } from 'node:crypto';
1
2
  import { existsSync, readFileSync } from 'node:fs';
2
3
  import { dirname, join } from 'node:path';
3
4
  import { fileURLToPath, pathToFileURL } from 'node:url';
@@ -201,6 +202,21 @@ async function findAuthConfigPath() {
201
202
  }
202
203
  export function createRoutes(authConfig, configPath, geoDbPath) {
203
204
  const router = Router();
205
+ const base64UrlEncode = (value) => Buffer.from(value).toString('base64').replace(/=+$/u, '').replace(/\+/gu, '-').replace(/\//gu, '_');
206
+ const base64UrlDecode = (value) => {
207
+ const normalized = value.replace(/-/gu, '+').replace(/_/gu, '/');
208
+ const padded = normalized + '==='.slice((normalized.length + 3) % 4);
209
+ return Buffer.from(padded, 'base64').toString('utf8');
210
+ };
211
+ const formatRelativeDuration = (ms) => {
212
+ const absMs = Math.abs(ms);
213
+ const mins = Math.floor(absMs / 60000);
214
+ if (mins >= 1) {
215
+ return `${mins} min${mins === 1 ? '' : 's'}`;
216
+ }
217
+ const secs = Math.max(1, Math.floor(absMs / 1000));
218
+ return `${secs}s`;
219
+ };
204
220
  if (geoDbPath) {
205
221
  setGeoDbPath(geoDbPath);
206
222
  }
@@ -856,6 +872,7 @@ export function createRoutes(authConfig, configPath, geoDbPath) {
856
872
  .map((account) => ({
857
873
  id: account.id,
858
874
  providerId: account.providerId || account.provider || 'unknown',
875
+ accountId: account.accountId || account.providerAccountId || account.id,
859
876
  createdAt: account.createdAt || account.created_at || null,
860
877
  updatedAt: account.updatedAt || account.updated_at || null,
861
878
  email: account.email || account.login?.email || null,
@@ -884,7 +901,7 @@ export function createRoutes(authConfig, configPath, geoDbPath) {
884
901
  if (!account || account.userId !== userId) {
885
902
  return res.status(404).json({ error: 'Account not found for this user' });
886
903
  }
887
- await adapter.delete({ model: 'account', id: accountId });
904
+ await adapter.delete({ model: 'account', where: [{ field: 'id', value: accountId }] });
888
905
  res.json({ success: true });
889
906
  }
890
907
  catch (_error) {
@@ -1327,6 +1344,207 @@ export function createRoutes(authConfig, configPath, geoDbPath) {
1327
1344
  });
1328
1345
  }
1329
1346
  });
1347
+ router.post('/api/tools/validate-config', async (_req, res) => {
1348
+ try {
1349
+ const results = [];
1350
+ const addResult = (category, check, status, message, suggestion, severity = status === 'fail' ? 'error' : status === 'warning' ? 'warning' : 'info') => {
1351
+ results.push({ category, check, status, message, suggestion, severity });
1352
+ };
1353
+ // 1. Core Configuration Checks
1354
+ const secret = process.env.BETTER_AUTH_SECRET || process.env.AUTH_SECRET;
1355
+ if (!secret) {
1356
+ addResult('Core Config', 'Secret Key', 'fail', 'BETTER_AUTH_SECRET or AUTH_SECRET environment variable is not set', 'Set BETTER_AUTH_SECRET in your .env file with a strong random string (minimum 32 characters)', 'error');
1357
+ }
1358
+ else if (secret.length < 32) {
1359
+ addResult('Core Config', 'Secret Key', 'warning', `Secret key is only ${secret.length} characters. Recommended minimum is 32 characters`, 'Generate a longer secret key for better security', 'warning');
1360
+ }
1361
+ else {
1362
+ addResult('Core Config', 'Secret Key', 'pass', 'Secret key is configured and meets length requirements');
1363
+ }
1364
+ const baseURL = authConfig.baseURL || process.env.BETTER_AUTH_URL;
1365
+ if (!baseURL) {
1366
+ addResult('Core Config', 'Base URL', 'warning', 'baseURL is not configured. Using default localhost:3000', 'Set baseURL in your auth config or BETTER_AUTH_URL environment variable', 'warning');
1367
+ }
1368
+ else {
1369
+ try {
1370
+ new URL(baseURL);
1371
+ addResult('Core Config', 'Base URL', 'pass', `Base URL is valid: ${baseURL}`);
1372
+ }
1373
+ catch {
1374
+ addResult('Core Config', 'Base URL', 'fail', `Base URL format is invalid: ${baseURL}`, 'Ensure baseURL is a valid URL (e.g., https://example.com)', 'error');
1375
+ }
1376
+ }
1377
+ const basePath = authConfig.basePath || '/api/auth';
1378
+ if (!basePath.startsWith('/')) {
1379
+ addResult('Core Config', 'Base Path', 'fail', `Base path must start with '/': ${basePath}`, 'Change basePath to start with a forward slash (e.g., /api/auth)', 'error');
1380
+ }
1381
+ else {
1382
+ addResult('Core Config', 'Base Path', 'pass', `Base path is valid: ${basePath}`);
1383
+ }
1384
+ // 2. Database Configuration
1385
+ const adapter = await getAuthAdapterWithConfig();
1386
+ if (!adapter) {
1387
+ addResult('Database', 'Adapter', 'fail', 'Database adapter is not available or not configured', 'Ensure your database adapter is properly configured in your auth config', 'error');
1388
+ }
1389
+ else {
1390
+ addResult('Database', 'Adapter', 'pass', 'Database adapter is configured');
1391
+ // Test database connection
1392
+ try {
1393
+ if (adapter.findMany) {
1394
+ await adapter.findMany({
1395
+ model: 'user',
1396
+ limit: 1,
1397
+ });
1398
+ addResult('Database', 'Connection', 'pass', 'Database connection is working');
1399
+ }
1400
+ else {
1401
+ addResult('Database', 'Connection', 'warning', 'Cannot test database connection (findMany method not available)', undefined, 'warning');
1402
+ }
1403
+ }
1404
+ catch (error) {
1405
+ addResult('Database', 'Connection', 'fail', `Database connection failed: ${error instanceof Error ? error.message : 'Unknown error'}`, 'Check your database connection string and ensure the database is accessible', 'error');
1406
+ }
1407
+ }
1408
+ const dbUrl = process.env.DATABASE_URL || process.env.POSTGRES_URL || process.env.MYSQL_URL;
1409
+ if (!dbUrl && !authConfig.database?.url) {
1410
+ addResult('Database', 'Connection String', 'warning', 'No database connection string found in environment variables', 'Set DATABASE_URL, POSTGRES_URL, or MYSQL_URL in your .env file', 'warning');
1411
+ }
1412
+ else {
1413
+ addResult('Database', 'Connection String', 'pass', 'Database connection string is configured');
1414
+ }
1415
+ // 3. OAuth/Social Providers
1416
+ const socialProviders = authConfig.socialProviders || [];
1417
+ if (socialProviders.length === 0) {
1418
+ addResult('OAuth Providers', 'Providers', 'warning', 'No OAuth providers configured', 'This is optional. Add social providers if you need OAuth authentication', 'info');
1419
+ }
1420
+ else {
1421
+ addResult('OAuth Providers', 'Providers', 'pass', `${socialProviders.length} OAuth provider(s) configured`);
1422
+ socialProviders.forEach((provider) => {
1423
+ if (provider.enabled) {
1424
+ if (!provider.clientId) {
1425
+ addResult('OAuth Providers', `${provider.name} - Client ID`, 'fail', `${provider.name} is enabled but clientId is missing`, `Add clientId for ${provider.name} in your auth config`, 'error');
1426
+ }
1427
+ else {
1428
+ addResult('OAuth Providers', `${provider.name} - Client ID`, 'pass', 'Client ID is configured');
1429
+ }
1430
+ if (!provider.clientSecret) {
1431
+ addResult('OAuth Providers', `${provider.name} - Client Secret`, 'fail', `${provider.name} is enabled but clientSecret is missing`, `Add clientSecret for ${provider.name} in your auth config`, 'error');
1432
+ }
1433
+ else {
1434
+ addResult('OAuth Providers', `${provider.name} - Client Secret`, 'pass', 'Client Secret is configured');
1435
+ }
1436
+ if (provider.redirectURI) {
1437
+ const baseUrl = authConfig.baseURL || process.env.BETTER_AUTH_URL || 'http://localhost:3000';
1438
+ const expectedRedirect = `${baseUrl}${authConfig.basePath || '/api/auth'}/callback/${provider.id}`;
1439
+ if (!provider.redirectURI.includes(baseUrl)) {
1440
+ addResult('OAuth Providers', `${provider.name} - Redirect URI`, 'warning', `Redirect URI may not match baseURL: ${provider.redirectURI}`, `Expected format: ${expectedRedirect}. Ensure this matches your OAuth provider settings`, 'warning');
1441
+ }
1442
+ else {
1443
+ addResult('OAuth Providers', `${provider.name} - Redirect URI`, 'pass', 'Redirect URI is configured');
1444
+ }
1445
+ }
1446
+ else {
1447
+ addResult('OAuth Providers', `${provider.name} - Redirect URI`, 'warning', 'Redirect URI is not explicitly set (will use default)', undefined, 'warning');
1448
+ }
1449
+ }
1450
+ });
1451
+ }
1452
+ // 4. Email & Password
1453
+ const emailAndPassword = authConfig.emailAndPassword;
1454
+ if (emailAndPassword?.enabled) {
1455
+ addResult('Email & Password', 'Enabled', 'pass', 'Email and password authentication is enabled');
1456
+ if (emailAndPassword.minPasswordLength && emailAndPassword.minPasswordLength < 8) {
1457
+ addResult('Email & Password', 'Password Policy', 'warning', `Minimum password length is ${emailAndPassword.minPasswordLength}. Recommended minimum is 8`, 'Consider increasing minPasswordLength to 8 or higher', 'warning');
1458
+ }
1459
+ else {
1460
+ addResult('Email & Password', 'Password Policy', 'pass', 'Password policy is configured');
1461
+ }
1462
+ }
1463
+ else {
1464
+ addResult('Email & Password', 'Enabled', 'warning', 'Email and password authentication is disabled', 'Enable emailAndPassword in your config if you need email/password auth', 'info');
1465
+ }
1466
+ // 5. Security Settings
1467
+ const advanced = authConfig.advanced || {};
1468
+ const cookieAttrs = advanced.defaultCookieAttributes || {};
1469
+ if (process.env.NODE_ENV === 'production') {
1470
+ if (cookieAttrs.secure !== true) {
1471
+ addResult('Security', 'Cookie Security', 'fail', 'Cookie secure flag is not set to true in production', 'Set secure: true in defaultCookieAttributes for production', 'error');
1472
+ }
1473
+ else {
1474
+ addResult('Security', 'Cookie Security', 'pass', 'Cookie secure flag is enabled');
1475
+ }
1476
+ if (cookieAttrs.sameSite === 'none' && !cookieAttrs.secure) {
1477
+ addResult('Security', 'Cookie SameSite', 'fail', 'sameSite: "none" requires secure: true', 'Set secure: true when using sameSite: "none"', 'error');
1478
+ }
1479
+ }
1480
+ else {
1481
+ if (cookieAttrs.secure === false) {
1482
+ addResult('Security', 'Cookie Security', 'warning', 'Cookie secure flag is false (acceptable for development)', 'Ensure secure: true in production', 'warning');
1483
+ }
1484
+ }
1485
+ if (cookieAttrs.httpOnly !== false) {
1486
+ addResult('Security', 'Cookie HttpOnly', 'pass', 'HttpOnly flag is enabled (recommended)');
1487
+ }
1488
+ else {
1489
+ addResult('Security', 'Cookie HttpOnly', 'warning', 'HttpOnly flag is disabled', 'Enable httpOnly: true for better security', 'warning');
1490
+ }
1491
+ // 6. Trusted Origins
1492
+ const trustedOriginsRaw = authConfig.trustedOrigins || [];
1493
+ const trustedOrigins = Array.isArray(trustedOriginsRaw) ? trustedOriginsRaw : [];
1494
+ if (trustedOrigins.length === 0) {
1495
+ addResult('Security', 'Trusted Origins', 'warning', 'No trusted origins configured', 'Configure trustedOrigins to restrict CORS to specific domains', 'warning');
1496
+ }
1497
+ else {
1498
+ const invalidOrigins = trustedOrigins.filter((origin) => {
1499
+ try {
1500
+ new URL(origin);
1501
+ return false;
1502
+ }
1503
+ catch {
1504
+ return true;
1505
+ }
1506
+ });
1507
+ if (invalidOrigins.length > 0) {
1508
+ addResult('Security', 'Trusted Origins', 'fail', `Invalid trusted origin(s): ${invalidOrigins.join(', ')}`, 'Ensure all trusted origins are valid URLs', 'error');
1509
+ }
1510
+ else {
1511
+ addResult('Security', 'Trusted Origins', 'pass', `${trustedOrigins.length} trusted origin(s) configured`);
1512
+ }
1513
+ }
1514
+ // 7. Environment Variables
1515
+ const requiredEnvVars = ['BETTER_AUTH_SECRET', 'AUTH_SECRET'];
1516
+ const missingEnvVars = requiredEnvVars.filter((varName) => !process.env[varName]);
1517
+ if (missingEnvVars.length > 0) {
1518
+ addResult('Environment', 'Required Variables', 'fail', `Missing required environment variables: ${missingEnvVars.join(', ')}`, 'Set the required environment variables in your .env file', 'error');
1519
+ }
1520
+ else {
1521
+ addResult('Environment', 'Required Variables', 'pass', 'All required environment variables are set');
1522
+ }
1523
+ // Summary
1524
+ const errors = results.filter((r) => r.severity === 'error').length;
1525
+ const warnings = results.filter((r) => r.severity === 'warning').length;
1526
+ const passes = results.filter((r) => r.status === 'pass').length;
1527
+ const infos = results.filter((r) => r.severity === 'info').length;
1528
+ res.json({
1529
+ success: errors === 0,
1530
+ summary: {
1531
+ total: results.length,
1532
+ passes,
1533
+ errors,
1534
+ warnings,
1535
+ infos,
1536
+ },
1537
+ results,
1538
+ });
1539
+ }
1540
+ catch (error) {
1541
+ res.status(500).json({
1542
+ success: false,
1543
+ error: 'Failed to validate configuration',
1544
+ message: error instanceof Error ? error.message : 'Unknown error',
1545
+ });
1546
+ }
1547
+ });
1330
1548
  // Database Detection endpoint - Auto-detect database from installed packages
1331
1549
  router.get('/api/database/detect', async (_req, res) => {
1332
1550
  try {
@@ -3255,6 +3473,62 @@ export function createRoutes(authConfig, configPath, geoDbPath) {
3255
3473
  res.status(500).json({ error: 'Failed to seed sessions for user' });
3256
3474
  }
3257
3475
  });
3476
+ router.post('/api/users/:userId/seed-accounts', async (req, res) => {
3477
+ try {
3478
+ const { userId } = req.params;
3479
+ const { count = 1, providerId } = req.body;
3480
+ const adapter = await getAuthAdapterWithConfig();
3481
+ if (!adapter) {
3482
+ return res.status(500).json({ error: 'Auth adapter not available' });
3483
+ }
3484
+ // @ts-expect-error
3485
+ const user = await adapter.findOne({
3486
+ model: 'user',
3487
+ where: [{ field: 'id', value: userId }],
3488
+ });
3489
+ if (!user) {
3490
+ return res.status(404).json({ error: 'User not found' });
3491
+ }
3492
+ const results = [];
3493
+ for (let i = 0; i < count; i++) {
3494
+ try {
3495
+ if (typeof adapter.createAccount !== 'function') {
3496
+ throw new Error('createAccount method not available on adapter');
3497
+ }
3498
+ const account = await createMockAccount(adapter, userId, i + 1, providerId);
3499
+ if (!account) {
3500
+ throw new Error('Failed to create account');
3501
+ }
3502
+ results.push({
3503
+ success: true,
3504
+ account: {
3505
+ id: account.id,
3506
+ userId: account.userId,
3507
+ providerId: account.providerId || account.provider,
3508
+ provider: account.provider,
3509
+ accountId: account.accountId || account.providerAccountId,
3510
+ createdAt: account.createdAt,
3511
+ updatedAt: account.updatedAt,
3512
+ },
3513
+ });
3514
+ }
3515
+ catch (error) {
3516
+ results.push({
3517
+ success: false,
3518
+ error: error instanceof Error ? error.message : 'Unknown error',
3519
+ });
3520
+ }
3521
+ }
3522
+ res.json({
3523
+ success: true,
3524
+ message: `Seeded ${results.filter((r) => r.success).length} accounts for user`,
3525
+ results,
3526
+ });
3527
+ }
3528
+ catch (_error) {
3529
+ res.status(500).json({ error: 'Failed to seed accounts for user' });
3530
+ }
3531
+ });
3258
3532
  router.post('/api/seed/accounts', async (req, res) => {
3259
3533
  try {
3260
3534
  const { count = 1 } = req.body;
@@ -3840,6 +4114,141 @@ export function createRoutes(authConfig, configPath, geoDbPath) {
3840
4114
  res.status(500).json({ hasResult: false, error: 'Failed to check status' });
3841
4115
  }
3842
4116
  });
4117
+ router.post('/api/tools/jwt/decode', async (req, res) => {
4118
+ try {
4119
+ const { token, secret } = req.body || {};
4120
+ if (!token || typeof token !== 'string') {
4121
+ return res.status(400).json({ success: false, error: 'JWT token is required' });
4122
+ }
4123
+ const segments = token.split('.');
4124
+ if (segments.length < 2) {
4125
+ return res.status(400).json({ success: false, error: 'Token must have at least header and payload' });
4126
+ }
4127
+ let header = {};
4128
+ let payload = {};
4129
+ try {
4130
+ header = JSON.parse(base64UrlDecode(segments[0]));
4131
+ payload = JSON.parse(base64UrlDecode(segments[1]));
4132
+ }
4133
+ catch (_error) {
4134
+ return res.status(400).json({ success: false, error: 'Invalid token encoding' });
4135
+ }
4136
+ const signature = segments[2] || null;
4137
+ let verified = false;
4138
+ let usedSecret = null;
4139
+ if (signature && header.alg === 'HS256') {
4140
+ const secretToUse = typeof secret === 'string' && secret.trim().length > 0 ? secret : authConfig.secret;
4141
+ if (secretToUse) {
4142
+ const signingInput = `${segments[0]}.${segments[1]}`;
4143
+ const expected = createHmac('sha256', secretToUse).update(signingInput).digest('base64url');
4144
+ verified = expected === signature;
4145
+ usedSecret = secretToUse === authConfig.secret ? 'authConfig.secret' : 'custom';
4146
+ }
4147
+ }
4148
+ const now = Date.now();
4149
+ const issuedAtSeconds = typeof payload.iat === 'number' ? payload.iat : null;
4150
+ const expiresAtSeconds = typeof payload.exp === 'number' ? payload.exp : null;
4151
+ const issuedAtFormatted = issuedAtSeconds ? new Date(issuedAtSeconds * 1000).toISOString() : null;
4152
+ const expiresAtFormatted = expiresAtSeconds ? new Date(expiresAtSeconds * 1000).toISOString() : null;
4153
+ const issuedAgo = issuedAtSeconds && issuedAtFormatted
4154
+ ? `${formatRelativeDuration(now - issuedAtSeconds * 1000)} ago`
4155
+ : null;
4156
+ const expiresInMs = expiresAtSeconds ? expiresAtSeconds * 1000 - now : null;
4157
+ const expiresIn = expiresInMs !== null
4158
+ ? expiresInMs > 0
4159
+ ? `${formatRelativeDuration(expiresInMs)} remaining`
4160
+ : `${formatRelativeDuration(expiresInMs)} ago`
4161
+ : null;
4162
+ const expired = expiresInMs !== null ? expiresInMs <= 0 : false;
4163
+ const standardClaims = new Set([
4164
+ 'iss',
4165
+ 'sub',
4166
+ 'aud',
4167
+ 'exp',
4168
+ 'nbf',
4169
+ 'iat',
4170
+ 'jti',
4171
+ 'auth_time',
4172
+ ]);
4173
+ const customClaims = Object.fromEntries(Object.entries(payload).filter(([key]) => !standardClaims.has(key)));
4174
+ res.json({
4175
+ success: true,
4176
+ header,
4177
+ payload,
4178
+ signature,
4179
+ verified,
4180
+ usedSecret,
4181
+ issuedAtFormatted,
4182
+ issuedAgo,
4183
+ expiresAtFormatted,
4184
+ expiresIn,
4185
+ expired,
4186
+ customClaims,
4187
+ });
4188
+ }
4189
+ catch (_error) {
4190
+ res.status(500).json({ success: false, error: 'Failed to decode JWT' });
4191
+ }
4192
+ });
4193
+ router.post('/api/tools/token-generator', async (req, res) => {
4194
+ try {
4195
+ const { type = 'api_key', subject, audience, expiresInMinutes = 15, customClaims, secretOverride, } = req.body || {};
4196
+ const safeType = typeof type === 'string' ? type : 'api_key';
4197
+ const expiresMinutes = Number.isFinite(Number(expiresInMinutes)) ? Number(expiresInMinutes) : 15;
4198
+ const boundedMinutes = Math.min(Math.max(expiresMinutes, 1), 1440);
4199
+ const expiresAt = new Date(Date.now() + boundedMinutes * 60 * 1000).toISOString();
4200
+ if (safeType === 'api_key') {
4201
+ const token = `ba_api_${randomBytes(24).toString('base64url')}`;
4202
+ return res.json({
4203
+ success: true,
4204
+ type: safeType,
4205
+ token,
4206
+ expiresAt,
4207
+ metadata: {
4208
+ subject: subject || null,
4209
+ },
4210
+ });
4211
+ }
4212
+ if (safeType === 'jwt') {
4213
+ const claims = customClaims && typeof customClaims === 'object' ? customClaims : {};
4214
+ const nowSeconds = Math.floor(Date.now() / 1000);
4215
+ const payload = {
4216
+ iss: authConfig.baseURL || 'better-auth-studio',
4217
+ aud: audience || authConfig.baseURL || 'better-auth-studio',
4218
+ sub: subject || 'test-user',
4219
+ iat: nowSeconds,
4220
+ exp: nowSeconds + boundedMinutes * 60,
4221
+ jti: `studio_${Date.now()}`,
4222
+ ...claims,
4223
+ };
4224
+ const header = { alg: 'HS256', typ: 'JWT' };
4225
+ const encodedHeader = base64UrlEncode(JSON.stringify(header));
4226
+ const encodedPayload = base64UrlEncode(JSON.stringify(payload));
4227
+ const secretToUse = typeof secretOverride === 'string' && secretOverride.trim().length > 0
4228
+ ? secretOverride
4229
+ : authConfig.secret || 'better-auth-secret';
4230
+ const signature = createHmac('sha256', secretToUse)
4231
+ .update(`${encodedHeader}.${encodedPayload}`)
4232
+ .digest('base64url');
4233
+ const token = `${encodedHeader}.${encodedPayload}.${signature}`;
4234
+ return res.json({
4235
+ success: true,
4236
+ type: safeType,
4237
+ token,
4238
+ expiresAt,
4239
+ metadata: {
4240
+ subject: payload.sub,
4241
+ audience: payload.aud,
4242
+ algorithm: header.alg,
4243
+ },
4244
+ });
4245
+ }
4246
+ res.status(400).json({ success: false, error: 'Unsupported token type' });
4247
+ }
4248
+ catch (_error) {
4249
+ res.status(500).json({ success: false, error: 'Failed to generate token' });
4250
+ }
4251
+ });
3843
4252
  router.post('/api/tools/export', async (req, res) => {
3844
4253
  try {
3845
4254
  const { tables, format, limit } = req.body;