npm-pkg-hook 1.12.4 → 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 (354) hide show
  1. package/dist/index.js +57529 -0
  2. package/dist/index.js.map +1 -0
  3. package/dist/index.mjs +57315 -0
  4. package/dist/index.mjs.map +1 -0
  5. package/eslint.config.mts +153 -0
  6. package/package.json +30 -45
  7. package/src/config/client/errors.ts +39 -0
  8. package/src/hooks/addTenMinutes/{index.js → index.ts} +4 -4
  9. package/src/hooks/calculateLogLatHaversine/{index.js → index.ts} +15 -4
  10. package/src/hooks/completeSchedules/{index.js → index.ts} +4 -4
  11. package/src/hooks/convertToMilitaryTime/index.ts +18 -0
  12. package/src/hooks/generateStoreURL/index.ts +41 -0
  13. package/src/hooks/generateTemplate/{index.js → index.ts} +15 -11
  14. package/src/hooks/getCardType/{index.js → index.ts} +1 -1
  15. package/src/hooks/getCategoriesWithProduct/{index.js → index.ts} +7 -7
  16. package/src/hooks/getGlobalSession/index.ts +69 -0
  17. package/src/hooks/getSession/index.ts +72 -0
  18. package/src/hooks/getTodayTimestamps/{index.js → index.ts} +18 -12
  19. package/src/hooks/getTotalHours/index.ts +76 -0
  20. package/src/hooks/handleLogin/{index.js → index.ts} +4 -0
  21. package/src/hooks/index.ts +8 -2
  22. package/src/hooks/statusOpenStores/helpers/{index.js → index.ts} +24 -1
  23. package/src/hooks/statusOpenStores/index.ts +221 -0
  24. package/src/hooks/updateExtProductFoodsOptional/{index.js → index.ts} +12 -3
  25. package/src/hooks/useAcumulateDate/index.ts +18 -0
  26. package/src/hooks/useAllStoresPendingToRegister/{index.js → index.ts} +3 -0
  27. package/src/hooks/useAmountInput/index.ts +42 -32
  28. package/src/hooks/useAnimationText/{index.jsx → index.ts} +2 -2
  29. package/src/hooks/useAsideCart/{index.js → index.ts} +22 -19
  30. package/src/hooks/useBanner/{index.js → index.ts} +2 -1
  31. package/src/hooks/useCart/useCart/helpers/{index.js → index.ts} +10 -6
  32. package/src/hooks/useCart/useCart/{index.js → index.ts} +29 -17
  33. package/src/hooks/useCart/useGetCart/{index.js → index.ts} +2 -1
  34. package/src/hooks/useCatWithProduct/{index.js → index.ts} +11 -5
  35. package/src/hooks/useCatWithProduct/types/index.ts +104 -0
  36. package/src/hooks/useCatWithProductClient/{index.js → index.ts} +3 -2
  37. package/src/hooks/useCategoriesProduct/{index.js → index.ts} +2 -1
  38. package/src/hooks/useCategoryInStore/index.ts +167 -0
  39. package/src/hooks/useCategoryStore/{index.js → index.ts} +2 -1
  40. package/src/hooks/useCategoryStore/{queries.js → queries.ts} +2 -2
  41. package/src/hooks/useChartData/{index.js → index.ts} +9 -8
  42. package/src/hooks/useChartData/useChartData/{index.js → index.ts} +31 -30
  43. package/src/hooks/useChartData/useChartDataAllOrders/{index.js → index.ts} +2 -2
  44. package/src/hooks/useCheckbox/{index.js → index.ts} +1 -1
  45. package/src/hooks/useCities/{index.js → index.ts} +2 -1
  46. package/src/hooks/useClients/{index.js → index.ts} +2 -1
  47. package/src/hooks/useClients/{queries.js → queries.ts} +7 -4
  48. package/src/hooks/useColorByLetters/helpers/{alea.js → alea.ts} +19 -0
  49. package/src/hooks/useColorByLetters/helpers/{index.js → index.ts} +5 -1
  50. package/src/hooks/useColorByLetters/helpers/{mersenne_twister.js → mersenne_twister.ts} +1 -1
  51. package/src/hooks/useColorByLetters/{index.js → index.ts} +3 -6
  52. package/src/hooks/useConnection/{index.js → index.ts} +3 -3
  53. package/src/hooks/useCountries/{index.js → index.ts} +2 -1
  54. package/src/hooks/useCreateOrderStatusType/index.ts +8 -6
  55. package/src/hooks/useCreateProduct/helpers/{index.js → index.ts} +1 -1
  56. package/src/hooks/useCreateProduct/helpers/manageCacheDataCatProduct/{index.js → index.ts} +1 -1
  57. package/src/hooks/useCreateProduct/helpers/useEditImageProduct/{index.js → index.ts} +14 -8
  58. package/src/hooks/useCreateProduct/{index.js → index.ts} +22 -19
  59. package/src/hooks/useCreateStorePendingToRegister/{index.js → index.ts} +5 -1
  60. package/src/hooks/useDeleteExtraProductFoods/{index.js → index.ts} +2 -1
  61. package/src/hooks/useDeleteSubProductOptional/{index.js → index.ts} +5 -3
  62. package/src/hooks/useDeliveryTime/{index.js → index.ts} +3 -1
  63. package/src/hooks/useDepartments/{index.js → index.ts} +2 -1
  64. package/src/hooks/useDessert/{index.js → index.ts} +56 -52
  65. package/src/hooks/useDessertWithPrice/helpers/{index.js → index.ts} +4 -4
  66. package/src/hooks/useDessertWithPrice/{index.js → index.ts} +34 -26
  67. package/src/hooks/useDevWS/index.ts +43 -43
  68. package/src/hooks/useDevices/{useGetDevices.js → useGetDevices.ts} +3 -3
  69. package/src/hooks/useDevices/{useRegisterDevices.js → useRegisterDevices.ts} +5 -5
  70. package/src/hooks/useDownloadReports/helpers/downloadFileFromResponse.ts +17 -17
  71. package/src/hooks/useDownloadReports/useDownloadReportByDay/index.ts +4 -2
  72. package/src/hooks/useDownloadReports/useGetReportByDateRange/index.ts +3 -2
  73. package/src/hooks/useDrag/{index.js → index.ts} +16 -0
  74. package/src/hooks/useDropzone/{index.js → index.ts} +2 -2
  75. package/src/hooks/useDynamicAuth/{index.js → index.ts} +2 -1
  76. package/src/hooks/useEditCategory/{index.js → index.ts} +5 -5
  77. package/src/hooks/useEditOneExtProductFoodOptional/index.ts +28 -0
  78. package/src/hooks/useEditOneExtProductFoodOptional/{queries.js → queries.ts} +2 -2
  79. package/src/hooks/useEditSubProductOptional/index.ts +12 -0
  80. package/src/hooks/useEmployee/{index.js → index.ts} +2 -1
  81. package/src/hooks/useEmployee/{queries.js → queries.ts} +1 -1
  82. package/src/hooks/useEmployee/{useCreateEmployee.js → useCreateEmployee.ts} +6 -2
  83. package/src/hooks/useFavoriteStores/{index.js → index.ts} +5 -3
  84. package/src/hooks/useFetchMoreInteractions/index.jsx +26 -26
  85. package/src/hooks/useFilterConfigs/index.ts +173 -0
  86. package/src/hooks/useFingerprintjs/{index.js → index.ts} +29 -4
  87. package/src/hooks/useFormTools/{index.js → index.ts} +38 -11
  88. package/src/hooks/useFormatDate/{index.js → index.ts} +10 -5
  89. package/src/hooks/useFullScreenMode/{index.js → index.ts} +1 -5
  90. package/src/hooks/useGetAllLocationUser/{index.js → index.ts} +2 -1
  91. package/src/hooks/useGetAllLocationUser/{queries.js → queries.ts} +2 -2
  92. package/src/hooks/{useSales/useGetAllSales/index.js → useGetAllSales/index.ts} +3 -2
  93. package/src/hooks/useGetExtProductFoodsSubOptionalAll/{index.js → index.ts} +2 -1
  94. package/src/hooks/useGetFoodRecomended/{index.js → index.ts} +2 -1
  95. package/src/hooks/useGetMinPrice/{index.js → index.ts} +2 -1
  96. package/src/hooks/useGetOneStoreRating/{index.js → index.ts} +2 -1
  97. package/src/hooks/useGetStoreCookie/{index.js → index.ts} +1 -1
  98. package/src/hooks/useGoogleLogin/{index.js → index.ts} +14 -5
  99. package/src/hooks/useHover/{index.js → index.ts} +3 -0
  100. package/src/hooks/useImageOptimization/{index.js → index.ts} +4 -0
  101. package/src/hooks/useImageUploaderProduct/helper/canvasUtils.ts +25 -9
  102. package/src/hooks/useImageUploaderProduct/helper/getOrientation.ts +5 -4
  103. package/src/hooks/useImageUploaderProduct/index.ts +227 -224
  104. package/src/hooks/useImageWeight/{index.js → index.ts} +4 -0
  105. package/src/hooks/useImagesStore/{index.js → index.ts} +7 -5
  106. package/src/hooks/useImagesStore/{queries.js → queries.ts} +1 -1
  107. package/src/hooks/useIncomingOrders/{index.js → index.ts} +2 -1
  108. package/src/hooks/useIncomingOrders/{queries.js → queries.ts} +1 -1
  109. package/src/hooks/useIntersection/{index.js → index.ts} +1 -1
  110. package/src/hooks/useInventory/{queries.js → queries.ts} +2 -2
  111. package/src/hooks/useInventory/{useGetProductsInStock.js → useGetProductsInStock.ts} +2 -1
  112. package/src/hooks/useLazyScript/{index.js → index.ts} +3 -0
  113. package/src/hooks/useLocalSorage/{index.js → index.ts} +3 -3
  114. package/src/hooks/useLocationManager/{index.js → index.ts} +3 -3
  115. package/src/hooks/useLoginEmployeeInStore/{index.js → index.ts} +1 -1
  116. package/src/hooks/useLogout/helpers/BroadcastChannel.ts +74 -0
  117. package/src/hooks/useLogout/helpers/{apiBaseUrl.js → apiBaseUrl.ts} +4 -0
  118. package/src/hooks/useLogout/helpers/{fetchData.js → fetchData.ts} +10 -1
  119. package/src/hooks/useLogout/helpers/{getCsrfToken.js → getCsrfToken.ts} +8 -1
  120. package/src/hooks/useLogout/helpers/{index.js → index.ts} +14 -6
  121. package/src/hooks/useLogout/helpers/{logger.js → logger.ts} +26 -8
  122. package/src/hooks/useLogout/helpers/{parseUrl.js → parseUrl.ts} +5 -2
  123. package/src/hooks/useLogout/{index.js → index.ts} +29 -20
  124. package/src/hooks/useManageNewOrder/helpers/{index.js → index.ts} +1 -1
  125. package/src/hooks/useManageNewOrder/{index.js → index.ts} +6 -4
  126. package/src/hooks/useManageQueryParams/index.ts +120 -0
  127. package/src/hooks/useModules/helpers/{validateModules.js → validateModules.ts} +1 -1
  128. package/src/hooks/useModules/index.ts +124 -0
  129. package/src/hooks/useMouse/index.ts +23 -18
  130. package/src/hooks/useOrderStatusTypes/useOrderStatusTypes/index.ts +1 -1
  131. package/src/hooks/useOrderStatusTypes/useUpdateOrderStatusPriorities/index.ts +7 -5
  132. package/src/hooks/useOrders/{queries.js → queries.ts} +30 -20
  133. package/src/hooks/useOrders/useChangeOrderState/index.ts +79 -76
  134. package/src/hooks/useOrders/useOrdersFromStore/index.ts +4 -3
  135. package/src/hooks/usePaymentMethod/index.ts +3 -0
  136. package/src/hooks/usePaymentMethod/paymentMethod.gql.ts +62 -0
  137. package/src/hooks/usePaymentMethod/paymentMethod.types.ts +28 -0
  138. package/src/hooks/usePaymentMethod/useCreatePaymentMethod/index.ts +25 -0
  139. package/src/hooks/usePaymentMethod/useGetAllPaymentMethods/index.ts +19 -0
  140. package/src/hooks/usePaymentMethod/useGetPaymentMethod/index.ts +26 -0
  141. package/src/hooks/usePrintSaleTicket/index.ts +4 -0
  142. package/src/hooks/useProductsFood/{index.js → index.ts} +115 -27
  143. package/src/hooks/useProductsFood/{queriesStore.js → queriesStore.ts} +1 -1
  144. package/src/hooks/useProductsFood/{useEditProduct.js → useEditProduct.ts} +2 -1
  145. package/src/hooks/useProductsFood/{usetagsProducts.js → usetagsProducts.ts} +6 -3
  146. package/src/hooks/useProviders/useProvidersCreateStore/{index.js → index.ts} +2 -1
  147. package/src/hooks/useProviders/useProvidersDataStore/{index.js → index.ts} +2 -1
  148. package/src/hooks/useProvidersStore/{index.js → index.ts} +2 -1
  149. package/src/hooks/usePushNotificationOrder/{index.js → index.ts} +1 -1
  150. package/src/hooks/usePushNotifications/helpers/{index.js → index.ts} +9 -0
  151. package/src/hooks/usePushNotifications/{index.js → index.ts} +2 -1
  152. package/src/hooks/useQueryLocationsMap/{index.js → index.ts} +2 -1
  153. package/src/hooks/useRatingArrayData/{index.js → index.ts} +4 -4
  154. package/src/hooks/useRatingArrayData/{queries.js → queries.ts} +1 -1
  155. package/src/hooks/useRemoveExtraProductFoodsOptional/{index.js → index.ts} +2 -1
  156. package/src/hooks/useReport/{index.js → index.ts} +2 -1
  157. package/src/hooks/useReport/{queries.js → queries.ts} +2 -53
  158. package/src/hooks/useRestaurant/helpers/{index.js → index.ts} +4 -0
  159. package/src/hooks/useRestaurant/helpers/{manageStatusOpen.js → manageStatusOpen.ts} +1 -1
  160. package/src/hooks/useRestaurant/{index.js → index.ts} +5 -3
  161. package/src/hooks/useRoads/{index.js → index.ts} +2 -1
  162. package/src/hooks/useRoles/{queries.js → queries.ts} +1 -1
  163. package/src/hooks/useRoles/{useCreateRole.js → useCreateRole.ts} +4 -1
  164. package/src/hooks/useRoles/{useGetRoles.js → useGetRoles.ts} +2 -1
  165. package/src/hooks/useSales/helpers/add-product.utils.ts +120 -0
  166. package/src/hooks/useSales/helpers/apply-discount-to-cart.utils.ts +292 -0
  167. package/src/hooks/useSales/helpers/comment-product.utils.ts +41 -0
  168. package/src/hooks/useSales/helpers/constants/index.ts +38 -0
  169. package/src/hooks/useSales/helpers/extras.utils.ts +42 -0
  170. package/src/hooks/useSales/helpers/filterProductsByCarProId.utils.ts +17 -0
  171. package/src/hooks/useSales/helpers/increment-product-quantity.utils.ts +76 -0
  172. package/src/hooks/useSales/helpers/index.ts +3 -0
  173. package/src/hooks/useSales/helpers/initializer.utils.ts +22 -0
  174. package/src/hooks/useSales/helpers/isStockInsufficient.ts +3 -0
  175. package/src/hooks/useSales/helpers/remove-product.utils.test.ts +49 -0
  176. package/src/hooks/useSales/helpers/remove-product.utils.ts +34 -0
  177. package/src/hooks/useSales/helpers/resolveProduct.ts +29 -0
  178. package/src/hooks/useSales/helpers/useAddToCart.ts +64 -0
  179. package/src/hooks/useSales/{index.js → index.ts} +559 -522
  180. package/src/hooks/useSales/{queries.js → queries.ts} +187 -79
  181. package/src/hooks/useSales/types/index.ts +206 -0
  182. package/src/hooks/useSales/types/use-sales.types.ts +8 -0
  183. package/src/hooks/useSales/{useGetSale.js → useGetSale.ts} +10 -2
  184. package/src/hooks/useSales/{useTotalSales.js → useTotalSales.ts} +2 -1
  185. package/src/hooks/useSaveAvailableProduct/helpers/{index.js → index.ts} +4 -4
  186. package/src/hooks/useSaveAvailableProduct/{index.js → index.ts} +2 -1
  187. package/src/hooks/useSaveLocation/{index.js → index.ts} +2 -1
  188. package/src/hooks/useSaveLocation/{queries.js → queries.ts} +1 -1
  189. package/src/hooks/useSchedule/{index.jsx → index.ts} +14 -1
  190. package/src/hooks/useSchedule/{index.js → schedule.ts} +2 -1
  191. package/src/hooks/useScheduleData/{index.js → index.ts} +21 -9
  192. package/src/hooks/useSetImageProducts/{index.js → index.ts} +4 -2
  193. package/src/hooks/useSetupSchedule/{index.js → index.ts} +40 -28
  194. package/src/hooks/useStatusOpenStore/helpers/{index.js → index.ts} +24 -1
  195. package/src/hooks/useStatusOpenStore/{index.js → index.ts} +30 -14
  196. package/src/hooks/useStatusOrdersClient/{index.js → index.ts} +3 -2
  197. package/src/hooks/useStatusOrdersClient/{queries.js → queries.ts} +2 -2
  198. package/src/hooks/useStock/index.ts +1 -0
  199. package/src/hooks/useStock/useStockUpdatedAllSubscription.ts +40 -0
  200. package/src/hooks/useStockMovements/helpers/{index.js → index.ts} +1 -1
  201. package/src/hooks/useStockMovements/{index.js → index.ts} +4 -3
  202. package/src/hooks/useStore/{index.js → index.ts} +30 -27
  203. package/src/hooks/useStoreContacts/{index.js → index.ts} +11 -5
  204. package/src/hooks/useStoreTable/{useStoreTableCreate.js → useStoreTableCreate.ts} +3 -2
  205. package/src/hooks/useStoreTable/{useStoreTables.js → useStoreTables.ts} +2 -1
  206. package/src/hooks/useSubscriptionValidation/index.ts +112 -0
  207. package/src/hooks/useTagProducts/useDeleteOneTag.ts +66 -66
  208. package/src/hooks/useTagProducts/useGetAllTags.ts +2 -2
  209. package/src/hooks/useTagProducts/useRegisterMultipleTags.ts +27 -26
  210. package/src/hooks/useTheme/index.ts +65 -0
  211. package/src/hooks/useTimeAgo/{useTimeAgo.js → useTimeAgo.ts} +7 -7
  212. package/src/hooks/useTokenCards/{index.js → index.ts} +7 -3
  213. package/src/hooks/useUpdateCart/{index.js → index.ts} +3 -2
  214. package/src/hooks/useUpdateCartCookie/{index.js → index.ts} +23 -6
  215. package/src/hooks/useUpdateDashboardComponent/index.ts +11 -11
  216. package/src/hooks/useUpdateExtProductFoodsSubOptional/{index.js → index.ts} +2 -1
  217. package/src/hooks/useUpdateModuleOrder/{index.js → index.ts} +2 -2
  218. package/src/hooks/useUpdateMultipleExtProduct/{index.js → index.ts} +2 -1
  219. package/src/hooks/useUpdateMultipleProducts/{index.js → index.ts} +57 -20
  220. package/src/hooks/useUploadProducts/helpers/{parseNumber.js → parseNumber.ts} +3 -3
  221. package/src/hooks/useUploadProducts/{index.js → index.ts} +89 -69
  222. package/src/hooks/useUpsertGoal/{index.js → index.ts} +1 -1
  223. package/src/hooks/useUser/{index.js → index.ts} +5 -4
  224. package/src/hooks/useWeeklyStockMovement/helpers/{index.js → index.ts} +3 -3
  225. package/src/hooks/useWeeklyStockMovement/{index.js → index.ts} +4 -3
  226. package/src/hooks/useWindowSize/{index.js → index.ts} +9 -2
  227. package/src/index.ts +13 -0
  228. package/src/security/index.ts +1 -0
  229. package/src/services/index.ts +1 -0
  230. package/src/utils/UtilDateRange.ts +56 -0
  231. package/src/utils/generateCode.ts +222 -0
  232. package/src/utils/index.ts +2 -0
  233. package/src/utils/{index.js → utils.ts} +69 -31
  234. package/tsconfig.eslint.json +16 -0
  235. package/tsconfig.json +18 -2
  236. package/tsup.config.ts +24 -0
  237. package/.eslintrc.js +0 -38
  238. package/.eslintrc.json +0 -127
  239. package/src/config/client/errors.js +0 -26
  240. package/src/hooks/convertToMilitaryTime/index.js +0 -14
  241. package/src/hooks/generateStoreURL/index.js +0 -38
  242. package/src/hooks/getGlobalSession/index.js +0 -49
  243. package/src/hooks/getSession/index.js +0 -18
  244. package/src/hooks/getTotalHours/index.js +0 -48
  245. package/src/hooks/statusOpenStores/index.js +0 -156
  246. package/src/hooks/useAcumulateDate/index.js +0 -16
  247. package/src/hooks/useCategoryInStore/index.js +0 -100
  248. package/src/hooks/useEditOneExtProductFoodOptional/index.js +0 -28
  249. package/src/hooks/useEditSubProductOptional/index.js +0 -11
  250. package/src/hooks/useLogout/helpers/BroadcastChannel.js +0 -31
  251. package/src/hooks/useManageQueryParams/index.js +0 -40
  252. package/src/hooks/useModules/index.js +0 -58
  253. package/src/hooks/useSales/helpers/index.js +0 -55
  254. package/src/hooks/useSubscriptionValidation/index.js +0 -41
  255. package/src/index.jsx +0 -9
  256. package/src/security/index.js +0 -1
  257. package/src/utils/UtilDateRange.js +0 -31
  258. /package/src/config/client/{index.js → index.ts} +0 -0
  259. /package/src/config/content/{index.js → index.ts} +0 -0
  260. /package/src/cookies/{index.js → index.ts} +0 -0
  261. /package/src/hooks/getCategoriesWithProduct/helpers/{index.js → index.ts} +0 -0
  262. /package/src/hooks/isTokenExpired/{index.js → index.ts} +0 -0
  263. /package/src/hooks/newMessageSubscription/{index.js → index.ts} +0 -0
  264. /package/src/hooks/newStoreOrderSubscription/{index.js → index.ts} +0 -0
  265. /package/src/hooks/useAnimationFrame/{index.js → index.ts} +0 -0
  266. /package/src/hooks/useAsideCart/helpers/{index.js → index.ts} +0 -0
  267. /package/src/hooks/useAsideCart/{queries.js → queries.ts} +0 -0
  268. /package/src/hooks/useCart/{index.js → index.ts} +0 -0
  269. /package/src/hooks/useCart/{queries.js → queries.ts} +0 -0
  270. /package/src/hooks/useCatWithProduct/{queries.js → queries.ts} +0 -0
  271. /package/src/hooks/useCatWithProductClient/{queries.js → queries.ts} +0 -0
  272. /package/src/hooks/useCategoriesProduct/{queries.js → queries.ts} +0 -0
  273. /package/src/hooks/useCategoryInStore/{queries.js → queries.ts} +0 -0
  274. /package/src/hooks/useChatRoomSubscription/{index.js → index.ts} +0 -0
  275. /package/src/hooks/useCities/{queries.js → queries.ts} +0 -0
  276. /package/src/hooks/useColorByLetters/helpers/{colors.js → colors.ts} +0 -0
  277. /package/src/hooks/useCountries/{queries.js → queries.ts} +0 -0
  278. /package/src/hooks/useCreateDeliveryTime/{index.js → index.ts} +0 -0
  279. /package/src/hooks/useCreateStorePendingToRegister/{queries.js → queries.ts} +0 -0
  280. /package/src/hooks/useDashboardComponents/{index.js → index.ts} +0 -0
  281. /package/src/hooks/useDeleteSubProductOptional/{queries.js → queries.ts} +0 -0
  282. /package/src/hooks/useDepartments/{queries.js → queries.ts} +0 -0
  283. /package/src/hooks/useDessert/helpers/{index.js → index.ts} +0 -0
  284. /package/src/hooks/useDessertWithPrice/{queries.js → queries.ts} +0 -0
  285. /package/src/hooks/useDevices/{index.js → index.ts} +0 -0
  286. /package/src/hooks/useDevices/{queries.js → queries.ts} +0 -0
  287. /package/src/hooks/useDynamicAuth/{queries.js → queries.ts} +0 -0
  288. /package/src/hooks/useEditSubProductOptional/{queries.js → queries.ts} +0 -0
  289. /package/src/hooks/useEvent/{index.js → index.ts} +0 -0
  290. /package/src/hooks/useFavoriteStores/{queries.js → queries.ts} +0 -0
  291. /package/src/hooks/useFetchJson/{index.js → index.ts} +0 -0
  292. /package/src/hooks/useFormatNumberPhone/{index.js → index.ts} +0 -0
  293. /package/src/hooks/useGenerateNumberArray/{index.js → index.ts} +0 -0
  294. /package/src/hooks/useGetCookies/{index.js → index.ts} +0 -0
  295. /package/src/hooks/useGetFoodRecomended/{queries.js → queries.ts} +0 -0
  296. /package/src/hooks/useGetMessagesToRoom/{index.js → index.ts} +0 -0
  297. /package/src/hooks/useGetMinPrice/{queries.js → queries.ts} +0 -0
  298. /package/src/hooks/useGetOneStoreRating/{queries.js → queries.ts} +0 -0
  299. /package/src/hooks/useGetSalesAmountToday/{index.js → index.ts} +0 -0
  300. /package/src/hooks/useGoogleLogin/{loadScript.js → loadScript.ts} +0 -0
  301. /package/src/hooks/useGoogleLogin/{removeScript.js → removeScript.ts} +0 -0
  302. /package/src/hooks/useImagesStore/utils/{index.js → index.ts} +0 -0
  303. /package/src/hooks/useInnerHtml/{index.js → index.ts} +0 -0
  304. /package/src/hooks/useInventory/{index.js → index.ts} +0 -0
  305. /package/src/hooks/useInventory/{useUpdateManageStock.js → useUpdateManageStock.ts} +0 -0
  306. /package/src/hooks/useKeypress/{index.js → index.ts} +0 -0
  307. /package/src/hooks/useLocalBackendIp/{index.js → index.ts} +0 -0
  308. /package/src/hooks/useLocationNavigate/{index.js → index.ts} +0 -0
  309. /package/src/hooks/useManageNewOrder/helpers/{mock.js → mock.ts} +0 -0
  310. /package/src/hooks/useMobile/{index.js → index.ts} +0 -0
  311. /package/src/hooks/useModules/helpers/{index.js → index.ts} +0 -0
  312. /package/src/hooks/useMutateHeight/{index.js → index.ts} +0 -0
  313. /package/src/hooks/useOrderClient/{index.js → index.ts} +0 -0
  314. /package/src/hooks/useOrders/{index.js → index.ts} +0 -0
  315. /package/src/hooks/usePWAInstall/{index.js → index.ts} +0 -0
  316. /package/src/{services/index.js → hooks/useProductsFood/types/index.ts} +0 -0
  317. /package/src/hooks/useProviders/{index.js → index.ts} +0 -0
  318. /package/src/hooks/useProviders/{queries.js → queries.ts} +0 -0
  319. /package/src/hooks/useProvidersStore/{queries.js → queries.ts} +0 -0
  320. /package/src/hooks/useQueryLocationsMap/{queries.js → queries.ts} +0 -0
  321. /package/src/hooks/useReactToPrint/{index.js → index.txt} +0 -0
  322. /package/src/hooks/useRemoveExtraProductFoodsOptional/{queries.js → queries.ts} +0 -0
  323. /package/src/hooks/useRestaurant/{queries.js → queries.ts} +0 -0
  324. /package/src/hooks/useRoads/{queries.js → queries.ts} +0 -0
  325. /package/src/hooks/useRoles/{index.js → index.ts} +0 -0
  326. /package/src/hooks/useRoles/{useRemoveRoles.js → useRemoveRoles.ts} +0 -0
  327. /package/src/hooks/useRoles/{useUpdateRolesPriority.js → useUpdateRolesPriority.ts} +0 -0
  328. /package/src/hooks/useSaveAvailableProduct/{queries.js → queries.ts} +0 -0
  329. /package/src/hooks/useSchedule/{queries.js → queries.ts} +0 -0
  330. /package/src/hooks/useScroll/{index.js → index.ts} +0 -0
  331. /package/src/hooks/useScrollRotate/{index.js → index.ts} +0 -0
  332. /package/src/hooks/useSetImageProducts/{queries.js → queries.ts} +0 -0
  333. /package/src/hooks/useSetSession/{index.js → index.ts} +0 -0
  334. /package/src/hooks/useSetState/{index.js → index.ts} +0 -0
  335. /package/src/hooks/useSetupSchedule/helpers/{index.js → index.ts} +0 -0
  336. /package/src/hooks/useStatusOrdersClient/helpers/{index.js → index.ts} +0 -0
  337. /package/src/hooks/useStore/{queries.js → queries.ts} +0 -0
  338. /package/src/hooks/useStoreCalendar/{index.js → index.ts} +0 -0
  339. /package/src/hooks/useStoreContacts/{queries.js → queries.ts} +0 -0
  340. /package/src/hooks/useStoreTable/{index.js → index.ts} +0 -0
  341. /package/src/hooks/useStoreTable/{queries.js → queries.ts} +0 -0
  342. /package/src/hooks/useTopProductsMovements/{index.js → index.ts} +0 -0
  343. /package/src/hooks/useTotalAllSales/{index.js → index.ts} +0 -0
  344. /package/src/hooks/useTotalProductsInStock/{index.js → index.ts} +0 -0
  345. /package/src/hooks/useTotalProductsSold/{index.js → index.ts} +0 -0
  346. /package/src/hooks/useTotalProductsSolded/{index.js → index.ts} +0 -0
  347. /package/src/hooks/useUpdateExistingOrders/{index.js → index.ts} +0 -0
  348. /package/src/hooks/useUpdateMultipleExtProduct/{queries.js → queries.ts} +0 -0
  349. /package/src/hooks/useUpdateMultipleProducts/{queries.js → queries.ts} +0 -0
  350. /package/src/hooks/useUploadProducts/helpers/{index.js → index.ts} +0 -0
  351. /package/src/hooks/useUploadProducts/helpers/{validateProductDataExcel.js → validateProductDataExcel.ts} +0 -0
  352. /package/src/hooks/useUser/{queries.js → queries.ts} +0 -0
  353. /package/src/mock/dessert/{index.js → index.ts} +0 -0
  354. /package/src/mock/{index.js → index.ts} +0 -0
