@joelbarron/react-web-dev-kit 0.1.0

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.
Files changed (215) hide show
  1. package/README.md +236 -0
  2. package/dist/auth/client.d.ts +44 -0
  3. package/dist/auth/client.d.ts.map +1 -0
  4. package/dist/auth/client.js +354 -0
  5. package/dist/auth/constants/countryCallingCodes.d.ts +9 -0
  6. package/dist/auth/constants/countryCallingCodes.d.ts.map +1 -0
  7. package/dist/auth/constants/countryCallingCodes.js +209 -0
  8. package/dist/auth/constants/gender.d.ts +9 -0
  9. package/dist/auth/constants/gender.d.ts.map +1 -0
  10. package/dist/auth/constants/gender.js +12 -0
  11. package/dist/auth/constants/index.d.ts +3 -0
  12. package/dist/auth/constants/index.d.ts.map +1 -0
  13. package/dist/auth/constants/index.js +2 -0
  14. package/dist/auth/forms/account/AuthAccountConfirmationForm.d.ts +18 -0
  15. package/dist/auth/forms/account/AuthAccountConfirmationForm.d.ts.map +1 -0
  16. package/dist/auth/forms/account/AuthAccountConfirmationForm.js +166 -0
  17. package/dist/auth/forms/account/index.d.ts +2 -0
  18. package/dist/auth/forms/account/index.d.ts.map +1 -0
  19. package/dist/auth/forms/account/index.js +1 -0
  20. package/dist/auth/forms/errorParser.d.ts +7 -0
  21. package/dist/auth/forms/errorParser.d.ts.map +1 -0
  22. package/dist/auth/forms/errorParser.js +65 -0
  23. package/dist/auth/forms/index.d.ts +6 -0
  24. package/dist/auth/forms/index.d.ts.map +1 -0
  25. package/dist/auth/forms/index.js +5 -0
  26. package/dist/auth/forms/password/AuthForgotPasswordForm.d.ts +12 -0
  27. package/dist/auth/forms/password/AuthForgotPasswordForm.d.ts.map +1 -0
  28. package/dist/auth/forms/password/AuthForgotPasswordForm.js +71 -0
  29. package/dist/auth/forms/password/AuthPasswordResetConfirmForm.d.ts +15 -0
  30. package/dist/auth/forms/password/AuthPasswordResetConfirmForm.d.ts.map +1 -0
  31. package/dist/auth/forms/password/AuthPasswordResetConfirmForm.js +88 -0
  32. package/dist/auth/forms/password/AuthResetPasswordForm.d.ts +12 -0
  33. package/dist/auth/forms/password/AuthResetPasswordForm.d.ts.map +1 -0
  34. package/dist/auth/forms/password/AuthResetPasswordForm.js +18 -0
  35. package/dist/auth/forms/password/index.d.ts +4 -0
  36. package/dist/auth/forms/password/index.d.ts.map +1 -0
  37. package/dist/auth/forms/password/index.js +3 -0
  38. package/dist/auth/forms/sign-in/AuthOtpSignInForm.d.ts +24 -0
  39. package/dist/auth/forms/sign-in/AuthOtpSignInForm.d.ts.map +1 -0
  40. package/dist/auth/forms/sign-in/AuthOtpSignInForm.js +226 -0
  41. package/dist/auth/forms/sign-in/AuthPasswordSignInForm.d.ts +21 -0
  42. package/dist/auth/forms/sign-in/AuthPasswordSignInForm.d.ts.map +1 -0
  43. package/dist/auth/forms/sign-in/AuthPasswordSignInForm.js +120 -0
  44. package/dist/auth/forms/sign-in/index.d.ts +3 -0
  45. package/dist/auth/forms/sign-in/index.d.ts.map +1 -0
  46. package/dist/auth/forms/sign-in/index.js +2 -0
  47. package/dist/auth/forms/sign-up/AuthSignUpForm.d.ts +36 -0
  48. package/dist/auth/forms/sign-up/AuthSignUpForm.d.ts.map +1 -0
  49. package/dist/auth/forms/sign-up/AuthSignUpForm.js +164 -0
  50. package/dist/auth/forms/sign-up/index.d.ts +2 -0
  51. package/dist/auth/forms/sign-up/index.d.ts.map +1 -0
  52. package/dist/auth/forms/sign-up/index.js +1 -0
  53. package/dist/auth/fuse/createFuseAuthViews.d.ts +24 -0
  54. package/dist/auth/fuse/createFuseAuthViews.d.ts.map +1 -0
  55. package/dist/auth/fuse/createFuseAuthViews.js +360 -0
  56. package/dist/auth/fuse/fuseAdapter.d.ts +40 -0
  57. package/dist/auth/fuse/fuseAdapter.d.ts.map +1 -0
  58. package/dist/auth/fuse/fuseAdapter.js +265 -0
  59. package/dist/auth/fuse/fuseIntegration.d.ts +59 -0
  60. package/dist/auth/fuse/fuseIntegration.d.ts.map +1 -0
  61. package/dist/auth/fuse/fuseIntegration.js +85 -0
  62. package/dist/auth/fuse/index.d.ts +4 -0
  63. package/dist/auth/fuse/index.d.ts.map +1 -0
  64. package/dist/auth/fuse/index.js +3 -0
  65. package/dist/auth/index.d.ts +11 -0
  66. package/dist/auth/index.d.ts.map +1 -0
  67. package/dist/auth/index.js +10 -0
  68. package/dist/auth/provider.d.ts +35 -0
  69. package/dist/auth/provider.d.ts.map +1 -0
  70. package/dist/auth/provider.js +133 -0
  71. package/dist/auth/query.d.ts +23 -0
  72. package/dist/auth/query.d.ts.map +1 -0
  73. package/dist/auth/query.js +103 -0
  74. package/dist/auth/routes.d.ts +37 -0
  75. package/dist/auth/routes.d.ts.map +1 -0
  76. package/dist/auth/routes.js +73 -0
  77. package/dist/auth/social/providerAuth.d.ts +76 -0
  78. package/dist/auth/social/providerAuth.d.ts.map +1 -0
  79. package/dist/auth/social/providerAuth.js +130 -0
  80. package/dist/auth/storage.d.ts +3 -0
  81. package/dist/auth/storage.d.ts.map +1 -0
  82. package/dist/auth/storage.js +20 -0
  83. package/dist/auth/types.d.ts +208 -0
  84. package/dist/auth/types.d.ts.map +1 -0
  85. package/dist/auth/types.js +1 -0
  86. package/dist/auth/ui/AuthPagesMessageSection.d.ts +3 -0
  87. package/dist/auth/ui/AuthPagesMessageSection.d.ts.map +1 -0
  88. package/dist/auth/ui/AuthPagesMessageSection.js +39 -0
  89. package/dist/auth/ui/AuthPrimaryButton.d.ts +9 -0
  90. package/dist/auth/ui/AuthPrimaryButton.d.ts.map +1 -0
  91. package/dist/auth/ui/AuthPrimaryButton.js +19 -0
  92. package/dist/auth/ui/AuthRoleSelectionDialog.d.ts +14 -0
  93. package/dist/auth/ui/AuthRoleSelectionDialog.d.ts.map +1 -0
  94. package/dist/auth/ui/AuthRoleSelectionDialog.js +39 -0
  95. package/dist/auth/ui/AuthRoutePageWrapper.d.ts +12 -0
  96. package/dist/auth/ui/AuthRoutePageWrapper.d.ts.map +1 -0
  97. package/dist/auth/ui/AuthRoutePageWrapper.js +59 -0
  98. package/dist/auth/ui/AuthSecondaryButton.d.ts +7 -0
  99. package/dist/auth/ui/AuthSecondaryButton.d.ts.map +1 -0
  100. package/dist/auth/ui/AuthSecondaryButton.js +18 -0
  101. package/dist/auth/ui/AuthSocialProviderButton.d.ts +11 -0
  102. package/dist/auth/ui/AuthSocialProviderButton.d.ts.map +1 -0
  103. package/dist/auth/ui/AuthSocialProviderButton.js +30 -0
  104. package/dist/auth/ui/SignInPageTitle.d.ts +6 -0
  105. package/dist/auth/ui/SignInPageTitle.d.ts.map +1 -0
  106. package/dist/auth/ui/SignInPageTitle.js +7 -0
  107. package/dist/auth/ui/SignOutPageTitle.d.ts +6 -0
  108. package/dist/auth/ui/SignOutPageTitle.d.ts.map +1 -0
  109. package/dist/auth/ui/SignOutPageTitle.js +7 -0
  110. package/dist/auth/ui/SignUpPageTitle.d.ts +6 -0
  111. package/dist/auth/ui/SignUpPageTitle.d.ts.map +1 -0
  112. package/dist/auth/ui/SignUpPageTitle.js +7 -0
  113. package/dist/auth/ui/index.d.ts +11 -0
  114. package/dist/auth/ui/index.d.ts.map +1 -0
  115. package/dist/auth/ui/index.js +10 -0
  116. package/dist/auth/ui/types.d.ts +15 -0
  117. package/dist/auth/ui/types.d.ts.map +1 -0
  118. package/dist/auth/ui/types.js +1 -0
  119. package/dist/config/createConfig.d.ts +13 -0
  120. package/dist/config/createConfig.d.ts.map +1 -0
  121. package/dist/config/createConfig.js +104 -0
  122. package/dist/config/defaults.d.ts +3 -0
  123. package/dist/config/defaults.d.ts.map +1 -0
  124. package/dist/config/defaults.js +38 -0
  125. package/dist/config/index.d.ts +5 -0
  126. package/dist/config/index.d.ts.map +1 -0
  127. package/dist/config/index.js +4 -0
  128. package/dist/config/merge.d.ts +2 -0
  129. package/dist/config/merge.d.ts.map +1 -0
  130. package/dist/config/merge.js +18 -0
  131. package/dist/config/types.d.ts +46 -0
  132. package/dist/config/types.d.ts.map +1 -0
  133. package/dist/config/types.js +1 -0
  134. package/dist/forms/JBCheckboxField.d.ts +12 -0
  135. package/dist/forms/JBCheckboxField.d.ts.map +1 -0
  136. package/dist/forms/JBCheckboxField.js +36 -0
  137. package/dist/forms/JBDatePickerField.d.ts +12 -0
  138. package/dist/forms/JBDatePickerField.d.ts.map +1 -0
  139. package/dist/forms/JBDatePickerField.js +14 -0
  140. package/dist/forms/JBRadioGroupField.d.ts +10 -0
  141. package/dist/forms/JBRadioGroupField.d.ts.map +1 -0
  142. package/dist/forms/JBRadioGroupField.js +8 -0
  143. package/dist/forms/JBSelectField.d.ts +9 -0
  144. package/dist/forms/JBSelectField.d.ts.map +1 -0
  145. package/dist/forms/JBSelectField.js +8 -0
  146. package/dist/forms/JBSwitchField.d.ts +11 -0
  147. package/dist/forms/JBSwitchField.d.ts.map +1 -0
  148. package/dist/forms/JBSwitchField.js +10 -0
  149. package/dist/forms/JBTextField.d.ts +6 -0
  150. package/dist/forms/JBTextField.d.ts.map +1 -0
  151. package/dist/forms/JBTextField.js +8 -0
  152. package/dist/forms/JBTimePickerField.d.ts +12 -0
  153. package/dist/forms/JBTimePickerField.d.ts.map +1 -0
  154. package/dist/forms/JBTimePickerField.js +14 -0
  155. package/dist/forms/index.d.ts +11 -0
  156. package/dist/forms/index.d.ts.map +1 -0
  157. package/dist/forms/index.js +10 -0
  158. package/dist/forms/rules.d.ts +16 -0
  159. package/dist/forms/rules.d.ts.map +1 -0
  160. package/dist/forms/rules.js +21 -0
  161. package/dist/forms/types.d.ts +12 -0
  162. package/dist/forms/types.d.ts.map +1 -0
  163. package/dist/forms/types.js +1 -0
  164. package/dist/forms/utils.d.ts +5 -0
  165. package/dist/forms/utils.d.ts.map +1 -0
  166. package/dist/forms/utils.js +7 -0
  167. package/dist/grid/JBGrid.d.ts +3 -0
  168. package/dist/grid/JBGrid.d.ts.map +1 -0
  169. package/dist/grid/JBGrid.js +89 -0
  170. package/dist/grid/JBGridHeader.d.ts +3 -0
  171. package/dist/grid/JBGridHeader.d.ts.map +1 -0
  172. package/dist/grid/JBGridHeader.js +22 -0
  173. package/dist/grid/JBGridProviders.d.ts +10 -0
  174. package/dist/grid/JBGridProviders.d.ts.map +1 -0
  175. package/dist/grid/JBGridProviders.js +31 -0
  176. package/dist/grid/index.d.ts +5 -0
  177. package/dist/grid/index.d.ts.map +1 -0
  178. package/dist/grid/index.js +4 -0
  179. package/dist/grid/types.d.ts +81 -0
  180. package/dist/grid/types.d.ts.map +1 -0
  181. package/dist/grid/types.js +1 -0
  182. package/dist/hooks/index.d.ts +3 -0
  183. package/dist/hooks/index.d.ts.map +1 -0
  184. package/dist/hooks/index.js +2 -0
  185. package/dist/hooks/useJBDebouncedValue.d.ts +2 -0
  186. package/dist/hooks/useJBDebouncedValue.d.ts.map +1 -0
  187. package/dist/hooks/useJBDebouncedValue.js +11 -0
  188. package/dist/hooks/useJBRedirect.d.ts +10 -0
  189. package/dist/hooks/useJBRedirect.d.ts.map +1 -0
  190. package/dist/hooks/useJBRedirect.js +11 -0
  191. package/dist/index.d.ts +8 -0
  192. package/dist/index.d.ts.map +1 -0
  193. package/dist/index.js +7 -0
  194. package/dist/query/createQueryClient.d.ts +8 -0
  195. package/dist/query/createQueryClient.d.ts.map +1 -0
  196. package/dist/query/createQueryClient.js +25 -0
  197. package/dist/query/http.d.ts +3 -0
  198. package/dist/query/http.d.ts.map +1 -0
  199. package/dist/query/http.js +12 -0
  200. package/dist/query/index.d.ts +3 -0
  201. package/dist/query/index.d.ts.map +1 -0
  202. package/dist/query/index.js +2 -0
  203. package/dist/utils/format.d.ts +4 -0
  204. package/dist/utils/format.d.ts.map +1 -0
  205. package/dist/utils/format.js +28 -0
  206. package/dist/utils/index.d.ts +4 -0
  207. package/dist/utils/index.d.ts.map +1 -0
  208. package/dist/utils/index.js +3 -0
  209. package/dist/utils/query.d.ts +2 -0
  210. package/dist/utils/query.d.ts.map +1 -0
  211. package/dist/utils/query.js +4 -0
  212. package/dist/utils/regex.d.ts +7 -0
  213. package/dist/utils/regex.d.ts.map +1 -0
  214. package/dist/utils/regex.js +6 -0
  215. package/package.json +85 -0
