@joelbarron/react-web-dev-kit 0.1.9 → 0.1.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/auth/client.d.ts +46 -0
- package/dist/auth/client.d.ts.map +1 -0
- package/dist/auth/client.js +379 -0
- package/dist/auth/constants/countryCallingCodes.d.ts +9 -0
- package/dist/auth/constants/countryCallingCodes.d.ts.map +1 -0
- package/dist/auth/constants/countryCallingCodes.js +209 -0
- package/dist/auth/constants/gender.d.ts +9 -0
- package/dist/auth/constants/gender.d.ts.map +1 -0
- package/dist/auth/constants/gender.js +12 -0
- package/dist/auth/constants/index.d.ts +3 -0
- package/dist/auth/constants/index.d.ts.map +1 -0
- package/dist/auth/constants/index.js +2 -0
- package/dist/auth/forms/account/AuthAccountConfirmationForm.d.ts +18 -0
- package/dist/auth/forms/account/AuthAccountConfirmationForm.d.ts.map +1 -0
- package/dist/auth/forms/account/AuthAccountConfirmationForm.js +167 -0
- package/dist/auth/forms/account/index.d.ts +2 -0
- package/dist/auth/forms/account/index.d.ts.map +1 -0
- package/dist/auth/forms/account/index.js +1 -0
- package/dist/auth/forms/errorParser.d.ts +7 -0
- package/dist/auth/forms/errorParser.d.ts.map +1 -0
- package/dist/auth/forms/errorParser.js +65 -0
- package/dist/auth/forms/index.d.ts +6 -0
- package/dist/auth/forms/index.d.ts.map +1 -0
- package/dist/auth/forms/index.js +5 -0
- package/dist/auth/forms/password/AuthForgotPasswordForm.d.ts +16 -0
- package/dist/auth/forms/password/AuthForgotPasswordForm.d.ts.map +1 -0
- package/dist/auth/forms/password/AuthForgotPasswordForm.js +109 -0
- package/dist/auth/forms/password/AuthPasswordResetConfirmForm.d.ts +17 -0
- package/dist/auth/forms/password/AuthPasswordResetConfirmForm.d.ts.map +1 -0
- package/dist/auth/forms/password/AuthPasswordResetConfirmForm.js +163 -0
- package/dist/auth/forms/password/AuthResetPasswordForm.d.ts +12 -0
- package/dist/auth/forms/password/AuthResetPasswordForm.d.ts.map +1 -0
- package/dist/auth/forms/password/AuthResetPasswordForm.js +22 -0
- package/dist/auth/forms/password/index.d.ts +4 -0
- package/dist/auth/forms/password/index.d.ts.map +1 -0
- package/dist/auth/forms/password/index.js +3 -0
- package/dist/auth/forms/password/passwordValidation.d.ts +3 -0
- package/dist/auth/forms/password/passwordValidation.d.ts.map +1 -0
- package/dist/auth/forms/password/passwordValidation.js +45 -0
- package/dist/auth/forms/sign-in/AuthOtpSignInForm.d.ts +24 -0
- package/dist/auth/forms/sign-in/AuthOtpSignInForm.d.ts.map +1 -0
- package/dist/auth/forms/sign-in/AuthOtpSignInForm.js +227 -0
- package/dist/auth/forms/sign-in/AuthPasswordSignInForm.d.ts +22 -0
- package/dist/auth/forms/sign-in/AuthPasswordSignInForm.d.ts.map +1 -0
- package/dist/auth/forms/sign-in/AuthPasswordSignInForm.js +148 -0
- package/dist/auth/forms/sign-in/index.d.ts +3 -0
- package/dist/auth/forms/sign-in/index.d.ts.map +1 -0
- package/dist/auth/forms/sign-in/index.js +2 -0
- package/dist/auth/forms/sign-up/AuthSignUpForm.d.ts +37 -0
- package/dist/auth/forms/sign-up/AuthSignUpForm.d.ts.map +1 -0
- package/dist/auth/forms/sign-up/AuthSignUpForm.js +193 -0
- package/dist/auth/forms/sign-up/index.d.ts +2 -0
- package/dist/auth/forms/sign-up/index.d.ts.map +1 -0
- package/dist/auth/forms/sign-up/index.js +1 -0
- package/dist/auth/fuse/createFuseAuthViews.d.ts +25 -0
- package/dist/auth/fuse/createFuseAuthViews.d.ts.map +1 -0
- package/dist/auth/fuse/createFuseAuthViews.js +510 -0
- package/dist/auth/fuse/fuseAdapter.d.ts +42 -0
- package/dist/auth/fuse/fuseAdapter.d.ts.map +1 -0
- package/dist/auth/fuse/fuseAdapter.js +291 -0
- package/dist/auth/fuse/fuseIntegration.d.ts +74 -0
- package/dist/auth/fuse/fuseIntegration.d.ts.map +1 -0
- package/dist/auth/fuse/fuseIntegration.js +121 -0
- package/dist/auth/fuse/index.d.ts +4 -0
- package/dist/auth/fuse/index.d.ts.map +1 -0
- package/dist/auth/fuse/index.js +3 -0
- package/dist/auth/index.d.ts +11 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +10 -0
- package/dist/auth/provider.d.ts +35 -0
- package/dist/auth/provider.d.ts.map +1 -0
- package/dist/auth/provider.js +133 -0
- package/dist/auth/query.d.ts +23 -0
- package/dist/auth/query.d.ts.map +1 -0
- package/dist/auth/query.js +103 -0
- package/dist/auth/routes.d.ts +37 -0
- package/dist/auth/routes.d.ts.map +1 -0
- package/dist/auth/routes.js +75 -0
- package/dist/auth/social/providerAuth.d.ts +101 -0
- package/dist/auth/social/providerAuth.d.ts.map +1 -0
- package/dist/auth/social/providerAuth.js +207 -0
- package/dist/auth/storage.d.ts +3 -0
- package/dist/auth/storage.d.ts.map +1 -0
- package/dist/auth/storage.js +20 -0
- package/dist/auth/types.d.ts +238 -0
- package/dist/auth/types.d.ts.map +1 -0
- package/dist/auth/types.js +1 -0
- package/dist/auth/ui/AuthPageTitle.d.ts +7 -0
- package/dist/auth/ui/AuthPageTitle.d.ts.map +1 -0
- package/dist/auth/ui/AuthPageTitle.js +7 -0
- package/dist/auth/ui/AuthPagesMessageSection.d.ts +3 -0
- package/dist/auth/ui/AuthPagesMessageSection.d.ts.map +1 -0
- package/dist/auth/ui/AuthPagesMessageSection.js +39 -0
- package/dist/auth/ui/AuthPrimaryButton.d.ts +9 -0
- package/dist/auth/ui/AuthPrimaryButton.d.ts.map +1 -0
- package/dist/auth/ui/AuthPrimaryButton.js +19 -0
- package/dist/auth/ui/AuthRoleSelectionDialog.d.ts +14 -0
- package/dist/auth/ui/AuthRoleSelectionDialog.d.ts.map +1 -0
- package/dist/auth/ui/AuthRoleSelectionDialog.js +39 -0
- package/dist/auth/ui/AuthRoutePageWrapper.d.ts +12 -0
- package/dist/auth/ui/AuthRoutePageWrapper.d.ts.map +1 -0
- package/dist/auth/ui/AuthRoutePageWrapper.js +61 -0
- package/dist/auth/ui/AuthSecondaryButton.d.ts +7 -0
- package/dist/auth/ui/AuthSecondaryButton.d.ts.map +1 -0
- package/dist/auth/ui/AuthSecondaryButton.js +18 -0
- package/dist/auth/ui/AuthSocialProviderButton.d.ts +11 -0
- package/dist/auth/ui/AuthSocialProviderButton.d.ts.map +1 -0
- package/dist/auth/ui/AuthSocialProviderButton.js +33 -0
- package/dist/auth/ui/index.d.ts +9 -0
- package/dist/auth/ui/index.d.ts.map +1 -0
- package/dist/auth/ui/index.js +8 -0
- package/dist/auth/ui/types.d.ts +15 -0
- package/dist/auth/ui/types.d.ts.map +1 -0
- package/dist/auth/ui/types.js +1 -0
- package/dist/config/createConfig.d.ts +14 -0
- package/dist/config/createConfig.d.ts.map +1 -0
- package/dist/config/createConfig.js +179 -0
- package/dist/config/defaults.d.ts +3 -0
- package/dist/config/defaults.d.ts.map +1 -0
- package/dist/config/defaults.js +39 -0
- package/dist/config/index.d.ts +5 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +4 -0
- package/dist/config/merge.d.ts +2 -0
- package/dist/config/merge.d.ts.map +1 -0
- package/dist/config/merge.js +18 -0
- package/dist/config/types.d.ts +53 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +1 -0
- package/dist/core/buttons/JBButton.d.ts +8 -0
- package/dist/core/buttons/JBButton.d.ts.map +1 -0
- package/dist/core/buttons/JBButton.js +55 -0
- package/dist/core/buttons/index.d.ts +2 -0
- package/dist/core/buttons/index.d.ts.map +1 -0
- package/dist/core/buttons/index.js +1 -0
- package/dist/core/dialogs/JBConfirmDialog.d.ts +15 -0
- package/dist/core/dialogs/JBConfirmDialog.d.ts.map +1 -0
- package/dist/core/dialogs/JBConfirmDialog.js +6 -0
- package/dist/core/dialogs/index.d.ts +2 -0
- package/dist/core/dialogs/index.d.ts.map +1 -0
- package/dist/core/dialogs/index.js +1 -0
- package/dist/core/index.d.ts +5 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +4 -0
- package/dist/core/layout/JBContentContainer.d.ts +31 -0
- package/dist/core/layout/JBContentContainer.d.ts.map +1 -0
- package/dist/core/layout/JBContentContainer.js +50 -0
- package/dist/core/layout/JBFormHeader.d.ts +3 -0
- package/dist/core/layout/JBFormHeader.d.ts.map +1 -0
- package/dist/core/layout/JBFormHeader.js +131 -0
- package/dist/core/layout/index.d.ts +3 -0
- package/dist/core/layout/index.d.ts.map +1 -0
- package/dist/core/layout/index.js +2 -0
- package/dist/core/skeletons/JBFormContentSkeleton.d.ts +5 -0
- package/dist/core/skeletons/JBFormContentSkeleton.d.ts.map +1 -0
- package/dist/core/skeletons/JBFormContentSkeleton.js +12 -0
- package/dist/core/skeletons/JBFormHeaderSkeleton.d.ts +6 -0
- package/dist/core/skeletons/JBFormHeaderSkeleton.d.ts.map +1 -0
- package/dist/core/skeletons/JBFormHeaderSkeleton.js +19 -0
- package/dist/core/skeletons/index.d.ts +3 -0
- package/dist/core/skeletons/index.d.ts.map +1 -0
- package/dist/core/skeletons/index.js +2 -0
- package/dist/forms/JBAutocompleteField.d.ts +12 -0
- package/dist/forms/JBAutocompleteField.d.ts.map +1 -0
- package/dist/forms/JBAutocompleteField.js +20 -0
- package/dist/forms/JBCheckboxField.d.ts +12 -0
- package/dist/forms/JBCheckboxField.d.ts.map +1 -0
- package/dist/forms/JBCheckboxField.js +36 -0
- package/dist/forms/JBDatePickerField.d.ts +13 -0
- package/dist/forms/JBDatePickerField.d.ts.map +1 -0
- package/dist/forms/JBDatePickerField.js +67 -0
- package/dist/forms/JBRadioGroupField.d.ts +10 -0
- package/dist/forms/JBRadioGroupField.d.ts.map +1 -0
- package/dist/forms/JBRadioGroupField.js +8 -0
- package/dist/forms/JBSelectField.d.ts +9 -0
- package/dist/forms/JBSelectField.d.ts.map +1 -0
- package/dist/forms/JBSelectField.js +8 -0
- package/dist/forms/JBSwitchField.d.ts +11 -0
- package/dist/forms/JBSwitchField.d.ts.map +1 -0
- package/dist/forms/JBSwitchField.js +10 -0
- package/dist/forms/JBTextField.d.ts +6 -0
- package/dist/forms/JBTextField.d.ts.map +1 -0
- package/dist/forms/JBTextField.js +8 -0
- package/dist/forms/JBTimePickerField.d.ts +12 -0
- package/dist/forms/JBTimePickerField.d.ts.map +1 -0
- package/dist/forms/JBTimePickerField.js +35 -0
- package/dist/forms/index.d.ts +13 -0
- package/dist/forms/index.d.ts.map +1 -0
- package/dist/forms/index.js +12 -0
- package/dist/forms/rules.d.ts +16 -0
- package/dist/forms/rules.d.ts.map +1 -0
- package/dist/forms/rules.js +21 -0
- package/dist/forms/types.d.ts +12 -0
- package/dist/forms/types.d.ts.map +1 -0
- package/dist/forms/types.js +1 -0
- package/dist/forms/utils.d.ts +5 -0
- package/dist/forms/utils.d.ts.map +1 -0
- package/dist/forms/utils.js +7 -0
- package/dist/forms/zod.d.ts +4 -0
- package/dist/forms/zod.d.ts.map +1 -0
- package/dist/forms/zod.js +9 -0
- package/dist/grid/JBGrid.d.ts +3 -0
- package/dist/grid/JBGrid.d.ts.map +1 -0
- package/dist/grid/JBGrid.js +338 -0
- package/dist/grid/JBGridHeader.d.ts +3 -0
- package/dist/grid/JBGridHeader.d.ts.map +1 -0
- package/dist/grid/JBGridHeader.js +93 -0
- package/dist/grid/JBGridLoading.d.ts +9 -0
- package/dist/grid/JBGridLoading.d.ts.map +1 -0
- package/dist/grid/JBGridLoading.js +14 -0
- package/dist/grid/JBGridProviders.d.ts +13 -0
- package/dist/grid/JBGridProviders.d.ts.map +1 -0
- package/dist/grid/JBGridProviders.js +54 -0
- package/dist/grid/JBGridSkeleton.d.ts +7 -0
- package/dist/grid/JBGridSkeleton.d.ts.map +1 -0
- package/dist/grid/JBGridSkeleton.js +6 -0
- package/dist/grid/defaults.d.ts +4 -0
- package/dist/grid/defaults.d.ts.map +1 -0
- package/dist/grid/defaults.js +29 -0
- package/dist/grid/index.d.ts +8 -0
- package/dist/grid/index.d.ts.map +1 -0
- package/dist/grid/index.js +7 -0
- package/dist/grid/types.d.ts +197 -0
- package/dist/grid/types.d.ts.map +1 -0
- package/dist/grid/types.js +1 -0
- package/dist/hooks/index.d.ts +4 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +3 -0
- package/dist/hooks/useJBDebouncedValue.d.ts +2 -0
- package/dist/hooks/useJBDebouncedValue.d.ts.map +1 -0
- package/dist/hooks/useJBDebouncedValue.js +11 -0
- package/dist/hooks/useJBEntityFormController.d.ts +54 -0
- package/dist/hooks/useJBEntityFormController.d.ts.map +1 -0
- package/dist/hooks/useJBEntityFormController.js +156 -0
- package/dist/hooks/useJBRedirect.d.ts +10 -0
- package/dist/hooks/useJBRedirect.d.ts.map +1 -0
- package/dist/hooks/useJBRedirect.js +11 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/query/createQueryClient.d.ts +8 -0
- package/dist/query/createQueryClient.d.ts.map +1 -0
- package/dist/query/createQueryClient.js +25 -0
- package/dist/query/http.d.ts +3 -0
- package/dist/query/http.d.ts.map +1 -0
- package/dist/query/http.js +12 -0
- package/dist/query/index.d.ts +4 -0
- package/dist/query/index.d.ts.map +1 -0
- package/dist/query/index.js +3 -0
- package/dist/query/types.d.ts +7 -0
- package/dist/query/types.d.ts.map +1 -0
- package/dist/query/types.js +1 -0
- package/dist/utils/errors.d.ts +10 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +55 -0
- package/dist/utils/format.d.ts +4 -0
- package/dist/utils/format.d.ts.map +1 -0
- package/dist/utils/format.js +28 -0
- package/dist/utils/geo.d.ts +9 -0
- package/dist/utils/geo.d.ts.map +1 -0
- package/dist/utils/geo.js +186 -0
- package/dist/utils/index.d.ts +6 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +5 -0
- package/dist/utils/query.d.ts +2 -0
- package/dist/utils/query.d.ts.map +1 -0
- package/dist/utils/query.js +4 -0
- package/dist/utils/regex.d.ts +7 -0
- package/dist/utils/regex.d.ts.map +1 -0
- package/dist/utils/regex.js +6 -0
- package/package.json +3 -1
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { AxiosInstance } from 'axios';
|
|
2
|
+
import { JBAppConfig } from '../config';
|
|
3
|
+
import { AccountUpdatePayload, AccountConfirmationPayload, AccountConfirmationResendPayload, ApiDetailResponse, CreateAdminUserPayload, CreateProfilePayload, CreateAuthenticatedAxiosOptions, DeleteAccountPayload, JbDrfAuthConfig, JbDrfAuthEndpoints, JbDrfWebAuthResponse, LinkSocialPayload, LoginBasicPayload, MagicLinkConsumePayload, LoginSocialPrecheckResponse, LoginSocialPayload, PasswordChangePayload, PasswordResetConfirmPayload, PasswordResetRequestPayload, ProfilePicturePayload, ProfilesResponse, RegisterPayload, RefreshPayload, RequestOtpPayload, SwitchProfilePayload, TokenPair, TokenStorage, UnlinkSocialPayload, UpdateProfilePayload, VerifyOtpPayload } from './types';
|
|
4
|
+
export declare const createAuthEndpoints: (basePath?: string) => JbDrfAuthEndpoints;
|
|
5
|
+
export declare const defaultAuthEndpoints: JbDrfAuthEndpoints;
|
|
6
|
+
export type AuthClient = {
|
|
7
|
+
endpoints: JbDrfAuthEndpoints;
|
|
8
|
+
tokenStorage: TokenStorage;
|
|
9
|
+
getAccessToken: () => string | null;
|
|
10
|
+
setAccessToken: (token: string) => void;
|
|
11
|
+
clearSession: () => void;
|
|
12
|
+
createPublicAxios: () => AxiosInstance;
|
|
13
|
+
createAuthenticatedAxios: (options?: CreateAuthenticatedAxiosOptions) => AxiosInstance;
|
|
14
|
+
createAuthenticatedAxiosWithRefresh: (options?: CreateAuthenticatedAxiosOptions) => AxiosInstance;
|
|
15
|
+
loginBasic: (payload: LoginBasicPayload) => Promise<JbDrfWebAuthResponse>;
|
|
16
|
+
loginSocial: (payload: LoginSocialPayload) => Promise<JbDrfWebAuthResponse>;
|
|
17
|
+
loginSocialPrecheck: (payload: LoginSocialPayload) => Promise<LoginSocialPrecheckResponse>;
|
|
18
|
+
linkSocial: (payload: LinkSocialPayload) => Promise<Record<string, unknown>>;
|
|
19
|
+
unlinkSocial: (payload: UnlinkSocialPayload) => Promise<Record<string, unknown>>;
|
|
20
|
+
requestOtp: (payload: RequestOtpPayload) => Promise<Record<string, unknown>>;
|
|
21
|
+
verifyOtp: (payload: VerifyOtpPayload) => Promise<JbDrfWebAuthResponse>;
|
|
22
|
+
consumeMagicLink: (payload: MagicLinkConsumePayload) => Promise<JbDrfWebAuthResponse>;
|
|
23
|
+
register: (payload: RegisterPayload) => Promise<ApiDetailResponse>;
|
|
24
|
+
confirmAccountEmail: (payload: AccountConfirmationPayload) => Promise<ApiDetailResponse>;
|
|
25
|
+
resendAccountConfirmation: (payload: AccountConfirmationResendPayload) => Promise<ApiDetailResponse>;
|
|
26
|
+
getMe: () => Promise<JbDrfWebAuthResponse>;
|
|
27
|
+
updateProfilePicture: (payload: ProfilePicturePayload) => Promise<Record<string, unknown>>;
|
|
28
|
+
updateAccount: (payload: AccountUpdatePayload, method?: 'PATCH' | 'PUT') => Promise<Record<string, unknown>>;
|
|
29
|
+
deleteAccount: (payload: DeleteAccountPayload) => Promise<unknown>;
|
|
30
|
+
getProfiles: () => Promise<ProfilesResponse>;
|
|
31
|
+
getProfileById: (profileId: number | string) => Promise<Record<string, unknown>>;
|
|
32
|
+
createProfile: (payload: CreateProfilePayload) => Promise<Record<string, unknown>>;
|
|
33
|
+
updateProfile: (profileId: number | string, payload: UpdateProfilePayload) => Promise<Record<string, unknown>>;
|
|
34
|
+
deleteProfile: (profileId: number | string) => Promise<Record<string, unknown>>;
|
|
35
|
+
requestPasswordReset: (payload: PasswordResetRequestPayload) => Promise<Record<string, unknown>>;
|
|
36
|
+
confirmPasswordReset: (payload: PasswordResetConfirmPayload) => Promise<Record<string, unknown>>;
|
|
37
|
+
changePassword: (payload: PasswordChangePayload) => Promise<Record<string, unknown>>;
|
|
38
|
+
refreshToken: (payload?: RefreshPayload) => Promise<TokenPair>;
|
|
39
|
+
switchProfile: (payload: SwitchProfilePayload) => Promise<JbDrfWebAuthResponse>;
|
|
40
|
+
createSuperuser: (payload: CreateAdminUserPayload, bootstrapToken?: string) => Promise<Record<string, unknown>>;
|
|
41
|
+
createStaffUser: (payload: CreateAdminUserPayload, bootstrapToken?: string) => Promise<Record<string, unknown>>;
|
|
42
|
+
logout: () => void;
|
|
43
|
+
};
|
|
44
|
+
export declare const createAuthClient: (config: JbDrfAuthConfig) => AuthClient;
|
|
45
|
+
export declare const createAuthClientFromJBWebConfig: (appConfig: JBAppConfig, overrides?: Omit<JbDrfAuthConfig, "apiBaseUrl" | "apiBasePath">) => AuthClient;
|
|
46
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/auth/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,379 @@
|
|
|
1
|
+
import axios from 'axios';
|
|
2
|
+
import { getApiBaseUrl, getAuthBasePath } from '../config';
|
|
3
|
+
import { createLocalStorageTokenStorage } from './storage';
|
|
4
|
+
const normalizeAuthBasePath = (basePath) => {
|
|
5
|
+
const normalized = (basePath ?? '/authentication').trim();
|
|
6
|
+
if (!normalized) {
|
|
7
|
+
return '/authentication';
|
|
8
|
+
}
|
|
9
|
+
const withLeadingSlash = normalized.startsWith('/') ? normalized : `/${normalized}`;
|
|
10
|
+
return withLeadingSlash.replace(/\/+$/, '');
|
|
11
|
+
};
|
|
12
|
+
export const createAuthEndpoints = (basePath) => {
|
|
13
|
+
const root = normalizeAuthBasePath(basePath);
|
|
14
|
+
return {
|
|
15
|
+
loginBasic: `${root}/login/basic/`,
|
|
16
|
+
loginSocial: `${root}/login/social/`,
|
|
17
|
+
loginSocialPrecheck: `${root}/login/social/precheck/`,
|
|
18
|
+
loginSocialLink: `${root}/login/social/link/`,
|
|
19
|
+
loginSocialUnlink: `${root}/login/social/unlink/`,
|
|
20
|
+
loginMagicLinkConsume: `${root}/login/magic-link/consume/`,
|
|
21
|
+
loginOtpVerify: `${root}/otp/verify/`,
|
|
22
|
+
otpRequest: `${root}/otp/request/`,
|
|
23
|
+
register: `${root}/register/`,
|
|
24
|
+
accountConfirmation: `${root}/registration/account-confirmation-email/`,
|
|
25
|
+
accountConfirmationResend: `${root}/registration/account-confirmation-email/resend/`,
|
|
26
|
+
me: `${root}/me/?client=web`,
|
|
27
|
+
profilePicture: `${root}/profile/picture/`,
|
|
28
|
+
refresh: `${root}/token/refresh/`,
|
|
29
|
+
switchProfile: `${root}/profile/switch/`,
|
|
30
|
+
profiles: `${root}/profiles/`,
|
|
31
|
+
accountUpdate: `${root}/account/update/`,
|
|
32
|
+
accountDelete: `${root}/account/delete/`,
|
|
33
|
+
passwordResetRequest: `${root}/password-reset/request/`,
|
|
34
|
+
passwordResetConfirm: `${root}/password-reset/confirm/`,
|
|
35
|
+
passwordResetChange: `${root}/password-reset/change/`,
|
|
36
|
+
adminCreateSuperuser: `${root}/admin/create-superuser/`,
|
|
37
|
+
adminCreateStaff: `${root}/admin/create-staff/`
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
export const defaultAuthEndpoints = createAuthEndpoints('/authentication');
|
|
41
|
+
const getRefreshTokenFromResponse = (response) => ({
|
|
42
|
+
accessToken: response.data.accessToken ?? response.data.access ?? '',
|
|
43
|
+
refreshToken: response.data.refreshToken ?? response.data.refresh ?? ''
|
|
44
|
+
});
|
|
45
|
+
const normalizeBaseUrl = (apiBaseUrl) => apiBaseUrl.replace(/\/+$/, '');
|
|
46
|
+
const normalizeDetailResponse = (data) => ({
|
|
47
|
+
...data,
|
|
48
|
+
emailSent: data.emailSent ?? data.email_sent
|
|
49
|
+
});
|
|
50
|
+
const withClientPayload = (payload, defaultClient) => {
|
|
51
|
+
const client = payload.client ?? defaultClient;
|
|
52
|
+
if (client === 'web') {
|
|
53
|
+
const { device: _device, ...rest } = payload;
|
|
54
|
+
return { ...rest, client };
|
|
55
|
+
}
|
|
56
|
+
return { ...payload, client };
|
|
57
|
+
};
|
|
58
|
+
export const createAuthClient = (config) => {
|
|
59
|
+
const endpoints = {
|
|
60
|
+
...createAuthEndpoints(config.apiBasePath),
|
|
61
|
+
...(config.endpoints ?? {})
|
|
62
|
+
};
|
|
63
|
+
const tokenStorageKey = config.tokenStorageKey ?? 'jwt_access_token';
|
|
64
|
+
const refreshTokenStorageKey = config.refreshTokenStorageKey ?? 'jwt_refresh_token';
|
|
65
|
+
const tokenStorage = config.tokenStorage ?? createLocalStorageTokenStorage(tokenStorageKey);
|
|
66
|
+
const baseUrl = normalizeBaseUrl(config.apiBaseUrl);
|
|
67
|
+
const defaultClient = config.defaultClient ?? 'web';
|
|
68
|
+
const withBaseUrl = (path) => `${baseUrl}${path.startsWith('/') ? path : `/${path}`}`;
|
|
69
|
+
const getAccessToken = () => tokenStorage.getAccessToken();
|
|
70
|
+
const setAccessToken = (token) => tokenStorage.setAccessToken(token);
|
|
71
|
+
const clearSession = () => tokenStorage.removeAccessToken();
|
|
72
|
+
let refreshPromise = null;
|
|
73
|
+
const saveRefreshToken = (token) => {
|
|
74
|
+
if (!token) {
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
if (typeof window === 'undefined' || !window.localStorage) {
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
window.localStorage.setItem(refreshTokenStorageKey, token);
|
|
81
|
+
};
|
|
82
|
+
const getStoredRefreshToken = () => {
|
|
83
|
+
if (typeof window === 'undefined' || !window.localStorage) {
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
86
|
+
return window.localStorage.getItem(refreshTokenStorageKey);
|
|
87
|
+
};
|
|
88
|
+
const clearStoredRefreshToken = () => {
|
|
89
|
+
if (typeof window === 'undefined' || !window.localStorage) {
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
window.localStorage.removeItem(refreshTokenStorageKey);
|
|
93
|
+
};
|
|
94
|
+
const createPublicAxios = () => axios.create({
|
|
95
|
+
baseURL: baseUrl
|
|
96
|
+
});
|
|
97
|
+
const createAuthenticatedAxios = (options) => {
|
|
98
|
+
const instance = axios.create({
|
|
99
|
+
baseURL: baseUrl,
|
|
100
|
+
...(options?.requestConfig ?? {})
|
|
101
|
+
});
|
|
102
|
+
instance.interceptors.request.use((requestConfig) => {
|
|
103
|
+
const token = getAccessToken();
|
|
104
|
+
if (token) {
|
|
105
|
+
requestConfig.headers = requestConfig.headers ?? {};
|
|
106
|
+
requestConfig.headers.Authorization = `Bearer ${token}`;
|
|
107
|
+
}
|
|
108
|
+
return requestConfig;
|
|
109
|
+
});
|
|
110
|
+
instance.interceptors.response.use((response) => response, (error) => {
|
|
111
|
+
if (axios.isAxiosError(error) &&
|
|
112
|
+
error.response?.status === 401 &&
|
|
113
|
+
typeof config.onUnauthorized === 'function') {
|
|
114
|
+
config.onUnauthorized();
|
|
115
|
+
}
|
|
116
|
+
return Promise.reject(error);
|
|
117
|
+
});
|
|
118
|
+
return instance;
|
|
119
|
+
};
|
|
120
|
+
const createAuthenticatedAxiosWithRefresh = (options) => {
|
|
121
|
+
const instance = createAuthenticatedAxios(options);
|
|
122
|
+
instance.interceptors.response.use((response) => response, async (error) => {
|
|
123
|
+
if (!axios.isAxiosError(error)) {
|
|
124
|
+
return Promise.reject(error);
|
|
125
|
+
}
|
|
126
|
+
const originalRequest = error.config;
|
|
127
|
+
if (error.response?.status !== 401 || !originalRequest || originalRequest._retry) {
|
|
128
|
+
return Promise.reject(error);
|
|
129
|
+
}
|
|
130
|
+
originalRequest._retry = true;
|
|
131
|
+
try {
|
|
132
|
+
if (!refreshPromise) {
|
|
133
|
+
refreshPromise = (async () => {
|
|
134
|
+
const refreshTokenFromStorage = getStoredRefreshToken();
|
|
135
|
+
if (!refreshTokenFromStorage) {
|
|
136
|
+
return null;
|
|
137
|
+
}
|
|
138
|
+
const nextTokens = await refreshToken({ refreshToken: refreshTokenFromStorage });
|
|
139
|
+
saveRefreshToken(nextTokens.refreshToken);
|
|
140
|
+
return nextTokens.accessToken || null;
|
|
141
|
+
})().finally(() => {
|
|
142
|
+
refreshPromise = null;
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
const nextAccessToken = await refreshPromise;
|
|
146
|
+
if (!nextAccessToken) {
|
|
147
|
+
return Promise.reject(error);
|
|
148
|
+
}
|
|
149
|
+
setAccessToken(nextAccessToken);
|
|
150
|
+
originalRequest.headers = originalRequest.headers ?? {};
|
|
151
|
+
originalRequest.headers.Authorization = `Bearer ${nextAccessToken}`;
|
|
152
|
+
return instance(originalRequest);
|
|
153
|
+
}
|
|
154
|
+
catch (refreshError) {
|
|
155
|
+
if (typeof config.onUnauthorized === 'function') {
|
|
156
|
+
config.onUnauthorized();
|
|
157
|
+
}
|
|
158
|
+
return Promise.reject(refreshError);
|
|
159
|
+
}
|
|
160
|
+
});
|
|
161
|
+
return instance;
|
|
162
|
+
};
|
|
163
|
+
const loginBasic = async (payload) => {
|
|
164
|
+
const response = await createPublicAxios().post(withBaseUrl(endpoints.loginBasic), {
|
|
165
|
+
...withClientPayload(payload, defaultClient)
|
|
166
|
+
});
|
|
167
|
+
const accessToken = response.data.tokens?.accessToken;
|
|
168
|
+
const refreshTokenValue = response.data.tokens?.refreshToken;
|
|
169
|
+
if (accessToken) {
|
|
170
|
+
setAccessToken(accessToken);
|
|
171
|
+
}
|
|
172
|
+
saveRefreshToken(refreshTokenValue);
|
|
173
|
+
return response.data;
|
|
174
|
+
};
|
|
175
|
+
const loginSocial = async (payload) => {
|
|
176
|
+
const response = await createPublicAxios().post(withBaseUrl(endpoints.loginSocial), withClientPayload(payload, defaultClient));
|
|
177
|
+
const accessToken = response.data.tokens?.accessToken;
|
|
178
|
+
const refreshTokenValue = response.data.tokens?.refreshToken;
|
|
179
|
+
if (accessToken) {
|
|
180
|
+
setAccessToken(accessToken);
|
|
181
|
+
}
|
|
182
|
+
saveRefreshToken(refreshTokenValue);
|
|
183
|
+
return response.data;
|
|
184
|
+
};
|
|
185
|
+
const loginSocialPrecheck = async (payload) => {
|
|
186
|
+
const response = await createPublicAxios().post(withBaseUrl(endpoints.loginSocialPrecheck), withClientPayload(payload, defaultClient));
|
|
187
|
+
return response.data;
|
|
188
|
+
};
|
|
189
|
+
const linkSocial = async (payload) => {
|
|
190
|
+
const response = await createAuthenticatedAxiosWithRefresh().post(withBaseUrl(endpoints.loginSocialLink), payload);
|
|
191
|
+
return response.data;
|
|
192
|
+
};
|
|
193
|
+
const unlinkSocial = async (payload) => {
|
|
194
|
+
const response = await createAuthenticatedAxiosWithRefresh().post(withBaseUrl(endpoints.loginSocialUnlink), payload);
|
|
195
|
+
return response.data;
|
|
196
|
+
};
|
|
197
|
+
const requestOtp = async (payload) => {
|
|
198
|
+
const response = await createPublicAxios().post(withBaseUrl(endpoints.otpRequest), payload);
|
|
199
|
+
return response.data;
|
|
200
|
+
};
|
|
201
|
+
const verifyOtp = async (payload) => {
|
|
202
|
+
const response = await createPublicAxios().post(withBaseUrl(endpoints.loginOtpVerify), withClientPayload(payload, defaultClient));
|
|
203
|
+
const accessToken = response.data.tokens?.accessToken;
|
|
204
|
+
const refreshTokenValue = response.data.tokens?.refreshToken;
|
|
205
|
+
if (accessToken) {
|
|
206
|
+
setAccessToken(accessToken);
|
|
207
|
+
}
|
|
208
|
+
saveRefreshToken(refreshTokenValue);
|
|
209
|
+
return response.data;
|
|
210
|
+
};
|
|
211
|
+
const consumeMagicLink = async (payload) => {
|
|
212
|
+
const response = await createPublicAxios().post(withBaseUrl(endpoints.loginMagicLinkConsume), withClientPayload(payload, defaultClient));
|
|
213
|
+
const accessToken = response.data.tokens?.accessToken;
|
|
214
|
+
const refreshTokenValue = response.data.tokens?.refreshToken;
|
|
215
|
+
if (accessToken) {
|
|
216
|
+
setAccessToken(accessToken);
|
|
217
|
+
}
|
|
218
|
+
saveRefreshToken(refreshTokenValue);
|
|
219
|
+
return response.data;
|
|
220
|
+
};
|
|
221
|
+
const register = async (payload) => {
|
|
222
|
+
const response = await createPublicAxios().post(withBaseUrl(endpoints.register), payload);
|
|
223
|
+
return normalizeDetailResponse(response.data);
|
|
224
|
+
};
|
|
225
|
+
const confirmAccountEmail = async (payload) => {
|
|
226
|
+
const response = await createPublicAxios().post(withBaseUrl(endpoints.accountConfirmation), payload);
|
|
227
|
+
return normalizeDetailResponse(response.data);
|
|
228
|
+
};
|
|
229
|
+
const resendAccountConfirmation = async (payload) => {
|
|
230
|
+
const response = await createPublicAxios().post(withBaseUrl(endpoints.accountConfirmationResend), payload);
|
|
231
|
+
return normalizeDetailResponse(response.data);
|
|
232
|
+
};
|
|
233
|
+
const getMe = async () => {
|
|
234
|
+
const response = await createAuthenticatedAxiosWithRefresh().get(withBaseUrl(endpoints.me));
|
|
235
|
+
return response.data;
|
|
236
|
+
};
|
|
237
|
+
const updateProfilePicture = async (payload) => {
|
|
238
|
+
const response = await createAuthenticatedAxiosWithRefresh().patch(withBaseUrl(endpoints.profilePicture), payload);
|
|
239
|
+
return response.data;
|
|
240
|
+
};
|
|
241
|
+
const updateAccount = async (payload, method = 'PATCH') => {
|
|
242
|
+
const instance = createAuthenticatedAxiosWithRefresh();
|
|
243
|
+
const response = method === 'PUT'
|
|
244
|
+
? await instance.put(withBaseUrl(endpoints.accountUpdate), payload)
|
|
245
|
+
: await instance.patch(withBaseUrl(endpoints.accountUpdate), payload);
|
|
246
|
+
return response.data;
|
|
247
|
+
};
|
|
248
|
+
const deleteAccount = async (payload) => {
|
|
249
|
+
const response = await createAuthenticatedAxiosWithRefresh().delete(withBaseUrl(endpoints.accountDelete), {
|
|
250
|
+
data: payload
|
|
251
|
+
});
|
|
252
|
+
return response.data;
|
|
253
|
+
};
|
|
254
|
+
const getProfiles = async () => {
|
|
255
|
+
const response = await createAuthenticatedAxiosWithRefresh().get(withBaseUrl(endpoints.profiles));
|
|
256
|
+
return response.data;
|
|
257
|
+
};
|
|
258
|
+
const getProfileById = async (profileId) => {
|
|
259
|
+
const response = await createAuthenticatedAxiosWithRefresh().get(withBaseUrl(`${endpoints.profiles}${profileId}/`));
|
|
260
|
+
return response.data;
|
|
261
|
+
};
|
|
262
|
+
const createProfile = async (payload) => {
|
|
263
|
+
const response = await createAuthenticatedAxiosWithRefresh().post(withBaseUrl(endpoints.profiles), payload);
|
|
264
|
+
return response.data;
|
|
265
|
+
};
|
|
266
|
+
const updateProfile = async (profileId, payload) => {
|
|
267
|
+
const response = await createAuthenticatedAxiosWithRefresh().patch(withBaseUrl(`${endpoints.profiles}${profileId}/`), payload);
|
|
268
|
+
return response.data;
|
|
269
|
+
};
|
|
270
|
+
const deleteProfile = async (profileId) => {
|
|
271
|
+
const response = await createAuthenticatedAxiosWithRefresh().delete(withBaseUrl(`${endpoints.profiles}${profileId}/`));
|
|
272
|
+
return response.data;
|
|
273
|
+
};
|
|
274
|
+
const requestPasswordReset = async (payload) => {
|
|
275
|
+
const response = await createPublicAxios().post(withBaseUrl(endpoints.passwordResetRequest), payload);
|
|
276
|
+
return normalizeDetailResponse(response.data);
|
|
277
|
+
};
|
|
278
|
+
const confirmPasswordReset = async (payload) => {
|
|
279
|
+
const response = await createPublicAxios().post(withBaseUrl(endpoints.passwordResetConfirm), payload);
|
|
280
|
+
return response.data;
|
|
281
|
+
};
|
|
282
|
+
const changePassword = async (payload) => {
|
|
283
|
+
const response = await createAuthenticatedAxiosWithRefresh().post(withBaseUrl(endpoints.passwordResetChange), payload);
|
|
284
|
+
return response.data;
|
|
285
|
+
};
|
|
286
|
+
const refreshToken = async (payload) => {
|
|
287
|
+
const refreshTokenValue = payload?.refreshToken ?? getStoredRefreshToken();
|
|
288
|
+
if (!refreshTokenValue) {
|
|
289
|
+
return {
|
|
290
|
+
accessToken: '',
|
|
291
|
+
refreshToken: ''
|
|
292
|
+
};
|
|
293
|
+
}
|
|
294
|
+
const response = await createPublicAxios().post(withBaseUrl(endpoints.refresh), {
|
|
295
|
+
refresh: refreshTokenValue
|
|
296
|
+
});
|
|
297
|
+
const nextTokens = getRefreshTokenFromResponse(response);
|
|
298
|
+
if (nextTokens.accessToken) {
|
|
299
|
+
setAccessToken(nextTokens.accessToken);
|
|
300
|
+
}
|
|
301
|
+
saveRefreshToken(nextTokens.refreshToken);
|
|
302
|
+
return nextTokens;
|
|
303
|
+
};
|
|
304
|
+
const switchProfile = async (payload) => {
|
|
305
|
+
const response = await createAuthenticatedAxios().post(withBaseUrl(endpoints.switchProfile), withClientPayload(payload, defaultClient));
|
|
306
|
+
const accessToken = response.data.tokens?.accessToken;
|
|
307
|
+
const refreshTokenValue = response.data.tokens?.refreshToken;
|
|
308
|
+
if (accessToken) {
|
|
309
|
+
setAccessToken(accessToken);
|
|
310
|
+
}
|
|
311
|
+
saveRefreshToken(refreshTokenValue);
|
|
312
|
+
return response.data;
|
|
313
|
+
};
|
|
314
|
+
const logout = () => {
|
|
315
|
+
clearSession();
|
|
316
|
+
clearStoredRefreshToken();
|
|
317
|
+
};
|
|
318
|
+
const createAdminUser = async (endpoint, payload, bootstrapToken) => {
|
|
319
|
+
const headers = bootstrapToken
|
|
320
|
+
? {
|
|
321
|
+
'X-Admin-Bootstrap-Token': bootstrapToken
|
|
322
|
+
}
|
|
323
|
+
: undefined;
|
|
324
|
+
const requestClient = bootstrapToken ? createPublicAxios() : createAuthenticatedAxiosWithRefresh();
|
|
325
|
+
const response = await requestClient.post(withBaseUrl(endpoint), payload, { headers });
|
|
326
|
+
return response.data;
|
|
327
|
+
};
|
|
328
|
+
const createSuperuser = async (payload, bootstrapToken) => {
|
|
329
|
+
return createAdminUser(endpoints.adminCreateSuperuser, payload, bootstrapToken);
|
|
330
|
+
};
|
|
331
|
+
const createStaffUser = async (payload, bootstrapToken) => {
|
|
332
|
+
return createAdminUser(endpoints.adminCreateStaff, payload, bootstrapToken);
|
|
333
|
+
};
|
|
334
|
+
return {
|
|
335
|
+
endpoints,
|
|
336
|
+
tokenStorage,
|
|
337
|
+
getAccessToken,
|
|
338
|
+
setAccessToken,
|
|
339
|
+
clearSession,
|
|
340
|
+
createPublicAxios,
|
|
341
|
+
createAuthenticatedAxios,
|
|
342
|
+
createAuthenticatedAxiosWithRefresh,
|
|
343
|
+
loginBasic,
|
|
344
|
+
loginSocial,
|
|
345
|
+
loginSocialPrecheck,
|
|
346
|
+
linkSocial,
|
|
347
|
+
unlinkSocial,
|
|
348
|
+
requestOtp,
|
|
349
|
+
verifyOtp,
|
|
350
|
+
consumeMagicLink,
|
|
351
|
+
register,
|
|
352
|
+
confirmAccountEmail,
|
|
353
|
+
resendAccountConfirmation,
|
|
354
|
+
getMe,
|
|
355
|
+
updateProfilePicture,
|
|
356
|
+
updateAccount,
|
|
357
|
+
deleteAccount,
|
|
358
|
+
getProfiles,
|
|
359
|
+
getProfileById,
|
|
360
|
+
createProfile,
|
|
361
|
+
updateProfile,
|
|
362
|
+
deleteProfile,
|
|
363
|
+
requestPasswordReset,
|
|
364
|
+
confirmPasswordReset,
|
|
365
|
+
changePassword,
|
|
366
|
+
refreshToken,
|
|
367
|
+
switchProfile,
|
|
368
|
+
createSuperuser,
|
|
369
|
+
createStaffUser,
|
|
370
|
+
logout
|
|
371
|
+
};
|
|
372
|
+
};
|
|
373
|
+
export const createAuthClientFromJBWebConfig = (appConfig, overrides) => {
|
|
374
|
+
return createAuthClient({
|
|
375
|
+
apiBaseUrl: getApiBaseUrl(appConfig),
|
|
376
|
+
apiBasePath: getAuthBasePath(appConfig),
|
|
377
|
+
...(overrides ?? {})
|
|
378
|
+
});
|
|
379
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { SelectOption } from '../../forms';
|
|
2
|
+
export type CountryCallingCodeOption = SelectOption<string> & {
|
|
3
|
+
iso2: string;
|
|
4
|
+
countryName: string;
|
|
5
|
+
dialCode: string;
|
|
6
|
+
};
|
|
7
|
+
export declare const COUNTRY_CALLING_CODE_OPTIONS: CountryCallingCodeOption[];
|
|
8
|
+
export declare const DEFAULT_OTP_COUNTRY_CODE = "+52";
|
|
9
|
+
//# sourceMappingURL=countryCallingCodes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"countryCallingCodes.d.ts","sourceRoot":"","sources":["../../../src/auth/constants/countryCallingCodes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,MAAM,wBAAwB,GAAG,YAAY,CAAC,MAAM,CAAC,GAAG;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,4BAA4B,EAAE,wBAAwB,EA+MlE,CAAC;AAEF,eAAO,MAAM,wBAAwB,QAAQ,CAAC"}
|