npm-pkg-hook 1.12.7 → 1.12.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (348) hide show
  1. package/.babelrc +0 -0
  2. package/.env +5 -0
  3. package/.github/pull_request_template.md +18 -0
  4. package/.github/workflows/pepeline.yaml +30 -0
  5. package/dist/index.js +47755 -10080
  6. package/dist/index.js.map +1 -0
  7. package/dist/index.mjs +47071 -9610
  8. package/dist/index.mjs.map +1 -0
  9. package/eslint.config.mts +153 -0
  10. package/expire.json +1 -0
  11. package/jsconfig.json +28 -0
  12. package/package.json +24 -61
  13. package/script.txt +7 -0
  14. package/src/config/client/errors.ts +39 -0
  15. package/src/config/client/index.ts +1 -0
  16. package/src/config/content/en.json +5 -0
  17. package/src/config/content/es.json +5 -0
  18. package/src/config/content/index.ts +16 -0
  19. package/src/cookies/index.ts +3 -0
  20. package/src/hooks/addTenMinutes/index.ts +14 -0
  21. package/src/hooks/calculateLogLatHaversine/index.ts +41 -0
  22. package/src/hooks/completeSchedules/index.ts +22 -0
  23. package/src/hooks/convertToMilitaryTime/index.ts +18 -0
  24. package/src/hooks/generateStoreURL/index.ts +41 -0
  25. package/src/hooks/generateTemplate/index.ts +66 -0
  26. package/src/hooks/getCardType/index.ts +24 -0
  27. package/src/hooks/getCategoriesWithProduct/helpers/index.ts +7 -0
  28. package/src/hooks/getCategoriesWithProduct/index.ts +62 -0
  29. package/src/hooks/getGlobalSession/index.ts +69 -0
  30. package/src/hooks/getSession/index.ts +72 -0
  31. package/src/hooks/getTodayTimestamps/index.ts +70 -0
  32. package/src/hooks/getTotalHours/index.ts +76 -0
  33. package/src/hooks/handleLogin/index.ts +14 -0
  34. package/src/hooks/index.ts +153 -0
  35. package/src/hooks/isTokenExpired/index.ts +17 -0
  36. package/src/hooks/newMessageSubscription/index.ts +28 -0
  37. package/src/hooks/newStoreOrderSubscription/index.ts +26 -0
  38. package/src/hooks/statusOpenStores/helpers/index.ts +124 -0
  39. package/src/hooks/statusOpenStores/index.ts +221 -0
  40. package/src/hooks/updateExtProductFoodsOptional/index.ts +49 -0
  41. package/src/hooks/useAcumulateDate/index.ts +18 -0
  42. package/src/hooks/useAllStoresPendingToRegister/index.ts +37 -0
  43. package/src/hooks/useAmountInput/index.ts +127 -0
  44. package/src/hooks/useAnimationFrame/index.ts +45 -0
  45. package/src/hooks/useAnimationText/index.ts +31 -0
  46. package/src/hooks/useAsideCart/helpers/index.ts +22 -0
  47. package/src/hooks/useAsideCart/index.ts +217 -0
  48. package/src/hooks/useAsideCart/queries.ts +10 -0
  49. package/src/hooks/useBanner/index.ts +20 -0
  50. package/src/hooks/useCart/index.ts +2 -0
  51. package/src/hooks/useCart/queries.ts +174 -0
  52. package/src/hooks/useCart/useCart/helpers/index.ts +79 -0
  53. package/src/hooks/useCart/useCart/index.ts +424 -0
  54. package/src/hooks/useCart/useGetCart/index.ts +34 -0
  55. package/src/hooks/useCatWithProduct/index.ts +54 -0
  56. package/src/hooks/useCatWithProduct/queries.ts +200 -0
  57. package/src/hooks/useCatWithProduct/types/index.ts +104 -0
  58. package/src/hooks/useCatWithProductClient/index.ts +57 -0
  59. package/src/hooks/useCatWithProductClient/queries.ts +56 -0
  60. package/src/hooks/useCategoriesProduct/index.ts +14 -0
  61. package/src/hooks/useCategoriesProduct/queries.ts +16 -0
  62. package/src/hooks/useCategoryInStore/index.ts +167 -0
  63. package/src/hooks/useCategoryInStore/queries.ts +78 -0
  64. package/src/hooks/useCategoryStore/index.ts +8 -0
  65. package/src/hooks/useCategoryStore/queries.ts +16 -0
  66. package/src/hooks/useChartData/index.ts +171 -0
  67. package/src/hooks/useChartData/useChartData/index.ts +200 -0
  68. package/src/hooks/useChartData/useChartDataAllOrders/index.ts +94 -0
  69. package/src/hooks/useChatRoomSubscription/index.ts +28 -0
  70. package/src/hooks/useCheckbox/index.ts +115 -0
  71. package/src/hooks/useCities/index.ts +14 -0
  72. package/src/hooks/useCities/queries.ts +12 -0
  73. package/src/hooks/useClients/index.ts +97 -0
  74. package/src/hooks/useClients/queries.ts +215 -0
  75. package/src/hooks/useColorByLetters/helpers/alea.ts +73 -0
  76. package/src/hooks/useColorByLetters/helpers/colors.ts +45 -0
  77. package/src/hooks/useColorByLetters/helpers/index.ts +22 -0
  78. package/src/hooks/useColorByLetters/helpers/mersenne_twister.ts +118 -0
  79. package/src/hooks/useColorByLetters/index.ts +24 -0
  80. package/src/hooks/useConnection/index.ts +24 -0
  81. package/src/hooks/useCountries/index.ts +20 -0
  82. package/src/hooks/useCountries/queries.ts +12 -0
  83. package/src/hooks/useCreateDeliveryTime/index.ts +51 -0
  84. package/src/hooks/useCreateOrderStatusType/index.ts +134 -0
  85. package/src/hooks/useCreateProduct/helpers/index.ts +23 -0
  86. package/src/hooks/useCreateProduct/helpers/manageCacheDataCatProduct/index.ts +52 -0
  87. package/src/hooks/useCreateProduct/helpers/useEditImageProduct/index.ts +182 -0
  88. package/src/hooks/useCreateProduct/index.ts +337 -0
  89. package/src/hooks/useCreateStorePendingToRegister/index.ts +17 -0
  90. package/src/hooks/useCreateStorePendingToRegister/queries.ts +10 -0
  91. package/src/hooks/useDashboardComponents/index.ts +50 -0
  92. package/src/hooks/useDeleteExtraProductFoods/index.ts +13 -0
  93. package/src/hooks/useDeleteSubProductOptional/index.ts +32 -0
  94. package/src/hooks/useDeleteSubProductOptional/queries.ts +10 -0
  95. package/src/hooks/useDeliveryTime/index.ts +29 -0
  96. package/src/hooks/useDepartments/index.ts +14 -0
  97. package/src/hooks/useDepartments/queries.ts +13 -0
  98. package/src/hooks/useDessert/helpers/index.ts +51 -0
  99. package/src/hooks/useDessert/index.ts +529 -0
  100. package/src/hooks/useDessertWithPrice/helpers/index.ts +76 -0
  101. package/src/hooks/useDessertWithPrice/index.ts +381 -0
  102. package/src/hooks/useDessertWithPrice/queries.ts +18 -0
  103. package/src/hooks/useDevWS/index.ts +53 -0
  104. package/src/hooks/useDevices/index.ts +2 -0
  105. package/src/hooks/useDevices/queries.ts +28 -0
  106. package/src/hooks/useDevices/useGetDevices.ts +28 -0
  107. package/src/hooks/useDevices/useRegisterDevices.ts +75 -0
  108. package/src/hooks/useDownloadReports/helpers/downloadFileFromResponse.ts +21 -0
  109. package/src/hooks/useDownloadReports/index.ts +2 -0
  110. package/src/hooks/useDownloadReports/useDownloadReportByDay/index.ts +105 -0
  111. package/src/hooks/useDownloadReports/useGetReportByDateRange/index.ts +116 -0
  112. package/src/hooks/useDrag/index.ts +79 -0
  113. package/src/hooks/useDropzone/index.ts +94 -0
  114. package/src/hooks/useDynamicAuth/index.ts +14 -0
  115. package/src/hooks/useDynamicAuth/queries.ts +24 -0
  116. package/src/hooks/useEditCategory/index.ts +41 -0
  117. package/src/hooks/useEditOneExtProductFoodOptional/index.ts +28 -0
  118. package/src/hooks/useEditOneExtProductFoodOptional/queries.ts +16 -0
  119. package/src/hooks/useEditSubProductOptional/index.ts +12 -0
  120. package/src/hooks/useEditSubProductOptional/queries.ts +10 -0
  121. package/src/hooks/useEmployee/index.ts +18 -0
  122. package/src/hooks/useEmployee/queries.ts +85 -0
  123. package/src/hooks/useEmployee/useCreateEmployee.ts +90 -0
  124. package/src/hooks/useEvent/index.ts +34 -0
  125. package/src/hooks/useFavoriteStores/index.ts +31 -0
  126. package/src/hooks/useFavoriteStores/queries.ts +54 -0
  127. package/src/hooks/useFetchJson/index.ts +25 -0
  128. package/src/hooks/useFetchMoreInteractions/index.jsx +39 -0
  129. package/src/hooks/useFilterConfigs/index.ts +173 -0
  130. package/src/hooks/useFingerprintjs/index.ts +197 -0
  131. package/src/hooks/useFormTools/index.ts +143 -0
  132. package/src/hooks/useFormatDate/index.ts +91 -0
  133. package/src/hooks/useFormatNumberPhone/index.ts +23 -0
  134. package/src/hooks/useFullScreenMode/index.ts +61 -0
  135. package/src/hooks/useGenerateNumberArray/index.ts +17 -0
  136. package/src/hooks/useGetAllLocationUser/index.ts +13 -0
  137. package/src/hooks/useGetAllLocationUser/queries.ts +44 -0
  138. package/src/hooks/useGetAllSales/index.ts +26 -0
  139. package/src/hooks/useGetCookies/index.ts +43 -0
  140. package/src/hooks/useGetExtProductFoodsSubOptionalAll/index.ts +15 -0
  141. package/src/hooks/useGetFoodRecomended/index.ts +33 -0
  142. package/src/hooks/useGetFoodRecomended/queries.ts +47 -0
  143. package/src/hooks/useGetMessagesToRoom/index.ts +23 -0
  144. package/src/hooks/useGetMinPrice/index.ts +13 -0
  145. package/src/hooks/useGetMinPrice/queries.ts +7 -0
  146. package/src/hooks/useGetOneStoreRating/index.ts +41 -0
  147. package/src/hooks/useGetOneStoreRating/queries.ts +18 -0
  148. package/src/hooks/useGetSalesAmountToday/index.ts +31 -0
  149. package/src/hooks/useGetStoreCookie/index.ts +21 -0
  150. package/src/hooks/useGoogleLogin/index.ts +169 -0
  151. package/src/hooks/useGoogleLogin/loadScript.ts +15 -0
  152. package/src/hooks/useGoogleLogin/removeScript.ts +7 -0
  153. package/src/hooks/useHover/index.ts +32 -0
  154. package/src/hooks/useImageOptimization/index.ts +32 -0
  155. package/src/hooks/useImageUploaderProduct/helper/canvasUtils.ts +146 -0
  156. package/src/hooks/useImageUploaderProduct/helper/getOrientation.ts +54 -0
  157. package/src/hooks/useImageUploaderProduct/helper/index.ts +5 -0
  158. package/src/hooks/useImageUploaderProduct/index.ts +295 -0
  159. package/src/hooks/useImageWeight/index.ts +55 -0
  160. package/src/hooks/useImagesStore/index.ts +227 -0
  161. package/src/hooks/useImagesStore/queries.ts +193 -0
  162. package/src/hooks/useImagesStore/utils/index.ts +4 -0
  163. package/src/hooks/useIncomingOrders/index.ts +11 -0
  164. package/src/hooks/useIncomingOrders/queries.ts +87 -0
  165. package/src/hooks/useInnerHtml/index.ts +39 -0
  166. package/src/hooks/useIntersection/index.ts +84 -0
  167. package/src/hooks/useInventory/index.ts +2 -0
  168. package/src/hooks/useInventory/queries.ts +58 -0
  169. package/src/hooks/useInventory/useGetProductsInStock.ts +16 -0
  170. package/src/hooks/useInventory/useUpdateManageStock.ts +41 -0
  171. package/src/hooks/useKeypress/index.ts +28 -0
  172. package/src/hooks/useLazyScript/index.ts +74 -0
  173. package/src/hooks/useLocalBackendIp/index.ts +34 -0
  174. package/src/hooks/useLocalSorage/index.ts +36 -0
  175. package/src/hooks/useLocationManager/index.ts +63 -0
  176. package/src/hooks/useLocationNavigate/index.ts +54 -0
  177. package/src/hooks/useLoginEmployeeInStore/index.ts +38 -0
  178. package/src/hooks/useLogout/helpers/BroadcastChannel.ts +74 -0
  179. package/src/hooks/useLogout/helpers/apiBaseUrl.ts +12 -0
  180. package/src/hooks/useLogout/helpers/fetchData.ts +37 -0
  181. package/src/hooks/useLogout/helpers/getCsrfToken.ts +37 -0
  182. package/src/hooks/useLogout/helpers/index.ts +65 -0
  183. package/src/hooks/useLogout/helpers/logger.ts +88 -0
  184. package/src/hooks/useLogout/helpers/parseUrl.ts +39 -0
  185. package/src/hooks/useLogout/index.ts +105 -0
  186. package/src/hooks/useManageNewOrder/helpers/index.ts +45 -0
  187. package/src/hooks/useManageNewOrder/helpers/mock.ts +0 -0
  188. package/src/hooks/useManageNewOrder/index.ts +104 -0
  189. package/src/hooks/useManageQueryParams/index.ts +120 -0
  190. package/src/hooks/useMobile/index.ts +65 -0
  191. package/src/hooks/useModules/helpers/index.ts +1 -0
  192. package/src/hooks/useModules/helpers/validateModules.ts +29 -0
  193. package/src/hooks/useModules/index.ts +124 -0
  194. package/src/hooks/useMouse/index.ts +55 -0
  195. package/src/hooks/useMutateHeight/index.ts +36 -0
  196. package/src/hooks/useOrderClient/index.ts +5 -0
  197. package/src/hooks/useOrderStatusTypes/index.ts +2 -0
  198. package/src/hooks/useOrderStatusTypes/useOrderStatusTypes/index.ts +133 -0
  199. package/src/hooks/useOrderStatusTypes/useUpdateOrderStatusPriorities/index.ts +99 -0
  200. package/src/hooks/useOrders/index.ts +3 -0
  201. package/src/hooks/useOrders/queries.ts +99 -0
  202. package/src/hooks/useOrders/useChangeOrderState/index.ts +128 -0
  203. package/src/hooks/useOrders/useOrdersFromStore/index.ts +78 -0
  204. package/src/hooks/usePWAInstall/index.ts +38 -0
  205. package/src/hooks/usePaymentMethod/index.ts +3 -0
  206. package/src/hooks/usePaymentMethod/paymentMethod.gql.ts +62 -0
  207. package/src/hooks/usePaymentMethod/paymentMethod.types.ts +28 -0
  208. package/src/hooks/usePaymentMethod/useCreatePaymentMethod/index.ts +25 -0
  209. package/src/hooks/usePaymentMethod/useGetAllPaymentMethods/index.ts +19 -0
  210. package/src/hooks/usePaymentMethod/useGetPaymentMethod/index.ts +26 -0
  211. package/src/hooks/usePortFetcher/index.ts +33 -0
  212. package/src/hooks/usePrintSaleTicket/index.ts +68 -0
  213. package/src/hooks/useProductsFood/index.ts +341 -0
  214. package/src/hooks/useProductsFood/queriesStore.ts +964 -0
  215. package/src/hooks/useProductsFood/types/index.ts +0 -0
  216. package/src/hooks/useProductsFood/useEditProduct.ts +49 -0
  217. package/src/hooks/useProductsFood/usetagsProducts.ts +101 -0
  218. package/src/hooks/useProviders/index.ts +3 -0
  219. package/src/hooks/useProviders/queries.ts +31 -0
  220. package/src/hooks/useProviders/useProvidersCreateStore/index.ts +13 -0
  221. package/src/hooks/useProviders/useProvidersDataStore/index.ts +25 -0
  222. package/src/hooks/useProvidersStore/index.ts +25 -0
  223. package/src/hooks/useProvidersStore/queries.ts +31 -0
  224. package/src/hooks/usePushNotificationOrder/index.ts +52 -0
  225. package/src/hooks/usePushNotifications/helpers/index.ts +123 -0
  226. package/src/hooks/usePushNotifications/index.ts +150 -0
  227. package/src/hooks/useQueryLocationsMap/index.ts +20 -0
  228. package/src/hooks/useQueryLocationsMap/queries.ts +40 -0
  229. package/src/hooks/useRatingArrayData/index.ts +54 -0
  230. package/src/hooks/useRatingArrayData/queries.ts +19 -0
  231. package/src/hooks/useReactToPrint/index.txt +1223 -0
  232. package/src/hooks/useRemoveExtraProductFoodsOptional/index.ts +24 -0
  233. package/src/hooks/useRemoveExtraProductFoodsOptional/queries.ts +48 -0
  234. package/src/hooks/useReport/index.ts +48 -0
  235. package/src/hooks/useReport/queries.ts +72 -0
  236. package/src/hooks/useRestaurant/helpers/index.ts +28 -0
  237. package/src/hooks/useRestaurant/helpers/manageStatusOpen.ts +26 -0
  238. package/src/hooks/useRestaurant/index.ts +71 -0
  239. package/src/hooks/useRestaurant/queries.ts +81 -0
  240. package/src/hooks/useRoads/index.ts +20 -0
  241. package/src/hooks/useRoads/queries.ts +13 -0
  242. package/src/hooks/useRoles/index.ts +4 -0
  243. package/src/hooks/useRoles/queries.ts +70 -0
  244. package/src/hooks/useRoles/useCreateRole.ts +40 -0
  245. package/src/hooks/useRoles/useGetRoles.ts +37 -0
  246. package/src/hooks/useRoles/useRemoveRoles.ts +40 -0
  247. package/src/hooks/useRoles/useUpdateRolesPriority.ts +44 -0
  248. package/src/hooks/useSales/helpers/add-product.utils.ts +120 -0
  249. package/src/hooks/useSales/helpers/apply-discount-to-cart.utils.ts +292 -0
  250. package/src/hooks/useSales/helpers/comment-product.utils.ts +41 -0
  251. package/src/hooks/useSales/helpers/constants/index.ts +38 -0
  252. package/src/hooks/useSales/helpers/extras.utils.ts +42 -0
  253. package/src/hooks/useSales/helpers/filterProductsByCarProId.utils.ts +17 -0
  254. package/src/hooks/useSales/helpers/increment-product-quantity.utils.ts +76 -0
  255. package/src/hooks/useSales/helpers/index.ts +3 -0
  256. package/src/hooks/useSales/helpers/initializer.utils.ts +22 -0
  257. package/src/hooks/useSales/helpers/isStockInsufficient.ts +3 -0
  258. package/src/hooks/useSales/helpers/remove-product.utils.test.ts +49 -0
  259. package/src/hooks/useSales/helpers/remove-product.utils.ts +34 -0
  260. package/src/hooks/useSales/helpers/resolveProduct.ts +29 -0
  261. package/src/hooks/useSales/helpers/useAddToCart.ts +64 -0
  262. package/src/hooks/useSales/index.ts +1418 -0
  263. package/src/hooks/useSales/queries.ts +532 -0
  264. package/src/hooks/useSales/types/index.ts +206 -0
  265. package/src/hooks/useSales/types/use-sales.types.ts +8 -0
  266. package/src/hooks/useSales/useGetSale.ts +21 -0
  267. package/src/hooks/useSales/useTotalSales.ts +24 -0
  268. package/src/hooks/useSaveAvailableProduct/helpers/index.ts +38 -0
  269. package/src/hooks/useSaveAvailableProduct/index.ts +32 -0
  270. package/src/hooks/useSaveAvailableProduct/queries.ts +10 -0
  271. package/src/hooks/useSaveLocation/index.ts +17 -0
  272. package/src/hooks/useSaveLocation/queries.ts +19 -0
  273. package/src/hooks/useSchedule/index.ts +35 -0
  274. package/src/hooks/useSchedule/queries.ts +43 -0
  275. package/src/hooks/useSchedule/schedule.ts +79 -0
  276. package/src/hooks/useScheduleData/index.ts +135 -0
  277. package/src/hooks/useScroll/index.ts +56 -0
  278. package/src/hooks/useScrollRotate/index.ts +16 -0
  279. package/src/hooks/useSetImageProducts/index.ts +59 -0
  280. package/src/hooks/useSetImageProducts/queries.ts +18 -0
  281. package/src/hooks/useSetSession/index.ts +44 -0
  282. package/src/hooks/useSetState/index.ts +24 -0
  283. package/src/hooks/useSetupSchedule/helpers/index.ts +85 -0
  284. package/src/hooks/useSetupSchedule/index.ts +284 -0
  285. package/src/hooks/useStatusOpenStore/helpers/index.ts +124 -0
  286. package/src/hooks/useStatusOpenStore/index.ts +195 -0
  287. package/src/hooks/useStatusOrdersClient/helpers/index.ts +14 -0
  288. package/src/hooks/useStatusOrdersClient/index.ts +18 -0
  289. package/src/hooks/useStatusOrdersClient/queries.ts +80 -0
  290. package/src/hooks/useStock/index.ts +1 -0
  291. package/src/hooks/useStock/useStockUpdatedAllSubscription.ts +40 -0
  292. package/src/hooks/useStockMovements/helpers/index.ts +16 -0
  293. package/src/hooks/useStockMovements/index.ts +39 -0
  294. package/src/hooks/useStore/index.ts +83 -0
  295. package/src/hooks/useStore/queries.ts +163 -0
  296. package/src/hooks/useStoreCalendar/index.ts +5 -0
  297. package/src/hooks/useStoreContacts/index.ts +53 -0
  298. package/src/hooks/useStoreContacts/queries.ts +48 -0
  299. package/src/hooks/useStoreTable/index.ts +2 -0
  300. package/src/hooks/useStoreTable/queries.ts +47 -0
  301. package/src/hooks/useStoreTable/useStoreTableCreate.ts +77 -0
  302. package/src/hooks/useStoreTable/useStoreTables.ts +15 -0
  303. package/src/hooks/useSubscriptionValidation/index.ts +112 -0
  304. package/src/hooks/useTagProducts/index.ts +3 -0
  305. package/src/hooks/useTagProducts/useDeleteOneTag.ts +106 -0
  306. package/src/hooks/useTagProducts/useGetAllTags.ts +68 -0
  307. package/src/hooks/useTagProducts/useRegisterMultipleTags.ts +157 -0
  308. package/src/hooks/useTheme/index.ts +65 -0
  309. package/src/hooks/useTimeAgo/useTimeAgo.ts +39 -0
  310. package/src/hooks/useTokenCards/index.ts +45 -0
  311. package/src/hooks/useTopProductsMovements/index.ts +27 -0
  312. package/src/hooks/useTotalAllSales/index.ts +25 -0
  313. package/src/hooks/useTotalProductsInStock/index.ts +23 -0
  314. package/src/hooks/useTotalProductsSold/index.ts +23 -0
  315. package/src/hooks/useTotalProductsSolded/index.ts +20 -0
  316. package/src/hooks/useUpdateCart/index.ts +131 -0
  317. package/src/hooks/useUpdateCartCookie/index.ts +60 -0
  318. package/src/hooks/useUpdateDashboardComponent/index.ts +91 -0
  319. package/src/hooks/useUpdateExistingOrders/index.ts +85 -0
  320. package/src/hooks/useUpdateExtProductFoodsSubOptional/index.ts +61 -0
  321. package/src/hooks/useUpdateModuleOrder/index.ts +37 -0
  322. package/src/hooks/useUpdateMultipleExtProduct/index.ts +34 -0
  323. package/src/hooks/useUpdateMultipleExtProduct/queries.ts +33 -0
  324. package/src/hooks/useUpdateMultipleProducts/index.ts +117 -0
  325. package/src/hooks/useUpdateMultipleProducts/queries.ts +51 -0
  326. package/src/hooks/useUploadProducts/helpers/index.ts +1 -0
  327. package/src/hooks/useUploadProducts/helpers/parseNumber.ts +37 -0
  328. package/src/hooks/useUploadProducts/helpers/validateProductDataExcel.ts +73 -0
  329. package/src/hooks/useUploadProducts/index.ts +442 -0
  330. package/src/hooks/useUpsertGoal/index.ts +68 -0
  331. package/src/hooks/useUser/index.ts +24 -0
  332. package/src/hooks/useUser/queries.ts +131 -0
  333. package/src/hooks/useWeeklyStockMovement/helpers/index.ts +32 -0
  334. package/src/hooks/useWeeklyStockMovement/index.ts +52 -0
  335. package/src/hooks/useWindowSize/index.ts +45 -0
  336. package/src/index.ts +13 -0
  337. package/src/mock/dessert/index.ts +16 -0
  338. package/src/mock/index.ts +1 -0
  339. package/src/security/index.ts +1 -0
  340. package/src/services/index.ts +1 -0
  341. package/src/utils/UtilDateRange.ts +56 -0
  342. package/src/utils/generateCode.ts +222 -0
  343. package/src/utils/index.ts +2 -0
  344. package/src/utils/utils.ts +344 -0
  345. package/tsconfig.eslint.json +16 -0
  346. package/tsconfig.json +21 -0
  347. package/tsup.config.ts +24 -0
  348. package/dist/index.cjs +0 -20089
