@greatapps/common 1.1.516 → 1.1.517

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 (407) hide show
  1. package/dist/components/account/ConfigurationsMyAccountModal.mjs +1 -1
  2. package/dist/components/account/ConfigurationsMyAccountModal.mjs.map +1 -1
  3. package/dist/components/account/ConfirmDeleteAccountModal.mjs.map +1 -1
  4. package/dist/components/account/ConfirmGlobalPreferencesModal.mjs.map +1 -1
  5. package/dist/components/account/DeleteAccountModal.mjs.map +1 -1
  6. package/dist/components/account/DisableTwoFactorAuthModal.mjs.map +1 -1
  7. package/dist/components/account/IsntPossibleDeleteAccountModal.mjs.map +1 -1
  8. package/dist/components/account/TwoFactorAuthModal.mjs.map +1 -1
  9. package/dist/components/account/hooks/useChangePhoneForm.mjs.map +1 -1
  10. package/dist/components/account/hooks/useTwoFactorAuthForm.mjs.map +1 -1
  11. package/dist/components/account/sections/ChangeEmailModal.mjs.map +1 -1
  12. package/dist/components/account/sections/ChangePasswordSection.mjs.map +1 -1
  13. package/dist/components/account/sections/ChangePhoneModal.mjs.map +1 -1
  14. package/dist/components/account/sections/MyProfileSection.mjs.map +1 -1
  15. package/dist/components/account/sections/PreferencesSection.mjs.map +1 -1
  16. package/dist/components/account/sections/SecuritySection.mjs.map +1 -1
  17. package/dist/components/account/sections/TokenSection.mjs.map +1 -1
  18. package/dist/components/embeds/CrispEmbed.mjs.map +1 -1
  19. package/dist/components/embeds/EmbedWidgets.mjs.map +1 -1
  20. package/dist/components/embeds/FrillEmbed.mjs.map +1 -1
  21. package/dist/components/layouts/AppMobileNavBar.mjs.map +1 -1
  22. package/dist/components/layouts/AppNavBar.mjs.map +1 -1
  23. package/dist/components/layouts/MdSideBarNavigation.mjs.map +1 -1
  24. package/dist/components/layouts/NavBar.mjs.map +1 -1
  25. package/dist/components/layouts/NotificationsPopover.mjs.map +1 -1
  26. package/dist/components/layouts/ProfilePopover.mjs.map +1 -1
  27. package/dist/components/layouts/SideBarNavigation.mjs.map +1 -1
  28. package/dist/components/layouts/UsersSelectorPopover.mjs.map +1 -1
  29. package/dist/components/layouts/WhitelabelCodes.mjs.map +1 -1
  30. package/dist/components/modals/BuyCreditsModal.mjs.map +1 -1
  31. package/dist/components/modals/PaidPlanRequiredModal.mjs.map +1 -1
  32. package/dist/components/modals/cards/AddCardModal.mjs.map +1 -1
  33. package/dist/components/modals/cards/CardFormFields.mjs.map +1 -1
  34. package/dist/components/navigation/CancelledSubscriptionBanner.mjs.map +1 -1
  35. package/dist/components/navigation/NavItemsContext.mjs.map +1 -1
  36. package/dist/components/navigation/ProjectSelectorPopover.mjs.map +1 -1
  37. package/dist/components/navigation/shells/TabsMobileShell.mjs.map +1 -1
  38. package/dist/components/navigation/subcomponents/BottomLinks.mjs.map +1 -1
  39. package/dist/components/navigation/subcomponents/ProjectSelector.mjs.map +1 -1
  40. package/dist/components/pages/NotFoundPage.mjs.map +1 -1
  41. package/dist/components/pages/notifications/Notifications.mjs.map +1 -1
  42. package/dist/components/ui/buttons/Button.mjs.map +1 -1
  43. package/dist/components/ui/buttons/CancelButton.mjs.map +1 -1
  44. package/dist/components/ui/buttons/CopyButton.mjs.map +1 -1
  45. package/dist/components/ui/data-display/Accordion.mjs.map +1 -1
  46. package/dist/components/ui/data-display/Badge.mjs.map +1 -1
  47. package/dist/components/ui/data-display/Card.mjs.map +1 -1
  48. package/dist/components/ui/data-display/CardBrandIcons.mjs.map +1 -1
  49. package/dist/components/ui/data-display/CardItem.mjs.map +1 -1
  50. package/dist/components/ui/data-display/Pagination.mjs.map +1 -1
  51. package/dist/components/ui/data-display/PaymentInfoCard.mjs.map +1 -1
  52. package/dist/components/ui/data-display/ScrollArea.mjs.map +1 -1
  53. package/dist/components/ui/data-display/Separator.mjs.map +1 -1
  54. package/dist/components/ui/data-display/Table.mjs.map +1 -1
  55. package/dist/components/ui/data-display/Tabs.mjs.map +1 -1
  56. package/dist/components/ui/feedback/CircularProgress.mjs.map +1 -1
  57. package/dist/components/ui/feedback/DefaultCircularProgress.mjs.map +1 -1
  58. package/dist/components/ui/feedback/LoadingOverlay.mjs.map +1 -1
  59. package/dist/components/ui/feedback/Progress.mjs.map +1 -1
  60. package/dist/components/ui/feedback/Skeleton.mjs.map +1 -1
  61. package/dist/components/ui/feedback/Toast.mjs.map +1 -1
  62. package/dist/components/ui/form/Calendar.mjs.map +1 -1
  63. package/dist/components/ui/form/Checkbox.mjs.map +1 -1
  64. package/dist/components/ui/form/ComboboxField.mjs.map +1 -1
  65. package/dist/components/ui/form/DatePicker.mjs +2 -2
  66. package/dist/components/ui/form/DatePicker.mjs.map +1 -1
  67. package/dist/components/ui/form/DateRangePicker.mjs.map +1 -1
  68. package/dist/components/ui/form/FormField.mjs.map +1 -1
  69. package/dist/components/ui/form/Input.mjs.map +1 -1
  70. package/dist/components/ui/form/InputOtp.mjs.map +1 -1
  71. package/dist/components/ui/form/PhoneInput.mjs.map +1 -1
  72. package/dist/components/ui/form/RadioGroup.mjs.map +1 -1
  73. package/dist/components/ui/form/Select.mjs +1 -1
  74. package/dist/components/ui/form/Select.mjs.map +1 -1
  75. package/dist/components/ui/form/Switch.mjs.map +1 -1
  76. package/dist/components/ui/form/Textarea.mjs.map +1 -1
  77. package/dist/components/ui/overlay/Command.mjs.map +1 -1
  78. package/dist/components/ui/overlay/Dialog.mjs.map +1 -1
  79. package/dist/components/ui/overlay/Popover.mjs.map +1 -1
  80. package/dist/components/ui/overlay/Sheet.mjs.map +1 -1
  81. package/dist/components/ui/overlay/Tooltip.mjs.map +1 -1
  82. package/dist/components/widgets/ImageUpload/ImageCropModal.mjs.map +1 -1
  83. package/dist/components/widgets/ImageUpload/ImageTooSmallModal.mjs.map +1 -1
  84. package/dist/components/widgets/ImageUpload/ImageUpload.mjs.map +1 -1
  85. package/dist/components/widgets/ImageUpload/index.mjs.map +1 -1
  86. package/dist/components/widgets/notifications/NotificationCard.mjs.map +1 -1
  87. package/dist/hooks/copy-to-clipboard.hook.mjs.map +1 -1
  88. package/dist/hooks/useAuthQueryKey.mjs.map +1 -1
  89. package/dist/index.mjs.map +1 -1
  90. package/dist/infra/utils/array.mjs.map +1 -1
  91. package/dist/infra/utils/date.mjs.map +1 -1
  92. package/dist/middleware.mjs.map +1 -1
  93. package/dist/modules/accounts/actions/account-management.action.mjs.map +1 -1
  94. package/dist/modules/accounts/actions/find-current-account.action.mjs.map +1 -1
  95. package/dist/modules/accounts/actions/get-account-token.action.mjs.map +1 -1
  96. package/dist/modules/accounts/actions/list-currencies.action.mjs.map +1 -1
  97. package/dist/modules/accounts/actions/list-timezones.action.mjs.map +1 -1
  98. package/dist/modules/accounts/hooks/current-account.hook.mjs.map +1 -1
  99. package/dist/modules/accounts/hooks/use-account-token.hook.mjs.map +1 -1
  100. package/dist/modules/accounts/hooks/useAccountManagement.mjs.map +1 -1
  101. package/dist/modules/accounts/hooks/useCurrencies.mjs.map +1 -1
  102. package/dist/modules/accounts/hooks/useTimezones.mjs.map +1 -1
  103. package/dist/modules/accounts/hooks/useViaCep.mjs.map +1 -1
  104. package/dist/modules/accounts/services/account-token.service.mjs.map +1 -1
  105. package/dist/modules/accounts/services/account.service.mjs.map +1 -1
  106. package/dist/modules/auth/actions/validate-session.action.mjs.map +1 -1
  107. package/dist/modules/auth/hooks/login.hook.mjs.map +1 -1
  108. package/dist/modules/auth/hooks/logout.hook.mjs.map +1 -1
  109. package/dist/modules/auth/hooks/register.hook.mjs.map +1 -1
  110. package/dist/modules/auth/hooks/useManagementPermissions.mjs.map +1 -1
  111. package/dist/modules/auth/hooks/useUserQuery.mjs.map +1 -1
  112. package/dist/modules/auth/utils/assert-management-permission.mjs.map +1 -1
  113. package/dist/modules/auth/utils/assert-management-subscription.mjs.map +1 -1
  114. package/dist/modules/auth/utils/assert-paid-subscription.mjs.map +1 -1
  115. package/dist/modules/auth/utils/assert-subscription-addon.mjs.map +1 -1
  116. package/dist/modules/auth/utils/build-wl-override.mjs.map +1 -1
  117. package/dist/modules/cards/actions/create-card.action.mjs.map +1 -1
  118. package/dist/modules/cards/actions/delete-card.action.mjs.map +1 -1
  119. package/dist/modules/cards/actions/find-card-by-id.action.mjs.map +1 -1
  120. package/dist/modules/cards/actions/list-cards.action.mjs.map +1 -1
  121. package/dist/modules/cards/actions/set-default-card.action.mjs.map +1 -1
  122. package/dist/modules/cards/hooks/card-by-id.hook.mjs.map +1 -1
  123. package/dist/modules/cards/hooks/cards.hook.mjs.map +1 -1
  124. package/dist/modules/cards/hooks/create-card.hook.mjs.map +1 -1
  125. package/dist/modules/cards/hooks/delete-card.hook.mjs.map +1 -1
  126. package/dist/modules/cards/hooks/set-default-card.hook.mjs.map +1 -1
  127. package/dist/modules/cards/services/cards.service.mjs.map +1 -1
  128. package/dist/modules/cards/types.mjs.map +1 -1
  129. package/dist/modules/ia-credits/actions/list-ia-credits.action.mjs.map +1 -1
  130. package/dist/modules/ia-credits/hooks/ia-credits.hook.mjs.map +1 -1
  131. package/dist/modules/images/actions/process-image.action.mjs.map +1 -1
  132. package/dist/modules/images/constants/image.constants.mjs.map +1 -1
  133. package/dist/modules/images/hooks/use-image-upload.hook.mjs.map +1 -1
  134. package/dist/modules/images/services/image-processing.service.mjs.map +1 -1
  135. package/dist/modules/images/utils/base64.mjs.map +1 -1
  136. package/dist/modules/images/utils/compress-image.mjs.map +1 -1
  137. package/dist/modules/images/utils/crop-image.mjs.map +1 -1
  138. package/dist/modules/images/utils/validate-image.mjs.map +1 -1
  139. package/dist/modules/plans/actions/find-plan-by-id.action.mjs.map +1 -1
  140. package/dist/modules/plans/actions/list-plans.action.mjs.map +1 -1
  141. package/dist/modules/plans/hooks/list-plans.hook.mjs.map +1 -1
  142. package/dist/modules/plans/hooks/use-has-plan-addon.hook.mjs.map +1 -1
  143. package/dist/modules/plans/hooks/use-plan-by-id.hook.mjs.map +1 -1
  144. package/dist/modules/plans/services/plans.service.mjs.map +1 -1
  145. package/dist/modules/plans/types/plan.type.mjs.map +1 -1
  146. package/dist/modules/plans/utils/map-api-plan-to-ui.mjs.map +1 -1
  147. package/dist/modules/projects/actions/add-project-user.action.mjs.map +1 -1
  148. package/dist/modules/projects/actions/create-project.action.mjs.map +1 -1
  149. package/dist/modules/projects/actions/delete-project.action.mjs.map +1 -1
  150. package/dist/modules/projects/actions/find-project.action.mjs.map +1 -1
  151. package/dist/modules/projects/actions/list-all-account-users.action.mjs.map +1 -1
  152. package/dist/modules/projects/actions/list-available-users.action.mjs.map +1 -1
  153. package/dist/modules/projects/actions/list-project-users.action.mjs.map +1 -1
  154. package/dist/modules/projects/actions/list-projects.action.mjs.map +1 -1
  155. package/dist/modules/projects/actions/remove-project-user.action.mjs.map +1 -1
  156. package/dist/modules/projects/actions/update-project.action.mjs.map +1 -1
  157. package/dist/modules/projects/hooks/add-project-user.hook.mjs.map +1 -1
  158. package/dist/modules/projects/hooks/create-project.hook.mjs.map +1 -1
  159. package/dist/modules/projects/hooks/delete-project.hook.mjs.map +1 -1
  160. package/dist/modules/projects/hooks/find-project.hook.mjs.map +1 -1
  161. package/dist/modules/projects/hooks/list-all-account-users.hook.mjs.map +1 -1
  162. package/dist/modules/projects/hooks/list-available-users.hook.mjs.map +1 -1
  163. package/dist/modules/projects/hooks/list-infinite-projects.hook.mjs.map +1 -1
  164. package/dist/modules/projects/hooks/list-project-users.hook.mjs.map +1 -1
  165. package/dist/modules/projects/hooks/list-projects.hook.mjs.map +1 -1
  166. package/dist/modules/projects/hooks/remove-project-user.hook.mjs.map +1 -1
  167. package/dist/modules/projects/hooks/update-project.hook.mjs.map +1 -1
  168. package/dist/modules/projects/services/projects.service.mjs.map +1 -1
  169. package/dist/modules/subscriptions/actions/calculate-subscription.action.mjs.map +1 -1
  170. package/dist/modules/subscriptions/actions/list-subscriptions.action.mjs.map +1 -1
  171. package/dist/modules/subscriptions/actions/update-subscription-plan.action.mjs.map +1 -1
  172. package/dist/modules/subscriptions/constants/query-keys.constants.mjs.map +1 -1
  173. package/dist/modules/subscriptions/hooks/calculate-subscription.hook.mjs.map +1 -1
  174. package/dist/modules/subscriptions/hooks/find-active-subscription.hook.mjs.map +1 -1
  175. package/dist/modules/subscriptions/hooks/list-subscriptions.hook.mjs.map +1 -1
  176. package/dist/modules/subscriptions/hooks/update-subscription-plan.hook.mjs.map +1 -1
  177. package/dist/modules/subscriptions/hooks/use-cancelled-subscription-guard.mjs.map +1 -1
  178. package/dist/modules/subscriptions/types/calculate-subscription.type.mjs.map +1 -1
  179. package/dist/modules/subscriptions/utils/build-plan-extras.mjs.map +1 -1
  180. package/dist/modules/subscriptions/utils/has-subscription-expired.mjs.map +1 -1
  181. package/dist/modules/subscriptions/utils/periodicity.mjs.map +1 -1
  182. package/dist/modules/subscriptions/utils/resolve-plan-extras-prices.mjs.map +1 -1
  183. package/dist/modules/users/action/find-user-by-id.action.mjs.map +1 -1
  184. package/dist/modules/users/action/list-messages.action.mjs.map +1 -1
  185. package/dist/modules/users/action/mark-all-messages-as-read.action.mjs.map +1 -1
  186. package/dist/modules/users/action/mark-message-as-read.action.mjs.map +1 -1
  187. package/dist/modules/users/hooks/messages.hook.mjs.map +1 -1
  188. package/dist/modules/users/services/messages.service.mjs.map +1 -1
  189. package/dist/modules/whitelabel/actions/find-whitelabel.action.mjs.map +1 -1
  190. package/dist/modules/whitelabel/actions/revalidate-whitelabel.action.mjs.map +1 -1
  191. package/dist/modules/whitelabel/utils/normalize-hostname.mjs.map +1 -1
  192. package/dist/providers/auth.provider.mjs.map +1 -1
  193. package/dist/providers/whitelabel.provider.mjs.map +1 -1
  194. package/dist/store/useBuyCreditsModal.mjs.map +1 -1
  195. package/dist/store/useDesktopSidebarStore.mjs.map +1 -1
  196. package/dist/store/useMdSidebarStore.mjs.map +1 -1
  197. package/dist/store/usePaidPlanRequiredModal.mjs.map +1 -1
  198. package/dist/utils/constants/br-states.mjs.map +1 -1
  199. package/dist/utils/countries.mjs.map +1 -1
  200. package/dist/utils/format/currency.mjs.map +1 -1
  201. package/dist/utils/safeServerAction.mjs.map +1 -1
  202. package/dist/utils/withAction.mjs.map +1 -1
  203. package/package.json +92 -92
  204. package/src/components/account/ConfigurationsMyAccountModal.tsx +161 -161
  205. package/src/components/account/ConfirmDeleteAccountModal.tsx +55 -55
  206. package/src/components/account/ConfirmGlobalPreferencesModal.tsx +66 -66
  207. package/src/components/account/DeleteAccountModal.tsx +130 -130
  208. package/src/components/account/DisableTwoFactorAuthModal.tsx +86 -86
  209. package/src/components/account/IsntPossibleDeleteAccountModal.tsx +49 -49
  210. package/src/components/account/TwoFactorAuthModal.tsx +215 -215
  211. package/src/components/account/hooks/useChangePhoneForm.tsx +107 -107
  212. package/src/components/account/hooks/useTwoFactorAuthForm.tsx +101 -101
  213. package/src/components/account/sections/ChangeEmailModal.tsx +227 -227
  214. package/src/components/account/sections/ChangePasswordSection.tsx +64 -64
  215. package/src/components/account/sections/ChangePhoneModal.tsx +247 -247
  216. package/src/components/account/sections/MyProfileSection.tsx +328 -328
  217. package/src/components/account/sections/PreferencesSection.tsx +248 -248
  218. package/src/components/account/sections/SecuritySection.tsx +46 -46
  219. package/src/components/account/sections/TokenSection.tsx +64 -64
  220. package/src/components/embeds/CrispEmbed.tsx +156 -156
  221. package/src/components/embeds/EmbedWidgets.tsx +50 -50
  222. package/src/components/embeds/FrillEmbed.tsx +129 -129
  223. package/src/components/layouts/AppMobileNavBar.tsx +80 -80
  224. package/src/components/layouts/AppNavBar.tsx +40 -40
  225. package/src/components/layouts/MdSideBarNavigation.tsx +56 -56
  226. package/src/components/layouts/NavBar.tsx +175 -175
  227. package/src/components/layouts/NotificationsPopover.tsx +118 -118
  228. package/src/components/layouts/ProfilePopover.tsx +176 -176
  229. package/src/components/layouts/SideBarNavigation.tsx +65 -65
  230. package/src/components/layouts/UsersSelectorPopover.tsx +234 -234
  231. package/src/components/layouts/WhitelabelCodes.tsx +59 -59
  232. package/src/components/modals/BuyCreditsModal.tsx +354 -354
  233. package/src/components/modals/PaidPlanRequiredModal.tsx +57 -57
  234. package/src/components/modals/cards/AddCardModal.tsx +265 -265
  235. package/src/components/modals/cards/CardFormFields.tsx +348 -348
  236. package/src/components/navigation/CancelledSubscriptionBanner.tsx +64 -64
  237. package/src/components/navigation/NavItemsContext.ts +20 -20
  238. package/src/components/navigation/ProjectSelectorPopover.tsx +178 -178
  239. package/src/components/navigation/shells/TabsMobileShell.tsx +74 -74
  240. package/src/components/navigation/subcomponents/BottomLinks.tsx +37 -37
  241. package/src/components/navigation/subcomponents/ProjectSelector.tsx +182 -182
  242. package/src/components/pages/NotFoundPage.tsx +67 -67
  243. package/src/components/pages/notifications/Notifications.tsx +187 -187
  244. package/src/components/ui/buttons/Button.tsx +62 -62
  245. package/src/components/ui/buttons/CancelButton.tsx +14 -14
  246. package/src/components/ui/buttons/CopyButton.tsx +54 -54
  247. package/src/components/ui/data-display/Accordion.tsx +81 -81
  248. package/src/components/ui/data-display/Badge.tsx +47 -47
  249. package/src/components/ui/data-display/Card.tsx +93 -93
  250. package/src/components/ui/data-display/CardBrandIcons.tsx +336 -336
  251. package/src/components/ui/data-display/CardItem.tsx +75 -75
  252. package/src/components/ui/data-display/Pagination.tsx +126 -126
  253. package/src/components/ui/data-display/PaymentInfoCard.tsx +192 -192
  254. package/src/components/ui/data-display/ScrollArea.tsx +59 -59
  255. package/src/components/ui/data-display/Separator.tsx +29 -29
  256. package/src/components/ui/data-display/Table.tsx +117 -117
  257. package/src/components/ui/data-display/Tabs.tsx +67 -67
  258. package/src/components/ui/feedback/CircularProgress.tsx +75 -75
  259. package/src/components/ui/feedback/DefaultCircularProgress.tsx +65 -65
  260. package/src/components/ui/feedback/LoadingOverlay.tsx +31 -31
  261. package/src/components/ui/feedback/Progress.tsx +40 -40
  262. package/src/components/ui/feedback/Skeleton.tsx +5 -5
  263. package/src/components/ui/feedback/Toast.tsx +104 -104
  264. package/src/components/ui/form/Calendar.tsx +228 -228
  265. package/src/components/ui/form/Checkbox.tsx +31 -31
  266. package/src/components/ui/form/ComboboxField.tsx +154 -154
  267. package/src/components/ui/form/DatePicker.tsx +98 -97
  268. package/src/components/ui/form/DateRangePicker.tsx +108 -108
  269. package/src/components/ui/form/FormField.tsx +133 -133
  270. package/src/components/ui/form/Input.tsx +20 -20
  271. package/src/components/ui/form/InputOtp.tsx +80 -80
  272. package/src/components/ui/form/PhoneInput.tsx +208 -208
  273. package/src/components/ui/form/RadioGroup.tsx +45 -45
  274. package/src/components/ui/form/Select.tsx +200 -200
  275. package/src/components/ui/form/Switch.tsx +32 -32
  276. package/src/components/ui/form/Textarea.tsx +19 -19
  277. package/src/components/ui/overlay/Command.tsx +185 -185
  278. package/src/components/ui/overlay/Dialog.tsx +153 -153
  279. package/src/components/ui/overlay/Popover.tsx +49 -49
  280. package/src/components/ui/overlay/Sheet.tsx +170 -170
  281. package/src/components/ui/overlay/Tooltip.tsx +62 -62
  282. package/src/components/widgets/ImageUpload/ImageCropModal.tsx +254 -254
  283. package/src/components/widgets/ImageUpload/ImageTooSmallModal.tsx +61 -61
  284. package/src/components/widgets/ImageUpload/ImageUpload.tsx +126 -126
  285. package/src/components/widgets/ImageUpload/index.ts +3 -3
  286. package/src/components/widgets/notifications/NotificationCard.tsx +73 -73
  287. package/src/hooks/copy-to-clipboard.hook.tsx +67 -67
  288. package/src/hooks/useAuthQueryKey.ts +32 -32
  289. package/src/index.ts +506 -506
  290. package/src/infra/utils/array.ts +54 -54
  291. package/src/infra/utils/date.ts +18 -18
  292. package/src/middleware.ts +4 -4
  293. package/src/modules/accounts/actions/account-management.action.ts +107 -107
  294. package/src/modules/accounts/actions/find-current-account.action.ts +9 -9
  295. package/src/modules/accounts/actions/get-account-token.action.ts +8 -8
  296. package/src/modules/accounts/actions/list-currencies.action.ts +8 -8
  297. package/src/modules/accounts/actions/list-timezones.action.ts +8 -8
  298. package/src/modules/accounts/hooks/current-account.hook.tsx +26 -26
  299. package/src/modules/accounts/hooks/use-account-token.hook.tsx +14 -14
  300. package/src/modules/accounts/hooks/useAccountManagement.ts +94 -94
  301. package/src/modules/accounts/hooks/useCurrencies.ts +18 -18
  302. package/src/modules/accounts/hooks/useTimezones.ts +18 -18
  303. package/src/modules/accounts/hooks/useViaCep.ts +25 -25
  304. package/src/modules/accounts/services/account-token.service.ts +52 -52
  305. package/src/modules/accounts/services/account.service.ts +239 -239
  306. package/src/modules/accounts/types.ts +225 -225
  307. package/src/modules/auth/actions/validate-session.action.ts +56 -56
  308. package/src/modules/auth/hooks/login.hook.tsx +13 -13
  309. package/src/modules/auth/hooks/logout.hook.tsx +11 -11
  310. package/src/modules/auth/hooks/register.hook.tsx +11 -11
  311. package/src/modules/auth/hooks/useManagementPermissions.ts +45 -45
  312. package/src/modules/auth/hooks/useUserQuery.ts +75 -75
  313. package/src/modules/auth/types/management-permission.type.ts +7 -7
  314. package/src/modules/auth/utils/assert-management-permission.ts +46 -46
  315. package/src/modules/auth/utils/assert-management-subscription.ts +35 -35
  316. package/src/modules/auth/utils/assert-paid-subscription.ts +43 -43
  317. package/src/modules/auth/utils/assert-subscription-addon.ts +42 -42
  318. package/src/modules/auth/utils/build-wl-override.ts +43 -43
  319. package/src/modules/cards/actions/create-card.action.ts +9 -9
  320. package/src/modules/cards/actions/delete-card.action.ts +8 -8
  321. package/src/modules/cards/actions/find-card-by-id.action.ts +8 -8
  322. package/src/modules/cards/actions/list-cards.action.ts +8 -8
  323. package/src/modules/cards/actions/set-default-card.action.ts +8 -8
  324. package/src/modules/cards/hooks/card-by-id.hook.ts +21 -21
  325. package/src/modules/cards/hooks/cards.hook.ts +23 -23
  326. package/src/modules/cards/hooks/create-card.hook.ts +30 -30
  327. package/src/modules/cards/hooks/delete-card.hook.ts +54 -54
  328. package/src/modules/cards/hooks/set-default-card.hook.ts +55 -55
  329. package/src/modules/cards/services/cards.service.ts +108 -108
  330. package/src/modules/cards/types.ts +42 -42
  331. package/src/modules/ia-credits/actions/list-ia-credits.action.ts +8 -8
  332. package/src/modules/ia-credits/hooks/ia-credits.hook.ts +99 -99
  333. package/src/modules/images/actions/process-image.action.ts +40 -40
  334. package/src/modules/images/constants/image.constants.ts +11 -11
  335. package/src/modules/images/hooks/use-image-upload.hook.ts +172 -172
  336. package/src/modules/images/services/image-processing.service.ts +75 -75
  337. package/src/modules/images/types/image.type.ts +54 -54
  338. package/src/modules/images/utils/base64.ts +26 -26
  339. package/src/modules/images/utils/compress-image.ts +20 -20
  340. package/src/modules/images/utils/crop-image.ts +51 -51
  341. package/src/modules/images/utils/validate-image.ts +71 -71
  342. package/src/modules/plans/actions/find-plan-by-id.action.ts +8 -8
  343. package/src/modules/plans/actions/list-plans.action.ts +17 -17
  344. package/src/modules/plans/hooks/list-plans.hook.ts +24 -24
  345. package/src/modules/plans/hooks/use-has-plan-addon.hook.ts +14 -14
  346. package/src/modules/plans/hooks/use-plan-by-id.hook.ts +38 -38
  347. package/src/modules/plans/services/plans.service.ts +133 -133
  348. package/src/modules/plans/types/plan.type.ts +67 -67
  349. package/src/modules/plans/utils/map-api-plan-to-ui.ts +98 -98
  350. package/src/modules/projects/actions/add-project-user.action.ts +9 -9
  351. package/src/modules/projects/actions/create-project.action.ts +9 -9
  352. package/src/modules/projects/actions/delete-project.action.ts +8 -8
  353. package/src/modules/projects/actions/find-project.action.ts +8 -8
  354. package/src/modules/projects/actions/list-all-account-users.action.ts +9 -9
  355. package/src/modules/projects/actions/list-available-users.action.ts +9 -9
  356. package/src/modules/projects/actions/list-project-users.action.ts +9 -9
  357. package/src/modules/projects/actions/list-projects.action.ts +16 -16
  358. package/src/modules/projects/actions/remove-project-user.action.ts +9 -9
  359. package/src/modules/projects/actions/update-project.action.ts +9 -9
  360. package/src/modules/projects/hooks/add-project-user.hook.ts +72 -72
  361. package/src/modules/projects/hooks/create-project.hook.ts +88 -88
  362. package/src/modules/projects/hooks/delete-project.hook.ts +58 -58
  363. package/src/modules/projects/hooks/find-project.hook.ts +18 -18
  364. package/src/modules/projects/hooks/list-all-account-users.hook.ts +39 -39
  365. package/src/modules/projects/hooks/list-available-users.hook.ts +38 -38
  366. package/src/modules/projects/hooks/list-infinite-projects.hook.ts +43 -43
  367. package/src/modules/projects/hooks/list-project-users.hook.ts +38 -38
  368. package/src/modules/projects/hooks/list-projects.hook.ts +23 -23
  369. package/src/modules/projects/hooks/remove-project-user.hook.ts +72 -72
  370. package/src/modules/projects/hooks/update-project.hook.ts +86 -86
  371. package/src/modules/projects/services/projects.service.ts +144 -144
  372. package/src/modules/subscriptions/actions/calculate-subscription.action.ts +9 -9
  373. package/src/modules/subscriptions/actions/list-subscriptions.action.ts +9 -9
  374. package/src/modules/subscriptions/actions/update-subscription-plan.action.ts +14 -14
  375. package/src/modules/subscriptions/constants/query-keys.constants.ts +3 -3
  376. package/src/modules/subscriptions/hooks/calculate-subscription.hook.ts +13 -13
  377. package/src/modules/subscriptions/hooks/find-active-subscription.hook.ts +18 -18
  378. package/src/modules/subscriptions/hooks/list-subscriptions.hook.ts +19 -19
  379. package/src/modules/subscriptions/hooks/update-subscription-plan.hook.ts +28 -28
  380. package/src/modules/subscriptions/hooks/use-cancelled-subscription-guard.ts +39 -39
  381. package/src/modules/subscriptions/types/billing-period.type.ts +1 -1
  382. package/src/modules/subscriptions/types/calculate-subscription.type.ts +113 -113
  383. package/src/modules/subscriptions/utils/build-plan-extras.ts +56 -56
  384. package/src/modules/subscriptions/utils/has-subscription-expired.ts +8 -8
  385. package/src/modules/subscriptions/utils/periodicity.ts +62 -62
  386. package/src/modules/subscriptions/utils/resolve-plan-extras-prices.ts +23 -23
  387. package/src/modules/users/action/find-user-by-id.action.ts +8 -8
  388. package/src/modules/users/action/list-messages.action.ts +26 -26
  389. package/src/modules/users/action/mark-all-messages-as-read.action.ts +8 -8
  390. package/src/modules/users/action/mark-message-as-read.action.ts +8 -8
  391. package/src/modules/users/hooks/messages.hook.ts +67 -67
  392. package/src/modules/users/services/messages.service.ts +49 -49
  393. package/src/modules/whitelabel/actions/find-whitelabel.action.ts +23 -23
  394. package/src/modules/whitelabel/actions/revalidate-whitelabel.action.ts +19 -19
  395. package/src/modules/whitelabel/schema.ts +84 -84
  396. package/src/modules/whitelabel/utils/normalize-hostname.ts +26 -26
  397. package/src/providers/auth.provider.tsx +162 -162
  398. package/src/providers/whitelabel.provider.tsx +59 -59
  399. package/src/store/useBuyCreditsModal.ts +21 -21
  400. package/src/store/useDesktopSidebarStore.ts +47 -47
  401. package/src/store/useMdSidebarStore.ts +34 -34
  402. package/src/store/usePaidPlanRequiredModal.ts +19 -19
  403. package/src/utils/constants/br-states.ts +29 -29
  404. package/src/utils/countries.ts +224 -224
  405. package/src/utils/format/currency.ts +15 -15
  406. package/src/utils/safeServerAction.ts +21 -21
  407. package/src/utils/withAction.ts +13 -13