@@ -0,0 +1,153 @@
1
+ import js from "@eslint/js"
2
+ import { defineConfig } from "eslint/config"
3
+ import importPlugin from "eslint-plugin-import"
4
+ import jsdoc from "eslint-plugin-jsdoc"
5
+ import react from "eslint-plugin-react"
6
+ import globals from "globals"
7
+ import tseslint from "typescript-eslint"
8
+
9
+ export default defineConfig([
10
+ // base JS/TS files
11
+ {
12
+ files: ["**/*.{js,mjs,cjs,ts,mts,cts,jsx,tsx}"],
13
+ plugins: {
14
+ js,
15
+ import: importPlugin, // 👈 ,
16
+ jsdoc,
17
+ react,
18
+ "react-hooks": require("eslint-plugin-react-hooks"),
19
+ },
20
+ extends: ["js/recommended"],
21
+ languageOptions: {
22
+ globals: { ...globals.browser, ...globals.node },
23
+ ecmaVersion: "latest",
24
+ sourceType: "module",
25
+ },
26
+ },
27
+
28
+ // recommended TS config (from typescript-eslint)
29
+ tseslint.configs.recommended,
30
+
31
+ // Strict, opinionated ruleset applied across the codebase
32
+ {
33
+ files: ["**/*.{js,mjs,cjs,ts,mts,cts,jsx,tsx}"],
34
+ // rely on previously loaded parsers/plugins (typescript-eslint, etc.)
35
+ rules: {
36
+ // JavaScript hygiene
37
+ eqeqeq: "error",
38
+ curly: ["error", "multi-line"],
39
+ "no-var": "error",
40
+ "prefer-const": ["error", { destructuring: "all" }],
41
+ "no-debugger": "error",
42
+ "no-console": ["warn", { allow: ["warn", "error"] }],
43
+ "consistent-return": "error",
44
+ "no-implicit-coercion": "error",
45
+
46
+ // complexity / maintainability
47
+ complexity: ["warn", 10],
48
+ "max-params": ["warn", 4],
49
+ "max-depth": ["warn", 4],
50
+ "max-lines": ["warn", { max: 400, skipBlankLines: true, skipComments: true }],
51
+
52
+ // import/order (requires eslint-plugin-import)
53
+ "import/order": [
54
+ "error",
55
+ {
56
+ groups: ["builtin", "external", "internal", "parent", "sibling", "index", "type"],
57
+ "newlines-between": "always",
58
+ alphabetize: { order: "asc", caseInsensitive: true },
59
+ },
60
+ ],
61
+
62
+ // encourage clear async/await and promise handling
63
+ "no-return-await": "error",
64
+ "require-atomic-updates": "error",
65
+
66
+ // jsdoc (requires eslint-plugin-jsdoc) — keep docs enforced
67
+ "jsdoc/check-alignment": "warn",
68
+ "jsdoc/require-jsdoc": [
69
+ "warn",
70
+ {
71
+ require: {
72
+ FunctionDeclaration: true,
73
+ MethodDefinition: true,
74
+ ClassDeclaration: true,
75
+ ArrowFunctionExpression: false,
76
+ FunctionExpression: false,
77
+ },
78
+ },
79
+ ],
80
+ "jsdoc/require-param": "error",
81
+ "jsdoc/require-returns": "error",
82
+ },
83
+ settings: {
84
+ react: { version: "detect" },
85
+ // import resolver for TypeScript projects (if installed)
86
+ "import/parsers": { "@typescript-eslint/parser": [".ts", ".tsx"] },
87
+ "import/resolver": {
88
+ typescript: {
89
+ // Use default tsconfig lookup. Override if monorepo packages have own tsconfigs.
90
+ },
91
+ },
92
+ },
93
+ },
94
+
95
+ // React / Next / Hooks specific rules
96
+ {
97
+ files: ["**/*.{jsx,tsx}"],
98
+ rules: {
99
+ "react/prop-types": "off", // TS covers prop types
100
+ "react/react-in-jsx-scope": "off",
101
+ "react/jsx-uses-react": "off",
102
+ "react/jsx-boolean-value": ["error", "always"],
103
+ "react/jsx-curly-brace-presence": ["error", { props: "always", children: "never" }],
104
+ "react/jsx-no-useless-fragment": "error",
105
+ "react-hooks/rules-of-hooks": "error",
106
+ "react-hooks/exhaustive-deps": ["warn", { additionalHooks: "(useRecoilCallback)" }],
107
+ },
108
+ // ensure react plugin is available in projects using JSX
109
+ // (no explicit plugin import here plugin must be installed)
110
+ },
111
+
112
+ // Node-only package override for packages/logic (no browser globals, no React)
113
+ {
114
+ files: ["packages/logic/**/*.{ts,js}"],
115
+ languageOptions: {
116
+ globals: { ...globals.node },
117
+ sourceType: "module",
118
+ },
119
+ rules: {
120
+ // logic package should be pure and side-effect free where possible
121
+ "no-restricted-syntax": [
122
+ "error",
123
+ {
124
+ selector: "CallExpression[callee.name='fetch']",
125
+ message: "Avoid fetch in logic package inject HTTP clients from caller.",
126
+ },
127
+ ],
128
+ "import/no-extraneous-dependencies": ["error", { devDependencies: false, optionalDependencies: false }],
129
+ // allow fewer UI-related rules
130
+ "react/no-unknown-property": "off",
131
+ },
132
+ },
133
+
134
+ // GraphQL linting placeholder (if @graphql-eslint installed + .graphqlrc present)
135
+ {
136
+ files: ["**/*.graphql", "**/*.gql", "**/*.{ts,tsx,js,jsx}"],
137
+ rules: {
138
+ // keep GraphQL checks opt-in via plugin these are examples you can enable
139
+ // '@graphql-eslint/no-deprecated-fields': 'warn',
140
+ // '@graphql-eslint/known-type-names': 'error',
141
+ },
142
+ },
143
+
144
+ // Strictness for commit-time / CI (can be toggled by CI pipeline)
145
+ {
146
+ files: ["**/*.{js,ts,tsx}"],
147
+ // treat some warnings as errors in CI — consumer can override in CI env
148
+ rules: {
149
+ // This is intentionally conservative in local dev CI pipeline can set env to escalate
150
+ "no-warning-comments": ["warn", { terms: ["todo", "fixme", "xxx"], location: "start" }],
151
+ },
152
+ },
153
+ ])
package/package.json CHANGED
@@ -1,50 +1,35 @@
1
1
  {
2
- "author": "",
3
- "dependencies": {
4
- "@apollo/client": "3.6.9",
5
- "@typescript-eslint/parser": "^5.37.0",
6
- "file-saver": "2.0.5",
7
- "js-cookie": "3.0.1",
8
- "lodash": "^4.17.21",
9
- "moment": "^2.29.4",
10
- "react": "^19.0.0",
11
- "react-dom": "^19.0.0",
12
- "react-query": "^3.39.2",
13
- "xlsx": "0.18.5"
2
+ "main": "dist/index.cjs",
3
+ "module": "dist/index.mjs",
4
+ "types": "dist/index.d.ts",
5
+ "exports": {
6
+ ".": {
7
+ "import": "./dist/index.mjs",
8
+ "require": "./dist/index.cjs",
9
+ "types": "./dist/index.d.ts"
10
+ }
14
11
  },
15
- "description": "description-pkg-hook",
16
- "devDependencies": {
17
- "@babel/preset-env": "^7.19.1",
18
- "@babel/preset-react": "^7.18.6",
19
- "@babel/preset-typescript": "^7.18.6",
20
- "@types/node": "^20.11.16",
21
- "@types/react": "^18.0.20",
22
- "@typescript-eslint/eslint-plugin": "5.29.0",
23
- "@typescript-eslint/parser": "5.29.0",
24
- "eslint": "^8.0.1",
25
- "eslint-config-standard": "^17.0.0",
26
- "eslint-plugin-import": "^2.25.2",
27
- "eslint-plugin-n": "^15.0.0",
28
- "eslint-plugin-promise": "^6.0.0",
29
- "eslint-plugin-react": "^7.33.2",
30
- "eslint-plugin-react-hooks": "^4.6.0"
31
- },
32
- "license": "ISC",
33
- "main": "/src/index.jsx",
34
- "name": "npm-pkg-hook",
35
- "publishConfig": {
36
- "registry": "https://registry.npmjs.org/"
37
- },
38
- "repository": {
39
- "type": "git",
40
- "url": "https://github.com/Jesus123780/pkg-hook"
41
- },
42
- "private": false,
43
12
  "scripts": {
13
+ "build": "tsup",
14
+ "prepare": "npm run build",
15
+ "prepublishOnly": "npm run build",
44
16
  "lint": "eslint .",
45
- "lint:fix": "npm run lint -- --fix",
46
- "rm": "rm -rf node_modules package-lock.json && npm i",
47
- "test": "echo \"Error: no test specified\" && exit 1"
17
+ "test": "jest"
18
+ },
19
+ "peerDependencies": {
20
+ "react": "^18 || ^19",
21
+ "react-dom": "^18 || ^19",
22
+ "next": "^14 || ^15",
23
+ "@apollo/client": "^3 || ^4",
24
+ "graphql": "^16"
25
+ },
26
+ "devDependencies": {
27
+ "tsup": "8.5.1",
28
+ "typescript": "5.9.3",
29
+ "@types/react": "18.0.20",
30
+ "@types/js-cookie": "3.0.6",
31
+ "@types/file-saver": "2.0.7"
48
32
  },
49
- "version": "1.12.4"
50
- }
33
+ "version": "1.12.8",
34
+ "name": "npm-pkg-hook"
35
+ }
@@ -0,0 +1,39 @@
1
+ import { onError } from '@apollo/client/link/error'
2
+
3
+ interface GraphQLErrorExtension {
4
+ code?: string
5
+ message?: string
6
+ }
7
+
8
+ interface GraphQLErrorItem {
9
+ extensions?: GraphQLErrorExtension
10
+ }
11
+
12
+ interface ErrorWithErrors {
13
+ errors?: GraphQLErrorItem[]
14
+ }
15
+
16
+ export const errorHandler = (error: ErrorWithErrors | null | undefined): boolean | null => {
17
+ let logout: boolean | null = null
18
+ if (error && Array.isArray(error?.errors)) {
19
+ error.errors?.length && error?.errors?.forEach((err: GraphQLErrorItem) => {
20
+ if (err?.extensions) {
21
+ const { code, message }: GraphQLErrorExtension = err?.extensions || {}
22
+ if (code === 'UNAUTHENTICATED' || code === 'FORBIDDEN') {
23
+ logout = true
24
+ return {
25
+ status: 'FORBIDDEN',
26
+ message
27
+ }
28
+ }
29
+ }
30
+ })
31
+ }
32
+ return logout
33
+ }
34
+
35
+ export const errorLink = onError(({ graphQLErrors, networkError }) => {
36
+ if (graphQLErrors)graphQLErrors.map(({ message, path }) => { return console.log(`[GraphQL error]: Message: ${message}, Path: ${path}`) })
37
+
38
+ if (networkError) console.log(`[Network error]: ${networkError}`)
39
+ })
@@ -3,12 +3,12 @@
3
3
  * @param {number} num - The number of minutes (between 1 and 60).
