@payez/next-mvp 4.0.41 → 4.0.43
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/better-auth.d.ts +19 -3
- package/dist/auth/better-auth.js +11 -5
- package/dist/server/auth.d.ts +1 -1
- package/package.json +1 -1
- package/src/auth/better-auth.ts +30 -5
|
@@ -22,13 +22,29 @@ export interface BetterAuthSocialProvider {
|
|
|
22
22
|
* Build Better Auth social providers from IDP config.
|
|
23
23
|
*/
|
|
24
24
|
export declare function buildBetterAuthProviders(config: IDPClientConfig): Record<string, BetterAuthSocialProvider>;
|
|
25
|
+
/**
|
|
26
|
+
* Optional extra plugins for createBetterAuthInstance.
|
|
27
|
+
* Use to add credentials/custom signin endpoints from the host app.
|
|
28
|
+
*/
|
|
29
|
+
export type BetterAuthExtraPlugins = any[];
|
|
30
|
+
/**
|
|
31
|
+
* Optional overrides for createBetterAuthInstance.
|
|
32
|
+
*/
|
|
33
|
+
export interface BetterAuthInstanceOptions {
|
|
34
|
+
/** Path suffix for the BA mount (default: '/api/auth'). Use '/api/ba-auth' for migration scenarios. */
|
|
35
|
+
basePath?: string;
|
|
36
|
+
}
|
|
25
37
|
/**
|
|
26
38
|
* Create Better Auth instance from IDP config.
|
|
27
39
|
*
|
|
28
40
|
* No database — runs in stateless mode with JWE cookie cache.
|
|
29
41
|
* Call after getIDPClientConfig() resolves.
|
|
42
|
+
*
|
|
43
|
+
* @param idpConfig IDP client config (from getIDPClientConfig)
|
|
44
|
+
* @param extraPlugins Optional plugins to add (e.g., credentials plugin from host app)
|
|
45
|
+
* @param options Optional overrides (e.g., basePath for migration scenarios)
|
|
30
46
|
*/
|
|
31
|
-
export declare function createBetterAuthInstance(idpConfig: IDPClientConfig): import("better-auth").Auth<{
|
|
47
|
+
export declare function createBetterAuthInstance(idpConfig: IDPClientConfig, extraPlugins?: BetterAuthExtraPlugins, options?: BetterAuthInstanceOptions): import("better-auth").Auth<{
|
|
32
48
|
baseURL: string;
|
|
33
49
|
secret: string;
|
|
34
50
|
socialProviders: Record<string, BetterAuthSocialProvider>;
|
|
@@ -53,7 +69,7 @@ export declare function createBetterAuthInstance(idpConfig: IDPClientConfig): im
|
|
|
53
69
|
};
|
|
54
70
|
};
|
|
55
71
|
};
|
|
56
|
-
plugins: [{
|
|
72
|
+
plugins: [...any[], {
|
|
57
73
|
id: "next-cookies";
|
|
58
74
|
hooks: {
|
|
59
75
|
before: {
|
|
@@ -77,7 +93,7 @@ export declare function isBetterAuthEnabled(): boolean;
|
|
|
77
93
|
*/
|
|
78
94
|
declare let cachedInstance: any;
|
|
79
95
|
export { cachedInstance as __betterAuthInstance };
|
|
80
|
-
export declare function getBetterAuthInstance(): Promise<any>;
|
|
96
|
+
export declare function getBetterAuthInstance(extraPlugins?: BetterAuthExtraPlugins): Promise<any>;
|
|
81
97
|
/**
|
|
82
98
|
* Get flag-gated auth handler for Next.js route.
|
|
83
99
|
*
|
package/dist/auth/better-auth.js
CHANGED
|
@@ -80,15 +80,20 @@ function buildBetterAuthProviders(config) {
|
|
|
80
80
|
*
|
|
81
81
|
* No database — runs in stateless mode with JWE cookie cache.
|
|
82
82
|
* Call after getIDPClientConfig() resolves.
|
|
83
|
+
*
|
|
84
|
+
* @param idpConfig IDP client config (from getIDPClientConfig)
|
|
85
|
+
* @param extraPlugins Optional plugins to add (e.g., credentials plugin from host app)
|
|
86
|
+
* @param options Optional overrides (e.g., basePath for migration scenarios)
|
|
83
87
|
*/
|
|
84
|
-
function createBetterAuthInstance(idpConfig) {
|
|
88
|
+
function createBetterAuthInstance(idpConfig, extraPlugins = [], options = {}) {
|
|
85
89
|
const appSlug = idpConfig.clientSlug || (0, app_slug_1.getAppSlug)();
|
|
90
|
+
const basePath = options.basePath || '/api/auth';
|
|
86
91
|
// Resolve base URL: BETTER_AUTH_URL env > IDP config > localhost fallback
|
|
87
|
-
//
|
|
92
|
+
// basePath defaults to /api/auth but can be overridden via options for migration scenarios
|
|
88
93
|
const rawBaseURL = process.env.BETTER_AUTH_URL
|
|
89
94
|
|| idpConfig.baseClientUrl
|
|
90
95
|
|| `http://localhost:${process.env.PORT || '3000'}`;
|
|
91
|
-
const baseURL = rawBaseURL.replace(/\/+$/, '') +
|
|
96
|
+
const baseURL = rawBaseURL.replace(/\/+$/, '') + basePath;
|
|
92
97
|
return (0, better_auth_1.betterAuth)({
|
|
93
98
|
baseURL,
|
|
94
99
|
secret: idpConfig.nextAuthSecret,
|
|
@@ -148,6 +153,7 @@ function createBetterAuthInstance(idpConfig) {
|
|
|
148
153
|
},
|
|
149
154
|
},
|
|
150
155
|
plugins: [
|
|
156
|
+
...extraPlugins,
|
|
151
157
|
(0, next_js_1.nextCookies)(),
|
|
152
158
|
],
|
|
153
159
|
});
|
|
@@ -167,12 +173,12 @@ let cachedInstance = null;
|
|
|
167
173
|
exports.__betterAuthInstance = cachedInstance;
|
|
168
174
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
169
175
|
let initPromise = null;
|
|
170
|
-
async function getBetterAuthInstance() {
|
|
176
|
+
async function getBetterAuthInstance(extraPlugins = []) {
|
|
171
177
|
if (cachedInstance)
|
|
172
178
|
return cachedInstance;
|
|
173
179
|
if (!initPromise) {
|
|
174
180
|
initPromise = (0, idp_client_config_1.getIDPClientConfig)(true).then(config => {
|
|
175
|
-
const instance = createBetterAuthInstance(config);
|
|
181
|
+
const instance = createBetterAuthInstance(config, extraPlugins);
|
|
176
182
|
exports.__betterAuthInstance = cachedInstance = instance;
|
|
177
183
|
console.log('[BETTER_AUTH] Instance created for', config.clientSlug || config.clientId);
|
|
178
184
|
return instance;
|
package/dist/server/auth.d.ts
CHANGED
package/package.json
CHANGED
package/src/auth/better-auth.ts
CHANGED
|
@@ -48,21 +48,45 @@ export function buildBetterAuthProviders(
|
|
|
48
48
|
return providers;
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
+
/**
|
|
52
|
+
* Optional extra plugins for createBetterAuthInstance.
|
|
53
|
+
* Use to add credentials/custom signin endpoints from the host app.
|
|
54
|
+
*/
|
|
55
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
56
|
+
export type BetterAuthExtraPlugins = any[];
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Optional overrides for createBetterAuthInstance.
|
|
60
|
+
*/
|
|
61
|
+
export interface BetterAuthInstanceOptions {
|
|
62
|
+
/** Path suffix for the BA mount (default: '/api/auth'). Use '/api/ba-auth' for migration scenarios. */
|
|
63
|
+
basePath?: string;
|
|
64
|
+
}
|
|
65
|
+
|
|
51
66
|
/**
|
|
52
67
|
* Create Better Auth instance from IDP config.
|
|
53
68
|
*
|
|
54
69
|
* No database — runs in stateless mode with JWE cookie cache.
|
|
55
70
|
* Call after getIDPClientConfig() resolves.
|
|
71
|
+
*
|
|
72
|
+
* @param idpConfig IDP client config (from getIDPClientConfig)
|
|
73
|
+
* @param extraPlugins Optional plugins to add (e.g., credentials plugin from host app)
|
|
74
|
+
* @param options Optional overrides (e.g., basePath for migration scenarios)
|
|
56
75
|
*/
|
|
57
|
-
export function createBetterAuthInstance(
|
|
76
|
+
export function createBetterAuthInstance(
|
|
77
|
+
idpConfig: IDPClientConfig,
|
|
78
|
+
extraPlugins: BetterAuthExtraPlugins = [],
|
|
79
|
+
options: BetterAuthInstanceOptions = {}
|
|
80
|
+
) {
|
|
58
81
|
const appSlug = idpConfig.clientSlug || getAppSlug();
|
|
82
|
+
const basePath = options.basePath || '/api/auth';
|
|
59
83
|
|
|
60
84
|
// Resolve base URL: BETTER_AUTH_URL env > IDP config > localhost fallback
|
|
61
|
-
//
|
|
85
|
+
// basePath defaults to /api/auth but can be overridden via options for migration scenarios
|
|
62
86
|
const rawBaseURL = process.env.BETTER_AUTH_URL
|
|
63
87
|
|| idpConfig.baseClientUrl
|
|
64
88
|
|| `http://localhost:${process.env.PORT || '3000'}`;
|
|
65
|
-
const baseURL = rawBaseURL.replace(/\/+$/, '') +
|
|
89
|
+
const baseURL = rawBaseURL.replace(/\/+$/, '') + basePath;
|
|
66
90
|
|
|
67
91
|
return betterAuth({
|
|
68
92
|
baseURL,
|
|
@@ -123,6 +147,7 @@ export function createBetterAuthInstance(idpConfig: IDPClientConfig) {
|
|
|
123
147
|
},
|
|
124
148
|
|
|
125
149
|
plugins: [
|
|
150
|
+
...extraPlugins,
|
|
126
151
|
nextCookies(),
|
|
127
152
|
],
|
|
128
153
|
});
|
|
@@ -148,12 +173,12 @@ let initPromise: Promise<any> | null = null;
|
|
|
148
173
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
149
174
|
export { cachedInstance as __betterAuthInstance };
|
|
150
175
|
|
|
151
|
-
export async function getBetterAuthInstance() {
|
|
176
|
+
export async function getBetterAuthInstance(extraPlugins: BetterAuthExtraPlugins = []) {
|
|
152
177
|
if (cachedInstance) return cachedInstance;
|
|
153
178
|
|
|
154
179
|
if (!initPromise) {
|
|
155
180
|
initPromise = getIDPClientConfig(true).then(config => {
|
|
156
|
-
const instance = createBetterAuthInstance(config);
|
|
181
|
+
const instance = createBetterAuthInstance(config, extraPlugins);
|
|
157
182
|
cachedInstance = instance;
|
|
158
183
|
console.log('[BETTER_AUTH] Instance created for', config.clientSlug || config.clientId);
|
|
159
184
|
return instance;
|