@digitaldefiance/suite-core-lib 3.6.5 → 3.6.7

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 (595) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +87 -43
  3. package/package.json +10 -6
  4. package/src/backup-code-string.ts +96 -0
  5. package/src/builders/{index.d.ts → index.ts} +1 -1
  6. package/src/builders/role-builder.ts +63 -0
  7. package/src/builders/user-builder.ts +72 -0
  8. package/src/constants.ts +220 -0
  9. package/src/core/{errors.d.ts → errors.ts} +4 -1
  10. package/src/core/{index.d.ts → index.ts} +1 -1
  11. package/src/core/result.ts +36 -0
  12. package/src/core/{types.d.ts → types.ts} +6 -1
  13. package/src/defaults.ts +110 -0
  14. package/src/enumerations/account-status.ts +17 -0
  15. package/src/enumerations/email-token-type.ts +24 -0
  16. package/src/enumerations/fec-error-type.ts +13 -0
  17. package/src/enumerations/{index.d.ts → index.ts} +1 -2
  18. package/src/enumerations/pbkdf2-error-type.ts +4 -0
  19. package/src/enumerations/role.ts +5 -0
  20. package/src/enumerations/suite-core-string-key.ts +495 -0
  21. package/src/errors/account-locked.ts +9 -0
  22. package/src/errors/account-status.ts +33 -0
  23. package/src/errors/admin-role-not-found.ts +10 -0
  24. package/src/errors/core-typed-handleable.ts +69 -0
  25. package/src/errors/direct-challenge-not-enabled.ts +12 -0
  26. package/src/errors/direct-token-used.ts +9 -0
  27. package/src/errors/email-in-use.ts +11 -0
  28. package/src/errors/email-token-expired.ts +12 -0
  29. package/src/errors/email-token-failed-to-send.ts +20 -0
  30. package/src/errors/email-token-sent-too-recently.ts +29 -0
  31. package/src/errors/email-token-used-or-invalid.ts +12 -0
  32. package/src/errors/email-verified.ts +11 -0
  33. package/src/errors/failed-to-use-direct-token.ts +9 -0
  34. package/src/errors/fec-error.ts +33 -0
  35. package/src/errors/generic-validation.ts +11 -0
  36. package/src/errors/{index.d.ts → index.ts} +0 -1
  37. package/src/errors/invalid-backup-code.ts +6 -0
  38. package/src/errors/invalid-challenge-response.ts +12 -0
  39. package/src/errors/invalid-challenge.ts +9 -0
  40. package/src/errors/invalid-credentials.ts +14 -0
  41. package/src/errors/invalid-email.ts +22 -0
  42. package/src/errors/invalid-expired-token.ts +11 -0
  43. package/src/errors/invalid-token.ts +13 -0
  44. package/src/errors/invalid-userid.ts +21 -0
  45. package/src/errors/invalid-username.ts +14 -0
  46. package/src/errors/last-admin-error.ts +12 -0
  47. package/src/errors/login-challenge-expired.ts +12 -0
  48. package/src/errors/member-role-not-found.ts +10 -0
  49. package/src/errors/password-login-not-enabled.ts +12 -0
  50. package/src/errors/password-login-not-setup.ts +12 -0
  51. package/src/errors/pbkdf2-error.ts +19 -0
  52. package/src/errors/pending-email-verification.ts +9 -0
  53. package/src/errors/private-key-required.ts +13 -0
  54. package/src/errors/system-role-not-found.ts +10 -0
  55. package/src/errors/token-not-found.ts +26 -0
  56. package/src/errors/translatable-suite-handleable.ts +27 -0
  57. package/src/errors/translatable-suite.ts +34 -0
  58. package/src/errors/user-not-found.ts +14 -0
  59. package/src/errors/username-email-required.ts +20 -0
  60. package/src/errors/username-in-use.ts +14 -0
  61. package/src/i18n-setup.ts +141 -0
  62. package/src/{index.d.ts → index.ts} +0 -1
  63. package/src/interfaces/backup-code-consts.ts +15 -0
  64. package/src/interfaces/backup-code.ts +6 -0
  65. package/src/interfaces/bases/email-token.ts +38 -0
  66. package/src/interfaces/bases/{index.d.ts → index.ts} +0 -1
  67. package/src/interfaces/bases/{mnemonic.d.ts → mnemonic.ts} +5 -5
  68. package/src/interfaces/bases/role.ts +40 -0
  69. package/src/interfaces/bases/token-role.ts +9 -0
  70. package/src/interfaces/bases/{used-direct-login-token.d.ts → used-direct-login-token.ts} +3 -3
  71. package/src/interfaces/bases/user-role.ts +21 -0
  72. package/src/interfaces/bases/user.ts +88 -0
  73. package/src/interfaces/combined-role-privileges.ts +6 -0
  74. package/src/interfaces/constants.ts +56 -0
  75. package/src/interfaces/core-consts.ts +130 -0
  76. package/src/interfaces/deep-partial.ts +3 -0
  77. package/src/interfaces/dto/{email-token.d.ts → email-token.ts} +1 -1
  78. package/src/interfaces/dto/{index.d.ts → index.ts} +1 -2
  79. package/src/interfaces/dto/{mnemonic.d.ts → mnemonic.ts} +1 -1
  80. package/src/interfaces/dto/request-user.ts +19 -0
  81. package/src/interfaces/dto/{role.d.ts → role.ts} +1 -1
  82. package/src/interfaces/dto/{token-role.d.ts → token-role.ts} +9 -3
  83. package/src/interfaces/dto/{user-role.d.ts → user-role.ts} +1 -1
  84. package/src/interfaces/dto/{user-settings.d.ts → user-settings.ts} +1 -2
  85. package/src/interfaces/dto/{user.d.ts → user.ts} +1 -1
  86. package/src/interfaces/failable-result.ts +6 -0
  87. package/src/interfaces/frontend-objects/email-token.ts +8 -0
  88. package/src/interfaces/frontend-objects/{index.d.ts → index.ts} +1 -2
  89. package/src/interfaces/frontend-objects/request-user.ts +17 -0
  90. package/src/interfaces/frontend-objects/{role.d.ts → role.ts} +1 -1
  91. package/src/interfaces/frontend-objects/{user-role.d.ts → user-role.ts} +1 -1
  92. package/src/interfaces/frontend-objects/user.ts +9 -0
  93. package/src/interfaces/has-creation.ts +6 -0
  94. package/src/interfaces/has-creator.ts +6 -0
  95. package/src/interfaces/has-id.ts +3 -0
  96. package/src/interfaces/has-soft-delete.ts +6 -0
  97. package/src/interfaces/has-soft-deleter.ts +6 -0
  98. package/src/interfaces/has-timestamp-owners.ts +6 -0
  99. package/src/interfaces/has-timestamps.ts +7 -0
  100. package/src/interfaces/has-updater.ts +6 -0
  101. package/src/interfaces/has-updates.ts +3 -0
  102. package/src/interfaces/{index.d.ts → index.ts} +1 -3
  103. package/src/interfaces/success-message.ts +4 -0
  104. package/src/interfaces/{token-user.d.ts → token-user.ts} +3 -3
  105. package/src/interfaces/{user-settings.d.ts → user-settings.ts} +2 -2
  106. package/src/lib/flags.ts +286 -0
  107. package/src/lib/formatters.ts +28 -0
  108. package/src/lib/hydrate-dehydrate.ts +27 -0
  109. package/src/lib/{index.d.ts → index.ts} +2 -2
  110. package/src/lib/validators-with-constants.ts +72 -0
  111. package/src/lib/validators.ts +72 -0
  112. package/src/local-storage-manager.ts +69 -0
  113. package/src/strings/de.ts +689 -0
  114. package/src/strings/en-GB.ts +626 -0
  115. package/src/strings/en-US.ts +628 -0
  116. package/src/strings/es.ts +688 -0
  117. package/src/strings/fr.ts +685 -0
  118. package/src/strings/ja.ts +654 -0
  119. package/src/strings/uk.ts +667 -0
  120. package/src/strings/zh-CN.ts +566 -0
  121. package/src/backup-code-string.d.ts +0 -29
  122. package/src/backup-code-string.d.ts.map +0 -1
  123. package/src/backup-code-string.js +0 -81
  124. package/src/backup-code-string.js.map +0 -1
  125. package/src/builders/index.d.ts.map +0 -1
  126. package/src/builders/index.js +0 -9
  127. package/src/builders/index.js.map +0 -1
  128. package/src/builders/role-builder.d.ts +0 -19
  129. package/src/builders/role-builder.d.ts.map +0 -1
  130. package/src/builders/role-builder.js +0 -57
  131. package/src/builders/role-builder.js.map +0 -1
  132. package/src/builders/user-builder.d.ts +0 -23
  133. package/src/builders/user-builder.d.ts.map +0 -1
  134. package/src/builders/user-builder.js +0 -63
  135. package/src/builders/user-builder.js.map +0 -1
  136. package/src/constants.d.ts +0 -7
  137. package/src/constants.d.ts.map +0 -1
  138. package/src/constants.js +0 -209
  139. package/src/constants.js.map +0 -1
  140. package/src/core/errors.d.ts.map +0 -1
  141. package/src/core/errors.js +0 -29
  142. package/src/core/errors.js.map +0 -1
  143. package/src/core/index.d.ts.map +0 -1
  144. package/src/core/index.js +0 -10
  145. package/src/core/index.js.map +0 -1
  146. package/src/core/result.d.ts +0 -34
  147. package/src/core/result.d.ts.map +0 -1
  148. package/src/core/result.js +0 -35
  149. package/src/core/result.js.map +0 -1
  150. package/src/core/types.d.ts.map +0 -1
  151. package/src/core/types.js +0 -6
  152. package/src/core/types.js.map +0 -1
  153. package/src/defaults.d.ts +0 -7
  154. package/src/defaults.d.ts.map +0 -1
  155. package/src/defaults.js +0 -66
  156. package/src/defaults.js.map +0 -1
  157. package/src/enumerations/account-status.d.ts +0 -18
  158. package/src/enumerations/account-status.d.ts.map +0 -1
  159. package/src/enumerations/account-status.js +0 -22
  160. package/src/enumerations/account-status.js.map +0 -1
  161. package/src/enumerations/email-token-type.d.ts +0 -25
  162. package/src/enumerations/email-token-type.d.ts.map +0 -1
  163. package/src/enumerations/email-token-type.js +0 -29
  164. package/src/enumerations/email-token-type.js.map +0 -1
  165. package/src/enumerations/fec-error-type.d.ts +0 -14
  166. package/src/enumerations/fec-error-type.d.ts.map +0 -1
  167. package/src/enumerations/fec-error-type.js +0 -18
  168. package/src/enumerations/fec-error-type.js.map +0 -1
  169. package/src/enumerations/index.d.ts.map +0 -1
  170. package/src/enumerations/index.js +0 -10
  171. package/src/enumerations/index.js.map +0 -1
  172. package/src/enumerations/pbkdf2-error-type.d.ts +0 -5
  173. package/src/enumerations/pbkdf2-error-type.d.ts.map +0 -1
  174. package/src/enumerations/pbkdf2-error-type.js +0 -9
  175. package/src/enumerations/pbkdf2-error-type.js.map +0 -1
  176. package/src/enumerations/role.d.ts +0 -6
  177. package/src/enumerations/role.d.ts.map +0 -1
  178. package/src/enumerations/role.js +0 -10
  179. package/src/enumerations/role.js.map +0 -1
  180. package/src/enumerations/suite-core-string-key.d.ts +0 -482
  181. package/src/enumerations/suite-core-string-key.d.ts.map +0 -1
  182. package/src/enumerations/suite-core-string-key.js +0 -493
  183. package/src/enumerations/suite-core-string-key.js.map +0 -1
  184. package/src/errors/account-locked.d.ts +0 -5
  185. package/src/errors/account-locked.d.ts.map +0 -1
  186. package/src/errors/account-locked.js +0 -13
  187. package/src/errors/account-locked.js.map +0 -1
  188. package/src/errors/account-status.d.ts +0 -7
  189. package/src/errors/account-status.d.ts.map +0 -1
  190. package/src/errors/account-status.js +0 -31
  191. package/src/errors/account-status.js.map +0 -1
  192. package/src/errors/admin-role-not-found.d.ts +0 -6
  193. package/src/errors/admin-role-not-found.d.ts.map +0 -1
  194. package/src/errors/admin-role-not-found.js +0 -13
  195. package/src/errors/admin-role-not-found.js.map +0 -1
  196. package/src/errors/core-typed-handleable.d.ts +0 -12
  197. package/src/errors/core-typed-handleable.d.ts.map +0 -1
  198. package/src/errors/core-typed-handleable.js +0 -51
  199. package/src/errors/core-typed-handleable.js.map +0 -1
  200. package/src/errors/direct-challenge-not-enabled.d.ts +0 -5
  201. package/src/errors/direct-challenge-not-enabled.d.ts.map +0 -1
  202. package/src/errors/direct-challenge-not-enabled.js +0 -16
  203. package/src/errors/direct-challenge-not-enabled.js.map +0 -1
  204. package/src/errors/direct-token-used.d.ts +0 -5
  205. package/src/errors/direct-token-used.d.ts.map +0 -1
  206. package/src/errors/direct-token-used.js +0 -13
  207. package/src/errors/direct-token-used.js.map +0 -1
  208. package/src/errors/email-in-use.d.ts +0 -5
  209. package/src/errors/email-in-use.d.ts.map +0 -1
  210. package/src/errors/email-in-use.js +0 -15
  211. package/src/errors/email-in-use.js.map +0 -1
  212. package/src/errors/email-token-expired.d.ts +0 -5
  213. package/src/errors/email-token-expired.d.ts.map +0 -1
  214. package/src/errors/email-token-expired.js +0 -15
  215. package/src/errors/email-token-expired.js.map +0 -1
  216. package/src/errors/email-token-failed-to-send.d.ts +0 -6
  217. package/src/errors/email-token-failed-to-send.d.ts.map +0 -1
  218. package/src/errors/email-token-failed-to-send.js +0 -22
  219. package/src/errors/email-token-failed-to-send.js.map +0 -1
  220. package/src/errors/email-token-sent-too-recently.d.ts +0 -7
  221. package/src/errors/email-token-sent-too-recently.d.ts.map +0 -1
  222. package/src/errors/email-token-sent-too-recently.js +0 -21
  223. package/src/errors/email-token-sent-too-recently.js.map +0 -1
  224. package/src/errors/email-token-used-or-invalid.d.ts +0 -5
  225. package/src/errors/email-token-used-or-invalid.d.ts.map +0 -1
  226. package/src/errors/email-token-used-or-invalid.js +0 -15
  227. package/src/errors/email-token-used-or-invalid.js.map +0 -1
  228. package/src/errors/email-verified.d.ts +0 -5
  229. package/src/errors/email-verified.d.ts.map +0 -1
  230. package/src/errors/email-verified.js +0 -15
  231. package/src/errors/email-verified.js.map +0 -1
  232. package/src/errors/failed-to-use-direct-token.d.ts +0 -5
  233. package/src/errors/failed-to-use-direct-token.d.ts.map +0 -1
  234. package/src/errors/failed-to-use-direct-token.js +0 -13
  235. package/src/errors/failed-to-use-direct-token.js.map +0 -1
  236. package/src/errors/fec-error.d.ts +0 -6
  237. package/src/errors/fec-error.d.ts.map +0 -1
  238. package/src/errors/fec-error.js +0 -26
  239. package/src/errors/fec-error.js.map +0 -1
  240. package/src/errors/generic-validation.d.ts +0 -5
  241. package/src/errors/generic-validation.d.ts.map +0 -1
  242. package/src/errors/generic-validation.js +0 -12
  243. package/src/errors/generic-validation.js.map +0 -1
  244. package/src/errors/index.d.ts.map +0 -1
  245. package/src/errors/index.js +0 -43
  246. package/src/errors/index.js.map +0 -1
  247. package/src/errors/invalid-backup-code.d.ts +0 -4
  248. package/src/errors/invalid-backup-code.d.ts.map +0 -1
  249. package/src/errors/invalid-backup-code.js +0 -11
  250. package/src/errors/invalid-backup-code.js.map +0 -1
  251. package/src/errors/invalid-challenge-response.d.ts +0 -5
  252. package/src/errors/invalid-challenge-response.d.ts.map +0 -1
  253. package/src/errors/invalid-challenge-response.js +0 -16
  254. package/src/errors/invalid-challenge-response.js.map +0 -1
  255. package/src/errors/invalid-challenge.d.ts +0 -5
  256. package/src/errors/invalid-challenge.d.ts.map +0 -1
  257. package/src/errors/invalid-challenge.js +0 -13
  258. package/src/errors/invalid-challenge.js.map +0 -1
  259. package/src/errors/invalid-credentials.d.ts +0 -5
  260. package/src/errors/invalid-credentials.d.ts.map +0 -1
  261. package/src/errors/invalid-credentials.js +0 -15
  262. package/src/errors/invalid-credentials.js.map +0 -1
  263. package/src/errors/invalid-email.d.ts +0 -8
  264. package/src/errors/invalid-email.d.ts.map +0 -1
  265. package/src/errors/invalid-email.js +0 -25
  266. package/src/errors/invalid-email.js.map +0 -1
  267. package/src/errors/invalid-expired-token.d.ts +0 -7
  268. package/src/errors/invalid-expired-token.d.ts.map +0 -1
  269. package/src/errors/invalid-expired-token.js +0 -13
  270. package/src/errors/invalid-expired-token.js.map +0 -1
  271. package/src/errors/invalid-token.d.ts +0 -5
  272. package/src/errors/invalid-token.d.ts.map +0 -1
  273. package/src/errors/invalid-token.js +0 -16
  274. package/src/errors/invalid-token.js.map +0 -1
  275. package/src/errors/invalid-userid.d.ts +0 -6
  276. package/src/errors/invalid-userid.d.ts.map +0 -1
  277. package/src/errors/invalid-userid.js +0 -18
  278. package/src/errors/invalid-userid.js.map +0 -1
  279. package/src/errors/invalid-username.d.ts +0 -5
  280. package/src/errors/invalid-username.d.ts.map +0 -1
  281. package/src/errors/invalid-username.js +0 -13
  282. package/src/errors/invalid-username.js.map +0 -1
  283. package/src/errors/last-admin-error.d.ts +0 -6
  284. package/src/errors/last-admin-error.d.ts.map +0 -1
  285. package/src/errors/last-admin-error.js +0 -15
  286. package/src/errors/last-admin-error.js.map +0 -1
  287. package/src/errors/login-challenge-expired.d.ts +0 -5
  288. package/src/errors/login-challenge-expired.d.ts.map +0 -1
  289. package/src/errors/login-challenge-expired.js +0 -16
  290. package/src/errors/login-challenge-expired.js.map +0 -1
  291. package/src/errors/member-role-not-found.d.ts +0 -6
  292. package/src/errors/member-role-not-found.d.ts.map +0 -1
  293. package/src/errors/member-role-not-found.js +0 -13
  294. package/src/errors/member-role-not-found.js.map +0 -1
  295. package/src/errors/password-login-not-enabled.d.ts +0 -5
  296. package/src/errors/password-login-not-enabled.d.ts.map +0 -1
  297. package/src/errors/password-login-not-enabled.js +0 -16
  298. package/src/errors/password-login-not-enabled.js.map +0 -1
  299. package/src/errors/password-login-not-setup.d.ts +0 -5
  300. package/src/errors/password-login-not-setup.d.ts.map +0 -1
  301. package/src/errors/password-login-not-setup.js +0 -16
  302. package/src/errors/password-login-not-setup.js.map +0 -1
  303. package/src/errors/pbkdf2-error.d.ts +0 -7
  304. package/src/errors/pbkdf2-error.d.ts.map +0 -1
  305. package/src/errors/pbkdf2-error.js +0 -20
  306. package/src/errors/pbkdf2-error.js.map +0 -1
  307. package/src/errors/pending-email-verification.d.ts +0 -5
  308. package/src/errors/pending-email-verification.d.ts.map +0 -1
  309. package/src/errors/pending-email-verification.js +0 -13
  310. package/src/errors/pending-email-verification.js.map +0 -1
  311. package/src/errors/private-key-required.d.ts +0 -5
  312. package/src/errors/private-key-required.d.ts.map +0 -1
  313. package/src/errors/private-key-required.js +0 -13
  314. package/src/errors/private-key-required.js.map +0 -1
  315. package/src/errors/system-role-not-found.d.ts +0 -6
  316. package/src/errors/system-role-not-found.d.ts.map +0 -1
  317. package/src/errors/system-role-not-found.js +0 -13
  318. package/src/errors/system-role-not-found.js.map +0 -1
  319. package/src/errors/token-not-found.d.ts +0 -7
  320. package/src/errors/token-not-found.d.ts.map +0 -1
  321. package/src/errors/token-not-found.js +0 -19
  322. package/src/errors/token-not-found.js.map +0 -1
  323. package/src/errors/translatable-suite-handleable.d.ts +0 -10
  324. package/src/errors/translatable-suite-handleable.d.ts.map +0 -1
  325. package/src/errors/translatable-suite-handleable.js +0 -15
  326. package/src/errors/translatable-suite-handleable.js.map +0 -1
  327. package/src/errors/translatable-suite.d.ts +0 -13
  328. package/src/errors/translatable-suite.d.ts.map +0 -1
  329. package/src/errors/translatable-suite.js +0 -29
  330. package/src/errors/translatable-suite.js.map +0 -1
  331. package/src/errors/user-not-found.d.ts +0 -5
  332. package/src/errors/user-not-found.d.ts.map +0 -1
  333. package/src/errors/user-not-found.js +0 -13
  334. package/src/errors/user-not-found.js.map +0 -1
  335. package/src/errors/username-email-required.d.ts +0 -6
  336. package/src/errors/username-email-required.d.ts.map +0 -1
  337. package/src/errors/username-email-required.js +0 -16
  338. package/src/errors/username-email-required.js.map +0 -1
  339. package/src/errors/username-in-use.d.ts +0 -5
  340. package/src/errors/username-in-use.d.ts.map +0 -1
  341. package/src/errors/username-in-use.js +0 -13
  342. package/src/errors/username-in-use.js.map +0 -1
  343. package/src/i18n-setup.d.ts +0 -13
  344. package/src/i18n-setup.d.ts.map +0 -1
  345. package/src/i18n-setup.js +0 -116
  346. package/src/i18n-setup.js.map +0 -1
  347. package/src/index.d.ts.map +0 -1
  348. package/src/index.js +0 -15
  349. package/src/index.js.map +0 -1
  350. package/src/interfaces/backup-code-consts.d.ts +0 -16
  351. package/src/interfaces/backup-code-consts.d.ts.map +0 -1
  352. package/src/interfaces/backup-code-consts.js +0 -3
  353. package/src/interfaces/backup-code-consts.js.map +0 -1
  354. package/src/interfaces/backup-code.d.ts +0 -7
  355. package/src/interfaces/backup-code.d.ts.map +0 -1
  356. package/src/interfaces/backup-code.js +0 -3
  357. package/src/interfaces/backup-code.js.map +0 -1
  358. package/src/interfaces/bases/email-token.d.ts +0 -33
  359. package/src/interfaces/bases/email-token.d.ts.map +0 -1
  360. package/src/interfaces/bases/email-token.js +0 -3
  361. package/src/interfaces/bases/email-token.js.map +0 -1
  362. package/src/interfaces/bases/index.d.ts.map +0 -1
  363. package/src/interfaces/bases/index.js +0 -11
  364. package/src/interfaces/bases/index.js.map +0 -1
  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.map +0 -1
  377. package/src/interfaces/bases/used-direct-login-token.js +0 -3
  378. package/src/interfaces/bases/used-direct-login-token.js.map +0 -1
  379. package/src/interfaces/bases/user-role.d.ts +0 -16
  380. package/src/interfaces/bases/user-role.d.ts.map +0 -1
  381. package/src/interfaces/bases/user-role.js +0 -3
  382. package/src/interfaces/bases/user-role.js.map +0 -1
  383. package/src/interfaces/bases/user.d.ts +0 -79
  384. package/src/interfaces/bases/user.d.ts.map +0 -1
  385. package/src/interfaces/bases/user.js +0 -3
  386. package/src/interfaces/bases/user.js.map +0 -1
  387. package/src/interfaces/combined-role-privileges.d.ts +0 -7
  388. package/src/interfaces/combined-role-privileges.d.ts.map +0 -1
  389. package/src/interfaces/combined-role-privileges.js +0 -3
  390. package/src/interfaces/combined-role-privileges.js.map +0 -1
  391. package/src/interfaces/constants.d.ts +0 -56
  392. package/src/interfaces/constants.d.ts.map +0 -1
  393. package/src/interfaces/constants.js +0 -3
  394. package/src/interfaces/constants.js.map +0 -1
  395. package/src/interfaces/core-consts.d.ts +0 -130
  396. package/src/interfaces/core-consts.d.ts.map +0 -1
  397. package/src/interfaces/core-consts.js +0 -3
  398. package/src/interfaces/core-consts.js.map +0 -1
  399. package/src/interfaces/deep-partial.d.ts +0 -4
  400. package/src/interfaces/deep-partial.d.ts.map +0 -1
  401. package/src/interfaces/deep-partial.js +0 -3
  402. package/src/interfaces/deep-partial.js.map +0 -1
  403. package/src/interfaces/dto/email-token.d.ts.map +0 -1
  404. package/src/interfaces/dto/email-token.js +0 -3
  405. package/src/interfaces/dto/email-token.js.map +0 -1
  406. package/src/interfaces/dto/index.d.ts.map +0 -1
  407. package/src/interfaces/dto/index.js +0 -12
  408. package/src/interfaces/dto/index.js.map +0 -1
  409. package/src/interfaces/dto/mnemonic.d.ts.map +0 -1
  410. package/src/interfaces/dto/mnemonic.js +0 -3
  411. package/src/interfaces/dto/mnemonic.js.map +0 -1
  412. package/src/interfaces/dto/request-user.d.ts +0 -17
  413. package/src/interfaces/dto/request-user.d.ts.map +0 -1
  414. package/src/interfaces/dto/request-user.js +0 -3
  415. package/src/interfaces/dto/request-user.js.map +0 -1
  416. package/src/interfaces/dto/role.d.ts.map +0 -1
  417. package/src/interfaces/dto/role.js +0 -3
  418. package/src/interfaces/dto/role.js.map +0 -1
  419. package/src/interfaces/dto/token-role.d.ts.map +0 -1
  420. package/src/interfaces/dto/token-role.js +0 -3
  421. package/src/interfaces/dto/token-role.js.map +0 -1
  422. package/src/interfaces/dto/user-role.d.ts.map +0 -1
  423. package/src/interfaces/dto/user-role.js +0 -3
  424. package/src/interfaces/dto/user-role.js.map +0 -1
  425. package/src/interfaces/dto/user-settings.d.ts.map +0 -1
  426. package/src/interfaces/dto/user-settings.js +0 -3
  427. package/src/interfaces/dto/user-settings.js.map +0 -1
  428. package/src/interfaces/dto/user.d.ts.map +0 -1
  429. package/src/interfaces/dto/user.js +0 -3
  430. package/src/interfaces/dto/user.js.map +0 -1
  431. package/src/interfaces/failable-result.d.ts +0 -7
  432. package/src/interfaces/failable-result.d.ts.map +0 -1
  433. package/src/interfaces/failable-result.js +0 -3
  434. package/src/interfaces/failable-result.js.map +0 -1
  435. package/src/interfaces/frontend-objects/email-token.d.ts +0 -4
  436. package/src/interfaces/frontend-objects/email-token.d.ts.map +0 -1
  437. package/src/interfaces/frontend-objects/email-token.js +0 -3
  438. package/src/interfaces/frontend-objects/email-token.js.map +0 -1
  439. package/src/interfaces/frontend-objects/index.d.ts.map +0 -1
  440. package/src/interfaces/frontend-objects/index.js +0 -9
  441. package/src/interfaces/frontend-objects/index.js.map +0 -1
  442. package/src/interfaces/frontend-objects/request-user.d.ts +0 -17
  443. package/src/interfaces/frontend-objects/request-user.d.ts.map +0 -1
  444. package/src/interfaces/frontend-objects/request-user.js +0 -3
  445. package/src/interfaces/frontend-objects/request-user.js.map +0 -1
  446. package/src/interfaces/frontend-objects/role.d.ts.map +0 -1
  447. package/src/interfaces/frontend-objects/role.js +0 -3
  448. package/src/interfaces/frontend-objects/role.js.map +0 -1
  449. package/src/interfaces/frontend-objects/user-role.d.ts.map +0 -1
  450. package/src/interfaces/frontend-objects/user-role.js +0 -3
  451. package/src/interfaces/frontend-objects/user-role.js.map +0 -1
  452. package/src/interfaces/frontend-objects/user.d.ts +0 -4
  453. package/src/interfaces/frontend-objects/user.d.ts.map +0 -1
  454. package/src/interfaces/frontend-objects/user.js +0 -3
  455. package/src/interfaces/frontend-objects/user.js.map +0 -1
  456. package/src/interfaces/has-creation.d.ts +0 -7
  457. package/src/interfaces/has-creation.d.ts.map +0 -1
  458. package/src/interfaces/has-creation.js +0 -3
  459. package/src/interfaces/has-creation.js.map +0 -1
  460. package/src/interfaces/has-creator.d.ts +0 -7
  461. package/src/interfaces/has-creator.d.ts.map +0 -1
  462. package/src/interfaces/has-creator.js +0 -3
  463. package/src/interfaces/has-creator.js.map +0 -1
  464. package/src/interfaces/has-id.d.ts +0 -4
  465. package/src/interfaces/has-id.d.ts.map +0 -1
  466. package/src/interfaces/has-id.js +0 -3
  467. package/src/interfaces/has-id.js.map +0 -1
  468. package/src/interfaces/has-soft-delete.d.ts +0 -7
  469. package/src/interfaces/has-soft-delete.d.ts.map +0 -1
  470. package/src/interfaces/has-soft-delete.js +0 -3
  471. package/src/interfaces/has-soft-delete.js.map +0 -1
  472. package/src/interfaces/has-soft-deleter.d.ts +0 -7
  473. package/src/interfaces/has-soft-deleter.d.ts.map +0 -1
  474. package/src/interfaces/has-soft-deleter.js +0 -3
  475. package/src/interfaces/has-soft-deleter.js.map +0 -1
  476. package/src/interfaces/has-timestamp-owners.d.ts +0 -5
  477. package/src/interfaces/has-timestamp-owners.d.ts.map +0 -1
  478. package/src/interfaces/has-timestamp-owners.js +0 -3
  479. package/src/interfaces/has-timestamp-owners.js.map +0 -1
  480. package/src/interfaces/has-timestamps.d.ts +0 -6
  481. package/src/interfaces/has-timestamps.d.ts.map +0 -1
  482. package/src/interfaces/has-timestamps.js +0 -3
  483. package/src/interfaces/has-timestamps.js.map +0 -1
  484. package/src/interfaces/has-updater.d.ts +0 -7
  485. package/src/interfaces/has-updater.d.ts.map +0 -1
  486. package/src/interfaces/has-updater.js +0 -3
  487. package/src/interfaces/has-updater.js.map +0 -1
  488. package/src/interfaces/has-updates.d.ts +0 -4
  489. package/src/interfaces/has-updates.d.ts.map +0 -1
  490. package/src/interfaces/has-updates.js +0 -3
  491. package/src/interfaces/has-updates.js.map +0 -1
  492. package/src/interfaces/index.d.ts.map +0 -1
  493. package/src/interfaces/index.js +0 -27
  494. package/src/interfaces/index.js.map +0 -1
  495. package/src/interfaces/models/email-token.d.ts +0 -6
  496. package/src/interfaces/models/email-token.d.ts.map +0 -1
  497. package/src/interfaces/models/email-token.js +0 -3
  498. package/src/interfaces/models/email-token.js.map +0 -1
  499. package/src/interfaces/models/index.d.ts +0 -9
  500. package/src/interfaces/models/index.d.ts.map +0 -1
  501. package/src/interfaces/models/index.js +0 -12
  502. package/src/interfaces/models/index.js.map +0 -1
  503. package/src/interfaces/models/mnemonic.d.ts +0 -6
  504. package/src/interfaces/models/mnemonic.d.ts.map +0 -1
  505. package/src/interfaces/models/mnemonic.js +0 -3
  506. package/src/interfaces/models/mnemonic.js.map +0 -1
  507. package/src/interfaces/models/role.d.ts +0 -6
  508. package/src/interfaces/models/role.d.ts.map +0 -1
  509. package/src/interfaces/models/role.js +0 -3
  510. package/src/interfaces/models/role.js.map +0 -1
  511. package/src/interfaces/models/token-role.d.ts +0 -11
  512. package/src/interfaces/models/token-role.d.ts.map +0 -1
  513. package/src/interfaces/models/token-role.js +0 -3
  514. package/src/interfaces/models/token-role.js.map +0 -1
  515. package/src/interfaces/models/used-direct-login-token.d.ts +0 -11
  516. package/src/interfaces/models/used-direct-login-token.d.ts.map +0 -1
  517. package/src/interfaces/models/used-direct-login-token.js +0 -3
  518. package/src/interfaces/models/used-direct-login-token.js.map +0 -1
  519. package/src/interfaces/models/user-role.d.ts +0 -11
  520. package/src/interfaces/models/user-role.d.ts.map +0 -1
  521. package/src/interfaces/models/user-role.js +0 -3
  522. package/src/interfaces/models/user-role.js.map +0 -1
  523. package/src/interfaces/models/user.d.ts +0 -12
  524. package/src/interfaces/models/user.d.ts.map +0 -1
  525. package/src/interfaces/models/user.js +0 -3
  526. package/src/interfaces/models/user.js.map +0 -1
  527. package/src/interfaces/success-message.d.ts +0 -5
  528. package/src/interfaces/success-message.d.ts.map +0 -1
  529. package/src/interfaces/success-message.js +0 -3
  530. package/src/interfaces/success-message.js.map +0 -1
  531. package/src/interfaces/token-user.d.ts.map +0 -1
  532. package/src/interfaces/token-user.js +0 -3
  533. package/src/interfaces/token-user.js.map +0 -1
  534. package/src/interfaces/user-settings.d.ts.map +0 -1
  535. package/src/interfaces/user-settings.js +0 -3
  536. package/src/interfaces/user-settings.js.map +0 -1
  537. package/src/lib/flags.d.ts +0 -10
  538. package/src/lib/flags.d.ts.map +0 -1
  539. package/src/lib/flags.js +0 -288
  540. package/src/lib/flags.js.map +0 -1
  541. package/src/lib/formatters.d.ts +0 -16
  542. package/src/lib/formatters.d.ts.map +0 -1
  543. package/src/lib/formatters.js +0 -29
  544. package/src/lib/formatters.js.map +0 -1
  545. package/src/lib/hydrate-dehydrate.d.ts +0 -4
  546. package/src/lib/hydrate-dehydrate.d.ts.map +0 -1
  547. package/src/lib/hydrate-dehydrate.js +0 -27
  548. package/src/lib/hydrate-dehydrate.js.map +0 -1
  549. package/src/lib/index.d.ts.map +0 -1
  550. package/src/lib/index.js +0 -12
  551. package/src/lib/index.js.map +0 -1
  552. package/src/lib/validators-with-constants.d.ts +0 -73
  553. package/src/lib/validators-with-constants.d.ts.map +0 -1
  554. package/src/lib/validators-with-constants.js +0 -64
  555. package/src/lib/validators-with-constants.js.map +0 -1
  556. package/src/lib/validators.d.ts +0 -37
  557. package/src/lib/validators.d.ts.map +0 -1
  558. package/src/lib/validators.js +0 -74
  559. package/src/lib/validators.js.map +0 -1
  560. package/src/local-storage-manager.d.ts +0 -22
  561. package/src/local-storage-manager.d.ts.map +0 -1
  562. package/src/local-storage-manager.js +0 -74
  563. package/src/local-storage-manager.js.map +0 -1
  564. package/src/strings/de.d.ts +0 -3
  565. package/src/strings/de.d.ts.map +0 -1
  566. package/src/strings/de.js +0 -486
  567. package/src/strings/de.js.map +0 -1
  568. package/src/strings/en-GB.d.ts +0 -3
  569. package/src/strings/en-GB.d.ts.map +0 -1
  570. package/src/strings/en-GB.js +0 -486
  571. package/src/strings/en-GB.js.map +0 -1
  572. package/src/strings/en-US.d.ts +0 -3
  573. package/src/strings/en-US.d.ts.map +0 -1
  574. package/src/strings/en-US.js +0 -486
  575. package/src/strings/en-US.js.map +0 -1
  576. package/src/strings/es.d.ts +0 -3
  577. package/src/strings/es.d.ts.map +0 -1
  578. package/src/strings/es.js +0 -486
  579. package/src/strings/es.js.map +0 -1
  580. package/src/strings/fr.d.ts +0 -3
  581. package/src/strings/fr.d.ts.map +0 -1
  582. package/src/strings/fr.js +0 -486
  583. package/src/strings/fr.js.map +0 -1
  584. package/src/strings/ja.d.ts +0 -3
  585. package/src/strings/ja.d.ts.map +0 -1
  586. package/src/strings/ja.js +0 -486
  587. package/src/strings/ja.js.map +0 -1
  588. package/src/strings/uk.d.ts +0 -3
  589. package/src/strings/uk.d.ts.map +0 -1
  590. package/src/strings/uk.js +0 -486
  591. package/src/strings/uk.js.map +0 -1
  592. package/src/strings/zh-CN.d.ts +0 -3
  593. package/src/strings/zh-CN.d.ts.map +0 -1
  594. package/src/strings/zh-CN.js +0 -486
  595. package/src/strings/zh-CN.js.map +0 -1
