@greatapps/common 1.1.515 → 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 (408) 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 +1 -1
  69. package/dist/components/ui/form/FormField.mjs.map +1 -1
  70. package/dist/components/ui/form/Input.mjs.map +1 -1
  71. package/dist/components/ui/form/InputOtp.mjs.map +1 -1
  72. package/dist/components/ui/form/PhoneInput.mjs.map +1 -1
  73. package/dist/components/ui/form/RadioGroup.mjs.map +1 -1
  74. package/dist/components/ui/form/Select.mjs +1 -1
  75. package/dist/components/ui/form/Select.mjs.map +1 -1
  76. package/dist/components/ui/form/Switch.mjs.map +1 -1
  77. package/dist/components/ui/form/Textarea.mjs.map +1 -1
  78. package/dist/components/ui/overlay/Command.mjs.map +1 -1
  79. package/dist/components/ui/overlay/Dialog.mjs.map +1 -1
  80. package/dist/components/ui/overlay/Popover.mjs.map +1 -1
  81. package/dist/components/ui/overlay/Sheet.mjs.map +1 -1
  82. package/dist/components/ui/overlay/Tooltip.mjs.map +1 -1
  83. package/dist/components/widgets/ImageUpload/ImageCropModal.mjs.map +1 -1
  84. package/dist/components/widgets/ImageUpload/ImageTooSmallModal.mjs.map +1 -1
  85. package/dist/components/widgets/ImageUpload/ImageUpload.mjs.map +1 -1
  86. package/dist/components/widgets/ImageUpload/index.mjs.map +1 -1
  87. package/dist/components/widgets/notifications/NotificationCard.mjs.map +1 -1
  88. package/dist/hooks/copy-to-clipboard.hook.mjs.map +1 -1
  89. package/dist/hooks/useAuthQueryKey.mjs.map +1 -1
  90. package/dist/index.mjs.map +1 -1
  91. package/dist/infra/utils/array.mjs.map +1 -1
  92. package/dist/infra/utils/date.mjs.map +1 -1
  93. package/dist/middleware.mjs.map +1 -1
  94. package/dist/modules/accounts/actions/account-management.action.mjs.map +1 -1
  95. package/dist/modules/accounts/actions/find-current-account.action.mjs.map +1 -1
  96. package/dist/modules/accounts/actions/get-account-token.action.mjs.map +1 -1
  97. package/dist/modules/accounts/actions/list-currencies.action.mjs.map +1 -1
  98. package/dist/modules/accounts/actions/list-timezones.action.mjs.map +1 -1
  99. package/dist/modules/accounts/hooks/current-account.hook.mjs.map +1 -1
  100. package/dist/modules/accounts/hooks/use-account-token.hook.mjs.map +1 -1
  101. package/dist/modules/accounts/hooks/useAccountManagement.mjs.map +1 -1
  102. package/dist/modules/accounts/hooks/useCurrencies.mjs.map +1 -1
  103. package/dist/modules/accounts/hooks/useTimezones.mjs.map +1 -1
  104. package/dist/modules/accounts/hooks/useViaCep.mjs.map +1 -1
  105. package/dist/modules/accounts/services/account-token.service.mjs.map +1 -1
  106. package/dist/modules/accounts/services/account.service.mjs.map +1 -1
  107. package/dist/modules/auth/actions/validate-session.action.mjs.map +1 -1
  108. package/dist/modules/auth/hooks/login.hook.mjs.map +1 -1
  109. package/dist/modules/auth/hooks/logout.hook.mjs.map +1 -1
  110. package/dist/modules/auth/hooks/register.hook.mjs.map +1 -1
  111. package/dist/modules/auth/hooks/useManagementPermissions.mjs.map +1 -1
  112. package/dist/modules/auth/hooks/useUserQuery.mjs.map +1 -1
  113. package/dist/modules/auth/utils/assert-management-permission.mjs.map +1 -1
  114. package/dist/modules/auth/utils/assert-management-subscription.mjs.map +1 -1
  115. package/dist/modules/auth/utils/assert-paid-subscription.mjs.map +1 -1
  116. package/dist/modules/auth/utils/assert-subscription-addon.mjs.map +1 -1
  117. package/dist/modules/auth/utils/build-wl-override.mjs.map +1 -1
  118. package/dist/modules/cards/actions/create-card.action.mjs.map +1 -1
  119. package/dist/modules/cards/actions/delete-card.action.mjs.map +1 -1
  120. package/dist/modules/cards/actions/find-card-by-id.action.mjs.map +1 -1
  121. package/dist/modules/cards/actions/list-cards.action.mjs.map +1 -1
  122. package/dist/modules/cards/actions/set-default-card.action.mjs.map +1 -1
  123. package/dist/modules/cards/hooks/card-by-id.hook.mjs.map +1 -1
  124. package/dist/modules/cards/hooks/cards.hook.mjs.map +1 -1
  125. package/dist/modules/cards/hooks/create-card.hook.mjs.map +1 -1
  126. package/dist/modules/cards/hooks/delete-card.hook.mjs.map +1 -1
  127. package/dist/modules/cards/hooks/set-default-card.hook.mjs.map +1 -1
  128. package/dist/modules/cards/services/cards.service.mjs.map +1 -1
  129. package/dist/modules/cards/types.mjs.map +1 -1
  130. package/dist/modules/ia-credits/actions/list-ia-credits.action.mjs.map +1 -1
  131. package/dist/modules/ia-credits/hooks/ia-credits.hook.mjs.map +1 -1
  132. package/dist/modules/images/actions/process-image.action.mjs.map +1 -1
  133. package/dist/modules/images/constants/image.constants.mjs.map +1 -1
  134. package/dist/modules/images/hooks/use-image-upload.hook.mjs.map +1 -1
  135. package/dist/modules/images/services/image-processing.service.mjs.map +1 -1
  136. package/dist/modules/images/utils/base64.mjs.map +1 -1
  137. package/dist/modules/images/utils/compress-image.mjs.map +1 -1
  138. package/dist/modules/images/utils/crop-image.mjs.map +1 -1
  139. package/dist/modules/images/utils/validate-image.mjs.map +1 -1
  140. package/dist/modules/plans/actions/find-plan-by-id.action.mjs.map +1 -1
  141. package/dist/modules/plans/actions/list-plans.action.mjs.map +1 -1
  142. package/dist/modules/plans/hooks/list-plans.hook.mjs.map +1 -1
  143. package/dist/modules/plans/hooks/use-has-plan-addon.hook.mjs.map +1 -1
  144. package/dist/modules/plans/hooks/use-plan-by-id.hook.mjs.map +1 -1
  145. package/dist/modules/plans/services/plans.service.mjs.map +1 -1
  146. package/dist/modules/plans/types/plan.type.mjs.map +1 -1
  147. package/dist/modules/plans/utils/map-api-plan-to-ui.mjs.map +1 -1
  148. package/dist/modules/projects/actions/add-project-user.action.mjs.map +1 -1
  149. package/dist/modules/projects/actions/create-project.action.mjs.map +1 -1
  150. package/dist/modules/projects/actions/delete-project.action.mjs.map +1 -1
  151. package/dist/modules/projects/actions/find-project.action.mjs.map +1 -1
  152. package/dist/modules/projects/actions/list-all-account-users.action.mjs.map +1 -1
  153. package/dist/modules/projects/actions/list-available-users.action.mjs.map +1 -1
  154. package/dist/modules/projects/actions/list-project-users.action.mjs.map +1 -1
  155. package/dist/modules/projects/actions/list-projects.action.mjs.map +1 -1
  156. package/dist/modules/projects/actions/remove-project-user.action.mjs.map +1 -1
  157. package/dist/modules/projects/actions/update-project.action.mjs.map +1 -1
  158. package/dist/modules/projects/hooks/add-project-user.hook.mjs.map +1 -1
  159. package/dist/modules/projects/hooks/create-project.hook.mjs.map +1 -1
  160. package/dist/modules/projects/hooks/delete-project.hook.mjs.map +1 -1
  161. package/dist/modules/projects/hooks/find-project.hook.mjs.map +1 -1
  162. package/dist/modules/projects/hooks/list-all-account-users.hook.mjs.map +1 -1
  163. package/dist/modules/projects/hooks/list-available-users.hook.mjs.map +1 -1
  164. package/dist/modules/projects/hooks/list-infinite-projects.hook.mjs.map +1 -1
  165. package/dist/modules/projects/hooks/list-project-users.hook.mjs.map +1 -1
  166. package/dist/modules/projects/hooks/list-projects.hook.mjs.map +1 -1
  167. package/dist/modules/projects/hooks/remove-project-user.hook.mjs.map +1 -1
  168. package/dist/modules/projects/hooks/update-project.hook.mjs.map +1 -1
  169. package/dist/modules/projects/services/projects.service.mjs.map +1 -1
  170. package/dist/modules/subscriptions/actions/calculate-subscription.action.mjs.map +1 -1
  171. package/dist/modules/subscriptions/actions/list-subscriptions.action.mjs.map +1 -1
  172. package/dist/modules/subscriptions/actions/update-subscription-plan.action.mjs.map +1 -1
  173. package/dist/modules/subscriptions/constants/query-keys.constants.mjs.map +1 -1
  174. package/dist/modules/subscriptions/hooks/calculate-subscription.hook.mjs.map +1 -1
  175. package/dist/modules/subscriptions/hooks/find-active-subscription.hook.mjs.map +1 -1
  176. package/dist/modules/subscriptions/hooks/list-subscriptions.hook.mjs.map +1 -1
  177. package/dist/modules/subscriptions/hooks/update-subscription-plan.hook.mjs.map +1 -1
  178. package/dist/modules/subscriptions/hooks/use-cancelled-subscription-guard.mjs.map +1 -1
  179. package/dist/modules/subscriptions/types/calculate-subscription.type.mjs.map +1 -1
  180. package/dist/modules/subscriptions/utils/build-plan-extras.mjs.map +1 -1
  181. package/dist/modules/subscriptions/utils/has-subscription-expired.mjs.map +1 -1
  182. package/dist/modules/subscriptions/utils/periodicity.mjs.map +1 -1
  183. package/dist/modules/subscriptions/utils/resolve-plan-extras-prices.mjs.map +1 -1
  184. package/dist/modules/users/action/find-user-by-id.action.mjs.map +1 -1
  185. package/dist/modules/users/action/list-messages.action.mjs.map +1 -1
  186. package/dist/modules/users/action/mark-all-messages-as-read.action.mjs.map +1 -1
  187. package/dist/modules/users/action/mark-message-as-read.action.mjs.map +1 -1
  188. package/dist/modules/users/hooks/messages.hook.mjs.map +1 -1
  189. package/dist/modules/users/services/messages.service.mjs.map +1 -1
  190. package/dist/modules/whitelabel/actions/find-whitelabel.action.mjs.map +1 -1
  191. package/dist/modules/whitelabel/actions/revalidate-whitelabel.action.mjs.map +1 -1
  192. package/dist/modules/whitelabel/utils/normalize-hostname.mjs.map +1 -1
  193. package/dist/providers/auth.provider.mjs.map +1 -1
  194. package/dist/providers/whitelabel.provider.mjs.map +1 -1
  195. package/dist/store/useBuyCreditsModal.mjs.map +1 -1
  196. package/dist/store/useDesktopSidebarStore.mjs.map +1 -1
  197. package/dist/store/useMdSidebarStore.mjs.map +1 -1
  198. package/dist/store/usePaidPlanRequiredModal.mjs.map +1 -1
  199. package/dist/utils/constants/br-states.mjs.map +1 -1
  200. package/dist/utils/countries.mjs.map +1 -1
  201. package/dist/utils/format/currency.mjs.map +1 -1
  202. package/dist/utils/safeServerAction.mjs.map +1 -1
  203. package/dist/utils/withAction.mjs.map +1 -1
  204. package/package.json +92 -92
  205. package/src/components/account/ConfigurationsMyAccountModal.tsx +161 -161
  206. package/src/components/account/ConfirmDeleteAccountModal.tsx +55 -55
  207. package/src/components/account/ConfirmGlobalPreferencesModal.tsx +66 -66
  208. package/src/components/account/DeleteAccountModal.tsx +130 -130
  209. package/src/components/account/DisableTwoFactorAuthModal.tsx +86 -86
  210. package/src/components/account/IsntPossibleDeleteAccountModal.tsx +49 -49
  211. package/src/components/account/TwoFactorAuthModal.tsx +215 -215
  212. package/src/components/account/hooks/useChangePhoneForm.tsx +107 -107
  213. package/src/components/account/hooks/useTwoFactorAuthForm.tsx +101 -101
  214. package/src/components/account/sections/ChangeEmailModal.tsx +227 -227
  215. package/src/components/account/sections/ChangePasswordSection.tsx +64 -64
  216. package/src/components/account/sections/ChangePhoneModal.tsx +247 -247
  217. package/src/components/account/sections/MyProfileSection.tsx +328 -328
  218. package/src/components/account/sections/PreferencesSection.tsx +248 -248
  219. package/src/components/account/sections/SecuritySection.tsx +46 -46
  220. package/src/components/account/sections/TokenSection.tsx +64 -64
  221. package/src/components/embeds/CrispEmbed.tsx +156 -156
  222. package/src/components/embeds/EmbedWidgets.tsx +50 -50
  223. package/src/components/embeds/FrillEmbed.tsx +129 -129
  224. package/src/components/layouts/AppMobileNavBar.tsx +80 -80
  225. package/src/components/layouts/AppNavBar.tsx +40 -40
  226. package/src/components/layouts/MdSideBarNavigation.tsx +56 -56
  227. package/src/components/layouts/NavBar.tsx +175 -175
  228. package/src/components/layouts/NotificationsPopover.tsx +118 -118
  229. package/src/components/layouts/ProfilePopover.tsx +176 -176
  230. package/src/components/layouts/SideBarNavigation.tsx +65 -65
  231. package/src/components/layouts/UsersSelectorPopover.tsx +234 -234
  232. package/src/components/layouts/WhitelabelCodes.tsx +59 -59
  233. package/src/components/modals/BuyCreditsModal.tsx +354 -354
  234. package/src/components/modals/PaidPlanRequiredModal.tsx +57 -57
  235. package/src/components/modals/cards/AddCardModal.tsx +265 -265
  236. package/src/components/modals/cards/CardFormFields.tsx +348 -348
  237. package/src/components/navigation/CancelledSubscriptionBanner.tsx +64 -64
  238. package/src/components/navigation/NavItemsContext.ts +20 -20
  239. package/src/components/navigation/ProjectSelectorPopover.tsx +178 -178
  240. package/src/components/navigation/shells/TabsMobileShell.tsx +74 -74
  241. package/src/components/navigation/subcomponents/BottomLinks.tsx +37 -37
  242. package/src/components/navigation/subcomponents/ProjectSelector.tsx +182 -182
  243. package/src/components/pages/NotFoundPage.tsx +67 -67
  244. package/src/components/pages/notifications/Notifications.tsx +187 -187
  245. package/src/components/ui/buttons/Button.tsx +62 -62
  246. package/src/components/ui/buttons/CancelButton.tsx +14 -14
  247. package/src/components/ui/buttons/CopyButton.tsx +54 -54
  248. package/src/components/ui/data-display/Accordion.tsx +81 -81
  249. package/src/components/ui/data-display/Badge.tsx +47 -47
  250. package/src/components/ui/data-display/Card.tsx +93 -93
  251. package/src/components/ui/data-display/CardBrandIcons.tsx +336 -336
  252. package/src/components/ui/data-display/CardItem.tsx +75 -75
  253. package/src/components/ui/data-display/Pagination.tsx +126 -126
  254. package/src/components/ui/data-display/PaymentInfoCard.tsx +192 -192
  255. package/src/components/ui/data-display/ScrollArea.tsx +59 -59
  256. package/src/components/ui/data-display/Separator.tsx +29 -29
  257. package/src/components/ui/data-display/Table.tsx +117 -117
  258. package/src/components/ui/data-display/Tabs.tsx +67 -67
  259. package/src/components/ui/feedback/CircularProgress.tsx +75 -75
  260. package/src/components/ui/feedback/DefaultCircularProgress.tsx +65 -65
  261. package/src/components/ui/feedback/LoadingOverlay.tsx +31 -31
  262. package/src/components/ui/feedback/Progress.tsx +40 -40
  263. package/src/components/ui/feedback/Skeleton.tsx +5 -5
  264. package/src/components/ui/feedback/Toast.tsx +104 -104
  265. package/src/components/ui/form/Calendar.tsx +228 -228
  266. package/src/components/ui/form/Checkbox.tsx +31 -31
  267. package/src/components/ui/form/ComboboxField.tsx +154 -154
  268. package/src/components/ui/form/DatePicker.tsx +98 -97
  269. package/src/components/ui/form/DateRangePicker.tsx +108 -108
  270. package/src/components/ui/form/FormField.tsx +133 -131
  271. package/src/components/ui/form/Input.tsx +20 -20
  272. package/src/components/ui/form/InputOtp.tsx +80 -80
  273. package/src/components/ui/form/PhoneInput.tsx +208 -208
  274. package/src/components/ui/form/RadioGroup.tsx +45 -45
  275. package/src/components/ui/form/Select.tsx +200 -200
  276. package/src/components/ui/form/Switch.tsx +32 -32
  277. package/src/components/ui/form/Textarea.tsx +19 -19
  278. package/src/components/ui/overlay/Command.tsx +185 -185
  279. package/src/components/ui/overlay/Dialog.tsx +153 -153
  280. package/src/components/ui/overlay/Popover.tsx +49 -49
  281. package/src/components/ui/overlay/Sheet.tsx +170 -170
  282. package/src/components/ui/overlay/Tooltip.tsx +62 -62
  283. package/src/components/widgets/ImageUpload/ImageCropModal.tsx +254 -254
  284. package/src/components/widgets/ImageUpload/ImageTooSmallModal.tsx +61 -61
  285. package/src/components/widgets/ImageUpload/ImageUpload.tsx +126 -126
  286. package/src/components/widgets/ImageUpload/index.ts +3 -3
  287. package/src/components/widgets/notifications/NotificationCard.tsx +73 -73
  288. package/src/hooks/copy-to-clipboard.hook.tsx +67 -67
  289. package/src/hooks/useAuthQueryKey.ts +32 -32
  290. package/src/index.ts +506 -506
  291. package/src/infra/utils/array.ts +54 -54
  292. package/src/infra/utils/date.ts +18 -18
  293. package/src/middleware.ts +4 -4
  294. package/src/modules/accounts/actions/account-management.action.ts +107 -107
  295. package/src/modules/accounts/actions/find-current-account.action.ts +9 -9
  296. package/src/modules/accounts/actions/get-account-token.action.ts +8 -8
  297. package/src/modules/accounts/actions/list-currencies.action.ts +8 -8
  298. package/src/modules/accounts/actions/list-timezones.action.ts +8 -8
  299. package/src/modules/accounts/hooks/current-account.hook.tsx +26 -26
  300. package/src/modules/accounts/hooks/use-account-token.hook.tsx +14 -14
  301. package/src/modules/accounts/hooks/useAccountManagement.ts +94 -94
  302. package/src/modules/accounts/hooks/useCurrencies.ts +18 -18
  303. package/src/modules/accounts/hooks/useTimezones.ts +18 -18
  304. package/src/modules/accounts/hooks/useViaCep.ts +25 -25
  305. package/src/modules/accounts/services/account-token.service.ts +52 -52
  306. package/src/modules/accounts/services/account.service.ts +239 -239
  307. package/src/modules/accounts/types.ts +225 -225
  308. package/src/modules/auth/actions/validate-session.action.ts +56 -56
  309. package/src/modules/auth/hooks/login.hook.tsx +13 -13
  310. package/src/modules/auth/hooks/logout.hook.tsx +11 -11
  311. package/src/modules/auth/hooks/register.hook.tsx +11 -11
  312. package/src/modules/auth/hooks/useManagementPermissions.ts +45 -45
  313. package/src/modules/auth/hooks/useUserQuery.ts +75 -75
  314. package/src/modules/auth/types/management-permission.type.ts +7 -7
  315. package/src/modules/auth/utils/assert-management-permission.ts +46 -46
  316. package/src/modules/auth/utils/assert-management-subscription.ts +35 -35
  317. package/src/modules/auth/utils/assert-paid-subscription.ts +43 -43
  318. package/src/modules/auth/utils/assert-subscription-addon.ts +42 -42
  319. package/src/modules/auth/utils/build-wl-override.ts +43 -43
  320. package/src/modules/cards/actions/create-card.action.ts +9 -9
  321. package/src/modules/cards/actions/delete-card.action.ts +8 -8
  322. package/src/modules/cards/actions/find-card-by-id.action.ts +8 -8
  323. package/src/modules/cards/actions/list-cards.action.ts +8 -8
  324. package/src/modules/cards/actions/set-default-card.action.ts +8 -8
  325. package/src/modules/cards/hooks/card-by-id.hook.ts +21 -21
  326. package/src/modules/cards/hooks/cards.hook.ts +23 -23
  327. package/src/modules/cards/hooks/create-card.hook.ts +30 -30
  328. package/src/modules/cards/hooks/delete-card.hook.ts +54 -54
  329. package/src/modules/cards/hooks/set-default-card.hook.ts +55 -55
  330. package/src/modules/cards/services/cards.service.ts +108 -108
  331. package/src/modules/cards/types.ts +42 -42
  332. package/src/modules/ia-credits/actions/list-ia-credits.action.ts +8 -8
  333. package/src/modules/ia-credits/hooks/ia-credits.hook.ts +99 -99
  334. package/src/modules/images/actions/process-image.action.ts +40 -40
  335. package/src/modules/images/constants/image.constants.ts +11 -11
  336. package/src/modules/images/hooks/use-image-upload.hook.ts +172 -172
  337. package/src/modules/images/services/image-processing.service.ts +75 -75
  338. package/src/modules/images/types/image.type.ts +54 -54
  339. package/src/modules/images/utils/base64.ts +26 -26
  340. package/src/modules/images/utils/compress-image.ts +20 -20
  341. package/src/modules/images/utils/crop-image.ts +51 -51
  342. package/src/modules/images/utils/validate-image.ts +71 -71
  343. package/src/modules/plans/actions/find-plan-by-id.action.ts +8 -8
  344. package/src/modules/plans/actions/list-plans.action.ts +17 -17
  345. package/src/modules/plans/hooks/list-plans.hook.ts +24 -24
  346. package/src/modules/plans/hooks/use-has-plan-addon.hook.ts +14 -14
  347. package/src/modules/plans/hooks/use-plan-by-id.hook.ts +38 -38
  348. package/src/modules/plans/services/plans.service.ts +133 -133
  349. package/src/modules/plans/types/plan.type.ts +67 -67
  350. package/src/modules/plans/utils/map-api-plan-to-ui.ts +98 -98
  351. package/src/modules/projects/actions/add-project-user.action.ts +9 -9
  352. package/src/modules/projects/actions/create-project.action.ts +9 -9
  353. package/src/modules/projects/actions/delete-project.action.ts +8 -8
  354. package/src/modules/projects/actions/find-project.action.ts +8 -8
  355. package/src/modules/projects/actions/list-all-account-users.action.ts +9 -9
  356. package/src/modules/projects/actions/list-available-users.action.ts +9 -9
  357. package/src/modules/projects/actions/list-project-users.action.ts +9 -9
  358. package/src/modules/projects/actions/list-projects.action.ts +16 -16
  359. package/src/modules/projects/actions/remove-project-user.action.ts +9 -9
  360. package/src/modules/projects/actions/update-project.action.ts +9 -9
  361. package/src/modules/projects/hooks/add-project-user.hook.ts +72 -72
  362. package/src/modules/projects/hooks/create-project.hook.ts +88 -88
  363. package/src/modules/projects/hooks/delete-project.hook.ts +58 -58
  364. package/src/modules/projects/hooks/find-project.hook.ts +18 -18
  365. package/src/modules/projects/hooks/list-all-account-users.hook.ts +39 -39
  366. package/src/modules/projects/hooks/list-available-users.hook.ts +38 -38
  367. package/src/modules/projects/hooks/list-infinite-projects.hook.ts +43 -43
  368. package/src/modules/projects/hooks/list-project-users.hook.ts +38 -38
  369. package/src/modules/projects/hooks/list-projects.hook.ts +23 -23
  370. package/src/modules/projects/hooks/remove-project-user.hook.ts +72 -72
  371. package/src/modules/projects/hooks/update-project.hook.ts +86 -86
  372. package/src/modules/projects/services/projects.service.ts +144 -144
  373. package/src/modules/subscriptions/actions/calculate-subscription.action.ts +9 -9
  374. package/src/modules/subscriptions/actions/list-subscriptions.action.ts +9 -9
  375. package/src/modules/subscriptions/actions/update-subscription-plan.action.ts +14 -14
  376. package/src/modules/subscriptions/constants/query-keys.constants.ts +3 -3
  377. package/src/modules/subscriptions/hooks/calculate-subscription.hook.ts +13 -13
  378. package/src/modules/subscriptions/hooks/find-active-subscription.hook.ts +18 -18
  379. package/src/modules/subscriptions/hooks/list-subscriptions.hook.ts +19 -19
  380. package/src/modules/subscriptions/hooks/update-subscription-plan.hook.ts +28 -28
  381. package/src/modules/subscriptions/hooks/use-cancelled-subscription-guard.ts +39 -39
  382. package/src/modules/subscriptions/types/billing-period.type.ts +1 -1
  383. package/src/modules/subscriptions/types/calculate-subscription.type.ts +113 -113
  384. package/src/modules/subscriptions/utils/build-plan-extras.ts +56 -56
  385. package/src/modules/subscriptions/utils/has-subscription-expired.ts +8 -8
  386. package/src/modules/subscriptions/utils/periodicity.ts +62 -62
  387. package/src/modules/subscriptions/utils/resolve-plan-extras-prices.ts +23 -23
  388. package/src/modules/users/action/find-user-by-id.action.ts +8 -8
  389. package/src/modules/users/action/list-messages.action.ts +26 -26
  390. package/src/modules/users/action/mark-all-messages-as-read.action.ts +8 -8
  391. package/src/modules/users/action/mark-message-as-read.action.ts +8 -8
  392. package/src/modules/users/hooks/messages.hook.ts +67 -67
  393. package/src/modules/users/services/messages.service.ts +49 -49
  394. package/src/modules/whitelabel/actions/find-whitelabel.action.ts +23 -23
  395. package/src/modules/whitelabel/actions/revalidate-whitelabel.action.ts +19 -19
  396. package/src/modules/whitelabel/schema.ts +84 -84
  397. package/src/modules/whitelabel/utils/normalize-hostname.ts +26 -26
  398. package/src/providers/auth.provider.tsx +162 -162
  399. package/src/providers/whitelabel.provider.tsx +59 -59
  400. package/src/store/useBuyCreditsModal.ts +21 -21
  401. package/src/store/useDesktopSidebarStore.ts +47 -47
  402. package/src/store/useMdSidebarStore.ts +34 -34
  403. package/src/store/usePaidPlanRequiredModal.ts +19 -19
  404. package/src/utils/constants/br-states.ts +29 -29
  405. package/src/utils/countries.ts +224 -224
  406. package/src/utils/format/currency.ts +15 -15
  407. package/src/utils/safeServerAction.ts +21 -21
  408. 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();