4
4
  * @returns {string} A string indicating the original number and the result of adding 10 minutes.
5
5
  */
6
- export const addTenMinutes = (num) => {
6
+ export const addTenMinutes = (num: number) => {
7
7
  if (num > 60) return ''
8
8
  if (num >= 50) {
9
9
  const newNum = num - 10
10
10
  return `${newNum} - ${60} min`
11
- } else {
12
- return `${num} - ${num + 10} min`
13
- }
11
+ }
12
+ return `${num} - ${num + 10} min`
13
+
14
14
  }
@@ -1,15 +1,26 @@
1
- function deg2rad (deg) {
1
+ /**
2
+ *
3
+ * @param deg
4
+ */
5
+ function deg2rad(deg: number): number {
2
6
  return deg * (Math.PI / 180)
3
7
  }
4
8
 
5
9
  // Función para calcular la distancia entre un punto fijo y un punto dado utilizando la fórmula de Haversine
6
- export function calculateLogLatHaversine (lat1, lon1, lat2, lon2) {
10
+ /**
11
+ *
12
+ * @param lat1
13
+ * @param lon1
14
+ * @param lat2
15
+ * @param lon2
16
+ */
17
+ export function calculateLogLatHaversine(lat1: number, lon1: number, lat2: number, lon2: number): number {
7
18
  const radioTierra = 6371 // Radio de la Tierra en kilómetros
8
19
  const dLat = deg2rad(lat2 - lat1)
9
20
  const dLon = deg2rad(lon2 - lon1)
10
21
  const a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +
11
- Math.cos(deg2rad(lat1)) * Math.cos(deg2rad(lat2)) *
12
- Math.sin(dLon / 2) * Math.sin(dLon / 2)
22
+ Math.cos(deg2rad(lat1)) * Math.cos(deg2rad(lat2)) *
23
+ Math.sin(dLon / 2) * Math.sin(dLon / 2)
13
24
  const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a))
14
25
  const distancia = radioTierra * c
15
26
  return distancia
@@ -1,4 +1,4 @@
1
- export const completeSchedules = (dataSchedules) => {
1
+ export const completeSchedules = (dataSchedules: { schDay: number; schHoSta: string; schHoEnd: string }[]) => {
2
2
  // Días de la semana
3
3
  const daysSemana = ['Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado', 'Domingo']
4
4
 
@@ -10,13 +10,13 @@ export const completeSchedules = (dataSchedules) => {
10
10
  }
11
11
  mapa[day].push({ horaInicio: horario.schHoSta, horaFin: horario.schHoEnd })
12
12
  return mapa
13
- }, {})
13
+ }, {} as Record<string, { horaInicio: string; horaFin: string }[]>)
14
14
 
