@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,86 +1,86 @@
1
- 'use client';
2
-
3
- import { useMutation, useQueryClient, InfiniteData, Query } from '@tanstack/react-query';
4
- import { updateProjectAction } from '../actions/update-project.action';
5
- import { withAction } from '../../../utils/withAction';
6
- import { useAuthQueryKey } from '../../../hooks/useAuthQueryKey';
7
- import { PROJECTS_BASE_KEY } from './list-projects.hook';
8
- import { insertSorted, buildCompareFn } from '../../../infra/utils/array';
9
- import type { Project, ProjectsPage, UpdateProjectRequest } from '../types';
10
-
11
- function extractSort(query: Query): string | undefined {
12
- const key = query.queryKey;
13
- for (let i = key.length - 1; i >= 0; i--) {
14
- const segment = key[i];
15
- if (segment && typeof segment === 'object' && 'sort' in segment) {
16
- return (segment as Record<string, unknown>).sort as string | undefined;
17
- }
18
- }
19
- return undefined;
20
- }
21
-
22
- export function useUpdateProject() {
23
- const queryClient = useQueryClient();
24
- const projectsKey = useAuthQueryKey([...PROJECTS_BASE_KEY]);
25
-
26
- return useMutation({
27
- mutationFn: ({ projectId, data }: { projectId: number; data: UpdateProjectRequest }) =>
28
- withAction(updateProjectAction)(projectId, data),
29
-
30
- onSuccess: (updatedProject: Project, { projectId }) => {
31
- const cache = queryClient.getQueryCache();
32
- const queries = cache.findAll({ queryKey: projectsKey });
33
-
34
- for (const query of queries) {
35
- const sort = extractSort(query);
36
- const isInfinite = query.queryKey.includes('infinite');
37
-
38
- if (isInfinite) {
39
- queryClient.setQueryData<InfiniteData<ProjectsPage>>(
40
- query.queryKey,
41
- (old) => {
42
- if (!old?.pages.length) return old;
43
-
44
- const pageSize = old.pages[0].data.length || 20;
45
- const allItems = old.pages.flatMap((page) => page.data);
46
- const without = allItems.filter((p) => p.id !== projectId);
47
-
48
- const withUpdated = sort
49
- ? insertSorted(without, updatedProject, buildCompareFn<Project>(sort))
50
- : [updatedProject, ...without];
51
-
52
- return {
53
- ...old,
54
- pages: old.pages.map((page, i) => ({
55
- ...page,
56
- data: withUpdated.slice(i * pageSize, (i + 1) * pageSize),
57
- })),
58
- };
59
- },
60
- );
61
- } else {
62
- queryClient.setQueryData<ProjectsPage>(
63
- query.queryKey,
64
- (old) => {
65
- if (!old) return old;
66
-
67
- const pageSize = old.data.length || 20;
68
- const without = old.data.filter((p) => p.id !== projectId);
69
-
70
- const withUpdated = sort
71
- ? insertSorted(without, updatedProject, buildCompareFn<Project>(sort))
72
- : [updatedProject, ...without];
73
-
74
- return {
75
- ...old,
76
- data: withUpdated.slice(0, pageSize),
77
- };
78
- },
79
- );
80
- }
81
- }
82
-
83
- queryClient.invalidateQueries({ queryKey: projectsKey });
84
- },
85
- });
86
- }
1
+ 'use client';
2
+
3
+ import { useMutation, useQueryClient, InfiniteData, Query } from '@tanstack/react-query';
4
+ import { updateProjectAction } from '../actions/update-project.action';
5
+ import { withAction } from '../../../utils/withAction';
6
+ import { useAuthQueryKey } from '../../../hooks/useAuthQueryKey';
7
+ import { PROJECTS_BASE_KEY } from './list-projects.hook';
8
+ import { insertSorted, buildCompareFn } from '../../../infra/utils/array';
9
+ import type { Project, ProjectsPage, UpdateProjectRequest } from '../types';
10
+
11
+ function extractSort(query: Query): string | undefined {
12
+ const key = query.queryKey;
13
+ for (let i = key.length - 1; i >= 0; i--) {
14
+ const segment = key[i];
15
+ if (segment && typeof segment === 'object' && 'sort' in segment) {
16
+ return (segment as Record<string, unknown>).sort as string | undefined;
17
+ }
18
+ }
19
+ return undefined;
20
+ }
21
+
22
+ export function useUpdateProject() {
23
+ const queryClient = useQueryClient();
24
+ const projectsKey = useAuthQueryKey([...PROJECTS_BASE_KEY]);
25
+
26
+ return useMutation({
27
+ mutationFn: ({ projectId, data }: { projectId: number; data: UpdateProjectRequest }) =>
28
+ withAction(updateProjectAction)(projectId, data),
29
+
30
+ onSuccess: (updatedProject: Project, { projectId }) => {
31
+ const cache = queryClient.getQueryCache();
32
+ const queries = cache.findAll({ queryKey: projectsKey });
33
+
34
+ for (const query of queries) {
35
+ const sort = extractSort(query);
36
+ const isInfinite = query.queryKey.includes('infinite');
37
+
38
+ if (isInfinite) {
39
+ queryClient.setQueryData<InfiniteData<ProjectsPage>>(
40
+ query.queryKey,
41
+ (old) => {
42
+ if (!old?.pages.length) return old;
43
+
44
+ const pageSize = old.pages[0].data.length || 20;
45
+ const allItems = old.pages.flatMap((page) => page.data);
46
+ const without = allItems.filter((p) => p.id !== projectId);
47
+
48
+ const withUpdated = sort
49
+ ? insertSorted(without, updatedProject, buildCompareFn<Project>(sort))
50
+ : [updatedProject, ...without];
51
+
52
+ return {
53
+ ...old,
54
+ pages: old.pages.map((page, i) => ({
55
+ ...page,
56
+ data: withUpdated.slice(i * pageSize, (i + 1) * pageSize),
57
+ })),
58
+ };
59
+ },
60
+ );
61
+ } else {
62
+ queryClient.setQueryData<ProjectsPage>(
63
+ query.queryKey,
64
+ (old) => {
65
+ if (!old) return old;
66
+
67
+ const pageSize = old.data.length || 20;
68
+ const without = old.data.filter((p) => p.id !== projectId);
69
+
70
+ const withUpdated = sort
71
+ ? insertSorted(without, updatedProject, buildCompareFn<Project>(sort))
72
+ : [updatedProject, ...without];
73
+
74
+ return {
75
+ ...old,
76
+ data: withUpdated.slice(0, pageSize),
77
+ };
78
+ },
79
+ );
80
+ }
81
+ }
82
+
83
+ queryClient.invalidateQueries({ queryKey: projectsKey });
84
+ },
85
+ });
86
+ }
@@ -1,144 +1,144 @@
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 { assertManagementSubscription } from '../../auth/utils/assert-management-subscription';
8
- import {
9
- Project,
10
- ProjectSchema,
11
- ProjectsPage,
12
- CreateProjectRequest,
13
- UpdateProjectRequest,
14
- } from '../types';
15
-
16
- interface ApiListResponse<T> {
17
- data: T[];
18
- total: number;
19
- status: number;
20
- message?: string;
21
- }
22
-
23
- interface ApiMutationResponse {
24
- status: number;
25
- message?: string;
26
- data?: Project[];
27
- }
28
-
29
- interface ListProjectsParams {
30
- page?: number;
31
- limit?: number;
32
- sort?: string;
33
- search?: string;
34
- deleted?: number;
35
- }
36
-
37
- class ProjectsService {
38
- async list(params: ListProjectsParams = {}): Promise<ProjectsPage> {
39
- const { id_account, id_user } = await getUserContext();
40
- const query = buildQueryParams(params as Record<string, string | number | boolean | undefined>);
41
- const url = `/account/${id_account}/user/${id_user}/projects${query ? `?${query}` : ''}`;
42
-
43
- const response = await api.apps.get<ApiListResponse<Project>>(url);
44
-
45
- if (response.status === 0) {
46
- throw new ApiError(
47
- response.message || 'Erro ao listar projetos',
48
- 'LIST_PROJECTS_FAILED',
49
- 400
50
- );
51
- }
52
-
53
- return {
54
- data: (response.data || []).map((item) => ProjectSchema.parse(item)),
55
- total: response.total || 0,
56
- page: params.page ?? 1,
57
- };
58
- }
59
-
60
- async findById(projectId: number): Promise<Project> {
61
- const { id_account, id_user } = await getUserContext();
62
- const url = `/account/${id_account}/user/${id_user}/projects/${projectId}`;
63
-
64
- const response = await api.apps.get<ApiMutationResponse>(url);
65
-
66
- if (response.status === 0) {
67
- throw new ApiError(
68
- response.message || 'Erro ao buscar projeto',
69
- 'FIND_PROJECT_FAILED',
70
- 400
71
- );
72
- }
73
-
74
- if (!response.data || response.data.length === 0) {
75
- throw new ApiError('Projeto não encontrado', 'PROJECT_NOT_FOUND', 404);
76
- }
77
-
78
- return ProjectSchema.parse(response.data[0]);
79
- }
80
-
81
- async create(data: CreateProjectRequest): Promise<Project> {
82
- await assertManagementSubscription();
83
- const { id_account, id_user } = await getUserContext();
84
- const url = `/account/${id_account}/user/${id_user}/projects`;
85
-
86
- const response = await api.apps.post<ApiMutationResponse>(url, data);
87
-
88
- if (response.status === 0) {
89
- throw new ApiError(
90
- response.message || 'Erro ao criar projeto',
91
- 'CREATE_PROJECT_FAILED',
92
- 400
93
- );
94
- }
95
-
96
- if (!response.data || response.data.length === 0) {
97
- throw new ApiError('Resposta inválida ao criar projeto', 'INVALID_RESPONSE', 500);
98
- }
99
-
100
- return ProjectSchema.parse(response.data[0]);
101
- }
102
-
103
- async update(projectId: number, data: UpdateProjectRequest): Promise<Project> {
104
- await assertManagementSubscription();
105
- const { id_account, id_user } = await getUserContext();
106
- const url = `/account/${id_account}/user/${id_user}/projects/${projectId}`;
107
-
108
- const response = await api.apps.put<ApiMutationResponse>(url, data);
109
-
110
- if (response.status === 0) {
111
- throw new ApiError(
112
- response.message || 'Erro ao atualizar projeto',
113
- 'UPDATE_PROJECT_FAILED',
114
- 400
115
- );
116
- }
117
-
118
- if (!response.data || response.data.length === 0) {
119
- throw new ApiError('Resposta inválida ao atualizar projeto', 'INVALID_RESPONSE', 500);
120
- }
121
-
122
- return ProjectSchema.parse(response.data[0]);
123
- }
124
-
125
- async delete(projectId: number, moveToProjectId: number): Promise<void> {
126
- await assertManagementSubscription();
127
- const { id_account, id_user } = await getUserContext();
128
- const url = `/account/${id_account}/user/${id_user}/projects/${projectId}`;
129
-
130
- const response = await api.apps.delete<ApiMutationResponse>(url, {
131
- body: JSON.stringify({ id_project_to_move: moveToProjectId }),
132
- });
133
-
134
- if (response.status === 0) {
135
- throw new ApiError(
136
- response.message || 'Erro ao deletar projeto',
137
- 'DELETE_PROJECT_FAILED',
138
- 400
139
- );
140
- }
141
- }
142
- }
143
-
144
- export const projectsService = new ProjectsService();
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 { assertManagementSubscription } from '../../auth/utils/assert-management-subscription';
8
+ import {
9
+ Project,
10
+ ProjectSchema,
11
+ ProjectsPage,
12
+ CreateProjectRequest,
13
+ UpdateProjectRequest,
14
+ } from '../types';
15
+
16
+ interface ApiListResponse<T> {
17
+ data: T[];
18
+ total: number;
19
+ status: number;
20
+ message?: string;
21
+ }
22
+
23
+ interface ApiMutationResponse {
24
+ status: number;
25
+ message?: string;
26
+ data?: Project[];
27
+ }
28
+
29
+ interface ListProjectsParams {
30
+ page?: number;
31
+ limit?: number;
32
+ sort?: string;
33
+ search?: string;
34
+ deleted?: number;
35
+ }
36
+
37
+ class ProjectsService {
38
+ async list(params: ListProjectsParams = {}): Promise<ProjectsPage> {
39
+ const { id_account, id_user } = await getUserContext();
40
+ const query = buildQueryParams(params as Record<string, string | number | boolean | undefined>);
41
+ const url = `/account/${id_account}/user/${id_user}/projects${query ? `?${query}` : ''}`;
42
+
43
+ const response = await api.apps.get<ApiListResponse<Project>>(url);
44
+
45
+ if (response.status === 0) {
46
+ throw new ApiError(
47
+ response.message || 'Erro ao listar projetos',
48
+ 'LIST_PROJECTS_FAILED',
49
+ 400
50
+ );
51
+ }
52
+
53
+ return {
54
+ data: (response.data || []).map((item) => ProjectSchema.parse(item)),
55
+ total: response.total || 0,
56
+ page: params.page ?? 1,
57
+ };
58
+ }
59
+
60
+ async findById(projectId: number): Promise<Project> {
61
+ const { id_account, id_user } = await getUserContext();
62
+ const url = `/account/${id_account}/user/${id_user}/projects/${projectId}`;
63
+
64
+ const response = await api.apps.get<ApiMutationResponse>(url);
65
+
66
+ if (response.status === 0) {
67
+ throw new ApiError(
68
+ response.message || 'Erro ao buscar projeto',
69
+ 'FIND_PROJECT_FAILED',
70
+ 400
71
+ );
72
+ }
73
+
74
+ if (!response.data || response.data.length === 0) {
75
+ throw new ApiError('Projeto não encontrado', 'PROJECT_NOT_FOUND', 404);
76
+ }
77
+
78
+ return ProjectSchema.parse(response.data[0]);
79
+ }
80
+
81
+ async create(data: CreateProjectRequest): Promise<Project> {
82
+ await assertManagementSubscription();
83
+ const { id_account, id_user } = await getUserContext();
84
+ const url = `/account/${id_account}/user/${id_user}/projects`;
85
+
86
+ const response = await api.apps.post<ApiMutationResponse>(url, data);
87
+
88
+ if (response.status === 0) {
89
+ throw new ApiError(
90
+ response.message || 'Erro ao criar projeto',
91
+ 'CREATE_PROJECT_FAILED',
92
+ 400
93
+ );
94
+ }
95
+
96
+ if (!response.data || response.data.length === 0) {
97
+ throw new ApiError('Resposta inválida ao criar projeto', 'INVALID_RESPONSE', 500);
98
+ }
99
+
100
+ return ProjectSchema.parse(response.data[0]);
101
+ }
102
+
103
+ async update(projectId: number, data: UpdateProjectRequest): Promise<Project> {
104
+ await assertManagementSubscription();
105
+ const { id_account, id_user } = await getUserContext();
106
+ const url = `/account/${id_account}/user/${id_user}/projects/${projectId}`;
107
+
108
+ const response = await api.apps.put<ApiMutationResponse>(url, data);
109
+
110
+ if (response.status === 0) {
111
+ throw new ApiError(
112
+ response.message || 'Erro ao atualizar projeto',
113
+ 'UPDATE_PROJECT_FAILED',
114
+ 400
115
+ );
116
+ }
117
+
118
+ if (!response.data || response.data.length === 0) {
119
+ throw new ApiError('Resposta inválida ao atualizar projeto', 'INVALID_RESPONSE', 500);
120
+ }
121
+
122
+ return ProjectSchema.parse(response.data[0]);
123
+ }
124
+
125
+ async delete(projectId: number, moveToProjectId: number): Promise<void> {
126
+ await assertManagementSubscription();
127
+ const { id_account, id_user } = await getUserContext();
128
+ const url = `/account/${id_account}/user/${id_user}/projects/${projectId}`;
129
+
130
+ const response = await api.apps.delete<ApiMutationResponse>(url, {
131
+ body: JSON.stringify({ id_project_to_move: moveToProjectId }),
132
+ });
133
+
134
+ if (response.status === 0) {
135
+ throw new ApiError(
136
+ response.message || 'Erro ao deletar projeto',
137
+ 'DELETE_PROJECT_FAILED',
138
+ 400
139
+ );
140
+ }
141
+ }
142
+ }
143
+
144
+ export const projectsService = new ProjectsService();
@@ -1,9 +1,9 @@
1
- 'use server';
2
-
3
- import { safeServerAction } from '../../../utils/safeServerAction';
4
- import type { CalculateSubscriptionRequest } from '../types/calculate-subscription.type';
5
- import { subscriptionsService } from '../services/subscriptions.service';
6
-
7
- export async function calculateSubscriptionAction(data: CalculateSubscriptionRequest) {
8
- return safeServerAction(() => subscriptionsService.calculateSubscription(data));
9
- }
1
+ 'use server';
2
+
3
+ import { safeServerAction } from '../../../utils/safeServerAction';
4
+ import type { CalculateSubscriptionRequest } from '../types/calculate-subscription.type';
5
+ import { subscriptionsService } from '../services/subscriptions.service';
6
+
7
+ export async function calculateSubscriptionAction(data: CalculateSubscriptionRequest) {
8
+ return safeServerAction(() => subscriptionsService.calculateSubscription(data));
9
+ }
@@ -1,9 +1,9 @@
1
- 'use server';
2
-
3
- import { safeServerAction } from '../../../utils/safeServerAction';
4
- import type { FindSubscriptionsParams } from '../types/subscription.type';
5
- import { subscriptionsService } from '../services/subscriptions.service';
6
-
7
- export async function listSubscriptionsAction(params?: Partial<FindSubscriptionsParams>) {
8
- return safeServerAction(() => subscriptionsService.listSubscriptions(params));
9
- }
1
+ 'use server';
2
+
3
+ import { safeServerAction } from '../../../utils/safeServerAction';
4
+ import type { FindSubscriptionsParams } from '../types/subscription.type';
5
+ import { subscriptionsService } from '../services/subscriptions.service';
6
+
7
+ export async function listSubscriptionsAction(params?: Partial<FindSubscriptionsParams>) {
8
+ return safeServerAction(() => subscriptionsService.listSubscriptions(params));
9
+ }
@@ -1,14 +1,14 @@
1
- "use server";
2
-
3
- import { safeServerAction } from "../../../utils/safeServerAction";
4
- import type { UpdateSubscriptionPlanRequest } from "../types/calculate-subscription.type";
5
- import { subscriptionsService } from "../services/subscriptions.service";
6
-
7
- export async function updateSubscriptionPlanAction(
8
- subscriptionId: number | string,
9
- data: UpdateSubscriptionPlanRequest,
10
- ) {
11
- return safeServerAction(async () => {
12
- return subscriptionsService.updateSubscriptionPlan(subscriptionId, data);
13
- });
14
- }
1
+ "use server";
2
+
3
+ import { safeServerAction } from "../../../utils/safeServerAction";
4
+ import type { UpdateSubscriptionPlanRequest } from "../types/calculate-subscription.type";
5
+ import { subscriptionsService } from "../services/subscriptions.service";
6
+
7
+ export async function updateSubscriptionPlanAction(
8
+ subscriptionId: number | string,
9
+ data: UpdateSubscriptionPlanRequest,
10
+ ) {
11
+ return safeServerAction(async () => {
12
+ return subscriptionsService.updateSubscriptionPlan(subscriptionId, data);
13
+ });
14
+ }
@@ -1,3 +1,3 @@
1
- export const SUBSCRIPTIONS_QUERY_KEY = ['subscriptions'] as const;
2
-
3
- export const CHARGES_QUERY_KEY = ['charges'] as const;
1
+ export const SUBSCRIPTIONS_QUERY_KEY = ['subscriptions'] as const;
2
+
3
+ export const CHARGES_QUERY_KEY = ['charges'] as const;
@@ -1,13 +1,13 @@
1
- 'use client';
2
-
3
- import { useMutation } from '@tanstack/react-query';
4
- import { withAction } from '../../../utils/withAction';
5
- import { calculateSubscriptionAction } from '../actions/calculate-subscription.action';
6
- import type { CalculateSubscriptionRequest } from '../types/calculate-subscription.type';
7
-
8
- export function useCalculateSubscription() {
9
- return useMutation({
10
- mutationFn: (data: CalculateSubscriptionRequest) =>
11
- withAction(calculateSubscriptionAction)(data),
12
- });
13
- }
1
+ 'use client';
2
+
3
+ import { useMutation } from '@tanstack/react-query';
4
+ import { withAction } from '../../../utils/withAction';
5
+ import { calculateSubscriptionAction } from '../actions/calculate-subscription.action';
6
+ import type { CalculateSubscriptionRequest } from '../types/calculate-subscription.type';
7
+
8
+ export function useCalculateSubscription() {
9
+ return useMutation({
10
+ mutationFn: (data: CalculateSubscriptionRequest) =>
11
+ withAction(calculateSubscriptionAction)(data),
12
+ });
13
+ }
@@ -1,18 +1,18 @@
1
- "use client";
2
-
3
- import { useQuery } from "@tanstack/react-query";
4
- import { listSubscriptionsAction } from "../actions/list-subscriptions.action";
5
- import { SUBSCRIPTIONS_QUERY_KEY } from "../constants/query-keys.constants";
6
- import { withAction } from "../../../utils/withAction";
7
- import { useAuthQueryKey } from "../../../hooks/useAuthQueryKey";
8
-
9
- export function useActiveSubscription() {
10
- const queryKey = useAuthQueryKey([...SUBSCRIPTIONS_QUERY_KEY, "active"]);
11
-
12
- return useQuery({
13
- queryKey,
14
- queryFn: async () => {
15
- return await withAction(listSubscriptionsAction)({ limit: 1 });
16
- },
17
- });
18
- }
1
+ "use client";
2
+
3
+ import { useQuery } from "@tanstack/react-query";
4
+ import { listSubscriptionsAction } from "../actions/list-subscriptions.action";
5
+ import { SUBSCRIPTIONS_QUERY_KEY } from "../constants/query-keys.constants";
6
+ import { withAction } from "../../../utils/withAction";
7
+ import { useAuthQueryKey } from "../../../hooks/useAuthQueryKey";
8
+
9
+ export function useActiveSubscription() {
10
+ const queryKey = useAuthQueryKey([...SUBSCRIPTIONS_QUERY_KEY, "active"]);
11
+
12
+ return useQuery({
13
+ queryKey,
14
+ queryFn: async () => {
15
+ return await withAction(listSubscriptionsAction)({ limit: 1 });
16
+ },
17
+ });
18
+ }
@@ -1,19 +1,19 @@
1
- 'use client';
2
-
3
- import { useQuery } from '@tanstack/react-query';
4
- import { listSubscriptionsAction } from '../actions/list-subscriptions.action';
5
- import { parseResult } from '../../../infra/utils/parser';
6
- import { SubscriptionSchema, type FindSubscriptionsParams } from '../types/subscription.type';
7
- import { withAction } from '../../../utils/withAction';
8
- import { SUBSCRIPTIONS_QUERY_KEY } from '../constants/query-keys.constants';
9
- import { useAuthQueryKey } from '../../../hooks/useAuthQueryKey';
10
-
11
- export function useSubscriptions(params?: Partial<FindSubscriptionsParams>) {
12
- const queryKey = useAuthQueryKey([...SUBSCRIPTIONS_QUERY_KEY, params]);
13
-
14
- return useQuery({
15
- queryKey,
16
- queryFn: async () =>
17
- parseResult(SubscriptionSchema, await withAction(() => listSubscriptionsAction(params))()),
18
- });
19
- }
1
+ 'use client';
2
+
3
+ import { useQuery } from '@tanstack/react-query';
4
+ import { listSubscriptionsAction } from '../actions/list-subscriptions.action';
5
+ import { parseResult } from '../../../infra/utils/parser';
6
+ import { SubscriptionSchema, type FindSubscriptionsParams } from '../types/subscription.type';
7
+ import { withAction } from '../../../utils/withAction';
8
+ import { SUBSCRIPTIONS_QUERY_KEY } from '../constants/query-keys.constants';
9
+ import { useAuthQueryKey } from '../../../hooks/useAuthQueryKey';
10
+
11
+ export function useSubscriptions(params?: Partial<FindSubscriptionsParams>) {
12
+ const queryKey = useAuthQueryKey([...SUBSCRIPTIONS_QUERY_KEY, params]);
13
+
14
+ return useQuery({
15
+ queryKey,
16
+ queryFn: async () =>
17
+ parseResult(SubscriptionSchema, await withAction(() => listSubscriptionsAction(params))()),
18
+ });
19
+ }