@@ -0,0 +1,265 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { createContext, useCallback, useContext, useEffect, useImperativeHandle, useMemo, useState } from 'react';
3
+ const FuseJwtAuthContext = createContext(undefined);
4
+ const asRecord = (value) => (value ?? {});
5
+ const isTokenValid = (token) => {
6
+ if (!token) {
7
+ return false;
8
+ }
9
+ try {
10
+ const payload = JSON.parse(atob(token.split('.')[1]));
11
+ return payload.exp > Date.now() / 1000;
12
+ }
13
+ catch {
14
+ return false;
15
+ }
16
+ };
17
+ const normalizeUserShape = (userInput) => {
18
+ const user = asRecord(userInput);
19
+ const userData = asRecord(user.data);
20
+ const displayName = user.displayName ||
21
+ userData.displayName ||
22
+ [userData.firstName, userData.middleName, userData.lastName].filter(Boolean).join(' ') ||
23
+ 'User';
24
+ return {
25
+ id: (user.id || user.user_id || user.pk || userData.id || userData.user_id || userData.pk || '0'),
26
+ role: (user.role || user.roles || userData.role || userData.roles || ['admin']),
27
+ displayName,
28
+ photoURL: (user.photoURL || user.photoUrl || userData.photoURL || userData.photoUrl || ''),
29
+ email: (user.email || userData.email || ''),
30
+ shortcuts: (user.shortcuts || userData.shortcuts || []) || [],
31
+ settings: (user.settings || userData.settings || {}),
32
+ loginRedirectUrl: (user.loginRedirectUrl || userData.loginRedirectUrl || '/')
33
+ };
34
+ };
35
+ const getTokens = (data) => {
36
+ const tokens = asRecord(data.tokens);
37
+ const accessToken = (data.access_token || tokens.accessToken || tokens.access_token || data.access);
38
+ const refreshToken = (data.refresh_token || tokens.refreshToken || tokens.refresh_token || data.refresh || null);
39
+ return { accessToken, refreshToken };
40
+ };
41
+ const normalizeSession = (response) => {
42
+ const data = asRecord(response);
43
+ const { accessToken, refreshToken } = getTokens(data);
44
+ const user = normalizeUserShape(data.user);
45
+ if (!accessToken) {
46
+ throw new Error('Invalid auth response: missing access token');
47
+ }
48
+ return {
49
+ user,
50
+ accessToken,
51
+ refreshToken
52
+ };
53
+ };
54
+ export const createFuseJwtAuthProvider = (authClient) => {
55
+ function FuseJwtAuthProvider(props) {
56
+ const { ref, children, onAuthStateChanged } = props;
57
+ const [authState, setAuthState] = useState({
58
+ authStatus: 'configuring',
59
+ isAuthenticated: false,
60
+ user: null
61
+ });
62
+ useEffect(() => {
63
+ if (onAuthStateChanged) {
64
+ onAuthStateChanged(authState);
65
+ }
66
+ }, [authState, onAuthStateChanged]);
67
+ const signOut = useCallback(() => {
68
+ authClient.logout();
69
+ setAuthState({
70
+ authStatus: 'unauthenticated',
71
+ isAuthenticated: false,
72
+ user: null
73
+ });
74
+ }, []);
75
+ const refreshToken = useCallback(async () => {
76
+ try {
77
+ const response = await authClient.refreshToken();
78
+ return response.accessToken || null;
79
+ }
80
+ catch {
81
+ return null;
82
+ }
83
+ }, []);
84
+ useEffect(() => {
85
+ let isMounted = true;
86
+ const attemptAutoLogin = async () => {
87
+ let token = authClient.getAccessToken();
88
+ if (!isTokenValid(token)) {
89
+ token = await refreshToken();
90
+ }
91
+ if (!isTokenValid(token)) {
92
+ return false;
93
+ }
94
+ try {
95
+ authClient.setAccessToken(token);
96
+ const response = await authClient.getMe();
97
+ return normalizeUserShape(response.user);
98
+ }
99
+ catch {
100
+ return false;
101
+ }
102
+ };
103
+ if (!authState.isAuthenticated) {
104
+ attemptAutoLogin().then((userData) => {
105
+ if (!isMounted) {
106
+ return;
107
+ }
108
+ if (userData) {
109
+ setAuthState({
110
+ authStatus: 'authenticated',
111
+ isAuthenticated: true,
112
+ user: userData
113
+ });
114
+ }
115
+ else {
116
+ authClient.logout();
117
+ setAuthState({
118
+ authStatus: 'unauthenticated',
119
+ isAuthenticated: false,
120
+ user: null
121
+ });
122
+ }
123
+ });
124
+ }
125
+ return () => {
126
+ isMounted = false;
127
+ };
128
+ }, [authState.isAuthenticated, refreshToken]);
129
+ const signIn = useCallback(async (credentials) => {
130
+ const session = normalizeSession(await authClient.loginBasic({
131
+ login: credentials.login || credentials.username || '',
132
+ password: credentials.password,
133
+ client: 'web'
134
+ }));
135
+ setAuthState({
136
+ authStatus: 'authenticated',
137
+ isAuthenticated: true,
138
+ user: session.user
139
+ });
140
+ return {
141
+ user: session.user,
142
+ accessToken: session.accessToken,
143
+ refreshToken: session.refreshToken,
144
+ access_token: session.accessToken,
145
+ refresh_token: session.refreshToken
146
+ };
147
+ }, []);
148
+ const requestOtp = useCallback(async (payload) => authClient.requestOtp(payload), []);
149
+ const signInSocial = useCallback(async (payload) => {
150
+ const session = normalizeSession(await authClient.loginSocial({
151
+ ...payload,
152
+ client: payload.client ?? 'web'
153
+ }));
154
+ setAuthState({
155
+ authStatus: 'authenticated',
156
+ isAuthenticated: true,
157
+ user: session.user
158
+ });
159
+ return {
160
+ user: session.user,
161
+ accessToken: session.accessToken,
162
+ refreshToken: session.refreshToken,
163
+ access_token: session.accessToken,
164
+ refresh_token: session.refreshToken
165
+ };
166
+ }, []);
167
+ const signInOtp = useCallback(async (payload) => {
168
+ const session = normalizeSession(await authClient.verifyOtp({
169
+ ...payload,
170
+ client: payload.client ?? 'web'
171
+ }));
172
+ setAuthState({
173
+ authStatus: 'authenticated',
174
+ isAuthenticated: true,
175
+ user: session.user
176
+ });
177
+ return {
178
+ user: session.user,
179
+ accessToken: session.accessToken,
180
+ refreshToken: session.refreshToken,
181
+ access_token: session.accessToken,
182
+ refresh_token: session.refreshToken
183
+ };
184
+ }, []);
185
+ const signUp = useCallback(async (payload) => {
186
+ const response = await authClient.register(payload);
187
+ return response;
188
+ }, []);
189
+ const requestPasswordReset = useCallback(async (payload) => authClient.requestPasswordReset(payload), []);
190
+ const confirmAccountEmail = useCallback(async (payload) => authClient.confirmAccountEmail(payload), []);
191
+ const resendAccountConfirmation = useCallback(async (payload) => authClient.resendAccountConfirmation(payload), []);
192
+ const confirmPasswordReset = useCallback(async (payload) => authClient.confirmPasswordReset(payload), []);
193
+ const changePassword = useCallback(async (payload) => authClient.changePassword(payload), []);
194
+ const switchProfile = useCallback(async (profileId) => {
195
+ const session = normalizeSession(await authClient.switchProfile({
196
+ profile: profileId,
197
+ client: 'web'
198
+ }));
199
+ setAuthState({
200
+ authStatus: 'authenticated',
201
+ isAuthenticated: true,
202
+ user: session.user
203
+ });
204
+ return {
205
+ user: session.user,
206
+ accessToken: session.accessToken,
207
+ refreshToken: session.refreshToken,
208
+ access_token: session.accessToken,
209
+ refresh_token: session.refreshToken
210
+ };
211
+ }, []);
212
+ const getProfiles = useCallback(async () => {
213
+ const response = await authClient.getProfiles();
214
+ if (Array.isArray(response)) {
215
+ return response;
216
+ }
217
+ return (response.results ?? []);
218
+ }, []);
219
+ const contextValue = useMemo(() => ({
220
+ ...authState,
221
+ signIn,
222
+ signInSocial,
223
+ requestOtp,
224
+ signInOtp,
225
+ signUp,
226
+ confirmAccountEmail,
227
+ resendAccountConfirmation,
228
+ requestPasswordReset,
229
+ confirmPasswordReset,
230
+ changePassword,
231
+ switchProfile,
232
+ getProfiles,
233
+ signOut,
234
+ refreshToken
235
+ }), [
236
+ authState,
237
+ signIn,
238
+ signInSocial,
239
+ requestOtp,
240
+ signInOtp,
241
+ signUp,
242
+ confirmAccountEmail,
243
+ resendAccountConfirmation,
244
+ requestPasswordReset,
245
+ confirmPasswordReset,
246
+ changePassword,
247
+ switchProfile,
248
+ getProfiles,
249
+ signOut,
250
+ refreshToken
251
+ ]);
252
+ useImperativeHandle(ref, () => ({
253
+ signOut
254
+ }));
255
+ return _jsx(FuseJwtAuthContext.Provider, { value: contextValue, children: children });
256
+ }
257
+ return FuseJwtAuthProvider;
258
+ };
259
+ export const useFuseJwtAuth = () => {
260
+ const context = useContext(FuseJwtAuthContext);
261
+ if (!context) {
262
+ throw new Error('useFuseJwtAuth must be used within createFuseJwtAuthProvider provider');
263
+ }
264
+ return context;
265
+ };
@@ -0,0 +1,59 @@
1
+ import React, { ReactNode } from 'react';
2
+ import { AuthClient } from '../client';
3
+ export type FuseUser = {
4
+ id: string;
5
+ role: string[] | string | null;
6
+ displayName: string;
7
+ photoURL?: string;
8
+ email?: string;
9
+ shortcuts?: string[];
10
+ settings?: Record<string, unknown>;
11
+ loginRedirectUrl?: string;
12
+ };
13
+ export declare const fuseAuthRoles: {
14
+ readonly admin: readonly ["admin"];
15
+ readonly staff: readonly ["admin", "staff"];
16
+ readonly user: readonly ["admin", "staff", "user"];
17
+ readonly onlyGuest: readonly [];
18
+ };
19
+ export declare function createFuseUserModel<TUser extends FuseUser>(): (data?: Partial<TUser>) => TUser;
20
+ type CreateFuseUseUserOptions<TUser extends FuseUser> = {
21
+ useAuth: () => {
22
+ authState: {
23
+ user: TUser | null;
24
+ } | null;
25
+ signOut: () => void;
26
+ updateUser: (updates: Partial<TUser>) => Promise<Response>;
27
+ };
28
+ setIn: (obj: unknown, path: string, value: unknown) => unknown;
29
+ };
30
+ export declare function createFuseUseUser<TUser extends FuseUser>(options: CreateFuseUseUserOptions<TUser>): () => {
31
+ data: TUser;
32
+ isGuest: boolean;
33
+ signOut: () => Promise<void>;
34
+ updateUser: (data: Partial<TUser>) => Promise<TUser>;
35
+ updateUserSettings: (newSettings: TUser["settings"]) => Promise<Record<string, unknown> | undefined>;
36
+ };
37
+ export declare function createWithUser<TProps extends object, TUserHookReturn>(useUserHook: () => TUserHookReturn): (Component: React.ComponentType<TProps & TUserHookReturn>) => (props: TProps) => import("react/jsx-runtime").JSX.Element;
38
+ type CreateFuseAuthenticationOptions<TUser extends FuseUser> = {
39
+ authClient: AuthClient;
40
+ FuseAuthProvider: React.ComponentType<{
41
+ providers: Array<{
42
+ name: string;
43
+ Provider: React.ComponentType<any> | React.ForwardRefExoticComponent<any>;
44
+ }>;
45
+ children: (authState: {
46
+ user?: TUser | null;
47
+ } | null) => ReactNode;
48
+ }>;
49
+ FuseAuthorization: React.ComponentType<{
50
+ userRole: TUser['role'] | undefined;
51
+ children: ReactNode;
52
+ }>;
53
+ providerName?: string;
54
+ };
55
+ export declare function createFuseAuthentication<TUser extends FuseUser>(options: CreateFuseAuthenticationOptions<TUser>): (props: {
56
+ children: ReactNode;
57
+ }) => import("react/jsx-runtime").JSX.Element;
58
+ export {};
59
+ //# sourceMappingURL=fuseIntegration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fuseIntegration.d.ts","sourceRoot":"","sources":["../../../src/auth/fuse/fuseIntegration.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAW,MAAM,OAAO,CAAC;AAElD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAKvC,MAAM,MAAM,QAAQ,GAAG;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,eAAO,MAAM,aAAa;;;;;CAKhB,CAAC;AAEX,wBAAgB,mBAAmB,CAAC,KAAK,SAAS,QAAQ,MAChD,OAAO,OAAO,CAAC,KAAK,CAAC,KAAG,KAAK,CAetC;AAED,KAAK,wBAAwB,CAAC,KAAK,SAAS,QAAQ,IAAI;IACtD,OAAO,EAAE,MAAM;QACb,SAAS,EAAE;YAAE,IAAI,EAAE,KAAK,GAAG,IAAI,CAAA;SAAE,GAAG,IAAI,CAAC;QACzC,OAAO,EAAE,MAAM,IAAI,CAAC;QACpB,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;KAC5D,CAAC;IACF,KAAK,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;CAChE,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,KAAK,SAAS,QAAQ,EAAE,OAAO,EAAE,wBAAwB,CAAC,KAAK,CAAC;;;;uBAQxD,OAAO,CAAC,KAAK,CAAC;sCAWC,KAAK,CAAC,UAAU,CAAC;EAuBzE;AAED,wBAAgB,cAAc,CAAC,MAAM,SAAS,MAAM,EAAE,eAAe,EACnE,WAAW,EAAE,MAAM,eAAe,IAET,WAAW,KAAK,CAAC,aAAa,CAAC,MAAM,GAAG,eAAe,CAAC,MAC9C,OAAO,MAAM,6CAUjD;AAED,KAAK,+BAA+B,CAAC,KAAK,SAAS,QAAQ,IAAI;IAC7D,UAAU,EAAE,UAAU,CAAC;IACvB,gBAAgB,EAAE,KAAK,CAAC,aAAa,CAAC;QACpC,SAAS,EAAE,KAAK,CAAC;YACf,IAAI,EAAE,MAAM,CAAC;YACb,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAC;SAC3E,CAAC,CAAC;QACH,QAAQ,EAAE,CAAC,SAAS,EAAE;YAAE,IAAI,CAAC,EAAE,KAAK,GAAG,IAAI,CAAA;SAAE,GAAG,IAAI,KAAK,SAAS,CAAC;KACpE,CAAC,CAAC;IACH,iBAAiB,EAAE,KAAK,CAAC,aAAa,CAAC;QACrC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;QACpC,QAAQ,EAAE,SAAS,CAAC;KACrB,CAAC,CAAC;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,wBAAgB,wBAAwB,CAAC,KAAK,SAAS,QAAQ,EAAE,OAAO,EAAE,+BAA+B,CAAC,KAAK,CAAC,IAW/E,OAAO;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,6CAY9D"}
@@ -0,0 +1,85 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useMemo } from 'react';
3
+ import { createFuseJwtAuthProvider } from './fuseAdapter';
4
+ const isEqual = (a, b) => JSON.stringify(a) === JSON.stringify(b);
5
+ export const fuseAuthRoles = {
6
+ admin: ['admin'],
7
+ staff: ['admin', 'staff'],
8
+ user: ['admin', 'staff', 'user'],
9
+ onlyGuest: []
10
+ };
11
+ export function createFuseUserModel() {
12
+ return (data) => {
13
+ const userData = data || {};
14
+ return {
15
+ id: null,
16
+ role: null,
17
+ displayName: null,
18
+ photoURL: '',
19
+ email: '',
20
+ shortcuts: [],
21
+ settings: {},
22
+ loginRedirectUrl: '/',
23
+ ...userData
24
+ };
25
+ };
26
+ }
27
+ export function createFuseUseUser(options) {
28
+ const { useAuth, setIn } = options;
29
+ return function useUser() {
30
+ const { authState, signOut, updateUser } = useAuth();
31
+ const user = authState?.user;
32
+ const isGuest = useMemo(() => !user?.role || user?.role?.length === 0, [user]);
33
+ async function handleUpdateUser(data) {
34
+ const response = await updateUser(data);
35
+ if (!response.ok) {
36
+ throw new Error('Failed to update user');
37
+ }
38
+ const updatedUser = (await response.json());
39
+ return updatedUser;
40
+ }
41
+ async function handleUpdateUserSettings(newSettings) {
42
+ const newUser = setIn(user, 'settings', newSettings);
43
+ if (isEqual(user, newUser)) {
44
+ return undefined;
45
+ }
46
+ const updatedUser = await handleUpdateUser(newUser);
47
+ return updatedUser?.settings;
48
+ }
49
+ async function handleSignOut() {
50
+ return signOut();
51
+ }
52
+ return {
53
+ data: user,
54
+ isGuest,
55
+ signOut: handleSignOut,
56
+ updateUser: handleUpdateUser,
57
+ updateUserSettings: handleUpdateUserSettings
58
+ };
59
+ };
60
+ }
61
+ export function createWithUser(useUserHook) {
62
+ return function withUser(Component) {
63
+ return function WrappedComponent(props) {
64
+ const userProps = useUserHook();
65
+ return (_jsx(Component, { ...props, ...userProps }));
66
+ };
67
+ };
68
+ }
69
+ export function createFuseAuthentication(options) {
70
+ const { authClient, FuseAuthProvider, FuseAuthorization, providerName = 'jb-jwt' } = options;
71
+ const JwtProvider = createFuseJwtAuthProvider(authClient);
72
+ const providers = [
73
+ {
74
+ name: providerName,
75
+ Provider: JwtProvider
76
+ }
77
+ ];
78
+ return function Authentication(props) {
79
+ const { children } = props;
80
+ return (_jsx(FuseAuthProvider, { providers: providers, children: (authState) => {
81
+ const userRole = authState?.user?.role;
82
+ return _jsx(FuseAuthorization, { userRole: userRole, children: children });
83
+ } }));
84
+ };
85
+ }
@@ -0,0 +1,4 @@
1
+ export * from './createFuseAuthViews';
2
+ export * from './fuseAdapter';
3
+ export * from './fuseIntegration';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/auth/fuse/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './createFuseAuthViews';
2
+ export * from './fuseAdapter';
3
+ export * from './fuseIntegration';
@@ -0,0 +1,11 @@
1
+ export * from './types';
2
+ export * from './storage';
3
+ export * from './client';
4
+ export * from './provider';
5
+ export * from './routes';
6
+ export * from './fuse';
7
+ export * from './ui';
8
+ export * from './query';
9
+ export * from './forms';
10
+ export * from './constants';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,MAAM,CAAC;AACrB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC"}
@@ -0,0 +1,10 @@
1
+ export * from './types';
2
+ export * from './storage';
3
+ export * from './client';
4
+ export * from './provider';
5
+ export * from './routes';
6
+ export * from './fuse';
7
+ export * from './ui';
8
+ export * from './query';
9
+ export * from './forms';
10
+ export * from './constants';
@@ -0,0 +1,35 @@
1
+ import { ReactNode } from 'react';
2
+ import { AuthClient } from './client';
3
+ import { AccountConfirmationPayload, AccountConfirmationResendPayload, ApiDetailResponse, LoginBasicPayload, PasswordChangePayload, PasswordResetConfirmPayload, PasswordResetRequestPayload, ProfilesResponse, RegisterPayload, RequestOtpPayload, SwitchProfilePayload, VerifyOtpPayload } from './types';
4
+ export type JBAuthStatus = 'configuring' | 'authenticated' | 'unauthenticated';
5
+ export type JBAuthContextValue = {
6
+ authStatus: JBAuthStatus;
7
+ isAuthenticated: boolean;
8
+ user: unknown | null;
9
+ signIn: (payload: LoginBasicPayload) => Promise<unknown>;
10
+ signUp: (payload: RegisterPayload) => Promise<ApiDetailResponse>;
11
+ confirmAccountEmail: (payload: AccountConfirmationPayload) => Promise<ApiDetailResponse>;
12
+ resendAccountConfirmation: (payload: AccountConfirmationResendPayload) => Promise<ApiDetailResponse>;
13
+ signInOtp: (payload: VerifyOtpPayload) => Promise<unknown>;
14
+ requestOtp: (payload: RequestOtpPayload) => Promise<Record<string, unknown>>;
15
+ requestPasswordReset: (payload: PasswordResetRequestPayload) => Promise<Record<string, unknown>>;
16
+ confirmPasswordReset: (payload: PasswordResetConfirmPayload) => Promise<Record<string, unknown>>;
17
+ changePassword: (payload: PasswordChangePayload) => Promise<Record<string, unknown>>;
18
+ getProfiles: () => Promise<ProfilesResponse>;
19
+ switchProfile: (payload: SwitchProfilePayload) => Promise<unknown>;
20
+ signOut: () => void;
21
+ refreshToken: () => Promise<string | null>;
22
+ };
23
+ type JBAuthProviderProps = {
24
+ authClient: AuthClient;
25
+ children: ReactNode;
26
+ onAuthStateChanged?: (state: {
27
+ authStatus: JBAuthStatus;
28
+ isAuthenticated: boolean;
29
+ user: unknown | null;
30
+ }) => void;
31
+ };
32
+ export declare function JBAuthProvider(props: JBAuthProviderProps): import("react/jsx-runtime").JSX.Element;
33
+ export declare function useJBAuth(): JBAuthContextValue;
34
+ export {};
35
+ //# sourceMappingURL=provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/auth/provider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,SAAS,EAAyD,MAAM,OAAO,CAAC;AAExG,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EACL,0BAA0B,EAC1B,gCAAgC,EAChC,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,2BAA2B,EAC3B,2BAA2B,EAC3B,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAEjB,MAAM,MAAM,YAAY,GAAG,aAAa,GAAG,eAAe,GAAG,iBAAiB,CAAC;AAE/E,MAAM,MAAM,kBAAkB,GAAG;IAC/B,UAAU,EAAE,YAAY,CAAC;IACzB,eAAe,EAAE,OAAO,CAAC;IACzB,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACzD,MAAM,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACjE,mBAAmB,EAAE,CAAC,OAAO,EAAE,0BAA0B,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACzF,yBAAyB,EAAE,CAAC,OAAO,EAAE,gCAAgC,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACrG,SAAS,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3D,UAAU,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC7E,oBAAoB,EAAE,CAAC,OAAO,EAAE,2BAA2B,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACjG,oBAAoB,EAAE,CAAC,OAAO,EAAE,2BAA2B,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACjG,cAAc,EAAE,CAAC,OAAO,EAAE,qBAAqB,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACrF,WAAW,EAAE,MAAM,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC7C,aAAa,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACnE,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,YAAY,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CAC5C,CAAC;AAEF,KAAK,mBAAmB,GAAG;IACzB,UAAU,EAAE,UAAU,CAAC;IACvB,QAAQ,EAAE,SAAS,CAAC;IACpB,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE;QAC3B,UAAU,EAAE,YAAY,CAAC;QACzB,eAAe,EAAE,OAAO,CAAC;QACzB,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;KACtB,KAAK,IAAI,CAAC;CACZ,CAAC;AAeF,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,2CAmKxD;AAED,wBAAgB,SAAS,uBAMxB"}
@@ -0,0 +1,133 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { createContext, useCallback, useContext, useEffect, useMemo, useState } from 'react';
3
+ const JBAuthContext = createContext(undefined);
4
+ const isTokenValid = (token) => {
5
+ if (!token)
6
+ return false;
7
+ try {
8
+ const payload = JSON.parse(atob(token.split('.')[1]));
9
+ const now = Date.now() / 1000;
10
+ return payload.exp > now;
11
+ }
12
+ catch {
13
+ return false;
14
+ }
15
+ };
16
+ export function JBAuthProvider(props) {
17
+ const { authClient, children, onAuthStateChanged } = props;
18
+ const [authStatus, setAuthStatus] = useState('configuring');
19
+ const [user, setUser] = useState(null);
20
+ useEffect(() => {
21
+ onAuthStateChanged?.({
22
+ authStatus,
23
+ isAuthenticated: authStatus === 'authenticated',
24
+ user
25
+ });
26
+ }, [authStatus, onAuthStateChanged, user]);
27
+ const setAuthenticatedSession = useCallback((authResponse) => {
28
+ setUser(authResponse.user ?? null);
29
+ setAuthStatus('authenticated');
30
+ return authResponse.user ?? null;
31
+ }, []);
32
+ const signIn = useCallback(async (payload) => {
33
+ const response = await authClient.loginBasic(payload);
34
+ return setAuthenticatedSession(response);
35
+ }, [authClient, setAuthenticatedSession]);
36
+ const signInOtp = useCallback(async (payload) => {
37
+ const response = await authClient.verifyOtp(payload);
38
+ return setAuthenticatedSession(response);
39
+ }, [authClient, setAuthenticatedSession]);
40
+ const signUp = useCallback(async (payload) => {
41
+ const response = await authClient.register(payload);
42
+ return response;
43
+ }, [authClient]);
44
+ const confirmAccountEmail = useCallback(async (payload) => authClient.confirmAccountEmail(payload), [authClient]);
45
+ const resendAccountConfirmation = useCallback(async (payload) => authClient.resendAccountConfirmation(payload), [authClient]);
46
+ const signOut = useCallback(() => {
47
+ authClient.logout();
48
+ setUser(null);
49
+ setAuthStatus('unauthenticated');
50
+ }, [authClient]);
51
+ const refreshToken = useCallback(async () => {
52
+ const response = await authClient.refreshToken();
53
+ return response.accessToken || null;
54
+ }, [authClient]);
55
+ const requestOtp = useCallback(async (payload) => authClient.requestOtp(payload), [authClient]);
56
+ const requestPasswordReset = useCallback(async (payload) => authClient.requestPasswordReset(payload), [authClient]);
57
+ const confirmPasswordReset = useCallback(async (payload) => authClient.confirmPasswordReset(payload), [authClient]);
58
+ const changePassword = useCallback(async (payload) => authClient.changePassword(payload), [authClient]);
59
+ const getProfiles = useCallback(async () => authClient.getProfiles(), [authClient]);
60
+ const switchProfile = useCallback(async (payload) => {
61
+ const response = await authClient.switchProfile(payload);
62
+ return setAuthenticatedSession(response);
63
+ }, [authClient, setAuthenticatedSession]);
64
+ useEffect(() => {
65
+ let isMounted = true;
66
+ const bootstrapAuth = async () => {
67
+ const accessToken = authClient.getAccessToken();
68
+ if (!isTokenValid(accessToken)) {
69
+ setAuthStatus('unauthenticated');
70
+ return;
71
+ }
72
+ try {
73
+ const response = await authClient.getMe();
74
+ if (!isMounted)
75
+ return;
76
+ setAuthenticatedSession(response);
77
+ }
78
+ catch {
79
+ if (!isMounted)
80
+ return;
81
+ authClient.logout();
82
+ setUser(null);
83
+ setAuthStatus('unauthenticated');
84
+ }
85
+ };
86
+ bootstrapAuth();
87
+ return () => {
88
+ isMounted = false;
89
+ };
90
+ }, [authClient, setAuthenticatedSession]);
91
+ const contextValue = useMemo(() => ({
92
+ authStatus,
93
+ isAuthenticated: authStatus === 'authenticated',
94
+ user,
95
+ signIn,
96
+ signUp,
97
+ confirmAccountEmail,
98
+ resendAccountConfirmation,
99
+ signInOtp,
100
+ requestOtp,
101
+ requestPasswordReset,
102
+ confirmPasswordReset,
103
+ changePassword,
104
+ getProfiles,
105
+ switchProfile,
106
+ signOut,
107
+ refreshToken
108
+ }), [
109
+ authStatus,
110
+ user,
111
+ signIn,
112
+ signUp,
113
+ confirmAccountEmail,
114
+ resendAccountConfirmation,
115
+ signInOtp,
116
+ requestOtp,
117
+ requestPasswordReset,
118
+ confirmPasswordReset,
119
+ changePassword,
120
+ getProfiles,
121
+ switchProfile,
122
+ signOut,
123
+ refreshToken
124
+ ]);
125
+ return _jsx(JBAuthContext.Provider, { value: contextValue, children: children });
126
+ }
127
+ export function useJBAuth() {
128
+ const context = useContext(JBAuthContext);
129
+ if (!context) {
130
+ throw new Error('useJBAuth must be used within JBAuthProvider');
131
+ }
132
+ return context;
133
+ }
@@ -0,0 +1,23 @@
1
+ import { AuthClient } from './client';
2
+ import { AccountUpdatePayload, DeleteAccountPayload, JbDrfWebAuthResponse, LinkSocialPayload, LoginBasicPayload, LoginSocialPayload, SwitchProfilePayload, UnlinkSocialPayload } from './types';
3
+ export declare const authQueryKeys: {
4
+ all: readonly ["auth"];
5
+ me: () => readonly ["auth", "me"];
6
+ social: () => readonly ["auth", "social"];
7
+ account: () => readonly ["auth", "account"];
8
+ };
9
+ export declare const createAuthQueryHooks: (authClient: Pick<AuthClient, "getMe" | "loginBasic" | "loginSocial" | "linkSocial" | "unlinkSocial" | "updateAccount" | "deleteAccount" | "switchProfile" | "logout">) => {
10
+ useMeQuery: (enabled?: boolean) => import("@tanstack/react-query").UseQueryResult<JbDrfWebAuthResponse, Error>;
11
+ useLoginMutation: () => import("@tanstack/react-query").UseMutationResult<JbDrfWebAuthResponse, Error, LoginBasicPayload, unknown>;
12
+ useSocialLoginMutation: () => import("@tanstack/react-query").UseMutationResult<JbDrfWebAuthResponse, Error, LoginSocialPayload, unknown>;
13
+ useLinkSocialMutation: () => import("@tanstack/react-query").UseMutationResult<Record<string, unknown>, Error, LinkSocialPayload, unknown>;
14
+ useUnlinkSocialMutation: () => import("@tanstack/react-query").UseMutationResult<Record<string, unknown>, Error, UnlinkSocialPayload, unknown>;
15
+ useAccountUpdateMutation: () => import("@tanstack/react-query").UseMutationResult<Record<string, unknown>, Error, {
16
+ payload: AccountUpdatePayload;
17
+ method?: "PATCH" | "PUT";
18
+ }, unknown>;
19
+ useDeleteAccountMutation: () => import("@tanstack/react-query").UseMutationResult<unknown, Error, DeleteAccountPayload, unknown>;
20
+ useSwitchProfileMutation: () => import("@tanstack/react-query").UseMutationResult<JbDrfWebAuthResponse, Error, SwitchProfilePayload, unknown>;
21
+ useLogoutMutation: () => import("@tanstack/react-query").UseMutationResult<void, Error, void, unknown>;
22
+ };
23
+ //# sourceMappingURL=query.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/auth/query.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,SAAS,CAAC;AAEjB,eAAO,MAAM,aAAa;;;;;CAKzB,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,YAAY,IAAI,CACd,UAAU,EACR,OAAO,GACP,YAAY,GACZ,aAAa,GACb,YAAY,GACZ,cAAc,GACd,eAAe,GACf,eAAe,GACf,eAAe,GACf,QAAQ,CACX;;;;;;;iBA8DgD,oBAAoB;iBAAW,OAAO,GAAG,KAAK;;;;;CA6ChG,CAAC"}