15
15
  // Completar los días que faltan y formatear el objeto
16
- const horariosFormateados = daysSemana.map((day, index) => ({
16
+ const horariosFormateados = daysSemana.map((day, index) => {return {
17
17
  day,
18
18
  horarios: horariosPorDia[day] || [{ horaInicio: '', horaFin: '' }]
19
- }))
19
+ }})
20
20
 
21
21
  return horariosFormateados
22
22
  }
@@ -0,0 +1,18 @@
1
+ /**
2
+ *
3
+ * @param time12Hour
4
+ */
5
+ export function convertToMilitaryTime(time12Hour: string): string {
6
+ const [time, period]: [string, string] = time12Hour.split(' ') as [string, string]
7
+ let [hours, minutes]: [string, string] = time.split(':') as [string, string]
8
+
9
+ if (period === 'PM' && hours !== '12') {
10
+ hours = String(Number(hours) + 12)
11
+ }
12
+
13
+ if (period === 'AM' && hours === '12') {
14
+ hours = '00'
15
+ }
16
+
17
+ return `${hours}:${minutes}`
18
+ }
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Generate the store URL based on given parameters.
3
+ * @returns The generated URL or '/' if any field is missing.
4
+ */
5
+ type City = { cName: string };
6
+ type Department = { dName: string };
7
+
8
+ interface GenerateStoreURLParams {
9
+ city: City;
10
+ department: Department;
11
+ storeName: string;
12
+ idStore: string;
13
+ rootMainPath?: string;
14
+ }
15
+
16
+ export const generateStoreURL = ({
17
+ city,
18
+ department,
19
+ storeName,
20
+ idStore,
21
+ rootMainPath = 'delivery'
22
+ }: GenerateStoreURLParams): string => {
23
+ // Validate all necessary fields
24
+ if (
25
+ !process.env.MAIN_URL_BASE ||
26
+ !city?.cName ||
27
+ !department?.dName ||
28
+ !storeName ||
29
+ !idStore
30
+ ) {
31
+ return '/' // Return '/' or any default case you'd prefer
32
+ }
33
+
34
+ const cityName = city.cName.toLocaleLowerCase()
35
+ const departmentName = department.dName.toLocaleLowerCase()
36
+
37
+ // Replace spaces in storeName with hyphens
38
+ const formattedStoreName = storeName.replace(/ /g, '-')
39
+
40
+ return `${process.env.MAIN_URL_BASE}/${rootMainPath}/${cityName}-${departmentName}/${formattedStoreName}/${idStore}`
41
+ }
@@ -1,5 +1,5 @@
1
- import * as Excel from 'xlsx'
2
1
  import { saveAs } from 'file-saver'
