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.
- package/dist/auth-adapter.d.ts +1 -1
- package/dist/auth-adapter.d.ts.map +1 -1
- package/dist/auth-adapter.js +32 -7
- package/dist/auth-adapter.js.map +1 -1
- package/dist/routes.d.ts.map +1 -1
- package/dist/routes.js +410 -1
- package/dist/routes.js.map +1 -1
- package/package.json +1 -1
- package/public/assets/main-CGz8JbCs.css +1 -0
- package/public/assets/main-QAbC5VL6.js +1006 -0
- package/public/index.html +2 -2
- package/public/assets/main-DQPuQxon.css +0 -1
- package/public/assets/main-DjyI7ZTb.js +0 -688
package/dist/auth-adapter.d.ts
CHANGED
|
@@ -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,
|
|
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"}
|
package/dist/auth-adapter.js
CHANGED
|
@@ -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:
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
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
|
};
|
package/dist/auth-adapter.js.map
CHANGED
|
@@ -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":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAElC,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAwBjD,MAAM,aAAa,GAAQ,IAAI,CAAC;AAChC,IAAI,WAAW,GAAuB,IAAI,CAAC;AAC3C,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,UAAmB;IACtD,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,kBAAkB,EAAE,CAAC;QAC5E,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,UAAe,CAAC;QACpB,IAAI,CAAC;YACH,IAAI,UAAU,GAAG,cAAc,CAAC;YAChC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACpC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC;YACnD,CAAC;YAED,MAAM,YAAY,GAAG,UAAU,CAAC,UAAU,EAAE;gBAC1C,KAAK,EAAE,KAAK;gBACZ,OAAO,EAAE,IAAI;gBACb,WAAW,EAAE,IAAI;gBACjB,cAAc,EAAE,IAAI;aACrB,CAAC,CAAC;YACH,UAAU,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACrD,CAAC;QAAC,OAAO,MAAW,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,OAAO,CAAC;QAEnD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,OAAO,CAAC;QACZ,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC;YACpC,OAAO,GAAG,OAAO,EAAE,OAAO,CAAC;QAC7B,CAAC;QAAC,OAAO,MAAW,EAAE,CAAC;YACrB,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QACzB,CAAC;QAED,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QACd,CAAC;QAED,WAAW,GAAG;YACZ,UAAU,EAAE,KAAK,EAAE,IAAS,EAAE,EAAE;gBAC9B,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC;oBAChC,KAAK,EAAE,MAAM;oBACb,IAAI,EAAE;wBACJ,SAAS,EAAE,IAAI,IAAI,EAAE;wBACrB,SAAS,EAAE,IAAI,IAAI,EAAE;wBACrB,aAAa,EAAE,KAAK;wBACpB,IAAI,EAAE,IAAI,CAAC,IAAI;wBACf,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE;wBAChC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI;wBACvB,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,mDAAmD,IAAI,CAAC,KAAK,EAAE;qBACrF;iBACF,CAAC,CAAC;gBACH,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAClB,IAAI,CAAC;wBACH,MAAM,OAAO,CAAC,MAAM,CAAC;4BACnB,KAAK,EAAE,SAAS;4BAChB,IAAI,EAAE;gCACJ,MAAM,EAAE,IAAI,CAAC,EAAE;gCACf,UAAU,EAAE,YAAY;gCACxB,SAAS,EAAE,IAAI,CAAC,EAAE;gCAClB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gCACvB,SAAS,EAAE,IAAI,IAAI,EAAE;gCACrB,SAAS,EAAE,IAAI,IAAI,EAAE;6BACtB;yBACF,CAAC,CAAC;oBACL,CAAC;oBAAC,OAAO,aAAa,EAAE,CAAC,CAAC,CAAC;gBAC7B,CAAC;gBAED,OAAO,IAAI,CAAC;YACd,CAAC;YACD,aAAa,EAAE,KAAK,EAAE,IAAS,EAAE,EAAE;gBACjC,OAAO,MAAM,OAAO,CAAC,MAAM,CAAC;oBAC1B,KAAK,EAAE,SAAS;oBAChB,IAAI,EAAE;wBACJ,SAAS,EAAE,IAAI,IAAI,EAAE;wBACrB,SAAS,EAAE,IAAI,IAAI,EAAE;wBACrB,GAAG,IAAI;qBACR;iBACF,CAAC,CAAC;YACL,CAAC;YACD,aAAa,EAAE,KAAK,EAAE,IAAS,EAAE,EAAE;gBACjC,OAAO,MAAM,OAAO,CAAC,MAAM,CAAC;oBAC1B,KAAK,EAAE,SAAS;oBAChB,IAAI,EAAE;wBACJ,SAAS,EAAE,IAAI,IAAI,EAAE;wBACrB,SAAS,EAAE,IAAI,IAAI,EAAE;wBACrB,GAAG,IAAI;qBACR;iBACF,CAAC,CAAC;YACL,CAAC;YACD,kBAAkB,EAAE,KAAK,EAAE,IAAS,EAAE,EAAE;gBACtC,OAAO,MAAM,OAAO,CAAC,MAAM,CAAC;oBAC1B,KAAK,EAAE,cAAc;oBACrB,IAAI,EAAE;wBACJ,SAAS,EAAE,IAAI,IAAI,EAAE;wBACrB,SAAS,EAAE,IAAI,IAAI,EAAE;wBACrB,GAAG,IAAI;qBACR;iBACF,CAAC,CAAC;YACL,CAAC;YACD,kBAAkB,EAAE,KAAK,EAAE,IAAS,EAAE,EAAE;gBACtC,OAAO,MAAM,OAAO,CAAC,MAAM,CAAC;oBAC1B,KAAK,EAAE,cAAc;oBACrB,IAAI,EAAE;wBACJ,SAAS,EAAE,IAAI,IAAI,EAAE;wBACrB,SAAS,EAAE,IAAI,IAAI,EAAE;wBACrB,GAAG,IAAI;qBACR;iBACF,CAAC,CAAC;YACL,CAAC;YACD,QAAQ,EAAE,KAAK,IAAI,EAAE;gBACnB,IAAI,CAAC;oBACH,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;wBAC3C,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;wBACxD,OAAO,KAAK,IAAI,EAAE,CAAC;oBACrB,CAAC;oBACD,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;wBAC3C,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAC;wBACvC,OAAO,KAAK,IAAI,EAAE,CAAC;oBACrB,CAAC;oBACD,OAAO,EAAE,CAAC;gBACZ,CAAC;gBAAC,OAAO,MAAM,EAAE,CAAC;oBAChB,OAAO,EAAE,CAAC;gBACZ,CAAC;YACH,CAAC;YACD,WAAW,EAAE,KAAK,IAAI,EAAE;gBACtB,IAAI,CAAC;oBACH,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;wBAC3C,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;wBAC9D,OAAO,QAAQ,IAAI,EAAE,CAAC;oBACxB,CAAC;oBACD,IAAI,OAAO,OAAO,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;wBAC9C,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC;wBAC7C,OAAO,QAAQ,IAAI,EAAE,CAAC;oBACxB,CAAC;oBACD,OAAO,EAAE,CAAC;gBACZ,CAAC;gBAAC,OAAO,MAAM,EAAE,CAAC;oBAChB,OAAO,EAAE,CAAC;gBACZ,CAAC;YACH,CAAC;YACD,QAAQ,EAAE,KAAK,EAAE,OAKhB,EAAE,EAAE;gBACH,IAAI,CAAC;oBACH,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;wBAC3C,OAAO,MAAM,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;oBACzC,CAAC;oBACD,OAAO,EAAE,CAAC;gBACZ,CAAC;gBAAC,OAAO,MAAM,EAAE,CAAC;oBAChB,OAAO,EAAE,CAAC;gBACZ,CAAC;YACH,CAAC;SACF,CAAC;QAEF,OAAO,EAAE,GAAG,OAAO,EAAE,GAAG,WAAW,EAAE,CAAC;IACxC,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,kBAAkB;IAG/B,IAAI,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC/B,MAAM,QAAQ,GAAG,EAAE,CAAC;IACpB,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,OAAO,UAAU,IAAI,KAAK,GAAG,QAAQ,EAAE,CAAC;QACtC,KAAK,MAAM,UAAU,IAAI,mBAAmB,EAAE,CAAC;YAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;YAEhD,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC3B,OAAO,UAAU,CAAC;YACpB,CAAC;QACH,CAAC;QAED,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;QACtC,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;YAC7B,MAAM;QACR,CAAC;QACD,UAAU,GAAG,SAAS,CAAC;QACvB,KAAK,EAAE,CAAC;IACV,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAAoB,EAAE,KAAa,EAAE,IAAa;IACrF,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEhE,MAAM,QAAQ,GAAQ;QACpB,KAAK,EAAE,OAAO,YAAY,cAAc;QACxC,IAAI,EAAE,QAAQ,KAAK,EAAE;QACrB,aAAa,EAAE,IAAI;QACnB,KAAK,EAAE,uDAAuD,KAAK,EAAE;QACrE,SAAS,EAAE,IAAI,IAAI,EAAE;QACrB,SAAS,EAAE,IAAI,IAAI,EAAE;KACtB,CAAC;IACF,IAAI,IAAI,EAAE,CAAC;QACT,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IACvB,CAAC;IACD,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,MAAM,OAAO,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;AAC7C,CAAC;AAED,uDAAuD;AACvD,MAAM,gBAAgB,GAAG;IACvB,gBAAgB;IAChB;QACE,OAAO,EAAE,eAAe;QACxB,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE;YACN,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE;YAClB,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;YACpB,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;YACpB,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;SACrB;KACF;IACD,iBAAiB;IACjB;QACE,OAAO,EAAE,gBAAgB;QACzB,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,SAAS;QACjB,MAAM,EAAE;YACN,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;YACpB,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;YACpB,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;YACpB,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;SACrB;KACF;IACD,UAAU;IACV;QACE,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE;YACN,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;YACpB,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;YACpB,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;YACpB,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;SACvB;KACF;IACD,QAAQ;IACR;QACE,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,OAAO;QACf,MAAM,EAAE;YACN,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;YACtB,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;YACtB,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;YACtB,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;SACvB;KACF;IACD,YAAY;IACZ;QACE,OAAO,EAAE,WAAW;QACpB,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,KAAK;QACb,MAAM,EAAE;YACN,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;YACtB,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;YACtB,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;YACtB,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;SACvB;KACF;IACD,SAAS;IACT;QACE,OAAO,EAAE,QAAQ;QACjB,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE;YACN,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;YACpB,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;YACpB,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;YACtB,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;SACvB;KACF;IACD,SAAS;IACT;QACE,OAAO,EAAE,QAAQ;QACjB,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,eAAe;QACvB,MAAM,EAAE;YACN,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;YACpB,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;YACpB,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;YACpB,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;SACrB;KACF;IACD,SAAS;IACT;QACE,OAAO,EAAE,QAAQ;QACjB,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE;YACN,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;YACtB,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;YACtB,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;YACtB,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;SACvB;KACF;IACD,QAAQ;IACR;QACE,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,aAAa;QACrB,MAAM,EAAE;YACN,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;YACtB,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;YACtB,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;YACtB,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;SACvB;KACF;IACD,cAAc;IACd;QACE,OAAO,EAAE,aAAa;QACtB,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,OAAO;QACf,MAAM,EAAE;YACN,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;YACtB,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;YACtB,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;YACtB,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;SACvB;KACF;CACF,CAAC;AAEF,SAAS,gBAAgB;IACvB,kDAAkD;IAClD,MAAM,YAAY,GAAG;QACnB,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,eAAe,EAAE,EAAE,KAAK;QAC/C,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,gBAAgB,EAAE,EAAE,KAAK;QACjD,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,eAAe,EAAE,EAAE,KAAK;QAC/C,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,eAAe,EAAE,EAAE,KAAK;QAC/C,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,gBAAgB,EAAE,EAAE,UAAU;QACtD,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,gBAAgB,EAAE,EAAE,UAAU;QACtD,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,gBAAgB,EAAE,EAAE,SAAS;QACrD,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,iBAAiB,EAAE,EAAE,QAAQ;QACtD,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,iBAAiB,EAAE,EAAE,QAAQ;QACtD,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,eAAe,EAAE,EAAE,YAAY;QACtD,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,gBAAgB,EAAE,EAAE,YAAY;QACxD,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,iBAAiB,EAAE,EAAE,SAAS;QACvD,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,iBAAiB,EAAE,EAAE,SAAS;QACvD,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,iBAAiB,EAAE,EAAE,QAAQ;QACtD,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,iBAAiB,EAAE,EAAE,QAAQ;KACvD,CAAC;IAEF,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5E,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;IACpD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;IACnD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IAExD,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,WAAW,IAAI,UAAU,IAAI,WAAW,EAAE,CAAC;AAClF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,OAAoB,EAAE,MAAc,EAAE,KAAa;IACzF,+BAA+B;IAC/B,MAAM,SAAS,GAAG,gBAAgB,EAAE,CAAC;IAErC,MAAM,WAAW,GAAG;QAClB,MAAM,EAAE,MAAM;QACd,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,kBAAkB;QAC7E,KAAK,EAAE,iBAAiB,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;QAC5F,SAAS,EAAE,SAAS;QACpB,SAAS,EAAE,uHAAuH;QAClI,SAAS,EAAE,IAAI,IAAI,EAAE;QACrB,SAAS,EAAE,IAAI,IAAI,EAAE;KACtB,CAAC;IAEF,IAAI,CAAC,OAAO,EAAE,aAAa,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,MAAM,OAAO,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,OAAoB,EAAE,MAAc,EAAE,KAAa,EAAE,UAAmB;IAC9G,iCAAiC;IACjC,MAAM,SAAS,GAAG;QAChB,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,UAAU;QACV,SAAS;QACT,UAAU;QACV,OAAO;QACP,WAAW;QACX,QAAQ;QACR,WAAW;QACX,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,MAAM;KACP,CAAC;IAEF,6CAA6C;IAC7C,MAAM,gBAAgB,GAAG,UAAU,IAAI,UAAU,KAAK,QAAQ;QAC5D,CAAC,CAAC,UAAU;QACZ,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IAE5D,MAAM,WAAW,GAAG;QAClB,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE,gBAAgB;QAC1B,UAAU,EAAE,gBAAgB;QAC5B,SAAS,EAAE,GAAG,gBAAgB,IAAI,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE;QACvD,aAAa,EAAE,iBAAiB,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE;QACrD,YAAY,EAAE,gBAAgB,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE;QACnD,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI;QAChD,UAAU,EAAE,QAAQ;QACpB,KAAK,EAAE,WAAW;QAClB,QAAQ,EAAE,YAAY,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE;QAC3C,aAAa,EAAE,iBAAiB,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE;QACrD,SAAS,EAAE,IAAI,IAAI,EAAE;QACrB,SAAS,EAAE,IAAI,IAAI,EAAE;KACtB,CAAC;IAEF,IAAI,CAAC,OAAO,EAAE,aAAa,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,MAAM,OAAO,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,OAAoB,EAAE,OAAe,EAAE,KAAa;IAC/F,MAAM,gBAAgB,GAAG;QACvB,UAAU,EAAE,OAAO,KAAK,cAAc;QACtC,KAAK,EAAE,sBAAsB,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE;QAClD,OAAO,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QACnD,SAAS,EAAE,IAAI,IAAI,EAAE;QACrB,SAAS,EAAE,IAAI,IAAI,EAAE;KACtB,CAAC;IAEF,OAAO,MAAM,OAAO,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;AAC5D,CAAC"}
|
package/dist/routes.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"
|
|
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;
|