@@ -0,0 +1,90 @@
1
+ import { useMutation } from '@apollo/client'
2
+ import { useState } from 'react'
3
+
4
+ import { CREATE_ONE_EMPLOYEE_STORE_AND_USER } from './queries'
5
+
6
+ /**
7
+ * Custom hook to handle the createOneEmployeeStoreAndUser mutation.
8
+ *
9
+ * @param root0
10
+ * @param {Object}
11
+ * @param root0.sendNotification
12
+ * @param root0.onCompleted
13
+ * @param root0.onError
14
+ * @returns {{
15
+ * createEmployeeStoreAndUser: (input: IEmployeeStore) => Promise<void>,
16
+ * loading: boolean,
17
+ * error: Error | null,
18
+ * data: Object | null
19
+ * }} An object containing the mutation function, loading status, error, and data.
20
+ */
21
+ export const useCreateEmployeeStoreAndUser = ({
22
+ sendNotification = () => {
23
+ return {
24
+ description: '',
25
+ title: '',
26
+ backgroundColor: ''
27
+ }
28
+ },
29
+ onCompleted = () => {
30
+ return {
31
+ }
32
+ },
33
+ onError = () => {
34
+ return {
35
+ }
36
+ }
37
+ } = {}) => {
38
+ const [createEmployeeStoreAndUserMutation, { loading, error, data }] = useMutation(CREATE_ONE_EMPLOYEE_STORE_AND_USER, {
39
+ onError: () => {
40
+ sendNotification({
41
+ description: 'Error creando empleado',
42
+ title: 'Error',
43
+ backgroundColor: 'error'
44
+ })
45
+ },
46
+ onCompleted: (response) => {
47
+ console.log(response)
48
+ const { createOneEmployeeStoreAndUser } = response ?? {}
49
+ const { message, success } = createOneEmployeeStoreAndUser ?? {}
50
+ if (success === false) {
51
+ onError(response)
52
+ }
53
+ if (success) {
54
+ onCompleted(response)
55
+ }
56
+ sendNotification({
57
+ description: message,
58
+ title: success ? 'Exito' : 'Error',
59
+ backgroundColor: success ? 'success' : 'error'
60
+ })
61
+ }
62
+ })
63
+ const [errors, setErrors] = useState([])
64
+
65
+ /**
66
+ * Calls the createOneEmployeeStoreAndUser mutation.
67
+ *
68
+ * @param {Object} input - The input data for the mutation.
69
+ * @returns {Promise<void>}
70
+ */
71
+ const createEmployeeStoreAndUser = async (input) => {
72
+ try {
73
+ const response = await createEmployeeStoreAndUserMutation({ variables: { input } })
74
+ if (response.data.createOneEmployeeStoreAndUser.errors) {
75
+ setErrors(response.data.createOneEmployeeStoreAndUser.errors)
76
+ } else {
77
+ setErrors([])
78
+ }
79
+ } catch (err) {
80
+ setErrors([{ message: err.message }])
81
+ }
82
+ }
83
+
84
+ return [createEmployeeStoreAndUser, {
85
+ loading,
86
+ error,
87
+ data,
88
+ errors
89
+ }]
90
+ }
@@ -0,0 +1,34 @@
1
+ import { useEffect } from 'react'
2
+
3
+ export const on = ({ eventType, callBack }) => {
4
+ document.addEventListener(eventType, callBack)
5
+ }
6
+ export const off = ({ eventType, callBack }) => {
7
+ document.removeEventListener(eventType, callBack)
8
+ }
9
+ export const once = ({ eventType, callBack }) => {
10
+ const handleEventOnce = (event) => {
11
+ callBack(event)
12
+ off({ eventType, callBack: handleEventOnce })
13
+ }
14
+ on({ eventType, callBack: handleEventOnce })
15
+ }
16
+ export const trigger = ({ eventType, data }) => {
17
+ const event = new CustomEvent(eventType, { detail: data })
18
+ document.dispatchEvent(event)
19
+ }
20
+ // This function is used to subscribe components an any event
21
+ export const useEvents = ({ eventType, callBack }) => {
22
+ useEffect(() => {
23
+ on({ eventType, callBack })
24
+ return () => {
25
+ off({ eventType, callBack })
26
+ }
27
+ }, [eventType, callBack])
28
+ }
29
+ // This function create and dispatch event
30
+ export const useTrigerEvent = () => {
31
+ return {
32
+ trigger
33
+ }
34
+ }
@@ -0,0 +1,31 @@
1
+ import { useQuery } from '@apollo/client'
2
+
3
+ import { filterAndSortByDate } from '../useRestaurant/helpers'
4
+ import { getStatusForStores } from '../useRestaurant/helpers/manageStatusOpen'
5
+
6
+ import { GET_ALL_FAV_STORE } from './queries'
7
+
8
+ export const useFavoriteStores = () => {
9
+ const {
10
+ data,
11
+ loading,
12
+ error
13
+ } = useQuery(GET_ALL_FAV_STORE, {
14
+ fetchPolicy: 'cache-and-network',
15
+ onError: () => {
16
+ console.log('')
17
+ }
18
+ })
19
+ const newArray = data?.getFavorite?.map(store => {
20
+ return {
21
+ ...store.getOneStore
22
+ }
23
+ }) || []
24
+ const dataSort = filterAndSortByDate(newArray)
25
+
26
+ const statuses = getStatusForStores(dataSort)
27
+
28
+ const favoriteStores = statuses || []
29
+
30
+ return [loading ? [] : favoriteStores, { loading, error }]
31
+ }
@@ -0,0 +1,54 @@
1
+ import { gql } from '@apollo/client'
2
+
3
+ export const GET_ALL_FAV_STORE = gql`
4
+ query getFavorite {
5
+ getFavorite {
6
+ fIStoreId
7
+ fState
8
+ createAt
9
+ updateAt
10
+ idStore
11
+
12
+ getOneStore {
13
+ getStoreSchedules {
14
+ schId
15
+ idStore
16
+ schDay
17
+ schHoSta
18
+ schHoEnd
19
+ schState
20
+ }
21
+ deliveryTimeMinutes
22
+ scheduleOpenAll
23
+ idStore
24
+ cId
25
+ id
26
+ Image
27
+ open
28
+ cateStore {
29
+ catStore
30
+ cName
31
+ }
32
+ ctId
33
+ catStore
34
+ dId
35
+ storeName
36
+ Image
37
+ city {
38
+ ctId
39
+ dId
40
+ cName
41
+ }
42
+ department {
43
+ dId
44
+ cId
45
+ dName
46
+ }
47
+ pais {
48
+ cId
49
+ cName
50
+ }
51
+ }
52
+ }
53
+ }
54
+ `
@@ -0,0 +1,25 @@
1
+ /**
2
+ * It fetches a json response, and if the response is not ok, it throws an error with the response and
3
+ * the data
4
+ * @param args - The arguments to pass to fetch.
5
+ */
6
+ export const fetchJson = async (...args) => {
7
+ try {
8
+ const response = await fetch(...args)
9
+ // if the server replies, there's always some data in json
10
+ // if there's a network error, it will throw at the previous line
11
+ const data = await response.json()
12
+ if (response.ok) {
13
+ return data
14
+ }
15
+ const error = new Error(response.statusText)
16
+ error.response = response
17
+ error.data = data
18
+ throw error
19
+ } catch (error) {
20
+ if (!error.data) {
21
+ error.data = { message: error.message }
22
+ }
23
+ throw error
24
+ }
25
+ }
@@ -0,0 +1,39 @@
1
+ import React, {
2
+ useEffect,
3
+ useRef,
4
+ useState
5
+ } from 'react'
6
+
7
+ export const useFetchMoreInteractions = ({
8
+ render,
9
+ fetchMore = true,
10
+ callback = () => {}
11
+ }) => {
12
+ const loadingRef = useRef()
13
+
14
+ const useOnScreen = ref => {
15
+ const [isIntersecting, setIsIntersecting] = useState(false)
16
+
17
+ const observer = new IntersectionObserver(
18
+ ([entry]) => {return setIsIntersecting(entry.isIntersecting)}
19
+ )
20
+
21
+ useEffect(() => {
22
+ if (ref.current) observer.observe(ref.current)
23
+ // Remove the observer as soon as the component is unmounted
24
+ return () => { observer.disconnect() }
25
+ }, [ref, observer])
26
+
27
+ return isIntersecting
28
+ }
29
+
30
+ const isVisible = useOnScreen(loadingRef)
31
+
32
+ useEffect(() => {
33
+ if (isVisible && fetchMore) callback()
34
+ }, [isVisible, callback, fetchMore])
35
+
36
+ return <div ref={loadingRef}>
37
+ {isVisible && fetchMore ? render || <div style={{ background: 'red' }} >Loading...{isVisible && 'lol'}</div> : <></>}
38
+ </div>
39
+ }
@@ -0,0 +1,173 @@
1
+ // useFilterConfigs.ts
2
+ import { gql, useQuery } from '@apollo/client'
3
+
4
+ /**
5
+ * GraphQL query: expects the backend to return a JSON (or custom scalar) containing filterTabs
6
+ */
7
+ const GET_FILTER_CONFIGS = gql`
8
+ query GetFilterConfigs($idStore: String) {
9
+ filterConfigs(idStore: $idStore) {
10
+ id
11
+ idStore
12
+ filterTabs
13
+ active
14
+ priority
15
+ createdAt
16
+ updatedAt
17
+ }
18
+ }
19
+ `
20
+
21
+ /**
22
+ * Type definitions matching DB/json structure
23
+ */
24
+
25
+ /**
26
+ * @typedef {Object} FilterValue
27
+ * @property {string} [id]
28
+ * @property {string} description
29
+ * @property {number|string|null} [value]
30
+ * @property {string|null} [imageUrn]
31
+ */
32
+ export type FilterValue = {
33
+ id?: string
34
+ description: string
35
+ value?: number | string | null
36
+ imageUrn?: string | null
37
+ }
38
+
39
+ /**
40
+ * @typedef {Object} FilterGroup
41
+ * @property {string} id
42
+ * @property {string} description
43
+ * @property {string} displayType
44
+ * @property {FilterValue[]} values
45
+ */
46
+ export type FilterGroup = {
47
+ id: string
48
+ description: string
49
+ displayType: string
50
+ values: FilterValue[]
51
+ }
52
+
53
+ /**
54
+ * @typedef {Object} FilterTab
55
+ * @property {string} id
56
+ * @property {string} name
57
+ * @property {FilterGroup[]} filterGroups
58
+ */
59
+ export type FilterTab = {
60
+ id: string
61
+ name: string
62
+ filterGroups: FilterGroup[]
63
+ }
64
+
65
+ /**
66
+ * @typedef {Object} FilterConfigRecord
67
+ * @property {string} id
68
+ * @property {string|null} idStore
69
+ * @property {FilterTab[]} filterTabs
70
+ * @property {boolean} active
71
+ * @property {number} priority
72
+ */
73
+ export type FilterConfigRecord = {
74
+ id: string
75
+ idStore: string | null
76
+ filterTabs: FilterTab[]
77
+ active: boolean
78
+ priority: number
79
+ }
80
+
81
+ /**
82
+ * Runtime guard to ensure shape is roughly correct
83
+ * @param anyData any
84
+ * @returns boolean
85
+ */
86
+ const isFilterTabs = (anyData: any): any is FilterTab[] => {
87
+ if (!Array.isArray(anyData)) return false
88
+ for (const tab of anyData) {
89
+ if (typeof tab?.id !== 'string' || typeof tab?.name !== 'string') return false
90
+ if (!Array.isArray(tab.filterGroups)) return false
91
+ for (const g of tab.filterGroups) {
92
+ if (typeof g?.id !== 'string') return false
93
+ if (!Array.isArray(g.values)) return false
94
+ }
95
+ }
96
+ return true
97
+ }
98
+
99
+ /**
100
+ * Hook options
101
+ */
102
+ export type UseFilterConfigsOptions = {
103
+ idStore?: string | null
104
+ pollIntervalMs?: number
105
+ skip?: boolean
106
+ onError?: (err: Error) => void
107
+ }
108
+
109
+ /**
110
+ * Hook return
111
+ */
112
+ export type UseFilterConfigsResult = {
113
+ data: FilterTab[]
114
+ rawRecords: FilterConfigRecord[] | null
115
+ loading: boolean
116
+ error: Error | null
117
+ refetch: () => Promise<void>
118
+ }
119
+
120
+ /**
121
+ * Custom hook to fetch filter configs from GraphQL and expose typed, validated tabs.
122
+ * - Returns empty array when data is invalid (defensive).
123
+ * - Accepts idStore and poll interval as parameters for flexibility.
124
+ *
125
+ * @param {UseFilterConfigsOptions} options
126
+ * @returns {UseFilterConfigsResult}
127
+ */
128
+ export const useFilterConfigs = ({
129
+ skip = false,
130
+ onError
131
+ }: UseFilterConfigsOptions = {}): UseFilterConfigsResult => {
132
+ const { data, loading, error, refetch } = useQuery(
133
+ GET_FILTER_CONFIGS,
134
+ {
135
+ skip
136
+ }
137
+ )
138
+
139
+ if (error && onError) onError(error as Error)
140
+
141
+ const rawRecords =
142
+ Array.isArray((data as any)?.filterConfigs) ? (data as any).filterConfigs as FilterConfigRecord[] : null
143
+
144
+ let tabs: FilterTab[] = []
145
+
146
+ if (rawRecords && rawRecords.length > 0) {
147
+ // pick the active config with highest priority (lowest number)
148
+ const active = rawRecords
149
+ .filter(r => {return r.active !== false})
150
+ .sort((a, b) => {return (a.priority ?? 9999) - (b.priority ?? 9999)})[0]
151
+
152
+ const candidate = active ?? rawRecords[0]
153
+
154
+ if (candidate && isFilterTabs(candidate.filterTabs)) {
155
+ tabs = candidate.filterTabs
156
+ } else {
157
+ // defensive logging — don't throw to avoid crashing UI, return empty array
158
+
159
+ console.warn('useFilterConfigs: invalid filterTabs structure', candidate?.filterTabs)
160
+ tabs = []
161
+ }
162
+ }
163
+
164
+ return {
165
+ data: [{ 'id': 'BASIC', 'name': 'Básicos', 'filterGroups': [{ 'id': 'DELIVERY_MODE', 'description': 'Modo de entrega', 'displayType': 'WORD_CLOUD_SINGLE', 'values': [{ 'id': 'DELIVERY', 'description': 'Entrega' }, { 'id': 'TAKEOUT', 'description': 'Pra retirar' }] }, { 'id': 'SORTING', 'description': 'Ordenar por', 'displayType': 'GRID', 'values': [{ 'id': 'DEFAULT', 'description': 'Ordenação Padrão' }, { 'id': 'PRICE_RANGE:ASC', 'description': 'Preço' }, { 'id': 'USER_RATING:DESC', 'description': 'Avaliação' }, { 'id': 'DELIVERY_TIME:ASC', 'description': 'Tempo de Entrega' }, { 'id': 'DELIVERY_FEE:ASC', 'description': 'Taxa de Entrega' }, { 'id': 'DISTANCE:ASC', 'description': 'Menor distância' }] }, { 'id': 'DISTANCE', 'description': 'Distância', 'displayType': 'SLIDER', 'values': [{ 'id': 'MIN_VALUE', 'description': '1' }, { 'id': 'MAX_VALUE', 'description': '10' }] }, { 'id': 'DELIVERY_FEE', 'description': 'Taxa de entrega', 'displayType': 'WORD_CLOUD_SINGLE', 'values': [{ 'id': 'FREE', 'description': 'Grátis', 'value': 0 }, { 'id': 'MAX_FIVE', 'description': 'até R$ 5,00', 'value': 5 }, { 'id': 'MAX_TEN', 'description': 'até R$ 10,00', 'value': 10 }] }, { 'id': 'TAGS', 'description': 'Filtros especiais', 'displayType': 'CHECKBOX', 'values': [{ 'id': 'SUPER_RESTAURANT', 'imageUrn': 'SUPER_RESTAURANT.png', 'description': 'Super-Restaurantes' }, { 'id': 'SUPPORTS_ORDER_TRACKING', 'imageUrn': 'SUPPORTS_ORDER_TRACKING.png', 'description': 'Entrega Parceira' }, { 'id': 'SUPPORTS_ANY_TRACKING', 'imageUrn': 'SUPPORTS_ANY_TRACKING.png', 'description': 'Entrega Rastreável' }, { 'id': 'SUPPORTS_SCHEDULING', 'imageUrn': 'SUPPORTS_SCHEDULING.png', 'description': 'Aceita agendamento' }] }] }, { 'id': 'CATEGORY', 'name': 'Categorias', 'filterGroups': [{ 'id': 'MERCHANT_TYPE', 'description': 'Tipo de loja', 'displayType': 'GRID', 'values': [{ 'id': 'ALL', 'description': 'Todas as lojas' }, { 'id': 'RESTAURANT', 'description': 'Restaurante' }, { 'id': 'MARKET', 'description': 'Mercado' }] }, { 'id': 'AVAILABLE_CATEGORIES', 'description': 'Categorias', 'displayType': 'WORD_CLOUD', 'values': [{ 'description': 'Africana', 'id': 'AF1' }, { 'description': 'Alemã', 'id': 'ALE' }, { 'description': 'Árabe', 'id': 'ARA' }, { 'description': 'Argentina', 'id': 'AR1' }, { 'description': 'Asiática', 'id': 'ASI' }, { 'description': 'Açaí', 'id': 'AC1' }, { 'description': 'Baiana', 'id': 'BA1' }, { 'description': 'Bebidas', 'id': 'BEB' }, { 'description': 'Brasileira', 'id': 'BRA' }, { 'description': 'Cafeteria', 'id': 'CA1' }, { 'description': 'Carnes', 'id': 'CAR' }, { 'description': 'Casa de Sucos', 'id': 'CS1' }, { 'description': 'Chinesa', 'id': 'CHI' }, { 'description': 'Colombiana', 'id': 'CO1' }, { 'description': 'Congelados Fit', 'id': 'CF1' }, { 'description': 'Congelados', 'id': 'CN1' }, { 'description': 'Contemporânea', 'id': 'CNT' }, { 'description': 'Conveniência', 'id': 'CV1' }, { 'description': 'Coreana', 'id': 'CR1' }, { 'description': 'Cozinha rápida', 'id': 'CRP' }, { 'description': 'Crepe', 'id': 'CP1' }, { 'description': 'Doces & Bolos', 'id': 'DCE' }, { 'description': 'Espanhola', 'id': 'ES1' }, { 'description': 'Francesa', 'id': 'FRA' }, { 'description': 'Frangos', 'id': 'FR1' }, { 'description': 'Frutos do mar', 'id': 'FRU' }, { 'description': 'Gaúcha', 'id': 'GA1' }, { 'description': 'Grega', 'id': 'GRC' }, { 'description': 'Hambúrguer', 'id': 'BUR' }, { 'description': 'Indiana', 'id': 'IND' }, { 'description': 'Italiana', 'id': 'ITA' }, { 'description': 'Japonesa', 'id': 'JAP' }, { 'description': 'Lanches', 'id': 'LCH' }, { 'description': 'Marmita', 'id': 'MA1' }, { 'description': 'Marroquina', 'id': 'MAR' }, { 'description': 'Mediterrânea', 'id': 'MED' }, { 'description': 'Mercado 🛒', 'id': 'MER' }, { 'description': 'Mexicana', 'id': 'MEX' }, { 'description': 'Mineira', 'id': 'MI1' }, { 'description': 'Nordestina', 'id': 'NO1' }, { 'description': 'Padaria', 'id': 'PA1' }, { 'description': 'Panqueca', 'id': 'PQC' }, { 'description': 'Paranaense', 'id': 'PR1' }, { 'description': 'Pastel', 'id': 'PAS' }, { 'description': 'Peixes', 'id': 'PX1' }, { 'description': 'Peruana', 'id': 'PER' }, { 'description': 'Pizza', 'id': 'PIZ' }, { 'description': 'Portuguesa', 'id': 'POR' }, { 'description': 'Presentes', 'id': 'PRE' }, { 'description': 'Salgados', 'id': 'SAG' }, { 'description': 'Saudável', 'id': 'SAU' }, { 'description': 'Sopas & Caldos', 'id': 'SP1' }, { 'description': 'Sorvetes', 'id': 'SOR' }, { 'description': 'Tailandesa', 'id': 'THA' }, { 'description': 'Tapioca', 'id': 'TA1' }, { 'description': 'Típica do Norte', 'id': 'TN1' }, { 'description': 'Variada', 'id': 'VAR' }, { 'description': 'Vegana', 'id': 'VE1' }, { 'description': 'Vegetariana', 'id': 'VEG' }, { 'description': 'Xis', 'id': 'XI1' }, { 'description': 'Yakisoba', 'id': 'YA1' }] }] }, { 'id': 'PAYMENT', 'name': 'Pagamentos', 'filterGroups': [{ 'id': 'MEDIUM_PRICE', 'description': 'Preço médio', 'displayType': 'WORD_CLOUD_SINGLE', 'values': [{ 'id': 'CHEAPEST', 'description': '$' }, { 'id': 'CHEAP', 'description': '$$' }, { 'id': 'MODERATE', 'description': '$$$' }, { 'id': 'EXPENSIVE', 'description': '$$$$' }, { 'id': 'MOST_EXPENSIVE', 'description': '$$$$$' }] }, { 'id': 'ONLINE_PAYMENTS', 'description': 'Pagamento pelo app', 'displayType': 'WORD_CLOUD', 'values': [{ 'id': 'PIX', 'description': 'pix' }, { 'id': 'ELO', 'description': 'Elo' }, { 'id': 'MC', 'description': 'Mastercard' }, { 'id': 'MCMA', 'description': 'Mastercard Maestro' }, { 'id': 'VIS', 'description': 'Visa' }, { 'id': 'VISE', 'description': 'Visa Electron' }, { 'id': 'AM', 'description': 'Amex' }, { 'id': 'DNR', 'description': 'Diners' }] }, { 'id': 'ONLINE_PAYMENTS_VR', 'description': 'Vale-refeição/alimentação pelo app', 'displayType': 'WORD_CLOUD', 'values': [{ 'id': 'IMV', 'description': 'iFood Refeição' }, { 'id': 'VRO', 'description': 'VR Refeição' }, { 'id': 'SRP', 'description': 'Sodexo Refeição' }, { 'id': 'ALR', 'description': 'Alelo Refeição' }, { 'id': 'TRO', 'description': 'Ticket' }, { 'id': 'BENRON', 'description': 'Ben Refeição' }] }, { 'id': 'OFFLINE_PAYMENTS', 'description': 'Pagamento na entrega', 'displayType': 'WORD_CLOUD', 'values': [{ 'id': 'DIN', 'description': 'Dinheiro' }, { 'id': 'RSODEX', 'description': 'Sodexo' }, { 'id': 'VVREST', 'description': 'Vale Alelo Refeição' }, { 'id': 'VR_SMA', 'description': 'VR Refeição' }, { 'id': 'BENVVR', 'description': 'Ben Refeição' }, { 'id': 'TRE', 'description': 'Ticket' }, { 'id': 'RDREST', 'description': 'Mastercard - Crédito' }, { 'id': 'MEREST', 'description': 'Mastercard' }, { 'id': 'VSREST', 'description': 'Visa - Crédito' }, { 'id': 'VIREST', 'description': 'Visa' }, { 'id': 'REC', 'description': 'Elo - Crédito' }, { 'id': 'RED', 'description': 'Elo' }, { 'id': 'RHIP', 'description': 'Hipercard' }, { 'id': 'TVER', 'description': 'Verocard' }, { 'id': 'RAM', 'description': 'American Express' }, { 'id': 'CPRCAR', 'description': 'Cooper Card' }, { 'id': 'GRNCAR', 'description': 'Green Card' }, { 'id': 'GRNCPL', 'description': 'Green Card (papel)' }, { 'id': 'RSELE', 'description': 'Refeisul' }, { 'id': 'VALECA', 'description': 'Vale Card' }, { 'id': 'BANRC', 'description': 'Banricompras - Crédito' }, { 'id': 'BANRD', 'description': 'Banricompras' }, { 'id': 'DNREST', 'description': 'Diners' }, { 'id': 'GOODC', 'description': 'Goodcard' }, { 'id': 'VERDEC', 'description': 'Verdecard' }, { 'id': 'CHE', 'description': 'Cheque' }] }] }],
166
+ rawRecords,
167
+ loading,
168
+ error: error ? (error as Error) : null,
169
+ refetch: async () => {
170
+ await refetch()
171
+ }
172
+ }
173
+ }
@@ -0,0 +1,197 @@
1
+ // import md5 from 'md5'
2
+
3
+ /**
4
+ *
5
+ */
6
+ async function getCPUInfo () {
7
+ if (navigator.hardwareConcurrency) {
8
+ try {
9
+ const logicalCores = navigator.hardwareConcurrency
10
+ const agent = window.navigator.userAgent
11
+ const hyperThreaded = /Intel|Apple/.test(agent) && /Win64|Linux x86_64|MacIntel/.test(agent)
12
+
13
+ // Ajustar el número de núcleos lógicos si se sospecha hiperprocesamiento
14
+ const physicalCores = hyperThreaded ? logicalCores / 2 : logicalCores
15
+
16
+ const cpuInfo = {
17
+ logicalCores,
18
+ physicalCores,
19
+ hyperThreaded
20
+ }
21
+ return JSON.stringify(cpuInfo)
22
+ } catch (error) {
23
+ console.error('Error al obtener información de la CPU:', error)
24
+ return 'cpu-info-error'
25
+ }
26
+ } else {
27
+ return 'cpu-info-not-available'
28
+ }
29
+ }
30
+
31
+ /**
32
+ *
33
+ */
34
+ async function generateFingerprint () {
35
+ const canvas = document.createElement('canvas')
36
+ const audioContext = new (window.AudioContext || window.webkitAudioContext)()
37
+
38
+ const userAgent = navigator.userAgent
39
+ const language = navigator.language
40
+ const colorDepth = window.screen.colorDepth
41
+ const availableScreenHeight = window.screen.availHeight
42
+ const platform = navigator.platform
43
+ const cpuClass = navigator.cpuClass || 'unknown'
44
+
45
+ const canvasFingerprint = await generateCanvasFingerprint(canvas)
46
+ const audioFingerprint = await generateAudioFingerprint(audioContext)
47
+
48
+ const cpuInfo = await getCPUInfo()
49
+ const webGLInfo = await getWebGLInfo()
50
+ const fonts = getInstalledFonts()
51
+ const touchscreenInfo = getTouchscreenInfo()
52
+
53
+ const fingerprintData = {
54
+ browser: {
55
+ userAgent,
56
+ language,
57
+ colorDepth,
58
+ availableScreenHeight,
59
+ plugins: Array.from(navigator.plugins).map(plugin => {return plugin.name}).join(','),
60
+ timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone,
61
+ hardwareConcurrency: cpuInfo.logicalCores || 'unknown',
62
+ platformVersion: navigator.platformVersion || 'unknown'
63
+ },
64
+ device: {
65
+ platform,
66
+ cpuClass
67
+ },
68
+ canvas: canvasFingerprint,
69
+ audio: audioFingerprint,
70
+ cpu: cpuInfo,
71
+ webgl: webGLInfo,
72
+ fonts,
73
+ touchscreen: touchscreenInfo
74
+ }
75
+
76
+ const fingerprint = JSON.stringify(fingerprintData)
77
+ // const uniqueID = md5(fingerprint)
78
+ return fingerprint
79
+ }
80
+
81
+ // Función para generar huella digital del audio
82
+ /**
83
+ *
84
+ * @param audioContext
85
+ */
86
+ async function generateAudioFingerprint (audioContext) {
87
+ if (audioContext) {
88
+ try {
89
+ await audioContext.resume()
90
+
91
+ // Obtén propiedades del audio que puedas obtener en modo incógnito
92
+ const audioProperties = {
93
+ isAudioContextAvailable: true
94
+ // Agrega más propiedades relevantes aquí
95
+ }
96
+
97
+ return audioProperties
98
+ } catch (error) {
99
+ console.error('Error al generar huella digital de audio:', error)
100
+ }
101
+ }
102
+
103
+ return { isAudioContextAvailable: false }
104
+ }
105
+
106
+ // Función para generar huella digital del canvas
107
+ /**
108
+ *
109
+ * @param canvas
110
+ */
111
+ async function generateCanvasFingerprint (canvas) {
112
+ if (canvas) {
113
+ try {
114
+ canvas.width = 200
115
+ canvas.height = 200
116
+ const context = canvas.getContext('2d')
117
+ context.clearRect(0, 0, canvas.width, canvas.height)
118
+ context.fillStyle = '#f60'
119
+ context.fillRect(125, 1, 62, 20)
120
+ context.fillStyle = '#069'
121
+ context.font = '16pt Arial'
122
+ context.fillText('Cwm fjordbank glyphs vext quiz', 125, 20)
123
+
124
+ // Obtén más propiedades del canvas que puedas obtener en modo incógnito
125
+ const canvasProperties = {
126
+ width: canvas.width,
127
+ height: canvas.height
128
+ // Agrega más propiedades relevantes aquí
129
+ }
130
+
131
+ return canvasProperties
132
+ } catch (error) {
133
+ console.error('Error al generar huella digital del canvas:', error)
134
+ }
135
+ }
136
+
137
+ return { width: 0, height: 0 }
138
+ }
139
+
140
+ /**
141
+ *
142
+ */
143
+ async function getWebGLInfo () {
144
+ if ('WebGLRenderingContext' in window) {
145
+ const canvas = document.createElement('canvas')
146
+ const gl = canvas.getContext('webgl') || canvas.getContext('experimental-webgl')
147
+
148
+ if (gl) {
149
+ const renderer = gl.getParameter(gl.RENDERER)
150
+ const version = gl.getParameter(gl.VERSION)
151
+
152
+ // Obtener más información sobre las capacidades WebGL si es necesario
153
+
154
+ return `${renderer}-${version}`
155
+ }
156
+ }
157
+
158
+ return 'webgl-info-not-supported'
159
+ }
160
+
161
+ /**
162
+ *
163
+ */
164
+ function getInstalledFonts () {
165
+ const fonts = []
166
+
167
+ if ('fonts' in document) {
168
+ document.fonts.forEach(font => {
169
+ fonts.push(font.family)
170
+ })
171
+ }
172
+
173
+ return fonts.join(',')
174
+ }
175
+
176
+ /**
177
+ *
178
+ */
179
+ function getTouchscreenInfo () {
180
+ if ('maxTouchPoints' in navigator) {
181
+ const maxTouchPoints = navigator.maxTouchPoints
182
+ const touchEvent = 'ontouchstart' in window ? 'true' : 'false'
183
+
184
+ return `${maxTouchPoints}-${touchEvent}`
185
+ }
186
+
187
+ return 'touchscreen-info-not-supported'
188
+ }
189
+
190
+ /**
191
+ *
192
+ */
193
+ export async function fingerprintJs () {
194
+ const fingerprint = await generateFingerprint()
195
+ // const uniqueID = md5(fingerprint)
196
+ return fingerprint
197
+ }