@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 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
@@ -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;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"}
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, appName: this.appName },
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?: Partial<typeof defaultStyles>;
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,oBAAoB;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC,OAAO,aAAa,CAAC,CAAA;IACtC,iCAAiC;IACjC,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,SAAsB,EACtB,iBAAiB,EACjB,SAAS,EACT,QAAQ,GACT,EAAE,WAAW,2CAoHb"}
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 React, { useState } from 'react';
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, signInWithGoogle, googleClientId } = useBeamarAuth();
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 = { ...defaultStyles, ...customStyles };
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 handleGoogleSuccess = async (credential) => {
87
- setError(null);
88
- setIsLoading(true);
89
- try {
90
- await signInWithGoogle(credential);
91
- onSuccess?.();
92
- if (afterSignInUrl) {
93
- window.location.href = afterSignInUrl;
94
- }
95
- }
96
- catch (err) {
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: handleGoogleSuccess,
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(GoogleSignInButton, { onSuccess: handleGoogleSuccess, disabled: isLoading, clientId: googleClientId })] })), _jsxs("p", { children: ["Don't have an account? ", _jsx("a", { href: signUpUrl, style: styles.link, children: "Sign up" })] })] }));
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;AA4CD,wBAAgB,MAAM,CAAC,EACrB,cAAoB,EACpB,MAAM,EAAE,YAAiB,EACzB,UAAiB,EACjB,SAAsB,EACtB,SAAS,EACT,QAAQ,GACT,EAAE,WAAW,2CAgHb"}
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 { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
- import React, { useState } from 'react';
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, signUpWithGoogle, googleClientId } = useBeamarAuth();
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 handleGoogleSuccess = async (credential) => {
103
- setError(null);
104
- setIsLoading(true);
105
- try {
106
- await signUpWithGoogle(credential);
107
- onSuccess?.();
108
- if (afterSignUpUrl) {
109
- window.location.href = afterSignUpUrl;
110
- }
111
- }
112
- catch (err) {
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: handleGoogleSuccess,
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(GoogleSignUpButton, { onSuccess: handleGoogleSuccess, disabled: isLoading, clientId: googleClientId })] })), _jsxs("p", { children: ["Already have an account? ", _jsx("a", { href: signInUrl, style: styles.link, children: "Sign in" })] })] }));
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
- /** Google OAuth client ID if configured */
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. beamar_live_developers-portal) */
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
@@ -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;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"}
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 = await client.getSession();
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
- .getSession()
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
- const u = await client.login(credentials);
74
- setUser(u);
75
- }, [client]);
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
- const content = _jsx(AuthContext.Provider, { value: value, children: children });
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";
@@ -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;CACnB;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"}
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",
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",