@helpdice/sdk 0.3.7 → 0.4.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -184,6 +184,13 @@ function clearStorage(keys) {
184
184
  const TOKEN_KEY = "access-token";
185
185
  /* eslint-enable */
186
186
 
187
+ function YYYY_MM_DD(timestamp) {
188
+ const date = new Date(timestamp);
189
+ const year = date.getFullYear();
190
+ const month = String(date.getMonth() + 1).padStart(2, '0');
191
+ const day = String(date.getDate()).padStart(2, '0');
192
+ return `${year}-${month}-${day}`;
193
+ }
187
194
  function createAxiosWithRetry(retries = 3, retryDelay = 500) {
188
195
  const instance = axios.create();
189
196
  instance.interceptors.response.use((res) => res, async (error) => {
@@ -215,6 +222,7 @@ http.interceptors.request.use((config) => {
215
222
  config.baseURL = apiUrl;
216
223
  if (config.headers) {
217
224
  config.headers["Content-Type"] = "application/json";
225
+ config.headers['TODAY'] = YYYY_MM_DD(Date.now());
218
226
  config.headers.Authorization = `Bearer ${getCookie()}` || "";
219
227
  config.headers["HB-API-KEY"] =
220
228
  `Bearer ${getConfig().apiKey}` || "";
@@ -236,6 +244,10 @@ const get = (endpoint, config) => {
236
244
  .then(resolve)
237
245
  .catch((e) => reject(e.response?.data)));
238
246
  };
247
+ const patch = (endpoint, data) => new Promise((resolve, reject) => http
248
+ .patch(endpoint, data)
249
+ .then(resolve)
250
+ .catch((e) => reject(e.response.data)));
239
251
  /* ======================================================================================================= */
240
252
  /* ------------------------------------ For Linkie App --------------------------------------------------- */
241
253
  /* ======================================================================================================= */
@@ -252,6 +264,7 @@ chttp.interceptors.request.use((config) => {
252
264
  config.baseURL = linkieUrl;
253
265
  if (config.headers) {
254
266
  config.headers["Content-Type"] = "application/json";
267
+ config.headers['TODAY'] = YYYY_MM_DD(Date.now());
255
268
  config.headers.Authorization = localStorage.getItem(TOKEN_KEY) || "";
256
269
  config.headers["HB-API-KEY"] =
257
270
  `Bearer ${getConfig().apiKey}` || "";
@@ -310,6 +323,7 @@ lhttp.interceptors.request.use((config) => {
310
323
  config.baseURL = lmsUrl;
311
324
  if (config.headers) {
312
325
  config.headers["Content-Type"] = "application/json";
326
+ config.headers['TODAY'] = YYYY_MM_DD(Date.now());
313
327
  config.headers.Authorization = localStorage.getItem(TOKEN_KEY) || "";
314
328
  config.headers["HB-API-KEY"] = `Bearer ${getConfig().apiKey}` || "";
315
329
  }
@@ -326,6 +340,12 @@ const lmsGet = (endpoint, config) => {
326
340
  .then(resolve)
327
341
  .catch((e) => reject(e.response?.data)));
328
342
  };
343
+ const App = {
344
+ get,
345
+ post,
346
+ put,
347
+ patch
348
+ };
329
349
 
330
350
  // The fetchDataWithCallbacks function that accepts a Promise and a callbacks object
331
351
  async function handler$1(promise, callbacks) {
@@ -360,6 +380,7 @@ async function handler$1(promise, callbacks) {
360
380
  const account = {
361
381
  v1: {
362
382
  profile: "profile",
383
+ verify_subscription: "subscription/status"
363
384
  },
364
385
  };
365
386
 
@@ -749,12 +770,11 @@ function start(data, { config = null, onLoading = () => { }, onSuccess = () => {
749
770
  onLoading,
750
771
  onError: (error) => onError(error),
751
772
  onSuccess: (responseData) => {
773
+ console.log(responseData);
752
774
  if (responseData?.method === "Razor Pay") {
753
775
  const options = responseData.options;
754
776
  options.handler = async (response) => {
755
- // console.log("Payment Success:", response);
756
777
  onSuccess(response);
757
- // Validation call (if needed)
758
778
  };
759
779
  const rzp1 = new window.Razorpay(options);
760
780
  rzp1.on("payment.failed", (response) => {
@@ -762,6 +782,10 @@ function start(data, { config = null, onLoading = () => { }, onSuccess = () => {
762
782
  });
763
783
  rzp1.open();
764
784
  }
785
+ else if (responseData?.method === "Paypal") {
786
+ console.log('Paypal response data :', responseData);
787
+ window.location.href = responseData.links[1].href;
788
+ }
765
789
  },
766
790
  onSettled,
767
791
  });
@@ -898,6 +922,15 @@ const updateProfile = (data, { config, onFetching, onSuccess, onError, onSettled
898
922
  });
899
923
  };
900
924
 
925
+ const verifySubscription = ({ config, onFetching, onSuccess, onError, onSettled }) => {
926
+ return handler$1(get(getUrl("account", "v1", "verify_subscription"), config), {
927
+ onFetching: () => onFetching?.(),
928
+ onError: (error) => onError?.(error),
929
+ onSuccess: (data) => onSuccess?.(data),
930
+ onSettled: () => onSettled?.(),
931
+ });
932
+ };
933
+
901
934
  const Account = {
902
935
  profile: (id) => get(getUrl("account", "v1", "profile"), {
903
936
  params: {
@@ -905,6 +938,7 @@ const Account = {
905
938
  },
906
939
  }),
907
940
  updateProfile,
941
+ verifySubscription
908
942
  };
909
943
 
910
944
  function shareUrl(title, url) {
@@ -1146,5 +1180,5 @@ const LMS = {
1146
1180
  postCourse
1147
1181
  };
1148
1182
 
1149
- export { Account, Accounting, Apis, Assets, Auth, Content, Hr, Inventory, LMS, Linkie, Order, Payment, Sales, Support, Tools, getConfig, getCookie, getUrl, initializeSDK, shareUrl };
1183
+ export { Account, Accounting, Apis, App, Assets, Auth, Content, Hr, Inventory, LMS, Linkie, Order, Payment, Sales, Support, Tools, getConfig, getCookie, getUrl, initializeSDK, handler as requestHandler, shareUrl };
1150
1184
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/config/validate.ts","../src/config/index.ts","../src/utils/auth.ts","../src/utils/localStorage.ts","../src/config/constants.ts","../src/config/axios.ts","../src/config/handler.ts","../src/account/endpoint.ts","../src/accounting/endpoint.ts","../src/assets/endpoint.ts","../src/auth/endpoint.ts","../src/content/endpoint.ts","../src/hr/endpoint.ts","../src/inventory/endpoint.ts","../src/linkie/endpoint.ts","../src/lms/endpoint.ts","../src/payment/endpoint.ts","../src/sales/endpoint.ts","../src/support/endpoint.ts","../src/tools/endpoint.ts","../src/config/route.ts","../src/auth/logout.ts","../src/auth/register.ts","../src/auth/signup.ts","../src/auth/signInWithGoogle.ts","../src/auth/signin.ts","../src/auth/authWithToken.ts","../src/auth/authWithKey.ts","../src/auth/resetPassword.ts","../src/auth/index.ts","../src/order/create.ts","../src/order/index.ts","../src/utils/handler.ts","../src/payment/start.ts","../src/payment/verify.ts","../src/payment/index.ts","../src/content/index.ts","../src/accounting/createInvoice.ts","../src/accounting/submitInvoice.ts","../src/accounting/updateInvoice.ts","../src/accounting/index.ts","../src/support/feedback.ts","../src/support/newsletter.ts","../src/support/ticket.ts","../src/support/index.ts","../src/assets/index.ts","../src/account/update_profile.ts","../src/account/index.ts","../src/utils/share.ts","../src/sales/lead.ts","../src/sales/index.ts","../src/inventory/index.ts","../src/tools/exchangeRates.ts","../src/tools/uploadMultiple.ts","../src/tools/uploadSingle.ts","../src/tools/index.ts","../src/linkie/shortUrl.ts","../src/linkie/index.ts","../src/apis/cities.ts","../src/apis/countries.ts","../src/apis/states.ts","../src/apis/index.ts","../src/hr/add_resume.ts","../src/hr/post_job.ts","../src/hr/index.ts","../src/lms/post_course.ts","../src/lms/index.ts"],"sourcesContent":["// validateConfig\r\nimport { getConfig } from './index';\r\n\r\ntype Config = ReturnType<typeof getConfig>;\r\n\r\nfunction validateConfig(requiredKeys: (keyof Config)[]) {\r\n const config = getConfig();\r\n\r\n const missingKeys = requiredKeys.filter((key) => {\r\n return !config[key]; // null, undefined, empty string → treated as missing\r\n });\r\n\r\n if (missingKeys.length > 0) {\r\n throw new Error(\r\n `SDK configuration error: Missing required config value(s): ${missingKeys.join(', ')}\\n` +\r\n '👉 Please ensure these keys are set using setConfig({ ... }) before making requests.'\r\n );\r\n }\r\n}\r\n\r\nexport default validateConfig;\r\n","import { default as firebase } from \"firebase/compat/app\";\r\nimport validateConfig from \"./validate\";\r\n\r\n// config.ts\r\nexport type Config = {\r\n apiKey: string | null;\r\n apiUrl: string;\r\n lmsUrl: string;\r\n linkieUrl?: string;\r\n appUrl: string;\r\n apisUrl: string;\r\n tokenKey: string;\r\n environment: string;\r\n firebase?: FirebaseConfig\r\n};\r\n\r\nexport interface FirebaseConfig {\r\n apiKey?: string;\r\n authDomain?: string;\r\n projectId?: string;\r\n storageBucket?: string;\r\n messagingSenderId?: string;\r\n appId?: string;\r\n measurementId?: string;\r\n}\r\n\r\nlet config: Config = {\r\n tokenKey: '',\r\n apiKey: null,\r\n apiUrl: 'https://api.helpdice.com',\r\n appUrl: '',\r\n apisUrl: 'https://apis.helpdice.com',\r\n lmsUrl: 'https://lms.helpdice.com',\r\n environment: 'production',\r\n firebase: undefined\r\n};\r\n\r\nexport function initializeSDK(newConfig: Partial<Config>) {\r\n config = { ...config, ...newConfig };\r\n validateConfig(['apiKey', 'tokenKey']);\r\n}\r\n\r\nexport function getFirebase() {\r\n validateConfig(['firebase']);\r\n const appConfig = getConfig();\r\n if (appConfig.firebase) {\r\n // if (firebase?.default != undefined) {\r\n // return firebase.default.initializeApp(appConfig.firebase)\r\n // }\r\n return firebase.initializeApp(appConfig.firebase)\r\n }\r\n throw new Error(\r\n `SDK configuration error: Firebase is not configured properly`\r\n );\r\n}\r\n\r\nexport function getConfig(): Config {\r\n return config;\r\n}\r\n","import Cookies from \"js-cookie\";\n// import type { NextPageContext } from \"next\";\n// import { parseCookies } from \"nookies\";\nimport { getConfig } from \"../config\";\n\nexport const getCookie = (\n\tkey = getConfig().tokenKey,\n): string | undefined => {\n\t// console.log(Cookies.get(key));\n\tif (key) return Cookies.get(key);\n\treturn \"\";\n};\n\nexport const isAuth = () => !!getCookie();\n\n// export const getServerSideToken = (ctx: NextPageContext) => {\n// \tconst { token } = parseCookies(ctx);\n// \treturn token;\n// };\n","import CryptoJS from \"crypto-js\";\n\n/**\n * Function to set encryption key\n * @param {string} key - encryption key name\n * @param {string} value string value to be set as encryption key\n */\nexport function setEncryptionKey(key: string, value: string) {\n\tif (key && value) {\n\t\tconst sha256Key = CryptoJS.SHA256(key).toString();\n\t\t// console.log('setting key: ', key, value);\n\t\tconst sha256Data = CryptoJS.SHA256(value).toString();\n\n\t\tlocalStorage.setItem(sha256Key, JSON.stringify(sha256Data));\n\t} else {\n\t\tconsole.error(\"No data provided\");\n\t}\n}\n\n/**\n * function to get the encryption key\n * @param {string} - name of the key to get encryption key for\n * @returns {string}\n */\n// eslint-disable-next-line consistent-return\nexport function getEncryptionKey(key: string) {\n\ttry {\n\t\tconst shaKey = CryptoJS.SHA256(key).toString();\n\t\t// console.log('getting key: ', key, localStorage.getItem(shaKey));\n\t\treturn localStorage.getItem(shaKey);\n\t} catch (err) {\n\t\tconsole.error(\"something went wrong man hoho\");\n\t}\n}\n\nexport function daysCountInMonth(month: number, year: number) {\n\treturn new Date(year, month, 0).getDate();\n}\n\n/**\n * Funtion to store data in local storage\n * Pass second argument as true if setting data for employee side\n * @param {string} key key for the value to be stored\n * @param {*} data actual data to be stored with the provided key\n * @param {boolean} [useEmployeeKey] - flag to decide which encyption key to use, (employee's or admin's)\n */\nexport function setDataInStorage(key: string, data: string | object) {\n\t// Encrypt key\n\tconst shaKey = CryptoJS.SHA256(key).toString();\n\n\tconst encKeyName = \"account_key\";\n\n\tconst encryptionKey = getEncryptionKey(encKeyName);\n\n\t// console.log('setting data: ', encryption_key, key, shaKey, data);\n\n\tif (encryptionKey) {\n\t\t// Encrypt data\n\t\tconst dataCipher = CryptoJS.AES.encrypt(\n\t\t\tJSON.stringify(data),\n\t\t\tencryptionKey,\n\t\t).toString();\n\n\t\tlocalStorage.setItem(shaKey, JSON.stringify(dataCipher));\n\t}\n}\n\n/**\n * Function to get data from local storage\n * Pass second argument as true if getting data for employee side\n * @param {string} key - key of the item to fetch from local storage\n * @param {boolean} [useEmployeeKey] - flag to decide which encyption key to use, (employee's or admin's)\n * @returns {*} value associated with the key\n */\n// eslint-disable-next-line consistent-return\nexport function getDataFromStorage(key: string) {\n\ttry {\n\t\tconst shaKey = CryptoJS.SHA256(key).toString();\n\n\t\tconst encKeyName = \"account_key\";\n\n\t\tconst encryptionKey = getEncryptionKey(encKeyName);\n\n\t\t// console.log(\n\t\t// 'from getting data: ',\n\t\t// key,\n\t\t// 'encryption-key',\n\t\t// typeof encryption_key,\n\t\t// encryption_key\n\t\t// );\n\t\tif (encryptionKey && shaKey) {\n\t\t\tconst ciphertext = JSON.parse(String(localStorage.getItem(shaKey)));\n\t\t\tif (ciphertext) {\n\t\t\t\t// Decrypt\n\t\t\t\tconst bytes = CryptoJS.AES.decrypt(ciphertext, encryptionKey);\n\t\t\t\tconst originalData = bytes.toString(CryptoJS.enc.Utf8);\n\t\t\t\t// console.log('getting data: ', key, shaKey, originalData);\n\t\t\t\treturn JSON.parse(originalData);\n\t\t\t}\n\t\t}\n\t} catch (err) {\n\t\t// console.error('Error getting data from storage boi boi');\n\t}\n}\n\n/**\n * Function to clear items from local storage\n * @param {(string|string[])} keys - key to remove or array of keys\n */\n// export function clearStorage(keys: string[]) {\n// \ttry {\n// \t\tif (Array.isArray(keys)) {\n// \t\t\tkeys.forEach((key) => {\n// \t\t\t\tconst shaKey = CryptoJS.SHA256(key).toString();\n// \t\t\t\tlocalStorage.removeItem(shaKey);\n// \t\t\t});\n// \t\t} else if (typeof keys === \"string\") {\n// \t\t\tconst shaKey = CryptoJS.SHA256(keys).toString();\n// \t\t\tlocalStorage.removeItem(shaKey);\n// \t\t}\n// \t} catch (err) {\n// \t\tconsole.error(\"Error clearing storage\", err);\n// \t}\n// }\nexport function clearStorage(keys: string[]) {\n\ttry {\n\t\tif (Array.isArray(keys)) {\n\t\t\tfor (const key of keys) {\n\t\t\t\tconst shaKey = CryptoJS.SHA256(key).toString();\n\t\t\t\tlocalStorage.removeItem(shaKey);\n\t\t\t}\n\t\t} else if (typeof keys === \"string\") {\n\t\t\tconst shaKey = CryptoJS.SHA256(keys).toString();\n\t\t\tlocalStorage.removeItem(shaKey);\n\t\t}\n\t} catch (err) {\n\t\tconsole.error(\"Error clearing storage\", err);\n\t}\n}\n","export const SITE_NAME = \"Helpdice\";\nexport const TOKEN_KEY = \"access-token\";\nexport const REFRESH_TOKEN_KEY = \"refresh-token\";\nexport const TOKEN_THRESHOLD_KEY = \"access-token-threshold\";\n\nexport const AD_CLIENT = \"ca-pub-7034818195807373\";\n\n/* eslint-disable */\nexport const EMAIL_REGEX =\n\t/(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])/;\nexport const PASSWORD_REGEX = /.{8,}/;\n/* eslint-enable */\n","import type { AxiosInstance, AxiosRequestConfig, AxiosResponse } from \"axios\";\nimport axios from \"axios\";\n\nimport {\n\tREFRESH_TOKEN_KEY,\n\tTOKEN_KEY,\n\t// TOKEN_THRESHOLD_KEY,\n} from \"./constants\";\n\n// import { handleItem, setThreshold } from './local-storage';\n// import { handleItem, setThreshold } from './local-storage';\nimport type { AuthRequest, SignupRequest } from \"../auth/types\";\nimport { getCookie } from \"../utils/auth\";\nimport { getConfig } from \"./index\";\nimport validateConfig from \"./validate\";\n\n\nexport function createAxiosWithRetry(\n retries = 3,\n retryDelay = 500\n): AxiosInstance {\n const instance = axios.create();\n\n instance.interceptors.response.use(\n (res) => res,\n async (error) => {\n let config = error.config;\n\n if (!config || !retries) return Promise.reject(error);\n\n config.__retryCount = config.__retryCount || 0;\n\n if (config.__retryCount >= retries) {\n return Promise.reject(error);\n }\n\n config.__retryCount++;\n\n // Exponential backoff\n const delay = retryDelay * Math.pow(2, config.__retryCount);\n\n await new Promise((resolve) => setTimeout(resolve, delay));\n\n return instance(config);\n }\n );\n\n return instance;\n}\n\nexport const http = axios.create({\n\twithCredentials: true,\n\theaders: {\n\t\t\"Access-Control-Allow-Origin\": \"*\",\n\t\t\"Content-Type\": \"application/json\",\n\t},\n});\n\nhttp.interceptors.request.use((config) => {\n\tvalidateConfig(['apiKey', 'apiUrl']);\n\tconst { apiUrl } = getConfig();\n\tconfig.baseURL = apiUrl;\n\tif (config.headers) {\n\t\tconfig.headers[\"Content-Type\"] = \"application/json\";\n\t\tconfig.headers.Authorization = `Bearer ${getCookie()}` || \"\";\n\t\tconfig.headers[\"HB-API-KEY\"] =\n\t\t\t`Bearer ${getConfig().apiKey}` || \"\";\n\t}\n\treturn config;\n}, Promise.reject);\n\nexport const post = (\n\tendpoint: string,\n\tdata?: unknown,\n\tconfig?: AxiosRequestConfig<unknown>,\n): Promise<AxiosResponse> =>\n\tnew Promise((resolve, reject) =>\n\t\thttp\n\t\t\t.post(endpoint, data, config)\n\t\t\t.then(resolve)\n\t\t\t.catch((e) => reject(e.response?.data)),\n\t);\n\nexport const put = (\n\tendpoint: string,\n\tdata?: unknown,\n\tconfig?: AxiosRequestConfig<unknown>,\n): Promise<AxiosResponse> =>\n\tnew Promise((resolve, reject) =>\n\t\thttp\n\t\t\t.put(endpoint, data, config)\n\t\t\t.then(resolve)\n\t\t\t.catch((e) => reject(e.response?.data)),\n\t);\n\nexport const get = (\n\tendpoint: string,\n\tconfig?: AxiosRequestConfig<unknown>,\n): Promise<AxiosResponse> => {\n\t// console.log('Get Request Config :', config);\n\treturn new Promise((resolve, reject) =>\n\t\thttp\n\t\t\t.get(endpoint, config)\n\t\t\t.then(resolve)\n\t\t\t.catch((e) => reject(e.response?.data)),\n\t);\n};\n\nexport const patch = <T>(endpoint: string, data: T): Promise<AxiosResponse> =>\n\tnew Promise((resolve, reject) =>\n\t\thttp\n\t\t\t.patch(endpoint, data)\n\t\t\t.then(resolve)\n\t\t\t.catch((e) => reject(e.response.data)),\n\t);\n\nexport const login = (data: AuthRequest): Promise<AxiosResponse> =>\n\tpost(\"passport/basic/login\", data);\n\nexport const logout = (): Promise<AxiosResponse> => post(\"user/logout\");\n\nexport const passwordReset = (\n\tdata: Partial<AuthRequest>,\n): Promise<AxiosResponse> => post(\"user/reset-password\", data);\n\nexport const signup = (data: SignupRequest): Promise<AxiosResponse> =>\n\tpost(\"passport/basic/signup\", data);\n\n\n\n/* ======================================================================================================= */\n/* ------------------------------------ For Linkie App --------------------------------------------------- */\n/* ======================================================================================================= */\n\nexport const chttp = axios.create({\n\twithCredentials: true,\n\theaders: {\n\t\t\"Access-Control-Allow-Origin\": \"*\",\n\t\t\"Content-Type\": \"application/json\",\n\t},\n});\n\nchttp.interceptors.request.use((config) => {\n\tvalidateConfig(['apiKey', 'tokenKey', 'linkieUrl']);\n\tconst { linkieUrl } = getConfig();\n\tconfig.baseURL = linkieUrl;\n\tif (config.headers) {\n\t\tconfig.headers[\"Content-Type\"] = \"application/json\";\n\t\tconfig.headers.Authorization = localStorage.getItem(TOKEN_KEY) || \"\";\n\t\tconfig.headers[\"HB-API-KEY\"] =\n\t\t\t`Bearer ${getConfig().apiKey}` || \"\";\n\t}\n\treturn config;\n}, Promise.reject);\n\n// chttp.interceptors.response.use(\n// \t(response) => response,\n// \tasync (error) => {\n// \t\tif (error.code === \"ERR_NETWORK\") {\n// \t\t\treturn Promise.reject(error);\n// \t\t}\n\n// \t\tconst refreshToken = localStorage.getItem(REFRESH_TOKEN_KEY);\n\n// \t\tif (!refreshToken) {\n// \t\t\treturn Promise.reject(error);\n// \t\t}\n\n// \t\t// const originalRequest = error.config;\n\n// \t\t// if (error.response.status === 401 && !originalRequest._retry) {\n// \t\t// originalRequest._retry = true;\n\n// \t\t// if (http.defaults.headers) {\n// \t\t// http.defaults.headers.Authorization = `Bearer ${refreshToken}`;\n// \t\t// }\n\n// \t\t// try {\n// \t\t// const res = await post('auth/token');\n// \t\t// const { access_token, threshold } = res.data;\n\n// \t\t// // handleItem(TOKEN_KEY, access_token);\n// \t\t// // handleItem(TOKEN_THRESHOLD_KEY, setThreshold(threshold));\n\n// \t\t// if (http.defaults.headers) {\n// \t\t// http.defaults.headers.Authorization = access_token;\n// \t\t// }\n// \t\t// return await http(originalRequest);\n// \t\t// } catch (reason) {\n// \t\t// return Promise.reject(reason);\n// \t\t// }\n// \t\t// }\n\n// \t\treturn Promise.reject(error);\n// \t},\n// );\n\nexport const linkiePost = (\n\tendpoint: string,\n\tdata?: unknown,\n\tconfig?: AxiosRequestConfig<unknown>,\n): Promise<AxiosResponse> =>\n\tnew Promise((resolve, reject) =>\n\t\tchttp\n\t\t\t.post(endpoint, data, config)\n\t\t\t.then(resolve)\n\t\t\t.catch((e) => reject(e.response?.data)),\n\t);\n\n\n/* ======================================================================================================= */\n/* ------------------------------------ For LMS App --------------------------------------------------- */\n/* ======================================================================================================= */\n\nexport const lhttp = axios.create({\n\twithCredentials: true,\n\theaders: {\n\t\t\"Access-Control-Allow-Origin\": \"*\",\n\t\t\"Content-Type\": \"application/json\",\n\t},\n});\n\nlhttp.interceptors.request.use((config) => {\n\tvalidateConfig(['apiKey', 'tokenKey', 'lmsUrl']);\n\tconst { lmsUrl } = getConfig();\n\tconfig.baseURL = lmsUrl;\n\tif (config.headers) {\n\t\tconfig.headers[\"Content-Type\"] = \"application/json\";\n\t\tconfig.headers.Authorization = localStorage.getItem(TOKEN_KEY) || \"\";\n\t\tconfig.headers[\"HB-API-KEY\"] = `Bearer ${getConfig().apiKey}` || \"\";\n\t}\n\treturn config;\n}, Promise.reject);\n\nexport const lmsPost = (\n\tendpoint: string,\n\tdata?: unknown,\n\tconfig?: AxiosRequestConfig<unknown>\n): Promise<AxiosResponse> =>\n\tnew Promise((resolve, reject) =>\n\t\tlhttp\n\t\t\t.post(endpoint, data, config)\n\t\t\t.then(resolve)\n\t\t\t.catch((e) => reject(e.response?.data)),\n\t);\n\nexport const lmsPut = (\n\tendpoint: string,\n\tdata?: unknown,\n\tconfig?: AxiosRequestConfig<unknown>\n): Promise<AxiosResponse> =>\n\tnew Promise((resolve, reject) =>\n\t\tlhttp\n\t\t\t.put(endpoint, data, config)\n\t\t\t.then(resolve)\n\t\t\t.catch((e) => reject(e.response?.data)),\n\t);\n\nexport const lmsGet = (\n\tendpoint: string,\n\tconfig?: AxiosRequestConfig<unknown>\n): Promise<AxiosResponse> => {\n\t// console.log('Get Request Config :', config);\n\treturn new Promise((resolve, reject) =>\n\t\tlhttp\n\t\t\t.get(endpoint, config)\n\t\t\t.then(resolve)\n\t\t\t.catch((e) => reject(e.response?.data)),\n\t);\n};\n\nexport const lmsPatch = <T>(endpoint: string, data: T): Promise<AxiosResponse> =>\n\tnew Promise((resolve, reject) =>\n\t\tlhttp\n\t\t\t.patch(endpoint, data)\n\t\t\t.then(resolve)\n\t\t\t.catch((e) => reject(e.response.data)),\n\t);\n\n","import type { AxiosResponse } from \"axios\";\n\n// Define the type for the callbacks object\nexport interface Callbacks {\n\tonFetching?: () => void;\n\tonSuccess?: (response: {\n\t\tdata: object;\n\t\tstatus: number;\n\t\tstatusText: string;\n\t}) => void;\n\tonError?: (error: string) => void;\n\tonSettled?: () => void;\n}\n\n// The fetchDataWithCallbacks function that accepts a Promise and a callbacks object\nasync function handler(promise: Promise<AxiosResponse>, callbacks?: Callbacks) {\n\t// Destructure callbacks from the object\n\tconst { onFetching, onSuccess, onError, onSettled } = callbacks ?? {};\n\n\t// Call the onFetching callback before making the request\n\tif (onFetching) onFetching();\n\n\t// Handle the Promise passed as an argument\n\tpromise\n\t\t.then(\n\t\t\t(response: {\n\t\t\t\tdata: object;\n\t\t\t\tstatus: number;\n\t\t\t\tstatusText: string;\n\t\t\t}) => {\n\t\t\t\t// Call the onSuccess callback if the Promise resolves successfully\n\t\t\t\tif (onSuccess)\n\t\t\t\t\tonSuccess({\n\t\t\t\t\t\tdata: response.data,\n\t\t\t\t\t\tstatus: response.status,\n\t\t\t\t\t\tstatusText: response.statusText,\n\t\t\t\t\t});\n\t\t\t},\n\t\t)\n\t\t.catch((error) => {\n\t\t\t// Call the onError callback if the Promise is rejected\n\t\t\tif (onError) onError(error);\n\t\t})\n\t\t.finally(() => {\n\t\t\t// Call the onSettled callback after the Promise is settled\n\t\t\tif (onSettled) onSettled();\n\t\t});\n}\n\nexport default handler;\n","const account = {\n\tv1: {\n\t\tprofile: \"profile\",\n\t},\n};\n\nexport default account;\n","const accounting = {\n\tv1: {\n\t\titem: \"item\",\n\t\titems: \"items\",\n\t\tinvoice: \"invoice\",\n\t\tsubmit_invoice: \"invoice/submit\",\n\t\tinvoices: \"invoices\",\n\t\titem_categories: \"item/category\",\n\t\titem_brands: \"item/brand\",\n\t},\n};\n\nexport default accounting;\n","const assets = {\n\tv1: {\n\t\timagePlaceholder: \"images/image-placeholder.webp\",\n\t\tavatar: \"images/avatar.webp\",\n\t},\n};\n\nexport default assets;\n","const auth = {\n\tv1: {\n\t\tsignin: \"signin\",\n\t\tregister: \"signup\",\n\t\tsignup: \"register\",\n\t\tlogout: \"logout\",\n\t\tauth_with_token: \"authenticate\",\n\t\tauth_with_key: \"verify\",\n\t\treset_password: \"recovery-password\",\n\t\tchange_password: \"change-password\"\n\t},\n};\n\nexport default auth;\n","const cms = {\n\tv1: {\n\t\tarticle: \"article\",\n\t\tarticles: \"articles\",\n\t\tarticleCategories: \"article/categories\",\n\t\tmcq: \"mcq\",\n\t\tmcqs: \"mcqs\",\n\t\tall_mcqs: \"mcqs/all\",\n\t\tmcqCategories: \"mcq/categories\",\n\t\tqna: \"qna\",\n\t\tqnas: \"qnas\",\n\t\tqnaCategories: \"qna/categories\",\n\t},\n};\n\nexport default cms;\n","const hr = {\n\tv1: {\n\t\tjob: \"job\",\n\t\tjobs: \"jobs\",\n\t\tresume: \"resume\"\n\t},\n};\n\nexport default hr;\n","const inventory = {\n\tv1: {\n\t\tstore: \"store\",\n\t\tstore_products: \"store/products\",\n\t},\n};\n\nexport default inventory;\n","const linkie = {\n\tv1: {\n\t\tshorten: \"shorten\",\n\t},\n};\n\nexport default linkie;\n","const lms = {\n\tv1: {\n\t\tcourses: \"courses\",\n\t\tcourse: \"courses/course\",\n\t\tmyCourses: \"enrollments/my-courses\",\n\t\tenrollCourse: \"enrollments\",\n\t\tgetEnrollStudents: \"enrollments/course\"\n\t}\n};\n\nexport default lms;\n","const payment = {\n\tv1: {\n\t\tcreate: \"\",\n\t\tverify: \"verify\",\n\t},\n};\n\nexport default payment;\n","const sales = {\r\n\tv1: {\r\n\t\taddLead: \"lead\"\r\n\t},\r\n};\r\n\r\nexport default sales;\r\n","const support = {\n\tv1: {\n\t\tticket: \"ticket\",\n\t\ttickets: \"tickets\",\n\t\tnewsletter: \"newsletter\",\n\t\tfeedback: \"feedback\"\n\t}\n};\n\nexport default support;\n","const tools = {\n\tv1: {\n\t\texchangeRates: \"exchange-rates\",\n\t},\n};\n\nexport default tools;\n","import account from \"../account/endpoint\";\nimport accounting from \"../accounting/endpoint\";\nimport assets from \"../assets/endpoint\";\nimport auth from \"../auth/endpoint\";\nimport cms from \"../content/endpoint\";\nimport hr from \"../hr/endpoint\";\nimport inventory from \"../inventory/endpoint\";\nimport linkie from \"../linkie/endpoint\";\nimport lms from \"../lms/endpoint\";\nimport payment from \"../payment/endpoint\";\nimport sales from \"../sales/endpoint\";\nimport support from \"../support/endpoint\";\nimport tools from \"../tools/endpoint\";\n\ninterface CategoryUrls {\n\t[version: string]: {\n\t\t[action: string]: string;\n\t};\n}\n\ninterface Urls {\n\t[category: string]: CategoryUrls;\n}\n\nconst urls: Urls = {\n\tauth,\n\tcms,\n\taccount,\n\taccounting,\n\tsupport,\n\tassets,\n\tpayment,\n\tinventory,\n\ttools,\n\tsales,\n\tlinkie,\n\thr,\n\tlms\n};\n\n// Function to get the URL dynamically based on category, version, and action\nexport function getUrl(\n\tcategory: string,\n\tversion: string,\n\taction: string,\n\tomitCategory: boolean = false\n): string {\n\tconst categoryData = urls[category]; // Access the correct category dynamically\n\tif (categoryData) {\n\t\tconst versionData = categoryData[version]; // Access the correct version dynamically\n\t\t// console.log(versionData?.[action]);\n\t\tif (versionData !== undefined) {\n\t\t\t// console.log(versionData[action]);\n\t\t\tif (omitCategory) {\n\t\t\t\treturn `/api/${version}/${versionData[action]}`;\n\t\t\t}\n\t\t\treturn `/api/${version}/${category}/${versionData[action]}`; // Construct the URL\n\t\t}\n\t\tthrow new Error(\n\t\t\t`Invalid action: ${action} for version: ${version} in category: ${category}`,\n\t\t);\n\t}\n\tthrow new Error(`Invalid category: ${category}`);\n}\n","import { post } from \"../config/axios\";\nimport handler from \"../config/handler\";\nimport { getUrl } from \"../config/route\";\nimport { clearStorage, getDataFromStorage } from \"../utils/localStorage\";\n\nconst logout = (\n\tdata: { data?: unknown },\n\t{\n\t\tconfig,\n\t\tonFetching,\n\t\tonSuccess,\n\t\tonError,\n\t\tonSettled,\n\t}: {\n\t\tonFetching?: () => void;\n\t\tonSuccess?: (data: object) => void;\n\t\tonError?: (error: string) => void;\n\t\tonSettled?: () => void;\n\t\tconfig?: { params: unknown };\n\t},\n) => {\n\treturn handler(\n\t\tpost(\n\t\t\tgetUrl(\"auth\", \"v1\", \"logout\"),\n\t\t\t{ ...data, fcm_token: getDataFromStorage(\"fcm_token\") },\n\t\t\tconfig,\n\t\t),\n\t\t{\n\t\t\tonFetching: () => onFetching?.(),\n\t\t\tonError: (error) => onError?.(error),\n\t\t\tonSuccess: (data) => {\n\t\t\t\tclearStorage([\"accountAccessToken\", \"accountInfo\", \"account_key\"]);\n\t\t\t\tonSuccess?.(data);\n\t\t\t\twindow.location.href = \"/\";\n\t\t\t},\n\t\t\tonSettled: () => onSettled?.(),\n\t\t},\n\t);\n};\n\nexport default logout;\n","import { post } from \"../config/axios\";\nimport handler from \"../config/handler\";\nimport { getUrl } from \"../config/route\";\nimport type { AuthRequestParams, SignupRequest } from \"./types\";\n\nconst register = (\n\tdata: SignupRequest,\n\t{\n\t\tconfig,\n\t\tonFetching,\n\t\tonSuccess,\n\t\tonError,\n\t\tonSettled,\n\t}: {\n\t\tonFetching?: () => void;\n\t\tonSuccess?: (data: object) => void;\n\t\tonError?: (error: string) => void;\n\t\tonSettled?: () => void;\n\t\tconfig?: { params: AuthRequestParams };\n\t},\n) => {\n\treturn handler(post(getUrl(\"auth\", \"v1\", \"register\"), data, config), {\n\t\tonFetching: () => onFetching?.(),\n\t\tonError: (error) => onError?.(error),\n\t\tonSuccess: (data) => onSuccess?.(data),\n\t\tonSettled: () => onSettled?.(),\n\t});\n};\n\nexport default register;\n","import { post } from \"../config/axios\";\nimport handler from \"../config/handler\";\nimport { getUrl } from \"../config/route\";\nimport type { AuthRequestParams, SignupRequest } from \"./types\";\n\nconst signup = (\n\tdata: SignupRequest,\n\t{\n\t\tconfig,\n\t\tonFetching,\n\t\tonSuccess,\n\t\tonError,\n\t\tonSettled,\n\t}: {\n\t\tonFetching?: () => void;\n\t\tonSuccess?: (data: object) => void;\n\t\tonError?: (error: string) => void;\n\t\tonSettled?: () => void;\n\t\tconfig?: { params: AuthRequestParams };\n\t},\n) => {\n\treturn handler(post(getUrl(\"auth\", \"v1\", \"signup\"), data, config), {\n\t\tonFetching: () => onFetching?.(),\n\t\tonError: (error) => onError?.(error),\n\t\tonSuccess: (data) => onSuccess?.(data),\n\t\tonSettled: () => onSettled?.(),\n\t});\n};\n\nexport default signup;\n","// import signin from \"./signin\";\nimport { GoogleAuthProvider, getAuth, signInWithPopup } from \"firebase/auth\";\nimport signup from \"./signup\";\nimport { getFirebase } from \"../config/index\";\n\ntype SignInGoogleProps = {\n\tonFetching?: () => void;\n\tonSuccess?: (data: object) => void;\n\tonError?: (error: unknown | string) => void;\n\tonSettled?: () => void;\n};\n\n// Function to handle Google Sign-In\nasync function signInWithGoogle({\n\tonSuccess,\n\tonError,\n\tonFetching,\n\tonSettled,\n}: SignInGoogleProps): Promise<void> {\n\ttry {\n\t\tconst provider = new GoogleAuthProvider();\n\t\tconst auth = getAuth(getFirebase());\n\t\tsignInWithPopup(auth, provider)\n\t\t\t.then((result) => {\n\t\t\t\t// This gives you a Google Access Token. You can use it to access the Google API.\n\t\t\t\tconst credential = GoogleAuthProvider.credentialFromResult(result);\n\t\t\t\t// const token = credential?.accessToken;\n\t\t\t\t// The signed-in user info.\n\t\t\t\tconst user = result.user;\n\t\t\t\t// console.log(user);\n\t\t\t\treturn signup(\n\t\t\t\t\t{\n\t\t\t\t\t\tprovider: \"Google\",\n\t\t\t\t\t\tuid: user.uid,\n\t\t\t\t\t\tname: String(user.displayName),\n\t\t\t\t\t\temail: String(user.email),\n\t\t\t\t\t\tusername: String(user.email),\n\t\t\t\t\t\tpassword: user.uid.substring(0, user.uid.length / 2),\n\t\t\t\t\t\t// token: token,\n\t\t\t\t\t\ttoday: new Date(),\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tonFetching: () => onFetching?.(),\n\t\t\t\t\t\tonError: (error) => onError?.(error),\n\t\t\t\t\t\tonSuccess: (data) => onSuccess?.(data),\n\t\t\t\t\t\tonSettled: () => onSettled?.(),\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tonError?.(error);\n\t\t\t\treturn Promise.reject(\"Something Went Wrong\");\n\t\t\t\t// Handle Errors here.\n\t\t\t\t// const errorCode = error.code;\n\t\t\t\t// const errorMessage = error.message;\n\t\t\t\t// The email of the user's account used.\n\t\t\t\t// const email = error.customData.email;\n\t\t\t\t// The AuthCredential type that was used.\n\t\t\t\t// const credential = GoogleAuthProvider.credentialFromError(error);\n\t\t\t\t// ...\n\t\t\t});\n\t} catch (err) {\n\t\tonError?.(err);\n\t}\n}\n\nexport default signInWithGoogle;\n","import { post } from \"../config/axios\";\nimport handler from \"../config/handler\";\nimport { getUrl } from \"../config/route\";\nimport type { AuthRequest, AuthRequestParams } from \"./types\";\n\nconst signin = (\n\tdata: AuthRequest,\n\t{\n\t\tconfig,\n\t\tonFetching,\n\t\tonSuccess,\n\t\tonError,\n\t\tonSettled,\n\t}: {\n\t\tonFetching?: () => void;\n\t\tonSuccess?: (data: object) => void;\n\t\tonError?: (error: string) => void;\n\t\tonSettled?: () => void;\n\t\tconfig?: { params: AuthRequestParams };\n\t},\n) => {\n\treturn handler(post(getUrl(\"auth\", \"v1\", \"signin\"), data, config), {\n\t\tonFetching: () => onFetching?.(),\n\t\tonError: (error) => onError?.(error),\n\t\tonSuccess: (data) => onSuccess?.(data),\n\t\tonSettled: () => onSettled?.(),\n\t});\n};\n\nexport default signin;\n","import { post } from \"../config/axios\";\r\nimport handler from \"../config/handler\";\r\nimport { getUrl } from \"../config/route\";\r\nimport type { TokenRequest, AuthRequestParams } from \"./types\";\r\n\r\nconst authWithToken = (\r\n\tdata: TokenRequest,\r\n\t{\r\n\t\tconfig,\r\n\t\tonFetching,\r\n\t\tonSuccess,\r\n\t\tonError,\r\n\t\tonSettled,\r\n\t}: {\r\n\t\tonFetching?: () => void;\r\n\t\tonSuccess?: (data: object) => void;\r\n\t\tonError?: (error: string) => void;\r\n\t\tonSettled?: () => void;\r\n\t\tconfig?: { params: AuthRequestParams };\r\n\t},\r\n) => {\r\n\treturn handler(post(getUrl(\"auth\", \"v1\", \"auth_with_token\"), data, config), {\r\n\t\tonFetching: () => onFetching?.(),\r\n\t\tonError: (error) => onError?.(error),\r\n\t\tonSuccess: (data) => onSuccess?.(data),\r\n\t\tonSettled: () => onSettled?.(),\r\n\t});\r\n};\r\n\r\nexport default authWithToken;","import { post } from \"../config/axios\";\r\nimport handler from \"../config/handler\";\r\nimport { getUrl } from \"../config/route\";\r\nimport type { APIRequest, AuthRequestParams } from \"./types\";\r\n\r\nconst authWithKey = (\r\n\tdata: APIRequest,\r\n\t{\r\n\t\tconfig,\r\n\t\tonFetching,\r\n\t\tonSuccess,\r\n\t\tonError,\r\n\t\tonSettled,\r\n\t}: {\r\n\t\tonFetching?: () => void;\r\n\t\tonSuccess?: (data: object) => void;\r\n\t\tonError?: (error: string) => void;\r\n\t\tonSettled?: () => void;\r\n\t\tconfig?: { params: AuthRequestParams };\r\n\t},\r\n) => {\r\n\treturn handler(post(getUrl(\"auth\", \"v1\", \"auth_with_key\"), data, config), {\r\n\t\tonFetching: () => onFetching?.(),\r\n\t\tonError: (error) => onError?.(error),\r\n\t\tonSuccess: (data) => onSuccess?.(data),\r\n\t\tonSettled: () => onSettled?.(),\r\n\t});\r\n};\r\n\r\nexport default authWithKey","import { post } from \"../config/axios\";\r\nimport handler from \"../config/handler\";\r\nimport { getUrl } from \"../config/route\";\r\nimport type { AuthRequest, AuthRequestParams } from \"./types\";\r\n\r\nconst resetPassword = (\r\n data: AuthRequest,\r\n {\r\n config,\r\n onFetching,\r\n onSuccess,\r\n onError,\r\n onSettled,\r\n }: {\r\n onFetching?: () => void;\r\n onSuccess?: (data: object) => void;\r\n onError?: (error: string) => void;\r\n onSettled?: () => void;\r\n config?: { params: AuthRequestParams };\r\n },\r\n) => {\r\n return handler(post(getUrl(\"auth\", \"v1\", \"reset_password\"), data, config), {\r\n onFetching: () => onFetching?.(),\r\n onError: (error) => onError?.(error),\r\n onSuccess: (data) => onSuccess?.(data),\r\n onSettled: () => onSettled?.(),\r\n });\r\n};\r\n\r\nexport default resetPassword;\r\n","import cookie from \"js-cookie\";\nimport { jwtDecode } from \"jwt-decode\";\n// import type { NextPageContext } from \"next\";\nimport { getConfig } from \"../config/index\";\nimport { isAuth } from \"../utils/auth\";\nimport {\n\tgetDataFromStorage,\n\tsetDataInStorage,\n\tsetEncryptionKey,\n} from \"../utils/localStorage\";\nimport logout from \"./logout\";\nimport register from \"./register\";\nimport signInWithGoogle from \"./signInWithGoogle\";\nimport signIn from \"./signin\";\nimport signUp from \"./signup\";\nimport validateConfig from \"../config/validate\";\nimport authWithToken from \"./authWithToken\";\nimport authWithKey from \"./authWithKey\";\nimport resetPassword from \"./resetPassword\";\n\nconst Auth = {\n\tsignIn,\n\tsignUp,\n\tregister,\n\tresetPassword,\n\tsignInWithGoogle,\n\tsaveTokenToCookie: (token: string) => {\n\t\tvalidateConfig(['tokenKey']);\n\t\tconst { tokenKey } = getConfig();\n\t\tif (tokenKey) {\n\t\t\tcookie.set(tokenKey, token, { expires: 900000 });\n\t\t}\n\t\twindow.location.href = \"/\";\n\t},\n\tsaveTokenToStorage: (token: string) => {\n\t\tconst accountInfo: {\n\t\t\t_id: string;\n\t\t\tcreatedAt: string;\n\t\t} = jwtDecode(token);\n\t\tif (accountInfo) {\n\t\t\tsetEncryptionKey(\"account_key\", accountInfo._id + accountInfo.createdAt);\n\t\t\tsetDataInStorage(\"accountAccessToken\", token);\n\t\t\tsetDataInStorage(\"accountInfo\", accountInfo);\n\t\t}\n\t},\n\tgetTokenFromStorage: () => {\n\t\treturn getDataFromStorage(\"accountAccessToken\");\n\t},\n\tgetUserFromStrorage: () => {\n\t\treturn getDataFromStorage(\"accountInfo\");\n\t},\n\t/**\n\t * Action to update stored admin info in the redux\n\t * @param {string | object} key key or an object with key: value of the fields to be updated\n\t * @param {any} value value of the field to be updated (only if the key passed is of type string)\n\t */\n\tupdateUserInfo: (key?: string | object, value?: any) => () => {\n\t\tconsole.log(\"typeof key: \", typeof key, key);\n\t\ttry {\n\t\t\t// console.log(key);\n\t\t\tconst accountInfo = getDataFromStorage(\"accountInfo\");\n\t\t\tif (typeof key === \"object\") {\n\t\t\t\tlet updatedInfo = { ...accountInfo };\n\t\t\t\t// for..of\n\t\t\t\tfor (const [ky, value] of Object.entries(key)) {\n\t\t\t\t\tupdatedInfo = { ...updatedInfo, [ky]: value };\n\t\t\t\t}\n\t\t\t\t// console.log(updatedInfo);\n\t\t\t\tsetDataInStorage(\"accountInfo\", updatedInfo);\n\t\t\t} else if (typeof key === \"string\") {\n\t\t\t\tif (value) {\n\t\t\t\t\tsetDataInStorage(\"accountInfo\", { ...accountInfo, [key]: value });\n\t\t\t\t} else {\n\t\t\t\t\tconsole.error(\n\t\t\t\t\t\t\"Value is not provided for the given key to update admin info\",\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tconsole.error(\"update logo action \", error);\n\t\t}\n\t},\n\tisAuthenticated: (cookie?: boolean) => {\n\t\tif (cookie) {\n\t\t\treturn isAuth();\n\t\t}\n\t\treturn getDataFromStorage(\"accountAccessToken\") !== undefined;\n\t},\n\t// getServerToken: (ctx: NextPageContext) => getServerSideToken(ctx),\n\tlogout,\n\tServer: {\n\t\tauthWithToken,\n\t\tauthWithKey\n\t}\n};\n\nexport default Auth;\n","import { post } from \"../config/axios\";\nimport handler from \"../config/handler\";\nimport { getUrl } from \"../config/route\";\nimport type { Order } from \"./types\";\n\nconst create = (\n\tdata: Order,\n\t{\n\t\tconfig,\n\t\tonFetching,\n\t\tonSuccess,\n\t\tonError,\n\t\tonSettled,\n\t}: {\n\t\tonFetching?: () => void;\n\t\tonSuccess?: (data: object) => void;\n\t\tonError?: (error: string) => void;\n\t\tonSettled?: () => void;\n\t\tconfig?: object;\n\t},\n) => {\n\treturn handler(post(getUrl(\"order\", \"v1\", \"create\"), data, config), {\n\t\tonFetching: () => onFetching?.(),\n\t\tonError: (error) => onError?.(error),\n\t\tonSuccess: (data) => onSuccess?.(data),\n\t\tonSettled: () => onSettled?.(),\n\t});\n};\n\nexport default create;\n","import create from \"./create\";\n\nconst Order = {\n\tcreate,\n};\n\nexport default Order;\n","import type { AxiosResponse } from \"axios\";\n\n// Define type for the handler options\ninterface AxiosRequestHandlerOptions {\n\tpromise: Promise<AxiosResponse<any>>; // The promise that resolves with Axios response\n\tonLoading?: (isLoading: boolean) => void; // Callback to show/hide loading state\n\tonSuccess?: (data: any) => void; // Callback for success response\n\tonError?: (error: any) => void; // Callback for error response\n\tonSettled?: () => void; // Callback for when request finishes (either success or failure)\n\tonProgress?: (progress: string) => void; // Callback for progress updates\n}\n\nconst handler = ({\n\tpromise,\n\tonLoading = () => {},\n\tonSuccess = () => {},\n\tonError = () => {},\n\tonSettled = () => {},\n\tonProgress = () => {},\n}: AxiosRequestHandlerOptions): void => {\n\t// Call onLoading at the start to show loading state\n\tonLoading(true);\n\n\t// Handling the passed promise\n\tpromise\n\t\t.then((response: AxiosResponse) => {\n\t\t\t// Show success state\n\t\t\tconsole.log(\"Request Success:\", response);\n\n\t\t\t// Execute success callback if provided\n\t\t\tif (onSuccess) {\n\t\t\t\tonSuccess(response.data);\n\t\t\t}\n\t\t})\n\t\t.catch((error: any) => {\n\t\t\t// Show error state\n\t\t\tconsole.error(\"Request Error:\", error);\n\n\t\t\t// Execute error callback if provided\n\t\t\tif (onError) {\n\t\t\t\tonError(error);\n\t\t\t}\n\t\t})\n\t\t.finally(() => {\n\t\t\t// Execute settled callback (on success or error)\n\t\t\tif (onSettled) {\n\t\t\t\tonSettled();\n\t\t\t}\n\n\t\t\t// Call onLoading to hide loading indicator after completion\n\t\t\tonLoading(false);\n\n\t\t\t// Hide loading indicator\n\t\t\tconsole.log(\"Request Completed\");\n\t\t});\n};\n\nexport default handler;\n","import type { AxiosRequestConfig } from \"axios\";\nimport { post } from \"../config/axios\";\nimport { getUrl } from \"../config/route\";\nimport handler from \"../utils/handler\";\n\n// Optional: if you have defined Order/VerifyPayment types\n// import type { Order } from \"../order/types\";\n// import type { VerifyPayment } from \"./types\";\n\ndeclare global {\n\tinterface Window {\n\t\tRazorpay: any; // Ideally, use proper types from @types/razorpay\n\t}\n}\n\ninterface PaymentData {\n\tamount: number;\n\tcurrency: string;\n\tpaymentService: string;\n\t[key: string]: any;\n}\n\ninterface StartOptions {\n\tconfig?: AxiosRequestConfig | null;\n\tonLoading?: (isLoading: boolean) => void;\n\tonSuccess?: (data: any) => void;\n\tonError?: (error: any) => void;\n\tonSettled?: () => void;\n}\n\nfunction start(\n\tdata: PaymentData,\n\t{\n\t\tconfig = null,\n\t\tonLoading = () => { },\n\t\tonSuccess = () => { },\n\t\tonError = () => { },\n\t\tonSettled = () => { },\n\t}: StartOptions = {},\n) {\n\treturn handler({\n\t\tpromise: post(\n\t\t\tgetUrl(\"payment\", \"v1\", \"create\"),\n\t\t\t{\n\t\t\t\t...data,\n\t\t\t\tmethod: {\n\t\t\t\t\tlabel: data.paymentService,\n\t\t\t\t\tcurrency: data.currency,\n\t\t\t\t},\n\t\t\t},\n\t\t\tconfig || undefined,\n\t\t),\n\t\tonLoading,\n\t\tonError: (error) => onError(error),\n\t\tonSuccess: (responseData: any) => {\n\t\t\tif (responseData?.method === \"Razor Pay\") {\n\t\t\t\tconst options = responseData.options;\n\t\t\t\toptions.handler = async (response: any) => {\n\t\t\t\t\t// console.log(\"Payment Success:\", response);\n\t\t\t\t\tonSuccess(response);\n\t\t\t\t\t// Validation call (if needed)\n\t\t\t\t};\n\t\t\t\tconst rzp1 = new window.Razorpay(options);\n\t\t\t\trzp1.on(\"payment.failed\", (response: any) => {\n\t\t\t\t\tonError(response);\n\t\t\t\t});\n\t\t\t\trzp1.open();\n\t\t\t}\n\t\t},\n\t\tonSettled,\n\t});\n}\n\nexport default start;\n","import type { AxiosRequestConfig } from \"axios\";\nimport { post } from \"../config/axios\";\nimport handler from \"../config/handler\";\nimport { getUrl } from \"../config/route\";\nimport type { SuccessProps } from \"./types\";\nimport type { VerifyPayment } from \"./types\";\n\nconst verify = (\n\tdata: VerifyPayment,\n\t{\n\t\tconfig,\n\t\tonFetching,\n\t\tonSuccess,\n\t\tonError,\n\t\tonSettled,\n\t}: {\n\t\tonFetching?: () => void;\n\t\tonSuccess?: (data: SuccessProps) => void;\n\t\tonError?: (error: string) => void;\n\t\tonSettled?: () => void;\n\t\tconfig?: AxiosRequestConfig<unknown>;\n\t},\n) => {\n\treturn handler(post(getUrl(\"payment\", \"v1\", \"verify\"), data, config), {\n\t\tonFetching: () => onFetching?.(),\n\t\tonError: (error) => onError?.(error),\n\t\tonSuccess: (data) => onSuccess?.(data),\n\t\tonSettled: () => onSettled?.(),\n\t});\n};\n\nexport default verify;\n","import start from \"./start\";\nimport verify from \"./verify\";\n\nconst Payment = {\n\tstart,\n\tverify,\n};\n\nexport default Payment;\n","import { get } from \"../config/axios\";\nimport { getUrl } from \"../config/route\";\n\nconst Content = {\n\tarticle: (slug: string) =>\n\t\tget(getUrl(\"cms\", \"v1\", \"article\"), {\n\t\t\tparams: {\n\t\t\t\tslug,\n\t\t\t},\n\t\t}),\n\tarticles: (config?: object | undefined) =>\n\t\tget(getUrl(\"cms\", \"v1\", \"articles\"), config),\n\tarticleCategories: (config?: object | undefined) =>\n\t\tget(getUrl(\"cms\", \"v1\", \"articleCategories\"), config),\n\tmcq: (slug: string) =>\n\t\tget(getUrl(\"cms\", \"v1\", \"mcq\"), {\n\t\t\tparams: {\n\t\t\t\tslug,\n\t\t\t},\n\t\t}),\n\tmcqs: (config?: object | undefined) =>\n\t\tget(getUrl(\"cms\", \"v1\", \"mcqs\"), config),\n\tallMcqs: (config?: object | undefined) =>\n\t\tget(getUrl(\"cms\", \"v1\", \"all_mcqs\"), config),\n\tmcqsCategories: (config?: object | undefined) =>\n\t\tget(getUrl(\"cms\", \"v1\", \"mcqCategories\"), config),\n\tqna: (slug: string) =>\n\t\tget(getUrl(\"cms\", \"v1\", \"qna\"), {\n\t\t\tparams: {\n\t\t\t\tslug,\n\t\t\t},\n\t\t}),\n\tqnas: (config?: object | undefined) =>\n\t\tget(getUrl(\"cms\", \"v1\", \"qnas\"), config),\n\tqnasCategories: (config?: object | undefined) =>\n\t\tget(getUrl(\"cms\", \"v1\", \"qnaCategories\"), config),\n};\n\nexport default Content;\n","import type { AuthRequestParams } from \"../auth/types\";\nimport { post } from \"../config/axios\";\nimport handler from \"../config/handler\";\nimport { getUrl } from \"../config/route\";\nimport type { Invoice } from \"./types\";\n\nconst createInvoice = (\n\tdata: Invoice,\n\t{\n\t\tconfig,\n\t\tonFetching,\n\t\tonSuccess,\n\t\tonError,\n\t\tonSettled,\n\t}: {\n\t\tonFetching?: () => void;\n\t\tonSuccess?: (data: object) => void;\n\t\tonError?: (error: string) => void;\n\t\tonSettled?: () => void;\n\t\tconfig?: { params: AuthRequestParams };\n\t},\n) => {\n\treturn handler(post(getUrl(\"accounting\", \"v1\", \"invoice\"), data, config), {\n\t\tonFetching: () => onFetching?.(),\n\t\tonError: (error) => onError?.(error),\n\t\tonSuccess: (data) => onSuccess?.(data),\n\t\tonSettled: () => onSettled?.(),\n\t});\n};\n\nexport default createInvoice;\n","import type { AuthRequestParams } from \"../auth/types\";\nimport { post } from \"../config/axios\";\nimport handler from \"../config/handler\";\nimport { getUrl } from \"../config/route\";\nimport type { SubmitInvoice } from \"./types\";\n\nconst submitInvoice = (\n\tdata: SubmitInvoice,\n\t{\n\t\tconfig,\n\t\tonFetching,\n\t\tonSuccess,\n\t\tonError,\n\t\tonSettled,\n\t}: {\n\t\tonFetching?: () => void;\n\t\tonSuccess?: (data: object) => void;\n\t\tonError?: (error: string) => void;\n\t\tonSettled?: () => void;\n\t\tconfig?: { params: AuthRequestParams };\n\t},\n) => {\n\treturn handler(\n\t\tpost(getUrl(\"accounting\", \"v1\", \"submit_invoice\"), data, config),\n\t\t{\n\t\t\tonFetching: () => onFetching?.(),\n\t\t\tonError: (error) => onError?.(error),\n\t\t\tonSuccess: (data) => onSuccess?.(data),\n\t\t\tonSettled: () => onSettled?.(),\n\t\t},\n\t);\n};\n\nexport default submitInvoice;\n","import type { AuthRequestParams } from \"../auth/types\";\nimport { put } from \"../config/axios\";\nimport handler from \"../config/handler\";\nimport { getUrl } from \"../config/route\";\nimport type { Invoice } from \"./types\";\n\nconst updateInvoice = (\n\tdata: Invoice,\n\t{\n\t\tconfig,\n\t\tonFetching,\n\t\tonSuccess,\n\t\tonError,\n\t\tonSettled,\n\t}: {\n\t\tonFetching?: () => void;\n\t\tonSuccess?: (data: object) => void;\n\t\tonError?: (error: string) => void;\n\t\tonSettled?: () => void;\n\t\tconfig?: { params: AuthRequestParams };\n\t},\n) => {\n\treturn handler(put(getUrl(\"accounting\", \"v1\", \"invoice\"), data, config), {\n\t\tonFetching: () => onFetching?.(),\n\t\tonError: (error) => onError?.(error),\n\t\tonSuccess: (data) => onSuccess?.(data),\n\t\tonSettled: () => onSettled?.(),\n\t});\n};\n\nexport default updateInvoice;\n","import { get } from \"../config/axios\";\nimport { getUrl } from \"../config/route\";\nimport createInvoice from \"./createInvoice\";\nimport submitInvoice from \"./submitInvoice\";\nimport updateInvoice from \"./updateInvoice\";\n\nconst Accounting = {\n\titem: (slug: string) =>\n\t\tget(getUrl(\"accounting\", \"v1\", \"item\"), {\n\t\t\tparams: {\n\t\t\t\tslug,\n\t\t\t},\n\t\t}),\n\titems: (config?: object | undefined) =>\n\t\tget(getUrl(\"accounting\", \"v1\", \"items\"), config),\n\tcreateInvoice,\n\tupdateInvoice,\n\tinvoices: (config?: object | undefined) =>\n\t\tget(getUrl(\"accounting\", \"v1\", \"invoices\"), config),\n\tsubmitInvoice,\n\titemCategories: () => get(getUrl(\"accounting\", \"v1\", \"item_categories\")),\n\titemBrands: () => get(getUrl(\"accounting\", \"v1\", \"item_brands\")),\n};\n\n\nexport type { Invoice, SubmitInvoice, PaymentInfo, Tax, Item } from \"./types\";\nexport default Accounting;\n","import { post } from \"../config/axios\";\r\nimport handler from \"../config/handler\";\r\nimport { getUrl } from \"../config/route\";\r\n\r\nconst feedback = (\r\n\tdata: unknown,\r\n\t{\r\n\t\tconfig,\r\n\t\tonFetching,\r\n\t\tonSuccess,\r\n\t\tonError,\r\n\t\tonSettled,\r\n\t}: {\r\n\t\tonFetching?: () => void;\r\n\t\tonSuccess?: (data: object) => void;\r\n\t\tonError?: (error: string) => void;\r\n\t\tonSettled?: () => void;\r\n\t\tconfig?: { params: unknown };\r\n\t},\r\n) => {\r\n\treturn handler(post(getUrl(\"support\", \"v1\", \"feedback\"), data, config), {\r\n\t\tonFetching: () => onFetching?.(),\r\n\t\tonError: (error) => onError?.(error),\r\n\t\tonSuccess: (data) => onSuccess?.(data),\r\n\t\tonSettled: () => onSettled?.(),\r\n\t});\r\n};\r\n\r\nexport default feedback;\r\n","import { post } from \"../config/axios\";\nimport handler from \"../config/handler\";\nimport { getUrl } from \"../config/route\";\n\nconst newsletter = (\n\tdata: unknown,\n\t{\n\t\tconfig,\n\t\tonFetching,\n\t\tonSuccess,\n\t\tonError,\n\t\tonSettled,\n\t}: {\n\t\tonFetching?: () => void;\n\t\tonSuccess?: (data: object) => void;\n\t\tonError?: (error: string) => void;\n\t\tonSettled?: () => void;\n\t\tconfig?: { params: unknown };\n\t},\n) => {\n\treturn handler(post(getUrl(\"support\", \"v1\", \"newsletter\"), data, config), {\n\t\tonFetching: () => onFetching?.(),\n\t\tonError: (error) => onError?.(error),\n\t\tonSuccess: (data) => onSuccess?.(data),\n\t\tonSettled: () => onSettled?.(),\n\t});\n};\n\nexport default newsletter;\n","import { post } from \"../config/axios\";\nimport handler from \"../config/handler\";\nimport { getUrl } from \"../config/route\";\n\nconst ticket = (\n\tdata: unknown,\n\t{\n\t\tconfig,\n\t\tonFetching,\n\t\tonSuccess,\n\t\tonError,\n\t\tonSettled,\n\t}: {\n\t\tonFetching?: () => void;\n\t\tonSuccess?: (data: object) => void;\n\t\tonError?: (error: string) => void;\n\t\tonSettled?: () => void;\n\t\tconfig?: { params: unknown };\n\t},\n) => {\n\treturn handler(post(getUrl(\"support\", \"v1\", \"ticket\"), data, config), {\n\t\tonFetching: () => onFetching?.(),\n\t\tonError: (error) => onError?.(error),\n\t\tonSuccess: (data) => onSuccess?.(data),\n\t\tonSettled: () => onSettled?.(),\n\t});\n};\n\nexport default ticket;\n","import { get } from \"../config/axios\";\nimport { getUrl } from \"../config/route\";\nimport feedback from \"./feedback\";\nimport newsletter from \"./newsletter\";\nimport ticket from \"./ticket\";\n\nconst Support = {\n\tticket,\n\tnewsletter,\n\ttickets: (config?: object | undefined) =>\n\t\tget(getUrl(\"support\", \"v1\", \"tickets\"), config),\n\tfeedback\n};\n\nexport default Support;\n\n\n","import { getConfig } from \"../config/index\";\nimport { getUrl } from \"../config/route\";\n\nconst Assets = {\n\timages: {\n\t\timagePlaceholder: getConfig().apiUrl + getUrl(\"assets\", \"v1\", \"imagePlaceholder\"),\n\t\tavatar: getConfig().apiUrl + getUrl(\"assets\", \"v1\", \"avatar\"),\n\t},\n};\n\nexport default Assets;\n","import type { AuthRequestParams } from \"../auth/types\";\nimport { put } from \"../config/axios\";\nimport handler from \"../config/handler\";\nimport { getUrl } from \"../config/route\";\nimport type { Profile } from \"./types\";\n\nconst updateProfile = (\n\tdata: Profile,\n\t{\n\t\tconfig,\n\t\tonFetching,\n\t\tonSuccess,\n\t\tonError,\n\t\tonSettled\n\t}: {\n\t\tonFetching?: () => void;\n\t\tonSuccess?: (data: object) => void;\n\t\tonError?: (error: string) => void;\n\t\tonSettled?: () => void;\n\t\tconfig?: { params: AuthRequestParams };\n\t},\n) => {\n\treturn handler(put(getUrl(\"account\", \"v1\", \"profile\"), data, config), {\n\t\tonFetching: () => onFetching?.(),\n\t\tonError: (error) => onError?.(error),\n\t\tonSuccess: (data) => onSuccess?.(data),\n\t\tonSettled: () => onSettled?.(),\n\t});\n};\n\nexport default updateProfile;\n","import { get } from \"../config/axios\";\nimport { getUrl } from \"../config/route\";\nimport updateProfile from \"./update_profile\";\n\nconst Account = {\n\tprofile: (id: string) =>\n\t\tget(getUrl(\"account\", \"v1\", \"profile\"), {\n\t\t\tparams: {\n\t\t\t\tid,\n\t\t\t},\n\t\t}),\n\tupdateProfile,\n};\n\n\nexport type { Profile } from \"./types\";\nexport default Account;\n","export default function shareUrl(title: string, url: string) {\n\t// URL encoding to ensure special characters are handled properly\n\tconst encodedTitle = encodeURIComponent(title);\n\tconst encodedUrl = encodeURIComponent(url);\n\tconst target = \"_blank\";\n\tconst dimension = \"width=600,height=400\";\n\t// Social media share URLs\n\tconst shareLinks = {\n\t\tfacebook: `https://www.facebook.com/sharer/sharer.php?u=${encodedUrl}`,\n\t\ttwitter: `https://twitter.com/intent/tweet?text=${encodedTitle}&url=${encodedUrl}`,\n\t\tlinkedin: `https://www.linkedin.com/sharing/share-offsite/?url=${encodedUrl}`,\n\t\twhatsapp: `https://api.whatsapp.com/send?text=${encodedTitle} ${encodedUrl}`,\n\t\tpinterest: `https://www.pinterest.com/pin/create/button/?url=${encodedUrl}&description=${encodedTitle}`,\n\t};\n\n\treturn {\n\t\tfacebook: () => window.open(shareLinks.facebook, target, dimension),\n\t\ttwitter: () => window.open(shareLinks.twitter, target, dimension),\n\t\tlinkedin: () => window.open(shareLinks.linkedin, target, dimension),\n\t\twhatsapp: () => window.open(shareLinks.whatsapp, target, dimension),\n\t\tpinterest: () => window.open(shareLinks.pinterest, target, dimension),\n\t};\n}\n","import type { AxiosRequestConfig } from \"axios\";\r\nimport { post } from \"../config/axios\";\r\nimport { getUrl } from \"../config/route\";\r\nimport handler from \"../utils/handler\";\r\nimport type { Lead } from \"./types\";\r\n\r\ninterface StartOptions {\r\n\tconfig?: AxiosRequestConfig | null;\r\n\tonLoading?: (isLoading: boolean) => void;\r\n\tonSuccess?: (data: any) => void;\r\n\tonError?: (error: any) => void;\r\n\tonSettled?: () => void;\r\n}\r\n\r\nexport function addLead(\r\n\tdata: Lead,\r\n\t{\r\n\t\tconfig = null,\r\n\t\tonLoading = () => { },\r\n\t\tonSuccess = () => { },\r\n\t\tonError = () => { },\r\n\t\tonSettled = () => { },\r\n\t}: StartOptions = {},\r\n) {\r\n\treturn handler({\r\n\t\tpromise: post(\r\n\t\t\tgetUrl(\"sales\", \"v1\", \"addLead\"),\r\n\t\t\t{\r\n\t\t\t\t...data\r\n\t\t\t},\r\n\t\t\tconfig || undefined,\r\n\t\t),\r\n\t\tonLoading,\r\n\t\tonError: (error) => onError(error),\r\n\t\tonSuccess: (responseData: any) => {\r\n\t\t\tonSuccess(responseData);\r\n\t\t},\r\n\t\tonSettled,\r\n\t});\r\n}\r\n","import { addLead } from \"./lead\";\r\nimport { Lead, LeadSource, LeadStatus } from \"./types\";\r\n\r\nconst Sales = {\r\n\taddLead,\r\n};\r\n\r\nexport type { \r\n\tLeadSource,\r\n\tLeadStatus,\r\n\tLead\r\n}\r\n\r\nexport default Sales;","import { get } from \"../config/axios\";\nimport { getUrl } from \"../config/route\";\n\nconst Inventory = {\n\tgetStoreById: (id: string) =>\n\t\tget(getUrl(\"inventory\", \"v1\", \"store\"), {\n\t\t\tparams: {\n\t\t\t\tid,\n\t\t\t},\n\t\t}),\n\tgetStoreBySlug: (slug: string) =>\n\t\tget(getUrl(\"inventory\", \"v1\", \"store\"), {\n\t\t\tparams: {\n\t\t\t\tslug,\n\t\t\t},\n\t\t}),\n\tgetStoreProducts: (\n\t\tslug: string,\n\t\tcategory: string,\n\t\tbrand: string,\n\t\tprice: string,\n\t\tsearch: string,\n\t) =>\n\t\tget(getUrl(\"inventory\", \"v1\", \"store_products\"), {\n\t\t\tparams: {\n\t\t\t\tslug,\n\t\t\t\tcategory,\n\t\t\t\tbrand,\n\t\t\t\tprice,\n\t\t\t\tsearch,\n\t\t\t},\n\t\t}),\n};\n\nexport default Inventory;\n","import { get, post } from \"../config/axios\";\nimport handler from \"../config/handler\";\nimport { getUrl } from \"../config/route\";\n\nconst exchangeRates = (\n\tdata: unknown,\n\t{\n\t\tconfig,\n\t\tonFetching,\n\t\tonSuccess,\n\t\tonError,\n\t\tonSettled,\n\t}: {\n\t\tonFetching?: () => void;\n\t\tonSuccess?: (data: object) => void;\n\t\tonError?: (error: string) => void;\n\t\tonSettled?: () => void;\n\t\tconfig?: {\n\t\t\tparams: {\n\t\t\t\tfrom?: string;\n\t\t\t\tto?: string;\n\t\t\t};\n\t\t};\n\t},\n) => {\n\treturn handler(get(getUrl(\"tools\", \"v1\", \"exchangeRates\"), config), {\n\t\tonFetching: () => onFetching?.(),\n\t\tonError: (error) => onError?.(error),\n\t\tonSuccess: (data) => onSuccess?.(data),\n\t\tonSettled: () => onSettled?.(),\n\t});\n};\n\nexport default exchangeRates;\n\n// export async function convertCurrency(amount: number, fromCurrency?: string, toCurrency?: string) {\n// try {\n// const rates = await getExchangeRates(fromCurrency);\n// if (!rates[toCurrency]) {\n// throw new Error(`Currency ${toCurrency} is not available.`);\n// }\n// const convertedAmount = (amount * rates[toCurrency]).toFixed(2);\n// return convertedAmount;\n// } catch (error) {\n// console.error('Error converting currency:', error);\n// throw error;\n// }\n// }\n","import { AxiosProgressEvent } from \"axios\";\r\nimport { createAxiosWithRetry } from \"../config/axios\";\r\n\r\nexport async function uploadMultipleFiles(\r\n url: string,\r\n files: (File | Blob)[],\r\n onProgress?: (percent: number) => void\r\n) {\r\n const formData = new FormData();\r\n\r\n files.forEach((file, i) => {\r\n formData.append(\"files\", file); // name \"files\" must match backend\r\n });\r\n\r\n const axiosInstance = createAxiosWithRetry(3, 500);\r\n\r\n return axiosInstance.post(url, formData, {\r\n headers: { \"Content-Type\": \"multipart/form-data\" },\r\n onUploadProgress: (e: AxiosProgressEvent) => {\r\n if (!e.total) return;\r\n const percent = Math.round((e.loaded * 100) / e.total);\r\n onProgress?.(percent);\r\n },\r\n });\r\n}\r\n","import { AxiosProgressEvent } from \"axios\";\r\nimport { createAxiosWithRetry } from \"../config/axios\";\r\n\r\nexport async function uploadFile(\r\n url: string,\r\n file: File | Blob,\r\n onProgress?: (percent: number) => void\r\n) {\r\n const formData = new FormData();\r\n formData.append(\"file\", file);\r\n\r\n const axiosInstance = createAxiosWithRetry(3, 500);\r\n\r\n return axiosInstance.post(url, formData, {\r\n headers: { \"Content-Type\": \"multipart/form-data\" },\r\n onUploadProgress: (e: AxiosProgressEvent) => {\r\n if (e.total) {\r\n const percent = Math.round((e.loaded * 100) / e.total);\r\n onProgress?.(percent);\r\n }\r\n },\r\n });\r\n}\r\n","import exchangeRates from \"./exchangeRates\";\nimport { uploadMultipleFiles } from \"./uploadMultiple\";\nimport { uploadFile } from \"./uploadSingle\";\n\nconst Tools = {\n\texchangeRates,\n\tuploadFile,\n\tuploadMultipleFiles\n};\n\nexport default Tools;\n","import type { AuthRequestParams } from \"../auth/types\";\r\nimport { linkiePost } from \"../config/axios\";\r\nimport handler from \"../config/handler\";\r\nimport { getUrl } from \"../config/route\";\r\nimport type { ShortenRequest } from \"./types\";\r\n\r\nconst shortUrl = (\r\n\tdata: ShortenRequest,\r\n\t{\r\n\t\tconfig,\r\n\t\tonFetching,\r\n\t\tonSuccess,\r\n\t\tonError,\r\n\t\tonSettled,\r\n\t}: {\r\n\t\tonFetching?: () => void;\r\n\t\tonSuccess?: (data: object) => void;\r\n\t\tonError?: (error: string) => void;\r\n\t\tonSettled?: () => void;\r\n\t\tconfig?: { params: AuthRequestParams };\r\n\t},\r\n) => {\r\n\treturn handler(linkiePost(getUrl(\"linkie\", \"v1\", \"shorten\", true), data, config), {\r\n\t\tonFetching: () => onFetching?.(),\r\n\t\tonError: (error) => onError?.(error),\r\n\t\tonSuccess: (data) => onSuccess?.(data),\r\n\t\tonSettled: () => onSettled?.(),\r\n\t});\r\n};\r\n\r\nexport default shortUrl;","// import cookie from \"js-cookie\";\n// import { jwtDecode } from \"jwt-decode\";\n// import type { NextPageContext } from \"next\";\n// import { getConfig } from \"../config/index\";\n// import { isAuth } from \"../utils/auth\";\n// import {\n// \tgetDataFromStorage,\n// \tsetDataInStorage,\n// \tsetEncryptionKey,\n// } from \"../utils/localStorage\";\nimport shortUrl from \"./shortUrl\";\n\nconst Linkie = {\n\tshortUrl\n};\n\nexport default Linkie;\n","import type { AuthRequestParams } from \"../auth/types\";\r\nimport { get } from \"../config/axios\";\r\nimport handler from \"../config/handler\";\r\nimport { getConfig } from \"../config\";\r\n\r\nconst getCities = (\r\n\t{\r\n\t\tconfig,\r\n\t\tonFetching,\r\n\t\tonSuccess,\r\n\t\tonError,\r\n\t\tonSettled\r\n\t}: {\r\n\t\tonFetching?: () => void;\r\n\t\tonSuccess?: (data: object) => void;\r\n\t\tonError?: (error: string) => void;\r\n\t\tonSettled?: () => void;\r\n\t\tconfig?: { params: AuthRequestParams };\r\n\t},\r\n) => {\r\n\treturn handler(get(`${getConfig().apisUrl}/api/countries/v1/city`, config), {\r\n\t\tonFetching: () => onFetching?.(),\r\n\t\tonError: (error) => onError?.(error),\r\n\t\tonSuccess: (data) => onSuccess?.(data),\r\n\t\tonSettled: () => onSettled?.(),\r\n\t});\r\n};\r\n\r\nexport default getCities;\r\n","import type { AuthRequestParams } from \"../auth/types\";\r\nimport { get } from \"../config/axios\";\r\nimport handler from \"../config/handler\";\r\nimport { getConfig } from \"../config\";\r\n\r\nconst getCountries = (\r\n\t{\r\n\t\tconfig,\r\n\t\tonFetching,\r\n\t\tonSuccess,\r\n\t\tonError,\r\n\t\tonSettled\r\n\t}: {\r\n\t\tonFetching?: () => void;\r\n\t\tonSuccess?: (data: object) => void;\r\n\t\tonError?: (error: string) => void;\r\n\t\tonSettled?: () => void;\r\n\t\tconfig?: { params: AuthRequestParams };\r\n\t},\r\n) => {\r\n\treturn handler(get(`${getConfig().apisUrl}/api/countries/v1`, config), {\r\n\t\tonFetching: () => onFetching?.(),\r\n\t\tonError: (error) => onError?.(error),\r\n\t\tonSuccess: (data) => onSuccess?.(data),\r\n\t\tonSettled: () => onSettled?.(),\r\n\t});\r\n};\r\n\r\nexport default getCountries;\r\n","import type { AuthRequestParams } from \"../auth/types\";\r\nimport { get } from \"../config/axios\";\r\nimport handler from \"../config/handler\";\r\nimport { getConfig } from \"../config/index\";\r\n\r\nconst getStates = (\r\n\t{\r\n\t\tconfig,\r\n\t\tonFetching,\r\n\t\tonSuccess,\r\n\t\tonError,\r\n\t\tonSettled\r\n\t}: {\r\n\t\tonFetching?: () => void;\r\n\t\tonSuccess?: (data: object) => void;\r\n\t\tonError?: (error: string) => void;\r\n\t\tonSettled?: () => void;\r\n\t\tconfig?: { params: AuthRequestParams };\r\n\t},\r\n) => {\r\n\treturn handler(get(`${getConfig().apisUrl}/api/countries/v1/state`, config), {\r\n\t\tonFetching: () => onFetching?.(),\r\n\t\tonError: (error) => onError?.(error),\r\n\t\tonSuccess: (data) => onSuccess?.(data),\r\n\t\tonSettled: () => onSettled?.(),\r\n\t});\r\n};\r\n\r\nexport default getStates;\r\n","import getCities from \"./cities\";\r\nimport getCountries from \"./countries\";\r\nimport getStates from \"./states\";\r\n\r\nconst Apis = {\r\n getCountries,\r\n getStates,\r\n getCities\r\n};\r\n\r\nexport default Apis;\r\n","import type { AuthRequestParams } from \"../auth/types\";\r\nimport { post } from \"../config/axios\";\r\nimport handler from \"../config/handler\";\r\nimport { getUrl } from \"../config/route\";\r\n\r\nconst addResume = (\r\n\tdata: any,\r\n\t{\r\n\t\tconfig,\r\n\t\tonFetching,\r\n\t\tonSuccess,\r\n\t\tonError,\r\n\t\tonSettled\r\n\t}: {\r\n\t\tonFetching?: () => void;\r\n\t\tonSuccess?: (data: object) => void;\r\n\t\tonError?: (error: string) => void;\r\n\t\tonSettled?: () => void;\r\n\t\tconfig?: { params: AuthRequestParams };\r\n\t}\r\n) => {\r\n\treturn handler(post(getUrl(\"hr\", \"v1\", \"resume\"), data, config), {\r\n\t\tonFetching: () => onFetching?.(),\r\n\t\tonError: (error) => onError?.(error),\r\n\t\tonSuccess: (data) => onSuccess?.(data),\r\n\t\tonSettled: () => onSettled?.(),\r\n\t});\r\n};\r\n\r\nexport default addResume;\r\n","import type { AuthRequestParams } from \"../auth/types\";\nimport { put } from \"../config/axios\";\nimport handler from \"../config/handler\";\nimport { getUrl } from \"../config/route\";\nimport type { Job } from \"./types\";\n\nconst postJob = (\n\tdata: Job,\n\t{\n\t\tconfig,\n\t\tonFetching,\n\t\tonSuccess,\n\t\tonError,\n\t\tonSettled\n\t}: {\n\t\tonFetching?: () => void;\n\t\tonSuccess?: (data: object) => void;\n\t\tonError?: (error: string) => void;\n\t\tonSettled?: () => void;\n\t\tconfig?: { params: AuthRequestParams };\n\t}\n) => {\n\treturn handler(put(getUrl(\"hr\", \"v1\", \"job\"), data, config), {\n\t\tonFetching: () => onFetching?.(),\n\t\tonError: (error) => onError?.(error),\n\t\tonSuccess: (data) => onSuccess?.(data),\n\t\tonSettled: () => onSettled?.(),\n\t});\n};\n\nexport default postJob;\n","import { get } from \"../config/axios\";\nimport { getUrl } from \"../config/route\";\nimport postResume from \"./add_resume\";\nimport postJob from \"./post_job\";\n\nconst Hr = {\n\tgetJobById: (id: string) =>\n\t\tget(getUrl(\"hr\", \"v1\", \"job\"), {\n\t\t\tparams: {\n\t\t\t\tid,\n\t\t\t},\n\t\t}),\n\tgetJobs: (id?: string) =>\n\t\tget(getUrl(\"hr\", \"v1\", \"jobs\"), {\n\t\t\tparams: {\n\t\t\t\tid,\n\t\t\t},\n\t\t}),\n\tpostJob,\n\tpostResume\n};\n\n\nexport type { Job } from \"./types\";\nexport default Hr;\n","import type { AuthRequestParams } from \"../auth/types\";\nimport { lmsPost } from \"../config/axios\";\nimport handler from \"../config/handler\";\nimport { getUrl } from \"../config/route\";\nimport type { Job } from \"./types\";\n\nconst postCourse = (\n\tdata: Job,\n\t{\n\t\tconfig,\n\t\tonFetching,\n\t\tonSuccess,\n\t\tonError,\n\t\tonSettled\n\t}: {\n\t\tonFetching?: () => void;\n\t\tonSuccess?: (data: object) => void;\n\t\tonError?: (error: string) => void;\n\t\tonSettled?: () => void;\n\t\tconfig?: { params: AuthRequestParams };\n\t}\n) => {\n\treturn handler(lmsPost(getUrl(\"lms\", \"v1\", \"courses\", true), data, config), {\n\t\tonFetching: () => onFetching?.(),\n\t\tonError: (error) => onError?.(error),\n\t\tonSuccess: (data) => onSuccess?.(data),\n\t\tonSettled: () => onSettled?.(),\n\t});\n};\n\nexport default postCourse;\n","import { lmsGet } from \"../config/axios\";\nimport { getUrl } from \"../config/route\";\nimport postCourse from \"./post_course\";\n\nconst LMS = {\n\tgetCourseById: (id: string) =>\n\t\tlmsGet(getUrl(\"lms\", \"v1\", \"course\", true), {\n\t\t\tparams: {\n\t\t\t\tid,\n\t\t\t},\n\t\t}),\n\tgetCourses: () =>\n\t\tlmsGet(getUrl(\"lms\", \"v1\", \"courses\", true), {\n\t\t\tparams: {\n\t\t\t},\n\t\t}),\n\tgetMyCourses: () =>\n\t\tlmsGet(getUrl(\"lms\", \"v1\", \"myCourses\", true), {\n\t\t\tparams: {\n\t\t\t},\n\t\t}),\n\tgetEnrollStudents: () =>\n\t\tlmsGet(getUrl(\"lms\", \"v1\", \"getEnrollStudents\", true), {\n\t\t\tparams: {\n\t\t\t},\n\t\t}),\n\tpostCourse\n};\n\n\nexport type { Job } from \"./types\";\nexport default LMS;\n"],"names":["handler","signIn","signUp","cookie","postResume"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/config/validate.ts","../src/config/index.ts","../src/utils/auth.ts","../src/utils/localStorage.ts","../src/config/constants.ts","../src/config/axios.ts","../src/config/handler.ts","../src/account/endpoint.ts","../src/accounting/endpoint.ts","../src/assets/endpoint.ts","../src/auth/endpoint.ts","../src/content/endpoint.ts","../src/hr/endpoint.ts","../src/inventory/endpoint.ts","../src/linkie/endpoint.ts","../src/lms/endpoint.ts","../src/payment/endpoint.ts","../src/sales/endpoint.ts","../src/support/endpoint.ts","../src/tools/endpoint.ts","../src/config/route.ts","../src/auth/logout.ts","../src/auth/register.ts","../src/auth/signup.ts","../src/auth/signInWithGoogle.ts","../src/auth/signin.ts","../src/auth/authWithToken.ts","../src/auth/authWithKey.ts","../src/auth/resetPassword.ts","../src/auth/index.ts","../src/order/create.ts","../src/order/index.ts","../src/utils/handler.ts","../src/payment/start.ts","../src/payment/verify.ts","../src/payment/index.ts","../src/content/index.ts","../src/accounting/createInvoice.ts","../src/accounting/submitInvoice.ts","../src/accounting/updateInvoice.ts","../src/accounting/index.ts","../src/support/feedback.ts","../src/support/newsletter.ts","../src/support/ticket.ts","../src/support/index.ts","../src/assets/index.ts","../src/account/update_profile.ts","../src/account/verify_subsciption.ts","../src/account/index.ts","../src/utils/share.ts","../src/sales/lead.ts","../src/sales/index.ts","../src/inventory/index.ts","../src/tools/exchangeRates.ts","../src/tools/uploadMultiple.ts","../src/tools/uploadSingle.ts","../src/tools/index.ts","../src/linkie/shortUrl.ts","../src/linkie/index.ts","../src/apis/cities.ts","../src/apis/countries.ts","../src/apis/states.ts","../src/apis/index.ts","../src/hr/add_resume.ts","../src/hr/post_job.ts","../src/hr/index.ts","../src/lms/post_course.ts","../src/lms/index.ts"],"sourcesContent":["// validateConfig\r\nimport { getConfig } from './index';\r\n\r\ntype Config = ReturnType<typeof getConfig>;\r\n\r\nfunction validateConfig(requiredKeys: (keyof Config)[]) {\r\n const config = getConfig();\r\n\r\n const missingKeys = requiredKeys.filter((key) => {\r\n return !config[key]; // null, undefined, empty string → treated as missing\r\n });\r\n\r\n if (missingKeys.length > 0) {\r\n throw new Error(\r\n `SDK configuration error: Missing required config value(s): ${missingKeys.join(', ')}\\n` +\r\n '👉 Please ensure these keys are set using setConfig({ ... }) before making requests.'\r\n );\r\n }\r\n}\r\n\r\nexport default validateConfig;\r\n","import { default as firebase } from \"firebase/compat/app\";\r\nimport validateConfig from \"./validate\";\r\n\r\n// config.ts\r\nexport type Config = {\r\n apiKey: string | null;\r\n apiUrl: string;\r\n lmsUrl: string;\r\n linkieUrl?: string;\r\n appUrl: string;\r\n apisUrl: string;\r\n tokenKey: string;\r\n environment: string;\r\n firebase?: FirebaseConfig\r\n};\r\n\r\nexport interface FirebaseConfig {\r\n apiKey?: string;\r\n authDomain?: string;\r\n projectId?: string;\r\n storageBucket?: string;\r\n messagingSenderId?: string;\r\n appId?: string;\r\n measurementId?: string;\r\n}\r\n\r\nlet config: Config = {\r\n tokenKey: '',\r\n apiKey: null,\r\n apiUrl: 'https://api.helpdice.com',\r\n appUrl: '',\r\n apisUrl: 'https://apis.helpdice.com',\r\n lmsUrl: 'https://lms.helpdice.com',\r\n environment: 'production',\r\n firebase: undefined\r\n};\r\n\r\nexport function initializeSDK(newConfig: Partial<Config>) {\r\n config = { ...config, ...newConfig };\r\n validateConfig(['apiKey', 'tokenKey']);\r\n}\r\n\r\nexport function getFirebase() {\r\n validateConfig(['firebase']);\r\n const appConfig = getConfig();\r\n if (appConfig.firebase) {\r\n // if (firebase?.default != undefined) {\r\n // return firebase.default.initializeApp(appConfig.firebase)\r\n // }\r\n return firebase.initializeApp(appConfig.firebase)\r\n }\r\n throw new Error(\r\n `SDK configuration error: Firebase is not configured properly`\r\n );\r\n}\r\n\r\nexport function getConfig(): Config {\r\n return config;\r\n}\r\n","import Cookies from \"js-cookie\";\n// import type { NextPageContext } from \"next\";\n// import { parseCookies } from \"nookies\";\nimport { getConfig } from \"../config\";\n\nexport const getCookie = (\n\tkey = getConfig().tokenKey,\n): string | undefined => {\n\t// console.log(Cookies.get(key));\n\tif (key) return Cookies.get(key);\n\treturn \"\";\n};\n\nexport const isAuth = () => !!getCookie();\n\n// export const getServerSideToken = (ctx: NextPageContext) => {\n// \tconst { token } = parseCookies(ctx);\n// \treturn token;\n// };\n","import CryptoJS from \"crypto-js\";\n\n/**\n * Function to set encryption key\n * @param {string} key - encryption key name\n * @param {string} value string value to be set as encryption key\n */\nexport function setEncryptionKey(key: string, value: string) {\n\tif (key && value) {\n\t\tconst sha256Key = CryptoJS.SHA256(key).toString();\n\t\t// console.log('setting key: ', key, value);\n\t\tconst sha256Data = CryptoJS.SHA256(value).toString();\n\n\t\tlocalStorage.setItem(sha256Key, JSON.stringify(sha256Data));\n\t} else {\n\t\tconsole.error(\"No data provided\");\n\t}\n}\n\n/**\n * function to get the encryption key\n * @param {string} - name of the key to get encryption key for\n * @returns {string}\n */\n// eslint-disable-next-line consistent-return\nexport function getEncryptionKey(key: string) {\n\ttry {\n\t\tconst shaKey = CryptoJS.SHA256(key).toString();\n\t\t// console.log('getting key: ', key, localStorage.getItem(shaKey));\n\t\treturn localStorage.getItem(shaKey);\n\t} catch (err) {\n\t\tconsole.error(\"something went wrong man hoho\");\n\t}\n}\n\nexport function daysCountInMonth(month: number, year: number) {\n\treturn new Date(year, month, 0).getDate();\n}\n\n/**\n * Funtion to store data in local storage\n * Pass second argument as true if setting data for employee side\n * @param {string} key key for the value to be stored\n * @param {*} data actual data to be stored with the provided key\n * @param {boolean} [useEmployeeKey] - flag to decide which encyption key to use, (employee's or admin's)\n */\nexport function setDataInStorage(key: string, data: string | object) {\n\t// Encrypt key\n\tconst shaKey = CryptoJS.SHA256(key).toString();\n\n\tconst encKeyName = \"account_key\";\n\n\tconst encryptionKey = getEncryptionKey(encKeyName);\n\n\t// console.log('setting data: ', encryption_key, key, shaKey, data);\n\n\tif (encryptionKey) {\n\t\t// Encrypt data\n\t\tconst dataCipher = CryptoJS.AES.encrypt(\n\t\t\tJSON.stringify(data),\n\t\t\tencryptionKey,\n\t\t).toString();\n\n\t\tlocalStorage.setItem(shaKey, JSON.stringify(dataCipher));\n\t}\n}\n\n/**\n * Function to get data from local storage\n * Pass second argument as true if getting data for employee side\n * @param {string} key - key of the item to fetch from local storage\n * @param {boolean} [useEmployeeKey] - flag to decide which encyption key to use, (employee's or admin's)\n * @returns {*} value associated with the key\n */\n// eslint-disable-next-line consistent-return\nexport function getDataFromStorage(key: string) {\n\ttry {\n\t\tconst shaKey = CryptoJS.SHA256(key).toString();\n\n\t\tconst encKeyName = \"account_key\";\n\n\t\tconst encryptionKey = getEncryptionKey(encKeyName);\n\n\t\t// console.log(\n\t\t// 'from getting data: ',\n\t\t// key,\n\t\t// 'encryption-key',\n\t\t// typeof encryption_key,\n\t\t// encryption_key\n\t\t// );\n\t\tif (encryptionKey && shaKey) {\n\t\t\tconst ciphertext = JSON.parse(String(localStorage.getItem(shaKey)));\n\t\t\tif (ciphertext) {\n\t\t\t\t// Decrypt\n\t\t\t\tconst bytes = CryptoJS.AES.decrypt(ciphertext, encryptionKey);\n\t\t\t\tconst originalData = bytes.toString(CryptoJS.enc.Utf8);\n\t\t\t\t// console.log('getting data: ', key, shaKey, originalData);\n\t\t\t\treturn JSON.parse(originalData);\n\t\t\t}\n\t\t}\n\t} catch (err) {\n\t\t// console.error('Error getting data from storage boi boi');\n\t}\n}\n\n/**\n * Function to clear items from local storage\n * @param {(string|string[])} keys - key to remove or array of keys\n */\n// export function clearStorage(keys: string[]) {\n// \ttry {\n// \t\tif (Array.isArray(keys)) {\n// \t\t\tkeys.forEach((key) => {\n// \t\t\t\tconst shaKey = CryptoJS.SHA256(key).toString();\n// \t\t\t\tlocalStorage.removeItem(shaKey);\n// \t\t\t});\n// \t\t} else if (typeof keys === \"string\") {\n// \t\t\tconst shaKey = CryptoJS.SHA256(keys).toString();\n// \t\t\tlocalStorage.removeItem(shaKey);\n// \t\t}\n// \t} catch (err) {\n// \t\tconsole.error(\"Error clearing storage\", err);\n// \t}\n// }\nexport function clearStorage(keys: string[]) {\n\ttry {\n\t\tif (Array.isArray(keys)) {\n\t\t\tfor (const key of keys) {\n\t\t\t\tconst shaKey = CryptoJS.SHA256(key).toString();\n\t\t\t\tlocalStorage.removeItem(shaKey);\n\t\t\t}\n\t\t} else if (typeof keys === \"string\") {\n\t\t\tconst shaKey = CryptoJS.SHA256(keys).toString();\n\t\t\tlocalStorage.removeItem(shaKey);\n\t\t}\n\t} catch (err) {\n\t\tconsole.error(\"Error clearing storage\", err);\n\t}\n}\n","export const SITE_NAME = \"Helpdice\";\nexport const TOKEN_KEY = \"access-token\";\nexport const REFRESH_TOKEN_KEY = \"refresh-token\";\nexport const TOKEN_THRESHOLD_KEY = \"access-token-threshold\";\n\nexport const AD_CLIENT = \"ca-pub-7034818195807373\";\n\n/* eslint-disable */\nexport const EMAIL_REGEX =\n\t/(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])/;\nexport const PASSWORD_REGEX = /.{8,}/;\n/* eslint-enable */\n","import type { AxiosInstance, AxiosRequestConfig, AxiosResponse } from \"axios\";\nimport axios from \"axios\";\n\nimport {\n\tREFRESH_TOKEN_KEY,\n\tTOKEN_KEY,\n\t// TOKEN_THRESHOLD_KEY,\n} from \"./constants\";\n\n// import { handleItem, setThreshold } from './local-storage';\n// import { handleItem, setThreshold } from './local-storage';\nimport type { AuthRequest, SignupRequest } from \"../auth/types\";\nimport { getCookie } from \"../utils/auth\";\nimport { getConfig } from \"./index\";\nimport validateConfig from \"./validate\";\n\nfunction YYYY_MM_DD(timestamp: number | string) {\n const date = new Date(timestamp);\n\n const year = date.getFullYear();\n const month = String(date.getMonth() + 1).padStart(2, '0');\n const day = String(date.getDate()).padStart(2, '0');\n\n return `${year}-${month}-${day}`;\n}\n\nexport function createAxiosWithRetry(\n retries = 3,\n retryDelay = 500\n): AxiosInstance {\n const instance = axios.create();\n\n instance.interceptors.response.use(\n (res) => res,\n async (error) => {\n let config = error.config;\n\n if (!config || !retries) return Promise.reject(error);\n\n config.__retryCount = config.__retryCount || 0;\n\n if (config.__retryCount >= retries) {\n return Promise.reject(error);\n }\n\n config.__retryCount++;\n\n // Exponential backoff\n const delay = retryDelay * Math.pow(2, config.__retryCount);\n\n await new Promise((resolve) => setTimeout(resolve, delay));\n\n return instance(config);\n }\n );\n return instance;\n}\n\nexport const http = axios.create({\n\twithCredentials: true,\n\theaders: {\n\t\t\"Access-Control-Allow-Origin\": \"*\",\n\t\t\"Content-Type\": \"application/json\",\n\t},\n});\n\nhttp.interceptors.request.use((config) => {\n\tvalidateConfig(['apiKey', 'apiUrl']);\n\tconst { apiUrl } = getConfig();\n\tconfig.baseURL = apiUrl;\n\tif (config.headers) {\n\t\tconfig.headers[\"Content-Type\"] = \"application/json\";\n\t\tconfig.headers['TODAY'] = YYYY_MM_DD(Date.now());\n\t\tconfig.headers.Authorization = `Bearer ${getCookie()}` || \"\";\n\t\tconfig.headers[\"HB-API-KEY\"] =\n\t\t\t`Bearer ${getConfig().apiKey}` || \"\";\n\t}\n\treturn config;\n}, Promise.reject);\n\nexport const post = (\n\tendpoint: string,\n\tdata?: unknown,\n\tconfig?: AxiosRequestConfig<unknown>,\n): Promise<AxiosResponse> =>\n\tnew Promise((resolve, reject) =>\n\t\thttp\n\t\t\t.post(endpoint, data, config)\n\t\t\t.then(resolve)\n\t\t\t.catch((e) => reject(e.response?.data)),\n\t);\n\nexport const put = (\n\tendpoint: string,\n\tdata?: unknown,\n\tconfig?: AxiosRequestConfig<unknown>,\n): Promise<AxiosResponse> =>\n\tnew Promise((resolve, reject) =>\n\t\thttp\n\t\t\t.put(endpoint, data, config)\n\t\t\t.then(resolve)\n\t\t\t.catch((e) => reject(e.response?.data)),\n\t);\n\nexport const get = (\n\tendpoint: string,\n\tconfig?: AxiosRequestConfig<unknown>,\n): Promise<AxiosResponse> => {\n\t// console.log('Get Request Config :', config);\n\treturn new Promise((resolve, reject) =>\n\t\thttp\n\t\t\t.get(endpoint, config)\n\t\t\t.then(resolve)\n\t\t\t.catch((e) => reject(e.response?.data)),\n\t);\n};\n\nexport const patch = <T>(endpoint: string, data: T): Promise<AxiosResponse> =>\n\tnew Promise((resolve, reject) =>\n\t\thttp\n\t\t\t.patch(endpoint, data)\n\t\t\t.then(resolve)\n\t\t\t.catch((e) => reject(e.response.data)),\n\t);\n\nexport const login = (data: AuthRequest): Promise<AxiosResponse> =>\n\tpost(\"passport/basic/login\", data);\n\nexport const logout = (): Promise<AxiosResponse> => post(\"user/logout\");\n\nexport const passwordReset = (\n\tdata: Partial<AuthRequest>,\n): Promise<AxiosResponse> => post(\"user/reset-password\", data);\n\nexport const signup = (data: SignupRequest): Promise<AxiosResponse> =>\n\tpost(\"passport/basic/signup\", data);\n\n\n\n/* ======================================================================================================= */\n/* ------------------------------------ For Linkie App --------------------------------------------------- */\n/* ======================================================================================================= */\n\nexport const chttp = axios.create({\n\twithCredentials: true,\n\theaders: {\n\t\t\"Access-Control-Allow-Origin\": \"*\",\n\t\t\"Content-Type\": \"application/json\",\n\t},\n});\n\nchttp.interceptors.request.use((config) => {\n\tvalidateConfig(['apiKey', 'tokenKey', 'linkieUrl']);\n\tconst { linkieUrl } = getConfig();\n\tconfig.baseURL = linkieUrl;\n\tif (config.headers) {\n\t\tconfig.headers[\"Content-Type\"] = \"application/json\";\n\t\tconfig.headers['TODAY'] = YYYY_MM_DD(Date.now());\n\t\tconfig.headers.Authorization = localStorage.getItem(TOKEN_KEY) || \"\";\n\t\tconfig.headers[\"HB-API-KEY\"] =\n\t\t\t`Bearer ${getConfig().apiKey}` || \"\";\n\t}\n\treturn config;\n}, Promise.reject);\n\n\n// chttp.interceptors.response.use(\n// \t(response) => response,\n// \tasync (error) => {\n// \t\tif (error.code === \"ERR_NETWORK\") {\n// \t\t\treturn Promise.reject(error);\n// \t\t}\n\n// \t\tconst refreshToken = localStorage.getItem(REFRESH_TOKEN_KEY);\n\n// \t\tif (!refreshToken) {\n// \t\t\treturn Promise.reject(error);\n// \t\t}\n\n// \t\t// const originalRequest = error.config;\n\n// \t\t// if (error.response.status === 401 && !originalRequest._retry) {\n// \t\t// originalRequest._retry = true;\n\n// \t\t// if (http.defaults.headers) {\n// \t\t// http.defaults.headers.Authorization = `Bearer ${refreshToken}`;\n// \t\t// }\n\n// \t\t// try {\n// \t\t// const res = await post('auth/token');\n// \t\t// const { access_token, threshold } = res.data;\n\n// \t\t// // handleItem(TOKEN_KEY, access_token);\n// \t\t// // handleItem(TOKEN_THRESHOLD_KEY, setThreshold(threshold));\n\n// \t\t// if (http.defaults.headers) {\n// \t\t// http.defaults.headers.Authorization = access_token;\n// \t\t// }\n// \t\t// return await http(originalRequest);\n// \t\t// } catch (reason) {\n// \t\t// return Promise.reject(reason);\n// \t\t// }\n// \t\t// }\n\n// \t\treturn Promise.reject(error);\n// \t},\n// );\n\nexport const linkiePost = (\n\tendpoint: string,\n\tdata?: unknown,\n\tconfig?: AxiosRequestConfig<unknown>,\n): Promise<AxiosResponse> =>\n\tnew Promise((resolve, reject) =>\n\t\tchttp\n\t\t\t.post(endpoint, data, config)\n\t\t\t.then(resolve)\n\t\t\t.catch((e) => reject(e.response?.data)),\n\t);\n\n\n/* ======================================================================================================= */\n/* ------------------------------------ For LMS App --------------------------------------------------- */\n/* ======================================================================================================= */\n\nexport const lhttp = axios.create({\n\twithCredentials: true,\n\theaders: {\n\t\t\"Access-Control-Allow-Origin\": \"*\",\n\t\t\"Content-Type\": \"application/json\",\n\t},\n});\n\nlhttp.interceptors.request.use((config) => {\n\tvalidateConfig(['apiKey', 'tokenKey', 'lmsUrl']);\n\tconst { lmsUrl } = getConfig();\n\tconfig.baseURL = lmsUrl;\n\tif (config.headers) {\n\t\tconfig.headers[\"Content-Type\"] = \"application/json\";\n\t\tconfig.headers['TODAY'] = YYYY_MM_DD(Date.now());\n\t\tconfig.headers.Authorization = localStorage.getItem(TOKEN_KEY) || \"\";\n\t\tconfig.headers[\"HB-API-KEY\"] = `Bearer ${getConfig().apiKey}` || \"\";\n\t}\n\treturn config;\n}, Promise.reject);\n\nexport const lmsPost = (\n\tendpoint: string,\n\tdata?: unknown,\n\tconfig?: AxiosRequestConfig<unknown>\n): Promise<AxiosResponse> =>\n\tnew Promise((resolve, reject) =>\n\t\tlhttp\n\t\t\t.post(endpoint, data, config)\n\t\t\t.then(resolve)\n\t\t\t.catch((e) => reject(e.response?.data)),\n\t);\n\nexport const lmsPut = (\n\tendpoint: string,\n\tdata?: unknown,\n\tconfig?: AxiosRequestConfig<unknown>\n): Promise<AxiosResponse> =>\n\tnew Promise((resolve, reject) =>\n\t\tlhttp\n\t\t\t.put(endpoint, data, config)\n\t\t\t.then(resolve)\n\t\t\t.catch((e) => reject(e.response?.data)),\n\t);\n\nexport const lmsGet = (\n\tendpoint: string,\n\tconfig?: AxiosRequestConfig<unknown>\n): Promise<AxiosResponse> => {\n\t// console.log('Get Request Config :', config);\n\treturn new Promise((resolve, reject) =>\n\t\tlhttp\n\t\t\t.get(endpoint, config)\n\t\t\t.then(resolve)\n\t\t\t.catch((e) => reject(e.response?.data)),\n\t);\n};\n\nexport const lmsPatch = <T>(endpoint: string, data: T): Promise<AxiosResponse> =>\n\tnew Promise((resolve, reject) =>\n\t\tlhttp\n\t\t\t.patch(endpoint, data)\n\t\t\t.then(resolve)\n\t\t\t.catch((e) => reject(e.response.data)),\n\t);\n\nexport const App = {\n\tget,\n\tpost,\n\tput,\n\tpatch\n};\n","import type { AxiosResponse } from \"axios\";\n\n// Define the type for the callbacks object\nexport interface Callbacks {\n\tonFetching?: () => void;\n\tonSuccess?: (response: {\n\t\tdata: object;\n\t\tstatus: number;\n\t\tstatusText: string;\n\t}) => void;\n\tonError?: (error: string) => void;\n\tonSettled?: () => void;\n}\n\n// The fetchDataWithCallbacks function that accepts a Promise and a callbacks object\nasync function handler(promise: Promise<AxiosResponse>, callbacks?: Callbacks) {\n\t// Destructure callbacks from the object\n\tconst { onFetching, onSuccess, onError, onSettled } = callbacks ?? {};\n\n\t// Call the onFetching callback before making the request\n\tif (onFetching) onFetching();\n\n\t// Handle the Promise passed as an argument\n\tpromise\n\t\t.then(\n\t\t\t(response: {\n\t\t\t\tdata: object;\n\t\t\t\tstatus: number;\n\t\t\t\tstatusText: string;\n\t\t\t}) => {\n\t\t\t\t// Call the onSuccess callback if the Promise resolves successfully\n\t\t\t\tif (onSuccess)\n\t\t\t\t\tonSuccess({\n\t\t\t\t\t\tdata: response.data,\n\t\t\t\t\t\tstatus: response.status,\n\t\t\t\t\t\tstatusText: response.statusText,\n\t\t\t\t\t});\n\t\t\t},\n\t\t)\n\t\t.catch((error) => {\n\t\t\t// Call the onError callback if the Promise is rejected\n\t\t\tif (onError) onError(error);\n\t\t})\n\t\t.finally(() => {\n\t\t\t// Call the onSettled callback after the Promise is settled\n\t\t\tif (onSettled) onSettled();\n\t\t});\n}\n\nexport default handler;\n","const account = {\n\tv1: {\n\t\tprofile: \"profile\",\n\t\tverify_subscription: \"subscription/status\"\n\t},\n};\n\nexport default account;\n","const accounting = {\n\tv1: {\n\t\titem: \"item\",\n\t\titems: \"items\",\n\t\tinvoice: \"invoice\",\n\t\tsubmit_invoice: \"invoice/submit\",\n\t\tinvoices: \"invoices\",\n\t\titem_categories: \"item/category\",\n\t\titem_brands: \"item/brand\",\n\t},\n};\n\nexport default accounting;\n","const assets = {\n\tv1: {\n\t\timagePlaceholder: \"images/image-placeholder.webp\",\n\t\tavatar: \"images/avatar.webp\",\n\t},\n};\n\nexport default assets;\n","const auth = {\n\tv1: {\n\t\tsignin: \"signin\",\n\t\tregister: \"signup\",\n\t\tsignup: \"register\",\n\t\tlogout: \"logout\",\n\t\tauth_with_token: \"authenticate\",\n\t\tauth_with_key: \"verify\",\n\t\treset_password: \"recovery-password\",\n\t\tchange_password: \"change-password\"\n\t},\n};\n\nexport default auth;\n","const cms = {\n\tv1: {\n\t\tarticle: \"article\",\n\t\tarticles: \"articles\",\n\t\tarticleCategories: \"article/categories\",\n\t\tmcq: \"mcq\",\n\t\tmcqs: \"mcqs\",\n\t\tall_mcqs: \"mcqs/all\",\n\t\tmcqCategories: \"mcq/categories\",\n\t\tqna: \"qna\",\n\t\tqnas: \"qnas\",\n\t\tqnaCategories: \"qna/categories\",\n\t},\n};\n\nexport default cms;\n","const hr = {\n\tv1: {\n\t\tjob: \"job\",\n\t\tjobs: \"jobs\",\n\t\tresume: \"resume\"\n\t},\n};\n\nexport default hr;\n","const inventory = {\n\tv1: {\n\t\tstore: \"store\",\n\t\tstore_products: \"store/products\",\n\t},\n};\n\nexport default inventory;\n","const linkie = {\n\tv1: {\n\t\tshorten: \"shorten\",\n\t},\n};\n\nexport default linkie;\n","const lms = {\n\tv1: {\n\t\tcourses: \"courses\",\n\t\tcourse: \"courses/course\",\n\t\tmyCourses: \"enrollments/my-courses\",\n\t\tenrollCourse: \"enrollments\",\n\t\tgetEnrollStudents: \"enrollments/course\"\n\t}\n};\n\nexport default lms;\n","const payment = {\n\tv1: {\n\t\tcreate: \"\",\n\t\tverify: \"verify\",\n\t},\n};\n\nexport default payment;\n","const sales = {\r\n\tv1: {\r\n\t\taddLead: \"lead\"\r\n\t},\r\n};\r\n\r\nexport default sales;\r\n","const support = {\n\tv1: {\n\t\tticket: \"ticket\",\n\t\ttickets: \"tickets\",\n\t\tnewsletter: \"newsletter\",\n\t\tfeedback: \"feedback\"\n\t}\n};\n\nexport default support;\n","const tools = {\n\tv1: {\n\t\texchangeRates: \"exchange-rates\",\n\t},\n};\n\nexport default tools;\n","import account from \"../account/endpoint\";\nimport accounting from \"../accounting/endpoint\";\nimport assets from \"../assets/endpoint\";\nimport auth from \"../auth/endpoint\";\nimport cms from \"../content/endpoint\";\nimport hr from \"../hr/endpoint\";\nimport inventory from \"../inventory/endpoint\";\nimport linkie from \"../linkie/endpoint\";\nimport lms from \"../lms/endpoint\";\nimport payment from \"../payment/endpoint\";\nimport sales from \"../sales/endpoint\";\nimport support from \"../support/endpoint\";\nimport tools from \"../tools/endpoint\";\n\ninterface CategoryUrls {\n\t[version: string]: {\n\t\t[action: string]: string;\n\t};\n}\n\ninterface Urls {\n\t[category: string]: CategoryUrls;\n}\n\nconst urls: Urls = {\n\tauth,\n\tcms,\n\taccount,\n\taccounting,\n\tsupport,\n\tassets,\n\tpayment,\n\tinventory,\n\ttools,\n\tsales,\n\tlinkie,\n\thr,\n\tlms\n};\n\n// Function to get the URL dynamically based on category, version, and action\nexport function getUrl(\n\tcategory: string,\n\tversion: string,\n\taction: string,\n\tomitCategory: boolean = false\n): string {\n\tconst categoryData = urls[category]; // Access the correct category dynamically\n\tif (categoryData) {\n\t\tconst versionData = categoryData[version]; // Access the correct version dynamically\n\t\t// console.log(versionData?.[action]);\n\t\tif (versionData !== undefined) {\n\t\t\t// console.log(versionData[action]);\n\t\t\tif (omitCategory) {\n\t\t\t\treturn `/api/${version}/${versionData[action]}`;\n\t\t\t}\n\t\t\treturn `/api/${version}/${category}/${versionData[action]}`; // Construct the URL\n\t\t}\n\t\tthrow new Error(\n\t\t\t`Invalid action: ${action} for version: ${version} in category: ${category}`,\n\t\t);\n\t}\n\tthrow new Error(`Invalid category: ${category}`);\n}\n","import { post } from \"../config/axios\";\nimport handler from \"../config/handler\";\nimport { getUrl } from \"../config/route\";\nimport { clearStorage, getDataFromStorage } from \"../utils/localStorage\";\n\nconst logout = (\n\tdata: { data?: unknown },\n\t{\n\t\tconfig,\n\t\tonFetching,\n\t\tonSuccess,\n\t\tonError,\n\t\tonSettled,\n\t}: {\n\t\tonFetching?: () => void;\n\t\tonSuccess?: (data: object) => void;\n\t\tonError?: (error: string) => void;\n\t\tonSettled?: () => void;\n\t\tconfig?: { params: unknown };\n\t},\n) => {\n\treturn handler(\n\t\tpost(\n\t\t\tgetUrl(\"auth\", \"v1\", \"logout\"),\n\t\t\t{ ...data, fcm_token: getDataFromStorage(\"fcm_token\") },\n\t\t\tconfig,\n\t\t),\n\t\t{\n\t\t\tonFetching: () => onFetching?.(),\n\t\t\tonError: (error) => onError?.(error),\n\t\t\tonSuccess: (data) => {\n\t\t\t\tclearStorage([\"accountAccessToken\", \"accountInfo\", \"account_key\"]);\n\t\t\t\tonSuccess?.(data);\n\t\t\t\twindow.location.href = \"/\";\n\t\t\t},\n\t\t\tonSettled: () => onSettled?.(),\n\t\t},\n\t);\n};\n\nexport default logout;\n","import { post } from \"../config/axios\";\nimport handler from \"../config/handler\";\nimport { getUrl } from \"../config/route\";\nimport type { AuthRequestParams, SignupRequest } from \"./types\";\n\nconst register = (\n\tdata: SignupRequest,\n\t{\n\t\tconfig,\n\t\tonFetching,\n\t\tonSuccess,\n\t\tonError,\n\t\tonSettled,\n\t}: {\n\t\tonFetching?: () => void;\n\t\tonSuccess?: (data: object) => void;\n\t\tonError?: (error: string) => void;\n\t\tonSettled?: () => void;\n\t\tconfig?: { params: AuthRequestParams };\n\t},\n) => {\n\treturn handler(post(getUrl(\"auth\", \"v1\", \"register\"), data, config), {\n\t\tonFetching: () => onFetching?.(),\n\t\tonError: (error) => onError?.(error),\n\t\tonSuccess: (data) => onSuccess?.(data),\n\t\tonSettled: () => onSettled?.(),\n\t});\n};\n\nexport default register;\n","import { post } from \"../config/axios\";\nimport handler from \"../config/handler\";\nimport { getUrl } from \"../config/route\";\nimport type { AuthRequestParams, SignupRequest } from \"./types\";\n\nconst signup = (\n\tdata: SignupRequest,\n\t{\n\t\tconfig,\n\t\tonFetching,\n\t\tonSuccess,\n\t\tonError,\n\t\tonSettled,\n\t}: {\n\t\tonFetching?: () => void;\n\t\tonSuccess?: (data: object) => void;\n\t\tonError?: (error: string) => void;\n\t\tonSettled?: () => void;\n\t\tconfig?: { params: AuthRequestParams };\n\t},\n) => {\n\treturn handler(post(getUrl(\"auth\", \"v1\", \"signup\"), data, config), {\n\t\tonFetching: () => onFetching?.(),\n\t\tonError: (error) => onError?.(error),\n\t\tonSuccess: (data) => onSuccess?.(data),\n\t\tonSettled: () => onSettled?.(),\n\t});\n};\n\nexport default signup;\n","// import signin from \"./signin\";\nimport { GoogleAuthProvider, getAuth, signInWithPopup } from \"firebase/auth\";\nimport signup from \"./signup\";\nimport { getFirebase } from \"../config/index\";\n\ntype SignInGoogleProps = {\n\tonFetching?: () => void;\n\tonSuccess?: (data: object) => void;\n\tonError?: (error: unknown | string) => void;\n\tonSettled?: () => void;\n};\n\n// Function to handle Google Sign-In\nasync function signInWithGoogle({\n\tonSuccess,\n\tonError,\n\tonFetching,\n\tonSettled,\n}: SignInGoogleProps): Promise<void> {\n\ttry {\n\t\tconst provider = new GoogleAuthProvider();\n\t\tconst auth = getAuth(getFirebase());\n\t\tsignInWithPopup(auth, provider)\n\t\t\t.then((result) => {\n\t\t\t\t// This gives you a Google Access Token. You can use it to access the Google API.\n\t\t\t\tconst credential = GoogleAuthProvider.credentialFromResult(result);\n\t\t\t\t// const token = credential?.accessToken;\n\t\t\t\t// The signed-in user info.\n\t\t\t\tconst user = result.user;\n\t\t\t\t// console.log(user);\n\t\t\t\treturn signup(\n\t\t\t\t\t{\n\t\t\t\t\t\tprovider: \"Google\",\n\t\t\t\t\t\tuid: user.uid,\n\t\t\t\t\t\tname: String(user.displayName),\n\t\t\t\t\t\temail: String(user.email),\n\t\t\t\t\t\tusername: String(user.email),\n\t\t\t\t\t\tpassword: user.uid.substring(0, user.uid.length / 2),\n\t\t\t\t\t\t// token: token,\n\t\t\t\t\t\ttoday: new Date(),\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tonFetching: () => onFetching?.(),\n\t\t\t\t\t\tonError: (error) => onError?.(error),\n\t\t\t\t\t\tonSuccess: (data) => onSuccess?.(data),\n\t\t\t\t\t\tonSettled: () => onSettled?.(),\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tonError?.(error);\n\t\t\t\treturn Promise.reject(\"Something Went Wrong\");\n\t\t\t\t// Handle Errors here.\n\t\t\t\t// const errorCode = error.code;\n\t\t\t\t// const errorMessage = error.message;\n\t\t\t\t// The email of the user's account used.\n\t\t\t\t// const email = error.customData.email;\n\t\t\t\t// The AuthCredential type that was used.\n\t\t\t\t// const credential = GoogleAuthProvider.credentialFromError(error);\n\t\t\t\t// ...\n\t\t\t});\n\t} catch (err) {\n\t\tonError?.(err);\n\t}\n}\n\nexport default signInWithGoogle;\n","import { post } from \"../config/axios\";\nimport handler from \"../config/handler\";\nimport { getUrl } from \"../config/route\";\nimport type { AuthRequest, AuthRequestParams } from \"./types\";\n\nconst signin = (\n\tdata: AuthRequest,\n\t{\n\t\tconfig,\n\t\tonFetching,\n\t\tonSuccess,\n\t\tonError,\n\t\tonSettled,\n\t}: {\n\t\tonFetching?: () => void;\n\t\tonSuccess?: (data: object) => void;\n\t\tonError?: (error: string) => void;\n\t\tonSettled?: () => void;\n\t\tconfig?: { params: AuthRequestParams };\n\t},\n) => {\n\treturn handler(post(getUrl(\"auth\", \"v1\", \"signin\"), data, config), {\n\t\tonFetching: () => onFetching?.(),\n\t\tonError: (error) => onError?.(error),\n\t\tonSuccess: (data) => onSuccess?.(data),\n\t\tonSettled: () => onSettled?.(),\n\t});\n};\n\nexport default signin;\n","import { post } from \"../config/axios\";\r\nimport handler from \"../config/handler\";\r\nimport { getUrl } from \"../config/route\";\r\nimport type { TokenRequest, AuthRequestParams } from \"./types\";\r\n\r\nconst authWithToken = (\r\n\tdata: TokenRequest,\r\n\t{\r\n\t\tconfig,\r\n\t\tonFetching,\r\n\t\tonSuccess,\r\n\t\tonError,\r\n\t\tonSettled,\r\n\t}: {\r\n\t\tonFetching?: () => void;\r\n\t\tonSuccess?: (data: object) => void;\r\n\t\tonError?: (error: string) => void;\r\n\t\tonSettled?: () => void;\r\n\t\tconfig?: { params: AuthRequestParams };\r\n\t},\r\n) => {\r\n\treturn handler(post(getUrl(\"auth\", \"v1\", \"auth_with_token\"), data, config), {\r\n\t\tonFetching: () => onFetching?.(),\r\n\t\tonError: (error) => onError?.(error),\r\n\t\tonSuccess: (data) => onSuccess?.(data),\r\n\t\tonSettled: () => onSettled?.(),\r\n\t});\r\n};\r\n\r\nexport default authWithToken;","import { post } from \"../config/axios\";\r\nimport handler from \"../config/handler\";\r\nimport { getUrl } from \"../config/route\";\r\nimport type { APIRequest, AuthRequestParams } from \"./types\";\r\n\r\nconst authWithKey = (\r\n\tdata: APIRequest,\r\n\t{\r\n\t\tconfig,\r\n\t\tonFetching,\r\n\t\tonSuccess,\r\n\t\tonError,\r\n\t\tonSettled,\r\n\t}: {\r\n\t\tonFetching?: () => void;\r\n\t\tonSuccess?: (data: object) => void;\r\n\t\tonError?: (error: string) => void;\r\n\t\tonSettled?: () => void;\r\n\t\tconfig?: { params: AuthRequestParams };\r\n\t},\r\n) => {\r\n\treturn handler(post(getUrl(\"auth\", \"v1\", \"auth_with_key\"), data, config), {\r\n\t\tonFetching: () => onFetching?.(),\r\n\t\tonError: (error) => onError?.(error),\r\n\t\tonSuccess: (data) => onSuccess?.(data),\r\n\t\tonSettled: () => onSettled?.(),\r\n\t});\r\n};\r\n\r\nexport default authWithKey","import { post } from \"../config/axios\";\r\nimport handler from \"../config/handler\";\r\nimport { getUrl } from \"../config/route\";\r\nimport type { AuthRequest, AuthRequestParams } from \"./types\";\r\n\r\nconst resetPassword = (\r\n data: AuthRequest,\r\n {\r\n config,\r\n onFetching,\r\n onSuccess,\r\n onError,\r\n onSettled,\r\n }: {\r\n onFetching?: () => void;\r\n onSuccess?: (data: object) => void;\r\n onError?: (error: string) => void;\r\n onSettled?: () => void;\r\n config?: { params: AuthRequestParams };\r\n },\r\n) => {\r\n return handler(post(getUrl(\"auth\", \"v1\", \"reset_password\"), data, config), {\r\n onFetching: () => onFetching?.(),\r\n onError: (error) => onError?.(error),\r\n onSuccess: (data) => onSuccess?.(data),\r\n onSettled: () => onSettled?.(),\r\n });\r\n};\r\n\r\nexport default resetPassword;\r\n","import cookie from \"js-cookie\";\nimport { jwtDecode } from \"jwt-decode\";\n// import type { NextPageContext } from \"next\";\nimport { getConfig } from \"../config/index\";\nimport { isAuth } from \"../utils/auth\";\nimport {\n\tgetDataFromStorage,\n\tsetDataInStorage,\n\tsetEncryptionKey,\n} from \"../utils/localStorage\";\nimport logout from \"./logout\";\nimport register from \"./register\";\nimport signInWithGoogle from \"./signInWithGoogle\";\nimport signIn from \"./signin\";\nimport signUp from \"./signup\";\nimport validateConfig from \"../config/validate\";\nimport authWithToken from \"./authWithToken\";\nimport authWithKey from \"./authWithKey\";\nimport resetPassword from \"./resetPassword\";\n\nconst Auth = {\n\tsignIn,\n\tsignUp,\n\tregister,\n\tresetPassword,\n\tsignInWithGoogle,\n\tsaveTokenToCookie: (token: string) => {\n\t\tvalidateConfig(['tokenKey']);\n\t\tconst { tokenKey } = getConfig();\n\t\tif (tokenKey) {\n\t\t\tcookie.set(tokenKey, token, { expires: 900000 });\n\t\t}\n\t\twindow.location.href = \"/\";\n\t},\n\tsaveTokenToStorage: (token: string) => {\n\t\tconst accountInfo: {\n\t\t\t_id: string;\n\t\t\tcreatedAt: string;\n\t\t} = jwtDecode(token);\n\t\tif (accountInfo) {\n\t\t\tsetEncryptionKey(\"account_key\", accountInfo._id + accountInfo.createdAt);\n\t\t\tsetDataInStorage(\"accountAccessToken\", token);\n\t\t\tsetDataInStorage(\"accountInfo\", accountInfo);\n\t\t}\n\t},\n\tgetTokenFromStorage: () => {\n\t\treturn getDataFromStorage(\"accountAccessToken\");\n\t},\n\tgetUserFromStrorage: () => {\n\t\treturn getDataFromStorage(\"accountInfo\");\n\t},\n\t/**\n\t * Action to update stored admin info in the redux\n\t * @param {string | object} key key or an object with key: value of the fields to be updated\n\t * @param {any} value value of the field to be updated (only if the key passed is of type string)\n\t */\n\tupdateUserInfo: (key?: string | object, value?: any) => () => {\n\t\tconsole.log(\"typeof key: \", typeof key, key);\n\t\ttry {\n\t\t\t// console.log(key);\n\t\t\tconst accountInfo = getDataFromStorage(\"accountInfo\");\n\t\t\tif (typeof key === \"object\") {\n\t\t\t\tlet updatedInfo = { ...accountInfo };\n\t\t\t\t// for..of\n\t\t\t\tfor (const [ky, value] of Object.entries(key)) {\n\t\t\t\t\tupdatedInfo = { ...updatedInfo, [ky]: value };\n\t\t\t\t}\n\t\t\t\t// console.log(updatedInfo);\n\t\t\t\tsetDataInStorage(\"accountInfo\", updatedInfo);\n\t\t\t} else if (typeof key === \"string\") {\n\t\t\t\tif (value) {\n\t\t\t\t\tsetDataInStorage(\"accountInfo\", { ...accountInfo, [key]: value });\n\t\t\t\t} else {\n\t\t\t\t\tconsole.error(\n\t\t\t\t\t\t\"Value is not provided for the given key to update admin info\",\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tconsole.error(\"update logo action \", error);\n\t\t}\n\t},\n\tisAuthenticated: (cookie?: boolean) => {\n\t\tif (cookie) {\n\t\t\treturn isAuth();\n\t\t}\n\t\treturn getDataFromStorage(\"accountAccessToken\") !== undefined;\n\t},\n\t// getServerToken: (ctx: NextPageContext) => getServerSideToken(ctx),\n\tlogout,\n\tServer: {\n\t\tauthWithToken,\n\t\tauthWithKey\n\t}\n};\n\nexport default Auth;\n","import { post } from \"../config/axios\";\nimport handler from \"../config/handler\";\nimport { getUrl } from \"../config/route\";\nimport type { Order } from \"./types\";\n\nconst create = (\n\tdata: Order,\n\t{\n\t\tconfig,\n\t\tonFetching,\n\t\tonSuccess,\n\t\tonError,\n\t\tonSettled,\n\t}: {\n\t\tonFetching?: () => void;\n\t\tonSuccess?: (data: object) => void;\n\t\tonError?: (error: string) => void;\n\t\tonSettled?: () => void;\n\t\tconfig?: object;\n\t},\n) => {\n\treturn handler(post(getUrl(\"order\", \"v1\", \"create\"), data, config), {\n\t\tonFetching: () => onFetching?.(),\n\t\tonError: (error) => onError?.(error),\n\t\tonSuccess: (data) => onSuccess?.(data),\n\t\tonSettled: () => onSettled?.(),\n\t});\n};\n\nexport default create;\n","import create from \"./create\";\n\nconst Order = {\n\tcreate,\n};\n\nexport default Order;\n","import type { AxiosResponse } from \"axios\";\n\n// Define type for the handler options\ninterface AxiosRequestHandlerOptions {\n\tpromise: Promise<AxiosResponse<any>>; // The promise that resolves with Axios response\n\tonLoading?: (isLoading: boolean) => void; // Callback to show/hide loading state\n\tonSuccess?: (data: any) => void; // Callback for success response\n\tonError?: (error: any) => void; // Callback for error response\n\tonSettled?: () => void; // Callback for when request finishes (either success or failure)\n\tonProgress?: (progress: string) => void; // Callback for progress updates\n}\n\nconst handler = ({\n\tpromise,\n\tonLoading = () => {},\n\tonSuccess = () => {},\n\tonError = () => {},\n\tonSettled = () => {},\n\tonProgress = () => {},\n}: AxiosRequestHandlerOptions): void => {\n\t// Call onLoading at the start to show loading state\n\tonLoading(true);\n\n\t// Handling the passed promise\n\tpromise\n\t\t.then((response: AxiosResponse) => {\n\t\t\t// Show success state\n\t\t\tconsole.log(\"Request Success:\", response);\n\n\t\t\t// Execute success callback if provided\n\t\t\tif (onSuccess) {\n\t\t\t\tonSuccess(response.data);\n\t\t\t}\n\t\t})\n\t\t.catch((error: any) => {\n\t\t\t// Show error state\n\t\t\tconsole.error(\"Request Error:\", error);\n\n\t\t\t// Execute error callback if provided\n\t\t\tif (onError) {\n\t\t\t\tonError(error);\n\t\t\t}\n\t\t})\n\t\t.finally(() => {\n\t\t\t// Execute settled callback (on success or error)\n\t\t\tif (onSettled) {\n\t\t\t\tonSettled();\n\t\t\t}\n\n\t\t\t// Call onLoading to hide loading indicator after completion\n\t\t\tonLoading(false);\n\n\t\t\t// Hide loading indicator\n\t\t\tconsole.log(\"Request Completed\");\n\t\t});\n};\n\nexport default handler;\n","import type { AxiosRequestConfig } from \"axios\";\nimport { post } from \"../config/axios\";\nimport { getUrl } from \"../config/route\";\nimport handler from \"../utils/handler\";\n\n// Optional: if you have defined Order/VerifyPayment types\n// import type { Order } from \"../order/types\";\n// import type { VerifyPayment } from \"./types\";\n\ndeclare global {\n\tinterface Window {\n\t\tRazorpay: any; // Ideally, use proper types from @types/razorpay\n\t}\n}\n\ninterface PaymentData {\n\tamount: number;\n\tcurrency: string;\n\tpaymentService: string;\n\t[key: string]: any;\n}\n\ninterface StartOptions {\n\tconfig?: AxiosRequestConfig | null;\n\tonLoading?: (isLoading: boolean) => void;\n\tonSuccess?: (data: any) => void;\n\tonError?: (error: any) => void;\n\tonSettled?: () => void;\n}\n\nfunction start(\n\tdata: PaymentData,\n\t{\n\t\tconfig = null,\n\t\tonLoading = () => { },\n\t\tonSuccess = () => { },\n\t\tonError = () => { },\n\t\tonSettled = () => { },\n\t}: StartOptions = {},\n) {\n\treturn handler({\n\t\tpromise: post(\n\t\t\tgetUrl(\"payment\", \"v1\", \"create\"),\n\t\t\t{\n\t\t\t\t...data,\n\t\t\t\tmethod: {\n\t\t\t\t\tlabel: data.paymentService,\n\t\t\t\t\tcurrency: data.currency,\n\t\t\t\t},\n\t\t\t},\n\t\t\tconfig || undefined,\n\t\t),\n\t\tonLoading,\n\t\tonError: (error) => onError(error),\n\t\tonSuccess: (responseData: any) => {\n\t\t\tconsole.log(responseData);\n\t\t\tif (responseData?.method === \"Razor Pay\") {\n\t\t\t\tconst options = responseData.options;\n\t\t\t\toptions.handler = async (response: any) => {\n\t\t\t\t\tonSuccess(response);\n\t\t\t\t};\n\t\t\t\tconst rzp1 = new window.Razorpay(options);\n\t\t\t\trzp1.on(\"payment.failed\", (response: any) => {\n\t\t\t\t\tonError(response);\n\t\t\t\t});\n\t\t\t\trzp1.open();\n\t\t\t} else if (responseData?.method === \"Paypal\") {\n\t\t\t\tconsole.log('Paypal response data :', responseData);\n\t\t\t\twindow.location.href = responseData.links[1].href;\n\t\t\t}\n\t\t},\n\t\tonSettled,\n\t});\n}\n\nexport default start;\n","import type { AxiosRequestConfig } from \"axios\";\nimport { post } from \"../config/axios\";\nimport handler from \"../config/handler\";\nimport { getUrl } from \"../config/route\";\nimport type { SuccessProps } from \"./types\";\nimport type { VerifyPayment } from \"./types\";\n\nconst verify = (\n\tdata: VerifyPayment,\n\t{\n\t\tconfig,\n\t\tonFetching,\n\t\tonSuccess,\n\t\tonError,\n\t\tonSettled,\n\t}: {\n\t\tonFetching?: () => void;\n\t\tonSuccess?: (data: SuccessProps) => void;\n\t\tonError?: (error: string) => void;\n\t\tonSettled?: () => void;\n\t\tconfig?: AxiosRequestConfig<unknown>;\n\t},\n) => {\n\treturn handler(post(getUrl(\"payment\", \"v1\", \"verify\"), data, config), {\n\t\tonFetching: () => onFetching?.(),\n\t\tonError: (error) => onError?.(error),\n\t\tonSuccess: (data) => onSuccess?.(data),\n\t\tonSettled: () => onSettled?.(),\n\t});\n};\n\nexport default verify;\n","import start from \"./start\";\nimport verify from \"./verify\";\n\nconst Payment = {\n\tstart,\n\tverify,\n};\n\nexport default Payment;\n","import { get } from \"../config/axios\";\nimport { getUrl } from \"../config/route\";\n\nconst Content = {\n\tarticle: (slug: string) =>\n\t\tget(getUrl(\"cms\", \"v1\", \"article\"), {\n\t\t\tparams: {\n\t\t\t\tslug,\n\t\t\t},\n\t\t}),\n\tarticles: (config?: object | undefined) =>\n\t\tget(getUrl(\"cms\", \"v1\", \"articles\"), config),\n\tarticleCategories: (config?: object | undefined) =>\n\t\tget(getUrl(\"cms\", \"v1\", \"articleCategories\"), config),\n\tmcq: (slug: string) =>\n\t\tget(getUrl(\"cms\", \"v1\", \"mcq\"), {\n\t\t\tparams: {\n\t\t\t\tslug,\n\t\t\t},\n\t\t}),\n\tmcqs: (config?: object | undefined) =>\n\t\tget(getUrl(\"cms\", \"v1\", \"mcqs\"), config),\n\tallMcqs: (config?: object | undefined) =>\n\t\tget(getUrl(\"cms\", \"v1\", \"all_mcqs\"), config),\n\tmcqsCategories: (config?: object | undefined) =>\n\t\tget(getUrl(\"cms\", \"v1\", \"mcqCategories\"), config),\n\tqna: (slug: string) =>\n\t\tget(getUrl(\"cms\", \"v1\", \"qna\"), {\n\t\t\tparams: {\n\t\t\t\tslug,\n\t\t\t},\n\t\t}),\n\tqnas: (config?: object | undefined) =>\n\t\tget(getUrl(\"cms\", \"v1\", \"qnas\"), config),\n\tqnasCategories: (config?: object | undefined) =>\n\t\tget(getUrl(\"cms\", \"v1\", \"qnaCategories\"), config),\n};\n\nexport default Content;\n","import type { AuthRequestParams } from \"../auth/types\";\nimport { post } from \"../config/axios\";\nimport handler from \"../config/handler\";\nimport { getUrl } from \"../config/route\";\nimport type { Invoice } from \"./types\";\n\nconst createInvoice = (\n\tdata: Invoice,\n\t{\n\t\tconfig,\n\t\tonFetching,\n\t\tonSuccess,\n\t\tonError,\n\t\tonSettled,\n\t}: {\n\t\tonFetching?: () => void;\n\t\tonSuccess?: (data: object) => void;\n\t\tonError?: (error: string) => void;\n\t\tonSettled?: () => void;\n\t\tconfig?: { params: AuthRequestParams };\n\t},\n) => {\n\treturn handler(post(getUrl(\"accounting\", \"v1\", \"invoice\"), data, config), {\n\t\tonFetching: () => onFetching?.(),\n\t\tonError: (error) => onError?.(error),\n\t\tonSuccess: (data) => onSuccess?.(data),\n\t\tonSettled: () => onSettled?.(),\n\t});\n};\n\nexport default createInvoice;\n","import type { AuthRequestParams } from \"../auth/types\";\nimport { post } from \"../config/axios\";\nimport handler from \"../config/handler\";\nimport { getUrl } from \"../config/route\";\nimport type { SubmitInvoice } from \"./types\";\n\nconst submitInvoice = (\n\tdata: SubmitInvoice,\n\t{\n\t\tconfig,\n\t\tonFetching,\n\t\tonSuccess,\n\t\tonError,\n\t\tonSettled,\n\t}: {\n\t\tonFetching?: () => void;\n\t\tonSuccess?: (data: object) => void;\n\t\tonError?: (error: string) => void;\n\t\tonSettled?: () => void;\n\t\tconfig?: { params: AuthRequestParams };\n\t},\n) => {\n\treturn handler(\n\t\tpost(getUrl(\"accounting\", \"v1\", \"submit_invoice\"), data, config),\n\t\t{\n\t\t\tonFetching: () => onFetching?.(),\n\t\t\tonError: (error) => onError?.(error),\n\t\t\tonSuccess: (data) => onSuccess?.(data),\n\t\t\tonSettled: () => onSettled?.(),\n\t\t},\n\t);\n};\n\nexport default submitInvoice;\n","import type { AuthRequestParams } from \"../auth/types\";\nimport { put } from \"../config/axios\";\nimport handler from \"../config/handler\";\nimport { getUrl } from \"../config/route\";\nimport type { Invoice } from \"./types\";\n\nconst updateInvoice = (\n\tdata: Invoice,\n\t{\n\t\tconfig,\n\t\tonFetching,\n\t\tonSuccess,\n\t\tonError,\n\t\tonSettled,\n\t}: {\n\t\tonFetching?: () => void;\n\t\tonSuccess?: (data: object) => void;\n\t\tonError?: (error: string) => void;\n\t\tonSettled?: () => void;\n\t\tconfig?: { params: AuthRequestParams };\n\t},\n) => {\n\treturn handler(put(getUrl(\"accounting\", \"v1\", \"invoice\"), data, config), {\n\t\tonFetching: () => onFetching?.(),\n\t\tonError: (error) => onError?.(error),\n\t\tonSuccess: (data) => onSuccess?.(data),\n\t\tonSettled: () => onSettled?.(),\n\t});\n};\n\nexport default updateInvoice;\n","import { get } from \"../config/axios\";\nimport { getUrl } from \"../config/route\";\nimport createInvoice from \"./createInvoice\";\nimport submitInvoice from \"./submitInvoice\";\nimport updateInvoice from \"./updateInvoice\";\n\nconst Accounting = {\n\titem: (slug: string) =>\n\t\tget(getUrl(\"accounting\", \"v1\", \"item\"), {\n\t\t\tparams: {\n\t\t\t\tslug,\n\t\t\t},\n\t\t}),\n\titems: (config?: object | undefined) =>\n\t\tget(getUrl(\"accounting\", \"v1\", \"items\"), config),\n\tcreateInvoice,\n\tupdateInvoice,\n\tinvoices: (config?: object | undefined) =>\n\t\tget(getUrl(\"accounting\", \"v1\", \"invoices\"), config),\n\tsubmitInvoice,\n\titemCategories: () => get(getUrl(\"accounting\", \"v1\", \"item_categories\")),\n\titemBrands: () => get(getUrl(\"accounting\", \"v1\", \"item_brands\")),\n};\n\n\nexport type { Invoice, SubmitInvoice, PaymentInfo, Tax, Item } from \"./types\";\nexport default Accounting;\n","import { post } from \"../config/axios\";\r\nimport handler from \"../config/handler\";\r\nimport { getUrl } from \"../config/route\";\r\n\r\nconst feedback = (\r\n\tdata: unknown,\r\n\t{\r\n\t\tconfig,\r\n\t\tonFetching,\r\n\t\tonSuccess,\r\n\t\tonError,\r\n\t\tonSettled,\r\n\t}: {\r\n\t\tonFetching?: () => void;\r\n\t\tonSuccess?: (data: object) => void;\r\n\t\tonError?: (error: string) => void;\r\n\t\tonSettled?: () => void;\r\n\t\tconfig?: { params: unknown };\r\n\t},\r\n) => {\r\n\treturn handler(post(getUrl(\"support\", \"v1\", \"feedback\"), data, config), {\r\n\t\tonFetching: () => onFetching?.(),\r\n\t\tonError: (error) => onError?.(error),\r\n\t\tonSuccess: (data) => onSuccess?.(data),\r\n\t\tonSettled: () => onSettled?.(),\r\n\t});\r\n};\r\n\r\nexport default feedback;\r\n","import { post } from \"../config/axios\";\nimport handler from \"../config/handler\";\nimport { getUrl } from \"../config/route\";\n\nconst newsletter = (\n\tdata: unknown,\n\t{\n\t\tconfig,\n\t\tonFetching,\n\t\tonSuccess,\n\t\tonError,\n\t\tonSettled,\n\t}: {\n\t\tonFetching?: () => void;\n\t\tonSuccess?: (data: object) => void;\n\t\tonError?: (error: string) => void;\n\t\tonSettled?: () => void;\n\t\tconfig?: { params: unknown };\n\t},\n) => {\n\treturn handler(post(getUrl(\"support\", \"v1\", \"newsletter\"), data, config), {\n\t\tonFetching: () => onFetching?.(),\n\t\tonError: (error) => onError?.(error),\n\t\tonSuccess: (data) => onSuccess?.(data),\n\t\tonSettled: () => onSettled?.(),\n\t});\n};\n\nexport default newsletter;\n","import { post } from \"../config/axios\";\nimport handler from \"../config/handler\";\nimport { getUrl } from \"../config/route\";\n\nconst ticket = (\n\tdata: unknown,\n\t{\n\t\tconfig,\n\t\tonFetching,\n\t\tonSuccess,\n\t\tonError,\n\t\tonSettled,\n\t}: {\n\t\tonFetching?: () => void;\n\t\tonSuccess?: (data: object) => void;\n\t\tonError?: (error: string) => void;\n\t\tonSettled?: () => void;\n\t\tconfig?: { params: unknown };\n\t},\n) => {\n\treturn handler(post(getUrl(\"support\", \"v1\", \"ticket\"), data, config), {\n\t\tonFetching: () => onFetching?.(),\n\t\tonError: (error) => onError?.(error),\n\t\tonSuccess: (data) => onSuccess?.(data),\n\t\tonSettled: () => onSettled?.(),\n\t});\n};\n\nexport default ticket;\n","import { get } from \"../config/axios\";\nimport { getUrl } from \"../config/route\";\nimport feedback from \"./feedback\";\nimport newsletter from \"./newsletter\";\nimport ticket from \"./ticket\";\n\nconst Support = {\n\tticket,\n\tnewsletter,\n\ttickets: (config?: object | undefined) =>\n\t\tget(getUrl(\"support\", \"v1\", \"tickets\"), config),\n\tfeedback\n};\n\nexport default Support;\n\n\n","import { getConfig } from \"../config/index\";\nimport { getUrl } from \"../config/route\";\n\nconst Assets = {\n\timages: {\n\t\timagePlaceholder: getConfig().apiUrl + getUrl(\"assets\", \"v1\", \"imagePlaceholder\"),\n\t\tavatar: getConfig().apiUrl + getUrl(\"assets\", \"v1\", \"avatar\"),\n\t},\n};\n\nexport default Assets;\n","import type { AuthRequestParams } from \"../auth/types\";\nimport { put } from \"../config/axios\";\nimport handler from \"../config/handler\";\nimport { getUrl } from \"../config/route\";\nimport type { Profile } from \"./types\";\n\nconst updateProfile = (\n\tdata: Profile,\n\t{\n\t\tconfig,\n\t\tonFetching,\n\t\tonSuccess,\n\t\tonError,\n\t\tonSettled\n\t}: {\n\t\tonFetching?: () => void;\n\t\tonSuccess?: (data: object) => void;\n\t\tonError?: (error: string) => void;\n\t\tonSettled?: () => void;\n\t\tconfig?: { params: AuthRequestParams };\n\t},\n) => {\n\treturn handler(put(getUrl(\"account\", \"v1\", \"profile\"), data, config), {\n\t\tonFetching: () => onFetching?.(),\n\t\tonError: (error) => onError?.(error),\n\t\tonSuccess: (data) => onSuccess?.(data),\n\t\tonSettled: () => onSettled?.(),\n\t});\n};\n\nexport default updateProfile;\n","import type { AuthRequestParams } from \"../auth/types\";\r\nimport { get } from \"../config/axios\";\r\nimport handler from \"../config/handler\";\r\nimport { getUrl } from \"../config/route\";\r\n\r\nconst verifySubscription = (\r\n\t{\r\n\t\tconfig,\r\n\t\tonFetching,\r\n\t\tonSuccess,\r\n\t\tonError,\r\n\t\tonSettled\r\n\t}: {\r\n\t\tonFetching?: () => void;\r\n\t\tonSuccess?: (data: object) => void;\r\n\t\tonError?: (error: string) => void;\r\n\t\tonSettled?: () => void;\r\n\t\tconfig?: { param?: AuthRequestParams, signal?: any, timeout?: number };\r\n\t},\r\n) => {\r\n\treturn handler(get(getUrl(\"account\", \"v1\", \"verify_subscription\"), config), {\r\n\t\tonFetching: () => onFetching?.(),\r\n\t\tonError: (error) => onError?.(error),\r\n\t\tonSuccess: (data) => onSuccess?.(data),\r\n\t\tonSettled: () => onSettled?.(),\r\n\t});\r\n};\r\n\r\nexport default verifySubscription;","import { get } from \"../config/axios\";\nimport { getUrl } from \"../config/route\";\nimport updateProfile from \"./update_profile\";\nimport verifySubscription from \"./verify_subsciption\";\n\nconst Account = {\n\tprofile: (id: string) =>\n\t\tget(getUrl(\"account\", \"v1\", \"profile\"), {\n\t\t\tparams: {\n\t\t\t\tid,\n\t\t\t},\n\t\t}),\n\tupdateProfile,\n\tverifySubscription\n};\n\n\nexport type { Profile } from \"./types\";\nexport default Account;\n","export default function shareUrl(title: string, url: string) {\n\t// URL encoding to ensure special characters are handled properly\n\tconst encodedTitle = encodeURIComponent(title);\n\tconst encodedUrl = encodeURIComponent(url);\n\tconst target = \"_blank\";\n\tconst dimension = \"width=600,height=400\";\n\t// Social media share URLs\n\tconst shareLinks = {\n\t\tfacebook: `https://www.facebook.com/sharer/sharer.php?u=${encodedUrl}`,\n\t\ttwitter: `https://twitter.com/intent/tweet?text=${encodedTitle}&url=${encodedUrl}`,\n\t\tlinkedin: `https://www.linkedin.com/sharing/share-offsite/?url=${encodedUrl}`,\n\t\twhatsapp: `https://api.whatsapp.com/send?text=${encodedTitle} ${encodedUrl}`,\n\t\tpinterest: `https://www.pinterest.com/pin/create/button/?url=${encodedUrl}&description=${encodedTitle}`,\n\t};\n\n\treturn {\n\t\tfacebook: () => window.open(shareLinks.facebook, target, dimension),\n\t\ttwitter: () => window.open(shareLinks.twitter, target, dimension),\n\t\tlinkedin: () => window.open(shareLinks.linkedin, target, dimension),\n\t\twhatsapp: () => window.open(shareLinks.whatsapp, target, dimension),\n\t\tpinterest: () => window.open(shareLinks.pinterest, target, dimension),\n\t};\n}\n","import type { AxiosRequestConfig } from \"axios\";\r\nimport { post } from \"../config/axios\";\r\nimport { getUrl } from \"../config/route\";\r\nimport handler from \"../utils/handler\";\r\nimport type { Lead } from \"./types\";\r\n\r\ninterface StartOptions {\r\n\tconfig?: AxiosRequestConfig | null;\r\n\tonLoading?: (isLoading: boolean) => void;\r\n\tonSuccess?: (data: any) => void;\r\n\tonError?: (error: any) => void;\r\n\tonSettled?: () => void;\r\n}\r\n\r\nexport function addLead(\r\n\tdata: Lead,\r\n\t{\r\n\t\tconfig = null,\r\n\t\tonLoading = () => { },\r\n\t\tonSuccess = () => { },\r\n\t\tonError = () => { },\r\n\t\tonSettled = () => { },\r\n\t}: StartOptions = {},\r\n) {\r\n\treturn handler({\r\n\t\tpromise: post(\r\n\t\t\tgetUrl(\"sales\", \"v1\", \"addLead\"),\r\n\t\t\t{\r\n\t\t\t\t...data\r\n\t\t\t},\r\n\t\t\tconfig || undefined,\r\n\t\t),\r\n\t\tonLoading,\r\n\t\tonError: (error) => onError(error),\r\n\t\tonSuccess: (responseData: any) => {\r\n\t\t\tonSuccess(responseData);\r\n\t\t},\r\n\t\tonSettled,\r\n\t});\r\n}\r\n","import { addLead } from \"./lead\";\r\nimport { Lead, LeadSource, LeadStatus } from \"./types\";\r\n\r\nconst Sales = {\r\n\taddLead,\r\n};\r\n\r\nexport type { \r\n\tLeadSource,\r\n\tLeadStatus,\r\n\tLead\r\n}\r\n\r\nexport default Sales;","import { get } from \"../config/axios\";\nimport { getUrl } from \"../config/route\";\n\nconst Inventory = {\n\tgetStoreById: (id: string) =>\n\t\tget(getUrl(\"inventory\", \"v1\", \"store\"), {\n\t\t\tparams: {\n\t\t\t\tid,\n\t\t\t},\n\t\t}),\n\tgetStoreBySlug: (slug: string) =>\n\t\tget(getUrl(\"inventory\", \"v1\", \"store\"), {\n\t\t\tparams: {\n\t\t\t\tslug,\n\t\t\t},\n\t\t}),\n\tgetStoreProducts: (\n\t\tslug: string,\n\t\tcategory: string,\n\t\tbrand: string,\n\t\tprice: string,\n\t\tsearch: string,\n\t) =>\n\t\tget(getUrl(\"inventory\", \"v1\", \"store_products\"), {\n\t\t\tparams: {\n\t\t\t\tslug,\n\t\t\t\tcategory,\n\t\t\t\tbrand,\n\t\t\t\tprice,\n\t\t\t\tsearch,\n\t\t\t},\n\t\t}),\n};\n\nexport default Inventory;\n","import { get, post } from \"../config/axios\";\nimport handler from \"../config/handler\";\nimport { getUrl } from \"../config/route\";\n\nconst exchangeRates = (\n\tdata: unknown,\n\t{\n\t\tconfig,\n\t\tonFetching,\n\t\tonSuccess,\n\t\tonError,\n\t\tonSettled,\n\t}: {\n\t\tonFetching?: () => void;\n\t\tonSuccess?: (data: object) => void;\n\t\tonError?: (error: string) => void;\n\t\tonSettled?: () => void;\n\t\tconfig?: {\n\t\t\tparams: {\n\t\t\t\tfrom?: string;\n\t\t\t\tto?: string;\n\t\t\t};\n\t\t};\n\t},\n) => {\n\treturn handler(get(getUrl(\"tools\", \"v1\", \"exchangeRates\"), config), {\n\t\tonFetching: () => onFetching?.(),\n\t\tonError: (error) => onError?.(error),\n\t\tonSuccess: (data) => onSuccess?.(data),\n\t\tonSettled: () => onSettled?.(),\n\t});\n};\n\nexport default exchangeRates;\n\n// export async function convertCurrency(amount: number, fromCurrency?: string, toCurrency?: string) {\n// try {\n// const rates = await getExchangeRates(fromCurrency);\n// if (!rates[toCurrency]) {\n// throw new Error(`Currency ${toCurrency} is not available.`);\n// }\n// const convertedAmount = (amount * rates[toCurrency]).toFixed(2);\n// return convertedAmount;\n// } catch (error) {\n// console.error('Error converting currency:', error);\n// throw error;\n// }\n// }\n","import { AxiosProgressEvent } from \"axios\";\r\nimport { createAxiosWithRetry } from \"../config/axios\";\r\n\r\nexport async function uploadMultipleFiles(\r\n url: string,\r\n files: (File | Blob)[],\r\n onProgress?: (percent: number) => void\r\n) {\r\n const formData = new FormData();\r\n\r\n files.forEach((file, i) => {\r\n formData.append(\"files\", file); // name \"files\" must match backend\r\n });\r\n\r\n const axiosInstance = createAxiosWithRetry(3, 500);\r\n\r\n return axiosInstance.post(url, formData, {\r\n headers: { \"Content-Type\": \"multipart/form-data\" },\r\n onUploadProgress: (e: AxiosProgressEvent) => {\r\n if (!e.total) return;\r\n const percent = Math.round((e.loaded * 100) / e.total);\r\n onProgress?.(percent);\r\n },\r\n });\r\n}\r\n","import { AxiosProgressEvent } from \"axios\";\r\nimport { createAxiosWithRetry } from \"../config/axios\";\r\n\r\nexport async function uploadFile(\r\n url: string,\r\n file: File | Blob,\r\n onProgress?: (percent: number) => void\r\n) {\r\n const formData = new FormData();\r\n formData.append(\"file\", file);\r\n const axiosInstance = createAxiosWithRetry(3, 500);\r\n return axiosInstance.post(url, formData, {\r\n headers: { \"Content-Type\": \"multipart/form-data\" },\r\n onUploadProgress: (e: AxiosProgressEvent) => {\r\n if (e.total) {\r\n const percent = Math.round((e.loaded * 100) / e.total);\r\n onProgress?.(percent);\r\n }\r\n },\r\n });\r\n}","import exchangeRates from \"./exchangeRates\";\nimport { uploadMultipleFiles } from \"./uploadMultiple\";\nimport { uploadFile } from \"./uploadSingle\";\n\nconst Tools = {\n\texchangeRates,\n\tuploadFile,\n\tuploadMultipleFiles\n};\n\nexport default Tools;\n","import type { AuthRequestParams } from \"../auth/types\";\r\nimport { linkiePost } from \"../config/axios\";\r\nimport handler from \"../config/handler\";\r\nimport { getUrl } from \"../config/route\";\r\nimport type { ShortenRequest } from \"./types\";\r\n\r\nconst shortUrl = (\r\n\tdata: ShortenRequest,\r\n\t{\r\n\t\tconfig,\r\n\t\tonFetching,\r\n\t\tonSuccess,\r\n\t\tonError,\r\n\t\tonSettled,\r\n\t}: {\r\n\t\tonFetching?: () => void;\r\n\t\tonSuccess?: (data: object) => void;\r\n\t\tonError?: (error: string) => void;\r\n\t\tonSettled?: () => void;\r\n\t\tconfig?: { params: AuthRequestParams };\r\n\t},\r\n) => {\r\n\treturn handler(linkiePost(getUrl(\"linkie\", \"v1\", \"shorten\", true), data, config), {\r\n\t\tonFetching: () => onFetching?.(),\r\n\t\tonError: (error) => onError?.(error),\r\n\t\tonSuccess: (data) => onSuccess?.(data),\r\n\t\tonSettled: () => onSettled?.(),\r\n\t});\r\n};\r\n\r\nexport default shortUrl;","// import cookie from \"js-cookie\";\n// import { jwtDecode } from \"jwt-decode\";\n// import type { NextPageContext } from \"next\";\n// import { getConfig } from \"../config/index\";\n// import { isAuth } from \"../utils/auth\";\n// import {\n// \tgetDataFromStorage,\n// \tsetDataInStorage,\n// \tsetEncryptionKey,\n// } from \"../utils/localStorage\";\nimport shortUrl from \"./shortUrl\";\n\nconst Linkie = {\n\tshortUrl\n};\n\nexport default Linkie;\n","import type { AuthRequestParams } from \"../auth/types\";\r\nimport { get } from \"../config/axios\";\r\nimport handler from \"../config/handler\";\r\nimport { getConfig } from \"../config\";\r\n\r\nconst getCities = (\r\n\t{\r\n\t\tconfig,\r\n\t\tonFetching,\r\n\t\tonSuccess,\r\n\t\tonError,\r\n\t\tonSettled\r\n\t}: {\r\n\t\tonFetching?: () => void;\r\n\t\tonSuccess?: (data: object) => void;\r\n\t\tonError?: (error: string) => void;\r\n\t\tonSettled?: () => void;\r\n\t\tconfig?: { params: AuthRequestParams };\r\n\t},\r\n) => {\r\n\treturn handler(get(`${getConfig().apisUrl}/api/countries/v1/city`, config), {\r\n\t\tonFetching: () => onFetching?.(),\r\n\t\tonError: (error) => onError?.(error),\r\n\t\tonSuccess: (data) => onSuccess?.(data),\r\n\t\tonSettled: () => onSettled?.(),\r\n\t});\r\n};\r\n\r\nexport default getCities;\r\n","import type { AuthRequestParams } from \"../auth/types\";\r\nimport { get } from \"../config/axios\";\r\nimport handler from \"../config/handler\";\r\nimport { getConfig } from \"../config\";\r\n\r\nconst getCountries = (\r\n\t{\r\n\t\tconfig,\r\n\t\tonFetching,\r\n\t\tonSuccess,\r\n\t\tonError,\r\n\t\tonSettled\r\n\t}: {\r\n\t\tonFetching?: () => void;\r\n\t\tonSuccess?: (data: object) => void;\r\n\t\tonError?: (error: string) => void;\r\n\t\tonSettled?: () => void;\r\n\t\tconfig?: { params: AuthRequestParams };\r\n\t},\r\n) => {\r\n\treturn handler(get(`${getConfig().apisUrl}/api/countries/v1`, config), {\r\n\t\tonFetching: () => onFetching?.(),\r\n\t\tonError: (error) => onError?.(error),\r\n\t\tonSuccess: (data) => onSuccess?.(data),\r\n\t\tonSettled: () => onSettled?.(),\r\n\t});\r\n};\r\n\r\nexport default getCountries;\r\n","import type { AuthRequestParams } from \"../auth/types\";\r\nimport { get } from \"../config/axios\";\r\nimport handler from \"../config/handler\";\r\nimport { getConfig } from \"../config/index\";\r\n\r\nconst getStates = (\r\n\t{\r\n\t\tconfig,\r\n\t\tonFetching,\r\n\t\tonSuccess,\r\n\t\tonError,\r\n\t\tonSettled\r\n\t}: {\r\n\t\tonFetching?: () => void;\r\n\t\tonSuccess?: (data: object) => void;\r\n\t\tonError?: (error: string) => void;\r\n\t\tonSettled?: () => void;\r\n\t\tconfig?: { params: AuthRequestParams };\r\n\t},\r\n) => {\r\n\treturn handler(get(`${getConfig().apisUrl}/api/countries/v1/state`, config), {\r\n\t\tonFetching: () => onFetching?.(),\r\n\t\tonError: (error) => onError?.(error),\r\n\t\tonSuccess: (data) => onSuccess?.(data),\r\n\t\tonSettled: () => onSettled?.(),\r\n\t});\r\n};\r\n\r\nexport default getStates;\r\n","import getCities from \"./cities\";\r\nimport getCountries from \"./countries\";\r\nimport getStates from \"./states\";\r\n\r\nconst Apis = {\r\n getCountries,\r\n getStates,\r\n getCities\r\n};\r\n\r\nexport default Apis;\r\n","import type { AuthRequestParams } from \"../auth/types\";\r\nimport { post } from \"../config/axios\";\r\nimport handler from \"../config/handler\";\r\nimport { getUrl } from \"../config/route\";\r\n\r\nconst addResume = (\r\n\tdata: any,\r\n\t{\r\n\t\tconfig,\r\n\t\tonFetching,\r\n\t\tonSuccess,\r\n\t\tonError,\r\n\t\tonSettled\r\n\t}: {\r\n\t\tonFetching?: () => void;\r\n\t\tonSuccess?: (data: object) => void;\r\n\t\tonError?: (error: string) => void;\r\n\t\tonSettled?: () => void;\r\n\t\tconfig?: { params: AuthRequestParams };\r\n\t}\r\n) => {\r\n\treturn handler(post(getUrl(\"hr\", \"v1\", \"resume\"), data, config), {\r\n\t\tonFetching: () => onFetching?.(),\r\n\t\tonError: (error) => onError?.(error),\r\n\t\tonSuccess: (data) => onSuccess?.(data),\r\n\t\tonSettled: () => onSettled?.(),\r\n\t});\r\n};\r\n\r\nexport default addResume;\r\n","import type { AuthRequestParams } from \"../auth/types\";\nimport { put } from \"../config/axios\";\nimport handler from \"../config/handler\";\nimport { getUrl } from \"../config/route\";\nimport type { Job } from \"./types\";\n\nconst postJob = (\n\tdata: Job,\n\t{\n\t\tconfig,\n\t\tonFetching,\n\t\tonSuccess,\n\t\tonError,\n\t\tonSettled\n\t}: {\n\t\tonFetching?: () => void;\n\t\tonSuccess?: (data: object) => void;\n\t\tonError?: (error: string) => void;\n\t\tonSettled?: () => void;\n\t\tconfig?: { params: AuthRequestParams };\n\t}\n) => {\n\treturn handler(put(getUrl(\"hr\", \"v1\", \"job\"), data, config), {\n\t\tonFetching: () => onFetching?.(),\n\t\tonError: (error) => onError?.(error),\n\t\tonSuccess: (data) => onSuccess?.(data),\n\t\tonSettled: () => onSettled?.(),\n\t});\n};\n\nexport default postJob;\n","import { get } from \"../config/axios\";\nimport { getUrl } from \"../config/route\";\nimport postResume from \"./add_resume\";\nimport postJob from \"./post_job\";\n\nconst Hr = {\n\tgetJobById: (id: string) =>\n\t\tget(getUrl(\"hr\", \"v1\", \"job\"), {\n\t\t\tparams: {\n\t\t\t\tid,\n\t\t\t},\n\t\t}),\n\tgetJobs: (id?: string) =>\n\t\tget(getUrl(\"hr\", \"v1\", \"jobs\"), {\n\t\t\tparams: {\n\t\t\t\tid,\n\t\t\t},\n\t\t}),\n\tpostJob,\n\tpostResume\n};\n\n\nexport type { Job } from \"./types\";\nexport default Hr;\n","import type { AuthRequestParams } from \"../auth/types\";\nimport { lmsPost } from \"../config/axios\";\nimport handler from \"../config/handler\";\nimport { getUrl } from \"../config/route\";\nimport type { Job } from \"./types\";\n\nconst postCourse = (\n\tdata: Job,\n\t{\n\t\tconfig,\n\t\tonFetching,\n\t\tonSuccess,\n\t\tonError,\n\t\tonSettled\n\t}: {\n\t\tonFetching?: () => void;\n\t\tonSuccess?: (data: object) => void;\n\t\tonError?: (error: string) => void;\n\t\tonSettled?: () => void;\n\t\tconfig?: { params: AuthRequestParams };\n\t}\n) => {\n\treturn handler(lmsPost(getUrl(\"lms\", \"v1\", \"courses\", true), data, config), {\n\t\tonFetching: () => onFetching?.(),\n\t\tonError: (error) => onError?.(error),\n\t\tonSuccess: (data) => onSuccess?.(data),\n\t\tonSettled: () => onSettled?.(),\n\t});\n};\n\nexport default postCourse;\n","import { lmsGet } from \"../config/axios\";\nimport { getUrl } from \"../config/route\";\nimport postCourse from \"./post_course\";\n\nconst LMS = {\n\tgetCourseById: (id: string) =>\n\t\tlmsGet(getUrl(\"lms\", \"v1\", \"course\", true), {\n\t\t\tparams: {\n\t\t\t\tid,\n\t\t\t},\n\t\t}),\n\tgetCourses: () =>\n\t\tlmsGet(getUrl(\"lms\", \"v1\", \"courses\", true), {\n\t\t\tparams: {\n\t\t\t},\n\t\t}),\n\tgetMyCourses: () =>\n\t\tlmsGet(getUrl(\"lms\", \"v1\", \"myCourses\", true), {\n\t\t\tparams: {\n\t\t\t},\n\t\t}),\n\tgetEnrollStudents: () =>\n\t\tlmsGet(getUrl(\"lms\", \"v1\", \"getEnrollStudents\", true), {\n\t\t\tparams: {\n\t\t\t},\n\t\t}),\n\tpostCourse\n};\n\n\nexport type { Job } from \"./types\";\nexport default LMS;\n"],"names":["handler","signIn","signUp","cookie","postResume"],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  declare const account: {
2
2
  v1: {
3
3
  profile: string;
4
+ verify_subscription: string;
4
5
  };
5
6
  };
6
7
  export default account;
@@ -9,6 +9,17 @@ declare const Account: {
9
9
  params: import("../auth/types").AuthRequestParams;
10
10
  };
11
11
  }) => Promise<void>;
12
+ verifySubscription: ({ config, onFetching, onSuccess, onError, onSettled }: {
13
+ onFetching?: () => void;
14
+ onSuccess?: (data: object) => void;
15
+ onError?: (error: string) => void;
16
+ onSettled?: () => void;
17
+ config?: {
18
+ param?: import("../auth/types").AuthRequestParams;
19
+ signal?: any;
20
+ timeout?: number;
21
+ };
22
+ }) => Promise<void>;
12
23
  };
13
24
  export type { Profile } from "./types";
14
25
  export default Account;
@@ -0,0 +1,13 @@
1
+ import type { AuthRequestParams } from "../auth/types";
2
+ declare const verifySubscription: ({ config, onFetching, onSuccess, onError, onSettled }: {
3
+ onFetching?: () => void;
4
+ onSuccess?: (data: object) => void;
5
+ onError?: (error: string) => void;
6
+ onSettled?: () => void;
7
+ config?: {
8
+ param?: AuthRequestParams;
9
+ signal?: any;
10
+ timeout?: number;
11
+ };
12
+ }) => Promise<void>;
13
+ export default verifySubscription;
@@ -17,3 +17,9 @@ export declare const lmsPost: (endpoint: string, data?: unknown, config?: AxiosR
17
17
  export declare const lmsPut: (endpoint: string, data?: unknown, config?: AxiosRequestConfig<unknown>) => Promise<AxiosResponse>;
18
18
  export declare const lmsGet: (endpoint: string, config?: AxiosRequestConfig<unknown>) => Promise<AxiosResponse>;
19
19
  export declare const lmsPatch: <T>(endpoint: string, data: T) => Promise<AxiosResponse>;
20
+ export declare const App: {
21
+ get: (endpoint: string, config?: AxiosRequestConfig<unknown>) => Promise<AxiosResponse>;
22
+ post: (endpoint: string, data?: unknown, config?: AxiosRequestConfig<unknown>) => Promise<AxiosResponse>;
23
+ put: (endpoint: string, data?: unknown, config?: AxiosRequestConfig<unknown>) => Promise<AxiosResponse>;
24
+ patch: <T>(endpoint: string, data: T) => Promise<AxiosResponse>;
25
+ };
@@ -17,6 +17,8 @@ export { default as LMS } from "./lms";
17
17
  export { getConfig, initializeSDK } from './config';
18
18
  export { getCookie } from "./utils/auth";
19
19
  export { getUrl } from "./config/route";
20
+ export { App } from "./config/axios";
21
+ export { default as requestHandler } from "./utils/handler";
20
22
  export type { Lead, LeadSource, LeadStatus } from './sales';
21
23
  export type { Invoice, SubmitInvoice, PaymentInfo, Tax, Item } from './accounting';
22
24
  export type { Gender } from './types';
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@helpdice/sdk",
3
3
  "description": "A backend API-based SDK (Software Development Kit) provides developers with pre-built tools and libraries to interact seamlessly with a backend server or service. It simplifies the process of integrating external functionality, such as authentication, data storage, or third-party services, into applications. The SDK typically includes API endpoints, functions, and documentation, allowing developers to make requests, handle responses, and manage errors efficiently. By abstracting complex backend logic, it speeds up development, reduces coding errors, and ensures consistent interactions with the backend, making it easier to build scalable, secure, and feature-rich applications.",
4
- "version": "0.3.7",
4
+ "version": "0.4.5",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/types/index.d.ts",