@oxyhq/services 5.25.0 → 5.26.1

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 (532) hide show
  1. package/README.md +60 -8
  2. package/lib/commonjs/core/AuthManager.js +405 -0
  3. package/lib/commonjs/core/AuthManager.js.map +1 -0
  4. package/lib/commonjs/core/HttpService.js +39 -1
  5. package/lib/commonjs/core/HttpService.js.map +1 -1
  6. package/lib/commonjs/core/index.js +16 -0
  7. package/lib/commonjs/core/index.js.map +1 -1
  8. package/lib/commonjs/core/mixins/OxyServices.fedcm.js +38 -44
  9. package/lib/commonjs/core/mixins/OxyServices.fedcm.js.map +1 -1
  10. package/lib/commonjs/core/mixins/OxyServices.popup.js +9 -7
  11. package/lib/commonjs/core/mixins/OxyServices.popup.js.map +1 -1
  12. package/lib/commonjs/crypto/keyManager.js +16 -21
  13. package/lib/commonjs/crypto/keyManager.js.map +1 -1
  14. package/lib/commonjs/index.js +386 -18
  15. package/lib/commonjs/index.js.map +1 -1
  16. package/lib/commonjs/lib/sonner.js +13 -17
  17. package/lib/commonjs/lib/sonner.js.map +1 -1
  18. package/lib/commonjs/lib/sonner.native.js +24 -0
  19. package/lib/commonjs/lib/sonner.native.js.map +1 -0
  20. package/lib/commonjs/lib/sonner.web.js +24 -0
  21. package/lib/commonjs/lib/sonner.web.js.map +1 -0
  22. package/lib/commonjs/shared/index.js +227 -0
  23. package/lib/commonjs/shared/index.js.map +1 -0
  24. package/lib/commonjs/shared/utils/colorUtils.js +161 -0
  25. package/lib/commonjs/shared/utils/colorUtils.js.map +1 -0
  26. package/lib/commonjs/shared/utils/debugUtils.js +84 -0
  27. package/lib/commonjs/shared/utils/debugUtils.js.map +1 -0
  28. package/lib/commonjs/shared/utils/errorUtils.js +190 -0
  29. package/lib/commonjs/shared/utils/errorUtils.js.map +1 -0
  30. package/lib/commonjs/shared/utils/index.js +196 -0
  31. package/lib/commonjs/shared/utils/index.js.map +1 -0
  32. package/lib/commonjs/shared/utils/networkUtils.js +213 -0
  33. package/lib/commonjs/shared/utils/networkUtils.js.map +1 -0
  34. package/lib/commonjs/shared/utils/themeUtils.js +118 -0
  35. package/lib/commonjs/shared/utils/themeUtils.js.map +1 -0
  36. package/lib/commonjs/ui/client.js +1 -1
  37. package/lib/commonjs/ui/components/BottomSheetRouter.js +1 -1
  38. package/lib/commonjs/ui/components/FollowButton.js +1 -1
  39. package/lib/commonjs/ui/components/FontLoader.js +1 -1
  40. package/lib/commonjs/ui/components/FontLoader.js.map +1 -1
  41. package/lib/commonjs/ui/components/GroupedItem.js +1 -1
  42. package/lib/commonjs/ui/components/Header.js +1 -1
  43. package/lib/commonjs/ui/components/OxyProvider.js +10 -2
  44. package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
  45. package/lib/commonjs/ui/components/OxySignInButton.js +19 -20
  46. package/lib/commonjs/ui/components/OxySignInButton.js.map +1 -1
  47. package/lib/commonjs/ui/components/ProfileCard.js +1 -1
  48. package/lib/commonjs/ui/components/ProfileCard.js.map +1 -1
  49. package/lib/commonjs/ui/components/QuickActions.js +1 -1
  50. package/lib/commonjs/ui/components/QuickActions.js.map +1 -1
  51. package/lib/commonjs/ui/components/Section.js +1 -1
  52. package/lib/commonjs/ui/components/SectionTitle.js +1 -1
  53. package/lib/commonjs/ui/components/SignInModal.js +546 -0
  54. package/lib/commonjs/ui/components/SignInModal.js.map +1 -0
  55. package/lib/commonjs/ui/components/payment/PaymentDetailsStep.js +1 -1
  56. package/lib/commonjs/ui/context/OxyContext.js +3 -2
  57. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  58. package/lib/commonjs/ui/hooks/mutations/mutationFactory.js +1 -1
  59. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js +1 -1
  60. package/lib/commonjs/ui/hooks/mutations/useServicesMutations.js +1 -1
  61. package/lib/commonjs/ui/hooks/useAsyncAction.js +1 -1
  62. package/lib/commonjs/ui/hooks/{use-color-scheme.js → useColorScheme.js} +1 -1
  63. package/lib/commonjs/ui/hooks/useColorScheme.js.map +1 -0
  64. package/lib/commonjs/ui/hooks/useSessionSocket.js +7 -13
  65. package/lib/commonjs/ui/hooks/useSessionSocket.js.map +1 -1
  66. package/lib/commonjs/ui/hooks/useSettingToggle.js +1 -1
  67. package/lib/commonjs/ui/hooks/useThemeColors.js +1 -1
  68. package/lib/commonjs/ui/hooks/useThemeStyles.js +1 -1
  69. package/lib/commonjs/ui/navigation/bottomSheetManager.js +5 -2
  70. package/lib/commonjs/ui/navigation/bottomSheetManager.js.map +1 -1
  71. package/lib/commonjs/ui/navigation/routes.js +7 -8
  72. package/lib/commonjs/ui/navigation/routes.js.map +1 -1
  73. package/lib/commonjs/ui/screens/AccountCenterScreen.js +8 -8
  74. package/lib/commonjs/ui/screens/AccountCenterScreen.js.map +1 -1
  75. package/lib/commonjs/ui/screens/AccountOverviewScreen.js +7 -7
  76. package/lib/commonjs/ui/screens/AccountOverviewScreen.js.map +1 -1
  77. package/lib/commonjs/ui/screens/AccountSettingsScreen.js +3 -3
  78. package/lib/commonjs/ui/screens/AccountSwitcherScreen.js +5 -5
  79. package/lib/commonjs/ui/screens/AccountSwitcherScreen.js.map +1 -1
  80. package/lib/commonjs/ui/screens/AccountVerificationScreen.js +1 -1
  81. package/lib/commonjs/ui/screens/AppInfoScreen.js +2 -2
  82. package/lib/commonjs/ui/screens/EditProfileFieldScreen.js +2 -2
  83. package/lib/commonjs/ui/screens/FAQScreen.js +1 -1
  84. package/lib/commonjs/ui/screens/FeedbackScreen.js +1 -1
  85. package/lib/commonjs/ui/screens/FileManagementScreen.js +2 -2
  86. package/lib/commonjs/ui/screens/FollowersListScreen.js +18 -0
  87. package/lib/commonjs/ui/screens/FollowersListScreen.js.map +1 -0
  88. package/lib/commonjs/ui/screens/FollowingListScreen.js +18 -0
  89. package/lib/commonjs/ui/screens/FollowingListScreen.js.map +1 -0
  90. package/lib/commonjs/ui/screens/HelpSupportScreen.js +2 -2
  91. package/lib/commonjs/ui/screens/HelpSupportScreen.js.map +1 -1
  92. package/lib/commonjs/ui/screens/HistoryViewScreen.js +2 -2
  93. package/lib/commonjs/ui/screens/LanguageSelectorScreen.js +2 -2
  94. package/lib/commonjs/ui/screens/LearnMoreUsernamesScreen.js +229 -0
  95. package/lib/commonjs/ui/screens/LearnMoreUsernamesScreen.js.map +1 -0
  96. package/lib/commonjs/ui/screens/LegalDocumentsScreen.js +2 -2
  97. package/lib/commonjs/ui/screens/LegalDocumentsScreen.js.map +1 -1
  98. package/lib/commonjs/ui/screens/OxyAuthScreen.js +9 -21
  99. package/lib/commonjs/ui/screens/OxyAuthScreen.js.map +1 -1
  100. package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js +2 -2
  101. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js +1 -1
  102. package/lib/commonjs/ui/screens/ProfileScreen.js +1 -1
  103. package/lib/commonjs/ui/screens/ProfileScreen.js.map +1 -1
  104. package/lib/commonjs/ui/screens/SavesCollectionsScreen.js +2 -2
  105. package/lib/commonjs/ui/screens/SessionManagementScreen.js +1 -1
  106. package/lib/commonjs/ui/screens/UserListScreen.js +411 -0
  107. package/lib/commonjs/ui/screens/UserListScreen.js.map +1 -0
  108. package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js +1 -1
  109. package/lib/commonjs/ui/screens/karma/KarmaAboutScreen.js +1 -1
  110. package/lib/commonjs/ui/screens/karma/KarmaCenterScreen.js +1 -1
  111. package/lib/commonjs/ui/screens/karma/KarmaFAQScreen.js +1 -1
  112. package/lib/commonjs/ui/screens/karma/KarmaLeaderboardScreen.js +1 -1
  113. package/lib/commonjs/ui/screens/karma/KarmaRewardsScreen.js +1 -1
  114. package/lib/commonjs/ui/screens/karma/KarmaRulesScreen.js +1 -1
  115. package/lib/commonjs/ui/stores/authStore.js +4 -6
  116. package/lib/commonjs/ui/stores/authStore.js.map +1 -1
  117. package/lib/commonjs/ui/utils/colorUtils.js +43 -46
  118. package/lib/commonjs/ui/utils/colorUtils.js.map +1 -1
  119. package/lib/commonjs/ui/utils/fileManagement.js +1 -1
  120. package/lib/commonjs/ui/utils/themeUtils.js +29 -39
  121. package/lib/commonjs/ui/utils/themeUtils.js.map +1 -1
  122. package/lib/commonjs/ui/utils/{user-utils.js → userUtils.js} +1 -1
  123. package/lib/commonjs/ui/utils/userUtils.js.map +1 -0
  124. package/lib/commonjs/utils/errorUtils.js +0 -13
  125. package/lib/commonjs/utils/errorUtils.js.map +1 -1
  126. package/lib/commonjs/utils/hookUtils.js +8 -8
  127. package/lib/commonjs/utils/hookUtils.js.map +1 -1
  128. package/lib/commonjs/utils/platform.js +129 -0
  129. package/lib/commonjs/utils/platform.js.map +1 -0
  130. package/lib/commonjs/web/WebOxyContext.js +273 -41
  131. package/lib/commonjs/web/WebOxyContext.js.map +1 -1
  132. package/lib/commonjs/web/index.js +177 -4
  133. package/lib/commonjs/web/index.js.map +1 -1
  134. package/lib/commonjs/web.js +12 -12
  135. package/lib/commonjs/web.js.map +1 -1
  136. package/lib/module/core/AuthManager.js +399 -0
  137. package/lib/module/core/AuthManager.js.map +1 -0
  138. package/lib/module/core/HttpService.js +39 -1
  139. package/lib/module/core/HttpService.js.map +1 -1
  140. package/lib/module/core/index.js +2 -0
  141. package/lib/module/core/index.js.map +1 -1
  142. package/lib/module/core/mixins/OxyServices.fedcm.js +38 -44
  143. package/lib/module/core/mixins/OxyServices.fedcm.js.map +1 -1
  144. package/lib/module/core/mixins/OxyServices.popup.js +9 -7
  145. package/lib/module/core/mixins/OxyServices.popup.js.map +1 -1
  146. package/lib/module/crypto/keyManager.js +16 -21
  147. package/lib/module/crypto/keyManager.js.map +1 -1
  148. package/lib/module/index.js +34 -3
  149. package/lib/module/index.js.map +1 -1
  150. package/lib/module/lib/sonner.js +11 -16
  151. package/lib/module/lib/sonner.js.map +1 -1
  152. package/lib/module/lib/sonner.native.js +19 -0
  153. package/lib/module/lib/sonner.native.js.map +1 -0
  154. package/lib/module/lib/sonner.web.js +19 -0
  155. package/lib/module/lib/sonner.web.js.map +1 -0
  156. package/lib/module/shared/index.js +37 -0
  157. package/lib/module/shared/index.js.map +1 -0
  158. package/lib/module/shared/utils/colorUtils.js +150 -0
  159. package/lib/module/shared/utils/colorUtils.js.map +1 -0
  160. package/lib/module/shared/utils/debugUtils.js +75 -0
  161. package/lib/module/shared/utils/debugUtils.js.map +1 -0
  162. package/lib/module/shared/utils/errorUtils.js +176 -0
  163. package/lib/module/shared/utils/errorUtils.js.map +1 -0
  164. package/lib/module/shared/utils/index.js +21 -0
  165. package/lib/module/shared/utils/index.js.map +1 -0
  166. package/lib/module/shared/utils/networkUtils.js +202 -0
  167. package/lib/module/shared/utils/networkUtils.js.map +1 -0
  168. package/lib/module/shared/utils/themeUtils.js +109 -0
  169. package/lib/module/shared/utils/themeUtils.js.map +1 -0
  170. package/lib/module/ui/client.js +1 -1
  171. package/lib/module/ui/client.js.map +1 -1
  172. package/lib/module/ui/components/BottomSheetRouter.js +1 -1
  173. package/lib/module/ui/components/BottomSheetRouter.js.map +1 -1
  174. package/lib/module/ui/components/FollowButton.js +1 -1
  175. package/lib/module/ui/components/FollowButton.js.map +1 -1
  176. package/lib/module/ui/components/FontLoader.js +1 -1
  177. package/lib/module/ui/components/FontLoader.js.map +1 -1
  178. package/lib/module/ui/components/GroupedItem.js +1 -1
  179. package/lib/module/ui/components/GroupedItem.js.map +1 -1
  180. package/lib/module/ui/components/Header.js +1 -1
  181. package/lib/module/ui/components/Header.js.map +1 -1
  182. package/lib/module/ui/components/OxyProvider.js +10 -2
  183. package/lib/module/ui/components/OxyProvider.js.map +1 -1
  184. package/lib/module/ui/components/OxySignInButton.js +20 -21
  185. package/lib/module/ui/components/OxySignInButton.js.map +1 -1
  186. package/lib/module/ui/components/ProfileCard.js +1 -1
  187. package/lib/module/ui/components/ProfileCard.js.map +1 -1
  188. package/lib/module/ui/components/QuickActions.js +1 -1
  189. package/lib/module/ui/components/QuickActions.js.map +1 -1
  190. package/lib/module/ui/components/Section.js +1 -1
  191. package/lib/module/ui/components/Section.js.map +1 -1
  192. package/lib/module/ui/components/SectionTitle.js +1 -1
  193. package/lib/module/ui/components/SectionTitle.js.map +1 -1
  194. package/lib/module/ui/components/SignInModal.js +536 -0
  195. package/lib/module/ui/components/SignInModal.js.map +1 -0
  196. package/lib/module/ui/components/payment/PaymentDetailsStep.js +1 -1
  197. package/lib/module/ui/components/payment/PaymentDetailsStep.js.map +1 -1
  198. package/lib/module/ui/context/OxyContext.js +2 -2
  199. package/lib/module/ui/context/OxyContext.js.map +1 -1
  200. package/lib/module/ui/hooks/mutations/mutationFactory.js +1 -1
  201. package/lib/module/ui/hooks/mutations/mutationFactory.js.map +1 -1
  202. package/lib/module/ui/hooks/mutations/useAccountMutations.js +1 -1
  203. package/lib/module/ui/hooks/mutations/useAccountMutations.js.map +1 -1
  204. package/lib/module/ui/hooks/mutations/useServicesMutations.js +1 -1
  205. package/lib/module/ui/hooks/mutations/useServicesMutations.js.map +1 -1
  206. package/lib/module/ui/hooks/useAsyncAction.js +1 -1
  207. package/lib/module/ui/hooks/useAsyncAction.js.map +1 -1
  208. package/lib/module/ui/hooks/{use-color-scheme.js → useColorScheme.js} +1 -1
  209. package/lib/module/ui/hooks/useColorScheme.js.map +1 -0
  210. package/lib/module/ui/hooks/useSessionSocket.js +7 -13
  211. package/lib/module/ui/hooks/useSessionSocket.js.map +1 -1
  212. package/lib/module/ui/hooks/useSettingToggle.js +1 -1
  213. package/lib/module/ui/hooks/useSettingToggle.js.map +1 -1
  214. package/lib/module/ui/hooks/useThemeColors.js +1 -1
  215. package/lib/module/ui/hooks/useThemeColors.js.map +1 -1
  216. package/lib/module/ui/hooks/useThemeStyles.js +1 -1
  217. package/lib/module/ui/hooks/useThemeStyles.js.map +1 -1
  218. package/lib/module/ui/navigation/bottomSheetManager.js +5 -2
  219. package/lib/module/ui/navigation/bottomSheetManager.js.map +1 -1
  220. package/lib/module/ui/navigation/routes.js +7 -8
  221. package/lib/module/ui/navigation/routes.js.map +1 -1
  222. package/lib/module/ui/screens/AccountCenterScreen.js +8 -8
  223. package/lib/module/ui/screens/AccountCenterScreen.js.map +1 -1
  224. package/lib/module/ui/screens/AccountOverviewScreen.js +7 -7
  225. package/lib/module/ui/screens/AccountOverviewScreen.js.map +1 -1
  226. package/lib/module/ui/screens/AccountSettingsScreen.js +3 -3
  227. package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
  228. package/lib/module/ui/screens/AccountSwitcherScreen.js +5 -5
  229. package/lib/module/ui/screens/AccountSwitcherScreen.js.map +1 -1
  230. package/lib/module/ui/screens/AccountVerificationScreen.js +1 -1
  231. package/lib/module/ui/screens/AccountVerificationScreen.js.map +1 -1
  232. package/lib/module/ui/screens/AppInfoScreen.js +2 -2
  233. package/lib/module/ui/screens/AppInfoScreen.js.map +1 -1
  234. package/lib/module/ui/screens/EditProfileFieldScreen.js +2 -2
  235. package/lib/module/ui/screens/EditProfileFieldScreen.js.map +1 -1
  236. package/lib/module/ui/screens/FAQScreen.js +1 -1
  237. package/lib/module/ui/screens/FAQScreen.js.map +1 -1
  238. package/lib/module/ui/screens/FeedbackScreen.js +1 -1
  239. package/lib/module/ui/screens/FeedbackScreen.js.map +1 -1
  240. package/lib/module/ui/screens/FileManagementScreen.js +2 -2
  241. package/lib/module/ui/screens/FileManagementScreen.js.map +1 -1
  242. package/lib/module/ui/screens/FollowersListScreen.js +13 -0
  243. package/lib/module/ui/screens/FollowersListScreen.js.map +1 -0
  244. package/lib/module/ui/screens/FollowingListScreen.js +13 -0
  245. package/lib/module/ui/screens/FollowingListScreen.js.map +1 -0
  246. package/lib/module/ui/screens/HelpSupportScreen.js +2 -2
  247. package/lib/module/ui/screens/HelpSupportScreen.js.map +1 -1
  248. package/lib/module/ui/screens/HistoryViewScreen.js +2 -2
  249. package/lib/module/ui/screens/HistoryViewScreen.js.map +1 -1
  250. package/lib/module/ui/screens/LanguageSelectorScreen.js +2 -2
  251. package/lib/module/ui/screens/LanguageSelectorScreen.js.map +1 -1
  252. package/lib/module/ui/screens/LearnMoreUsernamesScreen.js +224 -0
  253. package/lib/module/ui/screens/LearnMoreUsernamesScreen.js.map +1 -0
  254. package/lib/module/ui/screens/LegalDocumentsScreen.js +2 -2
  255. package/lib/module/ui/screens/LegalDocumentsScreen.js.map +1 -1
  256. package/lib/module/ui/screens/OxyAuthScreen.js +9 -21
  257. package/lib/module/ui/screens/OxyAuthScreen.js.map +1 -1
  258. package/lib/module/ui/screens/PremiumSubscriptionScreen.js +2 -2
  259. package/lib/module/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
  260. package/lib/module/ui/screens/PrivacySettingsScreen.js +1 -1
  261. package/lib/module/ui/screens/PrivacySettingsScreen.js.map +1 -1
  262. package/lib/module/ui/screens/ProfileScreen.js +1 -1
  263. package/lib/module/ui/screens/ProfileScreen.js.map +1 -1
  264. package/lib/module/ui/screens/SavesCollectionsScreen.js +2 -2
  265. package/lib/module/ui/screens/SavesCollectionsScreen.js.map +1 -1
  266. package/lib/module/ui/screens/SessionManagementScreen.js +1 -1
  267. package/lib/module/ui/screens/SessionManagementScreen.js.map +1 -1
  268. package/lib/module/ui/screens/UserListScreen.js +405 -0
  269. package/lib/module/ui/screens/UserListScreen.js.map +1 -0
  270. package/lib/module/ui/screens/WelcomeNewUserScreen.js +1 -1
  271. package/lib/module/ui/screens/WelcomeNewUserScreen.js.map +1 -1
  272. package/lib/module/ui/screens/karma/KarmaAboutScreen.js +1 -1
  273. package/lib/module/ui/screens/karma/KarmaAboutScreen.js.map +1 -1
  274. package/lib/module/ui/screens/karma/KarmaCenterScreen.js +1 -1
  275. package/lib/module/ui/screens/karma/KarmaCenterScreen.js.map +1 -1
  276. package/lib/module/ui/screens/karma/KarmaFAQScreen.js +1 -1
  277. package/lib/module/ui/screens/karma/KarmaFAQScreen.js.map +1 -1
  278. package/lib/module/ui/screens/karma/KarmaLeaderboardScreen.js +1 -1
  279. package/lib/module/ui/screens/karma/KarmaLeaderboardScreen.js.map +1 -1
  280. package/lib/module/ui/screens/karma/KarmaRewardsScreen.js +1 -1
  281. package/lib/module/ui/screens/karma/KarmaRewardsScreen.js.map +1 -1
  282. package/lib/module/ui/screens/karma/KarmaRulesScreen.js +1 -1
  283. package/lib/module/ui/screens/karma/KarmaRulesScreen.js.map +1 -1
  284. package/lib/module/ui/stores/authStore.js +4 -6
  285. package/lib/module/ui/stores/authStore.js.map +1 -1
  286. package/lib/module/ui/utils/colorUtils.js +7 -40
  287. package/lib/module/ui/utils/colorUtils.js.map +1 -1
  288. package/lib/module/ui/utils/fileManagement.js +1 -1
  289. package/lib/module/ui/utils/fileManagement.js.map +1 -1
  290. package/lib/module/ui/utils/themeUtils.js +7 -35
  291. package/lib/module/ui/utils/themeUtils.js.map +1 -1
  292. package/lib/module/ui/utils/{user-utils.js → userUtils.js} +1 -1
  293. package/lib/module/ui/utils/userUtils.js.map +1 -0
  294. package/lib/module/utils/errorUtils.js +0 -7
  295. package/lib/module/utils/errorUtils.js.map +1 -1
  296. package/lib/module/utils/hookUtils.js +8 -8
  297. package/lib/module/utils/hookUtils.js.map +1 -1
  298. package/lib/module/utils/platform.js +118 -0
  299. package/lib/module/utils/platform.js.map +1 -0
  300. package/lib/module/web/WebOxyContext.js +272 -41
  301. package/lib/module/web/WebOxyContext.js.map +1 -1
  302. package/lib/module/web/index.js +26 -5
  303. package/lib/module/web/index.js.map +1 -1
  304. package/lib/module/web.js +2 -1
  305. package/lib/module/web.js.map +1 -1
  306. package/lib/typescript/commonjs/core/AuthManager.d.ts +144 -0
  307. package/lib/typescript/commonjs/core/AuthManager.d.ts.map +1 -0
  308. package/lib/typescript/commonjs/core/HttpService.d.ts.map +1 -1
  309. package/lib/typescript/commonjs/core/index.d.ts +2 -0
  310. package/lib/typescript/commonjs/core/index.d.ts.map +1 -1
  311. package/lib/typescript/commonjs/core/mixins/OxyServices.fedcm.d.ts.map +1 -1
  312. package/lib/typescript/commonjs/core/mixins/OxyServices.popup.d.ts.map +1 -1
  313. package/lib/typescript/commonjs/crypto/keyManager.d.ts.map +1 -1
  314. package/lib/typescript/commonjs/index.d.ts +16 -2
  315. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  316. package/lib/typescript/commonjs/lib/sonner.d.ts +11 -14
  317. package/lib/typescript/commonjs/lib/sonner.d.ts.map +1 -1
  318. package/lib/typescript/commonjs/lib/sonner.native.d.ts +15 -0
  319. package/lib/typescript/commonjs/lib/sonner.native.d.ts.map +1 -0
  320. package/lib/typescript/commonjs/lib/sonner.web.d.ts +15 -0
  321. package/lib/typescript/commonjs/lib/sonner.web.d.ts.map +1 -0
  322. package/lib/typescript/commonjs/models/session.d.ts +4 -0
  323. package/lib/typescript/commonjs/models/session.d.ts.map +1 -1
  324. package/lib/typescript/commonjs/shared/index.d.ts +29 -0
  325. package/lib/typescript/commonjs/shared/index.d.ts.map +1 -0
  326. package/lib/typescript/commonjs/shared/utils/colorUtils.d.ts +105 -0
  327. package/lib/typescript/commonjs/shared/utils/colorUtils.d.ts.map +1 -0
  328. package/lib/typescript/commonjs/shared/utils/debugUtils.d.ts +49 -0
  329. package/lib/typescript/commonjs/shared/utils/debugUtils.d.ts.map +1 -0
  330. package/lib/typescript/commonjs/shared/utils/errorUtils.d.ts +98 -0
  331. package/lib/typescript/commonjs/shared/utils/errorUtils.d.ts.map +1 -0
  332. package/lib/typescript/commonjs/shared/utils/index.d.ts +14 -0
  333. package/lib/typescript/commonjs/shared/utils/index.d.ts.map +1 -0
  334. package/lib/typescript/commonjs/shared/utils/networkUtils.d.ts +140 -0
  335. package/lib/typescript/commonjs/shared/utils/networkUtils.d.ts.map +1 -0
  336. package/lib/typescript/commonjs/shared/utils/themeUtils.d.ts +91 -0
  337. package/lib/typescript/commonjs/shared/utils/themeUtils.d.ts.map +1 -0
  338. package/lib/typescript/commonjs/ui/components/FontLoader.d.ts +1 -1
  339. package/lib/typescript/commonjs/ui/components/FontLoader.d.ts.map +1 -1
  340. package/lib/typescript/commonjs/ui/components/OxyProvider.d.ts.map +1 -1
  341. package/lib/typescript/commonjs/ui/components/OxySignInButton.d.ts.map +1 -1
  342. package/lib/typescript/commonjs/ui/components/SignInModal.d.ts +18 -0
  343. package/lib/typescript/commonjs/ui/components/SignInModal.d.ts.map +1 -0
  344. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts +1 -2
  345. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts.map +1 -1
  346. package/lib/typescript/commonjs/ui/hooks/{use-color-scheme.d.ts → useColorScheme.d.ts} +1 -1
  347. package/lib/typescript/commonjs/ui/hooks/useColorScheme.d.ts.map +1 -0
  348. package/lib/typescript/commonjs/ui/hooks/useSessionSocket.d.ts.map +1 -1
  349. package/lib/typescript/commonjs/ui/navigation/bottomSheetManager.d.ts +2 -0
  350. package/lib/typescript/commonjs/ui/navigation/bottomSheetManager.d.ts.map +1 -1
  351. package/lib/typescript/commonjs/ui/navigation/routes.d.ts +1 -1
  352. package/lib/typescript/commonjs/ui/navigation/routes.d.ts.map +1 -1
  353. package/lib/typescript/commonjs/ui/screens/FollowersListScreen.d.ts +9 -0
  354. package/lib/typescript/commonjs/ui/screens/FollowersListScreen.d.ts.map +1 -0
  355. package/lib/typescript/commonjs/ui/screens/FollowingListScreen.d.ts +9 -0
  356. package/lib/typescript/commonjs/ui/screens/FollowingListScreen.d.ts.map +1 -0
  357. package/lib/typescript/commonjs/ui/screens/LearnMoreUsernamesScreen.d.ts +5 -0
  358. package/lib/typescript/commonjs/ui/screens/LearnMoreUsernamesScreen.d.ts.map +1 -0
  359. package/lib/typescript/commonjs/ui/screens/OxyAuthScreen.d.ts.map +1 -1
  360. package/lib/typescript/commonjs/ui/screens/UserListScreen.d.ts +11 -0
  361. package/lib/typescript/commonjs/ui/screens/UserListScreen.d.ts.map +1 -0
  362. package/lib/typescript/commonjs/ui/stores/authStore.d.ts.map +1 -1
  363. package/lib/typescript/commonjs/ui/utils/colorUtils.d.ts +7 -11
  364. package/lib/typescript/commonjs/ui/utils/colorUtils.d.ts.map +1 -1
  365. package/lib/typescript/commonjs/ui/utils/themeUtils.d.ts +6 -19
  366. package/lib/typescript/commonjs/ui/utils/themeUtils.d.ts.map +1 -1
  367. package/lib/typescript/commonjs/ui/utils/{user-utils.d.ts → userUtils.d.ts} +1 -1
  368. package/lib/typescript/commonjs/ui/utils/userUtils.d.ts.map +1 -0
  369. package/lib/typescript/commonjs/utils/errorUtils.d.ts +0 -6
  370. package/lib/typescript/commonjs/utils/errorUtils.d.ts.map +1 -1
  371. package/lib/typescript/commonjs/utils/platform.d.ts +41 -0
  372. package/lib/typescript/commonjs/utils/platform.d.ts.map +1 -0
  373. package/lib/typescript/commonjs/web/WebOxyContext.d.ts +117 -9
  374. package/lib/typescript/commonjs/web/WebOxyContext.d.ts.map +1 -1
  375. package/lib/typescript/commonjs/web/index.d.ts +19 -8
  376. package/lib/typescript/commonjs/web/index.d.ts.map +1 -1
  377. package/lib/typescript/commonjs/web.d.ts +2 -1
  378. package/lib/typescript/commonjs/web.d.ts.map +1 -1
  379. package/lib/typescript/module/core/AuthManager.d.ts +144 -0
  380. package/lib/typescript/module/core/AuthManager.d.ts.map +1 -0
  381. package/lib/typescript/module/core/HttpService.d.ts.map +1 -1
  382. package/lib/typescript/module/core/index.d.ts +2 -0
  383. package/lib/typescript/module/core/index.d.ts.map +1 -1
  384. package/lib/typescript/module/core/mixins/OxyServices.fedcm.d.ts.map +1 -1
  385. package/lib/typescript/module/core/mixins/OxyServices.popup.d.ts.map +1 -1
  386. package/lib/typescript/module/crypto/keyManager.d.ts.map +1 -1
  387. package/lib/typescript/module/index.d.ts +16 -2
  388. package/lib/typescript/module/index.d.ts.map +1 -1
  389. package/lib/typescript/module/lib/sonner.d.ts +11 -14
  390. package/lib/typescript/module/lib/sonner.d.ts.map +1 -1
  391. package/lib/typescript/module/lib/sonner.native.d.ts +15 -0
  392. package/lib/typescript/module/lib/sonner.native.d.ts.map +1 -0
  393. package/lib/typescript/module/lib/sonner.web.d.ts +15 -0
  394. package/lib/typescript/module/lib/sonner.web.d.ts.map +1 -0
  395. package/lib/typescript/module/models/session.d.ts +4 -0
  396. package/lib/typescript/module/models/session.d.ts.map +1 -1
  397. package/lib/typescript/module/shared/index.d.ts +29 -0
  398. package/lib/typescript/module/shared/index.d.ts.map +1 -0
  399. package/lib/typescript/module/shared/utils/colorUtils.d.ts +105 -0
  400. package/lib/typescript/module/shared/utils/colorUtils.d.ts.map +1 -0
  401. package/lib/typescript/module/shared/utils/debugUtils.d.ts +49 -0
  402. package/lib/typescript/module/shared/utils/debugUtils.d.ts.map +1 -0
  403. package/lib/typescript/module/shared/utils/errorUtils.d.ts +98 -0
  404. package/lib/typescript/module/shared/utils/errorUtils.d.ts.map +1 -0
  405. package/lib/typescript/module/shared/utils/index.d.ts +14 -0
  406. package/lib/typescript/module/shared/utils/index.d.ts.map +1 -0
  407. package/lib/typescript/module/shared/utils/networkUtils.d.ts +140 -0
  408. package/lib/typescript/module/shared/utils/networkUtils.d.ts.map +1 -0
  409. package/lib/typescript/module/shared/utils/themeUtils.d.ts +91 -0
  410. package/lib/typescript/module/shared/utils/themeUtils.d.ts.map +1 -0
  411. package/lib/typescript/module/ui/components/FontLoader.d.ts +1 -1
  412. package/lib/typescript/module/ui/components/FontLoader.d.ts.map +1 -1
  413. package/lib/typescript/module/ui/components/OxyProvider.d.ts.map +1 -1
  414. package/lib/typescript/module/ui/components/OxySignInButton.d.ts.map +1 -1
  415. package/lib/typescript/module/ui/components/SignInModal.d.ts +18 -0
  416. package/lib/typescript/module/ui/components/SignInModal.d.ts.map +1 -0
  417. package/lib/typescript/module/ui/context/OxyContext.d.ts +1 -2
  418. package/lib/typescript/module/ui/context/OxyContext.d.ts.map +1 -1
  419. package/lib/typescript/module/ui/hooks/{use-color-scheme.d.ts → useColorScheme.d.ts} +1 -1
  420. package/lib/typescript/module/ui/hooks/useColorScheme.d.ts.map +1 -0
  421. package/lib/typescript/module/ui/hooks/useSessionSocket.d.ts.map +1 -1
  422. package/lib/typescript/module/ui/navigation/bottomSheetManager.d.ts +2 -0
  423. package/lib/typescript/module/ui/navigation/bottomSheetManager.d.ts.map +1 -1
  424. package/lib/typescript/module/ui/navigation/routes.d.ts +1 -1
  425. package/lib/typescript/module/ui/navigation/routes.d.ts.map +1 -1
  426. package/lib/typescript/module/ui/screens/FollowersListScreen.d.ts +9 -0
  427. package/lib/typescript/module/ui/screens/FollowersListScreen.d.ts.map +1 -0
  428. package/lib/typescript/module/ui/screens/FollowingListScreen.d.ts +9 -0
  429. package/lib/typescript/module/ui/screens/FollowingListScreen.d.ts.map +1 -0
  430. package/lib/typescript/module/ui/screens/LearnMoreUsernamesScreen.d.ts +5 -0
  431. package/lib/typescript/module/ui/screens/LearnMoreUsernamesScreen.d.ts.map +1 -0
  432. package/lib/typescript/module/ui/screens/OxyAuthScreen.d.ts.map +1 -1
  433. package/lib/typescript/module/ui/screens/UserListScreen.d.ts +11 -0
  434. package/lib/typescript/module/ui/screens/UserListScreen.d.ts.map +1 -0
  435. package/lib/typescript/module/ui/stores/authStore.d.ts.map +1 -1
  436. package/lib/typescript/module/ui/utils/colorUtils.d.ts +7 -11
  437. package/lib/typescript/module/ui/utils/colorUtils.d.ts.map +1 -1
  438. package/lib/typescript/module/ui/utils/themeUtils.d.ts +6 -19
  439. package/lib/typescript/module/ui/utils/themeUtils.d.ts.map +1 -1
  440. package/lib/typescript/module/ui/utils/{user-utils.d.ts → userUtils.d.ts} +1 -1
  441. package/lib/typescript/module/ui/utils/userUtils.d.ts.map +1 -0
  442. package/lib/typescript/module/utils/errorUtils.d.ts +0 -6
  443. package/lib/typescript/module/utils/errorUtils.d.ts.map +1 -1
  444. package/lib/typescript/module/utils/platform.d.ts +41 -0
  445. package/lib/typescript/module/utils/platform.d.ts.map +1 -0
  446. package/lib/typescript/module/web/WebOxyContext.d.ts +117 -9
  447. package/lib/typescript/module/web/WebOxyContext.d.ts.map +1 -1
  448. package/lib/typescript/module/web/index.d.ts +19 -8
  449. package/lib/typescript/module/web/index.d.ts.map +1 -1
  450. package/lib/typescript/module/web.d.ts +2 -1
  451. package/lib/typescript/module/web.d.ts.map +1 -1
  452. package/package.json +8 -2
  453. package/src/core/AuthManager.ts +436 -0
  454. package/src/core/HttpService.ts +43 -1
  455. package/src/core/index.ts +4 -0
  456. package/src/core/mixins/OxyServices.fedcm.ts +37 -42
  457. package/src/core/mixins/OxyServices.popup.ts +10 -7
  458. package/src/crypto/keyManager.ts +16 -21
  459. package/src/index.ts +83 -12
  460. package/src/lib/sonner.native.ts +28 -0
  461. package/src/lib/sonner.ts +11 -28
  462. package/src/lib/sonner.web.ts +28 -0
  463. package/src/models/session.ts +4 -0
  464. package/src/shared/index.ts +82 -0
  465. package/src/shared/utils/colorUtils.ts +155 -0
  466. package/src/shared/utils/debugUtils.ts +73 -0
  467. package/src/shared/utils/errorUtils.ts +181 -0
  468. package/src/shared/utils/index.ts +59 -0
  469. package/src/shared/utils/networkUtils.ts +248 -0
  470. package/src/shared/utils/themeUtils.ts +115 -0
  471. package/src/ui/components/BottomSheetRouter.tsx +1 -1
  472. package/src/ui/components/FontLoader.tsx +1 -2
  473. package/src/ui/components/GroupedItem.tsx +1 -1
  474. package/src/ui/components/Header.tsx +1 -1
  475. package/src/ui/components/OxyProvider.tsx +10 -0
  476. package/src/ui/components/OxySignInButton.tsx +20 -22
  477. package/src/ui/components/ProfileCard.tsx +1 -1
  478. package/src/ui/components/QuickActions.tsx +1 -1
  479. package/src/ui/components/Section.tsx +1 -1
  480. package/src/ui/components/SectionTitle.tsx +1 -1
  481. package/src/ui/components/SignInModal.tsx +534 -0
  482. package/src/ui/context/OxyContext.tsx +1 -2
  483. package/src/ui/hooks/queries/queryKeys.ts +2 -2
  484. package/src/ui/hooks/useSessionSocket.ts +12 -17
  485. package/src/ui/hooks/useThemeColors.ts +1 -1
  486. package/src/ui/hooks/useThemeStyles.ts +1 -1
  487. package/src/ui/navigation/bottomSheetManager.ts +5 -1
  488. package/src/ui/navigation/routes.ts +8 -9
  489. package/src/ui/screens/AccountCenterScreen.tsx +7 -7
  490. package/src/ui/screens/AccountOverviewScreen.tsx +6 -6
  491. package/src/ui/screens/AccountSettingsScreen.tsx +2 -2
  492. package/src/ui/screens/AccountSwitcherScreen.tsx +4 -4
  493. package/src/ui/screens/AppInfoScreen.tsx +1 -1
  494. package/src/ui/screens/EditProfileFieldScreen.tsx +1 -1
  495. package/src/ui/screens/FileManagementScreen.tsx +1 -1
  496. package/src/ui/screens/FollowersListScreen.tsx +14 -0
  497. package/src/ui/screens/FollowingListScreen.tsx +14 -0
  498. package/src/ui/screens/HelpSupportScreen.tsx +1 -1
  499. package/src/ui/screens/HistoryViewScreen.tsx +1 -1
  500. package/src/ui/screens/LanguageSelectorScreen.tsx +1 -1
  501. package/src/ui/screens/LearnMoreUsernamesScreen.tsx +231 -0
  502. package/src/ui/screens/LegalDocumentsScreen.tsx +1 -1
  503. package/src/ui/screens/OxyAuthScreen.tsx +10 -21
  504. package/src/ui/screens/PremiumSubscriptionScreen.tsx +1 -1
  505. package/src/ui/screens/ProfileScreen.tsx +1 -1
  506. package/src/ui/screens/SavesCollectionsScreen.tsx +1 -1
  507. package/src/ui/screens/UserListScreen.tsx +416 -0
  508. package/src/ui/screens/karma/KarmaAboutScreen.tsx +1 -1
  509. package/src/ui/screens/karma/KarmaCenterScreen.tsx +1 -1
  510. package/src/ui/screens/karma/KarmaFAQScreen.tsx +1 -1
  511. package/src/ui/screens/karma/KarmaLeaderboardScreen.tsx +1 -1
  512. package/src/ui/screens/karma/KarmaRewardsScreen.tsx +1 -1
  513. package/src/ui/screens/karma/KarmaRulesScreen.tsx +1 -1
  514. package/src/ui/stores/authStore.ts +5 -6
  515. package/src/ui/utils/colorUtils.ts +15 -43
  516. package/src/ui/utils/themeUtils.ts +14 -39
  517. package/src/utils/errorUtils.ts +1 -6
  518. package/src/utils/hookUtils.ts +8 -8
  519. package/src/utils/platform.ts +117 -0
  520. package/src/web/WebOxyContext.tsx +331 -41
  521. package/src/web/index.ts +76 -6
  522. package/src/web.ts +1 -1
  523. package/lib/commonjs/ui/hooks/use-color-scheme.js.map +0 -1
  524. package/lib/commonjs/ui/utils/user-utils.js.map +0 -1
  525. package/lib/module/ui/hooks/use-color-scheme.js.map +0 -1
  526. package/lib/module/ui/utils/user-utils.js.map +0 -1
  527. package/lib/typescript/commonjs/ui/hooks/use-color-scheme.d.ts.map +0 -1
  528. package/lib/typescript/commonjs/ui/utils/user-utils.d.ts.map +0 -1
  529. package/lib/typescript/module/ui/hooks/use-color-scheme.d.ts.map +0 -1
  530. package/lib/typescript/module/ui/utils/user-utils.d.ts.map +0 -1
  531. /package/src/ui/hooks/{use-color-scheme.ts → useColorScheme.ts} +0 -0
  532. /package/src/ui/utils/{user-utils.ts → userUtils.ts} +0 -0
