@beamarco/auth-sdk 0.1.3 → 0.1.5
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 +11 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +34 -4
- package/dist/components/SignIn.d.ts +9 -3
- package/dist/components/SignIn.d.ts.map +1 -1
- package/dist/components/SignIn.js +22 -44
- package/dist/components/SignUp.d.ts.map +1 -1
- package/dist/components/SignUp.js +18 -37
- package/dist/context.d.ts +9 -3
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +24 -18
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -4
package/dist/client.d.ts
CHANGED
|
@@ -55,5 +55,16 @@ export declare class BeamarAuthClient {
|
|
|
55
55
|
* Update password with reset token
|
|
56
56
|
*/
|
|
57
57
|
updatePassword(key: string, password: string): Promise<void>;
|
|
58
|
+
/**
|
|
59
|
+
* System admin login: email/password, allowlist-check, sets system admin cookie.
|
|
60
|
+
* Use with app "system-admin" (or configured admin app). User must exist in that app.
|
|
61
|
+
*/
|
|
62
|
+
adminLogin(credentials: LoginCredentials): Promise<{
|
|
63
|
+
email: string;
|
|
64
|
+
}>;
|
|
65
|
+
/**
|
|
66
|
+
* Get current system admin session. Returns admin email if logged in as system admin.
|
|
67
|
+
*/
|
|
68
|
+
getAdminSession(): Promise<User | null>;
|
|
58
69
|
}
|
|
59
70
|
//# sourceMappingURL=client.d.ts.map
|
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;YAS9B,OAAO;
|
|
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;IAqCrB;;OAEG;IACG,KAAK,CAAC,WAAW,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAUzD;;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;IAUlE;;OAEG;IACG,kBAAkB,CAAC,UAAU,EAAE,gBAAgB,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAWpF;;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;IAOlE;;;OAGG;IACG,UAAU,CAAC,WAAW,EAAE,gBAAgB,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAW3E;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;CAa9C"}
|
package/dist/client.js
CHANGED
|
@@ -23,6 +23,7 @@ export class BeamarAuthClient {
|
|
|
23
23
|
credentials: 'include',
|
|
24
24
|
headers: {
|
|
25
25
|
'Content-Type': 'application/json',
|
|
26
|
+
'X-Beamar-App': this.appName,
|
|
26
27
|
...fetchOptions.headers,
|
|
27
28
|
},
|
|
28
29
|
});
|
|
@@ -46,7 +47,6 @@ export class BeamarAuthClient {
|
|
|
46
47
|
const basic = btoa(`${credentials.email}:${credentials.password}`);
|
|
47
48
|
return this.request('/auth/login', {
|
|
48
49
|
method: 'POST',
|
|
49
|
-
params: { appName: this.appName },
|
|
50
50
|
headers: {
|
|
51
51
|
Authorization: `Basic ${basic}`,
|
|
52
52
|
},
|
|
@@ -109,7 +109,6 @@ export class BeamarAuthClient {
|
|
|
109
109
|
async loginWithGoogle(credential) {
|
|
110
110
|
return this.request('/goauth/login', {
|
|
111
111
|
method: 'POST',
|
|
112
|
-
params: { appName: this.appName },
|
|
113
112
|
body: JSON.stringify({
|
|
114
113
|
tokenId: credential.credential,
|
|
115
114
|
googleId: credential.clientId,
|
|
@@ -122,7 +121,6 @@ export class BeamarAuthClient {
|
|
|
122
121
|
async registerWithGoogle(credential) {
|
|
123
122
|
const res = await this.request('/goauth/register', {
|
|
124
123
|
method: 'POST',
|
|
125
|
-
params: { appName: this.appName },
|
|
126
124
|
body: JSON.stringify({
|
|
127
125
|
tokenId: credential.credential,
|
|
128
126
|
googleId: credential.clientId,
|
|
@@ -136,7 +134,7 @@ export class BeamarAuthClient {
|
|
|
136
134
|
async requestPasswordReset(loginId) {
|
|
137
135
|
await this.request('/auth/password-request', {
|
|
138
136
|
method: 'POST',
|
|
139
|
-
params: { parentUrl: this.parentUrl
|
|
137
|
+
params: { parentUrl: this.parentUrl },
|
|
140
138
|
body: JSON.stringify({ loginId }),
|
|
141
139
|
});
|
|
142
140
|
}
|
|
@@ -149,4 +147,36 @@ export class BeamarAuthClient {
|
|
|
149
147
|
body: JSON.stringify({ key, password }),
|
|
150
148
|
});
|
|
151
149
|
}
|
|
150
|
+
/**
|
|
151
|
+
* System admin login: email/password, allowlist-check, sets system admin cookie.
|
|
152
|
+
* Use with app "system-admin" (or configured admin app). User must exist in that app.
|
|
153
|
+
*/
|
|
154
|
+
async adminLogin(credentials) {
|
|
155
|
+
const basic = btoa(`${credentials.email}:${credentials.password}`);
|
|
156
|
+
await this.request('/auth/admin-login', {
|
|
157
|
+
method: 'POST',
|
|
158
|
+
headers: {
|
|
159
|
+
Authorization: `Basic ${basic}`,
|
|
160
|
+
},
|
|
161
|
+
});
|
|
162
|
+
return { email: credentials.email };
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Get current system admin session. Returns admin email if logged in as system admin.
|
|
166
|
+
*/
|
|
167
|
+
async getAdminSession() {
|
|
168
|
+
try {
|
|
169
|
+
const res = await this.request('/admin/me', { method: 'GET' });
|
|
170
|
+
if (!res?.email)
|
|
171
|
+
return null;
|
|
172
|
+
return {
|
|
173
|
+
id: '',
|
|
174
|
+
loginId: res.email,
|
|
175
|
+
tenants: [],
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
catch {
|
|
179
|
+
return null;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
152
182
|
}
|
|
@@ -57,13 +57,19 @@ declare const defaultStyles: {
|
|
|
57
57
|
backgroundColor: string;
|
|
58
58
|
};
|
|
59
59
|
};
|
|
60
|
+
/** Style overrides - values can be string or number (React.CSSProperties) */
|
|
61
|
+
type StyleOverrides = {
|
|
62
|
+
[K in keyof typeof defaultStyles]?: Partial<React.CSSProperties>;
|
|
63
|
+
};
|
|
60
64
|
export interface SignInProps {
|
|
61
65
|
/** Redirect path after sign in (optional - caller handles navigation) */
|
|
62
66
|
afterSignInUrl?: string;
|
|
63
|
-
/** Custom styles */
|
|
64
|
-
styles?:
|
|
67
|
+
/** Custom styles - partial overrides merged with defaults */
|
|
68
|
+
styles?: StyleOverrides;
|
|
65
69
|
/** Show Google sign in button */
|
|
66
70
|
showGoogle?: boolean;
|
|
71
|
+
/** Show sign up link */
|
|
72
|
+
showSignUp?: boolean;
|
|
67
73
|
/** Link to sign up - e.g. /sign-up */
|
|
68
74
|
signUpUrl?: string;
|
|
69
75
|
/** Link to forgot password - e.g. /forgot-password */
|
|
@@ -82,6 +88,6 @@ export interface SignInRenderProps {
|
|
|
82
88
|
error: string | null;
|
|
83
89
|
isLoading: boolean;
|
|
84
90
|
}
|
|
85
|
-
export declare function SignIn({ afterSignInUrl, styles: customStyles, showGoogle, signUpUrl, forgotPasswordUrl, onSuccess, children, }: SignInProps): import("react/jsx-runtime").JSX.Element;
|
|
91
|
+
export declare function SignIn({ afterSignInUrl, styles: customStyles, showGoogle, showSignUp, signUpUrl, forgotPasswordUrl, onSuccess, children, }: SignInProps): import("react/jsx-runtime").JSX.Element;
|
|
86
92
|
export {};
|
|
87
93
|
//# sourceMappingURL=SignIn.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SignIn.d.ts","sourceRoot":"","sources":["../../src/components/SignIn.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAEvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAEhD,QAAA,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwDlB,CAAA;AAED,MAAM,WAAW,WAAW;IAC1B,yEAAyE;IACzE,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,
|
|
1
|
+
{"version":3,"file":"SignIn.d.ts","sourceRoot":"","sources":["../../src/components/SignIn.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAEvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAEhD,QAAA,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwDlB,CAAA;AAED,6EAA6E;AAC7E,KAAK,cAAc,GAAG;KACnB,CAAC,IAAI,MAAM,OAAO,aAAa,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC;CACjE,CAAA;AAED,MAAM,WAAW,WAAW;IAC1B,yEAAyE;IACzE,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,6DAA6D;IAC7D,MAAM,CAAC,EAAE,cAAc,CAAA;IACvB,iCAAiC;IACjC,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,wBAAwB;IACxB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,sCAAsC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,sDAAsD;IACtD,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,sCAAsC;IACtC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,KAAK,CAAC,SAAS,CAAA;CACzD;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,CAAC,WAAW,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACxD,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;AAED,wBAAgB,MAAM,CAAC,EACrB,cAAc,EACd,MAAM,EAAE,YAAiB,EACzB,UAAiB,EACjB,UAAiB,EACjB,SAAsB,EACtB,iBAAiB,EACjB,SAAS,EACT,QAAQ,GACT,EAAE,WAAW,2CA8Hb"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import
|
|
2
|
+
import { useState } from 'react';
|
|
3
3
|
import { useBeamarAuth } from '../hooks';
|
|
4
4
|
const defaultStyles = {
|
|
5
5
|
container: {
|
|
@@ -58,13 +58,16 @@ const defaultStyles = {
|
|
|
58
58
|
backgroundColor: '#ddd',
|
|
59
59
|
},
|
|
60
60
|
};
|
|
61
|
-
export function SignIn({ afterSignInUrl, styles: customStyles = {}, showGoogle = true, signUpUrl = '/sign-up', forgotPasswordUrl, onSuccess, children, }) {
|
|
62
|
-
const { signIn,
|
|
61
|
+
export function SignIn({ afterSignInUrl, styles: customStyles = {}, showGoogle = true, showSignUp = true, signUpUrl = '/sign-up', forgotPasswordUrl, onSuccess, children, }) {
|
|
62
|
+
const { signIn, apiUrl, appName } = useBeamarAuth();
|
|
63
63
|
const [email, setEmail] = useState('');
|
|
64
64
|
const [password, setPassword] = useState('');
|
|
65
65
|
const [error, setError] = useState(null);
|
|
66
66
|
const [isLoading, setIsLoading] = useState(false);
|
|
67
|
-
const styles =
|
|
67
|
+
const styles = Object.fromEntries(Object.keys(defaultStyles).map((k) => [
|
|
68
|
+
k,
|
|
69
|
+
{ ...defaultStyles[k], ...(customStyles[k] ?? {}) },
|
|
70
|
+
]));
|
|
68
71
|
const handleSubmit = async (e) => {
|
|
69
72
|
e.preventDefault();
|
|
70
73
|
setError(null);
|
|
@@ -83,22 +86,17 @@ export function SignIn({ afterSignInUrl, styles: customStyles = {}, showGoogle =
|
|
|
83
86
|
setIsLoading(false);
|
|
84
87
|
}
|
|
85
88
|
};
|
|
86
|
-
const
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
setError(err instanceof Error ? err.message : 'Sign in with Google failed');
|
|
98
|
-
}
|
|
99
|
-
finally {
|
|
100
|
-
setIsLoading(false);
|
|
101
|
-
}
|
|
89
|
+
const redirectToHostedGoogleSignIn = () => {
|
|
90
|
+
const base = afterSignInUrl ?? '/';
|
|
91
|
+
const redirectUri = typeof window !== 'undefined' && base.startsWith('/')
|
|
92
|
+
? window.location.origin + base
|
|
93
|
+
: base;
|
|
94
|
+
const params = new URLSearchParams({
|
|
95
|
+
redirect_uri: redirectUri,
|
|
96
|
+
app: appName,
|
|
97
|
+
mode: 'signin',
|
|
98
|
+
});
|
|
99
|
+
window.location.href = `${apiUrl.replace(/\/$/, '')}/sign-in?${params}`;
|
|
102
100
|
};
|
|
103
101
|
if (children) {
|
|
104
102
|
return (_jsx(_Fragment, { children: children({
|
|
@@ -119,32 +117,12 @@ export function SignIn({ afterSignInUrl, styles: customStyles = {}, showGoogle =
|
|
|
119
117
|
setIsLoading(false);
|
|
120
118
|
}
|
|
121
119
|
},
|
|
122
|
-
signInWithGoogle:
|
|
120
|
+
signInWithGoogle: async () => {
|
|
121
|
+
redirectToHostedGoogleSignIn();
|
|
122
|
+
},
|
|
123
123
|
error,
|
|
124
124
|
isLoading,
|
|
125
125
|
}) }));
|
|
126
126
|
}
|
|
127
|
-
return (_jsxs("form", { onSubmit: handleSubmit, style: styles.container, children: [error && _jsx("div", { style: styles.error, children: error }), _jsx("input", { type: "email", placeholder: "Email", value: email, onChange: (e) => setEmail(e.target.value), required: true, disabled: isLoading, style: styles.input }), _jsx("input", { type: "password", placeholder: "Password", value: password, onChange: (e) => setPassword(e.target.value), required: true, disabled: isLoading, style: styles.input }), forgotPasswordUrl && (_jsx("a", { href: forgotPasswordUrl, style: styles.link, children: "Forgot password?" })), _jsx("button", { type: "submit", disabled: isLoading, style: styles.button, children: isLoading ? 'Signing in...' : 'Sign in' }), showGoogle && (_jsxs(_Fragment, { children: [_jsxs("div", { style: styles.divider, children: [_jsx("span", { style: styles.dividerLine }), _jsx("span", { children: "or" }), _jsx("span", { style: styles.dividerLine })] }), _jsx(
|
|
128
|
-
}
|
|
129
|
-
/**
|
|
130
|
-
* Google Sign In button - requires GoogleOAuthProvider wrapper with clientId from config
|
|
131
|
-
*/
|
|
132
|
-
function GoogleSignInButton({ onSuccess, disabled, clientId, }) {
|
|
133
|
-
const [GoogleLogin, setGoogleLogin] = useState(null);
|
|
134
|
-
React.useEffect(() => {
|
|
135
|
-
import('@react-oauth/google').then((mod) => {
|
|
136
|
-
setGoogleLogin(() => mod.GoogleLogin);
|
|
137
|
-
});
|
|
138
|
-
}, []);
|
|
139
|
-
if (!clientId)
|
|
140
|
-
return null;
|
|
141
|
-
if (!GoogleLogin) {
|
|
142
|
-
return (_jsx("button", { type: "button", disabled: true, style: { ...defaultStyles.buttonGoogle, opacity: 0.7 }, children: "Loading..." }));
|
|
143
|
-
}
|
|
144
|
-
const GoogleLoginAny = GoogleLogin;
|
|
145
|
-
return (_jsx(GoogleLoginAny, { onSuccess: (res) => {
|
|
146
|
-
if (res.credential && res.clientId) {
|
|
147
|
-
onSuccess({ credential: res.credential, clientId: res.clientId });
|
|
148
|
-
}
|
|
149
|
-
}, onError: () => { }, useOneTap: false, type: "standard", theme: "outline", size: "large", text: "signin_with", shape: "rectangular", logo_alignment: "left", width: "320" }));
|
|
127
|
+
return (_jsxs("form", { onSubmit: handleSubmit, style: styles.container, children: [error && _jsx("div", { style: styles.error, children: error }), _jsx("input", { type: "email", placeholder: "Email", value: email, onChange: (e) => setEmail(e.target.value), required: true, disabled: isLoading, style: styles.input }), _jsx("input", { type: "password", placeholder: "Password", value: password, onChange: (e) => setPassword(e.target.value), required: true, disabled: isLoading, style: styles.input }), forgotPasswordUrl && (_jsx("a", { href: forgotPasswordUrl, style: styles.link, children: "Forgot password?" })), _jsx("button", { type: "submit", disabled: isLoading, style: styles.button, children: isLoading ? 'Signing in...' : 'Sign in' }), showGoogle && (_jsxs(_Fragment, { children: [_jsxs("div", { style: styles.divider, children: [_jsx("span", { style: styles.dividerLine }), _jsx("span", { children: "or" }), _jsx("span", { style: styles.dividerLine })] }), _jsx("button", { type: "button", onClick: redirectToHostedGoogleSignIn, disabled: isLoading, style: styles.buttonGoogle, children: "Sign in with Google" })] })), showSignUp && (_jsxs("p", { children: ["Don't have an account? ", _jsx("a", { href: signUpUrl, style: styles.link, children: "Sign up" })] }))] }));
|
|
150
128
|
}
|
|
@@ -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;AAED,wBAAgB,MAAM,CAAC,EACrB,cAAoB,EACpB,MAAM,EAAE,YAAiB,EACzB,UAAiB,EACjB,SAAsB,EACtB,SAAS,EACT,QAAQ,GACT,EAAE,WAAW,2CAmHb"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from 'react';
|
|
3
3
|
import { useBeamarAuth } from '../hooks';
|
|
4
4
|
const defaultStyles = {
|
|
5
5
|
container: {
|
|
@@ -58,24 +58,8 @@ const defaultStyles = {
|
|
|
58
58
|
backgroundColor: '#ddd',
|
|
59
59
|
},
|
|
60
60
|
};
|
|
61
|
-
function GoogleSignUpButton({ onSuccess, disabled, clientId, }) {
|
|
62
|
-
const [GoogleLogin, setGoogleLogin] = useState(null);
|
|
63
|
-
React.useEffect(() => {
|
|
64
|
-
import('@react-oauth/google').then((mod) => {
|
|
65
|
-
setGoogleLogin(() => mod.GoogleLogin);
|
|
66
|
-
});
|
|
67
|
-
}, []);
|
|
68
|
-
if (!clientId || !GoogleLogin)
|
|
69
|
-
return null;
|
|
70
|
-
const GoogleLoginAny = GoogleLogin;
|
|
71
|
-
return (_jsx(GoogleLoginAny, { onSuccess: (res) => {
|
|
72
|
-
if (res.credential && res.clientId) {
|
|
73
|
-
onSuccess({ credential: res.credential, clientId: res.clientId });
|
|
74
|
-
}
|
|
75
|
-
}, onError: () => { }, type: "standard", theme: "outline", size: "large", text: "signup_with", shape: "rectangular", logo_alignment: "left", width: "320" }));
|
|
76
|
-
}
|
|
77
61
|
export function SignUp({ afterSignUpUrl = '/', styles: customStyles = {}, showGoogle = true, signInUrl = '/sign-in', onSuccess, children, }) {
|
|
78
|
-
const { signUp,
|
|
62
|
+
const { signUp, apiUrl, appName } = useBeamarAuth();
|
|
79
63
|
const [email, setEmail] = useState('');
|
|
80
64
|
const [password, setPassword] = useState('');
|
|
81
65
|
const [error, setError] = useState(null);
|
|
@@ -99,22 +83,17 @@ export function SignUp({ afterSignUpUrl = '/', styles: customStyles = {}, showGo
|
|
|
99
83
|
setIsLoading(false);
|
|
100
84
|
}
|
|
101
85
|
};
|
|
102
|
-
const
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
setError(err instanceof Error ? err.message : 'Sign up with Google failed');
|
|
114
|
-
}
|
|
115
|
-
finally {
|
|
116
|
-
setIsLoading(false);
|
|
117
|
-
}
|
|
86
|
+
const redirectToHostedGoogleSignUp = () => {
|
|
87
|
+
const base = afterSignUpUrl ?? '/';
|
|
88
|
+
const redirectUri = typeof window !== 'undefined' && base.startsWith('/')
|
|
89
|
+
? window.location.origin + base
|
|
90
|
+
: base;
|
|
91
|
+
const params = new URLSearchParams({
|
|
92
|
+
redirect_uri: redirectUri,
|
|
93
|
+
app: appName,
|
|
94
|
+
mode: 'signup',
|
|
95
|
+
});
|
|
96
|
+
window.location.href = `${apiUrl.replace(/\/$/, '')}/sign-in?${params}`;
|
|
118
97
|
};
|
|
119
98
|
if (children) {
|
|
120
99
|
return (_jsx(_Fragment, { children: children({
|
|
@@ -135,10 +114,12 @@ export function SignUp({ afterSignUpUrl = '/', styles: customStyles = {}, showGo
|
|
|
135
114
|
setIsLoading(false);
|
|
136
115
|
}
|
|
137
116
|
},
|
|
138
|
-
signUpWithGoogle:
|
|
117
|
+
signUpWithGoogle: async () => {
|
|
118
|
+
redirectToHostedGoogleSignUp();
|
|
119
|
+
},
|
|
139
120
|
error,
|
|
140
121
|
isLoading,
|
|
141
122
|
}) }));
|
|
142
123
|
}
|
|
143
|
-
return (_jsxs("form", { onSubmit: handleSubmit, style: styles.container, children: [error && _jsx("div", { style: styles.error, children: error }), _jsx("input", { type: "email", placeholder: "Email", value: email, onChange: (e) => setEmail(e.target.value), required: true, disabled: isLoading, style: styles.input }), _jsx("input", { type: "password", placeholder: "Password", value: password, onChange: (e) => setPassword(e.target.value), required: true, disabled: isLoading, minLength: 6, style: styles.input }), _jsx("button", { type: "submit", disabled: isLoading, style: styles.button, children: isLoading ? 'Creating account...' : 'Sign up' }), showGoogle && (_jsxs(_Fragment, { children: [_jsxs("div", { style: styles.divider, children: [_jsx("span", { style: styles.dividerLine }), _jsx("span", { children: "or" }), _jsx("span", { style: styles.dividerLine })] }), _jsx(
|
|
124
|
+
return (_jsxs("form", { onSubmit: handleSubmit, style: styles.container, children: [error && _jsx("div", { style: styles.error, children: error }), _jsx("input", { type: "email", placeholder: "Email", value: email, onChange: (e) => setEmail(e.target.value), required: true, disabled: isLoading, style: styles.input }), _jsx("input", { type: "password", placeholder: "Password", value: password, onChange: (e) => setPassword(e.target.value), required: true, disabled: isLoading, minLength: 6, style: styles.input }), _jsx("button", { type: "submit", disabled: isLoading, style: styles.button, children: isLoading ? 'Creating account...' : 'Sign up' }), showGoogle && (_jsxs(_Fragment, { children: [_jsxs("div", { style: styles.divider, children: [_jsx("span", { style: styles.dividerLine }), _jsx("span", { children: "or" }), _jsx("span", { style: styles.dividerLine })] }), _jsx("button", { type: "button", onClick: redirectToHostedGoogleSignUp, disabled: isLoading, style: styles.buttonGoogle, children: "Sign up with Google" })] })), _jsxs("p", { children: ["Already have an account? ", _jsx("a", { href: signInUrl, style: styles.link, children: "Sign in" })] })] }));
|
|
144
125
|
}
|
package/dist/context.d.ts
CHANGED
|
@@ -13,21 +13,27 @@ export interface AuthContextValue {
|
|
|
13
13
|
getToken: () => Promise<string | null>;
|
|
14
14
|
refreshSession: () => Promise<User | null>;
|
|
15
15
|
client: BeamarAuthClient;
|
|
16
|
-
/**
|
|
16
|
+
/** Auth API base URL (for redirect flow) */
|
|
17
|
+
apiUrl: string;
|
|
18
|
+
/** App name (for redirect flow) */
|
|
19
|
+
appName: string;
|
|
20
|
+
/** Google OAuth client ID - only used when googleSignInFlow is 'inline' */
|
|
17
21
|
googleClientId?: string;
|
|
18
22
|
}
|
|
19
23
|
declare const AuthContext: React.Context<AuthContextValue | null>;
|
|
20
24
|
export interface BeamarAuthProviderProps {
|
|
21
25
|
/** Full config (advanced) */
|
|
22
26
|
config?: BeamarAuthConfig;
|
|
23
|
-
/** Publishable key - Clerk-style, single env var (e.g.
|
|
27
|
+
/** Publishable key - Clerk-style, single env var (e.g. beamar_live_system-admin) */
|
|
24
28
|
publishableKey?: string;
|
|
29
|
+
/** Use system admin login (admin-login, /admin/me). Requires app e.g. system-admin. */
|
|
30
|
+
adminMode?: boolean;
|
|
25
31
|
children: React.ReactNode;
|
|
26
32
|
}
|
|
27
33
|
/**
|
|
28
34
|
* BeamarAuthProvider - wrap your app to enable auth
|
|
29
35
|
* Use publishableKey for Clerk-style single config, or config for full control
|
|
30
36
|
*/
|
|
31
|
-
export declare function BeamarAuthProvider({ config: configProp, publishableKey, children }: BeamarAuthProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
37
|
+
export declare function BeamarAuthProvider({ config: configProp, publishableKey, adminMode, children }: BeamarAuthProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
32
38
|
export { AuthContext };
|
|
33
39
|
//# 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;
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0D,MAAM,OAAO,CAAA;AAC9E,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,4CAA4C;IAC5C,MAAM,EAAE,MAAM,CAAA;IACd,mCAAmC;IACnC,OAAO,EAAE,MAAM,CAAA;IACf,2EAA2E;IAC3E,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,oFAAoF;IACpF,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,uFAAuF;IACvF,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,uBAAuB,2CAqJtH;AAED,OAAO,EAAE,WAAW,EAAE,CAAA"}
|
package/dist/context.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import React, { createContext, useCallback, useEffect, useState } from 'react';
|
|
3
|
-
import { GoogleOAuthProvider } from '@react-oauth/google';
|
|
4
3
|
import { BeamarAuthClient } from './client';
|
|
5
4
|
import { resolveConfigFromPublishableKey } from './resolve-config';
|
|
6
5
|
const AuthContext = createContext(null);
|
|
@@ -8,13 +7,13 @@ const AuthContext = createContext(null);
|
|
|
8
7
|
* BeamarAuthProvider - wrap your app to enable auth
|
|
9
8
|
* Use publishableKey for Clerk-style single config, or config for full control
|
|
10
9
|
*/
|
|
11
|
-
export function BeamarAuthProvider({ config: configProp, publishableKey, children }) {
|
|
10
|
+
export function BeamarAuthProvider({ config: configProp, publishableKey, adminMode, children }) {
|
|
12
11
|
const [config, setConfig] = useState(configProp ?? null);
|
|
13
12
|
const [user, setUser] = useState(null);
|
|
14
13
|
const [isLoaded, setIsLoaded] = useState(false);
|
|
15
14
|
useEffect(() => {
|
|
16
15
|
if (configProp) {
|
|
17
|
-
setConfig(configProp);
|
|
16
|
+
setConfig({ ...configProp, adminMode: configProp.adminMode ?? adminMode });
|
|
18
17
|
return;
|
|
19
18
|
}
|
|
20
19
|
if (!publishableKey) {
|
|
@@ -22,15 +21,16 @@ export function BeamarAuthProvider({ config: configProp, publishableKey, childre
|
|
|
22
21
|
return;
|
|
23
22
|
}
|
|
24
23
|
resolveConfigFromPublishableKey(publishableKey)
|
|
25
|
-
.then(setConfig)
|
|
24
|
+
.then((c) => setConfig({ ...c, adminMode: c.adminMode ?? adminMode }))
|
|
26
25
|
.catch((err) => {
|
|
27
26
|
console.error('BeamarAuthProvider: failed to resolve config', err);
|
|
28
27
|
setConfig({
|
|
29
28
|
apiUrl: 'https://auth.s.beamar.co',
|
|
30
29
|
appName: publishableKey,
|
|
30
|
+
adminMode,
|
|
31
31
|
});
|
|
32
32
|
});
|
|
33
|
-
}, [configProp, publishableKey]);
|
|
33
|
+
}, [configProp, publishableKey, adminMode]);
|
|
34
34
|
const client = React.useMemo(() => {
|
|
35
35
|
if (!config?.apiUrl)
|
|
36
36
|
return null;
|
|
@@ -43,16 +43,18 @@ export function BeamarAuthProvider({ config: configProp, publishableKey, childre
|
|
|
43
43
|
const refreshSession = useCallback(async () => {
|
|
44
44
|
if (!client)
|
|
45
45
|
return null;
|
|
46
|
-
const u =
|
|
46
|
+
const u = config?.adminMode
|
|
47
|
+
? await client.getAdminSession()
|
|
48
|
+
: await client.getSession();
|
|
47
49
|
setUser(u);
|
|
48
50
|
return u;
|
|
49
|
-
}, [client]);
|
|
51
|
+
}, [client, config?.adminMode]);
|
|
50
52
|
useEffect(() => {
|
|
51
53
|
if (!client)
|
|
52
54
|
return;
|
|
53
55
|
let cancelled = false;
|
|
54
|
-
client
|
|
55
|
-
|
|
56
|
+
const loadSession = config?.adminMode ? client.getAdminSession() : client.getSession();
|
|
57
|
+
loadSession
|
|
56
58
|
.then((u) => {
|
|
57
59
|
if (!cancelled) {
|
|
58
60
|
setUser(u);
|
|
@@ -66,13 +68,19 @@ export function BeamarAuthProvider({ config: configProp, publishableKey, childre
|
|
|
66
68
|
return () => {
|
|
67
69
|
cancelled = true;
|
|
68
70
|
};
|
|
69
|
-
}, [client]);
|
|
71
|
+
}, [client, config?.adminMode]);
|
|
70
72
|
const signIn = useCallback(async (credentials) => {
|
|
71
73
|
if (!client)
|
|
72
74
|
return;
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
75
|
+
if (config?.adminMode) {
|
|
76
|
+
const { email } = await client.adminLogin(credentials);
|
|
77
|
+
setUser({ id: '', loginId: email, tenants: [] });
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
const u = await client.login(credentials);
|
|
81
|
+
setUser(u);
|
|
82
|
+
}
|
|
83
|
+
}, [client, config?.adminMode]);
|
|
76
84
|
const signUp = useCallback(async (credentials) => {
|
|
77
85
|
if (!client)
|
|
78
86
|
return;
|
|
@@ -117,6 +125,8 @@ export function BeamarAuthProvider({ config: configProp, publishableKey, childre
|
|
|
117
125
|
getToken,
|
|
118
126
|
refreshSession,
|
|
119
127
|
client: client,
|
|
128
|
+
apiUrl: config?.apiUrl ?? '',
|
|
129
|
+
appName: config?.appName ?? 'default',
|
|
120
130
|
googleClientId: config?.googleClientId,
|
|
121
131
|
};
|
|
122
132
|
if (!config || !client) {
|
|
@@ -125,10 +135,6 @@ export function BeamarAuthProvider({ config: configProp, publishableKey, childre
|
|
|
125
135
|
: 'Loading...';
|
|
126
136
|
return (_jsx("div", { style: { display: 'flex', alignItems: 'center', justifyContent: 'center', minHeight: '100vh' }, children: _jsx("span", { children: msg }) }));
|
|
127
137
|
}
|
|
128
|
-
|
|
129
|
-
if (config.googleClientId) {
|
|
130
|
-
return (_jsx(GoogleOAuthProvider, { clientId: config.googleClientId, children: content }));
|
|
131
|
-
}
|
|
132
|
-
return content;
|
|
138
|
+
return _jsx(AuthContext.Provider, { value: value, children: children });
|
|
133
139
|
}
|
|
134
140
|
export { AuthContext };
|
package/dist/types.d.ts
CHANGED
|
@@ -31,6 +31,8 @@ export interface BeamarAuthConfig {
|
|
|
31
31
|
googleClientId?: string;
|
|
32
32
|
/** Optional callback URL after password reset */
|
|
33
33
|
parentUrl?: string;
|
|
34
|
+
/** Use system admin login and session (admin-login, /admin/me) */
|
|
35
|
+
adminMode?: boolean;
|
|
34
36
|
}
|
|
35
37
|
/** Default auth API URL - overridable via VITE_AUTH_API_URL */
|
|
36
38
|
export declare const DEFAULT_AUTH_API_URL = "https://auth.s.beamar.co";
|
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,uEAAuE;IACvE,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;
|
|
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,uEAAuE;IACvE,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;IAClB,kEAAkE;IAClE,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED,+DAA+D;AAC/D,eAAO,MAAM,oBAAoB,6BAA6B,CAAA;AAE9D,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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@beamarco/auth-sdk",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.5",
|
|
4
4
|
"description": "Beamar Auth SDK - Embed authentication like Clerk in your React apps",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -25,9 +25,7 @@
|
|
|
25
25
|
"react": ">=17.0.0",
|
|
26
26
|
"react-dom": ">=17.0.0"
|
|
27
27
|
},
|
|
28
|
-
"dependencies": {
|
|
29
|
-
"@react-oauth/google": "^0.11.1"
|
|
30
|
-
},
|
|
28
|
+
"dependencies": {},
|
|
31
29
|
"devDependencies": {
|
|
32
30
|
"@types/react": "^18.2.0",
|
|
33
31
|
"react": "^18.2.0",
|