@beamarco/auth-sdk 0.1.1 → 0.1.2
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/client.d.ts.map +1 -1
- package/dist/client.js +3 -0
- package/dist/components/SignIn.js +1 -1
- package/dist/components/SignUp.d.ts.map +1 -1
- package/dist/components/SignUp.js +1 -1
- package/dist/context.d.ts +6 -2
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +55 -9
- package/dist/resolve-config.d.ts +6 -0
- package/dist/resolve-config.d.ts.map +1 -0
- package/dist/resolve-config.js +71 -0
- package/dist/types.d.ts +7 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +2 -0
- package/package.json +1 -1
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAG5F,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;;GAGG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,SAAS,CAAQ;gBAEb,OAAO,EAAE,uBAAuB;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAG5F,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;;GAGG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,SAAS,CAAQ;gBAEb,OAAO,EAAE,uBAAuB;YAS9B,OAAO;IAoCrB;;OAEG;IACG,KAAK,CAAC,WAAW,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAWzD;;OAEG;IACG,QAAQ,CAAC,WAAW,EAAE,mBAAmB,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAW9E;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAI7B;;OAEG;IACG,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQtD;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAwBxC;;OAEG;IACG,eAAe,CAAC,UAAU,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAWlE;;OAEG;IACG,kBAAkB,CAAC,UAAU,EAAE,gBAAgB,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAYpF;;OAEG;IACG,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ1D;;OAEG;IACG,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAMnE"}
|
package/dist/client.js
CHANGED
|
@@ -5,6 +5,9 @@ import { AuthError } from './types';
|
|
|
5
5
|
*/
|
|
6
6
|
export class BeamarAuthClient {
|
|
7
7
|
constructor(options) {
|
|
8
|
+
if (!options?.apiUrl) {
|
|
9
|
+
throw new Error('BeamarAuthClient: apiUrl is required. Check VITE_BEAMAR_AUTH_KEY and auth-service /auth/public-config.');
|
|
10
|
+
}
|
|
8
11
|
this.apiUrl = options.apiUrl.replace(/\/$/, '');
|
|
9
12
|
this.appName = options.appName;
|
|
10
13
|
this.parentUrl = options.parentUrl ?? (typeof window !== 'undefined' ? window.location.origin : '');
|
|
@@ -146,5 +146,5 @@ function GoogleSignInButton({ onSuccess, disabled, clientId, }) {
|
|
|
146
146
|
if (res.credential && res.clientId) {
|
|
147
147
|
onSuccess({ credential: res.credential, clientId: res.clientId });
|
|
148
148
|
}
|
|
149
|
-
}, onError: () => { }, useOneTap: false, type: "standard", theme: "outline", size: "large", text: "signin_with", shape: "rectangular" }));
|
|
149
|
+
}, onError: () => { }, useOneTap: false, type: "standard", theme: "outline", size: "large", text: "signin_with", shape: "rectangular", logo_alignment: "left", width: "320" }));
|
|
150
150
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SignUp.d.ts","sourceRoot":"","sources":["../../src/components/SignUp.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAEvC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAEnD,QAAA,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwDlB,CAAA;AAED,MAAM,WAAW,WAAW;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC,OAAO,aAAa,CAAC,CAAA;IACtC,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,KAAK,CAAC,SAAS,CAAA;CACzD;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,CAAC,WAAW,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3D,gBAAgB,EAAE,CAAC,UAAU,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACzF,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,SAAS,EAAE,OAAO,CAAA;CACnB;
|
|
1
|
+
{"version":3,"file":"SignUp.d.ts","sourceRoot":"","sources":["../../src/components/SignUp.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAEvC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAEnD,QAAA,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwDlB,CAAA;AAED,MAAM,WAAW,WAAW;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC,OAAO,aAAa,CAAC,CAAA;IACtC,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,KAAK,CAAC,SAAS,CAAA;CACzD;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,CAAC,WAAW,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3D,gBAAgB,EAAE,CAAC,UAAU,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACzF,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,SAAS,EAAE,OAAO,CAAA;CACnB;AA4CD,wBAAgB,MAAM,CAAC,EACrB,cAAoB,EACpB,MAAM,EAAE,YAAiB,EACzB,UAAiB,EACjB,SAAsB,EACtB,SAAS,EACT,QAAQ,GACT,EAAE,WAAW,2CAgHb"}
|
|
@@ -72,7 +72,7 @@ function GoogleSignUpButton({ onSuccess, disabled, clientId, }) {
|
|
|
72
72
|
if (res.credential && res.clientId) {
|
|
73
73
|
onSuccess({ credential: res.credential, clientId: res.clientId });
|
|
74
74
|
}
|
|
75
|
-
}, onError: () => { }, type: "standard", theme: "outline", size: "large", text: "signup_with", shape: "rectangular" }));
|
|
75
|
+
}, onError: () => { }, type: "standard", theme: "outline", size: "large", text: "signup_with", shape: "rectangular", logo_alignment: "left", width: "320" }));
|
|
76
76
|
}
|
|
77
77
|
export function SignUp({ afterSignUpUrl = '/', styles: customStyles = {}, showGoogle = true, signInUrl = '/sign-in', onSuccess, children, }) {
|
|
78
78
|
const { signUp, signUpWithGoogle, googleClientId } = useBeamarAuth();
|
package/dist/context.d.ts
CHANGED
|
@@ -18,12 +18,16 @@ export interface AuthContextValue {
|
|
|
18
18
|
}
|
|
19
19
|
declare const AuthContext: React.Context<AuthContextValue | null>;
|
|
20
20
|
export interface BeamarAuthProviderProps {
|
|
21
|
-
config
|
|
21
|
+
/** Full config (advanced) */
|
|
22
|
+
config?: BeamarAuthConfig;
|
|
23
|
+
/** Publishable key - Clerk-style, single env var (e.g. beamar_live_developers-portal) */
|
|
24
|
+
publishableKey?: string;
|
|
22
25
|
children: React.ReactNode;
|
|
23
26
|
}
|
|
24
27
|
/**
|
|
25
28
|
* BeamarAuthProvider - wrap your app to enable auth
|
|
29
|
+
* Use publishableKey for Clerk-style single config, or config for full control
|
|
26
30
|
*/
|
|
27
|
-
export declare function BeamarAuthProvider({ config, children }: BeamarAuthProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
31
|
+
export declare function BeamarAuthProvider({ config: configProp, publishableKey, children }: BeamarAuthProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
28
32
|
export { AuthContext };
|
|
29
33
|
//# sourceMappingURL=context.d.ts.map
|
package/dist/context.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0D,MAAM,OAAO,CAAA;AAE9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0D,MAAM,OAAO,CAAA;AAE9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAE3C,OAAO,KAAK,EAAE,IAAI,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE9G,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,OAAO,CAAA;IACjB,UAAU,EAAE,OAAO,CAAA;IACnB,IAAI,EAAE,IAAI,GAAG,IAAI,CAAA;IACjB,MAAM,EAAE,CAAC,WAAW,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACxD,MAAM,EAAE,CAAC,WAAW,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3D,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5B,gBAAgB,EAAE,CAAC,UAAU,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACjE,gBAAgB,EAAE,CAAC,UAAU,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACjE,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IACtC,cAAc,EAAE,MAAM,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAAA;IAC1C,MAAM,EAAE,gBAAgB,CAAA;IACxB,2CAA2C;IAC3C,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,QAAA,MAAM,WAAW,wCAA+C,CAAA;AAEhE,MAAM,WAAW,uBAAuB;IACtC,6BAA6B;IAC7B,MAAM,CAAC,EAAE,gBAAgB,CAAA;IACzB,yFAAyF;IACzF,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,uBAAuB,2CAqJ3G;AAED,OAAO,EAAE,WAAW,EAAE,CAAA"}
|
package/dist/context.js
CHANGED
|
@@ -2,24 +2,54 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import React, { createContext, useCallback, useEffect, useState } from 'react';
|
|
3
3
|
import { GoogleOAuthProvider } from '@react-oauth/google';
|
|
4
4
|
import { BeamarAuthClient } from './client';
|
|
5
|
+
import { resolveConfigFromPublishableKey } from './resolve-config';
|
|
5
6
|
const AuthContext = createContext(null);
|
|
6
7
|
/**
|
|
7
8
|
* BeamarAuthProvider - wrap your app to enable auth
|
|
9
|
+
* Use publishableKey for Clerk-style single config, or config for full control
|
|
8
10
|
*/
|
|
9
|
-
export function BeamarAuthProvider({ config, children }) {
|
|
11
|
+
export function BeamarAuthProvider({ config: configProp, publishableKey, children }) {
|
|
12
|
+
const [config, setConfig] = useState(configProp ?? null);
|
|
10
13
|
const [user, setUser] = useState(null);
|
|
11
14
|
const [isLoaded, setIsLoaded] = useState(false);
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
useEffect(() => {
|
|
16
|
+
if (configProp) {
|
|
17
|
+
setConfig(configProp);
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
if (!publishableKey) {
|
|
21
|
+
console.error('BeamarAuthProvider: provide either config or publishableKey');
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
resolveConfigFromPublishableKey(publishableKey)
|
|
25
|
+
.then(setConfig)
|
|
26
|
+
.catch((err) => {
|
|
27
|
+
console.error('BeamarAuthProvider: failed to resolve config', err);
|
|
28
|
+
setConfig({
|
|
29
|
+
apiUrl: 'https://auth.beamar.co',
|
|
30
|
+
appName: publishableKey,
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
}, [configProp, publishableKey]);
|
|
34
|
+
const client = React.useMemo(() => {
|
|
35
|
+
if (!config?.apiUrl)
|
|
36
|
+
return null;
|
|
37
|
+
return new BeamarAuthClient({
|
|
38
|
+
apiUrl: config.apiUrl,
|
|
39
|
+
appName: config.appName ?? 'default',
|
|
40
|
+
parentUrl: config.parentUrl,
|
|
41
|
+
});
|
|
42
|
+
}, [config]);
|
|
17
43
|
const refreshSession = useCallback(async () => {
|
|
44
|
+
if (!client)
|
|
45
|
+
return null;
|
|
18
46
|
const u = await client.getSession();
|
|
19
47
|
setUser(u);
|
|
20
48
|
return u;
|
|
21
49
|
}, [client]);
|
|
22
50
|
useEffect(() => {
|
|
51
|
+
if (!client)
|
|
52
|
+
return;
|
|
23
53
|
let cancelled = false;
|
|
24
54
|
client
|
|
25
55
|
.getSession()
|
|
@@ -38,23 +68,33 @@ export function BeamarAuthProvider({ config, children }) {
|
|
|
38
68
|
};
|
|
39
69
|
}, [client]);
|
|
40
70
|
const signIn = useCallback(async (credentials) => {
|
|
71
|
+
if (!client)
|
|
72
|
+
return;
|
|
41
73
|
const u = await client.login(credentials);
|
|
42
74
|
setUser(u);
|
|
43
75
|
}, [client]);
|
|
44
76
|
const signUp = useCallback(async (credentials) => {
|
|
77
|
+
if (!client)
|
|
78
|
+
return;
|
|
45
79
|
await client.register(credentials);
|
|
46
80
|
const u = await client.getSession();
|
|
47
81
|
setUser(u);
|
|
48
82
|
}, [client]);
|
|
49
83
|
const signOut = useCallback(async () => {
|
|
84
|
+
if (!client)
|
|
85
|
+
return;
|
|
50
86
|
await client.logout();
|
|
51
87
|
setUser(null);
|
|
52
88
|
}, [client]);
|
|
53
89
|
const signInWithGoogle = useCallback(async (credential) => {
|
|
90
|
+
if (!client)
|
|
91
|
+
return;
|
|
54
92
|
const u = await client.loginWithGoogle(credential);
|
|
55
93
|
setUser(u);
|
|
56
94
|
}, [client]);
|
|
57
95
|
const signUpWithGoogle = useCallback(async (credential) => {
|
|
96
|
+
if (!client)
|
|
97
|
+
return;
|
|
58
98
|
await client.registerWithGoogle(credential);
|
|
59
99
|
const u = await client.getSession();
|
|
60
100
|
setUser(u);
|
|
@@ -66,7 +106,7 @@ export function BeamarAuthProvider({ config, children }) {
|
|
|
66
106
|
return null;
|
|
67
107
|
}, []);
|
|
68
108
|
const value = {
|
|
69
|
-
isLoaded,
|
|
109
|
+
isLoaded: config && client ? isLoaded : false,
|
|
70
110
|
isSignedIn: !!user,
|
|
71
111
|
user,
|
|
72
112
|
signIn,
|
|
@@ -76,9 +116,15 @@ export function BeamarAuthProvider({ config, children }) {
|
|
|
76
116
|
signUpWithGoogle,
|
|
77
117
|
getToken,
|
|
78
118
|
refreshSession,
|
|
79
|
-
client,
|
|
80
|
-
googleClientId: config
|
|
119
|
+
client: client,
|
|
120
|
+
googleClientId: config?.googleClientId,
|
|
81
121
|
};
|
|
122
|
+
if (!config || !client) {
|
|
123
|
+
const msg = !publishableKey && !configProp
|
|
124
|
+
? 'BeamarAuthProvider: set VITE_BEAMAR_AUTH_KEY or pass config/publishableKey'
|
|
125
|
+
: 'Loading...';
|
|
126
|
+
return (_jsx("div", { style: { display: 'flex', alignItems: 'center', justifyContent: 'center', minHeight: '100vh' }, children: _jsx("span", { children: msg }) }));
|
|
127
|
+
}
|
|
82
128
|
const content = _jsx(AuthContext.Provider, { value: value, children: children });
|
|
83
129
|
if (config.googleClientId) {
|
|
84
130
|
return (_jsx(GoogleOAuthProvider, { clientId: config.googleClientId, children: content }));
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { BeamarAuthConfig } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Resolve full BeamarAuthConfig from a publishable key (Clerk-style)
|
|
4
|
+
*/
|
|
5
|
+
export declare function resolveConfigFromPublishableKey(publishableKey: string): Promise<BeamarAuthConfig>;
|
|
6
|
+
//# sourceMappingURL=resolve-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-config.d.ts","sourceRoot":"","sources":["../src/resolve-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAsB,MAAM,SAAS,CAAA;AAyDnE;;GAEG;AACH,wBAAsB,+BAA+B,CACnD,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,gBAAgB,CAAC,CAS3B"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/** Access build-time env vars (Vite: import.meta.env, Node: process.env) */
|
|
2
|
+
function getEnv(key) {
|
|
3
|
+
const importMetaEnv = import.meta.env;
|
|
4
|
+
if (importMetaEnv?.[key] !== undefined)
|
|
5
|
+
return String(importMetaEnv[key]);
|
|
6
|
+
try {
|
|
7
|
+
if (typeof globalThis !== 'undefined') {
|
|
8
|
+
const proc = globalThis.process;
|
|
9
|
+
if (proc?.env?.[key] !== undefined)
|
|
10
|
+
return proc.env[key];
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
catch {
|
|
14
|
+
/* ignore */
|
|
15
|
+
}
|
|
16
|
+
return undefined;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Resolve apiUrl from publishableKey prefix or env override
|
|
20
|
+
*/
|
|
21
|
+
function getApiUrl(publishableKey) {
|
|
22
|
+
const envUrl = getEnv('VITE_AUTH_API_URL') ?? getEnv('AUTH_API_URL');
|
|
23
|
+
if (envUrl)
|
|
24
|
+
return envUrl;
|
|
25
|
+
const prefix = publishableKey.split('_')[0];
|
|
26
|
+
if (publishableKey.startsWith('beamar_live_') || publishableKey.startsWith('pk_live_')) {
|
|
27
|
+
return 'https://auth.beamar.co';
|
|
28
|
+
}
|
|
29
|
+
if (publishableKey.startsWith('beamar_test_') || publishableKey.startsWith('pk_test_')) {
|
|
30
|
+
return getEnv('VITE_AUTH_API_URL') ?? 'http://localhost:3000';
|
|
31
|
+
}
|
|
32
|
+
return 'https://auth.beamar.co';
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Extract appName from publishableKey
|
|
36
|
+
*/
|
|
37
|
+
function getAppName(publishableKey) {
|
|
38
|
+
if (publishableKey.startsWith('beamar_live_'))
|
|
39
|
+
return publishableKey.replace('beamar_live_', '');
|
|
40
|
+
if (publishableKey.startsWith('beamar_test_'))
|
|
41
|
+
return publishableKey.replace('beamar_test_', '');
|
|
42
|
+
if (publishableKey.startsWith('pk_live_'))
|
|
43
|
+
return publishableKey.replace('pk_live_', '');
|
|
44
|
+
if (publishableKey.startsWith('pk_test_'))
|
|
45
|
+
return publishableKey.replace('pk_test_', '');
|
|
46
|
+
return publishableKey;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Fetch public config (googleClientId) from auth-service
|
|
50
|
+
*/
|
|
51
|
+
async function fetchPublicConfig(apiUrl) {
|
|
52
|
+
const url = `${apiUrl.replace(/\/$/, '')}/auth/public-config`;
|
|
53
|
+
const res = await fetch(url);
|
|
54
|
+
if (!res.ok)
|
|
55
|
+
return {};
|
|
56
|
+
const data = await res.json().catch(() => ({}));
|
|
57
|
+
return { googleClientId: data?.googleClientId };
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Resolve full BeamarAuthConfig from a publishable key (Clerk-style)
|
|
61
|
+
*/
|
|
62
|
+
export async function resolveConfigFromPublishableKey(publishableKey) {
|
|
63
|
+
const apiUrl = getApiUrl(publishableKey);
|
|
64
|
+
const appName = getAppName(publishableKey);
|
|
65
|
+
const publicConfig = await fetchPublicConfig(apiUrl);
|
|
66
|
+
return {
|
|
67
|
+
apiUrl,
|
|
68
|
+
appName,
|
|
69
|
+
googleClientId: publicConfig.googleClientId,
|
|
70
|
+
};
|
|
71
|
+
}
|
package/dist/types.d.ts
CHANGED
|
@@ -23,7 +23,7 @@ export interface TenantMember {
|
|
|
23
23
|
* Configuration for BeamarAuthProvider
|
|
24
24
|
*/
|
|
25
25
|
export interface BeamarAuthConfig {
|
|
26
|
-
/** Base URL of the auth-service API (e.g. https://auth.
|
|
26
|
+
/** Base URL of the auth-service API (e.g. https://auth.beamar.co) */
|
|
27
27
|
apiUrl: string;
|
|
28
28
|
/** Application name for multi-tenant (e.g. GOMEDI, developers-portal) */
|
|
29
29
|
appName: string;
|
|
@@ -32,6 +32,12 @@ export interface BeamarAuthConfig {
|
|
|
32
32
|
/** Optional callback URL after password reset */
|
|
33
33
|
parentUrl?: string;
|
|
34
34
|
}
|
|
35
|
+
/** Default auth API URL - overridable via VITE_AUTH_API_URL */
|
|
36
|
+
export declare const DEFAULT_AUTH_API_URL = "https://auth.beamar.co";
|
|
37
|
+
/** Public config returned by auth-service for frontends */
|
|
38
|
+
export interface BeamarPublicConfig {
|
|
39
|
+
googleClientId?: string;
|
|
40
|
+
}
|
|
35
41
|
/**
|
|
36
42
|
* Login with email/password
|
|
37
43
|
*/
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,YAAY,EAAE,CAAA;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,YAAY,EAAE,CAAA;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,qEAAqE;IACrE,MAAM,EAAE,MAAM,CAAA;IACd,yEAAyE;IACzE,OAAO,EAAE,MAAM,CAAA;IACf,qDAAqD;IACrD,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,+DAA+D;AAC/D,eAAO,MAAM,oBAAoB,2BAA2B,CAAA;AAE5D,2DAA2D;AAC3D,MAAM,WAAW,kBAAkB;IACjC,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,qBAAa,SAAU,SAAQ,KAAK;IAGzB,UAAU,CAAC,EAAE,MAAM;IACnB,IAAI,CAAC,EAAE,MAAM;gBAFpB,OAAO,EAAE,MAAM,EACR,UAAU,CAAC,EAAE,MAAM,YAAA,EACnB,IAAI,CAAC,EAAE,MAAM,YAAA;CAKvB"}
|
package/dist/types.js
CHANGED