@@ -0,0 +1,190 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.isUnauthorizedError = exports.isServerError = exports.isRetryableError = exports.isRateLimitError = exports.isNotFoundError = exports.isNetworkError = exports.isForbiddenError = exports.isAlreadyRegisteredError = exports.getErrorStatus = exports.getErrorMessage = exports.HttpStatus = void 0;
7
+ /**
8
+ * Error Utility Functions
9
+ *
10
+ * Consolidated error handling utilities for the OxyServices ecosystem.
11
+ * These functions help with common error patterns like checking HTTP status codes.
12
+ *
13
+ * @module shared/utils/errorUtils
14
+ */
15
+
16
+ /**
17
+ * Common HTTP status codes used in error checking.
18
+ */
19
+ const HttpStatus = exports.HttpStatus = {
20
+ BAD_REQUEST: 400,
21
+ UNAUTHORIZED: 401,
22
+ FORBIDDEN: 403,
23
+ NOT_FOUND: 404,
24
+ CONFLICT: 409,
25
+ UNPROCESSABLE_ENTITY: 422,
26
+ TOO_MANY_REQUESTS: 429,
27
+ INTERNAL_SERVER_ERROR: 500,
28
+ BAD_GATEWAY: 502,
29
+ SERVICE_UNAVAILABLE: 503,
30
+ GATEWAY_TIMEOUT: 504
31
+ };
32
+
33
+ /**
34
+ * Extracts the HTTP status code from an error object.
35
+ *
36
+ * @param error - Any error object
37
+ * @returns The status code if found, undefined otherwise
38
+ */
39
+ const getErrorStatus = error => {
40
+ if (!error || typeof error !== 'object') return undefined;
41
+ const err = error;
42
+
43
+ // Direct status property
44
+ if (typeof err.status === 'number') return err.status;
45
+
46
+ // Axios-style response.status
47
+ if (err.response && typeof err.response === 'object') {
48
+ const response = err.response;
49
+ if (typeof response.status === 'number') return response.status;
50
+ }
51
+
52
+ // statusCode property (some libraries use this)
53
+ if (typeof err.statusCode === 'number') return err.statusCode;
54
+ return undefined;
55
+ };
56
+
57
+ /**
58
+ * Extracts the error message from an error object.
59
+ *
60
+ * @param error - Any error object
61
+ * @param fallback - Fallback message if none found
62
+ * @returns The error message
63
+ */
64
+ exports.getErrorStatus = getErrorStatus;
65
+ const getErrorMessage = (error, fallback = 'An unknown error occurred') => {
66
+ if (!error) return fallback;
67
+ if (typeof error === 'string') return error;
68
+ if (error instanceof Error) return error.message;
69
+ if (typeof error === 'object') {
70
+ const err = error;
71
+ if (typeof err.message === 'string') return err.message;
72
+ if (typeof err.error === 'string') return err.error;
73
+
74
+ // Axios-style response.data.message
75
+ if (err.response && typeof err.response === 'object') {
76
+ const response = err.response;
77
+ if (response.data && typeof response.data === 'object') {
78
+ const data = response.data;
79
+ if (typeof data.message === 'string') return data.message;
80
+ if (typeof data.error === 'string') return data.error;
81
+ }
82
+ }
83
+ }
84
+ return fallback;
85
+ };
86
+
87
+ /**
88
+ * Check if an error indicates the user is already registered (HTTP 409 Conflict).
89
+ *
90
+ * The backend should always return HTTP 409 for duplicate registrations.
91
+ *
92
+ * @param error - Any error object
93
+ * @returns true if the error is a 409 Conflict
94
+ */
95
+ exports.getErrorMessage = getErrorMessage;
96
+ const isAlreadyRegisteredError = error => {
97
+ return getErrorStatus(error) === HttpStatus.CONFLICT;
98
+ };
99
+
100
+ /**
101
+ * Check if an error is an authentication error (HTTP 401).
102
+ *
103
+ * @param error - Any error object
104
+ * @returns true if the error is a 401 Unauthorized
105
+ */
106
+ exports.isAlreadyRegisteredError = isAlreadyRegisteredError;
107
+ const isUnauthorizedError = error => {
108
+ return getErrorStatus(error) === HttpStatus.UNAUTHORIZED;
109
+ };
110
+
111
+ /**
112
+ * Check if an error is a forbidden error (HTTP 403).
113
+ *
114
+ * @param error - Any error object
115
+ * @returns true if the error is a 403 Forbidden
116
+ */
117
+ exports.isUnauthorizedError = isUnauthorizedError;
118
+ const isForbiddenError = error => {
119
+ return getErrorStatus(error) === HttpStatus.FORBIDDEN;
120
+ };
121
+
122
+ /**
123
+ * Check if an error is a not found error (HTTP 404).
124
+ *
125
+ * @param error - Any error object
126
+ * @returns true if the error is a 404 Not Found
127
+ */
128
+ exports.isForbiddenError = isForbiddenError;
129
+ const isNotFoundError = error => {
130
+ return getErrorStatus(error) === HttpStatus.NOT_FOUND;
131
+ };
132
+
133
+ /**
134
+ * Check if an error is a rate limit error (HTTP 429).
135
+ *
136
+ * @param error - Any error object
137
+ * @returns true if the error is a 429 Too Many Requests
138
+ */
139
+ exports.isNotFoundError = isNotFoundError;
140
+ const isRateLimitError = error => {
141
+ return getErrorStatus(error) === HttpStatus.TOO_MANY_REQUESTS;
142
+ };
143
+
144
+ /**
145
+ * Check if an error is a server error (HTTP 5xx).
146
+ *
147
+ * @param error - Any error object
148
+ * @returns true if the error is a 5xx server error
149
+ */
150
+ exports.isRateLimitError = isRateLimitError;
151
+ const isServerError = error => {
152
+ const status = getErrorStatus(error);
153
+ return status !== undefined && status >= 500 && status < 600;
154
+ };
155
+
156
+ /**
157
+ * Check if an error is a network error (no response received).
158
+ *
159
+ * @param error - Any error object
160
+ * @returns true if the error appears to be a network error
161
+ */
162
+ exports.isServerError = isServerError;
163
+ const isNetworkError = error => {
164
+ if (!error || typeof error !== 'object') return false;
165
+ const err = error;
166
+
167
+ // Check for common network error indicators
168
+ if (err.name === 'NetworkError') return true;
169
+ if (err.code === 'ENOTFOUND' || err.code === 'ECONNREFUSED' || err.code === 'ETIMEDOUT') return true;
170
+
171
+ // Axios-style: has request but no response
172
+ if (err.request && !err.response) return true;
173
+
174
+ // Message-based detection
175
+ const message = getErrorMessage(error, '').toLowerCase();
176
+ return message.includes('network') || message.includes('connection') || message.includes('timeout');
177
+ };
178
+
179
+ /**
180
+ * Check if an error is retryable (network errors or 5xx server errors).
181
+ *
182
+ * @param error - Any error object
183
+ * @returns true if the request should be retried
184
+ */
185
+ exports.isNetworkError = isNetworkError;
186
+ const isRetryableError = error => {
187
+ return isNetworkError(error) || isServerError(error) || isRateLimitError(error);
188
+ };
189
+ exports.isRetryableError = isRetryableError;
190
+ //# sourceMappingURL=errorUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["HttpStatus","exports","BAD_REQUEST","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","UNPROCESSABLE_ENTITY","TOO_MANY_REQUESTS","INTERNAL_SERVER_ERROR","BAD_GATEWAY","SERVICE_UNAVAILABLE","GATEWAY_TIMEOUT","getErrorStatus","error","undefined","err","status","response","statusCode","getErrorMessage","fallback","Error","message","data","isAlreadyRegisteredError","isUnauthorizedError","isForbiddenError","isNotFoundError","isRateLimitError","isServerError","isNetworkError","name","code","request","toLowerCase","includes","isRetryableError"],"sourceRoot":"../../../../src","sources":["shared/utils/errorUtils.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,196 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "DEFAULT_CIRCUIT_BREAKER_CONFIG", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _networkUtils.DEFAULT_CIRCUIT_BREAKER_CONFIG;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "HttpStatus", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _errorUtils.HttpStatus;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "calculateBackoffInterval", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _networkUtils.calculateBackoffInterval;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "createCircuitBreakerState", {
25
+ enumerable: true,
26
+ get: function () {
27
+ return _networkUtils.createCircuitBreakerState;
28
+ }
29
+ });
30
+ Object.defineProperty(exports, "darkenColor", {
31
+ enumerable: true,
32
+ get: function () {
33
+ return _colorUtils.darkenColor;
34
+ }
35
+ });
36
+ Object.defineProperty(exports, "delay", {
37
+ enumerable: true,
38
+ get: function () {
39
+ return _networkUtils.delay;
40
+ }
41
+ });
42
+ Object.defineProperty(exports, "getContrastTextColor", {
43
+ enumerable: true,
44
+ get: function () {
45
+ return _colorUtils.getContrastTextColor;
46
+ }
47
+ });
48
+ Object.defineProperty(exports, "getErrorMessage", {
49
+ enumerable: true,
50
+ get: function () {
51
+ return _errorUtils.getErrorMessage;
52
+ }
53
+ });
54
+ Object.defineProperty(exports, "getErrorStatus", {
55
+ enumerable: true,
56
+ get: function () {
57
+ return _errorUtils.getErrorStatus;
58
+ }
59
+ });
60
+ Object.defineProperty(exports, "getOppositeTheme", {
61
+ enumerable: true,
62
+ get: function () {
63
+ return _themeUtils.getOppositeTheme;
64
+ }
65
+ });
66
+ Object.defineProperty(exports, "getSystemColorScheme", {
67
+ enumerable: true,
68
+ get: function () {
69
+ return _themeUtils.getSystemColorScheme;
70
+ }
71
+ });
72
+ Object.defineProperty(exports, "hexToRgb", {
73
+ enumerable: true,
74
+ get: function () {
75
+ return _colorUtils.hexToRgb;
76
+ }
77
+ });
78
+ Object.defineProperty(exports, "isAlreadyRegisteredError", {
79
+ enumerable: true,
80
+ get: function () {
81
+ return _errorUtils.isAlreadyRegisteredError;
82
+ }
83
+ });
84
+ Object.defineProperty(exports, "isForbiddenError", {
85
+ enumerable: true,
86
+ get: function () {
87
+ return _errorUtils.isForbiddenError;
88
+ }
89
+ });
90
+ Object.defineProperty(exports, "isLightColor", {
91
+ enumerable: true,
92
+ get: function () {
93
+ return _colorUtils.isLightColor;
94
+ }
95
+ });
96
+ Object.defineProperty(exports, "isNetworkError", {
97
+ enumerable: true,
98
+ get: function () {
99
+ return _errorUtils.isNetworkError;
100
+ }
101
+ });
102
+ Object.defineProperty(exports, "isNotFoundError", {
103
+ enumerable: true,
104
+ get: function () {
105
+ return _errorUtils.isNotFoundError;
106
+ }
107
+ });
108
+ Object.defineProperty(exports, "isRateLimitError", {
109
+ enumerable: true,
110
+ get: function () {
111
+ return _errorUtils.isRateLimitError;
112
+ }
113
+ });
114
+ Object.defineProperty(exports, "isRetryableError", {
115
+ enumerable: true,
116
+ get: function () {
117
+ return _errorUtils.isRetryableError;
118
+ }
119
+ });
120
+ Object.defineProperty(exports, "isServerError", {
121
+ enumerable: true,
122
+ get: function () {
123
+ return _errorUtils.isServerError;
124
+ }
125
+ });
126
+ Object.defineProperty(exports, "isUnauthorizedError", {
127
+ enumerable: true,
128
+ get: function () {
129
+ return _errorUtils.isUnauthorizedError;
130
+ }
131
+ });
132
+ Object.defineProperty(exports, "lightenColor", {
133
+ enumerable: true,
134
+ get: function () {
135
+ return _colorUtils.lightenColor;
136
+ }
137
+ });
138
+ Object.defineProperty(exports, "normalizeColorScheme", {
139
+ enumerable: true,
140
+ get: function () {
141
+ return _themeUtils.normalizeColorScheme;
142
+ }
143
+ });
144
+ Object.defineProperty(exports, "normalizeTheme", {
145
+ enumerable: true,
146
+ get: function () {
147
+ return _themeUtils.normalizeTheme;
148
+ }
149
+ });
150
+ Object.defineProperty(exports, "recordFailure", {
151
+ enumerable: true,
152
+ get: function () {
153
+ return _networkUtils.recordFailure;
154
+ }
155
+ });
156
+ Object.defineProperty(exports, "recordSuccess", {
157
+ enumerable: true,
158
+ get: function () {
159
+ return _networkUtils.recordSuccess;
160
+ }
161
+ });
162
+ Object.defineProperty(exports, "rgbToHex", {
163
+ enumerable: true,
164
+ get: function () {
165
+ return _colorUtils.rgbToHex;
166
+ }
167
+ });
168
+ Object.defineProperty(exports, "shouldAllowRequest", {
169
+ enumerable: true,
170
+ get: function () {
171
+ return _networkUtils.shouldAllowRequest;
172
+ }
173
+ });
174
+ Object.defineProperty(exports, "systemPrefersDarkMode", {
175
+ enumerable: true,
176
+ get: function () {
177
+ return _themeUtils.systemPrefersDarkMode;
178
+ }
179
+ });
180
+ Object.defineProperty(exports, "withOpacity", {
181
+ enumerable: true,
182
+ get: function () {
183
+ return _colorUtils.withOpacity;
184
+ }
185
+ });
186
+ Object.defineProperty(exports, "withRetry", {
187
+ enumerable: true,
188
+ get: function () {
189
+ return _networkUtils.withRetry;
190
+ }
191
+ });
192
+ var _colorUtils = require("./colorUtils.js");
193
+ var _themeUtils = require("./themeUtils.js");
194
+ var _errorUtils = require("./errorUtils.js");
195
+ var _networkUtils = require("./networkUtils.js");
196
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_colorUtils","require","_themeUtils","_errorUtils","_networkUtils"],"sourceRoot":"../../../../src","sources":["shared/utils/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,IAAAA,WAAA,GAAAC,OAAA;AAWA,IAAAC,WAAA,GAAAD,OAAA;AAUA,IAAAE,WAAA,GAAAF,OAAA;AAeA,IAAAG,aAAA,GAAAH,OAAA","ignoreList":[]}
@@ -0,0 +1,213 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.withRetry = exports.shouldAllowRequest = exports.recordSuccess = exports.recordFailure = exports.delay = exports.createCircuitBreakerState = exports.calculateBackoffInterval = exports.DEFAULT_CIRCUIT_BREAKER_CONFIG = void 0;
7
+ /**
8
+ * Network Utility Functions
9
+ *
10
+ * Consolidated network utilities including circuit breaker pattern
11
+ * and exponential backoff for resilient API calls.
12
+ *
13
+ * @module shared/utils/networkUtils
14
+ */
15
+
16
+ /**
17
+ * State for circuit breaker pattern.
18
+ */
19
+
20
+ /**
21
+ * Configuration for circuit breaker.
22
+ */
23
+
24
+ /**
25
+ * Default circuit breaker configuration.
26
+ */
27
+ const DEFAULT_CIRCUIT_BREAKER_CONFIG = exports.DEFAULT_CIRCUIT_BREAKER_CONFIG = {
28
+ baseInterval: 10000,
29
+ maxInterval: 60000,
30
+ maxFailures: 5,
31
+ recoveryTimeout: 30000
32
+ };
33
+
34
+ /**
35
+ * Creates initial circuit breaker state.
36
+ *
37
+ * @param config - Optional custom configuration
38
+ * @returns Initial circuit breaker state
39
+ *
40
+ * @example
41
+ * ```ts
42
+ * const state = createCircuitBreakerState({ maxFailures: 3 });
43
+ * ```
44
+ */
45
+ const createCircuitBreakerState = (config = {}) => {
46
+ const {
47
+ baseInterval,
48
+ maxInterval,
49
+ maxFailures
50
+ } = {
51
+ ...DEFAULT_CIRCUIT_BREAKER_CONFIG,
52
+ ...config
53
+ };
54
+ return {
55
+ consecutiveFailures: 0,
56
+ currentInterval: baseInterval,
57
+ baseInterval,
58
+ maxInterval,
59
+ maxFailures,
60
+ isOpen: false
61
+ };
62
+ };
63
+
64
+ /**
65
+ * Calculates next interval using exponential backoff.
66
+ *
67
+ * @param state - Current circuit breaker state
68
+ * @returns Next interval in milliseconds
69
+ *
70
+ * @example
71
+ * ```ts
72
+ * const nextInterval = calculateBackoffInterval(state);
73
+ * await delay(nextInterval);
74
+ * ```
75
+ */
76
+ exports.createCircuitBreakerState = createCircuitBreakerState;
77
+ const calculateBackoffInterval = state => {
78
+ const {
79
+ consecutiveFailures,
80
+ baseInterval,
81
+ maxInterval
82
+ } = state;
83
+ if (consecutiveFailures === 0) return baseInterval;
84
+ const backoffMultiplier = Math.min(Math.pow(2, consecutiveFailures - 1), maxInterval / baseInterval);
85
+ return Math.min(baseInterval * backoffMultiplier, maxInterval);
86
+ };
87
+
88
+ /**
89
+ * Records a failure and updates circuit breaker state.
90
+ *
91
+ * @param state - Current circuit breaker state
92
+ * @returns Updated state after recording failure
93
+ *
94
+ * @example
95
+ * ```ts
96
+ * try {
97
+ * await apiCall();
98
+ * state = recordSuccess(state);
99
+ * } catch (error) {
100
+ * state = recordFailure(state);
101
+ * }
102
+ * ```
103
+ */
104
+ exports.calculateBackoffInterval = calculateBackoffInterval;
105
+ const recordFailure = state => {
106
+ const newFailures = state.consecutiveFailures + 1;
107
+ const newInterval = calculateBackoffInterval({
108
+ ...state,
109
+ consecutiveFailures: newFailures
110
+ });
111
+ const shouldOpenCircuit = newFailures >= state.maxFailures;
112
+ const finalInterval = shouldOpenCircuit ? state.maxInterval : newInterval;
113
+ return {
114
+ ...state,
115
+ consecutiveFailures: newFailures,
116
+ currentInterval: finalInterval,
117
+ isOpen: shouldOpenCircuit,
118
+ openedAt: shouldOpenCircuit ? Date.now() : state.openedAt
119
+ };
120
+ };
121
+
122
+ /**
123
+ * Records a success and resets circuit breaker state.
124
+ *
125
+ * @param state - Current circuit breaker state
126
+ * @returns Reset state after successful request
127
+ */
128
+ exports.recordFailure = recordFailure;
129
+ const recordSuccess = state => {
130
+ return {
131
+ ...state,
132
+ consecutiveFailures: 0,
133
+ currentInterval: state.baseInterval,
134
+ isOpen: false,
135
+ openedAt: undefined
136
+ };
137
+ };
138
+
139
+ /**
140
+ * Checks if the circuit breaker should allow a request.
141
+ *
142
+ * When the circuit is open, it will only allow requests after
143
+ * the recovery timeout has passed (half-open state).
144
+ *
145
+ * @param state - Current circuit breaker state
146
+ * @param recoveryTimeout - Time to wait before allowing recovery attempts
147
+ * @returns true if request should be allowed
148
+ */
149
+ exports.recordSuccess = recordSuccess;
150
+ const shouldAllowRequest = (state, recoveryTimeout = DEFAULT_CIRCUIT_BREAKER_CONFIG.recoveryTimeout) => {
151
+ if (!state.isOpen) return true;
152
+ if (!state.openedAt) return true;
153
+ const timeSinceOpen = Date.now() - state.openedAt;
154
+ return timeSinceOpen >= recoveryTimeout;
155
+ };
156
+
157
+ /**
158
+ * Delays execution for a specified duration.
159
+ *
160
+ * @param ms - Milliseconds to delay
161
+ * @returns Promise that resolves after the delay
162
+ *
163
+ * @example
164
+ * ```ts
165
+ * await delay(1000); // Wait 1 second
166
+ * ```
167
+ */
168
+ exports.shouldAllowRequest = shouldAllowRequest;
169
+ const delay = ms => new Promise(resolve => setTimeout(resolve, ms));
170
+
171
+ /**
172
+ * Executes a function with exponential backoff retry.
173
+ *
174
+ * @param fn - Async function to execute
175
+ * @param options - Retry options
176
+ * @returns Result of the function
177
+ * @throws Last error if all retries fail
178
+ *
179
+ * @example
180
+ * ```ts
181
+ * const result = await withRetry(
182
+ * () => fetchData(),
183
+ * { maxRetries: 3, baseDelay: 1000 }
184
+ * );
185
+ * ```
186
+ */
187
+ exports.delay = delay;
188
+ const withRetry = async (fn, options = {}) => {
189
+ const {
190
+ maxRetries = 3,
191
+ baseDelay = 1000,
192
+ maxDelay = 30000,
193
+ shouldRetry = () => true,
194
+ onRetry
195
+ } = options;
196
+ let lastError;
197
+ for (let attempt = 0; attempt <= maxRetries; attempt++) {
198
+ try {
199
+ return await fn();
200
+ } catch (error) {
201
+ lastError = error;
202
+ if (attempt === maxRetries || !shouldRetry(error)) {
203
+ throw error;
204
+ }
205
+ const delayMs = Math.min(baseDelay * Math.pow(2, attempt), maxDelay);
206
+ onRetry?.(error, attempt + 1);
207
+ await delay(delayMs);
208
+ }
209
+ }
210
+ throw lastError;
211
+ };
212
+ exports.withRetry = withRetry;
213
+ //# sourceMappingURL=networkUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DEFAULT_CIRCUIT_BREAKER_CONFIG","exports","baseInterval","maxInterval","maxFailures","recoveryTimeout","createCircuitBreakerState","config","consecutiveFailures","currentInterval","isOpen","calculateBackoffInterval","state","backoffMultiplier","Math","min","pow","recordFailure","newFailures","newInterval","shouldOpenCircuit","finalInterval","openedAt","Date","now","recordSuccess","undefined","shouldAllowRequest","timeSinceOpen","delay","ms","Promise","resolve","setTimeout","withRetry","fn","options","maxRetries","baseDelay","maxDelay","shouldRetry","onRetry","lastError","attempt","error","delayMs"],"sourceRoot":"../../../../src","sources":["shared/utils/networkUtils.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAkBA;AACA;AACA;;AAYA;AACA;AACA;AACO,MAAMA,8BAA8D,GAAAC,OAAA,CAAAD,8BAAA,GAAG;EAC5EE,YAAY,EAAE,KAAK;EACnBC,WAAW,EAAE,KAAK;EAClBC,WAAW,EAAE,CAAC;EACdC,eAAe,EAAE;AACnB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,yBAAyB,GAAGA,CACvCC,MAA4B,GAAG,CAAC,CAAC,KACT;EACxB,MAAM;IAAEL,YAAY;IAAEC,WAAW;IAAEC;EAAY,CAAC,GAAG;IACjD,GAAGJ,8BAA8B;IACjC,GAAGO;EACL,CAAC;EAED,OAAO;IACLC,mBAAmB,EAAE,CAAC;IACtBC,eAAe,EAAEP,YAAY;IAC7BA,YAAY;IACZC,WAAW;IACXC,WAAW;IACXM,MAAM,EAAE;EACV,CAAC;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAXAT,OAAA,CAAAK,yBAAA,GAAAA,yBAAA;AAYO,MAAMK,wBAAwB,GAAIC,KAA0B,IAAa;EAC9E,MAAM;IAAEJ,mBAAmB;IAAEN,YAAY;IAAEC;EAAY,CAAC,GAAGS,KAAK;EAEhE,IAAIJ,mBAAmB,KAAK,CAAC,EAAE,OAAON,YAAY;EAElD,MAAMW,iBAAiB,GAAGC,IAAI,CAACC,GAAG,CAChCD,IAAI,CAACE,GAAG,CAAC,CAAC,EAAER,mBAAmB,GAAG,CAAC,CAAC,EACpCL,WAAW,GAAGD,YAChB,CAAC;EAED,OAAOY,IAAI,CAACC,GAAG,CAACb,YAAY,GAAGW,iBAAiB,EAAEV,WAAW,CAAC;AAChE,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAfAF,OAAA,CAAAU,wBAAA,GAAAA,wBAAA;AAgBO,MAAMM,aAAa,GAAIL,KAA0B,IAA0B;EAChF,MAAMM,WAAW,GAAGN,KAAK,CAACJ,mBAAmB,GAAG,CAAC;EACjD,MAAMW,WAAW,GAAGR,wBAAwB,CAAC;IAC3C,GAAGC,KAAK;IACRJ,mBAAmB,EAAEU;EACvB,CAAC,CAAC;EAEF,MAAME,iBAAiB,GAAGF,WAAW,IAAIN,KAAK,CAACR,WAAW;EAC1D,MAAMiB,aAAa,GAAGD,iBAAiB,GAAGR,KAAK,CAACT,WAAW,GAAGgB,WAAW;EAEzE,OAAO;IACL,GAAGP,KAAK;IACRJ,mBAAmB,EAAEU,WAAW;IAChCT,eAAe,EAAEY,aAAa;IAC9BX,MAAM,EAAEU,iBAAiB;IACzBE,QAAQ,EAAEF,iBAAiB,GAAGG,IAAI,CAACC,GAAG,CAAC,CAAC,GAAGZ,KAAK,CAACU;EACnD,CAAC;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AALArB,OAAA,CAAAgB,aAAA,GAAAA,aAAA;AAMO,MAAMQ,aAAa,GAAIb,KAA0B,IAA0B;EAChF,OAAO;IACL,GAAGA,KAAK;IACRJ,mBAAmB,EAAE,CAAC;IACtBC,eAAe,EAAEG,KAAK,CAACV,YAAY;IACnCQ,MAAM,EAAE,KAAK;IACbY,QAAQ,EAAEI;EACZ,CAAC;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AATAzB,OAAA,CAAAwB,aAAA,GAAAA,aAAA;AAUO,MAAME,kBAAkB,GAAGA,CAChCf,KAA0B,EAC1BP,eAAuB,GAAGL,8BAA8B,CAACK,eAAe,KAC5D;EACZ,IAAI,CAACO,KAAK,CAACF,MAAM,EAAE,OAAO,IAAI;EAE9B,IAAI,CAACE,KAAK,CAACU,QAAQ,EAAE,OAAO,IAAI;EAEhC,MAAMM,aAAa,GAAGL,IAAI,CAACC,GAAG,CAAC,CAAC,GAAGZ,KAAK,CAACU,QAAQ;EACjD,OAAOM,aAAa,IAAIvB,eAAe;AACzC,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAVAJ,OAAA,CAAA0B,kBAAA,GAAAA,kBAAA;AAWO,MAAME,KAAK,GAAIC,EAAU,IAC9B,IAAIC,OAAO,CAACC,OAAO,IAAIC,UAAU,CAACD,OAAO,EAAEF,EAAE,CAAC,CAAC;;AAEjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAfA7B,OAAA,CAAA4B,KAAA,GAAAA,KAAA;AAgBO,MAAMK,SAAS,GAAG,MAAAA,CACvBC,EAAoB,EACpBC,OAMC,GAAG,CAAC,CAAC,KACS;EACf,MAAM;IACJC,UAAU,GAAG,CAAC;IACdC,SAAS,GAAG,IAAI;IAChBC,QAAQ,GAAG,KAAK;IAChBC,WAAW,GAAGA,CAAA,KAAM,IAAI;IACxBC;EACF,CAAC,GAAGL,OAAO;EAEX,IAAIM,SAAkB;EAEtB,KAAK,IAAIC,OAAO,GAAG,CAAC,EAAEA,OAAO,IAAIN,UAAU,EAAEM,OAAO,EAAE,EAAE;IACtD,IAAI;MACF,OAAO,MAAMR,EAAE,CAAC,CAAC;IACnB,CAAC,CAAC,OAAOS,KAAK,EAAE;MACdF,SAAS,GAAGE,KAAK;MAEjB,IAAID,OAAO,KAAKN,UAAU,IAAI,CAACG,WAAW,CAACI,KAAK,CAAC,EAAE;QACjD,MAAMA,KAAK;MACb;MAEA,MAAMC,OAAO,GAAG/B,IAAI,CAACC,GAAG,CAACuB,SAAS,GAAGxB,IAAI,CAACE,GAAG,CAAC,CAAC,EAAE2B,OAAO,CAAC,EAAEJ,QAAQ,CAAC;MACpEE,OAAO,GAAGG,KAAK,EAAED,OAAO,GAAG,CAAC,CAAC;MAC7B,MAAMd,KAAK,CAACgB,OAAO,CAAC;IACtB;EACF;EAEA,MAAMH,SAAS;AACjB,CAAC;AAACzC,OAAA,CAAAiC,SAAA,GAAAA,SAAA","ignoreList":[]}