@@ -1,239 +1,239 @@
1
- import 'server-only';
2
-
3
- import { api } from '../../../infra/api/client';
4
- import { ApiError } from '../../../infra/api/types';
5
- import { buildQueryParams } from '../../../infra/utils/params';
6
- import { getUserContext } from '../../auth/utils/get-user-context';
7
- import { fileToBase64 } from '../../../utils/file/index';
8
- import type { RequestConfig } from '../../../infra/api/client';
9
- import { buildWlOverride } from '../../auth/utils/build-wl-override';
10
- import type {
11
- Account,
12
- AccountUsersPaginationParams,
13
- ChangePasswordRequest,
14
- ChangePasswordResponse,
15
- ChangeUserPhotoResponse,
16
- CreateAccountUserRequest,
17
- CreateAccountUserResponse,
18
- DeleteAccountResponse,
19
- DeleteAccountUserResponse,
20
- GetAccountDataResponse,
21
- ListAccountUsersResponse,
22
- UpdateAccountRequest,
23
- UpdateAccountResponse,
24
- UpdateAccountUserRequest,
25
- UpdateAccountUserResponse,
26
- } from '../types';
27
-
28
- class AccountService {
29
- async findCurrentAccount(config?: RequestConfig): Promise<Account> {
30
- const { id_wl, id_account } = await getUserContext();
31
- const effectiveConfig = config ?? await buildWlOverride(id_wl);
32
- const response = await api.apps.get<GetAccountDataResponse>(`/accounts/${id_account}`, effectiveConfig);
33
-
34
- if (response.status === 0 || !response.data?.[0]) {
35
- throw new ApiError(
36
- response.message || 'Erro ao buscar dados da conta',
37
- 'GET_ACCOUNT_FAILED',
38
- 400
39
- );
40
- }
41
-
42
- return response.data[0];
43
- }
44
-
45
- async listAccountUsers(params?: Partial<AccountUsersPaginationParams>) {
46
- const { id_account } = await getUserContext();
47
- const queryParams = buildQueryParams(params);
48
- const endpoint = `/accounts/${id_account}/users?${queryParams}`;
49
- const response = await api.apps.get<ListAccountUsersResponse>(endpoint);
50
-
51
- if (response.status === 0) {
52
- throw new ApiError(
53
- response.message || 'Erro ao listar usuários',
54
- 'LIST_ACCOUNT_USERS_FAILED',
55
- 400
56
- );
57
- }
58
-
59
- return {
60
- users: response.data || [],
61
- total: response.total || 0,
62
- };
63
- }
64
-
65
- async changeUserPhoto(userId: number, photo: File): Promise<ChangeUserPhotoResponse> {
66
- const { id_account } = await getUserContext();
67
- const base64 = await fileToBase64(photo);
68
- const response = await api.apps.put<ChangeUserPhotoResponse>(
69
- `/accounts/${id_account}/users/${userId}/file/photo`,
70
- { file: base64 }
71
- );
72
-
73
- if (response.status === 0) {
74
- throw new ApiError(
75
- response.message || 'Erro ao mudar foto do usuário',
76
- 'CHANGE_USER_PHOTO_FAILED',
77
- 400
78
- );
79
- }
80
-
81
- return response;
82
- }
83
-
84
- async deleteAccountUser(userId: number): Promise<DeleteAccountUserResponse> {
85
- const { id_account } = await getUserContext();
86
- const response = await api.apps.delete<DeleteAccountUserResponse>(
87
- `/accounts/${id_account}/users/${userId}`
88
- );
89
-
90
- if (response.status === 0) {
91
- throw new ApiError(response.message || 'Erro ao deletar usuário', 'DELETE_USER_FAILED', 400);
92
- }
93
-
94
- return response;
95
- }
96
-
97
- async deleteAccount(): Promise<DeleteAccountResponse> {
98
- const { id_account } = await getUserContext();
99
- const response = await api.apps.delete<DeleteAccountResponse>(`/accounts/${id_account}`);
100
-
101
- if (response.status === 0) {
102
- throw new ApiError(response.message || 'Erro ao deletar conta', 'DELETE_ACCOUNT_FAILED', 400);
103
- }
104
-
105
- return response;
106
- }
107
-
108
- async createAccountUser(user: CreateAccountUserRequest): Promise<CreateAccountUserResponse> {
109
- const { id_account } = await getUserContext();
110
- const response = await api.apps.post<CreateAccountUserResponse>(
111
- `/accounts/${id_account}/users`,
112
- {
113
- ...user,
114
- photo: user.photo ? await fileToBase64(user.photo) : null,
115
- }
116
- );
117
-
118
- if (response.status === 0) {
119
- throw new ApiError(response.message || 'Erro ao criar usuário', 'CREATE_USER_FAILED', 400);
120
- }
121
-
122
- return response;
123
- }
124
-
125
- private async resolvePhotoField(user: UpdateAccountUserRequest): Promise<{ photo?: string | null }> {
126
- if (user.photo === undefined) return {};
127
- const photo =
128
- user.photo != null && typeof user.photo !== 'string'
129
- ? await fileToBase64(user.photo)
130
- : user.photo;
131
- return { photo };
132
- }
133
-
134
- async updateAccountUser(user: UpdateAccountUserRequest): Promise<UpdateAccountUserResponse> {
135
- const { id_account, id_user } = await getUserContext();
136
- const response = await api.apps.put<UpdateAccountUserResponse>(
137
- `/accounts/${id_account}/users/${id_user}`,
138
- { ...user, ...(await this.resolvePhotoField(user)) }
139
- );
140
-
141
- if (response.status === 0) {
142
- throw new ApiError(
143
- response.message || 'Erro ao atualizar usuário',
144
- 'UPDATE_USER_FAILED',
145
- 400
146
- );
147
- }
148
-
149
- return response;
150
- }
151
-
152
- async updateAccountUserById(
153
- userId: number,
154
- user: UpdateAccountUserRequest
155
- ): Promise<UpdateAccountUserResponse> {
156
- const { id_account } = await getUserContext();
157
- const response = await api.apps.put<UpdateAccountUserResponse>(
158
- `/accounts/${id_account}/users/${userId}`,
159
- { ...user, ...(await this.resolvePhotoField(user)) }
160
- );
161
-
162
- if (response.status === 0) {
163
- throw new ApiError(
164
- response.message || 'Erro ao atualizar usuário',
165
- 'UPDATE_USER_FAILED',
166
- 400
167
- );
168
- }
169
-
170
- return response;
171
- }
172
-
173
- async updateAccount(data: UpdateAccountRequest): Promise<UpdateAccountResponse> {
174
- const { id_account } = await getUserContext();
175
- const response = await api.apps.put<UpdateAccountResponse>(`/accounts/${id_account}`, data);
176
-
177
- if (response.status === 0) {
178
- throw new ApiError(
179
- response.message || 'Erro ao atualizar conta',
180
- 'UPDATE_ACCOUNT_FAILED',
181
- 400
182
- );
183
- }
184
-
185
- return response;
186
- }
187
-
188
- async requestContactReset(type: 'email' | 'phone', newContact: string, ddi?: string): Promise<void> {
189
- const { id_account, id_user } = await getUserContext();
190
- const response = await api.apps.post<{ status: number; message: string }>(
191
- `/accounts/${id_account}/users/${id_user}/resetContact/request`,
192
- { type, newContact, ...(ddi ? { ddi } : {}) }
193
- );
194
-
195
- if (response.status === 0) {
196
- throw new ApiError(
197
- response.message || 'Erro ao solicitar alteração',
198
- 'REQUEST_CONTACT_RESET_FAILED',
199
- 400
200
- );
201
- }
202
- }
203
-
204
- async confirmContactReset(type: 'email' | 'phone', token: string, newContact: string, ddi?: string): Promise<void> {
205
- const { id_account, id_user } = await getUserContext();
206
- const response = await api.apps.post<{ status: number; message: string }>(
207
- `/accounts/${id_account}/users/${id_user}/resetContact/confirm`,
208
- { type, token, newContact, ...(ddi ? { ddi } : {}) }
209
- );
210
-
211
- if (response.status === 0) {
212
- throw new ApiError(
213
- response.message || 'Código inválido ou expirado',
214
- 'CONFIRM_CONTACT_RESET_FAILED',
215
- 400
216
- );
217
- }
218
- }
219
-
220
- async changePassword(data: ChangePasswordRequest): Promise<ChangePasswordResponse> {
221
- const { id_account, id_user } = await getUserContext();
222
- const response = await api.apps.put<ChangePasswordResponse>(
223
- `/accounts/${id_account}/users/${id_user}/action/changePassword`,
224
- data
225
- );
226
-
227
- if (response.status === 0) {
228
- throw new ApiError(
229
- response.message || 'Erro ao alterar senha',
230
- 'CHANGE_PASSWORD_FAILED',
231
- 400
232
- );
233
- }
234
-
235
- return response;
236
- }
237
- }
238
-
239
- export const accountService = new AccountService();
1
+ import 'server-only';
2
+
3
+ import { api } from '../../../infra/api/client';
4
+ import { ApiError } from '../../../infra/api/types';
5
+ import { buildQueryParams } from '../../../infra/utils/params';
6
+ import { getUserContext } from '../../auth/utils/get-user-context';
7
+ import { fileToBase64 } from '../../../utils/file/index';
8
+ import type { RequestConfig } from '../../../infra/api/client';
9
+ import { buildWlOverride } from '../../auth/utils/build-wl-override';
10
+ import type {
11
+ Account,
12
+ AccountUsersPaginationParams,
13
+ ChangePasswordRequest,
14
+ ChangePasswordResponse,
15
+ ChangeUserPhotoResponse,
16
+ CreateAccountUserRequest,
17
+ CreateAccountUserResponse,
18
+ DeleteAccountResponse,
19
+ DeleteAccountUserResponse,
20
+ GetAccountDataResponse,
21
+ ListAccountUsersResponse,
22
+ UpdateAccountRequest,
23
+ UpdateAccountResponse,
24
+ UpdateAccountUserRequest,
25
+ UpdateAccountUserResponse,
26
+ } from '../types';
27
+
28
+ class AccountService {
29
+ async findCurrentAccount(config?: RequestConfig): Promise<Account> {
30
+ const { id_wl, id_account } = await getUserContext();
31
+ const effectiveConfig = config ?? await buildWlOverride(id_wl);
32
+ const response = await api.apps.get<GetAccountDataResponse>(`/accounts/${id_account}`, effectiveConfig);
33
+
34
+ if (response.status === 0 || !response.data?.[0]) {
35
+ throw new ApiError(
36
+ response.message || 'Erro ao buscar dados da conta',
37
+ 'GET_ACCOUNT_FAILED',
38
+ 400
39
+ );
40
+ }
41
+
42
+ return response.data[0];
43
+ }
44
+
45
+ async listAccountUsers(params?: Partial<AccountUsersPaginationParams>) {
46
+ const { id_account } = await getUserContext();
47
+ const queryParams = buildQueryParams(params);
48
+ const endpoint = `/accounts/${id_account}/users?${queryParams}`;
49
+ const response = await api.apps.get<ListAccountUsersResponse>(endpoint);
50
+
51
+ if (response.status === 0) {
52
+ throw new ApiError(
53
+ response.message || 'Erro ao listar usuários',
54
+ 'LIST_ACCOUNT_USERS_FAILED',
55
+ 400
56
+ );
57
+ }
58
+
59
+ return {
60
+ users: response.data || [],
61
+ total: response.total || 0,
62
+ };
63
+ }
64
+
65
+ async changeUserPhoto(userId: number, photo: File): Promise<ChangeUserPhotoResponse> {
66
+ const { id_account } = await getUserContext();
67
+ const base64 = await fileToBase64(photo);
68
+ const response = await api.apps.put<ChangeUserPhotoResponse>(
69
+ `/accounts/${id_account}/users/${userId}/file/photo`,
70
+ { file: base64 }
71
+ );
72
+
73
+ if (response.status === 0) {
74
+ throw new ApiError(
75
+ response.message || 'Erro ao mudar foto do usuário',
76
+ 'CHANGE_USER_PHOTO_FAILED',
77
+ 400
78
+ );
79
+ }
80
+
81
+ return response;
82
+ }
83
+
84
+ async deleteAccountUser(userId: number): Promise<DeleteAccountUserResponse> {
85
+ const { id_account } = await getUserContext();
86
+ const response = await api.apps.delete<DeleteAccountUserResponse>(
87
+ `/accounts/${id_account}/users/${userId}`
88
+ );
89
+
90
+ if (response.status === 0) {
91
+ throw new ApiError(response.message || 'Erro ao deletar usuário', 'DELETE_USER_FAILED', 400);
92
+ }
93
+
94
+ return response;
95
+ }
96
+
97
+ async deleteAccount(): Promise<DeleteAccountResponse> {
98
+ const { id_account } = await getUserContext();
99
+ const response = await api.apps.delete<DeleteAccountResponse>(`/accounts/${id_account}`);
100
+
101
+ if (response.status === 0) {
102
+ throw new ApiError(response.message || 'Erro ao deletar conta', 'DELETE_ACCOUNT_FAILED', 400);
103
+ }
104
+
105
+ return response;
106
+ }
107
+
108
+ async createAccountUser(user: CreateAccountUserRequest): Promise<CreateAccountUserResponse> {
109
+ const { id_account } = await getUserContext();
110
+ const response = await api.apps.post<CreateAccountUserResponse>(
111
+ `/accounts/${id_account}/users`,
112
+ {
113
+ ...user,
114
+ photo: user.photo ? await fileToBase64(user.photo) : null,
115
+ }
116
+ );
117
+
118
+ if (response.status === 0) {
119
+ throw new ApiError(response.message || 'Erro ao criar usuário', 'CREATE_USER_FAILED', 400);
120
+ }
121
+
122
+ return response;
123
+ }
124
+
125
+ private async resolvePhotoField(user: UpdateAccountUserRequest): Promise<{ photo?: string | null }> {
126
+ if (user.photo === undefined) return {};
127
+ const photo =
128
+ user.photo != null && typeof user.photo !== 'string'
129
+ ? await fileToBase64(user.photo)
130
+ : user.photo;
131
+ return { photo };
132
+ }
133
+
134
+ async updateAccountUser(user: UpdateAccountUserRequest): Promise<UpdateAccountUserResponse> {
135
+ const { id_account, id_user } = await getUserContext();
136
+ const response = await api.apps.put<UpdateAccountUserResponse>(
137
+ `/accounts/${id_account}/users/${id_user}`,
138
+ { ...user, ...(await this.resolvePhotoField(user)) }
139
+ );
140
+
141
+ if (response.status === 0) {
142
+ throw new ApiError(
143
+ response.message || 'Erro ao atualizar usuário',
144
+ 'UPDATE_USER_FAILED',
145
+ 400
146
+ );
147
+ }
148
+
149
+ return response;
150
+ }
151
+
152
+ async updateAccountUserById(
153
+ userId: number,
154
+ user: UpdateAccountUserRequest
155
+ ): Promise<UpdateAccountUserResponse> {
156
+ const { id_account } = await getUserContext();
157
+ const response = await api.apps.put<UpdateAccountUserResponse>(
158
+ `/accounts/${id_account}/users/${userId}`,
159
+ { ...user, ...(await this.resolvePhotoField(user)) }
160
+ );
161
+
162
+ if (response.status === 0) {
163
+ throw new ApiError(
164
+ response.message || 'Erro ao atualizar usuário',
165
+ 'UPDATE_USER_FAILED',
166
+ 400
167
+ );
168
+ }
169
+
170
+ return response;
171
+ }
172
+
173
+ async updateAccount(data: UpdateAccountRequest): Promise<UpdateAccountResponse> {
174
+ const { id_account } = await getUserContext();
175
+ const response = await api.apps.put<UpdateAccountResponse>(`/accounts/${id_account}`, data);
176
+
177
+ if (response.status === 0) {
178
+ throw new ApiError(
179
+ response.message || 'Erro ao atualizar conta',
180
+ 'UPDATE_ACCOUNT_FAILED',
181
+ 400
182
+ );
183
+ }
184
+
185
+ return response;
186
+ }
187
+
188
+ async requestContactReset(type: 'email' | 'phone', newContact: string, ddi?: string): Promise<void> {
189
+ const { id_account, id_user } = await getUserContext();
190
+ const response = await api.apps.post<{ status: number; message: string }>(
191
+ `/accounts/${id_account}/users/${id_user}/resetContact/request`,
192
+ { type, newContact, ...(ddi ? { ddi } : {}) }
193
+ );
194
+
195
+ if (response.status === 0) {
196
+ throw new ApiError(
197
+ response.message || 'Erro ao solicitar alteração',
198
+ 'REQUEST_CONTACT_RESET_FAILED',
199
+ 400
200
+ );
201
+ }
202
+ }
203
+
204
+ async confirmContactReset(type: 'email' | 'phone', token: string, newContact: string, ddi?: string): Promise<void> {
205
+ const { id_account, id_user } = await getUserContext();
206
+ const response = await api.apps.post<{ status: number; message: string }>(
207
+ `/accounts/${id_account}/users/${id_user}/resetContact/confirm`,
208
+ { type, token, newContact, ...(ddi ? { ddi } : {}) }
209
+ );
210
+
211
+ if (response.status === 0) {
212
+ throw new ApiError(
213
+ response.message || 'Código inválido ou expirado',
214
+ 'CONFIRM_CONTACT_RESET_FAILED',
215
+ 400
216
+ );
217
+ }
218
+ }
219
+
220
+ async changePassword(data: ChangePasswordRequest): Promise<ChangePasswordResponse> {
221
+ const { id_account, id_user } = await getUserContext();
222
+ const response = await api.apps.put<ChangePasswordResponse>(
223
+ `/accounts/${id_account}/users/${id_user}/action/changePassword`,
224
+ data
225
+ );
226
+
227
+ if (response.status === 0) {
228
+ throw new ApiError(
229
+ response.message || 'Erro ao alterar senha',
230
+ 'CHANGE_PASSWORD_FAILED',
231
+ 400
232
+ );
233
+ }
234
+
235
+ return response;
236
+ }
237
+ }
238
+
239
+ export const accountService = new AccountService();