@digitaldefiance/express-suite-react-components 5.0.1 → 5.0.2

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 (311) hide show
  1. package/LICENSE +21 -0
  2. package/package.json +3 -4
  3. package/src/auth/AdminRoute.tsx +54 -0
  4. package/src/auth/Private.tsx +17 -0
  5. package/src/auth/PrivateRoute.tsx +28 -0
  6. package/src/auth/UnAuth.tsx +16 -0
  7. package/src/auth/UnAuthRoute.tsx +30 -0
  8. package/src/auth/{index.d.ts → index.ts} +2 -3
  9. package/src/components/ApiAccess.tsx +175 -0
  10. package/src/components/BackupCodeLoginForm.tsx +489 -0
  11. package/src/components/BackupCodesForm.tsx +287 -0
  12. package/src/components/CategoryMenu.tsx +155 -0
  13. package/src/components/ChangePasswordForm.tsx +273 -0
  14. package/src/components/ConfirmationDialog.tsx +48 -0
  15. package/src/components/CurrencyCodeSelector.tsx +60 -0
  16. package/src/components/CurrencyInput.tsx +80 -0
  17. package/src/components/DashboardPage.tsx +24 -0
  18. package/src/components/DropdownMenu.tsx +105 -0
  19. package/src/components/ExpirationSecondsSelector.tsx +60 -0
  20. package/src/components/FakeEmailAdminPanel.tsx +374 -0
  21. package/src/components/Flag.tsx +52 -0
  22. package/src/components/ForgotPasswordForm.tsx +174 -0
  23. package/src/components/LoginForm.tsx +468 -0
  24. package/src/components/LogoutPage.tsx +21 -0
  25. package/src/components/RegisterForm.tsx +1169 -0
  26. package/src/components/ResetPasswordForm.tsx +247 -0
  27. package/src/components/SideMenu.tsx +46 -0
  28. package/src/components/SideMenuListItem.tsx +75 -0
  29. package/src/components/T.tsx +24 -0
  30. package/src/components/TDiv.tsx +26 -0
  31. package/src/components/TImgAlt.tsx +28 -0
  32. package/src/components/TopMenu.tsx +252 -0
  33. package/src/components/TotpSetupForm.tsx +188 -0
  34. package/src/components/TotpVerificationForm.tsx +148 -0
  35. package/src/components/TranslatedTitle.tsx +31 -0
  36. package/src/components/UserLanguageSelector.tsx +45 -0
  37. package/src/components/UserMenu.tsx +15 -0
  38. package/src/components/UserSettingsForm.tsx +904 -0
  39. package/src/components/VerifyEmailPage.tsx +222 -0
  40. package/src/components/__tests__/RegisterForm.totp.spec.tsx +377 -0
  41. package/src/components/__tests__/TotpSetupForm.spec.tsx +258 -0
  42. package/src/components/__tests__/TotpVerificationForm.spec.tsx +259 -0
  43. package/src/components/__tests__/UserSettingsForm.totp.spec.tsx +396 -0
  44. package/src/components/{index.d.ts → index.ts} +1 -1
  45. package/src/contexts/AuthProvider.spec.tsx +1284 -0
  46. package/src/contexts/AuthProvider.tsx +977 -0
  47. package/src/contexts/I18nProvider.tsx +164 -0
  48. package/src/contexts/MenuContext.tsx +426 -0
  49. package/src/contexts/SuiteConfigProvider.tsx +93 -0
  50. package/src/contexts/ThemeProvider.tsx +67 -0
  51. package/src/contexts/{index.d.ts → index.ts} +0 -1
  52. package/src/hooks/{index.d.ts → index.ts} +0 -1
  53. package/src/hooks/useAuthenticatedApi.tsx +67 -0
  54. package/src/hooks/useBackupCodes.ts +105 -0
  55. package/src/hooks/useEmailVerification.ts +54 -0
  56. package/src/hooks/useExpiringValue.ts +78 -0
  57. package/src/hooks/useLocalStorage.ts +18 -0
  58. package/src/hooks/useUserSettings.ts +271 -0
  59. package/src/{index.d.ts → index.ts} +1 -1
  60. package/src/interfaces/IAppConfig.ts +7 -0
  61. package/src/interfaces/ICategoryConfig.ts +41 -0
  62. package/src/interfaces/IMenuConfig.ts +28 -0
  63. package/src/interfaces/IMenuOption.ts +79 -0
  64. package/src/interfaces/{index.d.ts → index.ts} +0 -1
  65. package/src/services/__mocks__/authService.ts +14 -0
  66. package/src/services/__tests__/authService.totp.property.spec.ts +360 -0
  67. package/src/services/__tests__/authService.totp.spec.ts +439 -0
  68. package/src/services/api.ts +13 -0
  69. package/src/services/authService.ts +692 -0
  70. package/src/services/authenticatedApi.ts +17 -0
  71. package/src/services/index.ts +3 -0
  72. package/src/types/MenuType.ts +15 -0
  73. package/src/types/expirationSeconds.ts +18 -0
  74. package/src/types/index.ts +1 -0
  75. package/src/types/translation.ts +20 -0
  76. package/src/wrappers/BackupCodeLoginWrapper.tsx +34 -0
  77. package/src/wrappers/BackupCodesWrapper.tsx +28 -0
  78. package/src/wrappers/ChangePasswordFormWrapper.tsx +34 -0
  79. package/src/wrappers/ForgotPasswordFormWrapper.tsx +45 -0
  80. package/src/wrappers/LoginFormWrapper.tsx +108 -0
  81. package/src/wrappers/LogoutPageWrapper.tsx +30 -0
  82. package/src/wrappers/RegisterFormWrapper.tsx +109 -0
  83. package/src/wrappers/ResetPasswordFormWrapper.tsx +57 -0
  84. package/src/wrappers/UserSettingsFormWrapper.tsx +140 -0
  85. package/src/wrappers/VerifyEmailPageWrapper.tsx +27 -0
  86. package/src/wrappers/__tests__/LoginFormWrapper.totp.spec.tsx +339 -0
  87. package/src/wrappers/{index.d.ts → index.tsx} +10 -1
  88. package/src/auth/AdminRoute.d.ts +0 -8
  89. package/src/auth/AdminRoute.d.ts.map +0 -1
  90. package/src/auth/AdminRoute.js +0 -28
  91. package/src/auth/Private.d.ts +0 -6
  92. package/src/auth/Private.d.ts.map +0 -1
  93. package/src/auth/Private.js +0 -14
  94. package/src/auth/PrivateRoute.d.ts +0 -8
  95. package/src/auth/PrivateRoute.d.ts.map +0 -1
  96. package/src/auth/PrivateRoute.js +0 -23
  97. package/src/auth/UnAuth.d.ts +0 -6
  98. package/src/auth/UnAuth.d.ts.map +0 -1
  99. package/src/auth/UnAuth.js +0 -14
  100. package/src/auth/UnAuthRoute.d.ts +0 -8
  101. package/src/auth/UnAuthRoute.d.ts.map +0 -1
  102. package/src/auth/UnAuthRoute.js +0 -22
  103. package/src/auth/index.d.ts.map +0 -1
  104. package/src/auth/index.js +0 -12
  105. package/src/components/ApiAccess.d.ts +0 -16
  106. package/src/components/ApiAccess.d.ts.map +0 -1
  107. package/src/components/ApiAccess.js +0 -77
  108. package/src/components/BackupCodeLoginForm.d.ts +0 -43
  109. package/src/components/BackupCodeLoginForm.d.ts.map +0 -1
  110. package/src/components/BackupCodeLoginForm.js +0 -139
  111. package/src/components/BackupCodesForm.d.ts +0 -26
  112. package/src/components/BackupCodesForm.d.ts.map +0 -1
  113. package/src/components/BackupCodesForm.js +0 -120
  114. package/src/components/CategoryMenu.d.ts +0 -17
  115. package/src/components/CategoryMenu.d.ts.map +0 -1
  116. package/src/components/CategoryMenu.js +0 -65
  117. package/src/components/ChangePasswordForm.d.ts +0 -26
  118. package/src/components/ChangePasswordForm.d.ts.map +0 -1
  119. package/src/components/ChangePasswordForm.js +0 -78
  120. package/src/components/ConfirmationDialog.d.ts +0 -13
  121. package/src/components/ConfirmationDialog.d.ts.map +0 -1
  122. package/src/components/ConfirmationDialog.js +0 -10
  123. package/src/components/CurrencyCodeSelector.d.ts +0 -9
  124. package/src/components/CurrencyCodeSelector.d.ts.map +0 -1
  125. package/src/components/CurrencyCodeSelector.js +0 -31
  126. package/src/components/CurrencyInput.d.ts +0 -13
  127. package/src/components/CurrencyInput.d.ts.map +0 -1
  128. package/src/components/CurrencyInput.js +0 -22
  129. package/src/components/DashboardPage.d.ts +0 -8
  130. package/src/components/DashboardPage.d.ts.map +0 -1
  131. package/src/components/DashboardPage.js +0 -10
  132. package/src/components/DropdownMenu.d.ts +0 -13
  133. package/src/components/DropdownMenu.d.ts.map +0 -1
  134. package/src/components/DropdownMenu.js +0 -63
  135. package/src/components/ExpirationSecondsSelector.d.ts +0 -13
  136. package/src/components/ExpirationSecondsSelector.d.ts.map +0 -1
  137. package/src/components/ExpirationSecondsSelector.js +0 -32
  138. package/src/components/FakeEmailAdminPanel.d.ts +0 -23
  139. package/src/components/FakeEmailAdminPanel.d.ts.map +0 -1
  140. package/src/components/FakeEmailAdminPanel.js +0 -147
  141. package/src/components/Flag.d.ts +0 -20
  142. package/src/components/Flag.d.ts.map +0 -1
  143. package/src/components/Flag.js +0 -43
  144. package/src/components/ForgotPasswordForm.d.ts +0 -18
  145. package/src/components/ForgotPasswordForm.d.ts.map +0 -1
  146. package/src/components/ForgotPasswordForm.js +0 -61
  147. package/src/components/LoginForm.d.ts +0 -44
  148. package/src/components/LoginForm.d.ts.map +0 -1
  149. package/src/components/LoginForm.js +0 -123
  150. package/src/components/LogoutPage.d.ts +0 -8
  151. package/src/components/LogoutPage.d.ts.map +0 -1
  152. package/src/components/LogoutPage.js +0 -16
  153. package/src/components/RegisterForm.d.ts +0 -100
  154. package/src/components/RegisterForm.d.ts.map +0 -1
  155. package/src/components/RegisterForm.js +0 -306
  156. package/src/components/ResetPasswordForm.d.ts +0 -23
  157. package/src/components/ResetPasswordForm.d.ts.map +0 -1
  158. package/src/components/ResetPasswordForm.js +0 -78
  159. package/src/components/SideMenu.d.ts +0 -8
  160. package/src/components/SideMenu.d.ts.map +0 -1
  161. package/src/components/SideMenu.js +0 -25
  162. package/src/components/SideMenuListItem.d.ts +0 -13
  163. package/src/components/SideMenuListItem.d.ts.map +0 -1
  164. package/src/components/SideMenuListItem.js +0 -44
  165. package/src/components/T.d.ts +0 -7
  166. package/src/components/T.d.ts.map +0 -1
  167. package/src/components/T.js +0 -13
  168. package/src/components/TDiv.d.ts +0 -9
  169. package/src/components/TDiv.d.ts.map +0 -1
  170. package/src/components/TDiv.js +0 -14
  171. package/src/components/TImgAlt.d.ts +0 -10
  172. package/src/components/TImgAlt.d.ts.map +0 -1
  173. package/src/components/TImgAlt.js +0 -14
  174. package/src/components/TopMenu.d.ts +0 -50
  175. package/src/components/TopMenu.d.ts.map +0 -1
  176. package/src/components/TopMenu.js +0 -79
  177. package/src/components/TotpSetupForm.d.ts +0 -24
  178. package/src/components/TotpSetupForm.d.ts.map +0 -1
  179. package/src/components/TotpSetupForm.js +0 -82
  180. package/src/components/TotpVerificationForm.d.ts +0 -23
  181. package/src/components/TotpVerificationForm.d.ts.map +0 -1
  182. package/src/components/TotpVerificationForm.js +0 -66
  183. package/src/components/TranslatedTitle.d.ts +0 -8
  184. package/src/components/TranslatedTitle.d.ts.map +0 -1
  185. package/src/components/TranslatedTitle.js +0 -15
  186. package/src/components/UserLanguageSelector.d.ts +0 -4
  187. package/src/components/UserLanguageSelector.d.ts.map +0 -1
  188. package/src/components/UserLanguageSelector.js +0 -31
  189. package/src/components/UserMenu.d.ts +0 -4
  190. package/src/components/UserMenu.d.ts.map +0 -1
  191. package/src/components/UserMenu.js +0 -12
  192. package/src/components/UserSettingsForm.d.ts +0 -113
  193. package/src/components/UserSettingsForm.d.ts.map +0 -1
  194. package/src/components/UserSettingsForm.js +0 -269
  195. package/src/components/VerifyEmailPage.d.ts +0 -24
  196. package/src/components/VerifyEmailPage.d.ts.map +0 -1
  197. package/src/components/VerifyEmailPage.js +0 -81
  198. package/src/components/index.d.ts.map +0 -1
  199. package/src/components/index.js +0 -35
  200. package/src/contexts/AuthProvider.d.ts +0 -186
  201. package/src/contexts/AuthProvider.d.ts.map +0 -1
  202. package/src/contexts/AuthProvider.js +0 -515
  203. package/src/contexts/I18nProvider.d.ts +0 -27
  204. package/src/contexts/I18nProvider.d.ts.map +0 -1
  205. package/src/contexts/I18nProvider.js +0 -60
  206. package/src/contexts/MenuContext.d.ts +0 -20
  207. package/src/contexts/MenuContext.d.ts.map +0 -1
  208. package/src/contexts/MenuContext.js +0 -275
  209. package/src/contexts/SuiteConfigProvider.d.ts +0 -44
  210. package/src/contexts/SuiteConfigProvider.d.ts.map +0 -1
  211. package/src/contexts/SuiteConfigProvider.js +0 -43
  212. package/src/contexts/ThemeProvider.d.ts +0 -15
  213. package/src/contexts/ThemeProvider.d.ts.map +0 -1
  214. package/src/contexts/ThemeProvider.js +0 -36
  215. package/src/contexts/index.d.ts.map +0 -1
  216. package/src/contexts/index.js +0 -8
  217. package/src/hooks/index.d.ts.map +0 -1
  218. package/src/hooks/index.js +0 -9
  219. package/src/hooks/useAuthenticatedApi.d.ts +0 -34
  220. package/src/hooks/useAuthenticatedApi.d.ts.map +0 -1
  221. package/src/hooks/useAuthenticatedApi.js +0 -46
  222. package/src/hooks/useBackupCodes.d.ts +0 -15
  223. package/src/hooks/useBackupCodes.d.ts.map +0 -1
  224. package/src/hooks/useBackupCodes.js +0 -74
  225. package/src/hooks/useEmailVerification.d.ts +0 -10
  226. package/src/hooks/useEmailVerification.d.ts.map +0 -1
  227. package/src/hooks/useEmailVerification.js +0 -40
  228. package/src/hooks/useExpiringValue.d.ts +0 -14
  229. package/src/hooks/useExpiringValue.d.ts.map +0 -1
  230. package/src/hooks/useExpiringValue.js +0 -53
  231. package/src/hooks/useLocalStorage.d.ts +0 -2
  232. package/src/hooks/useLocalStorage.d.ts.map +0 -1
  233. package/src/hooks/useLocalStorage.js +0 -15
  234. package/src/hooks/useUserSettings.d.ts +0 -48
  235. package/src/hooks/useUserSettings.d.ts.map +0 -1
  236. package/src/hooks/useUserSettings.js +0 -171
  237. package/src/index.d.ts.map +0 -1
  238. package/src/index.js +0 -12
  239. package/src/interfaces/IAppConfig.d.ts +0 -8
  240. package/src/interfaces/IAppConfig.d.ts.map +0 -1
  241. package/src/interfaces/IAppConfig.js +0 -2
  242. package/src/interfaces/ICategoryConfig.d.ts +0 -41
  243. package/src/interfaces/ICategoryConfig.d.ts.map +0 -1
  244. package/src/interfaces/ICategoryConfig.js +0 -2
  245. package/src/interfaces/IMenuConfig.d.ts +0 -28
  246. package/src/interfaces/IMenuConfig.d.ts.map +0 -1
  247. package/src/interfaces/IMenuConfig.js +0 -2
  248. package/src/interfaces/IMenuOption.d.ts +0 -82
  249. package/src/interfaces/IMenuOption.d.ts.map +0 -1
  250. package/src/interfaces/IMenuOption.js +0 -2
  251. package/src/interfaces/index.d.ts.map +0 -1
  252. package/src/interfaces/index.js +0 -7
  253. package/src/services/__mocks__/authService.d.ts +0 -21
  254. package/src/services/__mocks__/authService.d.ts.map +0 -1
  255. package/src/services/__mocks__/authService.js +0 -15
  256. package/src/services/api.d.ts +0 -3
  257. package/src/services/api.d.ts.map +0 -1
  258. package/src/services/api.js +0 -14
  259. package/src/services/authService.d.ts +0 -126
  260. package/src/services/authService.d.ts.map +0 -1
  261. package/src/services/authService.js +0 -471
  262. package/src/services/authenticatedApi.d.ts +0 -3
  263. package/src/services/authenticatedApi.d.ts.map +0 -1
  264. package/src/services/authenticatedApi.js +0 -18
  265. package/src/services/index.d.ts +0 -4
  266. package/src/services/index.d.ts.map +0 -1
  267. package/src/services/index.js +0 -6
  268. package/src/types/MenuType.d.ts +0 -11
  269. package/src/types/MenuType.d.ts.map +0 -1
  270. package/src/types/MenuType.js +0 -12
  271. package/src/types/expirationSeconds.d.ts +0 -3
  272. package/src/types/expirationSeconds.d.ts.map +0 -1
  273. package/src/types/expirationSeconds.js +0 -17
  274. package/src/types/index.d.ts +0 -2
  275. package/src/types/index.d.ts.map +0 -1
  276. package/src/types/index.js +0 -4
  277. package/src/types/translation.d.ts +0 -10
  278. package/src/types/translation.d.ts.map +0 -1
  279. package/src/types/translation.js +0 -9
  280. package/src/wrappers/BackupCodeLoginWrapper.d.ts +0 -8
  281. package/src/wrappers/BackupCodeLoginWrapper.d.ts.map +0 -1
  282. package/src/wrappers/BackupCodeLoginWrapper.js +0 -20
  283. package/src/wrappers/BackupCodesWrapper.d.ts +0 -7
  284. package/src/wrappers/BackupCodesWrapper.d.ts.map +0 -1
  285. package/src/wrappers/BackupCodesWrapper.js +0 -17
  286. package/src/wrappers/ChangePasswordFormWrapper.d.ts +0 -8
  287. package/src/wrappers/ChangePasswordFormWrapper.d.ts.map +0 -1
  288. package/src/wrappers/ChangePasswordFormWrapper.js +0 -21
  289. package/src/wrappers/ForgotPasswordFormWrapper.d.ts +0 -8
  290. package/src/wrappers/ForgotPasswordFormWrapper.d.ts.map +0 -1
  291. package/src/wrappers/ForgotPasswordFormWrapper.js +0 -29
  292. package/src/wrappers/LoginFormWrapper.d.ts +0 -21
  293. package/src/wrappers/LoginFormWrapper.d.ts.map +0 -1
  294. package/src/wrappers/LoginFormWrapper.js +0 -72
  295. package/src/wrappers/LogoutPageWrapper.d.ts +0 -9
  296. package/src/wrappers/LogoutPageWrapper.d.ts.map +0 -1
  297. package/src/wrappers/LogoutPageWrapper.js +0 -21
  298. package/src/wrappers/RegisterFormWrapper.d.ts +0 -20
  299. package/src/wrappers/RegisterFormWrapper.d.ts.map +0 -1
  300. package/src/wrappers/RegisterFormWrapper.js +0 -51
  301. package/src/wrappers/ResetPasswordFormWrapper.d.ts +0 -9
  302. package/src/wrappers/ResetPasswordFormWrapper.d.ts.map +0 -1
  303. package/src/wrappers/ResetPasswordFormWrapper.js +0 -34
  304. package/src/wrappers/UserSettingsFormWrapper.d.ts +0 -29
  305. package/src/wrappers/UserSettingsFormWrapper.d.ts.map +0 -1
  306. package/src/wrappers/UserSettingsFormWrapper.js +0 -95
  307. package/src/wrappers/VerifyEmailPageWrapper.d.ts +0 -8
  308. package/src/wrappers/VerifyEmailPageWrapper.d.ts.map +0 -1
  309. package/src/wrappers/VerifyEmailPageWrapper.js +0 -21
  310. package/src/wrappers/index.d.ts.map +0 -1
  311. package/src/wrappers/index.js +0 -24