@@ -0,0 +1,220 @@
1
+ import { ObjectIdProvider } from '@digitaldefiance/ecies-lib';
2
+ import { Role } from './enumerations/role';
3
+ import { IBackupCodeConstants, ICoreConstants } from './interfaces';
4
+ import { IConstants } from './interfaces/constants';
5
+
6
+ export const BACKUP_CODES: IBackupCodeConstants = Object.freeze({
7
+ /**
8
+ * How many backup codes to generate for users
9
+ */
10
+ Count: 10 as const,
11
+ NormalizedHexRegex: /^[a-z0-9]{32}$/, // exactly 32 lowercase alphanumeric chars
12
+ DisplayRegex: /^([a-z0-9]{4}-){7}[a-z0-9]{4}$/, // xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxx
13
+ } as const);
14
+
15
+ export const CORE: ICoreConstants = Object.freeze({
16
+ /**
17
+ * The ID provider to use for generating and parsing IDs
18
+ */
19
+ idProvider: new ObjectIdProvider(),
20
+ /**
21
+ * Default duration in seconds for which a mnemonic is kept in memory
22
+ */
23
+ DefaultExpireMemoryMnemonicSeconds: 300 as const, // 5 minutes
24
+ /**
25
+ * Default duration in seconds for which a wallet is kept in memory
26
+ */
27
+ DefaultExpireMemoryWalletSeconds: 300 as const, // 5 minutes
28
+
29
+ /**
30
+ * Duration in milliseconds for which a login challenge is valid.
31
+ */
32
+ LoginChallengeExpiration: 60000 as const, // 60 seconds
33
+
34
+ /**
35
+ * The expected length of a direct login challenge in bytes
36
+ */
37
+ DirectLoginChallengeLength: 104 as const,
38
+
39
+ /**
40
+ * Backup code system configuration
41
+ */
42
+ BACKUP_CODES: BACKUP_CODES,
43
+
44
+ /**
45
+ * Duration in milliseconds for which an email token is valid.
46
+ */
47
+ EmailTokenExpiration: 86400000 as const, // 24 * 60 * 60 * 1000
48
+ /**
49
+ * Length in bytes of the email token generated (is represented as a hex string of twice as many)
50
+ */
51
+ EmailTokenLength: 32 as const,
52
+ /**
53
+ * Number of rounds for bcrypt hashing. Higher values increase security but also consume more CPU resources.
54
+ */
55
+ BcryptRounds: 10 as const,
56
+ /**
57
+ * The username of the administrator user.
58
+ */
59
+ AdministratorUser: 'admin' as const,
60
+ /**
61
+ * The name of the administrator role.
62
+ */
63
+ AdministratorRole: Role.Admin as const,
64
+ /**
65
+ * The name of the member role.
66
+ */
67
+ MemberRole: Role.Member as const,
68
+ /**
69
+ * The username of the test user.
70
+ */
71
+ MemberUser: 'test' as const,
72
+ /**
73
+ * The name of the system role.
74
+ */
75
+ SystemRole: Role.System as const,
76
+ /**
77
+ * The username of the system user.
78
+ */
79
+ SystemUser: 'system' as const,
80
+ /**
81
+ * Minimum username length
82
+ */
83
+ UsernameMinLength: 3 as const,
84
+ /**
85
+ * Maximum username length
86
+ */
87
+ UsernameMaxLength: 30 as const,
88
+ /**
89
+ * The regular expression for valid usernames.
90
+ */
91
+ UsernameRegex: /^[A-Za-z0-9]{3,30}$/,
92
+ /**
93
+ * Minimum password length
94
+ */
95
+ PasswordMinLength: 8 as const,
96
+ /**
97
+ * The regular expression for valid passwords.
98
+ */
99
+ PasswordRegex:
100
+ /^(?=.*[A-Za-z])(?=.*\d)(?=.*[!@#$%^&*()_+\-=[\]{};':"\\|,.<>/?])[A-Za-z\d!@#$%^&*()_+\-=[\]{};':"\\|,.<>/?]{8,}$/,
101
+ /**
102
+ * The regular expression for valid JWT tokens.
103
+ */
104
+ JwtSecretRegex: /^[0-9a-f]{64}$/i,
105
+ /**
106
+ * The regular expression for valid mnemonic phrases.
107
+ * BIP39 - supports 12, 15, 18, 21, or 24 word mnemonics
108
+ */
109
+ MnemonicRegex:
110
+ /^(?:\w+\s){11}\w+$|^(?:\w+\s){14}\w+$|^(?:\w+\s){17}\w+$|^(?:\w+\s){20}\w+$|^(?:\w+\s){23}\w+$/i,
111
+ /**
112
+ * Matches a 64-character hexadecimal string (SHA-256).
113
+ */
114
+ MnemonicHmacRegex: /^[a-f0-9]{64}$/,
115
+ /**
116
+ * The regular expression for valid encryption keys.
117
+ */
118
+ MnemonicEncryptionKeyRegex: /^[a-f0-9]{64}$/,
119
+ /**
120
+ * The amount of time in milliseconds after which an email token can be resent.
121
+ */
122
+ EmailTokenResendInterval: 300000 as const, // 5 * 60 * 1000 = 5 minutes
123
+ /**
124
+ * The interval in minutes after which an email token can be resent.
125
+ */
126
+ EmailTokenResendIntervalMinutes: 5 as const,
127
+ /**
128
+ * The site name. Overridden by specific site constants.
129
+ */
130
+ Site: 'New Site' as const,
131
+ /**
132
+ * The site tagline. Overridden by specific site constants.
133
+ */
134
+ SiteTagline: 'New Site Tagline' as const,
135
+ /**
136
+ * The site description. Overridden by specific site constants.
137
+ */
138
+ SiteDescription: 'Description of the new site' as const,
139
+ /**
140
+ * Email domain of usernames on the site. Overridden by specific site constants.
141
+ */
142
+ SiteEmailDomain: 'localhost' as const,
143
+ /**
144
+ * The hostname of the site. Overridden by specific site constants.
145
+ */
146
+ SiteHostname: 'localhost' as const,
147
+ } as const);
148
+
149
+ export const createConstants: (
150
+ siteDomain: string,
151
+ siteHostname: string,
152
+ overrides?: Partial<IConstants>,
153
+ ) => IConstants = (siteDomain: string, siteHostname: string, overrides?: Partial<IConstants>) => {
154
+ return Object.freeze({
155
+ ...CORE,
156
+ /**
157
+ * The email of the administrator user/admin contact
158
+ */
159
+ AdministratorEmail: `admin@${siteDomain}` as const,
160
+ /**
161
+ * The email of the test user.
162
+ */
163
+ MemberEmail: `test@${siteDomain}` as const,
164
+ /**
165
+ * The email of the system user.
166
+ */
167
+ SystemEmail: `system@${siteDomain}` as const,
168
+ /**
169
+ * The email domain of usernames on the site.
170
+ */
171
+ SiteEmailDomain: siteDomain,
172
+ /**
173
+ * The hostname of the site.
174
+ */
175
+ SiteHostname: siteHostname,
176
+ /**
177
+ * The color used to indicate success states.
178
+ */
179
+ success_color: '#4CAF50',
180
+ /**
181
+ * The color used to indicate failure states.
182
+ */
183
+ failure_color: '#F44336',
184
+ /**
185
+ * The color used to indicate warning states.
186
+ */
187
+ warning_color: '#FF9800',
188
+ /**
189
+ * The light variant of the primary text color.
190
+ */
191
+ primary_text_light: '#ffffff',
192
+ /**
193
+ * The dark variant of the primary text color.
194
+ */
195
+ primary_text_dark: '#000000',
196
+ /**
197
+ * The light variant of the secondary text color.
198
+ */
199
+ secondary_text_light: '#ffffff',
200
+ /**
201
+ * The dark variant of the secondary text color.
202
+ */
203
+ secondary_text_dark: '#000000',
204
+ /**
205
+ * The primary brand color (used for primary theme color)
206
+ */
207
+ logo_primary_color: '#050505ff',
208
+ /**
209
+ * The primary text color (used for logo and text)
210
+ */
211
+ logo_primary_text: '#212121',
212
+ /**
213
+ * The secondary text color (used for logo and accents)
214
+ */
215
+ logo_secondary_text: '#757575',
216
+ ...(overrides ?? {}),
217
+ } as const);
218
+ };
219
+
220
+ export const Constants = createConstants('localhost', 'localhost');
@@ -1,9 +1,13 @@
1
1
  /**
2
2
  * Core error class exports for suite-core-lib
3
3
  */
4
+
5
+ // Base error classes
4
6
  export { TranslatableSuiteError } from '../errors/translatable-suite';
5
7
  export { TranslatableSuiteHandleableError } from '../errors/translatable-suite-handleable';
6
8
  export { CoreTypedHandleableError } from '../errors/core-typed-handleable';
9
+
10
+ // Common error classes
7
11
  export { UserNotFoundError } from '../errors/user-not-found';
8
12
  export { InvalidCredentialsError } from '../errors/invalid-credentials';
9
13
  export { InvalidEmailError } from '../errors/invalid-email';
@@ -11,4 +15,3 @@ export { InvalidUsernameError } from '../errors/invalid-username';
11
15
  export { EmailInUseError } from '../errors/email-in-use';
12
16
  export { UsernameInUseError } from '../errors/username-in-use';
13
17
  export { GenericValidationError } from '../errors/generic-validation';
14
- //# sourceMappingURL=errors.d.ts.map
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Core module - central exports for common types and errors
3
3
  */
4
+
4
5
  export * from './types';
5
6
  export * from './errors';
6
7
  export * from './result';
7
- //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Result type pattern for better error handling
3
+ * Provides type-safe success/failure handling without exceptions
4
+ */
5
+
6
+ export type Result<T, E = Error> =
7
+ | { success: true; data: T }
8
+ | { success: false; error: E };
9
+
10
+ /**
11
+ * Create a successful result
12
+ */
13
+ export function success<T>(data: T): Result<T, never> {
14
+ return { success: true, data };
15
+ }
16
+
17
+ /**
18
+ * Create a failed result
19
+ */
20
+ export function failure<E>(error: E): Result<never, E> {
21
+ return { success: false, error };
22
+ }
23
+
24
+ /**
25
+ * Check if result is successful
26
+ */
27
+ export function isSuccess<T, E>(result: Result<T, E>): result is { success: true; data: T } {
28
+ return result.success;
29
+ }
30
+
31
+ /**
32
+ * Check if result is a failure
33
+ */
34
+ export function isFailure<T, E>(result: Result<T, E>): result is { success: false; error: E } {
35
+ return !result.success;
36
+ }
@@ -1,8 +1,12 @@
1
1
  /**
2
2
  * Core type exports for suite-core-lib
3
3
  */
4
+
5
+ // Common utility types
4
6
  export type { IFailableResult } from '../interfaces/failable-result';
5
7
  export type { DeepPartial } from '../interfaces/deep-partial';
8
+
9
+ // Base interface types
6
10
  export type { IHasId } from '../interfaces/has-id';
7
11
  export type { IHasTimestamps } from '../interfaces/has-timestamps';
8
12
  export type { IHasCreation } from '../interfaces/has-creation';
@@ -12,6 +16,7 @@ export type { IHasCreator } from '../interfaces/has-creator';
12
16
  export type { IHasUpdater } from '../interfaces/has-updater';
13
17
  export type { IHasSoftDeleter } from '../interfaces/has-soft-deleter';
14
18
  export type { IHasTimestampOwners } from '../interfaces/has-timestamp-owners';
19
+
20
+ // User and auth types
15
21
  export type { ITokenUser } from '../interfaces/token-user';
16
22
  export type { BackupCodeString } from '../backup-code-string';
17
- //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1,110 @@
1
+ import { createConstants } from './constants';
2
+ import { IConstants } from './interfaces/constants';
3
+ import { DeepPartial } from './interfaces/deep-partial';
4
+
5
+ export type ConfigurationKey = string | symbol;
6
+
7
+ const DEFAULT_CONFIGURATION_KEY: ConfigurationKey = Symbol.for(
8
+ 'digitaldefiance.suite-core.defaults.default'
9
+ );
10
+
11
+ const registry: Map<ConfigurationKey, IConstants> = new Map();
12
+
13
+ // Define cloneable types to improve type safety
14
+ type Cloneable =
15
+ | string
16
+ | number
17
+ | boolean
18
+ | null
19
+ | undefined
20
+ | Date
21
+ | RegExp
22
+ | Cloneable[]
23
+ | { [key: string]: Cloneable };
24
+
25
+ function deepClone<T extends Cloneable>(input: T): T {
26
+ if (input === null || typeof input !== 'object') {
27
+ return input;
28
+ }
29
+
30
+ if (Array.isArray(input)) {
31
+ return input.map((item) => deepClone(item)) as T;
32
+ }
33
+
34
+ if (input instanceof RegExp) {
35
+ return new RegExp(input.source, input.flags) as T;
36
+ }
37
+
38
+ if (input instanceof Date) {
39
+ return new Date(input.getTime()) as T;
40
+ }
41
+
42
+ const result: Record<string, Cloneable> = {};
43
+ for (const [key, value] of Object.entries(input)) {
44
+ result[key] = deepClone(value as Cloneable);
45
+ }
46
+ return result as T;
47
+ }
48
+
49
+ function deepFreeze<T>(obj: T): T {
50
+ Object.freeze(obj);
51
+ if (obj && typeof obj === 'object') {
52
+ Object.getOwnPropertyNames(obj).forEach((prop) => {
53
+ const value = (obj as Record<string, unknown>)[prop];
54
+ if (value && typeof value === 'object' && !Object.isFrozen(value)) {
55
+ deepFreeze(value);
56
+ }
57
+ });
58
+ }
59
+ return obj;
60
+ }
61
+
62
+ function applyOverrides<T extends object>(
63
+ target: T,
64
+ overrides?: DeepPartial<T>
65
+ ): T {
66
+ if (!overrides) return target;
67
+ const result = deepClone(target as Cloneable) as unknown as T;
68
+ for (const [key, value] of Object.entries(overrides)) {
69
+ if (value !== undefined && key in result) {
70
+ (result as Record<string, unknown>)[key] = value;
71
+ }
72
+ }
73
+ return result;
74
+ }
75
+
76
+ export function createSuiteCoreRuntimeConfiguration(
77
+ siteDomain: string = 'localhost',
78
+ siteHostname: string = 'localhost',
79
+ overrides?: DeepPartial<IConstants>
80
+ ): IConstants {
81
+ const config = applyOverrides(
82
+ createConstants(siteDomain, siteHostname),
83
+ overrides
84
+ );
85
+ return deepFreeze(config);
86
+ }
87
+
88
+ export function registerSuiteCoreRuntimeConfiguration(
89
+ key: ConfigurationKey = DEFAULT_CONFIGURATION_KEY,
90
+ siteDomain: string = 'localhost',
91
+ siteHostname: string = 'localhost',
92
+ overrides?: DeepPartial<IConstants>
93
+ ): IConstants {
94
+ const config = createSuiteCoreRuntimeConfiguration(
95
+ siteDomain,
96
+ siteHostname,
97
+ overrides
98
+ );
99
+ registry.set(key, config);
100
+ return config;
101
+ }
102
+
103
+ export function getSuiteCoreRuntimeConfiguration(
104
+ key: ConfigurationKey = DEFAULT_CONFIGURATION_KEY
105
+ ): IConstants {
106
+ if (!registry.has(key)) {
107
+ registry.set(key, createSuiteCoreRuntimeConfiguration());
108
+ }
109
+ return registry.get(key)!;
110
+ }
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Values for the status of an account.
3
+ */
4
+ export enum AccountStatus {
5
+ /**
6
+ * The user has not verified their email address
7
+ */
8
+ PendingEmailVerification = 'PendingEmailVerification',
9
+ /**
10
+ * The user has verified their email address
11
+ */
12
+ Active = 'Active',
13
+ /**
14
+ * The user has been locked by an admin
15
+ */
16
+ AdminLock = 'AdminLock',
17
+ }
@@ -0,0 +1,24 @@
1
+ export enum EmailTokenType {
2
+ /**
3
+ * A token for verifying an account
4
+ */
5
+ AccountVerification = 'AccountVerification',
6
+ /**
7
+ * A token for resetting a password
8
+ */
9
+ PasswordReset = 'PasswordReset',
10
+ /**
11
+ * Requests a login link
12
+ */
13
+ LoginRequest = 'LoginRequest',
14
+ /**
15
+ * Request encrypted private key blob for a user
16
+ * (requires username/email)
17
+ */
18
+ PrivateKeyRequest = 'PrivateKeyRequest',
19
+ /**
20
+ * Request encrypted mnemonic blob for a user
21
+ * (requires private key)
22
+ */
23
+ MnemonicRecoveryRequest = 'MnemonicRecoveryRequest',
24
+ }
@@ -0,0 +1,13 @@
1
+ export enum FecErrorType {
2
+ DataRequired = 'DataRequired',
3
+ InputDataMustBeUint8Array = 'InputDataMustBeUint8Array',
4
+ InvalidShardCounts = 'InvalidShardCounts',
5
+ InvalidShardsAvailableArray = 'InvalidShardsAvailableArray',
6
+ ParityDataCountMustBePositive = 'ParityDataCountMustBePositive',
7
+ ParityDataRequired = 'ParityDataRequired',
8
+ InvalidDataLength = 'InvalidDataLength',
9
+ ShardSizeExceedsMaximum = 'ShardSizeExceedsMaximum',
10
+ NotEnoughShardsAvailable = 'NotEnoughShardsAvailable',
11
+ FecEncodingFailed = 'FecEncodingFailed',
12
+ FecDecodingFailed = 'FecDecodingFailed',
13
+ }
@@ -3,5 +3,4 @@ export * from './email-token-type';
3
3
  export * from './fec-error-type';
4
4
  export * from './role';
5
5
  export * from './suite-core-string-key';
6
- export * from './pbkdf2-error-type';
7
- //# sourceMappingURL=index.d.ts.map
6
+ export * from './pbkdf2-error-type';
@@ -0,0 +1,4 @@
1
+ export enum Pbkdf2ErrorType {
2
+ InvalidSaltLength = 'InvalidSaltLength',
3
+ InvalidHashLength = 'InvalidHashLength',
4
+ }
@@ -0,0 +1,5 @@
1
+ export enum Role {
2
+ Admin = 'Admin',
3
+ Member = 'Member',
4
+ System = 'System',
5
+ }