@digitaldefiance/suite-core-lib 3.6.47 → 3.6.48

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 (573) hide show
  1. package/LICENSE +21 -0
  2. package/package.json +3 -4
  3. package/src/backup-code-string.ts +102 -0
  4. package/src/builders/{index.d.ts → index.ts} +1 -1
  5. package/src/builders/role-builder.ts +67 -0
  6. package/src/builders/user-builder.ts +81 -0
  7. package/src/constants.ts +229 -0
  8. package/src/core/{errors.d.ts → errors.ts} +4 -1
  9. package/src/core/{index.d.ts → index.ts} +1 -1
  10. package/src/core/result.ts +40 -0
  11. package/src/core/{types.d.ts → types.ts} +6 -1
  12. package/src/defaults.ts +114 -0
  13. package/src/enumerations/account-status.ts +17 -0
  14. package/src/enumerations/email-token-type.ts +27 -0
  15. package/src/enumerations/fec-error-type.ts +16 -0
  16. package/src/enumerations/{index.d.ts → index.ts} +3 -1
  17. package/src/enumerations/pbkdf2-error-type.ts +7 -0
  18. package/src/enumerations/role.ts +8 -0
  19. package/src/enumerations/suite-core-string-key.ts +500 -0
  20. package/src/errors/account-locked.ts +12 -0
  21. package/src/errors/account-status.ts +38 -0
  22. package/src/errors/admin-role-not-found.ts +15 -0
  23. package/src/errors/core-typed-handleable.ts +72 -0
  24. package/src/errors/direct-challenge-not-enabled.ts +22 -0
  25. package/src/errors/direct-token-used.ts +17 -0
  26. package/src/errors/email-in-use.ts +14 -0
  27. package/src/errors/email-token-expired.ts +14 -0
  28. package/src/errors/email-token-failed-to-send.ts +46 -0
  29. package/src/errors/email-token-sent-too-recently.ts +32 -0
  30. package/src/errors/email-token-used-or-invalid.ts +14 -0
  31. package/src/errors/email-verified.ts +19 -0
  32. package/src/errors/failed-to-use-direct-token.ts +17 -0
  33. package/src/errors/fec-error.ts +49 -0
  34. package/src/errors/generic-validation.ts +14 -0
  35. package/src/errors/{index.d.ts → index.ts} +3 -1
  36. package/src/errors/invalid-backup-code.ts +9 -0
  37. package/src/errors/invalid-challenge-response.ts +22 -0
  38. package/src/errors/invalid-challenge.ts +12 -0
  39. package/src/errors/invalid-credentials.ts +19 -0
  40. package/src/errors/invalid-email.ts +46 -0
  41. package/src/errors/invalid-expired-token.ts +21 -0
  42. package/src/errors/invalid-token.ts +22 -0
  43. package/src/errors/invalid-userid.ts +38 -0
  44. package/src/errors/invalid-username.ts +17 -0
  45. package/src/errors/last-admin-error.ts +15 -0
  46. package/src/errors/login-challenge-expired.ts +22 -0
  47. package/src/errors/member-role-not-found.ts +15 -0
  48. package/src/errors/password-login-not-enabled.ts +22 -0
  49. package/src/errors/password-login-not-setup.ts +22 -0
  50. package/src/errors/pbkdf2-error.ts +26 -0
  51. package/src/errors/pending-email-verification.ts +12 -0
  52. package/src/errors/private-key-required.ts +16 -0
  53. package/src/errors/system-role-not-found.ts +15 -0
  54. package/src/errors/token-not-found.ts +24 -0
  55. package/src/errors/translatable-suite-handleable.ts +30 -0
  56. package/src/errors/translatable-suite.ts +37 -0
  57. package/src/errors/user-not-found.ts +14 -0
  58. package/src/errors/username-email-required.ts +23 -0
  59. package/src/errors/username-in-use.ts +14 -0
  60. package/src/i18n-setup.ts +150 -0
  61. package/src/{index.d.ts → index.ts} +4 -1
  62. package/src/interfaces/backup-code-consts.ts +18 -0
  63. package/src/interfaces/backup-code.ts +9 -0
  64. package/src/interfaces/bases/email-token.ts +39 -0
  65. package/src/interfaces/bases/{index.d.ts → index.ts} +3 -1
  66. package/src/interfaces/bases/mnemonic.ts +12 -0
  67. package/src/interfaces/bases/role.ts +43 -0
  68. package/src/interfaces/bases/token-role.ts +16 -0
  69. package/src/interfaces/bases/used-direct-login-token.ts +17 -0
  70. package/src/interfaces/bases/user-role.ts +23 -0
  71. package/src/interfaces/bases/user.ts +91 -0
  72. package/src/interfaces/combined-role-privileges.ts +9 -0
  73. package/src/interfaces/constants.ts +59 -0
  74. package/src/interfaces/core-consts.ts +133 -0
  75. package/src/interfaces/deep-partial.ts +6 -0
  76. package/src/interfaces/dto/email-token.ts +7 -0
  77. package/src/interfaces/dto/{index.d.ts → index.ts} +3 -1
  78. package/src/interfaces/dto/mnemonic.ts +7 -0
  79. package/src/interfaces/dto/request-user.ts +23 -0
  80. package/src/interfaces/dto/role.ts +7 -0
  81. package/src/interfaces/dto/token-role.ts +21 -0
  82. package/src/interfaces/dto/user-role.ts +7 -0
  83. package/src/interfaces/dto/user-settings.ts +12 -0
  84. package/src/interfaces/dto/user.ts +7 -0
  85. package/src/interfaces/failable-result.ts +9 -0
  86. package/src/interfaces/frontend-objects/email-token.ts +12 -0
  87. package/src/interfaces/frontend-objects/{index.d.ts → index.ts} +3 -1
  88. package/src/interfaces/frontend-objects/request-user.ts +21 -0
  89. package/src/interfaces/frontend-objects/{role.d.ts → role.ts} +5 -1
  90. package/src/interfaces/frontend-objects/user-role.ts +7 -0
  91. package/src/interfaces/frontend-objects/user.ts +13 -0
  92. package/src/interfaces/has-creation.ts +9 -0
  93. package/src/interfaces/has-creator.ts +11 -0
  94. package/src/interfaces/has-id.ts +8 -0
  95. package/src/interfaces/has-soft-delete.ts +9 -0
  96. package/src/interfaces/has-soft-deleter.ts +11 -0
  97. package/src/interfaces/has-timestamp-owners.ts +9 -0
  98. package/src/interfaces/has-timestamps.ts +11 -0
  99. package/src/interfaces/has-updater.ts +11 -0
  100. package/src/interfaces/has-updates.ts +6 -0
  101. package/src/interfaces/{index.d.ts → index.ts} +3 -1
  102. package/src/interfaces/success-message.ts +7 -0
  103. package/src/interfaces/{token-user.d.ts → token-user.ts} +3 -3
  104. package/src/interfaces/user-settings.ts +14 -0
  105. package/src/lib/flags.ts +286 -0
  106. package/src/lib/formatters.ts +26 -0
  107. package/src/lib/hydrate-dehydrate.ts +43 -0
  108. package/src/lib/{index.d.ts → index.ts} +1 -1
  109. package/src/lib/validators-with-constants.ts +74 -0
  110. package/src/lib/validators.ts +72 -0
  111. package/src/local-storage-manager.ts +69 -0
  112. package/src/strings/de.ts +793 -0
  113. package/src/strings/en-GB.ts +743 -0
  114. package/src/strings/en-US.ts +746 -0
  115. package/src/strings/es.ts +799 -0
  116. package/src/strings/fr.ts +804 -0
  117. package/src/strings/ja.ts +766 -0
  118. package/src/strings/uk.ts +783 -0
  119. package/src/strings/zh-CN.ts +650 -0
  120. package/src/backup-code-string.d.ts +0 -29
  121. package/src/backup-code-string.d.ts.map +0 -1
  122. package/src/backup-code-string.js +0 -81
  123. package/src/backup-code-string.js.map +0 -1
  124. package/src/builders/index.d.ts.map +0 -1
  125. package/src/builders/index.js +0 -9
  126. package/src/builders/index.js.map +0 -1
  127. package/src/builders/role-builder.d.ts +0 -19
  128. package/src/builders/role-builder.d.ts.map +0 -1
  129. package/src/builders/role-builder.js +0 -57
  130. package/src/builders/role-builder.js.map +0 -1
  131. package/src/builders/user-builder.d.ts +0 -23
  132. package/src/builders/user-builder.d.ts.map +0 -1
  133. package/src/builders/user-builder.js +0 -63
  134. package/src/builders/user-builder.js.map +0 -1
  135. package/src/constants.d.ts +0 -7
  136. package/src/constants.d.ts.map +0 -1
  137. package/src/constants.js +0 -209
  138. package/src/constants.js.map +0 -1
  139. package/src/core/errors.d.ts.map +0 -1
  140. package/src/core/errors.js +0 -29
  141. package/src/core/errors.js.map +0 -1
  142. package/src/core/index.d.ts.map +0 -1
  143. package/src/core/index.js +0 -10
  144. package/src/core/index.js.map +0 -1
  145. package/src/core/result.d.ts +0 -34
  146. package/src/core/result.d.ts.map +0 -1
  147. package/src/core/result.js +0 -35
  148. package/src/core/result.js.map +0 -1
  149. package/src/core/types.d.ts.map +0 -1
  150. package/src/core/types.js +0 -6
  151. package/src/core/types.js.map +0 -1
  152. package/src/defaults.d.ts +0 -7
  153. package/src/defaults.d.ts.map +0 -1
  154. package/src/defaults.js +0 -66
  155. package/src/defaults.js.map +0 -1
  156. package/src/enumerations/account-status.d.ts +0 -18
  157. package/src/enumerations/account-status.d.ts.map +0 -1
  158. package/src/enumerations/account-status.js +0 -22
  159. package/src/enumerations/account-status.js.map +0 -1
  160. package/src/enumerations/email-token-type.d.ts +0 -25
  161. package/src/enumerations/email-token-type.d.ts.map +0 -1
  162. package/src/enumerations/email-token-type.js +0 -29
  163. package/src/enumerations/email-token-type.js.map +0 -1
  164. package/src/enumerations/fec-error-type.d.ts +0 -14
  165. package/src/enumerations/fec-error-type.d.ts.map +0 -1
  166. package/src/enumerations/fec-error-type.js +0 -18
  167. package/src/enumerations/fec-error-type.js.map +0 -1
  168. package/src/enumerations/index.d.ts.map +0 -1
  169. package/src/enumerations/index.js +0 -10
  170. package/src/enumerations/index.js.map +0 -1
  171. package/src/enumerations/pbkdf2-error-type.d.ts +0 -5
  172. package/src/enumerations/pbkdf2-error-type.d.ts.map +0 -1
  173. package/src/enumerations/pbkdf2-error-type.js +0 -9
  174. package/src/enumerations/pbkdf2-error-type.js.map +0 -1
  175. package/src/enumerations/role.d.ts +0 -6
  176. package/src/enumerations/role.d.ts.map +0 -1
  177. package/src/enumerations/role.js +0 -10
  178. package/src/enumerations/role.js.map +0 -1
  179. package/src/enumerations/suite-core-string-key.d.ts +0 -483
  180. package/src/enumerations/suite-core-string-key.d.ts.map +0 -1
  181. package/src/enumerations/suite-core-string-key.js +0 -494
  182. package/src/enumerations/suite-core-string-key.js.map +0 -1
  183. package/src/errors/account-locked.d.ts +0 -5
  184. package/src/errors/account-locked.d.ts.map +0 -1
  185. package/src/errors/account-locked.js +0 -13
  186. package/src/errors/account-locked.js.map +0 -1
  187. package/src/errors/account-status.d.ts +0 -7
  188. package/src/errors/account-status.d.ts.map +0 -1
  189. package/src/errors/account-status.js +0 -33
  190. package/src/errors/account-status.js.map +0 -1
  191. package/src/errors/admin-role-not-found.d.ts +0 -6
  192. package/src/errors/admin-role-not-found.d.ts.map +0 -1
  193. package/src/errors/admin-role-not-found.js +0 -15
  194. package/src/errors/admin-role-not-found.js.map +0 -1
  195. package/src/errors/core-typed-handleable.d.ts +0 -12
  196. package/src/errors/core-typed-handleable.d.ts.map +0 -1
  197. package/src/errors/core-typed-handleable.js +0 -51
  198. package/src/errors/core-typed-handleable.js.map +0 -1
  199. package/src/errors/direct-challenge-not-enabled.d.ts +0 -5
  200. package/src/errors/direct-challenge-not-enabled.d.ts.map +0 -1
  201. package/src/errors/direct-challenge-not-enabled.js +0 -16
  202. package/src/errors/direct-challenge-not-enabled.js.map +0 -1
  203. package/src/errors/direct-token-used.d.ts +0 -5
  204. package/src/errors/direct-token-used.d.ts.map +0 -1
  205. package/src/errors/direct-token-used.js +0 -13
  206. package/src/errors/direct-token-used.js.map +0 -1
  207. package/src/errors/email-in-use.d.ts +0 -5
  208. package/src/errors/email-in-use.d.ts.map +0 -1
  209. package/src/errors/email-in-use.js +0 -15
  210. package/src/errors/email-in-use.js.map +0 -1
  211. package/src/errors/email-token-expired.d.ts +0 -5
  212. package/src/errors/email-token-expired.d.ts.map +0 -1
  213. package/src/errors/email-token-expired.js +0 -15
  214. package/src/errors/email-token-expired.js.map +0 -1
  215. package/src/errors/email-token-failed-to-send.d.ts +0 -6
  216. package/src/errors/email-token-failed-to-send.d.ts.map +0 -1
  217. package/src/errors/email-token-failed-to-send.js +0 -22
  218. package/src/errors/email-token-failed-to-send.js.map +0 -1
  219. package/src/errors/email-token-sent-too-recently.d.ts +0 -7
  220. package/src/errors/email-token-sent-too-recently.d.ts.map +0 -1
  221. package/src/errors/email-token-sent-too-recently.js +0 -21
  222. package/src/errors/email-token-sent-too-recently.js.map +0 -1
  223. package/src/errors/email-token-used-or-invalid.d.ts +0 -5
  224. package/src/errors/email-token-used-or-invalid.d.ts.map +0 -1
  225. package/src/errors/email-token-used-or-invalid.js +0 -15
  226. package/src/errors/email-token-used-or-invalid.js.map +0 -1
  227. package/src/errors/email-verified.d.ts +0 -5
  228. package/src/errors/email-verified.d.ts.map +0 -1
  229. package/src/errors/email-verified.js +0 -15
  230. package/src/errors/email-verified.js.map +0 -1
  231. package/src/errors/failed-to-use-direct-token.d.ts +0 -5
  232. package/src/errors/failed-to-use-direct-token.d.ts.map +0 -1
  233. package/src/errors/failed-to-use-direct-token.js +0 -13
  234. package/src/errors/failed-to-use-direct-token.js.map +0 -1
  235. package/src/errors/fec-error.d.ts +0 -6
  236. package/src/errors/fec-error.d.ts.map +0 -1
  237. package/src/errors/fec-error.js +0 -26
  238. package/src/errors/fec-error.js.map +0 -1
  239. package/src/errors/generic-validation.d.ts +0 -5
  240. package/src/errors/generic-validation.d.ts.map +0 -1
  241. package/src/errors/generic-validation.js +0 -12
  242. package/src/errors/generic-validation.js.map +0 -1
  243. package/src/errors/index.d.ts.map +0 -1
  244. package/src/errors/index.js +0 -43
  245. package/src/errors/index.js.map +0 -1
  246. package/src/errors/invalid-backup-code.d.ts +0 -4
  247. package/src/errors/invalid-backup-code.d.ts.map +0 -1
  248. package/src/errors/invalid-backup-code.js +0 -11
  249. package/src/errors/invalid-backup-code.js.map +0 -1
  250. package/src/errors/invalid-challenge-response.d.ts +0 -5
  251. package/src/errors/invalid-challenge-response.d.ts.map +0 -1
  252. package/src/errors/invalid-challenge-response.js +0 -16
  253. package/src/errors/invalid-challenge-response.js.map +0 -1
  254. package/src/errors/invalid-challenge.d.ts +0 -5
  255. package/src/errors/invalid-challenge.d.ts.map +0 -1
  256. package/src/errors/invalid-challenge.js +0 -13
  257. package/src/errors/invalid-challenge.js.map +0 -1
  258. package/src/errors/invalid-credentials.d.ts +0 -5
  259. package/src/errors/invalid-credentials.d.ts.map +0 -1
  260. package/src/errors/invalid-credentials.js +0 -15
  261. package/src/errors/invalid-credentials.js.map +0 -1
  262. package/src/errors/invalid-email.d.ts +0 -8
  263. package/src/errors/invalid-email.d.ts.map +0 -1
  264. package/src/errors/invalid-email.js +0 -25
  265. package/src/errors/invalid-email.js.map +0 -1
  266. package/src/errors/invalid-expired-token.d.ts +0 -6
  267. package/src/errors/invalid-expired-token.d.ts.map +0 -1
  268. package/src/errors/invalid-expired-token.js +0 -13
  269. package/src/errors/invalid-expired-token.js.map +0 -1
  270. package/src/errors/invalid-token.d.ts +0 -5
  271. package/src/errors/invalid-token.d.ts.map +0 -1
  272. package/src/errors/invalid-token.js +0 -16
  273. package/src/errors/invalid-token.js.map +0 -1
  274. package/src/errors/invalid-userid.d.ts +0 -6
  275. package/src/errors/invalid-userid.d.ts.map +0 -1
  276. package/src/errors/invalid-userid.js +0 -20
  277. package/src/errors/invalid-userid.js.map +0 -1
  278. package/src/errors/invalid-username.d.ts +0 -5
  279. package/src/errors/invalid-username.d.ts.map +0 -1
  280. package/src/errors/invalid-username.js +0 -13
  281. package/src/errors/invalid-username.js.map +0 -1
  282. package/src/errors/last-admin-error.d.ts +0 -6
  283. package/src/errors/last-admin-error.d.ts.map +0 -1
  284. package/src/errors/last-admin-error.js +0 -15
  285. package/src/errors/last-admin-error.js.map +0 -1
  286. package/src/errors/login-challenge-expired.d.ts +0 -5
  287. package/src/errors/login-challenge-expired.d.ts.map +0 -1
  288. package/src/errors/login-challenge-expired.js +0 -16
  289. package/src/errors/login-challenge-expired.js.map +0 -1
  290. package/src/errors/member-role-not-found.d.ts +0 -6
  291. package/src/errors/member-role-not-found.d.ts.map +0 -1
  292. package/src/errors/member-role-not-found.js +0 -15
  293. package/src/errors/member-role-not-found.js.map +0 -1
  294. package/src/errors/password-login-not-enabled.d.ts +0 -5
  295. package/src/errors/password-login-not-enabled.d.ts.map +0 -1
  296. package/src/errors/password-login-not-enabled.js +0 -16
  297. package/src/errors/password-login-not-enabled.js.map +0 -1
  298. package/src/errors/password-login-not-setup.d.ts +0 -5
  299. package/src/errors/password-login-not-setup.d.ts.map +0 -1
  300. package/src/errors/password-login-not-setup.js +0 -16
  301. package/src/errors/password-login-not-setup.js.map +0 -1
  302. package/src/errors/pbkdf2-error.d.ts +0 -7
  303. package/src/errors/pbkdf2-error.d.ts.map +0 -1
  304. package/src/errors/pbkdf2-error.js +0 -19
  305. package/src/errors/pbkdf2-error.js.map +0 -1
  306. package/src/errors/pending-email-verification.d.ts +0 -5
  307. package/src/errors/pending-email-verification.d.ts.map +0 -1
  308. package/src/errors/pending-email-verification.js +0 -13
  309. package/src/errors/pending-email-verification.js.map +0 -1
  310. package/src/errors/private-key-required.d.ts +0 -5
  311. package/src/errors/private-key-required.d.ts.map +0 -1
  312. package/src/errors/private-key-required.js +0 -13
  313. package/src/errors/private-key-required.js.map +0 -1
  314. package/src/errors/system-role-not-found.d.ts +0 -6
  315. package/src/errors/system-role-not-found.d.ts.map +0 -1
  316. package/src/errors/system-role-not-found.js +0 -15
  317. package/src/errors/system-role-not-found.js.map +0 -1
  318. package/src/errors/token-not-found.d.ts +0 -7
  319. package/src/errors/token-not-found.d.ts.map +0 -1
  320. package/src/errors/token-not-found.js +0 -19
  321. package/src/errors/token-not-found.js.map +0 -1
  322. package/src/errors/translatable-suite-handleable.d.ts +0 -10
  323. package/src/errors/translatable-suite-handleable.d.ts.map +0 -1
  324. package/src/errors/translatable-suite-handleable.js +0 -15
  325. package/src/errors/translatable-suite-handleable.js.map +0 -1
  326. package/src/errors/translatable-suite.d.ts +0 -13
  327. package/src/errors/translatable-suite.d.ts.map +0 -1
  328. package/src/errors/translatable-suite.js +0 -29
  329. package/src/errors/translatable-suite.js.map +0 -1
  330. package/src/errors/user-not-found.d.ts +0 -5
  331. package/src/errors/user-not-found.d.ts.map +0 -1
  332. package/src/errors/user-not-found.js +0 -15
  333. package/src/errors/user-not-found.js.map +0 -1
  334. package/src/errors/username-email-required.d.ts +0 -6
  335. package/src/errors/username-email-required.d.ts.map +0 -1
  336. package/src/errors/username-email-required.js +0 -16
  337. package/src/errors/username-email-required.js.map +0 -1
  338. package/src/errors/username-in-use.d.ts +0 -5
  339. package/src/errors/username-in-use.d.ts.map +0 -1
  340. package/src/errors/username-in-use.js +0 -15
  341. package/src/errors/username-in-use.js.map +0 -1
  342. package/src/i18n-setup.d.ts +0 -13
  343. package/src/i18n-setup.d.ts.map +0 -1
  344. package/src/i18n-setup.js +0 -116
  345. package/src/i18n-setup.js.map +0 -1
  346. package/src/index.d.ts.map +0 -1
  347. package/src/index.js +0 -15
  348. package/src/index.js.map +0 -1
  349. package/src/interfaces/backup-code-consts.d.ts +0 -16
  350. package/src/interfaces/backup-code-consts.d.ts.map +0 -1
  351. package/src/interfaces/backup-code-consts.js +0 -3
  352. package/src/interfaces/backup-code-consts.js.map +0 -1
  353. package/src/interfaces/backup-code.d.ts +0 -7
  354. package/src/interfaces/backup-code.d.ts.map +0 -1
  355. package/src/interfaces/backup-code.js +0 -3
  356. package/src/interfaces/backup-code.js.map +0 -1
  357. package/src/interfaces/bases/email-token.d.ts +0 -33
  358. package/src/interfaces/bases/email-token.d.ts.map +0 -1
  359. package/src/interfaces/bases/email-token.js +0 -3
  360. package/src/interfaces/bases/email-token.js.map +0 -1
  361. package/src/interfaces/bases/index.d.ts.map +0 -1
  362. package/src/interfaces/bases/index.js +0 -11
  363. package/src/interfaces/bases/index.js.map +0 -1
  364. package/src/interfaces/bases/mnemonic.d.ts +0 -11
  365. package/src/interfaces/bases/mnemonic.d.ts.map +0 -1
  366. package/src/interfaces/bases/mnemonic.js +0 -3
  367. package/src/interfaces/bases/mnemonic.js.map +0 -1
  368. package/src/interfaces/bases/role.d.ts +0 -32
  369. package/src/interfaces/bases/role.d.ts.map +0 -1
  370. package/src/interfaces/bases/role.js +0 -3
  371. package/src/interfaces/bases/role.js.map +0 -1
  372. package/src/interfaces/bases/token-role.d.ts +0 -8
  373. package/src/interfaces/bases/token-role.d.ts.map +0 -1
  374. package/src/interfaces/bases/token-role.js +0 -3
  375. package/src/interfaces/bases/token-role.js.map +0 -1
  376. package/src/interfaces/bases/used-direct-login-token.d.ts +0 -6
  377. package/src/interfaces/bases/used-direct-login-token.d.ts.map +0 -1
  378. package/src/interfaces/bases/used-direct-login-token.js +0 -3
  379. package/src/interfaces/bases/used-direct-login-token.js.map +0 -1
  380. package/src/interfaces/bases/user-role.d.ts +0 -16
  381. package/src/interfaces/bases/user-role.d.ts.map +0 -1
  382. package/src/interfaces/bases/user-role.js +0 -3
  383. package/src/interfaces/bases/user-role.js.map +0 -1
  384. package/src/interfaces/bases/user.d.ts +0 -79
  385. package/src/interfaces/bases/user.d.ts.map +0 -1
  386. package/src/interfaces/bases/user.js +0 -3
  387. package/src/interfaces/bases/user.js.map +0 -1
  388. package/src/interfaces/combined-role-privileges.d.ts +0 -7
  389. package/src/interfaces/combined-role-privileges.d.ts.map +0 -1
  390. package/src/interfaces/combined-role-privileges.js +0 -3
  391. package/src/interfaces/combined-role-privileges.js.map +0 -1
  392. package/src/interfaces/constants.d.ts +0 -56
  393. package/src/interfaces/constants.d.ts.map +0 -1
  394. package/src/interfaces/constants.js +0 -3
  395. package/src/interfaces/constants.js.map +0 -1
  396. package/src/interfaces/core-consts.d.ts +0 -130
  397. package/src/interfaces/core-consts.d.ts.map +0 -1
  398. package/src/interfaces/core-consts.js +0 -3
  399. package/src/interfaces/core-consts.js.map +0 -1
  400. package/src/interfaces/deep-partial.d.ts +0 -4
  401. package/src/interfaces/deep-partial.d.ts.map +0 -1
  402. package/src/interfaces/deep-partial.js +0 -3
  403. package/src/interfaces/deep-partial.js.map +0 -1
  404. package/src/interfaces/dto/email-token.d.ts +0 -3
  405. package/src/interfaces/dto/email-token.d.ts.map +0 -1
  406. package/src/interfaces/dto/email-token.js +0 -3
  407. package/src/interfaces/dto/email-token.js.map +0 -1
  408. package/src/interfaces/dto/index.d.ts.map +0 -1
  409. package/src/interfaces/dto/index.js +0 -12
  410. package/src/interfaces/dto/index.js.map +0 -1
  411. package/src/interfaces/dto/mnemonic.d.ts +0 -3
  412. package/src/interfaces/dto/mnemonic.d.ts.map +0 -1
  413. package/src/interfaces/dto/mnemonic.js +0 -3
  414. package/src/interfaces/dto/mnemonic.js.map +0 -1
  415. package/src/interfaces/dto/request-user.d.ts +0 -17
  416. package/src/interfaces/dto/request-user.d.ts.map +0 -1
  417. package/src/interfaces/dto/request-user.js +0 -3
  418. package/src/interfaces/dto/request-user.js.map +0 -1
  419. package/src/interfaces/dto/role.d.ts +0 -3
  420. package/src/interfaces/dto/role.d.ts.map +0 -1
  421. package/src/interfaces/dto/role.js +0 -3
  422. package/src/interfaces/dto/role.js.map +0 -1
  423. package/src/interfaces/dto/token-role.d.ts +0 -10
  424. package/src/interfaces/dto/token-role.d.ts.map +0 -1
  425. package/src/interfaces/dto/token-role.js +0 -3
  426. package/src/interfaces/dto/token-role.js.map +0 -1
  427. package/src/interfaces/dto/user-role.d.ts +0 -3
  428. package/src/interfaces/dto/user-role.d.ts.map +0 -1
  429. package/src/interfaces/dto/user-role.js +0 -3
  430. package/src/interfaces/dto/user-role.js.map +0 -1
  431. package/src/interfaces/dto/user-settings.d.ts +0 -9
  432. package/src/interfaces/dto/user-settings.d.ts.map +0 -1
  433. package/src/interfaces/dto/user-settings.js +0 -3
  434. package/src/interfaces/dto/user-settings.js.map +0 -1
  435. package/src/interfaces/dto/user.d.ts +0 -3
  436. package/src/interfaces/dto/user.d.ts.map +0 -1
  437. package/src/interfaces/dto/user.js +0 -3
  438. package/src/interfaces/dto/user.js.map +0 -1
  439. package/src/interfaces/failable-result.d.ts +0 -7
  440. package/src/interfaces/failable-result.d.ts.map +0 -1
  441. package/src/interfaces/failable-result.js +0 -3
  442. package/src/interfaces/failable-result.js.map +0 -1
  443. package/src/interfaces/frontend-objects/email-token.d.ts +0 -4
  444. package/src/interfaces/frontend-objects/email-token.d.ts.map +0 -1
  445. package/src/interfaces/frontend-objects/email-token.js +0 -3
  446. package/src/interfaces/frontend-objects/email-token.js.map +0 -1
  447. package/src/interfaces/frontend-objects/index.d.ts.map +0 -1
  448. package/src/interfaces/frontend-objects/index.js +0 -9
  449. package/src/interfaces/frontend-objects/index.js.map +0 -1
  450. package/src/interfaces/frontend-objects/request-user.d.ts +0 -17
  451. package/src/interfaces/frontend-objects/request-user.d.ts.map +0 -1
  452. package/src/interfaces/frontend-objects/request-user.js +0 -3
  453. package/src/interfaces/frontend-objects/request-user.js.map +0 -1
  454. package/src/interfaces/frontend-objects/role.d.ts.map +0 -1
  455. package/src/interfaces/frontend-objects/role.js +0 -3
  456. package/src/interfaces/frontend-objects/role.js.map +0 -1
  457. package/src/interfaces/frontend-objects/user-role.d.ts +0 -3
  458. package/src/interfaces/frontend-objects/user-role.d.ts.map +0 -1
  459. package/src/interfaces/frontend-objects/user-role.js +0 -3
  460. package/src/interfaces/frontend-objects/user-role.js.map +0 -1
  461. package/src/interfaces/frontend-objects/user.d.ts +0 -4
  462. package/src/interfaces/frontend-objects/user.d.ts.map +0 -1
  463. package/src/interfaces/frontend-objects/user.js +0 -3
  464. package/src/interfaces/frontend-objects/user.js.map +0 -1
  465. package/src/interfaces/has-creation.d.ts +0 -7
  466. package/src/interfaces/has-creation.d.ts.map +0 -1
  467. package/src/interfaces/has-creation.js +0 -3
  468. package/src/interfaces/has-creation.js.map +0 -1
  469. package/src/interfaces/has-creator.d.ts +0 -7
  470. package/src/interfaces/has-creator.d.ts.map +0 -1
  471. package/src/interfaces/has-creator.js +0 -3
  472. package/src/interfaces/has-creator.js.map +0 -1
  473. package/src/interfaces/has-id.d.ts +0 -4
  474. package/src/interfaces/has-id.d.ts.map +0 -1
  475. package/src/interfaces/has-id.js +0 -3
  476. package/src/interfaces/has-id.js.map +0 -1
  477. package/src/interfaces/has-soft-delete.d.ts +0 -7
  478. package/src/interfaces/has-soft-delete.d.ts.map +0 -1
  479. package/src/interfaces/has-soft-delete.js +0 -3
  480. package/src/interfaces/has-soft-delete.js.map +0 -1
  481. package/src/interfaces/has-soft-deleter.d.ts +0 -7
  482. package/src/interfaces/has-soft-deleter.d.ts.map +0 -1
  483. package/src/interfaces/has-soft-deleter.js +0 -3
  484. package/src/interfaces/has-soft-deleter.js.map +0 -1
  485. package/src/interfaces/has-timestamp-owners.d.ts +0 -5
  486. package/src/interfaces/has-timestamp-owners.d.ts.map +0 -1
  487. package/src/interfaces/has-timestamp-owners.js +0 -3
  488. package/src/interfaces/has-timestamp-owners.js.map +0 -1
  489. package/src/interfaces/has-timestamps.d.ts +0 -6
  490. package/src/interfaces/has-timestamps.d.ts.map +0 -1
  491. package/src/interfaces/has-timestamps.js +0 -3
  492. package/src/interfaces/has-timestamps.js.map +0 -1
  493. package/src/interfaces/has-updater.d.ts +0 -7
  494. package/src/interfaces/has-updater.d.ts.map +0 -1
  495. package/src/interfaces/has-updater.js +0 -3
  496. package/src/interfaces/has-updater.js.map +0 -1
  497. package/src/interfaces/has-updates.d.ts +0 -4
  498. package/src/interfaces/has-updates.d.ts.map +0 -1
  499. package/src/interfaces/has-updates.js +0 -3
  500. package/src/interfaces/has-updates.js.map +0 -1
  501. package/src/interfaces/index.d.ts.map +0 -1
  502. package/src/interfaces/index.js +0 -26
  503. package/src/interfaces/index.js.map +0 -1
  504. package/src/interfaces/success-message.d.ts +0 -5
  505. package/src/interfaces/success-message.d.ts.map +0 -1
  506. package/src/interfaces/success-message.js +0 -3
  507. package/src/interfaces/success-message.js.map +0 -1
  508. package/src/interfaces/token-user.d.ts.map +0 -1
  509. package/src/interfaces/token-user.js +0 -3
  510. package/src/interfaces/token-user.js.map +0 -1
  511. package/src/interfaces/user-settings.d.ts +0 -11
  512. package/src/interfaces/user-settings.d.ts.map +0 -1
  513. package/src/interfaces/user-settings.js +0 -3
  514. package/src/interfaces/user-settings.js.map +0 -1
  515. package/src/lib/flags.d.ts +0 -10
  516. package/src/lib/flags.d.ts.map +0 -1
  517. package/src/lib/flags.js +0 -288
  518. package/src/lib/flags.js.map +0 -1
  519. package/src/lib/formatters.d.ts +0 -16
  520. package/src/lib/formatters.d.ts.map +0 -1
  521. package/src/lib/formatters.js +0 -29
  522. package/src/lib/formatters.js.map +0 -1
  523. package/src/lib/hydrate-dehydrate.d.ts +0 -4
  524. package/src/lib/hydrate-dehydrate.d.ts.map +0 -1
  525. package/src/lib/hydrate-dehydrate.js +0 -27
  526. package/src/lib/hydrate-dehydrate.js.map +0 -1
  527. package/src/lib/index.d.ts.map +0 -1
  528. package/src/lib/index.js +0 -12
  529. package/src/lib/index.js.map +0 -1
  530. package/src/lib/validators-with-constants.d.ts +0 -73
  531. package/src/lib/validators-with-constants.d.ts.map +0 -1
  532. package/src/lib/validators-with-constants.js +0 -64
  533. package/src/lib/validators-with-constants.js.map +0 -1
  534. package/src/lib/validators.d.ts +0 -37
  535. package/src/lib/validators.d.ts.map +0 -1
  536. package/src/lib/validators.js +0 -74
  537. package/src/lib/validators.js.map +0 -1
  538. package/src/local-storage-manager.d.ts +0 -22
  539. package/src/local-storage-manager.d.ts.map +0 -1
  540. package/src/local-storage-manager.js +0 -74
  541. package/src/local-storage-manager.js.map +0 -1
  542. package/src/strings/de.d.ts +0 -3
  543. package/src/strings/de.d.ts.map +0 -1
  544. package/src/strings/de.js +0 -487
  545. package/src/strings/de.js.map +0 -1
  546. package/src/strings/en-GB.d.ts +0 -3
  547. package/src/strings/en-GB.d.ts.map +0 -1
  548. package/src/strings/en-GB.js +0 -487
  549. package/src/strings/en-GB.js.map +0 -1
  550. package/src/strings/en-US.d.ts +0 -3
  551. package/src/strings/en-US.d.ts.map +0 -1
  552. package/src/strings/en-US.js +0 -487
  553. package/src/strings/en-US.js.map +0 -1
  554. package/src/strings/es.d.ts +0 -3
  555. package/src/strings/es.d.ts.map +0 -1
  556. package/src/strings/es.js +0 -487
  557. package/src/strings/es.js.map +0 -1
  558. package/src/strings/fr.d.ts +0 -3
  559. package/src/strings/fr.d.ts.map +0 -1
  560. package/src/strings/fr.js +0 -487
  561. package/src/strings/fr.js.map +0 -1
  562. package/src/strings/ja.d.ts +0 -3
  563. package/src/strings/ja.d.ts.map +0 -1
  564. package/src/strings/ja.js +0 -487
  565. package/src/strings/ja.js.map +0 -1
  566. package/src/strings/uk.d.ts +0 -3
  567. package/src/strings/uk.d.ts.map +0 -1
  568. package/src/strings/uk.js +0 -487
  569. package/src/strings/uk.js.map +0 -1
  570. package/src/strings/zh-CN.d.ts +0 -3
  571. package/src/strings/zh-CN.d.ts.map +0 -1
  572. package/src/strings/zh-CN.js +0 -487
  573. package/src/strings/zh-CN.js.map +0 -1
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Error thrown when the system role cannot be found in the system.
3
+ */
4
+ import { CoreLanguageCode } from '@digitaldefiance/i18n-lib';
5
+ import { SuiteCoreStringKey } from '../enumerations';
6
+ import { TranslatableSuiteHandleableError } from './translatable-suite-handleable';
7
+
8
+ export class SystemRoleNotFoundError extends TranslatableSuiteHandleableError {
9
+ constructor(language?: CoreLanguageCode) {
10
+ super(SuiteCoreStringKey.SystemRoleNotFound, undefined, language, {
11
+ statusCode: 500,
12
+ });
13
+ this.name = 'SystemRoleNotFoundError';
14
+ }
15
+ }
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Error thrown when a token cannot be found.
3
+ */
4
+ import { CoreLanguageCode } from '@digitaldefiance/i18n-lib';
5
+ import { SuiteCoreStringKey } from '../enumerations';
6
+ import { TranslatableSuiteHandleableError } from './translatable-suite-handleable';
7
+
8
+ export class TokenNotFoundError extends TranslatableSuiteHandleableError {
9
+ public readonly token: string;
10
+ constructor(token: string, language?: CoreLanguageCode, statusCode = 404) {
11
+ super(
12
+ SuiteCoreStringKey.TokenNotFoundTemplate,
13
+ {
14
+ TOKEN: token,
15
+ },
16
+ language,
17
+ {
18
+ statusCode,
19
+ },
20
+ );
21
+ this.token = token;
22
+ this.name = 'TokenNotFoundError';
23
+ }
24
+ }
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Translatable handleable error class for suite-core library with i18n and error handling support.
3
+ */
4
+ import { TranslatableHandleableGenericError } from '@digitaldefiance/i18n-lib';
5
+ import { SuiteCoreStringKey } from '../enumerations';
6
+ import { SuiteCoreComponentId } from '../i18n-setup';
7
+
8
+ export class TranslatableSuiteHandleableError extends TranslatableHandleableGenericError<SuiteCoreStringKey> {
9
+ constructor(
10
+ messageKey: SuiteCoreStringKey,
11
+ otherVars?: Record<string, string | number>,
12
+ language?: string,
13
+ handleableOptions?: {
14
+ statusCode?: number;
15
+ cause?: Error;
16
+ sourceData?: unknown;
17
+ },
18
+ ) {
19
+ super(
20
+ SuiteCoreComponentId,
21
+ messageKey,
22
+ otherVars,
23
+ language,
24
+ undefined, // metadata
25
+ 'default', // instanceKey
26
+ handleableOptions,
27
+ );
28
+ this.name = 'TranslatableSuiteHandleableError';
29
+ }
30
+ }
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Translatable error class for suite-core library with i18n support.
3
+ */
4
+ import { SuiteCoreStringKey } from '../enumerations/suite-core-string-key';
5
+ import { getSuiteCoreI18nEngine, SuiteCoreComponentId } from '../i18n-setup';
6
+
7
+ export class TranslatableSuiteError extends Error {
8
+ public readonly StringName: SuiteCoreStringKey;
9
+ /**
10
+ * @param string The translation key or raw string
11
+ * @param otherVars Variables for interpolation
12
+ * @param language Optional language override
13
+ * @param options Error options
14
+ * @param engine Optional i18n engine override (defaults to node-express-suite component)
15
+ */
16
+ constructor(
17
+ string: SuiteCoreStringKey,
18
+ otherVars?: Record<string, string | number>,
19
+ language?: string,
20
+ ) {
21
+ const i18nEngine = getSuiteCoreI18nEngine();
22
+ let translatedMessage: string;
23
+ try {
24
+ translatedMessage = i18nEngine.translate(
25
+ SuiteCoreComponentId,
26
+ string,
27
+ otherVars,
28
+ language,
29
+ );
30
+ } catch {
31
+ translatedMessage = string;
32
+ }
33
+ super(translatedMessage);
34
+ this.name = 'TranslatableSuiteError';
35
+ this.StringName = string;
36
+ }
37
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Error thrown when a user cannot be found.
3
+ */
4
+ import { SuiteCoreStringKey } from '../enumerations';
5
+ import { TranslatableSuiteHandleableError } from './translatable-suite-handleable';
6
+
7
+ export class UserNotFoundError extends TranslatableSuiteHandleableError {
8
+ constructor(language?: string, statusCode = 404) {
9
+ super(SuiteCoreStringKey.Auth_UserNotFound, undefined, language, {
10
+ statusCode,
11
+ });
12
+ this.name = 'UserNotFoundError';
13
+ }
14
+ }
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Error thrown when neither username nor email is provided.
3
+ */
4
+ import { CoreLanguageCode } from '@digitaldefiance/i18n-lib';
5
+ import { SuiteCoreStringKey } from '../enumerations';
6
+ import { getSuiteCoreTranslation } from '../i18n-setup';
7
+ import { GenericValidationError } from './generic-validation';
8
+
9
+ export class UsernameOrEmailRequiredError extends GenericValidationError {
10
+ constructor(language?: CoreLanguageCode, statusCode = 422) {
11
+ super(
12
+ getSuiteCoreTranslation(
13
+ SuiteCoreStringKey.Validation_UsernameOrEmailRequired,
14
+ undefined,
15
+ language,
16
+ ),
17
+ {
18
+ statusCode,
19
+ },
20
+ );
21
+ this.name = 'UsernameOrEmailRequiredError';
22
+ }
23
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Error thrown when a username is already in use by another account.
3
+ */
4
+ import { SuiteCoreStringKey } from '../enumerations';
5
+ import { TranslatableSuiteHandleableError } from './translatable-suite-handleable';
6
+
7
+ export class UsernameInUseError extends TranslatableSuiteHandleableError {
8
+ constructor(language?: string, statusCode = 422) {
9
+ super(SuiteCoreStringKey.Validation_UsernameInUse, undefined, language, {
10
+ statusCode,
11
+ });
12
+ this.name = 'UsernameInUseError';
13
+ }
14
+ }
@@ -0,0 +1,150 @@
1
+ /**
2
+ * Internationalization (i18n) setup and configuration for suite-core library.
3
+ * Manages i18n engine initialization, component registration, and translation string loading
4
+ * across 8 supported languages (en-US, en-GB, fr, de, es, zh-CN, ja, uk).
5
+ */
6
+ import {
7
+ ComponentConfig,
8
+ ComponentDefinition,
9
+ CoreLanguageCode,
10
+ createDefaultLanguages,
11
+ EngineConfig,
12
+ I18nEngine,
13
+ LanguageCodes,
14
+ } from '@digitaldefiance/i18n-lib';
15
+ import { Role } from './enumerations/role';
16
+ import { SuiteCoreStringKey } from './enumerations/suite-core-string-key';
17
+ import { germanStrings } from './strings/de';
18
+ import { britishEnglishStrings } from './strings/en-GB';
19
+ import { americanEnglishStrings } from './strings/en-US';
20
+ import { spanishStrings } from './strings/es';
21
+ import { frenchStrings } from './strings/fr';
22
+ import { japaneseStrings } from './strings/ja';
23
+ import { ukrainianStrings } from './strings/uk';
24
+ import { mandarinStrings } from './strings/zh-CN';
25
+
26
+ export const SuiteCoreI18nEngineKey = 'default' as const;
27
+ export const SuiteCoreComponentId = 'suite-core' as const;
28
+ export const SuiteCoreComponent: ComponentDefinition<SuiteCoreStringKey> = {
29
+ id: SuiteCoreComponentId,
30
+ name: 'Suite Core Library Component',
31
+ stringKeys: Object.values(SuiteCoreStringKey),
32
+ };
33
+ export const SuiteCoreComponentStrings: Record<
34
+ string,
35
+ Record<SuiteCoreStringKey, string>
36
+ > = {
37
+ [LanguageCodes.EN_US]: americanEnglishStrings,
38
+ [LanguageCodes.EN_GB]: britishEnglishStrings,
39
+ [LanguageCodes.FR]: frenchStrings,
40
+ [LanguageCodes.DE]: germanStrings,
41
+ [LanguageCodes.ES]: spanishStrings,
42
+ [LanguageCodes.ZH_CN]: mandarinStrings,
43
+ [LanguageCodes.JA]: japaneseStrings,
44
+ [LanguageCodes.UK]: ukrainianStrings,
45
+ };
46
+
47
+ const roleTranslations: Record<CoreLanguageCode, Record<Role, string>> = {
48
+ [LanguageCodes.EN_US]: {
49
+ [Role.Admin]: 'Administrator',
50
+ [Role.Member]: 'Member',
51
+ [Role.System]: 'System',
52
+ },
53
+ [LanguageCodes.EN_GB]: {
54
+ [Role.Admin]: 'Administrator',
55
+ [Role.Member]: 'Member',
56
+ [Role.System]: 'System',
57
+ },
58
+ [LanguageCodes.FR]: {
59
+ [Role.Admin]: 'Administrateur',
60
+ [Role.Member]: 'Membre',
61
+ [Role.System]: 'Système',
62
+ },
63
+ [LanguageCodes.ES]: {
64
+ [Role.Admin]: 'Administrador',
65
+ [Role.Member]: 'Miembro',
66
+ [Role.System]: 'Sistema',
67
+ },
68
+ [LanguageCodes.DE]: {
69
+ [Role.Admin]: 'Administrator',
70
+ [Role.Member]: 'Mitglied',
71
+ [Role.System]: 'System',
72
+ },
73
+ [LanguageCodes.ZH_CN]: {
74
+ [Role.Admin]: '管理员',
75
+ [Role.Member]: '成员',
76
+ [Role.System]: '系统',
77
+ },
78
+ [LanguageCodes.JA]: {
79
+ [Role.Admin]: '管理者',
80
+ [Role.Member]: 'メンバー',
81
+ [Role.System]: 'システム',
82
+ },
83
+ [LanguageCodes.UK]: {
84
+ [Role.Admin]: 'Адміністратор',
85
+ [Role.Member]: 'Учасник',
86
+ [Role.System]: 'Система',
87
+ },
88
+ };
89
+
90
+ // Suite Core component config
91
+ export function createSuiteCoreComponentConfig(): ComponentConfig {
92
+ const SuiteCoreComponentConfig: ComponentConfig = {
93
+ id: SuiteCoreComponentId,
94
+ strings: SuiteCoreComponentStrings,
95
+ aliases: ['SuiteCoreStringKey'],
96
+ };
97
+ return SuiteCoreComponentConfig;
98
+ }
99
+
100
+ let _engine: I18nEngine | undefined;
101
+
102
+ export function getSuiteCoreI18nEngine(config?: EngineConfig): I18nEngine {
103
+ if (!_engine || !I18nEngine.hasInstance(SuiteCoreI18nEngineKey)) {
104
+ _engine = I18nEngine.registerIfNotExists(
105
+ SuiteCoreI18nEngineKey,
106
+ createDefaultLanguages(),
107
+ { defaultLanguage: LanguageCodes.EN_US, ...config },
108
+ );
109
+
110
+ _engine.registerIfNotExists(createSuiteCoreComponentConfig());
111
+ _engine.registerEnum(Role, roleTranslations, 'Role');
112
+ }
113
+ return _engine;
114
+ }
115
+
116
+ export function getSuiteCoreTranslation(
117
+ key: SuiteCoreStringKey,
118
+ variables?: Record<string, unknown>,
119
+ language?: string,
120
+ config?: EngineConfig,
121
+ ): string {
122
+ return getSuiteCoreI18nEngine(config).translate(
123
+ SuiteCoreComponentId,
124
+ key,
125
+ variables,
126
+ language,
127
+ );
128
+ }
129
+
130
+ export function resetSuiteCoreI18nEngine(): void {
131
+ I18nEngine.removeInstance(SuiteCoreI18nEngineKey);
132
+ _engine = undefined;
133
+ }
134
+
135
+ export function initSuiteCoreI18nEngine(config?: EngineConfig): I18nEngine {
136
+ return getSuiteCoreI18nEngine(config);
137
+ }
138
+
139
+ export function safeGetSuiteCoreTranslation(
140
+ key: SuiteCoreStringKey,
141
+ variables?: Record<string, unknown>,
142
+ language?: string,
143
+ config?: EngineConfig,
144
+ ): string {
145
+ try {
146
+ return getSuiteCoreTranslation(key, variables, language, config);
147
+ } catch {
148
+ return key;
149
+ }
150
+ }
@@ -1,3 +1,7 @@
1
+ /**
2
+ * Main entry point for the suite-core library.
3
+ * Exports all public APIs including builders, constants, enumerations, errors, interfaces, and utilities.
4
+ */
1
5
  export * from './backup-code-string';
2
6
  export * from './builders';
3
7
  export * from './constants';
@@ -9,4 +13,3 @@ export * from './i18n-setup';
9
13
  export * from './interfaces';
10
14
  export * from './lib';
11
15
  export * from './local-storage-manager';
12
- //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Backup code constants interface.
3
+ */
4
+ export interface IBackupCodeConstants {
5
+ /**
6
+ * How many backup codes to generate for users
7
+ */
8
+ Count: number;
9
+ /**
10
+ * Regex for the backup codes
11
+ * 32 lowercase alphanumeric character string (a-z0-9)
12
+ */
13
+ NormalizedHexRegex: RegExp;
14
+ /**
15
+ * Regex for the display format of the backup codes
16
+ */
17
+ DisplayRegex: RegExp; // xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxx
18
+ }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Backup code structure with encryption and checksum data.
3
+ */
4
+ export interface IBackupCode {
5
+ version: string;
6
+ checksumSalt: string;
7
+ checksum: string;
8
+ encrypted: string;
9
+ }
@@ -0,0 +1,39 @@
1
+ import type { PlatformID } from '@digitaldefiance/ecies-lib';
2
+ import { EmailTokenType } from '../../enumerations/email-token-type';
3
+ import { IHasId } from '../has-id';
4
+ import { IHasTimestamps } from '../has-timestamps';
5
+
6
+ /**
7
+ * Base interface for email token collection documents
8
+ */
9
+ export interface IEmailTokenBase<
10
+ TID extends PlatformID,
11
+ TDate extends Date | string,
12
+ TEmailTokenType extends EmailTokenType | string,
13
+ >
14
+ extends IHasId<TID>, IHasTimestamps<TDate> {
15
+ /**
16
+ * The user ID associated with the token
17
+ */
18
+ userId: TID;
19
+ /**
20
+ * The type of token
21
+ */
22
+ type: TEmailTokenType;
23
+ /**
24
+ * The token value
25
+ */
26
+ token: string;
27
+ /**
28
+ * The email address the token was sent to
29
+ */
30
+ email: string;
31
+ /**
32
+ * The date the token was last sent
33
+ */
34
+ lastSent?: TDate;
35
+ /**
36
+ * The date the token expires
37
+ */
38
+ expiresAt: TDate;
39
+ }
@@ -1,3 +1,6 @@
1
+ /**
2
+ * Base interface exports for domain models.
3
+ */
1
4
  export * from './email-token';
2
5
  export * from './mnemonic';
3
6
  export * from './role';
@@ -5,4 +8,3 @@ export * from './token-role';
5
8
  export * from './used-direct-login-token';
6
9
  export * from './user';
7
10
  export * from './user-role';
8
- //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,12 @@
1
+ import type { PlatformID } from '@digitaldefiance/ecies-lib';
2
+ import { IHasId } from '../has-id';
3
+
4
+ /**
5
+ * Represents a mnemonic hash being stored to check for uniqueness
6
+ */
7
+ export interface IMnemonicBase<TID extends PlatformID> extends IHasId<TID> {
8
+ /**
9
+ * A non-reversible HMAC of the mnemonic, used for uniqueness checks.
10
+ */
11
+ hmac: string;
12
+ }
@@ -0,0 +1,43 @@
1
+ import type { PlatformID } from '@digitaldefiance/ecies-lib';
2
+ import { Role } from '../../enumerations/role';
3
+ import { IHasId } from '../has-id';
4
+ import { IHasSoftDelete } from '../has-soft-delete';
5
+ import { IHasSoftDeleter } from '../has-soft-deleter';
6
+ import { IHasTimestampOwners } from '../has-timestamp-owners';
7
+ import { IHasTimestamps } from '../has-timestamps';
8
+
9
+ export interface IRoleBase<
10
+ TID extends PlatformID,
11
+ TDate extends Date | string = Date,
12
+ TRole extends Role | string = Role,
13
+ >
14
+ extends
15
+ IHasId<TID>,
16
+ IHasTimestamps<TDate>,
17
+ IHasTimestampOwners<TID>,
18
+ IHasSoftDelete<TDate>,
19
+ IHasSoftDeleter<TID> {
20
+ /**
21
+ * The name of the role
22
+ */
23
+ name: TRole;
24
+ /**
25
+ * Whether the role is an admin
26
+ */
27
+ admin: boolean;
28
+ /**
29
+ * Whether the role is a site member
30
+ * Must not specify admin or system
31
+ */
32
+ member: boolean;
33
+ /**
34
+ * Whether the role is a restricted child account
35
+ * This prevents the account from certain actions
36
+ * Must not specify admin, member,
37
+ */
38
+ child: boolean;
39
+ /**
40
+ * Whether the role is a system account
41
+ */
42
+ system: boolean;
43
+ }
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Token role base interface.
3
+ * Extended role interface with translated name for JWT token payloads.
4
+ */
5
+ import type { PlatformID } from '@digitaldefiance/ecies-lib';
6
+ import { IRoleBase } from './role';
7
+
8
+ export interface ITokenRole<
9
+ TID extends PlatformID,
10
+ TDate extends Date | string = Date,
11
+ > extends IRoleBase<TID, TDate> {
12
+ /**
13
+ * The translated name of the role
14
+ */
15
+ translatedName: string;
16
+ }
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Used direct login token base interface.
3
+ * Tracks tokens that have been used for direct login to prevent replay attacks.
4
+ */
5
+ import type { PlatformID } from '@digitaldefiance/ecies-lib';
6
+ import { IHasId } from '../has-id';
7
+
8
+ export interface IUsedDirectLoginTokenBase<TID extends PlatformID> extends IHasId<TID> {
9
+ /**
10
+ * The user ID associated with the token
11
+ */
12
+ userId: TID;
13
+ /**
14
+ * The token value that was used
15
+ */
16
+ token: string;
17
+ }
@@ -0,0 +1,23 @@
1
+ import type { PlatformID } from '@digitaldefiance/ecies-lib';
2
+ import { IHasId } from '../has-id';
3
+ import { IHasSoftDelete } from '../has-soft-delete';
4
+ import { IHasSoftDeleter } from '../has-soft-deleter';
5
+ import { IHasTimestampOwners } from '../has-timestamp-owners';
6
+ import { IHasTimestamps } from '../has-timestamps';
7
+
8
+ export interface IUserRoleBase<TID extends PlatformID, TDate extends Date | string>
9
+ extends
10
+ IHasId<TID>,
11
+ IHasTimestamps<TDate>,
12
+ IHasTimestampOwners<TID>,
13
+ IHasSoftDelete<TDate>,
14
+ IHasSoftDeleter<TID> {
15
+ /**
16
+ * The user ID
17
+ */
18
+ userId: TID;
19
+ /**
20
+ * The role ID
21
+ */
22
+ roleId: TID;
23
+ }
@@ -0,0 +1,91 @@
1
+ import type { PlatformID } from '@digitaldefiance/ecies-lib';
2
+ import { AccountStatus } from '../../enumerations/account-status';
3
+ import { IBackupCode } from '../backup-code';
4
+ import { IHasId } from '../has-id';
5
+ import { IHasSoftDelete } from '../has-soft-delete';
6
+ import { IHasSoftDeleter } from '../has-soft-deleter';
7
+ import { IHasTimestampOwners } from '../has-timestamp-owners';
8
+ import { IHasTimestamps } from '../has-timestamps';
9
+
10
+ /**
11
+ * Base interface for user collection documents
12
+ */
13
+ export interface IUserBase<
14
+ TID extends PlatformID,
15
+ TDate extends Date | string,
16
+ TLanguage extends string,
17
+ TAccountStatus extends AccountStatus | string,
18
+ >
19
+ extends
20
+ IHasId<TID>,
21
+ IHasTimestamps<TDate>,
22
+ IHasTimestampOwners<TID>,
23
+ IHasSoftDelete<TDate>,
24
+ IHasSoftDeleter<TID> {
25
+ /**
26
+ * The username of the user
27
+ */
28
+ username: string;
29
+ /**
30
+ * The email address of the user
31
+ */
32
+ email: string;
33
+ /**
34
+ * The public key for the user
35
+ */
36
+ publicKey: string;
37
+ /**
38
+ * The currency preference of the user
39
+ */
40
+ currency: string;
41
+ /**
42
+ * The timezone of the user
43
+ */
44
+ timezone: string;
45
+ /**
46
+ * The language of the site for the user
47
+ */
48
+ siteLanguage: TLanguage;
49
+ /**
50
+ * Whether the user prefers dark mode
51
+ */
52
+ darkMode: boolean;
53
+ /**
54
+ * The date the user last logged in
55
+ */
56
+ lastLogin?: TDate;
57
+ /**
58
+ * Whether the user has verified their email address
59
+ */
60
+ emailVerified: boolean;
61
+ /**
62
+ * The status of the user's account, eg 'AdminLock'
63
+ */
64
+ accountStatus: TAccountStatus;
65
+ /**
66
+ * Reference to the mnemonic document
67
+ */
68
+ mnemonicId?: TID;
69
+ /**
70
+ * Whether the user has enabled direct challenge
71
+ */
72
+ directChallenge: boolean;
73
+ /**
74
+ * Password-wrapped ECIES private key
75
+ */
76
+ passwordWrappedPrivateKey?: {
77
+ salt: string;
78
+ iv: string;
79
+ authTag: string;
80
+ ciphertext: string;
81
+ iterations: number;
82
+ };
83
+ /**
84
+ * Array of backup codes to recover mnemonic/private key
85
+ */
86
+ backupCodes: Array<IBackupCode>;
87
+ /**
88
+ * Copy of the mnemonic encrypted with the user's public key
89
+ */
90
+ mnemonicRecovery: string;
91
+ }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Combined role privileges across all role types.
3
+ */
4
+ export interface ICombinedRolePrivileges {
5
+ admin: boolean;
6
+ member: boolean;
7
+ child: boolean;
8
+ system: boolean;
9
+ }
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Extended constants interface with site-specific configuration and theme colors.
3
+ */
4
+ import { ICoreConstants } from './core-consts';
5
+
6
+ export interface IConstants extends ICoreConstants {
7
+ /**
8
+ * The email of the administrator user/admin contact
9
+ */
10
+ AdministratorEmail: string;
11
+ /**
12
+ * The email of the test user.
13
+ */
14
+ MemberEmail: string;
15
+ /**
16
+ * The email of the system user.
17
+ */
18
+ SystemEmail: string;
19
+ /**
20
+ * The primary brand color (used for primary theme color)
21
+ */
22
+ logo_primary_color: string;
23
+ /**
24
+ * The primary text color (used for logo and text)
25
+ */
26
+ logo_primary_text: string;
27
+ /**
28
+ * The secondary text color (used for logo and accents)
29
+ */
30
+ logo_secondary_text: string;
31
+ /**
32
+ * The color used to indicate success states.
33
+ */
34
+ success_color: string;
35
+ /**
36
+ * The color used to indicate warning states.
37
+ */
38
+ warning_color: string;
39
+ /**
40
+ * The color used to indicate failure states.
41
+ */
42
+ failure_color: string;
43
+ /**
44
+ * The light variant of the primary text color.
45
+ */
46
+ primary_text_light: string;
47
+ /**
48
+ * The dark variant of the primary text color.
49
+ */
50
+ primary_text_dark: string;
51
+ /**
52
+ * The light variant of the secondary text color.
53
+ */
54
+ secondary_text_light: string;
55
+ /**
56
+ * The dark variant of the secondary text color.
57
+ */
58
+ secondary_text_dark: string;
59
+ }