@@ -1,14 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createApiClient = createApiClient;
4
- const tslib_1 = require("tslib");
5
- const axios_1 = tslib_1.__importDefault(require("axios"));
6
- function createApiClient(baseURL) {
7
- const api = axios_1.default.create({ baseURL });
8
- api.interceptors.request.use((config) => {
9
- const languageCode = localStorage.getItem('languageCode') ?? 'en-US';
10
- config.headers['Accept-Language'] = languageCode;
11
- return config;
12
- });
13
- return api;
14
- }
@@ -1,126 +0,0 @@
1
- import { EmailString, IECIESConfig, SecureString } from '@digitaldefiance/ecies-lib';
2
- import { IConstants, IRequestUserDTO } from '@digitaldefiance/suite-core-lib';
3
- import { Wallet } from '@ethereumjs/wallet';
4
- interface ApiErrorResponse {
5
- message?: string;
6
- error?: string | {
7
- message?: string;
8
- statusCode?: number;
9
- stack?: string;
10
- };
11
- errorType?: string;
12
- field?: string;
13
- errors?: Array<{
14
- path: string;
15
- msg: string;
16
- }>;
17
- }
18
- /**
19
- * Extract a human-readable error string from an API error response.
20
- * The backend may send `error` as either a plain string or an object
21
- * with `{ message, statusCode, stack }`.
22
- */
23
- export declare function extractErrorMessage(errorData: ApiErrorResponse): string | undefined;
24
- export declare class AuthService {
25
- private constants;
26
- private baseUrl;
27
- private readonly siteDomain;
28
- private eciesService;
29
- private cryptoCore;
30
- private apiClient;
31
- private authenticatedApiClient;
32
- constructor(constants: IConstants, baseUrl: string, eciesConfig: IECIESConfig, siteDomain: string);
33
- getSiteDomain(): string;
34
- register(username: string, email: string, timezone: string, password?: string, mnemonic?: string, displayName?: string, directChallenge?: boolean): Promise<{
35
- success: boolean;
36
- message: string;
37
- mnemonic: string;
38
- } | {
39
- error: string;
40
- errorType?: string;
41
- field?: string;
42
- errors?: Array<Record<string, string>>;
43
- }>;
44
- directLogin(mnemonic: SecureString, username?: string, email?: EmailString): Promise<{
45
- token: string;
46
- user: IRequestUserDTO;
47
- wallet: Wallet;
48
- message: string;
49
- } | {
50
- pendingTotpToken: string;
51
- } | {
52
- error: string;
53
- errorType?: string;
54
- }>;
55
- requestEmailLogin(username?: string, email?: EmailString): Promise<string | {
56
- error: string;
57
- errorType?: string;
58
- }>;
59
- emailChallengeLogin(mnemonic: SecureString, token: string, username?: string, email?: EmailString): Promise<{
60
- token: string;
61
- user: IRequestUserDTO;
62
- wallet: Wallet;
63
- message: string;
64
- } | {
65
- pendingTotpToken: string;
66
- } | {
67
- error: string;
68
- errorType?: string;
69
- }>;
70
- verifyToken(token: string): Promise<IRequestUserDTO | {
71
- error: string;
72
- errorType?: string;
73
- }>;
74
- refreshToken(): Promise<{
75
- token: string;
76
- user: IRequestUserDTO;
77
- }>;
78
- changePassword(currentPassword: string, newPassword: string): Promise<{
79
- success: boolean;
80
- } | {
81
- error: string;
82
- errorType?: string;
83
- }>;
84
- backupCodeLogin(identifier: string, code: string, isEmail: boolean, recoverMnemonic: boolean, newPassword?: string): Promise<{
85
- token: string;
86
- codeCount: number;
87
- user?: IRequestUserDTO;
88
- mnemonic?: string;
89
- message?: string;
90
- } | {
91
- error: string;
92
- status?: number;
93
- errorType?: string;
94
- }>;
95
- setupTotp(): Promise<{
96
- provisioningUri: string;
97
- secret: string;
98
- } | {
99
- error: string;
100
- }>;
101
- confirmTotp(code: string): Promise<{
102
- success: boolean;
103
- } | {
104
- error: string;
105
- }>;
106
- disableTotp(code: string): Promise<{
107
- success: boolean;
108
- } | {
109
- error: string;
110
- }>;
111
- resetTotp(code: string): Promise<{
112
- provisioningUri: string;
113
- secret: string;
114
- } | {
115
- error: string;
116
- }>;
117
- verifyTotpLogin(pendingTotpToken: string, code: string): Promise<{
118
- token: string;
119
- user: IRequestUserDTO;
120
- } | {
121
- error: string;
122
- }>;
123
- }
124
- export declare const createAuthService: (constants: IConstants, baseUrl: string, eciesConfig: IECIESConfig, siteDomain: string) => AuthService;
125
- export {};
126
- //# sourceMappingURL=authService.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"authService.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-express-suite-react-components/src/services/authService.ts"],"names":[],"mappings":"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"}
@@ -1,471 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createAuthService = exports.AuthService = void 0;
4
- exports.extractErrorMessage = extractErrorMessage;
5
- // services/authService.js
6
- const ecies_lib_1 = require("@digitaldefiance/ecies-lib");
7
- const suite_core_lib_1 = require("@digitaldefiance/suite-core-lib");
8
- const axios_1 = require("axios");
9
- const api_1 = require("./api");
10
- const authenticatedApi_1 = require("./authenticatedApi");
11
- /**
12
- * Extract a human-readable error string from an API error response.
13
- * The backend may send `error` as either a plain string or an object
14
- * with `{ message, statusCode, stack }`.
15
- */
16
- function extractErrorMessage(errorData) {
17
- if (typeof errorData.error === 'string') {
18
- return errorData.error;
19
- }
20
- if (typeof errorData.error === 'object' &&
21
- errorData.error !== null &&
22
- typeof errorData.error.message === 'string') {
23
- return errorData.error.message;
24
- }
25
- return errorData.message;
26
- }
27
- class AuthService {
28
- constants;
29
- baseUrl;
30
- siteDomain;
31
- eciesService;
32
- cryptoCore;
33
- apiClient;
34
- authenticatedApiClient;
35
- constructor(constants, baseUrl, eciesConfig, siteDomain) {
36
- this.constants = constants;
37
- this.baseUrl = baseUrl;
38
- this.siteDomain = siteDomain;
39
- this.eciesService = new ecies_lib_1.ECIESService(eciesConfig);
40
- this.cryptoCore = new ecies_lib_1.EciesCryptoCore(eciesConfig);
41
- this.apiClient = (0, api_1.createApiClient)(this.baseUrl);
42
- this.authenticatedApiClient = (0, authenticatedApi_1.createAuthenticatedApiClient)(this.baseUrl);
43
- }
44
- getSiteDomain() {
45
- return this.siteDomain;
46
- }
47
- async register(username, email, timezone, password, mnemonic, displayName, directChallenge) {
48
- try {
49
- const response = await this.apiClient.post('/user/register', {
50
- username,
51
- email,
52
- timezone,
53
- ...(password ? { password } : {}),
54
- ...(mnemonic ? { mnemonic } : {}),
55
- ...(displayName ? { displayName } : {}),
56
- ...(directChallenge ? { directChallenge } : {}),
57
- });
58
- if (response.status !== 201) {
59
- const errorData = response.data;
60
- return {
61
- error: errorData.message
62
- ? errorData.message
63
- : (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Registration_Error),
64
- ...(errorData.errorType ? { errorType: errorData.errorType } : {}),
65
- ...(errorData.errors ? { errors: errorData.errors } : {}),
66
- };
67
- }
68
- return {
69
- success: true,
70
- message: response.data.message ??
71
- (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Registration_Success, {
72
- MNEMONIC: response.data.data?.mnemonic ?? response.data.mnemonic,
73
- }),
74
- mnemonic: response.data.data?.mnemonic ?? response.data.mnemonic ?? '',
75
- };
76
- }
77
- catch (error) {
78
- if ((0, axios_1.isAxiosError)(error) && error.response) {
79
- const errorData = error.response.data;
80
- return {
81
- error: extractErrorMessage(errorData) ??
82
- error.message ??
83
- (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Common_UnexpectedError),
84
- ...(errorData.errorType ? { errorType: errorData.errorType } : {}),
85
- ...(errorData.field
86
- ? { field: errorData.field }
87
- : errorData.error
88
- ? { field: 'general' }
89
- : {}),
90
- ...(errorData.errors ? { errors: errorData.errors } : {}),
91
- };
92
- }
93
- else {
94
- return {
95
- error: (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Common_UnexpectedError),
96
- };
97
- }
98
- }
99
- }
100
- async directLogin(mnemonic, username, email) {
101
- if (!username && !email) {
102
- return {
103
- error: (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Validation_UsernameOrEmailRequired),
104
- };
105
- }
106
- try {
107
- const loginRequest = await this.apiClient.post('/user/request-direct-login');
108
- if (loginRequest.data.challenge) {
109
- const { wallet } = this.cryptoCore.walletAndSeedFromMnemonic(mnemonic);
110
- const challengeBuffer = (0, ecies_lib_1.hexToUint8Array)(loginRequest.data.challenge);
111
- const privateKeyBuffer = wallet.getPrivateKey();
112
- const signature = this.eciesService.signMessage(privateKeyBuffer, challengeBuffer);
113
- const signatureHex = (0, ecies_lib_1.uint8ArrayToHex)(signature);
114
- const loginResponse = await this.apiClient.post('/user/direct-challenge', {
115
- username: username,
116
- email: email ? email.email : undefined,
117
- challenge: loginRequest.data.challenge,
118
- signature: signatureHex,
119
- });
120
- if (loginResponse.data.pendingTotpToken) {
121
- return {
122
- pendingTotpToken: loginResponse.data.pendingTotpToken,
123
- };
124
- }
125
- if (loginResponse.data.token && loginResponse.data.user) {
126
- return {
127
- message: loginResponse.data.message ?? '',
128
- token: loginResponse.data.token,
129
- user: loginResponse.data.user,
130
- wallet,
131
- };
132
- }
133
- }
134
- }
135
- catch (error) {
136
- if ((0, axios_1.isAxiosError)(error) && error.response) {
137
- // Check for DirectChallengeNotEnabled error
138
- if (error.response.status === 403 &&
139
- error.response.data.errorType === 'DirectChallengeNotEnabledError') {
140
- return {
141
- error: (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Error_Login_DirectChallengeNotEnabled),
142
- errorType: 'DirectChallengeNotEnabled',
143
- };
144
- }
145
- // Check for PasswordLoginNotEnabled error
146
- if (error.response.status === 403 &&
147
- error.response.data.errorType === 'PasswordLoginNotEnabledError') {
148
- return {
149
- error: (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Error_Login_PasswordLoginNotEnabled),
150
- errorType: 'PasswordLoginNotEnabled',
151
- };
152
- }
153
- const errorData = error.response.data;
154
- return {
155
- error: extractErrorMessage(errorData) ??
156
- error.message ??
157
- (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Common_UnexpectedError),
158
- ...(errorData.errorType ? { errorType: errorData.errorType } : {}),
159
- };
160
- }
161
- console.error('directLogin: non-axios error:', error);
162
- }
163
- return {
164
- error: (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Common_UnexpectedError),
165
- };
166
- }
167
- async requestEmailLogin(username, email) {
168
- if (!username && !email) {
169
- return {
170
- error: (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Validation_UsernameOrEmailRequired),
171
- };
172
- }
173
- try {
174
- const result = await this.apiClient.post('/user/request-email-login', {
175
- email: email ? email.email : undefined,
176
- username,
177
- });
178
- if (result.data.message) {
179
- return result.data.message;
180
- }
181
- }
182
- catch (error) {
183
- if ((0, axios_1.isAxiosError)(error) && error.response) {
184
- const errorData = error.response.data;
185
- return {
186
- error: extractErrorMessage(errorData) ??
187
- error.message ??
188
- (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Common_UnexpectedError),
189
- ...(errorData.errorType ? { errorType: errorData.errorType } : {}),
190
- };
191
- }
192
- }
193
- return {
194
- error: (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Common_UnexpectedError),
195
- };
196
- }
197
- async emailChallengeLogin(mnemonic, token, username, email) {
198
- if (!username && !email) {
199
- return {
200
- error: (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Validation_UsernameOrEmailRequired),
201
- };
202
- }
203
- try {
204
- const { wallet } = this.cryptoCore.walletAndSeedFromMnemonic(mnemonic);
205
- const challengeBuffer = (0, ecies_lib_1.hexToUint8Array)(token);
206
- const privateKeyBuffer = wallet.getPrivateKey();
207
- const signature = this.eciesService.signMessage(privateKeyBuffer, challengeBuffer);
208
- const signatureHex = (0, ecies_lib_1.uint8ArrayToHex)(signature);
209
- const response = await this.apiClient.post('/user/email-login', {
210
- token,
211
- signature: signatureHex,
212
- username: username ?? null,
213
- email: email ?? null,
214
- });
215
- if (response.data.pendingTotpToken) {
216
- return {
217
- pendingTotpToken: response.data.pendingTotpToken,
218
- };
219
- }
220
- if (response.data.token && response.data.user) {
221
- return {
222
- message: response.data.message ?? '',
223
- token: response.data.token,
224
- user: response.data.user,
225
- wallet,
226
- };
227
- }
228
- }
229
- catch (error) {
230
- if ((0, axios_1.isAxiosError)(error) && error.response) {
231
- const errorData = error.response.data;
232
- return {
233
- error: extractErrorMessage(errorData) ??
234
- error.message ??
235
- (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Common_UnexpectedError),
236
- ...(errorData.errorType ? { errorType: errorData.errorType } : {}),
237
- };
238
- }
239
- }
240
- return {
241
- error: (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Common_UnexpectedError),
242
- };
243
- }
244
- async verifyToken(token) {
245
- try {
246
- const response = await this.apiClient.get('/user/verify', {
247
- headers: { Authorization: `Bearer ${token}` },
248
- });
249
- return response.data.user;
250
- }
251
- catch (error) {
252
- if ((0, axios_1.isAxiosError)(error) && error.response) {
253
- const errorData = error.response.data;
254
- return {
255
- error: errorData.message
256
- ? errorData.message
257
- : error.message
258
- ? error.message
259
- : (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Common_UnexpectedError),
260
- ...(errorData.errorType ? { errorType: errorData.errorType } : {}),
261
- };
262
- }
263
- else {
264
- return {
265
- error: (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Common_UnexpectedError),
266
- };
267
- }
268
- }
269
- }
270
- async refreshToken() {
271
- try {
272
- const refreshResponse = await this.authenticatedApiClient.get('/user/refresh-token');
273
- if (refreshResponse.status === 200) {
274
- const newToken = refreshResponse.headers['authorization'];
275
- let token = undefined;
276
- let user = undefined;
277
- if (newToken &&
278
- typeof newToken === 'string' &&
279
- newToken.startsWith('Bearer ')) {
280
- token = newToken.slice(7);
281
- }
282
- if (refreshResponse.data.user) {
283
- user = refreshResponse.data.user;
284
- }
285
- if (token && user) {
286
- return { token, user };
287
- }
288
- }
289
- }
290
- catch (error) {
291
- console.error('Token refresh error:', error);
292
- }
293
- throw new suite_core_lib_1.TranslatableSuiteError(suite_core_lib_1.SuiteCoreStringKey.Common_UnexpectedError);
294
- }
295
- async changePassword(currentPassword, newPassword) {
296
- try {
297
- await this.authenticatedApiClient.post('/user/change-password', {
298
- currentPassword,
299
- newPassword,
300
- });
301
- return { success: true };
302
- }
303
- catch (error) {
304
- if ((0, axios_1.isAxiosError)(error) && error.response) {
305
- const errorData = error.response.data;
306
- return {
307
- error: extractErrorMessage(errorData) ??
308
- error.message ??
309
- (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Common_UnexpectedError),
310
- ...(errorData.errorType ? { errorType: errorData.errorType } : {}),
311
- };
312
- }
313
- return {
314
- error: (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Common_UnexpectedError),
315
- };
316
- }
317
- }
318
- async backupCodeLogin(identifier, code, isEmail, recoverMnemonic, newPassword) {
319
- try {
320
- const response = await this.apiClient.post('/user/backup-code', {
321
- [isEmail ? 'email' : 'username']: identifier,
322
- code,
323
- recoverMnemonic,
324
- ...(newPassword ? { newPassword } : {}),
325
- });
326
- if (response.data.token && response.data.user) {
327
- return {
328
- token: response.data.token,
329
- user: response.data.user,
330
- codeCount: response.data.codeCount ?? 0,
331
- ...(response.data.mnemonic
332
- ? { mnemonic: response.data.mnemonic }
333
- : {}),
334
- ...(response.data.message ? { message: response.data.message } : {}),
335
- };
336
- }
337
- const errorData = response.data;
338
- return {
339
- error: errorData.message
340
- ? errorData.message
341
- : (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Validation_InvalidToken),
342
- ...(errorData.errorType ? { errorType: errorData.errorType } : {}),
343
- };
344
- }
345
- catch (error) {
346
- console.error('Backup code login error:', error);
347
- if ((0, axios_1.isAxiosError)(error) && error.response) {
348
- const errorData = error.response.data;
349
- return {
350
- error: extractErrorMessage(errorData) ??
351
- error.message ??
352
- (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Common_UnexpectedError),
353
- ...(errorData.errorType ? { errorType: errorData.errorType } : {}),
354
- status: error.response.status,
355
- };
356
- }
357
- return {
358
- error: (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Common_UnexpectedError),
359
- };
360
- }
361
- }
362
- async setupTotp() {
363
- try {
364
- const response = await this.authenticatedApiClient.post('/user/totp/setup');
365
- return {
366
- provisioningUri: response.data.provisioningUri,
367
- secret: response.data.secret,
368
- };
369
- }
370
- catch (error) {
371
- if ((0, axios_1.isAxiosError)(error) && error.response) {
372
- const errorData = error.response.data;
373
- return {
374
- error: extractErrorMessage(errorData) ??
375
- error.message ??
376
- (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Common_UnexpectedError),
377
- };
378
- }
379
- return {
380
- error: (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Common_UnexpectedError),
381
- };
382
- }
383
- }
384
- async confirmTotp(code) {
385
- try {
386
- await this.authenticatedApiClient.post('/user/totp/confirm', { code });
387
- return { success: true };
388
- }
389
- catch (error) {
390
- if ((0, axios_1.isAxiosError)(error) && error.response) {
391
- const errorData = error.response.data;
392
- return {
393
- error: extractErrorMessage(errorData) ??
394
- error.message ??
395
- (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Common_UnexpectedError),
396
- };
397
- }
398
- return {
399
- error: (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Common_UnexpectedError),
400
- };
401
- }
402
- }
403
- async disableTotp(code) {
404
- try {
405
- await this.authenticatedApiClient.post('/user/totp/disable', { code });
406
- return { success: true };
407
- }
408
- catch (error) {
409
- if ((0, axios_1.isAxiosError)(error) && error.response) {
410
- const errorData = error.response.data;
411
- return {
412
- error: extractErrorMessage(errorData) ??
413
- error.message ??
414
- (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Common_UnexpectedError),
415
- };
416
- }
417
- return {
418
- error: (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Common_UnexpectedError),
419
- };
420
- }
421
- }
422
- async resetTotp(code) {
423
- try {
424
- const response = await this.authenticatedApiClient.post('/user/totp/reset', { code });
425
- return {
426
- provisioningUri: response.data.provisioningUri,
427
- secret: response.data.secret,
428
- };
429
- }
430
- catch (error) {
431
- if ((0, axios_1.isAxiosError)(error) && error.response) {
432
- const errorData = error.response.data;
433
- return {
434
- error: extractErrorMessage(errorData) ??
435
- error.message ??
436
- (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Common_UnexpectedError),
437
- };
438
- }
439
- return {
440
- error: (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Common_UnexpectedError),
441
- };
442
- }
443
- }
444
- async verifyTotpLogin(pendingTotpToken, code) {
445
- try {
446
- const response = await this.apiClient.post('/user/totp/verify', { code }, {
447
- headers: { Authorization: `Bearer ${pendingTotpToken}` },
448
- });
449
- return {
450
- token: response.data.token,
451
- user: response.data.user,
452
- };
453
- }
454
- catch (error) {
455
- if ((0, axios_1.isAxiosError)(error) && error.response) {
456
- const errorData = error.response.data;
457
- return {
458
- error: extractErrorMessage(errorData) ??
459
- error.message ??
460
- (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Common_UnexpectedError),
461
- };
462
- }
463
- return {
464
- error: (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Common_UnexpectedError),
465
- };
466
- }
467
- }
468
- }
469
- exports.AuthService = AuthService;
470
- const createAuthService = (constants, baseUrl, eciesConfig, siteDomain) => new AuthService(constants, baseUrl, eciesConfig, siteDomain);
471
- exports.createAuthService = createAuthService;
@@ -1,3 +0,0 @@
1
- import axios from 'axios';
2
- export declare function createAuthenticatedApiClient(baseURL: string, tokenKey?: string): axios.AxiosInstance;
3
- //# sourceMappingURL=authenticatedApi.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"authenticatedApi.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-express-suite-react-components/src/services/authenticatedApi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAoB,uBAc3F"}
@@ -1,18 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createAuthenticatedApiClient = createAuthenticatedApiClient;
4
- const tslib_1 = require("tslib");
5
- const axios_1 = tslib_1.__importDefault(require("axios"));
6
- function createAuthenticatedApiClient(baseURL, tokenKey = 'authToken') {
7
- const api = axios_1.default.create({ baseURL });
8
- api.interceptors.request.use((config) => {
9
- const token = localStorage.getItem(tokenKey);
10
- if (token) {
11
- config.headers['Authorization'] = `Bearer ${token}`;
12
- }
13
- const languageCode = localStorage.getItem('languageCode') ?? 'en-US';
14
- config.headers['Accept-Language'] = languageCode;
15
- return config;
16
- });
17
- return api;
18
- }
@@ -1,4 +0,0 @@
1
- export * from './api';
2
- export * from './authenticatedApi';
3
- export * from './authService';
4
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-express-suite-react-components/src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC"}
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./api"), exports);
5
- tslib_1.__exportStar(require("./authenticatedApi"), exports);
6
- tslib_1.__exportStar(require("./authService"), exports);
@@ -1,11 +0,0 @@
1
- export type MenuType = string & {
2
- readonly __brand: 'MenuType';
3
- };
4
- export declare const createMenuType: (id: string) => MenuType;
5
- export declare const MenuTypes: {
6
- readonly SideMenu: MenuType;
7
- readonly TopMenu: MenuType;
8
- readonly UserMenu: MenuType;
9
- };
10
- export type BuiltInMenuType = typeof MenuTypes[keyof typeof MenuTypes];
11
- //# sourceMappingURL=MenuType.d.ts.map