@saxenapackages/auth-sdk 1.0.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.
- package/README.md +195 -0
- package/dist/api/authApi.d.ts +19 -0
- package/dist/api/axios.d.ts +5 -0
- package/dist/auth-sdk.css +1 -0
- package/dist/components/alert/Alert.d.ts +9 -0
- package/dist/components/authWidget/index.d.ts +7 -0
- package/dist/components/forgotPassword/index.d.ts +8 -0
- package/dist/components/googleLogin/index.d.ts +7 -0
- package/dist/components/login/index.d.ts +9 -0
- package/dist/components/otp/index.d.ts +12 -0
- package/dist/components/resetPassword/index.d.ts +8 -0
- package/dist/components/signup/index.d.ts +8 -0
- package/dist/components/updateUser/index.d.ts +9 -0
- package/dist/hooks/useAuth.d.ts +3 -0
- package/dist/hooks/useLogin.d.ts +8 -0
- package/dist/hooks/useOtp.d.ts +9 -0
- package/dist/hooks/useResetPassword.d.ts +8 -0
- package/dist/hooks/useSignup.d.ts +8 -0
- package/dist/hooks/useUpdateUser.d.ts +8 -0
- package/dist/hooks/useVerifyIdentity.d.ts +8 -0
- package/dist/index.cjs +23 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +35 -0
- package/dist/index.js +2248 -0
- package/dist/index.js.map +1 -0
- package/dist/provider/AuthContext.d.ts +24 -0
- package/dist/provider/AuthProvider.d.ts +8 -0
- package/dist/services/event.service.d.ts +9 -0
- package/dist/services/storage.service.d.ts +10 -0
- package/dist/services/token.service.d.ts +10 -0
- package/dist/setupTests.d.ts +0 -0
- package/dist/theme/defaultTheme.d.ts +3 -0
- package/dist/types/api.d.ts +10 -0
- package/dist/types/auth.d.ts +28 -0
- package/dist/types/config.d.ts +139 -0
- package/dist/utils/errors.d.ts +7 -0
- package/dist/utils/helpers.d.ts +8 -0
- package/dist/validation/index.d.ts +6 -0
- package/dist/validation/login.d.ts +28 -0
- package/dist/validation/otp.d.ts +8 -0
- package/dist/validation/resetPassword.d.ts +17 -0
- package/dist/validation/signup.d.ts +27 -0
- package/dist/validation/updateUser.d.ts +38 -0
- package/dist/validation/verifyIdentity.d.ts +8 -0
- package/package.json +49 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../node_modules/react/cjs/react-jsx-runtime.production.js","../node_modules/react/cjs/react-jsx-runtime.development.js","../node_modules/react/jsx-runtime.js","../src/provider/AuthContext.tsx","../src/services/storage.service.ts","../src/utils/helpers.ts","../src/services/token.service.ts","../src/services/event.service.ts","../src/api/axios.ts","../src/utils/errors.ts","../src/api/authApi.ts","../src/provider/AuthProvider.tsx","../src/hooks/useAuth.ts","../src/hooks/useLogin.ts","../src/hooks/useSignup.ts","../src/hooks/useVerifyIdentity.ts","../src/hooks/useOtp.ts","../src/hooks/useResetPassword.ts","../src/hooks/useUpdateUser.ts","../src/components/googleLogin/index.tsx","../src/components/alert/Alert.tsx","../src/validation/login.ts","../src/validation/signup.ts","../src/validation/verifyIdentity.ts","../src/validation/otp.ts","../src/validation/resetPassword.ts","../src/validation/updateUser.ts","../src/components/login/index.tsx","../src/components/signup/index.tsx","../src/components/forgotPassword/index.tsx","../src/components/otp/index.tsx","../src/components/resetPassword/index.tsx","../src/components/updateUser/index.tsx","../src/components/authWidget/index.tsx"],"sourcesContent":["/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n var key = null;\n void 0 !== maybeKey && (key = \"\" + maybeKey);\n void 0 !== config.key && (key = \"\" + config.key);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n config = maybeKey.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== config ? config : null,\n props: maybeKey\n };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n","/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return type.displayName || \"Context\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\n \"object\" === typeof type &&\n null !== type &&\n type.$$typeof === REACT_LAZY_TYPE\n )\n return \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function UnknownOwner() {\n return Error(\"react-stack-top-frame\");\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(type, key, props, owner, debugStack, debugTask) {\n var refProp = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== refProp ? refProp : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(type, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugStack\n });\n Object.defineProperty(type, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugTask\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function jsxDEVImpl(\n type,\n config,\n maybeKey,\n isStaticChildren,\n debugStack,\n debugTask\n ) {\n var children = config.children;\n if (void 0 !== children)\n if (isStaticChildren)\n if (isArrayImpl(children)) {\n for (\n isStaticChildren = 0;\n isStaticChildren < children.length;\n isStaticChildren++\n )\n validateChildKeys(children[isStaticChildren]);\n Object.freeze && Object.freeze(children);\n } else\n console.error(\n \"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\"\n );\n else validateChildKeys(children);\n if (hasOwnProperty.call(config, \"key\")) {\n children = getComponentNameFromType(type);\n var keys = Object.keys(config).filter(function (k) {\n return \"key\" !== k;\n });\n isStaticChildren =\n 0 < keys.length\n ? \"{key: someKey, \" + keys.join(\": ..., \") + \": ...}\"\n : \"{key: someKey}\";\n didWarnAboutKeySpread[children + isStaticChildren] ||\n ((keys =\n 0 < keys.length ? \"{\" + keys.join(\": ..., \") + \": ...}\" : \"{}\"),\n console.error(\n 'A props object containing a \"key\" prop is being spread into JSX:\\n let props = %s;\\n <%s {...props} />\\nReact keys must be passed directly to JSX without using spread:\\n let props = %s;\\n <%s key={someKey} {...props} />',\n isStaticChildren,\n children,\n keys,\n children\n ),\n (didWarnAboutKeySpread[children + isStaticChildren] = !0));\n }\n children = null;\n void 0 !== maybeKey &&\n (checkKeyStringCoercion(maybeKey), (children = \"\" + maybeKey));\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (children = \"\" + config.key));\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n children &&\n defineKeyPropWarningGetter(\n maybeKey,\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type\n );\n return ReactElement(\n type,\n children,\n maybeKey,\n getOwner(),\n debugStack,\n debugTask\n );\n }\n function validateChildKeys(node) {\n isValidElement(node)\n ? node._store && (node._store.validated = 1)\n : \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_LAZY_TYPE &&\n (\"fulfilled\" === node._payload.status\n ? isValidElement(node._payload.value) &&\n node._payload.value._store &&\n (node._payload.value._store.validated = 1)\n : node._store && (node._store.validated = 1));\n }\n function isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n }\n var React = require(\"react\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n hasOwnProperty = Object.prototype.hasOwnProperty,\n isArrayImpl = Array.isArray,\n createTask = console.createTask\n ? console.createTask\n : function () {\n return null;\n };\n React = {\n react_stack_bottom_frame: function (callStackForError) {\n return callStackForError();\n }\n };\n var specialPropKeyWarningShown;\n var didWarnAboutElementRef = {};\n var unknownOwnerDebugStack = React.react_stack_bottom_frame.bind(\n React,\n UnknownOwner\n )();\n var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));\n var didWarnAboutKeySpread = {};\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.jsx = function (type, config, maybeKey) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !1,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n exports.jsxs = function (type, config, maybeKey) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !0,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n })();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","import { createContext } from 'react';\nimport { User } from '../types/auth';\nimport { AuthSdkConfig } from '../types/config';\nimport { AuthApi } from '../api/authApi';\n\nexport interface AuthContextProps {\n user: User | null;\n token: string | null;\n refreshToken: string | null;\n isAuthenticated: boolean;\n loading: boolean;\n login: (payload: Record<string, any>) => Promise<any>;\n logout: () => Promise<void>;\n signup: (payload: Record<string, any>) => Promise<any>;\n verifyOtp: (payload: Record<string, any>, urlParams?: Record<string, string | number>) => Promise<any>;\n verifyIdentity: (payload: Record<string, any>, urlParams?: Record<string, string | number>) => Promise<any>;\n resetPassword: (payload: Record<string, any>, urlParams?: Record<string, string | number>) => Promise<any>;\n refresh: () => Promise<string | null>;\n getUserProfile: (site?: string, id?: string) => Promise<any>;\n updateUser: (payload: Record<string, any>, site?: string, id?: string) => Promise<any>;\n deleteUser: (site?: string, id?: string) => Promise<any>;\n config: AuthSdkConfig;\n authApi: AuthApi | null;\n}\n\nexport const AuthContext = createContext<AuthContextProps | undefined>(undefined);\nexport default AuthContext;\n","import { StorageAdapter, StorageType } from '../types/config';\n\nclass MemoryStorage implements StorageAdapter {\n private store: Record<string, string> = {};\n\n getItem(key: string): string | null {\n return this.store[key] || null;\n }\n\n setItem(key: string, value: string): void {\n this.store[key] = value;\n }\n\n removeItem(key: string): void {\n delete this.store[key];\n }\n\n clear(): void {\n this.store = {};\n }\n}\n\nexport class StorageService {\n private adapter: StorageAdapter;\n\n constructor(storageType?: StorageType) {\n this.adapter = this.resolveAdapter(storageType);\n }\n\n private resolveAdapter(storageType?: StorageType): StorageAdapter {\n if (!storageType || storageType === 'localStorage') {\n return typeof window !== 'undefined' ? window.localStorage : new MemoryStorage();\n }\n if (storageType === 'sessionStorage') {\n return typeof window !== 'undefined' ? window.sessionStorage : new MemoryStorage();\n }\n if (storageType === 'memory') {\n return new MemoryStorage();\n }\n // Custom storage adapter\n return storageType;\n }\n\n async getItem(key: string): Promise<string | null> {\n try {\n return await this.adapter.getItem(key);\n } catch (e) {\n console.error('StorageService: failed to get item', e);\n return null;\n }\n }\n\n async setItem(key: string, value: string): Promise<void> {\n try {\n await this.adapter.setItem(key, value);\n } catch (e) {\n console.error('StorageService: failed to set item', e);\n }\n }\n\n async removeItem(key: string): Promise<void> {\n try {\n await this.adapter.removeItem(key);\n } catch (e) {\n console.error('StorageService: failed to remove item', e);\n }\n }\n\n async clear(): Promise<void> {\n try {\n await this.adapter.clear();\n } catch (e) {\n console.error('StorageService: failed to clear', e);\n }\n }\n}\n","export function decodeJWT(token: string): any {\n try {\n const parts = token.split('.');\n if (parts.length !== 3) return null;\n const base64Url = parts[1];\n const base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');\n const jsonPayload = decodeURIComponent(\n atob(base64)\n .split('')\n .map((c) => '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2))\n .join('')\n );\n return JSON.parse(jsonPayload);\n } catch (error) {\n return null;\n }\n}\n\nexport function isTokenExpired(token: string | null): boolean {\n if (!token) return true;\n const decoded = decodeJWT(token);\n if (!decoded || !decoded.exp) return false;\n // exp is in seconds, Date.now() is in milliseconds\n // We can add a 10 seconds buffer to be safe\n return decoded.exp * 1000 - 10000 < Date.now();\n}\n\nexport function getNestedValue(obj: any, path: string): any {\n if (!obj || !path) return undefined;\n return path.split('.').reduce((acc, part) => (acc ? acc[part] : undefined), obj);\n}\n\nexport function setNestedValue(obj: any, path: string, value: any): any {\n if (!obj) obj = {};\n const parts = path.split('.');\n let current = obj;\n for (let i = 0; i < parts.length - 1; i++) {\n const part = parts[i];\n if (!current[part]) {\n current[part] = {};\n }\n current = current[part];\n }\n current[parts[parts.length - 1]] = value;\n return obj;\n}\n\nexport function mapPayload(payload: Record<string, any>, mapping?: Record<string, string>): Record<string, any> {\n if (!mapping) return payload;\n const mapped: Record<string, any> = {};\n Object.keys(payload).forEach((key) => {\n const targetKey = mapping[key] || key;\n mapped[targetKey] = payload[key];\n });\n return mapped;\n}\n\nexport function getAccessTokenFromResponse(data: any, mappingPath?: string): string | null {\n if (mappingPath) {\n return getNestedValue(data, mappingPath);\n }\n return (\n getNestedValue(data, 'accessToken') ||\n getNestedValue(data, 'Token') ||\n getNestedValue(data, 'token') ||\n getNestedValue(data, 'data.accessToken') ||\n getNestedValue(data, 'data.Token') ||\n getNestedValue(data, 'data.token') ||\n null\n );\n}\n\nexport function getRefreshTokenFromResponse(data: any, mappingPath?: string): string | null {\n if (mappingPath) {\n return getNestedValue(data, mappingPath);\n }\n return (\n getNestedValue(data, 'refreshToken') ||\n getNestedValue(data, 'refresh_token') ||\n getNestedValue(data, 'RefreshToken') ||\n getNestedValue(data, 'data.refreshToken') ||\n getNestedValue(data, 'data.refresh_token') ||\n getNestedValue(data, 'data.RefreshToken') ||\n null\n );\n}\n\nexport function getUserFromResponse(data: any, mappingPath?: string): any {\n if (mappingPath) {\n return getNestedValue(data, mappingPath);\n }\n return (\n getNestedValue(data, 'user') ||\n getNestedValue(data, 'data.user') ||\n // Try returning the payload itself if it has userId/id to treat the response structure as a flat user profile representation\n (data && (data.userId || data.id || data.email) ? data : null)\n );\n}\n","import { StorageService } from './storage.service';\nimport { decodeJWT, isTokenExpired } from '../utils/helpers';\n\nexport class TokenService {\n private storageService: StorageService;\n\n constructor(storageService: StorageService) {\n this.storageService = storageService;\n }\n\n async saveToken(key: string, token: string): Promise<void> {\n await this.storageService.setItem(key, token);\n }\n\n async getToken(key: string): Promise<string | null> {\n return this.storageService.getItem(key);\n }\n\n async removeToken(key: string): Promise<void> {\n await this.storageService.removeItem(key);\n }\n\n decodeJWT(token: string): any {\n return decodeJWT(token);\n }\n\n isExpired(token: string | null): boolean {\n return isTokenExpired(token);\n }\n}\n","import { AuthEvent, AuthEventCallback } from '../types/auth';\n\nclass EventService {\n private listeners: Map<AuthEvent, Set<AuthEventCallback>> = new Map();\n\n on(event: AuthEvent, callback: AuthEventCallback): void {\n if (!this.listeners.has(event)) {\n this.listeners.set(event, new Set());\n }\n this.listeners.get(event)!.add(callback);\n }\n\n off(event: AuthEvent, callback: AuthEventCallback): void {\n const list = this.listeners.get(event);\n if (list) {\n list.delete(callback);\n }\n }\n\n emit(event: AuthEvent, data?: any): void {\n const list = this.listeners.get(event);\n if (list) {\n list.forEach((cb) => {\n try {\n cb(data);\n } catch (e) {\n console.error(`Error in event listener for ${event}:`, e);\n }\n });\n }\n }\n}\n\nexport const eventService = new EventService();\nexport default eventService;\n","import axios, { AxiosInstance, InternalAxiosRequestConfig } from 'axios';\nimport { AuthSdkConfig } from '../types/config';\nimport { TokenService } from '../services/token.service';\nimport { getAccessTokenFromResponse, getRefreshTokenFromResponse } from '../utils/helpers';\nimport { eventService } from '../services/event.service';\n\nlet isRefreshing = false;\nlet failedQueue: Array<{\n resolve: (value: string | null) => void;\n reject: (error: any) => void;\n}> = [];\n\nconst processQueue = (error: any, token: string | null = null) => {\n failedQueue.forEach((prom) => {\n if (error) {\n prom.reject(error);\n } else {\n prom.resolve(token);\n }\n });\n failedQueue = [];\n};\n\nexport function createAxiosInstance(\n config: AuthSdkConfig,\n tokenService: TokenService,\n onTokenRefreshed: (token: string, refreshToken?: string) => void,\n onSessionExpired: () => void\n): AxiosInstance {\n const instance = axios.create({\n baseURL: config.apiBaseUrl,\n withCredentials: true,\n });\n\n // Request Interceptor\n instance.interceptors.request.use(\n async (requestConfig: InternalAxiosRequestConfig) => {\n // Inject configuration headers\n if (config.headers) {\n Object.entries(config.headers).forEach(([key, value]) => {\n requestConfig.headers.set(key, value);\n });\n }\n\n // Inject token from storage\n const tokenKey = config.tokenKey || 'Token';\n const token = await tokenService.getToken(tokenKey);\n if (token && !requestConfig.headers.Authorization) {\n requestConfig.headers.Authorization = `Bearer ${token}`;\n }\n\n return requestConfig;\n },\n (error) => Promise.reject(error)\n );\n\n // Response Interceptor for token refresh and failed requests queuing\n instance.interceptors.response.use(\n (response) => response,\n async (error) => {\n const originalRequest = error.config;\n\n // Handle 401 errors\n if (\n error.response &&\n error.response.status === 401 &&\n !originalRequest._retry &&\n config.enableRefreshToken !== false\n ) {\n // If 401 is returned by the refresh token endpoint, clean session and fail\n const refreshEndpoint = config.endpoints?.refreshToken || '/refresh';\n if (originalRequest.url?.includes(refreshEndpoint)) {\n isRefreshing = false;\n onSessionExpired();\n eventService.emit('TOKEN_EXPIRED');\n return Promise.reject(error);\n }\n\n if (isRefreshing) {\n return new Promise((resolve, reject) => {\n failedQueue.push({\n resolve: (token) => {\n originalRequest.headers.Authorization = `Bearer ${token}`;\n resolve(instance(originalRequest));\n },\n reject: (err) => {\n reject(err);\n },\n });\n });\n }\n\n originalRequest._retry = true;\n isRefreshing = true;\n\n const tokenKey = config.tokenKey || 'Token';\n const rTokenKey = config.refreshTokenKey || 'refreshToken';\n const refreshToken = await tokenService.getToken(rTokenKey);\n\n if (!refreshToken) {\n isRefreshing = false;\n onSessionExpired();\n eventService.emit('TOKEN_EXPIRED');\n return Promise.reject(error);\n }\n\n try {\n const refreshUrl = config.endpoints?.refreshToken || '/identity/access-token';\n const isDefaultRefresh = refreshUrl.includes('/identity/access-token');\n\n const headers = {\n ...config.headers,\n ...(isDefaultRefresh ? { refreshToken } : {})\n };\n\n // Request refresh from backend\n const refreshResponse = await axios.post(\n `${config.apiBaseUrl}${refreshUrl}`,\n isDefaultRefresh ? null : { refreshToken },\n {\n headers,\n withCredentials: true,\n }\n );\n\n const newAccessToken = getAccessTokenFromResponse(refreshResponse.data, config.responseMapping?.token);\n const newRefreshToken = getRefreshTokenFromResponse(refreshResponse.data, config.responseMapping?.refreshToken) || refreshToken;\n\n if (newAccessToken) {\n await tokenService.saveToken(tokenKey, newAccessToken);\n if (newRefreshToken) {\n await tokenService.saveToken(rTokenKey, newRefreshToken);\n }\n onTokenRefreshed(newAccessToken, newRefreshToken);\n processQueue(null, newAccessToken);\n \n // Retry the original request\n originalRequest.headers.Authorization = `Bearer ${newAccessToken}`;\n isRefreshing = false;\n return instance(originalRequest);\n } else {\n throw new Error('Auth SDK: Token not returned in refresh response payload.');\n }\n } catch (refreshErr) {\n isRefreshing = false;\n processQueue(refreshErr, null);\n onSessionExpired();\n eventService.emit('TOKEN_EXPIRED');\n return Promise.reject(refreshErr);\n }\n }\n\n return Promise.reject(error);\n }\n );\n\n return instance;\n}\nexport default createAxiosInstance;\n","export type SdkErrorCode =\n | 'INVALID_CREDENTIALS'\n | 'OTP_EXPIRED'\n | 'USER_NOT_FOUND'\n | 'TOKEN_EXPIRED'\n | 'SERVER_ERROR'\n | 'NETWORK_ERROR'\n | 'UNKNOWN_ERROR';\n\nexport class AuthSdkError extends Error {\n code: SdkErrorCode;\n originalError?: any;\n\n constructor(message: string, code: SdkErrorCode, originalError?: any) {\n super(message);\n this.name = 'AuthSdkError';\n this.code = code;\n this.originalError = originalError;\n }\n}\n\nexport function normalizeError(error: any): AuthSdkError {\n if (error instanceof AuthSdkError) return error;\n\n if (error?.response) {\n const status = error.response.status;\n let message = error.response.data?.message || error.response.data?.error || error.message || '';\n if (Array.isArray(message)) {\n message = message.join('. ');\n } else if (typeof message === 'object' && message !== null) {\n message = JSON.stringify(message);\n }\n const messageLower = typeof message === 'string' ? message.toLowerCase() : '';\n\n if (status === 401) {\n if (messageLower.includes('otp')) {\n return new AuthSdkError(message || 'OTP verification expired or invalid.', 'OTP_EXPIRED', error);\n }\n return new AuthSdkError(message || 'Invalid credentials provided.', 'INVALID_CREDENTIALS', error);\n }\n if (status === 403) {\n return new AuthSdkError(message || 'Access token has expired or is invalid.', 'TOKEN_EXPIRED', error);\n }\n if (status === 404) {\n return new AuthSdkError(message || 'User or endpoint not found.', 'USER_NOT_FOUND', error);\n }\n if (status >= 500) {\n return new AuthSdkError(message || 'Internal server error occurred.', 'SERVER_ERROR', error);\n }\n \n return new AuthSdkError(message || 'API request failed.', 'UNKNOWN_ERROR', error);\n }\n\n if (error?.request) {\n return new AuthSdkError('Network connection issue. Please check your connection.', 'NETWORK_ERROR', error);\n }\n\n return new AuthSdkError(error?.message || 'An unknown error occurred.', 'UNKNOWN_ERROR', error);\n}\n","import { AxiosInstance } from 'axios';\nimport { AuthSdkConfig } from '../types/config';\nimport { mapPayload } from '../utils/helpers';\nimport { normalizeError } from '../utils/errors';\n\nexport class AuthApi {\n private axiosInstance: AxiosInstance;\n private config: AuthSdkConfig;\n\n constructor(axiosInstance: AxiosInstance, config: AuthSdkConfig) {\n this.axiosInstance = axiosInstance;\n this.config = config;\n }\n\n private getEndpoint(key: keyof NonNullable<AuthSdkConfig['endpoints']>, defaultVal: string): string {\n return this.config.endpoints?.[key] || defaultVal;\n }\n\n private resolveUrl(path: string, params?: Record<string, string | number>): string {\n if (!params) return path;\n let resolved = path;\n Object.entries(params).forEach(([key, value]) => {\n resolved = resolved.replace(`:${key}`, String(value));\n });\n return resolved;\n }\n\n async login(payload: Record<string, any>) {\n try {\n const defaultLoginMapping = { email: 'email', password: 'password', otp: 'otp' };\n const mapping = (this.config.requestMapping?.login || defaultLoginMapping) as Record<string, string>;\n const mapped = mapPayload({ site: this.config.site, ...payload }, mapping);\n \n // Parse OTP to number if provided and is string of digits\n if (mapped.otp !== undefined && mapped.otp !== null) {\n const parsedOtp = Number(mapped.otp);\n if (!isNaN(parsedOtp)) {\n mapped.otp = parsedOtp;\n }\n }\n\n const url = this.getEndpoint('login', '/identity/signin');\n const response = await this.axiosInstance.post(url, mapped);\n return response.data;\n } catch (error) {\n throw normalizeError(error);\n }\n }\n\n async signup(payload: Record<string, any>) {\n try {\n const defaultSignupMapping = { name: 'fullName', email: 'email', password: 'password' };\n const mapping = (this.config.requestMapping?.signup || defaultSignupMapping) as Record<string, string>;\n const mapped = mapPayload({ site: this.config.site, ...payload }, mapping);\n const url = this.getEndpoint('signup', '/identity/signup');\n const response = await this.axiosInstance.post(url, mapped);\n return response.data;\n } catch (error) {\n throw normalizeError(error);\n }\n }\n\n async verifyIdentity(payload: Record<string, any>, urlParams?: Record<string, string | number>) {\n try {\n const defaultMapping = { email: 'email' };\n const mapping = (this.config.requestMapping?.verifyIdentity || defaultMapping) as Record<string, string>;\n const mapped = mapPayload(payload, mapping);\n \n const endpoint = this.getEndpoint('verifyIdentity', '/identity/verify');\n const url = this.resolveUrl(endpoint, urlParams);\n\n const isDefaultVerify = url.includes('/identity/verify');\n if (isDefaultVerify) {\n const site = this.config.site || sessionStorage.getItem('auth_registration_site') || '';\n const email = mapped.email || mapped.Email;\n const response = await this.axiosInstance.post(url, null, {\n params: { site, email }\n });\n return response.data;\n } else {\n const response = await this.axiosInstance.post(url, mapped);\n return response.data;\n }\n } catch (error) {\n throw normalizeError(error);\n }\n }\n\n async verifyOtp(payload: Record<string, any>, urlParams?: Record<string, string | number>) {\n try {\n const endpoint = this.getEndpoint('verifyOtp', '/identity/otp/validate');\n const url = this.resolveUrl(endpoint, urlParams);\n\n if (payload.ResendOtp) {\n const resendUrl = this.getEndpoint('verifyIdentity', '/identity/verify');\n const email = payload.Email || payload.email || sessionStorage.getItem('auth_registration_email') || '';\n const site = this.config.site || sessionStorage.getItem('auth_registration_site') || '';\n \n const response = await this.axiosInstance.post(resendUrl, null, {\n params: { site, email }\n });\n return response.data;\n }\n\n const isDefaultOtpValidate = url.includes('/identity/otp/validate');\n if (isDefaultOtpValidate) {\n const otpVal = payload.Otp || payload.otp;\n const idVal = payload.id || payload.Id || sessionStorage.getItem('auth_registration_id') || '';\n const siteVal = payload.site || payload.Site || this.config.site || sessionStorage.getItem('auth_registration_site') || '';\n \n const body = {\n site: siteVal,\n id: idVal,\n otp: typeof otpVal === 'string' ? parseInt(otpVal, 10) : otpVal\n };\n const response = await this.axiosInstance.post(url, body);\n return response.data;\n } else {\n const mapped = mapPayload(payload, this.config.requestMapping?.verifyOtp as Record<string, string> | undefined);\n const response = await this.axiosInstance.post(url, mapped);\n return response.data;\n }\n } catch (error) {\n throw normalizeError(error);\n }\n }\n\n async resetPassword(payload: Record<string, any>, urlParams?: Record<string, string | number>) {\n try {\n const defaultMapping = { password: 'password' };\n const mapping = (this.config.requestMapping?.resetPassword || defaultMapping) as Record<string, string>;\n const mapped = mapPayload(payload, mapping);\n \n const endpoint = this.getEndpoint('resetPassword', '/identity/update');\n const url = this.resolveUrl(endpoint, urlParams);\n\n if (url.includes('/identity/update')) {\n const site = urlParams?.site || this.config.site || sessionStorage.getItem('auth_registration_site') || '';\n const id = urlParams?.id || sessionStorage.getItem('auth_registration_id') || '';\n const customToken = urlParams?.token;\n const response = await this.axiosInstance.put(url, mapped, {\n params: { site, id },\n headers: customToken ? { Authorization: `Bearer ${customToken}` } : undefined\n });\n return response.data;\n } else {\n const customToken = urlParams?.token;\n const response = await this.axiosInstance.post(url, mapped, {\n headers: customToken ? { Authorization: `Bearer ${customToken}` } : undefined\n });\n return response.data;\n }\n } catch (error) {\n throw normalizeError(error);\n }\n }\n\n async googleLogin(userId: string) {\n try {\n const endpoint = this.getEndpoint('googleLogin', '/identity/auth/google');\n const url = this.resolveUrl(endpoint, { userId });\n const response = await this.axiosInstance.get(url);\n return response.data;\n } catch (error) {\n throw normalizeError(error);\n }\n }\n\n async logout() {\n try {\n const url = this.getEndpoint('logout', '/logout');\n const response = await this.axiosInstance.get(url);\n return response.data;\n } catch (error) {\n throw normalizeError(error);\n }\n }\n\n async getUserProfile(site?: string, id?: string) {\n try {\n const endpoint = this.getEndpoint('getUser', '/identity');\n const response = await this.axiosInstance.get(endpoint, {\n params: { site, id }\n });\n return response.data;\n } catch (error) {\n throw normalizeError(error);\n }\n }\n\n async updateUser(payload: Record<string, any>, site?: string, id?: string) {\n try {\n const endpoint = this.getEndpoint('updateUser', '/identity/update');\n const response = await this.axiosInstance.put(endpoint, payload, {\n params: { site, id }\n });\n return response.data;\n } catch (error) {\n throw normalizeError(error);\n }\n }\n\n async deleteUser(site?: string, id?: string) {\n try {\n const endpoint = this.getEndpoint('deleteUser', '/identity');\n const response = await this.axiosInstance.delete(endpoint, {\n params: { site, id }\n });\n return response.data;\n } catch (error) {\n throw normalizeError(error);\n }\n }\n}\n","import React, { useState, useEffect, useMemo } from 'react';\nimport { AuthContext, AuthContextProps } from './AuthContext';\nimport { AuthSdkConfig } from '../types/config';\nimport { User } from '../types/auth';\nimport { StorageService } from '../services/storage.service';\nimport { TokenService } from '../services/token.service';\nimport { createAxiosInstance } from '../api/axios';\nimport { AuthApi } from '../api/authApi';\nimport { decodeJWT, getAccessTokenFromResponse, getRefreshTokenFromResponse, getUserFromResponse } from '../utils/helpers';\nimport { eventService } from '../services/event.service';\n\ninterface AuthProviderProps {\n children: React.ReactNode;\n config: AuthSdkConfig;\n}\n\nexport const AuthProvider: React.FC<AuthProviderProps> = ({ children, config }) => {\n const [token, setToken] = useState<string | null>(null);\n const [refreshToken, setRefreshToken] = useState<string | null>(null);\n const [user, setUser] = useState<User | null>(null);\n const [loading, setLoading] = useState<boolean>(true);\n\n // Initialize storage and token services\n const storageService = useMemo(() => new StorageService(config.storage), [config.storage]);\n const tokenService = useMemo(() => new TokenService(storageService), [storageService]);\n\n const tokenKey = config.tokenKey || 'Token';\n const refreshTokenKey = config.refreshTokenKey || 'refreshToken';\n\n // Updates current memory and storage sessions\n const updateSession = async (\n accessToken: string | null, \n rToken: string | null = null, \n apiUser: User | null = null\n ) => {\n setToken(accessToken);\n if (accessToken) {\n await tokenService.saveToken(tokenKey, accessToken);\n // Decodes payload claims if the API response mapping does not provide a user object\n const parsedUser = apiUser || decodeJWT(accessToken) || null;\n setUser(parsedUser);\n } else {\n await tokenService.removeToken(tokenKey);\n setUser(null);\n }\n\n if (rToken) {\n setRefreshToken(rToken);\n await tokenService.saveToken(refreshTokenKey, rToken);\n } else if (accessToken === null) {\n setRefreshToken(null);\n await tokenService.removeToken(refreshTokenKey);\n }\n };\n\n // Build the unified Axios instance and the API wrapper class\n const { axiosInstance, authApi } = useMemo(() => {\n const instance = createAxiosInstance(\n config,\n tokenService,\n (newAccToken, newRefToken) => {\n setToken(newAccToken);\n if (newRefToken) setRefreshToken(newRefToken);\n },\n () => {\n setToken(null);\n setRefreshToken(null);\n setUser(null);\n }\n );\n const api = new AuthApi(instance, config);\n return { axiosInstance: instance, authApi: api };\n }, [config, tokenService]);\n\n // Load session from storage upon mount\n useEffect(() => {\n const restoreSession = async () => {\n try {\n const storedToken = await tokenService.getToken(tokenKey);\n const storedRefToken = await tokenService.getToken(refreshTokenKey);\n\n if (storedToken) {\n if (tokenService.isExpired(storedToken)) {\n // Trigger autoRefresh silent-renew if refresh tokens are configured\n if (config.autoRefresh !== false && storedRefToken) {\n try {\n let data;\n if (config.isExternalApiCall && config.onRefresh) {\n data = await config.onRefresh(storedRefToken);\n } else {\n const refreshEndpoint = config.endpoints?.refreshToken || '/identity/access-token';\n const isDefaultRefresh = refreshEndpoint.includes('/identity/access-token');\n \n const response = await axiosInstance.post(\n refreshEndpoint, \n isDefaultRefresh ? null : { refreshToken: storedRefToken },\n {\n headers: isDefaultRefresh ? { refreshToken: storedRefToken } : {}\n }\n );\n data = response.data;\n }\n\n const newAccessToken = getAccessTokenFromResponse(data, config.responseMapping?.token);\n const newRefreshToken = getRefreshTokenFromResponse(data, config.responseMapping?.refreshToken) || storedRefToken;\n\n if (newAccessToken) {\n await updateSession(newAccessToken, newRefreshToken);\n } else {\n await updateSession(null);\n }\n } catch (e) {\n await updateSession(null);\n }\n } else {\n await updateSession(null);\n }\n } else {\n await updateSession(storedToken, storedRefToken);\n }\n }\n } catch (err) {\n console.error('Auth SDK Provider: session recovery failed.', err);\n } finally {\n setLoading(false);\n }\n };\n restoreSession();\n }, []);\n\n const getDecodedUser = () => {\n if (token) {\n return decodeJWT(token);\n }\n return null;\n };\n\n const login = async (payload: Record<string, any>) => {\n try {\n const data = (config.isExternalApiCall && config.onLogin) \n ? await config.onLogin(payload) \n : await authApi.login(payload);\n\n if (data && (data.error || data.success === false)) {\n throw new Error(data.error || data.message || 'Login failed.');\n }\n\n const accessToken = getAccessTokenFromResponse(data, config.responseMapping?.token);\n const rToken = getRefreshTokenFromResponse(data, config.responseMapping?.refreshToken);\n const apiUser = getUserFromResponse(data, config.responseMapping?.user);\n\n if (accessToken) {\n await updateSession(accessToken, rToken, apiUser);\n eventService.emit('LOGIN_SUCCESS', { user: apiUser || decodeJWT(accessToken), token: accessToken });\n } else {\n setUser(apiUser || null);\n }\n return data;\n } catch (err: any) {\n const isUnverified = err && (\n err.message === 'Email not verified' || \n (err.originalError?.response?.data?.message === 'Email not verified')\n );\n\n if (isUnverified) {\n const emailVal = payload.email || payload.Email;\n if (emailVal) {\n sessionStorage.setItem('auth_registration_email', emailVal);\n try {\n // Trigger OTP email dispatch\n await verifyIdentity({ email: emailVal });\n } catch (otpErr) {\n console.error('Failed to trigger OTP email dispatch:', otpErr);\n }\n }\n eventService.emit('OTP_SENT', { email: emailVal });\n }\n\n eventService.emit('LOGIN_FAILED', err);\n throw err;\n }\n };\n\n const signup = async (payload: Record<string, any>) => {\n try {\n const data = (config.isExternalApiCall && config.onSignup)\n ? await config.onSignup(payload)\n : await authApi.signup(payload);\n \n if (data && (data.error || data.success === false)) {\n throw new Error(data.error || data.message || 'Registration failed.');\n }\n\n // Store registration info for subsequent OTP verification\n if (data && data.id) {\n sessionStorage.setItem('auth_registration_id', data.id);\n sessionStorage.setItem('auth_registration_site', data.site || config.site || '');\n const emailVal = payload.Email || payload.email;\n if (emailVal) sessionStorage.setItem('auth_registration_email', emailVal);\n }\n\n if (data && data.isOtpSent && data.isVerified === false) {\n eventService.emit('OTP_SENT', data);\n }\n\n const accessToken = getAccessTokenFromResponse(data, config.responseMapping?.token);\n const rToken = getRefreshTokenFromResponse(data, config.responseMapping?.refreshToken);\n const apiUser = getUserFromResponse(data, config.responseMapping?.user);\n\n if (accessToken) {\n await updateSession(accessToken, rToken, apiUser);\n } else {\n setUser(apiUser || null);\n }\n return data;\n } catch (err) {\n throw err;\n }\n };\n\n const verifyOtp = async (payload: Record<string, any>, urlParams?: Record<string, string | number>) => {\n try {\n const data = (config.isExternalApiCall && config.onVerifyOtp)\n ? await config.onVerifyOtp(payload, urlParams)\n : await authApi.verifyOtp(payload, urlParams);\n\n if (data && (data.error || data.success === false)) {\n throw new Error(data.error || data.message || 'OTP verification failed.');\n }\n\n const accessToken = getAccessTokenFromResponse(data, config.responseMapping?.token);\n const rToken = getRefreshTokenFromResponse(data, config.responseMapping?.refreshToken);\n const apiUser = getUserFromResponse(data, config.responseMapping?.user);\n\n // Do not authenticate user session if verifyOtp was called for password reset verification\n const isResetFlow = payload.isResetPassword === true || sessionStorage.getItem('auth_reset_flow') === 'true';\n if (accessToken && !isResetFlow) {\n await updateSession(accessToken, rToken, apiUser);\n }\n if (!payload.ResendOtp) {\n eventService.emit('OTP_VERIFIED', data);\n }\n return data;\n } catch (err) {\n throw err;\n }\n };\n\n const verifyIdentity = async (payload: Record<string, any>, urlParams?: Record<string, string | number>) => {\n try {\n const data = (config.isExternalApiCall && config.onVerifyIdentity)\n ? await config.onVerifyIdentity(payload, urlParams)\n : await authApi.verifyIdentity(payload, urlParams);\n \n if (data && (data.error || data.success === false)) {\n throw new Error(data.error || data.message || 'Identity verification request failed.');\n }\n\n // Store registration info for subsequent OTP verification\n sessionStorage.setItem('auth_reset_flow', 'true');\n if (data && data.id) {\n sessionStorage.setItem('auth_registration_id', data.id);\n sessionStorage.setItem('auth_registration_site', data.site || config.site || '');\n const emailVal = payload.Email || payload.email;\n if (emailVal) sessionStorage.setItem('auth_registration_email', emailVal);\n }\n \n return data;\n } catch (err) {\n throw err;\n }\n };\n\n const resetPassword = async (payload: Record<string, any>, urlParams?: Record<string, string | number>) => {\n try {\n const data = (config.isExternalApiCall && config.onResetPassword)\n ? await config.onResetPassword(payload, urlParams)\n : await authApi.resetPassword(payload, urlParams);\n\n if (data && (data.error || data.success === false)) {\n throw new Error(data.error || data.message || 'Password reset failed.');\n }\n\n const accessToken = getAccessTokenFromResponse(data, config.responseMapping?.token);\n const rToken = getRefreshTokenFromResponse(data, config.responseMapping?.refreshToken);\n const apiUser = getUserFromResponse(data, config.responseMapping?.user);\n\n if (accessToken) {\n await updateSession(accessToken, rToken, apiUser);\n }\n sessionStorage.removeItem('auth_reset_flow');\n eventService.emit('PASSWORD_RESET', data);\n return data;\n } catch (err) {\n throw err;\n }\n };\n\n const refresh = async () => {\n const rToken = await tokenService.getToken(refreshTokenKey);\n if (!rToken) throw new Error('Auth SDK: No refresh token is cached.');\n\n let data;\n if (config.isExternalApiCall && config.onRefresh) {\n data = await config.onRefresh(rToken);\n } else {\n const refreshEndpoint = config.endpoints?.refreshToken || '/identity/access-token';\n const isDefaultRefresh = refreshEndpoint.includes('/identity/access-token');\n\n const response = await axiosInstance.post(\n refreshEndpoint, \n isDefaultRefresh ? null : { refreshToken: rToken },\n {\n headers: isDefaultRefresh ? { refreshToken: rToken } : {}\n }\n );\n data = response.data;\n }\n\n const newAccessToken = getAccessTokenFromResponse(data, config.responseMapping?.token);\n if (newAccessToken) {\n await updateSession(newAccessToken);\n return newAccessToken;\n }\n return null;\n };\n\n const getUserProfile = async (site?: string, id?: string) => {\n try {\n const activeUser = getDecodedUser();\n const resolvedSite = site || activeUser?.site || config.site || '';\n const resolvedId = id || activeUser?.userId || '';\n \n const data = (config.isExternalApiCall && config.onGetUser)\n ? await config.onGetUser(resolvedSite, resolvedId)\n : await authApi.getUserProfile(resolvedSite, resolvedId);\n return data;\n } catch (err) {\n throw err;\n }\n };\n\n const updateUser = async (payload: Record<string, any>, site?: string, id?: string) => {\n try {\n const activeUser = getDecodedUser();\n const resolvedSite = site || activeUser?.site || config.site || '';\n const resolvedId = id || activeUser?.userId || '';\n \n const data = (config.isExternalApiCall && config.onUpdateUser)\n ? await config.onUpdateUser(payload, resolvedSite, resolvedId)\n : await authApi.updateUser(payload, resolvedSite, resolvedId);\n\n if (data && (data.error || data.success === false)) {\n throw new Error(data.error || data.message || 'Profile update failed.');\n }\n\n if (data) {\n setUser((prev) => ({ ...prev, ...data }));\n }\n return data;\n } catch (err) {\n throw err;\n }\n };\n\n const deleteUser = async (site?: string, id?: string) => {\n try {\n const activeUser = getDecodedUser();\n const resolvedSite = site || activeUser?.site || config.site || '';\n const resolvedId = id || activeUser?.userId || '';\n \n const data = (config.isExternalApiCall && config.onDeleteUser)\n ? await config.onDeleteUser(resolvedSite, resolvedId)\n : await authApi.deleteUser(resolvedSite, resolvedId);\n\n await updateSession(null);\n eventService.emit('LOGOUT');\n return data;\n } catch (err) {\n throw err;\n }\n };\n\n const logout = async () => {\n try {\n if (config.isExternalApiCall && config.onLogout) {\n await config.onLogout();\n } else {\n await authApi.logout();\n }\n } catch (e) {\n // proceed even if server-side logout errors out\n } finally {\n await updateSession(null);\n eventService.emit('LOGOUT');\n }\n };\n\n const isAuthenticated = !!token;\n\n // Theming variables resolver\n const themeStyles = useMemo(() => {\n const styles: Record<string, string> = {};\n const t = config.theme;\n\n // default light settings\n let primary = '#3f51b5';\n let primaryHover = '#303f9f';\n let secondary = '#ff4081';\n let background = '#f4f6f8';\n let surface = '#ffffff';\n let text = '#1a1f36';\n let textMuted = '#5c7080';\n let border = '#e1e8ed';\n let error = '#d32f2f';\n let success = '#2e7d32';\n let borderRadius = '8px';\n let borderRadiusCard = '8px';\n let borderRadiusButton = '8px';\n let borderRadiusInput = '8px';\n let spacing = '16px';\n let fontBody = 'system-ui, -apple-system, sans-serif';\n let fontHeading = 'system-ui, -apple-system, sans-serif';\n let bgStyle = 'linear-gradient(135deg, #e0e8f5 0%, #f4f6f8 100%)';\n\n if (t === 'dark') {\n primary = '#6366f1';\n primaryHover = '#4f46e5';\n secondary = '#ec4899';\n background = '#0f172a';\n surface = '#1e293b';\n text = '#f8fafc';\n textMuted = '#94a3b8';\n border = '#334155';\n error = '#f87171';\n success = '#4ade80';\n borderRadius = '8px';\n borderRadiusCard = '16px';\n borderRadiusButton = '8px';\n borderRadiusInput = '8px';\n bgStyle = 'linear-gradient(135deg, #090d16 0%, #0f172a 100%)';\n } else if (t && typeof t === 'object') {\n const colors = t.colors || {};\n if (colors.primary) primary = colors.primary;\n if (colors.primaryHover) primaryHover = colors.primaryHover;\n if (colors.secondary) secondary = colors.secondary;\n if (colors.background) background = colors.background;\n if (colors.surface) surface = colors.surface;\n if (colors.text) text = colors.text;\n if (colors.textMuted) textMuted = colors.textMuted;\n if (colors.border) border = colors.border;\n if (colors.error) error = colors.error;\n if (colors.success) success = colors.success;\n if (t.fonts?.body) fontBody = t.fonts.body;\n if (t.fonts?.heading) fontHeading = t.fonts.heading;\n if (t.borderRadius) {\n borderRadius = t.borderRadius;\n borderRadiusCard = t.borderRadius;\n borderRadiusButton = t.borderRadius;\n borderRadiusInput = t.borderRadius;\n }\n if (t.borderRadiusCard) borderRadiusCard = t.borderRadiusCard;\n if (t.borderRadiusButton) borderRadiusButton = t.borderRadiusButton;\n if (t.borderRadiusInput) borderRadiusInput = t.borderRadiusInput;\n if (t.spacing) spacing = t.spacing;\n if (t.background) bgStyle = t.background;\n }\n\n styles['--auth-color-primary'] = primary;\n styles['--auth-color-primary-hover'] = primaryHover;\n styles['--auth-color-secondary'] = secondary;\n styles['--auth-color-background'] = background;\n styles['--auth-color-surface'] = surface;\n styles['--auth-color-text'] = text;\n styles['--auth-color-text-muted'] = textMuted;\n styles['--auth-color-border'] = border;\n styles['--auth-color-error'] = error;\n styles['--auth-color-success'] = success;\n styles['--auth-font-body'] = fontBody;\n styles['--auth-font-heading'] = fontHeading;\n styles['--auth-border-radius'] = borderRadius;\n styles['--auth-border-radius-card'] = borderRadiusCard;\n styles['--auth-border-radius-button'] = borderRadiusButton;\n styles['--auth-border-radius-input'] = borderRadiusInput;\n styles['--auth-spacing'] = spacing;\n styles['--auth-bg-style'] = bgStyle;\n\n return styles as React.CSSProperties;\n }, [config.theme]);\n\n const contextValue = useMemo<AuthContextProps>(() => ({\n user,\n token,\n refreshToken,\n isAuthenticated,\n loading,\n login,\n logout,\n signup,\n verifyOtp,\n verifyIdentity,\n resetPassword,\n refresh,\n getUserProfile,\n updateUser,\n deleteUser,\n config,\n authApi,\n }), [user, token, refreshToken, isAuthenticated, loading, config, authApi]);\n\n return (\n <AuthContext.Provider value={contextValue}>\n <div style={themeStyles} className=\"auth-sdk-provider-container\">\n {children}\n </div>\n </AuthContext.Provider>\n );\n};\n","import { useContext } from 'react';\nimport { AuthContext, AuthContextProps } from '../provider/AuthContext';\n\nexport function useAuth(): AuthContextProps {\n const context = useContext(AuthContext);\n if (!context) {\n throw new Error('useAuth must be used within an AuthProvider');\n }\n return context;\n}\nexport default useAuth;\n","import { useState } from 'react';\nimport { useAuth } from './useAuth';\n\nexport function useLogin() {\n const { login } = useAuth();\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState<string | null>(null);\n const [success, setSuccess] = useState(false);\n\n const execute = async (payload: Record<string, any>) => {\n setLoading(true);\n setError(null);\n setSuccess(false);\n try {\n const res = await login(payload);\n setSuccess(true);\n return res;\n } catch (err: any) {\n setError(err?.message || 'Login failed.');\n throw err;\n } finally {\n setLoading(false);\n }\n };\n\n const reset = () => {\n setError(null);\n setSuccess(false);\n };\n\n return { loading, error, success, execute, reset };\n}\nexport default useLogin;\n","import { useState } from 'react';\nimport { useAuth } from './useAuth';\n\nexport function useSignup() {\n const { signup } = useAuth();\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState<string | null>(null);\n const [success, setSuccess] = useState(false);\n\n const execute = async (payload: Record<string, any>) => {\n setLoading(true);\n setError(null);\n setSuccess(false);\n try {\n const res = await signup(payload);\n setSuccess(true);\n return res;\n } catch (err: any) {\n setError(err?.message || 'Registration failed.');\n throw err;\n } finally {\n setLoading(false);\n }\n };\n\n const reset = () => {\n setError(null);\n setSuccess(false);\n };\n\n return { loading, error, success, execute, reset };\n}\nexport default useSignup;\n","import { useState } from 'react';\nimport { useAuth } from './useAuth';\n\nexport function useVerifyIdentity() {\n const { verifyIdentity } = useAuth();\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState<string | null>(null);\n const [success, setSuccess] = useState(false);\n\n const execute = async (payload: Record<string, any>, urlParams?: Record<string, string | number>) => {\n setLoading(true);\n setError(null);\n setSuccess(false);\n try {\n const res = await verifyIdentity(payload, urlParams);\n setSuccess(true);\n return res;\n } catch (err: any) {\n setError(err?.message || 'Failed to submit identity verification request.');\n throw err;\n } finally {\n setLoading(false);\n }\n };\n\n const reset = () => {\n setError(null);\n setSuccess(false);\n };\n\n return { loading, error, success, execute, reset };\n}\nexport default useVerifyIdentity;\n","import { useState } from 'react';\nimport { useAuth } from './useAuth';\n\nexport function useOtp() {\n const { verifyOtp } = useAuth();\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState<string | null>(null);\n const [success, setSuccess] = useState(false);\n\n const execute = async (payload: Record<string, any>, urlParams?: Record<string, string | number>) => {\n setLoading(true);\n setError(null);\n setSuccess(false);\n try {\n const res = await verifyOtp(payload, urlParams);\n setSuccess(true);\n return res;\n } catch (err: any) {\n setError(err?.message || 'OTP verification failed.');\n throw err;\n } finally {\n setLoading(false);\n }\n };\n\n const resend = async (payload: Record<string, any>, urlParams?: Record<string, string | number>) => {\n setLoading(true);\n setError(null);\n try {\n return await verifyOtp(payload, urlParams);\n } catch (err: any) {\n setError(err?.message || 'Failed to resend OTP.');\n throw err;\n } finally {\n setLoading(false);\n }\n };\n\n const reset = () => {\n setError(null);\n setSuccess(false);\n };\n\n return { loading, error, success, execute, resend, reset };\n}\nexport default useOtp;\n","import { useState } from 'react';\nimport { useAuth } from './useAuth';\n\nexport function useResetPassword() {\n const { resetPassword } = useAuth();\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState<string | null>(null);\n const [success, setSuccess] = useState(false);\n\n const execute = async (payload: Record<string, any>, urlParams?: Record<string, string | number>) => {\n setLoading(true);\n setError(null);\n setSuccess(false);\n try {\n const res = await resetPassword(payload, urlParams);\n setSuccess(true);\n return res;\n } catch (err: any) {\n setError(err?.message || 'Password reset failed.');\n throw err;\n } finally {\n setLoading(false);\n }\n };\n\n const reset = () => {\n setError(null);\n setSuccess(false);\n };\n\n return { loading, error, success, execute, reset };\n}\nexport default useResetPassword;\n","import { useState } from 'react';\nimport { useAuth } from './useAuth';\n\nexport function useUpdateUser() {\n const { updateUser } = useAuth();\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState<string | null>(null);\n const [success, setSuccess] = useState(false);\n\n const execute = async (payload: Record<string, any>, site?: string, id?: string) => {\n setLoading(true);\n setError(null);\n setSuccess(false);\n try {\n const res = await updateUser(payload, site, id);\n setSuccess(true);\n return res;\n } catch (err: any) {\n setError(err?.message || 'Profile update failed.');\n throw err;\n } finally {\n setLoading(false);\n }\n };\n\n const reset = () => {\n setError(null);\n setSuccess(false);\n };\n\n return { loading, error, success, execute, reset };\n}\nexport default useUpdateUser;\n","import React from 'react';\nimport { useAuth } from '../../hooks/useAuth';\nimport styles from '../common.module.css';\n\nexport interface GoogleLoginProps {\n buttonText?: string;\n className?: string;\n}\n\nexport const GoogleLogin: React.FC<GoogleLoginProps> = ({ buttonText, className }) => {\n const { config } = useAuth();\n \n const handleGoogleLogin = () => {\n const googleEndpoint = config.endpoints?.googleLogin || '/auth/google';\n const redirectUrl = googleEndpoint.startsWith('http') \n ? googleEndpoint \n : `${config.apiBaseUrl}${googleEndpoint}`;\n window.open(redirectUrl, '_self');\n };\n\n const label = buttonText || config.customization?.buttonText?.google || 'Sign in with Google';\n\n return (\n <button \n type=\"button\" \n onClick={handleGoogleLogin} \n className={`${styles.googleButton} ${className || ''}`}\n aria-label={label}\n >\n <svg className={styles.googleIcon} viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path\n fill=\"#4285F4\"\n d=\"M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z\"\n />\n <path\n fill=\"#34A853\"\n d=\"M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z\"\n />\n <path\n fill=\"#FBBC05\"\n d=\"M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.06H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.94l2.85-2.22.81-.63z\"\n />\n <path\n fill=\"#EA4335\"\n d=\"M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.06l3.66 2.84c.87-2.6 3.3-4.52 6.16-4.52z\"\n />\n </svg>\n <span>{label}</span>\n </button>\n );\n};\n\nexport default GoogleLogin;\n","import React, { useEffect, useState } from 'react';\nimport styles from '../common.module.css';\n\ninterface AlertProps {\n message: string | null;\n type: 'success' | 'error';\n style?: React.CSSProperties;\n onDismiss?: () => void;\n}\n\nexport const Alert: React.FC<AlertProps> = ({ message, type, style, onDismiss }) => {\n const [visibleMessage, setVisibleMessage] = useState<string | null>(message);\n\n useEffect(() => {\n setVisibleMessage(message);\n }, [message]);\n\n useEffect(() => {\n if (visibleMessage) {\n const timer = setTimeout(() => {\n setVisibleMessage(null);\n if (onDismiss) {\n onDismiss();\n }\n }, 3000);\n return () => clearTimeout(timer);\n }\n }, [visibleMessage, onDismiss]);\n\n if (!visibleMessage) return null;\n\n if (type === 'success') {\n return (\n <div className={styles.apiSuccessBlock} style={style} role=\"status\">\n <svg className={styles.apiSuccessIcon} viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path fillRule=\"evenodd\" d=\"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z\" clipRule=\"evenodd\" />\n </svg>\n <span>{visibleMessage}</span>\n </div>\n );\n }\n\n return (\n <div className={styles.apiErrorBlock} style={style} role=\"alert\">\n <svg className={styles.apiErrorIcon} viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path fillRule=\"evenodd\" d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z\" clipRule=\"evenodd\" />\n </svg>\n <span>{visibleMessage}</span>\n </div>\n );\n};\n\nexport default Alert;\n","import { z } from 'zod';\n\nexport const loginSchema = z.object({\n email: z.string().email('Please enter a valid email address'),\n password: z.string().min(1, 'Password is required'),\n});\n\nexport const otpEmailSchema = z.object({\n email: z.string().email('Please enter a valid email address'),\n});\n\nexport const otpSubmitSchema = z.object({\n email: z.string().email('Please enter a valid email address'),\n otp: z.string().min(1, 'OTP is required'),\n});\n","import { z } from 'zod';\n\nexport const signupSchema = z.object({\n name: z.string().min(1, 'Name is required'),\n email: z.string().email('Please enter a valid email address'),\n password: z.string().min(6, 'Password must be at least 6 characters long'),\n verifyPassword: z.string().min(1, 'Please confirm your password'),\n}).refine((data) => data.password === data.verifyPassword, {\n message: \"Passwords do not match\",\n path: [\"verifyPassword\"],\n});\n","import { z } from 'zod';\n\nexport const verifyIdentitySchema = z.object({\n email: z.string().email('Please enter a valid email address'),\n});\n","import { z } from 'zod';\n\nexport const otpSchema = z.object({\n otp: z.string().min(4, 'OTP must be at least 4 digits').max(8, 'OTP is too long'),\n});\n","import { z } from 'zod';\n\nexport const resetPasswordSchema = z.object({\n password: z.string().min(6, 'Password must be at least 6 characters long'),\n verifyPassword: z.string().min(1, 'Please confirm your password'),\n}).refine((data) => data.password === data.verifyPassword, {\n message: \"Passwords do not match\",\n path: [\"verifyPassword\"],\n});\n","import { z } from 'zod';\n\nexport const updateUserSchema = z.object({\n fullName: z.string().min(1, 'Full name is required').optional().or(z.literal('')),\n email: z.string().email('Please enter a valid email address').optional().or(z.literal('')),\n username: z.string().optional(),\n phoneNumber: z.string().optional(),\n password: z.string().min(6, 'Password must be at least 6 characters long').optional().or(z.literal('')),\n profileUrl: z.string().url('Please enter a valid URL').optional().or(z.literal('')),\n city: z.string().optional(),\n state: z.string().optional(),\n country: z.string().optional(),\n postalcode: z.string().optional(),\n timezone: z.string().optional(),\n});\n","import React, { useState } from 'react';\nimport { z } from 'zod';\nimport { useLogin } from '../../hooks/useLogin';\nimport { useAuth } from '../../hooks/useAuth';\nimport { GoogleLogin } from '../googleLogin';\nimport { BaseComponentProps } from '../../types/auth';\nimport Alert from '../alert/Alert';\nimport styles from '../common.module.css';\n\nexport interface LoginProps extends BaseComponentProps {\n onSuccess?: (data: any) => void;\n onForgotPasswordClick?: () => void;\n onSignupClick?: () => void;\n}\n\nimport { loginSchema as defaultSchema, otpEmailSchema, otpSubmitSchema } from '../../validation';\n\nexport const Login: React.FC<LoginProps> = ({\n components,\n labels,\n buttonText,\n placeholders,\n validationSchema,\n onSuccess,\n onForgotPasswordClick,\n onSignupClick,\n}) => {\n const { config, verifyIdentity: forgotPassword } = useAuth();\n const { loading: loginLoading, error: apiError, execute, reset: resetLogin } = useLogin();\n const [formErrors, setFormErrors] = useState<Record<string, string>>({});\n const [passHide, setPassHide] = useState(true);\n const [localApiError, setLocalApiError] = useState<string | null>(null);\n \n // OTP states\n const [loginMethod, setLoginMethod] = useState<'password' | 'otp'>('password');\n const [emailInput, setEmailInput] = useState('');\n const [otpInput, setOtpInput] = useState('');\n const [otpSent, setOtpSent] = useState(false);\n const [otpSending, setOtpSending] = useState(false);\n const [otpSuccessMsg, setOtpSuccessMsg] = useState<string | null>(null);\n\n\n\n const schema = validationSchema || config.customization?.validationSchema?.login || defaultSchema;\n\n const handleSendOtp = async (e: React.MouseEvent) => {\n e.preventDefault();\n setFormErrors({});\n setOtpSuccessMsg(null);\n setLocalApiError(null);\n\n // Validate email first\n try {\n otpEmailSchema.parse({ email: emailInput });\n } catch (zodErr: any) {\n if (zodErr instanceof z.ZodError) {\n setFormErrors({ [emailFieldKey]: zodErr.errors[0].message });\n return;\n }\n }\n\n setOtpSending(true);\n try {\n await forgotPassword({ [emailFieldKey]: emailInput });\n setOtpSent(true);\n setOtpSuccessMsg('OTP has been sent to your e-mail.');\n } catch (err: any) {\n setLocalApiError(err.message || 'Failed to send OTP.');\n } finally {\n setOtpSending(false);\n }\n };\n\n const handleSubmit = async (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault();\n setFormErrors({});\n setOtpSuccessMsg(null);\n setLocalApiError(null);\n\n if (loginMethod === 'otp') {\n if (!otpSent) {\n // Just trigger send OTP\n return;\n }\n\n // Validate OTP login\n try {\n otpSubmitSchema.parse({ email: emailInput, otp: otpInput });\n } catch (zodErr: any) {\n if (zodErr instanceof z.ZodError) {\n const errors: Record<string, string> = {};\n zodErr.errors.forEach((err) => {\n if (err.path[0]) {\n const key = err.path[0].toString() === 'email' ? emailFieldKey : (err.path[0].toString() === 'otp' ? otpFieldKey : err.path[0].toString());\n errors[key] = err.message;\n }\n });\n setFormErrors(errors);\n return;\n }\n }\n\n try {\n const res = await execute({ [emailFieldKey]: emailInput, [otpFieldKey]: otpInput });\n if (onSuccess) onSuccess(res);\n } catch (err: any) {\n setLocalApiError(err?.message || 'Verification failed.');\n }\n } else {\n // Standard password login\n const formData = new FormData(e.currentTarget);\n const data = Object.fromEntries(formData.entries());\n\n const validationData = {\n email: data[emailFieldKey],\n password: data[passwordFieldKey],\n };\n\n try {\n schema.parse(validationData);\n } catch (zodErr: any) {\n if (zodErr instanceof z.ZodError) {\n const errors: Record<string, string> = {};\n zodErr.errors.forEach((err) => {\n if (err.path[0]) {\n const fieldName = err.path[0].toString();\n // Map camelCase Zod path back to dynamic keys if they mismatch\n const key = fieldName === 'email' ? emailFieldKey : (fieldName === 'password' ? passwordFieldKey : fieldName);\n errors[key] = err.message;\n }\n });\n setFormErrors(errors);\n return;\n }\n }\n\n try {\n const res = await execute(data);\n if (onSuccess) onSuccess(res);\n } catch (err: any) {\n setLocalApiError(err?.message || 'Login failed.');\n console.error('[SDK Login Component] Error caught during form submit:', err);\n }\n }\n };\n\n // Resolve Overrides\n const Card = components?.Card || 'div';\n const Button = components?.Button || 'button';\n const InputComponent = components?.Input;\n\n // Resolve Customized Content\n const title = config.customization?.labels?.loginTitle || 'Log In';\n const emailLabel = labels?.email || config.customization?.labels?.loginEmail || config.customization?.labels?.email || 'E-mail';\n const passwordLabel = labels?.password || config.customization?.labels?.loginPassword || config.customization?.labels?.password || 'Password';\n const submitText = buttonText || config.customization?.buttonText?.login || 'Login';\n const emailPlaceholder = placeholders?.email || config.customization?.placeholders?.loginEmail || config.customization?.placeholders?.email || 'E-mail';\n const passwordPlaceholder = placeholders?.password || config.customization?.placeholders?.loginPassword || config.customization?.placeholders?.password || 'Password';\n const otpLabel = config.customization?.labels?.otpLabel || 'OTP Code';\n const otpPlaceholder = config.customization?.placeholders?.otpPlaceholder || '123456';\n\n // Dynamic field keys from requestMapping.login\n const emailFieldKey = config.requestMapping?.login?.email || 'email';\n const passwordFieldKey = config.requestMapping?.login?.password || 'password';\n const otpFieldKey = config.requestMapping?.login?.otp || config.requestMapping?.otp?.otp || 'otp';\n\n const loading = loginLoading || otpSending;\n\n return (\n <Card className={styles.card}>\n <h1 className={styles.heading}>{title}</h1>\n \n <form onSubmit={handleSubmit} className={styles.form} noValidate>\n\n {/* Email Field */}\n <div className={styles.formGroup}>\n <label htmlFor={emailFieldKey} className={styles.label}>{emailLabel}</label>\n <div className={styles.inputWrapper}>\n {InputComponent ? (\n <InputComponent\n type=\"email\"\n id={emailFieldKey}\n name={emailFieldKey}\n value={emailInput}\n onChange={(e: any) => setEmailInput(e.target.value)}\n placeholder={emailPlaceholder}\n error={formErrors[emailFieldKey]}\n disabled={otpSent && loginMethod === 'otp'}\n />\n ) : (\n <input\n type=\"email\"\n id={emailFieldKey}\n name={emailFieldKey}\n value={emailInput}\n onChange={(e) => setEmailInput(e.target.value)}\n placeholder={emailPlaceholder}\n className={`${styles.input} ${formErrors[emailFieldKey] ? styles.inputError : ''}`}\n required\n disabled={otpSent && loginMethod === 'otp'}\n aria-invalid={!!formErrors[emailFieldKey]}\n aria-describedby={formErrors[emailFieldKey] ? `${emailFieldKey}-error` : undefined}\n />\n )}\n </div>\n {formErrors[emailFieldKey] && (\n <span id={`${emailFieldKey}-error`} className={styles.errorText} role=\"alert\">\n {formErrors[emailFieldKey]}\n </span>\n )}\n </div>\n\n {/* Password or OTP Field based on method */}\n {loginMethod === 'otp' ? (\n otpSent && (\n <div className={styles.formGroup}>\n <div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center' }}>\n <label htmlFor={otpFieldKey} className={styles.label}>{otpLabel}</label>\n <button type=\"button\" onClick={handleSendOtp} className={styles.link} style={{ fontSize: '0.75rem', background: 'none', border: 'none', padding: 0 }}>\n Resend OTP\n </button>\n </div>\n <div className={styles.inputWrapper}>\n {InputComponent ? (\n <InputComponent\n type=\"text\"\n id={otpFieldKey}\n name={otpFieldKey}\n value={otpInput}\n onChange={(e: any) => setOtpInput(e.target.value)}\n placeholder={otpPlaceholder}\n error={formErrors[otpFieldKey]}\n />\n ) : (\n <input\n type=\"text\"\n id={otpFieldKey}\n name={otpFieldKey}\n value={otpInput}\n onChange={(e) => setOtpInput(e.target.value)}\n placeholder={otpPlaceholder}\n className={`${styles.input} ${formErrors[otpFieldKey] ? styles.inputError : ''}`}\n required\n aria-invalid={!!formErrors[otpFieldKey]}\n aria-describedby={formErrors[otpFieldKey] ? `${otpFieldKey}-error` : undefined}\n />\n )}\n </div>\n {formErrors[otpFieldKey] && (\n <span id={`${otpFieldKey}-error`} className={styles.errorText} role=\"alert\">\n {formErrors[otpFieldKey]}\n </span>\n )}\n </div>\n )\n ) : (\n <div className={styles.formGroup}>\n <label htmlFor={passwordFieldKey} className={styles.label}>{passwordLabel}</label>\n <div className={styles.inputWrapper}>\n {InputComponent ? (\n <InputComponent\n type={passHide ? \"password\" : \"text\"}\n id={passwordFieldKey}\n name={passwordFieldKey}\n placeholder={passwordPlaceholder}\n error={formErrors[passwordFieldKey]}\n />\n ) : (\n <>\n <input\n type={passHide ? \"password\" : \"text\"}\n id={passwordFieldKey}\n name={passwordFieldKey}\n placeholder={passwordPlaceholder}\n className={`${styles.input} ${formErrors[passwordFieldKey] ? styles.inputError : ''}`}\n required\n aria-invalid={!!formErrors[passwordFieldKey]}\n aria-describedby={formErrors[passwordFieldKey] ? `${passwordFieldKey}-error` : undefined}\n />\n <button\n type=\"button\"\n onClick={() => setPassHide(!passHide)}\n className={styles.inputIcon}\n aria-label={passHide ? \"Show password\" : \"Hide password\"}\n >\n {passHide ? (\n <svg className={styles.eyeIcon} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\" />\n <circle cx=\"12\" cy=\"12\" r=\"3\" />\n </svg>\n ) : (\n <svg className={styles.eyeIcon} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <path d=\"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24\" />\n <line x1=\"1\" y1=\"1\" x2=\"23\" y2=\"23\" />\n </svg>\n )}\n </button>\n </>\n )}\n </div>\n {formErrors[passwordFieldKey] && (\n <span id={`${passwordFieldKey}-error`} className={styles.errorText} role=\"alert\">\n {formErrors[passwordFieldKey]}\n </span>\n )}\n </div>\n )}\n\n <div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center', marginTop: '-4px' }}>\n {config.enableOtpLogin && (\n <button\n type=\"button\"\n onClick={() => {\n setLoginMethod(loginMethod === 'password' ? 'otp' : 'password');\n setFormErrors({});\n setOtpSuccessMsg(null);\n setLocalApiError(null);\n resetLogin();\n }}\n className={styles.link}\n style={{ background: 'none', border: 'none', padding: 0 }}\n >\n {loginMethod === 'password' ? 'Login with OTP' : 'Login with Password'}\n </button>\n )}\n {loginMethod === 'password' && onForgotPasswordClick && (\n <button\n type=\"button\"\n onClick={onForgotPasswordClick}\n className={styles.link}\n >\n {config.customization?.labels?.loginForgotPasswordLink || 'Forgot password?'}\n </button>\n )}\n </div>\n\n <Alert message={otpSuccessMsg} type=\"success\" style={{ marginTop: '8px', marginBottom: '8px' }} onDismiss={() => setOtpSuccessMsg(null)} />\n <Alert message={localApiError || apiError} type=\"error\" style={{ marginTop: '8px', marginBottom: '8px' }} onDismiss={() => { setLocalApiError(null); resetLogin(); }} />\n\n {loginMethod === 'otp' && !otpSent ? (\n <Button type=\"button\" onClick={handleSendOtp} disabled={loading} className={styles.button}>\n {loading ? 'Sending OTP...' : 'Send OTP'}\n </Button>\n ) : (\n <Button type=\"submit\" disabled={loading} className={styles.button}>\n {loading ? (components?.Loader ? <components.Loader /> : 'Loading...') : submitText}\n </Button>\n )}\n\n {onSignupClick && (\n <div className={styles.footerText}>\n {config.customization?.labels?.loginDontHaveAccountText || \"Don't have an account? \"}{' '}\n <button\n type=\"button\"\n onClick={onSignupClick}\n className={styles.link}\n style={{ background: 'none', border: 'none', padding: 0 }}\n >\n {config.customization?.labels?.loginSignupLink || 'SignUp'}\n </button>\n </div>\n )}\n\n {config.enableGoogleLogin !== false && (\n <>\n <div className={styles.divider}>{config.customization?.labels?.loginDividerText || 'or'}</div>\n <GoogleLogin />\n </>\n )}\n </form>\n </Card>\n );\n};\n\nexport default Login;\n","import React, { useState } from 'react';\nimport { z } from 'zod';\nimport { useSignup } from '../../hooks/useSignup';\nimport { useAuth } from '../../hooks/useAuth';\nimport { GoogleLogin } from '../googleLogin';\nimport { BaseComponentProps } from '../../types/auth';\nimport Alert from '../alert/Alert';\nimport styles from '../common.module.css';\n\nexport interface SignupProps extends BaseComponentProps {\n onSuccess?: (data: any) => void;\n onLoginClick?: () => void;\n}\n\nimport { signupSchema as defaultSchema } from '../../validation';\n\nexport const Signup: React.FC<SignupProps> = ({\n components,\n labels,\n buttonText,\n placeholders,\n validationSchema,\n onSuccess,\n onLoginClick,\n}) => {\n const { config } = useAuth();\n const { loading, error: apiError, execute, reset: resetSignup } = useSignup();\n const [formErrors, setFormErrors] = useState<Record<string, string>>({});\n\n\n\n const [passHide, setPassHide] = useState({ pass: true, verify: true });\n\n const schema = validationSchema || config.customization?.validationSchema?.signup || defaultSchema;\n\n const handleSubmit = async (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault();\n setFormErrors({});\n\n const formData = new FormData(e.currentTarget);\n const data = Object.fromEntries(formData.entries());\n\n // Map dynamic form fields back to fixed schema keys for validation\n const validationData = {\n name: data[nameFieldKey],\n email: data[emailFieldKey],\n password: data[passwordFieldKey],\n verifyPassword: data[verifyPasswordFieldKey],\n };\n\n // Validate using Zod\n try {\n schema.parse(validationData);\n } catch (zodErr: any) {\n if (zodErr instanceof z.ZodError) {\n const errors: Record<string, string> = {};\n zodErr.errors.forEach((err) => {\n if (err.path[0]) {\n const fieldName = err.path[0].toString();\n const key = fieldName === 'name' ? nameFieldKey :\n fieldName === 'email' ? emailFieldKey :\n fieldName === 'password' ? passwordFieldKey :\n fieldName === 'verifyPassword' ? verifyPasswordFieldKey : fieldName;\n errors[key] = err.message;\n }\n });\n setFormErrors(errors);\n return;\n }\n }\n\n try {\n // Exclude verifyPassword from final API submit payload\n const { [verifyPasswordFieldKey]: _, ...submitPayload } = data;\n const res = await execute(submitPayload);\n if (onSuccess) onSuccess(res);\n } catch (err) {\n // error is handled by useSignup state\n }\n };\n\n // Resolve Overrides\n const Card = components?.Card || 'div';\n const Button = components?.Button || 'button';\n const InputComponent = components?.Input;\n\n // Resolve Customized Content\n const title = config.customization?.labels?.signupTitle || 'Sign Up';\n const nameLabel = labels?.name || config.customization?.labels?.signupName || config.customization?.labels?.name || 'Name';\n const emailLabel = labels?.email || config.customization?.labels?.signupEmail || config.customization?.labels?.email || 'E-mail';\n const passwordLabel = labels?.password || config.customization?.labels?.signupPassword || config.customization?.labels?.password || 'Password';\n const verifyPasswordLabel = labels?.verifyPassword || config.customization?.labels?.signupVerifyPassword || config.customization?.labels?.verifyPassword || 'Verify Password';\n const submitText = buttonText || config.customization?.buttonText?.signup || 'Register';\n const namePlaceholder = placeholders?.name || config.customization?.placeholders?.signupName || config.customization?.placeholders?.name || 'Name';\n const emailPlaceholder = placeholders?.email || config.customization?.placeholders?.signupEmail || config.customization?.placeholders?.email || 'E-mail';\n const passwordPlaceholder = placeholders?.password || config.customization?.placeholders?.signupPassword || config.customization?.placeholders?.password || 'Password';\n const verifyPasswordPlaceholder = placeholders?.verifyPassword || config.customization?.placeholders?.signupVerifyPassword || config.customization?.placeholders?.verifyPassword || 'Verify Password';\n\n // Dynamic field keys from requestMapping.signup\n const nameFieldKey = config.requestMapping?.signup?.name || 'name';\n const emailFieldKey = config.requestMapping?.signup?.email || 'email';\n const passwordFieldKey = config.requestMapping?.signup?.password || 'password';\n const verifyPasswordFieldKey = config.requestMapping?.signup?.verifyPassword || 'verifyPassword';\n\n return (\n <Card className={styles.card}>\n <h1 className={styles.heading}>{title}</h1>\n\n <form onSubmit={handleSubmit} className={styles.form} noValidate>\n\n <div className={styles.formGroup}>\n <label htmlFor={nameFieldKey} className={styles.label}>{nameLabel}</label>\n <div className={styles.inputWrapper}>\n {InputComponent ? (\n <InputComponent\n type=\"text\"\n id={nameFieldKey}\n name={nameFieldKey}\n placeholder={namePlaceholder}\n error={formErrors[nameFieldKey]}\n />\n ) : (\n <input\n type=\"text\"\n id={nameFieldKey}\n name={nameFieldKey}\n placeholder={namePlaceholder}\n className={`${styles.input} ${formErrors[nameFieldKey] ? styles.inputError : ''}`}\n required\n aria-invalid={!!formErrors[nameFieldKey]}\n aria-describedby={formErrors[nameFieldKey] ? `${nameFieldKey}-error` : undefined}\n />\n )}\n </div>\n {formErrors[nameFieldKey] && (\n <span id={`${nameFieldKey}-error`} className={styles.errorText} role=\"alert\">\n {formErrors[nameFieldKey]}\n </span>\n )}\n </div>\n\n <div className={styles.formGroup}>\n <label htmlFor={emailFieldKey} className={styles.label}>{emailLabel}</label>\n <div className={styles.inputWrapper}>\n {InputComponent ? (\n <InputComponent\n type=\"email\"\n id={emailFieldKey}\n name={emailFieldKey}\n placeholder={emailPlaceholder}\n error={formErrors[emailFieldKey]}\n />\n ) : (\n <input\n type=\"email\"\n id={emailFieldKey}\n name={emailFieldKey}\n placeholder={emailPlaceholder}\n className={`${styles.input} ${formErrors[emailFieldKey] ? styles.inputError : ''}`}\n required\n aria-invalid={!!formErrors[emailFieldKey]}\n aria-describedby={formErrors[emailFieldKey] ? `${emailFieldKey}-error` : undefined}\n />\n )}\n </div>\n {formErrors[emailFieldKey] && (\n <span id={`${emailFieldKey}-error`} className={styles.errorText} role=\"alert\">\n {formErrors[emailFieldKey]}\n </span>\n )}\n </div>\n\n <div className={styles.formGroup}>\n <label htmlFor={passwordFieldKey} className={styles.label}>{passwordLabel}</label>\n <div className={styles.inputWrapper}>\n {InputComponent ? (\n <InputComponent\n type={passHide.pass ? \"password\" : \"text\"}\n id={passwordFieldKey}\n name={passwordFieldKey}\n placeholder={passwordPlaceholder}\n error={formErrors[passwordFieldKey]}\n />\n ) : (\n <>\n <input\n type={passHide.pass ? \"password\" : \"text\"}\n id={passwordFieldKey}\n name={passwordFieldKey}\n placeholder={passwordPlaceholder}\n className={`${styles.input} ${formErrors[passwordFieldKey] ? styles.inputError : ''}`}\n required\n aria-invalid={!!formErrors[passwordFieldKey]}\n aria-describedby={formErrors[passwordFieldKey] ? `${passwordFieldKey}-error` : undefined}\n />\n <button\n type=\"button\"\n onClick={() => setPassHide({ ...passHide, pass: !passHide.pass })}\n className={styles.inputIcon}\n aria-label={passHide.pass ? \"Show password\" : \"Hide password\"}\n >\n {passHide.pass ? (\n <svg className={styles.eyeIcon} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\" />\n <circle cx=\"12\" cy=\"12\" r=\"3\" />\n </svg>\n ) : (\n <svg className={styles.eyeIcon} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <path d=\"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24\" />\n <line x1=\"1\" y1=\"1\" x2=\"23\" y2=\"23\" />\n </svg>\n )}\n </button>\n </>\n )}\n </div>\n {formErrors[passwordFieldKey] && (\n <span id={`${passwordFieldKey}-error`} className={styles.errorText} role=\"alert\">\n {formErrors[passwordFieldKey]}\n </span>\n )}\n </div>\n\n <div className={styles.formGroup}>\n <label htmlFor={verifyPasswordFieldKey} className={styles.label}>{verifyPasswordLabel}</label>\n <div className={styles.inputWrapper}>\n {InputComponent ? (\n <InputComponent\n type={passHide.verify ? \"password\" : \"text\"}\n id={verifyPasswordFieldKey}\n name={verifyPasswordFieldKey}\n placeholder={verifyPasswordPlaceholder}\n error={formErrors[verifyPasswordFieldKey]}\n />\n ) : (\n <>\n <input\n type={passHide.verify ? \"password\" : \"text\"}\n id={verifyPasswordFieldKey}\n name={verifyPasswordFieldKey}\n placeholder={verifyPasswordPlaceholder}\n className={`${styles.input} ${formErrors[verifyPasswordFieldKey] ? styles.inputError : ''}`}\n required\n aria-invalid={!!formErrors[verifyPasswordFieldKey]}\n aria-describedby={formErrors[verifyPasswordFieldKey] ? `${verifyPasswordFieldKey}-error` : undefined}\n />\n <button\n type=\"button\"\n onClick={() => setPassHide({ ...passHide, verify: !passHide.verify })}\n className={styles.inputIcon}\n aria-label={passHide.verify ? \"Show password\" : \"Hide password\"}\n >\n {passHide.verify ? (\n <svg className={styles.eyeIcon} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\" />\n <circle cx=\"12\" cy=\"12\" r=\"3\" />\n </svg>\n ) : (\n <svg className={styles.eyeIcon} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <path d=\"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24\" />\n <line x1=\"1\" y1=\"1\" x2=\"23\" y2=\"23\" />\n </svg>\n )}\n </button>\n </>\n )}\n </div>\n {formErrors[verifyPasswordFieldKey] && (\n <span id={`${verifyPasswordFieldKey}-error`} className={styles.errorText} role=\"alert\">\n {formErrors[verifyPasswordFieldKey]}\n </span>\n )}\n </div>\n\n <Alert message={apiError} type=\"error\" style={{ marginTop: '8px', marginBottom: '8px' }} onDismiss={resetSignup} />\n\n <Button type=\"submit\" disabled={loading} className={styles.button}>\n {loading ? (components?.Loader ? <components.Loader /> : 'Loading...') : submitText}\n </Button>\n\n {onLoginClick && (\n <div className={styles.footerText}>\n {config.customization?.labels?.signupAlreadyHaveAccountText || 'Already have an account? '}{' '}\n <button\n type=\"button\"\n onClick={onLoginClick}\n className={styles.link}\n style={{ background: 'none', border: 'none', padding: 0 }}\n >\n {config.customization?.labels?.signupLoginLink || 'Login'}\n </button>\n </div>\n )}\n\n {config.enableGoogleLogin !== false && (\n <>\n <div className={styles.divider}>{config.customization?.labels?.signupDividerText || 'or'}</div>\n <GoogleLogin />\n </>\n )}\n </form>\n </Card>\n );\n};\n\nexport default Signup;\n","import React, { useState } from 'react';\nimport { z } from 'zod';\nimport { useVerifyIdentity } from '../../hooks/useVerifyIdentity';\nimport { useAuth } from '../../hooks/useAuth';\nimport { BaseComponentProps } from '../../types/auth';\nimport Alert from '../alert/Alert';\nimport styles from '../common.module.css';\n\nexport interface ForgotPasswordProps extends BaseComponentProps {\n onSuccess?: (data: any) => void;\n onBackToLoginClick?: () => void;\n}\n\nimport { verifyIdentitySchema as defaultSchema } from '../../validation';\n\nexport const ForgotPassword: React.FC<ForgotPasswordProps> = ({\n components,\n labels,\n buttonText,\n placeholders,\n validationSchema,\n onSuccess,\n onBackToLoginClick,\n}) => {\n const { config } = useAuth();\n const { loading, error: apiError, success, execute, reset: resetForgot } = useVerifyIdentity();\n const [formErrors, setFormErrors] = useState<Record<string, string>>({});\n\n\n\n const schema = validationSchema || config.customization?.validationSchema?.verifyIdentity || defaultSchema;\n\n const handleSubmit = async (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault();\n setFormErrors({});\n\n const formData = new FormData(e.currentTarget);\n const data = Object.fromEntries(formData.entries());\n\n const validationData = {\n email: data[emailFieldKey],\n };\n\n try {\n schema.parse(validationData);\n } catch (zodErr: any) {\n if (zodErr instanceof z.ZodError) {\n const errors: Record<string, string> = {};\n zodErr.errors.forEach((err) => {\n if (err.path[0]) {\n const fieldName = err.path[0].toString();\n const key = fieldName === 'email' ? emailFieldKey : fieldName;\n errors[key] = err.message;\n }\n });\n setFormErrors(errors);\n return;\n }\n }\n\n try {\n const res = await execute(data);\n if (onSuccess) onSuccess(res);\n } catch (err) {\n // handled by useForgotPassword state\n }\n };\n\n // Resolve Overrides\n const Card = components?.Card || 'div';\n const Button = components?.Button || 'button';\n const InputComponent = components?.Input;\n\n // Resolve Customized Content\n const title = config.customization?.labels?.forgotPasswordTitle || 'Forgot Password';\n const subtitle = config.customization?.labels?.forgotPasswordSubtitle || \"Enter your registered e-mail here, and we will send an OTP.\";\n const emailLabel = labels?.email || config.customization?.labels?.forgotPasswordEmail || config.customization?.labels?.email || 'E-mail';\n const submitText = buttonText || config.customization?.buttonText?.forgotPassword || 'Submit';\n const emailPlaceholder = placeholders?.email || config.customization?.placeholders?.forgotPasswordEmail || config.customization?.placeholders?.email || 'E-mail';\n\n // Dynamic field keys from requestMapping.forgotPassword\n const emailFieldKey = config.requestMapping?.forgotPassword?.email || 'email';\n\n return (\n <Card className={styles.card}>\n <div style={{ textAlign: 'center', marginBottom: '20px' }}>\n <img \n src=\"/img/confusion.png\" \n alt=\"\" \n style={{ width: '64px', height: '64px', marginBottom: '10px' }} \n onError={(e) => { e.currentTarget.style.display = 'none'; }}\n />\n <h1 className={styles.heading}>{title}</h1>\n <p className={styles.subtext}>{success ? 'OTP has been dispatched to your email address.' : subtitle}</p>\n </div>\n\n <form onSubmit={handleSubmit} className={styles.form} noValidate>\n\n <div className={styles.formGroup}>\n <label htmlFor={emailFieldKey} className={styles.label}>{emailLabel}</label>\n <div className={styles.inputWrapper}>\n {InputComponent ? (\n <InputComponent\n type=\"email\"\n id={emailFieldKey}\n name={emailFieldKey}\n placeholder={emailPlaceholder}\n error={formErrors[emailFieldKey]}\n />\n ) : (\n <input\n type=\"email\"\n id={emailFieldKey}\n name={emailFieldKey}\n placeholder={emailPlaceholder}\n className={`${styles.input} ${formErrors[emailFieldKey] ? styles.inputError : ''}`}\n required\n aria-invalid={!!formErrors[emailFieldKey]}\n aria-describedby={formErrors[emailFieldKey] ? `${emailFieldKey}-error` : undefined}\n />\n )}\n </div>\n {formErrors[emailFieldKey] && (\n <span id={`${emailFieldKey}-error`} className={styles.errorText} role=\"alert\">\n {formErrors[emailFieldKey]}\n </span>\n )}\n </div>\n\n <Alert message={apiError} type=\"error\" style={{ marginTop: '8px', marginBottom: '8px' }} onDismiss={resetForgot} />\n\n <Button type=\"submit\" disabled={loading} className={styles.button}>\n {loading ? (components?.Loader ? <components.Loader /> : 'Loading...') : submitText}\n </Button>\n\n {onBackToLoginClick && (\n <div className={styles.footerText}>\n <button\n type=\"button\"\n onClick={onBackToLoginClick}\n className={styles.link}\n style={{ background: 'none', border: 'none', padding: 0 }}\n >\n {config.customization?.labels?.forgotPasswordBackToLoginLink || 'Back to Login'}\n </button>\n </div>\n )}\n </form>\n </Card>\n );\n};\n\nexport default ForgotPassword;\n","import React, { useState } from 'react';\nimport { z } from 'zod';\nimport { useOtp } from '../../hooks/useOtp';\nimport { useAuth } from '../../hooks/useAuth';\nimport { BaseComponentProps } from '../../types/auth';\nimport Alert from '../alert/Alert';\nimport styles from '../common.module.css';\n\nexport interface OTPProps extends BaseComponentProps {\n email?: string;\n name?: string;\n token?: string;\n urlParams?: Record<string, string | number>;\n onSuccess?: (data: any) => void;\n onResendSuccess?: (data: any) => void;\n}\n\nimport { otpSchema as defaultSchema } from '../../validation';\n\nexport const OTP: React.FC<OTPProps> = ({\n components,\n labels,\n buttonText,\n placeholders,\n validationSchema,\n email,\n name,\n token,\n urlParams,\n onSuccess,\n onResendSuccess,\n}) => {\n const { config } = useAuth();\n const { loading, error: apiError, execute, resend, reset: resetOtp } = useOtp();\n const [formErrors, setFormErrors] = useState<Record<string, string>>({});\n const [resendMessage, setResendMessage] = useState<string | null>(null);\n\n\n\n // Dynamic OTP field key from requestMapping\n const otpFieldKey = config.requestMapping?.otp?.otp || config.requestMapping?.login?.otp || 'otp';\n\n const schema = validationSchema || config.customization?.validationSchema?.otp || defaultSchema;\n\n const handleSubmit = async (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault();\n setFormErrors({});\n setResendMessage(null);\n\n const formData = new FormData(e.currentTarget);\n const otpVal = formData.get(otpFieldKey)?.toString() || '';\n\n // Validate against schema (always use 'otp' key for schema since schema is fixed)\n try {\n schema.parse({ otp: otpVal });\n } catch (zodErr: any) {\n if (zodErr instanceof z.ZodError) {\n setFormErrors({ [otpFieldKey]: zodErr.errors[0].message });\n return;\n }\n }\n\n const payload = {\n [otpFieldKey]: otpVal,\n email: email || '',\n token: token || localStorage.getItem('Token') || '',\n };\n\n try {\n const res = await execute(payload, urlParams);\n if (onSuccess) onSuccess(res);\n } catch (err) {\n // handled by useOtp hook\n }\n };\n\n const handleResend = async () => {\n setFormErrors({});\n setResendMessage(null);\n const payload = {\n Name: name || '',\n Email: email || '',\n ResendOtp: 'Resend Otp',\n Token: token || localStorage.getItem('Token') || '',\n };\n\n try {\n const res = await resend(payload, urlParams);\n setResendMessage('A new OTP has been sent.');\n if (onResendSuccess) onResendSuccess(res);\n } catch (err: any) {\n // handled by useOtp hook\n }\n };\n\n // Resolve Overrides\n const Card = components?.Card || 'div';\n const Button = components?.Button || 'button';\n const InputComponent = components?.Input;\n\n // Resolve Customized Content\n const title = config.customization?.labels?.otpTitle || 'E-mail Verification';\n const otpLabel = labels?.otp || config.customization?.labels?.otpLabel || config.customization?.labels?.otp || 'OTP';\n const submitText = buttonText || config.customization?.buttonText?.otp || 'Submit';\n const otpPlaceholder = placeholders?.otp || config.customization?.placeholders?.otpPlaceholder || config.customization?.placeholders?.otp || 'OTP Code';\n\n return (\n <Card className={styles.card}>\n <div style={{ textAlign: 'center', marginBottom: '20px' }}>\n <img\n src=\"/img/otp-email-authentication-and-verification-method-vector-47553539.jpg\"\n alt=\"\"\n style={{ width: '80px', height: '80px', borderRadius: '50%', marginBottom: '10px', objectFit: 'cover' }}\n onError={(e) => { e.currentTarget.style.display = 'none'; }}\n />\n <h1 className={styles.heading}>{title}</h1>\n {email && <p className={styles.subtext}>Verifying code sent to {email}</p>}\n </div>\n\n <form onSubmit={handleSubmit} className={styles.form} noValidate>\n\n <div className={styles.formGroup}>\n <label htmlFor={otpFieldKey} className={styles.label}>{otpLabel}</label>\n <div className={styles.inputWrapper}>\n {InputComponent ? (\n <InputComponent\n type=\"text\"\n id={otpFieldKey}\n name={otpFieldKey}\n placeholder={otpPlaceholder}\n error={formErrors[otpFieldKey]}\n />\n ) : (\n <input\n type=\"text\"\n id={otpFieldKey}\n name={otpFieldKey}\n placeholder={otpPlaceholder}\n className={`${styles.input} ${formErrors[otpFieldKey] ? styles.inputError : ''}`}\n required\n inputMode=\"numeric\"\n pattern=\"[0-9]*\"\n aria-invalid={!!formErrors[otpFieldKey]}\n aria-describedby={formErrors[otpFieldKey] ? `${otpFieldKey}-error` : undefined}\n />\n )}\n </div>\n {formErrors[otpFieldKey] && (\n <span id={`${otpFieldKey}-error`} className={styles.errorText} role=\"alert\">\n {formErrors[otpFieldKey]}\n </span>\n )}\n </div>\n\n <div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center' }}>\n <button\n type=\"button\"\n onClick={handleResend}\n className={styles.link}\n style={{ background: 'none', border: 'none', padding: 0 }}\n >\n {config.customization?.labels?.otpResendLink || 'Resend OTP'}\n </button>\n </div>\n\n <Alert message={resendMessage} type=\"success\" style={{ marginTop: '8px', marginBottom: '8px' }} onDismiss={() => setResendMessage(null)} />\n <Alert message={apiError} type=\"error\" style={{ marginTop: '8px', marginBottom: '8px' }} onDismiss={resetOtp} />\n\n <Button type=\"submit\" disabled={loading} className={styles.button}>\n {loading ? (components?.Loader ? <components.Loader /> : 'Loading...') : submitText}\n </Button>\n </form>\n </Card>\n );\n};\n\nexport default OTP;\n","import React, { useState } from 'react';\nimport { z } from 'zod';\nimport { useResetPassword } from '../../hooks/useResetPassword';\nimport { useAuth } from '../../hooks/useAuth';\nimport { BaseComponentProps } from '../../types/auth';\nimport Alert from '../alert/Alert';\nimport styles from '../common.module.css';\n\nexport interface ResetPasswordProps extends BaseComponentProps {\n urlParams?: Record<string, string | number>;\n onSuccess?: (data: any) => void;\n}\n\nimport { resetPasswordSchema as defaultSchema } from '../../validation';\n\nexport const ResetPassword: React.FC<ResetPasswordProps> = ({\n components,\n labels,\n buttonText,\n placeholders,\n validationSchema,\n urlParams,\n onSuccess,\n}) => {\n const { config } = useAuth();\n const { loading, error: apiError, success, execute, reset: resetReset } = useResetPassword();\n const [formErrors, setFormErrors] = useState<Record<string, string>>({});\n\n const [passHide, setPassHide] = useState({ pass: true, verify: true });\n\n const schema = validationSchema || config.customization?.validationSchema?.resetPassword || defaultSchema;\n\n const handleSubmit = async (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault();\n setFormErrors({});\n\n const formData = new FormData(e.currentTarget);\n const data = Object.fromEntries(formData.entries());\n\n const validationData = {\n password: data[passwordFieldKey],\n verifyPassword: data[verifyPasswordFieldKey],\n };\n\n try {\n schema.parse(validationData);\n } catch (zodErr: any) {\n if (zodErr instanceof z.ZodError) {\n const errors: Record<string, string> = {};\n zodErr.errors.forEach((err) => {\n if (err.path[0]) {\n const fieldName = err.path[0].toString();\n const key = fieldName === 'password' ? passwordFieldKey :\n fieldName === 'verifyPassword' ? verifyPasswordFieldKey : fieldName;\n errors[key] = err.message;\n }\n });\n setFormErrors(errors);\n return;\n }\n }\n\n try {\n // Filter out verifyPassword field to avoid API validator errors\n const { [verifyPasswordFieldKey]: _, ...submitPayload } = data;\n const res = await execute(submitPayload, urlParams);\n if (onSuccess) onSuccess(res);\n } catch (err) {\n // handled by useResetPassword hook\n }\n };\n\n // Resolve Overrides\n const Card = components?.Card || 'div';\n const Button = components?.Button || 'button';\n const InputComponent = components?.Input;\n\n // Resolve Customized Content\n const title = config.customization?.labels?.resetPasswordTitle || 'Forget Password';\n const subtitle = config.customization?.labels?.resetPasswordSubtitle || \"Enter your registered e-mail here we'll send OTP in your email\";\n const passwordLabel = labels?.password || config.customization?.labels?.resetPasswordPassword || config.customization?.labels?.password || 'Password';\n const verifyPasswordLabel = labels?.verifyPassword || config.customization?.labels?.resetPasswordVerifyPassword || config.customization?.labels?.verifyPassword || 'Verify Password';\n const submitText = buttonText || config.customization?.buttonText?.resetPassword || 'Submit';\n const passwordPlaceholder = placeholders?.password || config.customization?.placeholders?.resetPasswordPassword || config.customization?.placeholders?.password || 'Password';\n const verifyPasswordPlaceholder = placeholders?.verifyPassword || config.customization?.placeholders?.resetPasswordVerifyPassword || config.customization?.placeholders?.verifyPassword || 'Verify Password';\n\n // Dynamic field keys from requestMapping.resetPassword\n const passwordFieldKey = config.requestMapping?.resetPassword?.password || 'password';\n const verifyPasswordFieldKey = config.requestMapping?.resetPassword?.verifyPassword || 'verifyPassword';\n\n return (\n <Card className={styles.card}>\n <div style={{ textAlign: 'center', marginBottom: '20px' }}>\n <img\n src=\"/img/confusion.png\"\n alt=\"\"\n style={{ width: '64px', height: '64px', marginBottom: '10px' }}\n onError={(e) => { e.currentTarget.style.display = 'none'; }}\n />\n <h1 className={styles.heading}>{title}</h1>\n <p className={styles.subtext}>{success ? 'Your password has been successfully updated.' : (urlParams?.id ? 'Enter your new credentials below.' : subtitle)}</p>\n </div>\n\n <form onSubmit={handleSubmit} className={styles.form} noValidate>\n\n <div className={styles.formGroup}>\n <label htmlFor={passwordFieldKey} className={styles.label}>{passwordLabel}</label>\n <div className={styles.inputWrapper}>\n {InputComponent ? (\n <InputComponent\n type={passHide.pass ? \"password\" : \"text\"}\n id={passwordFieldKey}\n name={passwordFieldKey}\n placeholder={passwordPlaceholder}\n error={formErrors[passwordFieldKey]}\n />\n ) : (\n <>\n <input\n type={passHide.pass ? \"password\" : \"text\"}\n id={passwordFieldKey}\n name={passwordFieldKey}\n placeholder={passwordPlaceholder}\n className={`${styles.input} ${formErrors[passwordFieldKey] ? styles.inputError : ''}`}\n required\n aria-invalid={!!formErrors[passwordFieldKey]}\n aria-describedby={formErrors[passwordFieldKey] ? `${passwordFieldKey}-error` : undefined}\n />\n <button\n type=\"button\"\n onClick={() => setPassHide({ ...passHide, pass: !passHide.pass })}\n className={styles.inputIcon}\n aria-label={passHide.pass ? \"Show password\" : \"Hide password\"}\n >\n {passHide.pass ? (\n <svg className={styles.eyeIcon} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\" />\n <circle cx=\"12\" cy=\"12\" r=\"3\" />\n </svg>\n ) : (\n <svg className={styles.eyeIcon} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <path d=\"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24\" />\n <line x1=\"1\" y1=\"1\" x2=\"23\" y2=\"23\" />\n </svg>\n )}\n </button>\n </>\n )}\n </div>\n {formErrors[passwordFieldKey] && (\n <span id={`${passwordFieldKey}-error`} className={styles.errorText} role=\"alert\">\n {formErrors[passwordFieldKey]}\n </span>\n )}\n </div>\n\n <div className={styles.formGroup}>\n <label htmlFor={verifyPasswordFieldKey} className={styles.label}>{verifyPasswordLabel}</label>\n <div className={styles.inputWrapper}>\n {InputComponent ? (\n <InputComponent\n type={passHide.verify ? \"password\" : \"text\"}\n id={verifyPasswordFieldKey}\n name={verifyPasswordFieldKey}\n placeholder={verifyPasswordPlaceholder}\n error={formErrors[verifyPasswordFieldKey]}\n />\n ) : (\n <>\n <input\n type={passHide.verify ? \"password\" : \"text\"}\n id={verifyPasswordFieldKey}\n name={verifyPasswordFieldKey}\n placeholder={verifyPasswordPlaceholder}\n className={`${styles.input} ${formErrors[verifyPasswordFieldKey] ? styles.inputError : ''}`}\n required\n aria-invalid={!!formErrors[verifyPasswordFieldKey]}\n aria-describedby={formErrors[verifyPasswordFieldKey] ? `${verifyPasswordFieldKey}-error` : undefined}\n />\n <button\n type=\"button\"\n onClick={() => setPassHide({ ...passHide, verify: !passHide.verify })}\n className={styles.inputIcon}\n aria-label={passHide.verify ? \"Show password\" : \"Hide password\"}\n >\n {passHide.verify ? (\n <svg className={styles.eyeIcon} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\" />\n <circle cx=\"12\" cy=\"12\" r=\"3\" />\n </svg>\n ) : (\n <svg className={styles.eyeIcon} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <path d=\"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24\" />\n <line x1=\"1\" y1=\"1\" x2=\"23\" y2=\"23\" />\n </svg>\n )}\n </button>\n </>\n )}\n </div>\n {formErrors[verifyPasswordFieldKey] && (\n <span id={`${verifyPasswordFieldKey}-error`} className={styles.errorText} role=\"alert\">\n {formErrors[verifyPasswordFieldKey]}\n </span>\n )}\n </div>\n\n <Alert message={apiError} type=\"error\" style={{ marginTop: '8px', marginBottom: '8px' }} onDismiss={resetReset} />\n\n <Button type=\"submit\" disabled={loading} className={styles.button}>\n {loading ? (components?.Loader ? <components.Loader /> : 'Loading...') : submitText}\n </Button>\n </form>\n </Card>\n );\n};\n\nexport default ResetPassword;\n","import React, { useState, useEffect } from 'react';\nimport { z } from 'zod';\nimport { useUpdateUser } from '../../hooks/useUpdateUser';\nimport { useAuth } from '../../hooks/useAuth';\nimport { BaseComponentProps } from '../../types/auth';\nimport Alert from '../alert/Alert';\nimport styles from '../common.module.css';\n\nexport interface UpdateUserProps extends BaseComponentProps {\n onSuccess?: (data: any) => void;\n site?: string;\n id?: string;\n}\n\nimport { updateUserSchema as defaultSchema } from '../../validation';\n\nexport const UpdateUser: React.FC<UpdateUserProps> = ({\n components,\n labels,\n buttonText,\n validationSchema,\n onSuccess,\n site,\n id,\n}) => {\n const { user, config } = useAuth();\n const { loading, error: apiError, success, execute, reset: resetUpdate } = useUpdateUser();\n const [formErrors, setFormErrors] = useState<Record<string, string>>({});\n\n const [passHide, setPassHide] = useState(true);\n\n const [formData, setFormData] = useState({\n fullName: '',\n email: '',\n username: '',\n phoneNumber: '',\n password: '',\n profileUrl: '',\n city: '',\n state: '',\n country: '',\n postalcode: '',\n timezone: '',\n });\n\n useEffect(() => {\n if (user) {\n setFormData({\n fullName: user.fullName || user.name || '',\n email: user.email || '',\n username: user.username || '',\n phoneNumber: user.phoneNumber || '',\n password: '',\n profileUrl: user.profileUrl || '',\n city: user.city || '',\n state: user.state || '',\n country: user.country || '',\n postalcode: user.postalcode || '',\n timezone: user.timezone || '',\n });\n }\n }, [user]);\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const { name, value } = e.target;\n setFormData((prev) => ({ ...prev, [name]: value }));\n };\n\n const schema = validationSchema || config.customization?.validationSchema?.updateUser || defaultSchema;\n\n const handleSubmit = async (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault();\n setFormErrors({});\n\n // Map dynamic form fields back to fixed schema keys for validation\n const validationData = {\n fullName: formData.fullName,\n email: formData.email,\n username: formData.username,\n phoneNumber: formData.phoneNumber,\n password: formData.password,\n profileUrl: formData.profileUrl,\n city: formData.city,\n state: formData.state,\n country: formData.country,\n postalcode: formData.postalcode,\n timezone: formData.timezone,\n };\n\n // Filter out empty password or fields that haven't been filled\n const payload: Record<string, any> = {};\n Object.entries(validationData).forEach(([key, value]) => {\n if (value !== '') {\n payload[key] = value;\n }\n });\n\n try {\n schema.parse(payload);\n } catch (zodErr: any) {\n if (zodErr instanceof z.ZodError) {\n const errors: Record<string, string> = {};\n zodErr.errors.forEach((err) => {\n if (err.path[0]) {\n const fieldName = err.path[0].toString();\n const key = fieldName === 'fullName' ? fullNameFieldKey :\n fieldName === 'email' ? emailFieldKey :\n fieldName === 'username' ? usernameFieldKey :\n fieldName === 'phoneNumber' ? phoneFieldKey :\n fieldName === 'profileUrl' ? profileUrlFieldKey :\n fieldName === 'password' ? passwordFieldKey :\n fieldName === 'city' ? cityFieldKey :\n fieldName === 'state' ? stateFieldKey :\n fieldName === 'country' ? countryFieldKey :\n fieldName === 'postalcode' ? postalcodeFieldKey : fieldName;\n errors[key] = err.message;\n }\n });\n setFormErrors(errors);\n return;\n }\n }\n\n try {\n const res = await execute(payload, site, id);\n if (onSuccess) onSuccess(res);\n } catch (err) {\n // handled by useUpdateUser state\n }\n };\n\n // Resolve Overrides\n const Card = components?.Card || 'div';\n const Button = components?.Button || 'button';\n const InputComponent = components?.Input;\n\n // Resolve Labels & Placeholders\n const title = config.customization?.labels?.updateUserTitle || 'Update Profile';\n const fullNameLabel = labels?.fullName || config.customization?.labels?.updateUserFullName || 'Full Name';\n const emailLabel = labels?.email || config.customization?.labels?.updateUserEmail || 'Email';\n const usernameLabel = labels?.username || config.customization?.labels?.updateUserUsername || 'Username';\n const phoneLabel = labels?.phoneNumber || config.customization?.labels?.updateUserPhone || 'Phone Number';\n const passwordLabel = labels?.password || config.customization?.labels?.updateUserPassword || 'New Password';\n const profileUrlLabel = labels?.profileUrl || config.customization?.labels?.updateUserProfileUrl || 'Profile URL';\n const submitText = buttonText || config.customization?.buttonText?.updateUser || 'Update Info';\n\n // Dynamic field keys from requestMapping.updateUser\n const fullNameFieldKey = config.requestMapping?.updateUser?.fullName || 'fullName';\n const emailFieldKey = config.requestMapping?.updateUser?.email || 'email';\n const usernameFieldKey = config.requestMapping?.updateUser?.username || 'username';\n const phoneFieldKey = config.requestMapping?.updateUser?.phoneNumber || 'phoneNumber';\n const profileUrlFieldKey = config.requestMapping?.updateUser?.profileUrl || 'profileUrl';\n const passwordFieldKey = config.requestMapping?.updateUser?.password || 'password';\n const cityFieldKey = config.requestMapping?.updateUser?.city || 'city';\n const stateFieldKey = config.requestMapping?.updateUser?.state || 'state';\n const countryFieldKey = config.requestMapping?.updateUser?.country || 'country';\n const postalcodeFieldKey = config.requestMapping?.updateUser?.postalcode || 'postalcode';\n\n return (\n <Card className={styles.card} style={{ maxWidth: '520px' }}>\n <h1 className={styles.heading}>{title}</h1>\n \n <form onSubmit={handleSubmit} className={styles.form} noValidate>\n\n <div className={styles.formGroup}>\n <label htmlFor={fullNameFieldKey} className={styles.label}>{fullNameLabel}</label>\n <div className={styles.inputWrapper}>\n {InputComponent ? (\n <InputComponent\n type=\"text\"\n id={fullNameFieldKey}\n name={fullNameFieldKey}\n value={formData.fullName}\n onChange={handleChange}\n placeholder=\"John Doe\"\n error={formErrors[fullNameFieldKey]}\n />\n ) : (\n <input\n type=\"text\"\n id={fullNameFieldKey}\n name={fullNameFieldKey}\n value={formData.fullName}\n onChange={handleChange}\n placeholder=\"John Doe\"\n className={`${styles.input} ${formErrors[fullNameFieldKey] ? styles.inputError : ''}`}\n />\n )}\n </div>\n {formErrors[fullNameFieldKey] && <span className={styles.errorText}>{formErrors[fullNameFieldKey]}</span>}\n </div>\n\n <div className={styles.formGroup}>\n <label htmlFor={emailFieldKey} className={styles.label}>{emailLabel}</label>\n <div className={styles.inputWrapper}>\n {InputComponent ? (\n <InputComponent\n type=\"email\"\n id={emailFieldKey}\n name={emailFieldKey}\n value={formData.email}\n onChange={handleChange}\n placeholder=\"email@example.com\"\n error={formErrors[emailFieldKey]}\n />\n ) : (\n <input\n type=\"email\"\n id={emailFieldKey}\n name={emailFieldKey}\n value={formData.email}\n onChange={handleChange}\n placeholder=\"email@example.com\"\n className={`${styles.input} ${formErrors[emailFieldKey] ? styles.inputError : ''}`}\n />\n )}\n </div>\n {formErrors[emailFieldKey] && <span className={styles.errorText}>{formErrors[emailFieldKey]}</span>}\n </div>\n\n <div style={{ display: 'grid', gridTemplateColumns: '1fr 1fr', gap: '12px' }}>\n <div className={styles.formGroup}>\n <label htmlFor={usernameFieldKey} className={styles.label}>{usernameLabel}</label>\n <input\n type=\"text\"\n id={usernameFieldKey}\n name={usernameFieldKey}\n value={formData.username}\n onChange={handleChange}\n placeholder=\"username\"\n className={styles.input}\n />\n </div>\n\n <div className={styles.formGroup}>\n <label htmlFor={phoneFieldKey} className={styles.label}>{phoneLabel}</label>\n <input\n type=\"text\"\n id={phoneFieldKey}\n name={phoneFieldKey}\n value={formData.phoneNumber}\n onChange={handleChange}\n placeholder=\"+123456789\"\n className={styles.input}\n />\n </div>\n </div>\n\n <div className={styles.formGroup}>\n <label htmlFor={profileUrlFieldKey} className={styles.label}>{profileUrlLabel}</label>\n <div className={styles.inputWrapper}>\n <input\n type=\"text\"\n id={profileUrlFieldKey}\n name={profileUrlFieldKey}\n value={formData.profileUrl}\n onChange={handleChange}\n placeholder=\"https://example.com/avatar.png\"\n className={`${styles.input} ${formErrors[profileUrlFieldKey] ? styles.inputError : ''}`}\n />\n </div>\n {formErrors[profileUrlFieldKey] && <span className={styles.errorText}>{formErrors[profileUrlFieldKey]}</span>}\n </div>\n\n <div className={styles.formGroup}>\n <label htmlFor={passwordFieldKey} className={styles.label}>{passwordLabel}</label>\n <div className={styles.inputWrapper}>\n <input\n type={passHide ? \"password\" : \"text\"}\n id={passwordFieldKey}\n name={passwordFieldKey}\n value={formData.password}\n onChange={handleChange}\n placeholder=\"•••••••• (leave empty to keep current)\"\n className={`${styles.input} ${formErrors[passwordFieldKey] ? styles.inputError : ''}`}\n />\n <button\n type=\"button\"\n onClick={() => setPassHide(!passHide)}\n className={styles.inputIcon}\n >\n {passHide ? (\n <svg className={styles.eyeIcon} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\" />\n <circle cx=\"12\" cy=\"12\" r=\"3\" />\n </svg>\n ) : (\n <svg className={styles.eyeIcon} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <path d=\"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24\" />\n <line x1=\"1\" y1=\"1\" x2=\"23\" y2=\"23\" />\n </svg>\n )}\n </button>\n </div>\n {formErrors[passwordFieldKey] && <span className={styles.errorText}>{formErrors[passwordFieldKey]}</span>}\n </div>\n\n <div style={{ marginTop: '4px', borderTop: '1px solid var(--auth-color-border, #e2e8f0)', paddingTop: '12px' }}>\n <h3 style={{ margin: '0 0 10px 0', fontSize: '0.9rem', fontWeight: 600 }}>Location Details</h3>\n <div style={{ display: 'grid', gridTemplateColumns: '1fr 1fr', gap: '12px' }}>\n <div className={styles.formGroup}>\n <label htmlFor={cityFieldKey} className={styles.label}>City</label>\n <input type=\"text\" id={cityFieldKey} name={cityFieldKey} value={formData.city} onChange={handleChange} placeholder=\"City\" className={styles.input} />\n </div>\n <div className={styles.formGroup}>\n <label htmlFor={stateFieldKey} className={styles.label}>State</label>\n <input type=\"text\" id={stateFieldKey} name={stateFieldKey} value={formData.state} onChange={handleChange} placeholder=\"State\" className={styles.input} />\n </div>\n </div>\n <div style={{ display: 'grid', gridTemplateColumns: '1fr 1fr', gap: '12px', marginTop: '10px' }}>\n <div className={styles.formGroup}>\n <label htmlFor={countryFieldKey} className={styles.label}>Country</label>\n <input type=\"text\" id={countryFieldKey} name={countryFieldKey} value={formData.country} onChange={handleChange} placeholder=\"Country\" className={styles.input} />\n </div>\n <div className={styles.formGroup}>\n <label htmlFor={postalcodeFieldKey} className={styles.label}>Postal Code</label>\n <input type=\"text\" id={postalcodeFieldKey} name={postalcodeFieldKey} value={formData.postalcode} onChange={handleChange} placeholder=\"Postal Code\" className={styles.input} />\n </div>\n </div>\n </div>\n\n <Alert message={success ? 'Profile updated successfully.' : null} type=\"success\" style={{ marginTop: '12px', marginBottom: '8px' }} onDismiss={resetUpdate} />\n <Alert message={apiError} type=\"error\" style={{ marginTop: '12px', marginBottom: '8px' }} onDismiss={resetUpdate} />\n\n <Button type=\"submit\" disabled={loading} className={styles.button} style={{ marginTop: '10px' }}>\n {loading ? (components?.Loader ? <components.Loader /> : 'Updating...') : submitText}\n </Button>\n </form>\n </Card>\n );\n};\n\nexport default UpdateUser;\n","import React, { useState, useEffect } from 'react';\nimport { Login } from '../login';\nimport { Signup } from '../signup';\nimport { ForgotPassword } from '../forgotPassword';\nimport { OTP } from '../otp';\nimport { ResetPassword } from '../resetPassword';\nimport { UpdateUser } from '../updateUser';\nimport { eventService } from '../../services/event.service';\nimport { useAuth } from '../../hooks/useAuth';\n\nexport interface AuthWidgetProps {\n view?: 'login' | 'signup' | 'forgotPassword' | 'otp' | 'resetPassword' | 'updateUser';\n onSuccess?: (view: string, data: any) => void;\n}\n\nexport const AuthWidget: React.FC<AuthWidgetProps> = ({ view: initialView = 'login', onSuccess }) => {\n const [view, setView] = useState(initialView);\n const [email, setEmail] = useState('');\n const [resetToken, setResetToken] = useState<string | null>(null);\n const { isAuthenticated } = useAuth();\n\n useEffect(() => {\n setView(initialView);\n }, [initialView]);\n\n useEffect(() => {\n const handleOtpSent = (data: any) => {\n if (data && data.email) {\n setEmail(data.email);\n } else {\n const storedEmail = sessionStorage.getItem('auth_registration_email');\n if (storedEmail) setEmail(storedEmail);\n }\n setView('otp');\n };\n\n const handleLoginSuccess = (data: any) => {\n if (onSuccess) onSuccess('login', data);\n };\n\n const handlePasswordReset = (data: any) => {\n setView('login');\n if (onSuccess) onSuccess('resetPassword', data);\n };\n\n eventService.on('OTP_SENT', handleOtpSent);\n eventService.on('LOGIN_SUCCESS', handleLoginSuccess);\n eventService.on('PASSWORD_RESET', handlePasswordReset);\n\n return () => {\n eventService.off('OTP_SENT', handleOtpSent);\n eventService.off('LOGIN_SUCCESS', handleLoginSuccess);\n eventService.off('PASSWORD_RESET', handlePasswordReset);\n };\n }, [onSuccess]);\n\n if (isAuthenticated && view !== 'updateUser' && view !== 'resetPassword') {\n return null; // Let the host application handle the authenticated state\n }\n\n return (\n <>\n {view === 'login' && (\n <Login\n onForgotPasswordClick={() => setView('forgotPassword')}\n onSignupClick={() => setView('signup')}\n />\n )}\n {view === 'signup' && (\n <Signup\n onLoginClick={() => setView('login')}\n />\n )}\n {view === 'forgotPassword' && (\n <ForgotPassword\n onBackToLoginClick={() => setView('login')}\n onSuccess={(data: any) => {\n if (data && data.email) {\n setEmail(data.email);\n }\n setView('otp');\n }}\n />\n )}\n {view === 'otp' && (\n <OTP\n email={email}\n onSuccess={(data) => {\n const token = data?.accessToken || data?.token;\n if (token) {\n setResetToken(token);\n setView('resetPassword');\n }\n if (onSuccess) onSuccess('otp', data);\n }}\n />\n )}\n {view === 'resetPassword' && (\n <ResetPassword urlParams={resetToken ? { token: resetToken } : undefined} />\n )}\n {view === 'updateUser' && (\n <UpdateUser\n onSuccess={(data) => {\n if (onSuccess) onSuccess('updateUser', data);\n }}\n />\n )}\n </>\n );\n};\n\nexport default AuthWidget;\n"],"names":["REACT_ELEMENT_TYPE","REACT_FRAGMENT_TYPE","jsxProd","type","config","maybeKey","key","propName","reactJsxRuntime_production","getComponentNameFromType","REACT_CLIENT_REFERENCE","REACT_PROFILER_TYPE","REACT_STRICT_MODE_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_ACTIVITY_TYPE","REACT_PORTAL_TYPE","REACT_CONTEXT_TYPE","REACT_CONSUMER_TYPE","REACT_FORWARD_REF_TYPE","innerType","REACT_MEMO_TYPE","REACT_LAZY_TYPE","testStringCoercion","value","checkKeyStringCoercion","JSCompiler_inline_result","JSCompiler_temp_const","JSCompiler_inline_result$jscomp$0","getTaskName","name","getOwner","dispatcher","ReactSharedInternals","UnknownOwner","hasValidKey","hasOwnProperty","getter","defineKeyPropWarningGetter","props","displayName","warnAboutAccessingKey","specialPropKeyWarningShown","elementRefGetterWithDeprecationWarning","componentName","didWarnAboutElementRef","ReactElement","owner","debugStack","debugTask","refProp","jsxDEVImpl","isStaticChildren","children","isArrayImpl","validateChildKeys","keys","k","didWarnAboutKeySpread","node","isValidElement","object","React","require$$0","createTask","callStackForError","unknownOwnerDebugStack","unknownOwnerDebugTask","reactJsxRuntime_development","trackActualOwner","jsxRuntimeModule","require$$1","AuthContext","createContext","MemoryStorage","__publicField","StorageService","storageType","e","decodeJWT","token","parts","base64","jsonPayload","c","isTokenExpired","decoded","getNestedValue","obj","path","acc","part","mapPayload","payload","mapping","mapped","targetKey","getAccessTokenFromResponse","data","mappingPath","getRefreshTokenFromResponse","getUserFromResponse","TokenService","storageService","EventService","event","callback","list","cb","eventService","isRefreshing","failedQueue","processQueue","error","prom","createAxiosInstance","tokenService","onTokenRefreshed","onSessionExpired","instance","axios","requestConfig","tokenKey","response","originalRequest","refreshEndpoint","_a","_b","resolve","reject","err","rTokenKey","refreshToken","refreshUrl","_c","isDefaultRefresh","headers","refreshResponse","newAccessToken","_d","newRefreshToken","_e","refreshErr","AuthSdkError","message","code","originalError","normalizeError","status","messageLower","AuthApi","axiosInstance","defaultVal","params","resolved","defaultLoginMapping","parsedOtp","url","defaultSignupMapping","urlParams","defaultMapping","endpoint","site","email","resendUrl","otpVal","idVal","body","id","customToken","userId","AuthProvider","setToken","useState","setRefreshToken","user","setUser","loading","setLoading","useMemo","refreshTokenKey","updateSession","accessToken","rToken","apiUser","parsedUser","authApi","newAccToken","newRefToken","api","useEffect","storedToken","storedRefToken","getDecodedUser","login","_f","emailVal","verifyIdentity","otpErr","signup","verifyOtp","isResetFlow","resetPassword","refresh","getUserProfile","activeUser","resolvedSite","resolvedId","updateUser","prev","deleteUser","logout","isAuthenticated","themeStyles","styles","t","primary","primaryHover","secondary","background","surface","text","textMuted","border","success","borderRadius","borderRadiusCard","borderRadiusButton","borderRadiusInput","spacing","fontBody","fontHeading","bgStyle","colors","contextValue","jsx","useAuth","context","useContext","useLogin","setError","setSuccess","res","useSignup","useVerifyIdentity","useOtp","useResetPassword","useUpdateUser","GoogleLogin","buttonText","className","handleGoogleLogin","googleEndpoint","redirectUrl","label","jsxs","Alert","style","onDismiss","visibleMessage","setVisibleMessage","timer","loginSchema","z","otpEmailSchema","otpSubmitSchema","signupSchema","verifyIdentitySchema","otpSchema","resetPasswordSchema","updateUserSchema","Login","components","labels","placeholders","validationSchema","onSuccess","onForgotPasswordClick","onSignupClick","forgotPassword","loginLoading","apiError","execute","resetLogin","formErrors","setFormErrors","passHide","setPassHide","localApiError","setLocalApiError","loginMethod","setLoginMethod","emailInput","setEmailInput","otpInput","setOtpInput","otpSent","setOtpSent","otpSending","setOtpSending","otpSuccessMsg","setOtpSuccessMsg","schema","defaultSchema","handleSendOtp","zodErr","emailFieldKey","handleSubmit","errors","otpFieldKey","formData","validationData","passwordFieldKey","fieldName","Card","Button","InputComponent","title","emailLabel","_h","_g","passwordLabel","_j","_i","_l","_k","submitText","_n","_m","emailPlaceholder","_p","_o","_r","_q","passwordPlaceholder","_t","_s","_v","_u","otpLabel","_x","_w","otpPlaceholder","_z","_y","_B","_A","_D","_C","_F","_E","_H","_G","Fragment","_J","_I","_L","_K","_N","_M","Signup","onLoginClick","resetSignup","nameFieldKey","verifyPasswordFieldKey","_","submitPayload","nameLabel","verifyPasswordLabel","namePlaceholder","verifyPasswordPlaceholder","_P","_O","_R","_Q","_T","_S","_V","_U","_X","_W","ForgotPassword","onBackToLoginClick","resetForgot","subtitle","OTP","onResendSuccess","resend","resetOtp","resendMessage","setResendMessage","handleResend","ResetPassword","resetReset","UpdateUser","resetUpdate","setFormData","handleChange","fullNameFieldKey","usernameFieldKey","phoneFieldKey","profileUrlFieldKey","cityFieldKey","stateFieldKey","countryFieldKey","postalcodeFieldKey","fullNameLabel","usernameLabel","phoneLabel","profileUrlLabel","AuthWidget","initialView","view","setView","setEmail","resetToken","setResetToken","handleOtpSent","storedEmail","handleLoginSuccess","handlePasswordReset"],"mappings":"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","x_google_ignoreList":[0,1,2]}
|