2
+ import * as Excel from 'xlsx'
3
3
 
4
4
  /**
5
5
  * Class to generate Excel reports.
@@ -11,19 +11,23 @@ export class GenerateReport {
11
11
  * @param {number} type - The type of report to generate.
12
12
  * @throws Will throw an error if data is not an array or type is not a valid number.
13
13
  */
14
- GenExcelReport (data, type) {
14
+ GenExcelReport(data: object[], type: number): void {
15
15
  if (!Array.isArray(data)) {
16
- throw new Error('Data must be an array of objects.')
16
+ throw new TypeError('Data must be an array of objects.')
17
17
  }
18
18
 
19
19
  if (typeof type !== 'number') {
20
- throw new Error('Type must be a valid number.')
20
+ throw new TypeError('Type must be a valid number.')
21
21
  }
22
22
 
23
23
  const ws = Excel.utils.json_to_sheet(data)
24
24
 
25
25
  // Apply bold font to the header row
26
- const range = Excel.utils.decode_range(ws['!ref'])
26
+ const ref = ws['!ref']
27
+ if (!ref) {
28
+ throw new TypeError('Worksheet reference is undefined.')
29
+ }
30
+ const range = Excel.utils.decode_range(ref)
27
31
  for (let C = range.s.c; C <= range.e.c; ++C) {
28
32
  const cell = ws[Excel.utils.encode_cell({ r: 0, c: C })]
29
33
  if (cell) {
@@ -40,10 +44,10 @@ export class GenerateReport {
40
44
  const excelBuffer = Excel.write(wb, { bookType: 'xlsx', type: 'array' })
41
45
  const blob = new Blob([excelBuffer], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' })
42
46
  const fileName = this.GenExcelReportFileName(type)
43
- if (fileName != null) {
47
+ if (fileName) {
44
48
  saveAs(blob, String(fileName))
45
49
  } else {
46
- throw new Error('Invalid report type provided.')
50
+ throw new TypeError('Invalid report type provided.')
47
51
  }
48
52
  }
49
53
 
@@ -52,11 +56,11 @@ export class GenerateReport {
52
56
  * @param {number} type - The type of report.
53
57
  * @returns {string | null} The file name for the report, or null if type is invalid.
54
58
  */
55
- GenExcelReportFileName (type) {
56
- const fileNames = {
57
- 1: `report_${new Date().toISOString().replace(/[:.]/g, '-')}.xlsx`
59
+ GenExcelReportFileName(type: number): string | null {
60
+ const fileNames: { [key: number]: string } = {
61
+ 1: `report_${new Date().toISOString().replace(':', '-').replace('.', '-')}.xlsx`
58
62
  }
59
63
 
60
- return fileNames[type] ? fileNames[type] : null
64
+ return fileNames[type] ?? null
61
65
  }
62
66
  }
@@ -1,4 +1,4 @@
1
- export const getCardType = (cardNum) => {
1
+ export const getCardType = (cardNum: string) => {
2
2
  let payCardType = ''
3
3
 
4
4
  if (cardNum.startsWith('4')) {
@@ -1,13 +1,13 @@
1
1
  import { jaccardSimilarity } from './helpers'
2
2
 
3
3
  /**
4
- * Get categories that contain products with names similar to the given product name.
5
- * Uses the Jaccard similarity coefficient for string comparison.
6
- * @param {Array} data - The array of categories with product information.
7
- * @param {string} productName - The name of the product to search for.
8
- * @param {number} similarityThreshold - The minimum similarity threshold for products (0.0 to 1.0).
9
- * @returns {Array} - An array of categories containing similar products.
10
- */
4
+ * Get categories that contain products with names similar to the given product name.
5
+ * Uses the Jaccard similarity coefficient for string comparison.
6
+ * @param {Array} data - The array of categories with product information.
7
+ * @param {string} productName - The name of the product to search for.
8
+ * @param {number} similarityThreshold - The minimum similarity threshold for products (0.0 to 1.0).
9
+ * @returns {Array} - An array of categories containing similar products.
10
+ */
11
11
  export const getCategoriesWithProduct = (
12
12
  data = [],
13
13
  productName = '',
@@ -0,0 +1,69 @@
1
+ import crypto from 'node:crypto'
2
+
3
+ /**
4
+ *
5
+ * @param password
6
+ * @param salt
7
+ */
8
+ function generateEncryptionKey(password: string, salt: string): string {
9
+ return crypto
10
+ .pbkdf2Sync(password, salt, 100000, 32, 'sha256')
11
+ .toString('hex')
12
+ .slice(0, 32)
13
+ }
14
+
15
+ const ENCRYPTION_KEY = generateEncryptionKey(
16
+ 'tu-contraseña',
17
+ 'alguna-sal-segura'
18
+ )
19
+ const IV_LENGTH = 12 // Para AES-GCM, el IV recomendado es 12 bytes
20
+
21
+ export const encryptSession = (text: string): string | null => {
22
+ try {
23
+ const iv = crypto.randomBytes(IV_LENGTH)
24
+ const cipher = crypto.createCipheriv(
25
+ 'aes-256-gcm',
26
+ Buffer.from(ENCRYPTION_KEY),
27
+ iv
28
+ )
29
+ let encrypted = cipher.update(text, 'utf8')
30
+ encrypted = Buffer.concat([encrypted, cipher.final()])
31
+ const authTag = cipher.getAuthTag()
32
+ // Concatenar IV, AuthTag y el texto cifrado, separados por ':'
33
+ return [
34
+ iv.toString('hex'),
35
+ authTag.toString('hex'),
36
+ encrypted.toString('hex')
37
+ ].join(':')
38
+ } catch (error) {
39
+ if (error instanceof Error) {
40
+ console.error('Error de encriptación:', error.message)
41
+ }
42
+ return null
43
+ }
44
+ }
45
+
46
+ export const decryptSession = (text: string): string | null => {
47
+ try {
48
+ if (!text) return null
49
+ const textParts = text.split(':')
50
+ if (textParts.length !== 3) return null
51
+ const iv = Buffer.from(textParts[0], 'hex')
52
+ const authTag = Buffer.from(textParts[1], 'hex')
53
+ const encryptedText = Buffer.from(textParts[2], 'hex')
54
+ const decipher = crypto.createDecipheriv(
55
+ 'aes-256-gcm',
56
+ Buffer.from(ENCRYPTION_KEY),
57
+ iv
58
+ )
59
+ decipher.setAuthTag(authTag)
60
+ let decrypted = decipher.update(encryptedText)
61
+ decrypted = Buffer.concat([decrypted, decipher.final()])
62
+ return decrypted.toString('utf8')
63
+ } catch (error) {
64
+ if (error instanceof Error) {
65
+ console.error('Error de desencriptación:', error.message)
66
+ }
67
+ return null
68
+ }
69
+ }
@@ -0,0 +1,72 @@
1
+ import { Cookies } from '../../cookies'
2
+
3
+ /**
4
+ * Decodes a JWT safely without verifying signature.
5
+ * Use ONLY for reading payload data.
6
+ *
7
+ * @param {string} token - JWT string
8
+ * @returns {Record<string, any> | null}
9
+ */
10
+ const decodeJwtPayload = (token: string): Record<string, any> | null => {
11
+ try {
12
+ const [, payload] = token.split('.')
13
+ if (!payload) return null
14
+
15
+ const decoded = Buffer.from(payload, 'base64').toString('utf-8')
16
+ return JSON.parse(decoded)
17
+ } catch {
18
+ return null
19
+ }
20
+ }
21
+
22
+ /**
23
+ * Gets session data from cookie "session".
24
+ * Designed for Next.js 15 App Router (server-side).
25
+ *
26
+ * @returns {Promise<{
27
+ * isSession: boolean
28
+ * token?: string
29
+ * user?: Record<string, any>
30
+ * deviceid?: string
31
+ * error?: string
32
+ * }>}
33
+ */
34
+ export const getSession = async () => {
35
+ try {
36
+ const token = Cookies.get('session')
37
+ return new Promise((resolve) => {
38
+ if (!token) {
39
+ resolve({ isSession: false })
40
+ return
41
+ }
42
+ const payload = decodeJwtPayload(token)
43
+ if (!payload) {
44
+ resolve({ isSession: false })
45
+ return
46
+ }
47
+ const { user, deviceid, exp } = payload
48
+ const currentTime = Math.floor(Date.now() / 1000)
49
+ if (exp && currentTime >= exp) {
50
+ resolve({ isSession: false })
51
+ return
52
+ }
53
+ resolve({
54
+ isSession: true,
55
+ token,
56
+ user,
57
+ deviceid
58
+ })
59
+ })
60
+ } catch (error) {
61
+ if (error instanceof Error) {
62
+ return {
63
+ isSession: false,
64
+ error: String(error.message)
65
+ }
66
+ }
67
+ return {
68
+ isSession: false,
69
+ error: 'Unexpected session error'
70
+ }
71
+ }
72
+ }