@digitaldefiance/suite-core-lib 3.6.48 → 3.6.50

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 (553) hide show
  1. package/package.json +4 -3
  2. package/src/backup-code-string.d.ts +29 -0
  3. package/src/backup-code-string.d.ts.map +1 -0
  4. package/src/backup-code-string.js +85 -0
  5. package/src/backup-code-string.js.map +1 -0
  6. package/src/builders/{index.ts → index.d.ts} +1 -1
  7. package/src/builders/index.d.ts.map +1 -0
  8. package/src/builders/index.js +9 -0
  9. package/src/builders/index.js.map +1 -0
  10. package/src/builders/role-builder.d.ts +20 -0
  11. package/src/builders/role-builder.d.ts.map +1 -0
  12. package/src/builders/role-builder.js +57 -0
  13. package/src/builders/role-builder.js.map +1 -0
  14. package/src/builders/user-builder.d.ts +24 -0
  15. package/src/builders/user-builder.d.ts.map +1 -0
  16. package/src/builders/user-builder.js +63 -0
  17. package/src/builders/user-builder.js.map +1 -0
  18. package/src/constants.d.ts +7 -0
  19. package/src/constants.d.ts.map +1 -0
  20. package/src/constants.js +214 -0
  21. package/src/constants.js.map +1 -0
  22. package/src/core/{errors.ts → errors.d.ts} +1 -4
  23. package/src/core/errors.d.ts.map +1 -0
  24. package/src/core/errors.js +29 -0
  25. package/src/core/errors.js.map +1 -0
  26. package/src/core/{index.ts → index.d.ts} +1 -1
  27. package/src/core/index.d.ts.map +1 -0
  28. package/src/core/index.js +10 -0
  29. package/src/core/index.js.map +1 -0
  30. package/src/core/result.d.ts +34 -0
  31. package/src/core/result.d.ts.map +1 -0
  32. package/src/core/result.js +35 -0
  33. package/src/core/result.js.map +1 -0
  34. package/src/core/{types.ts → types.d.ts} +1 -6
  35. package/src/core/types.d.ts.map +1 -0
  36. package/src/core/types.js +6 -0
  37. package/src/core/types.js.map +1 -0
  38. package/src/defaults.d.ts +7 -0
  39. package/src/defaults.d.ts.map +1 -0
  40. package/src/defaults.js +70 -0
  41. package/src/defaults.js.map +1 -0
  42. package/src/enumerations/account-status.d.ts +18 -0
  43. package/src/enumerations/account-status.d.ts.map +1 -0
  44. package/src/enumerations/account-status.js +22 -0
  45. package/src/enumerations/account-status.js.map +1 -0
  46. package/src/enumerations/email-token-type.d.ts +28 -0
  47. package/src/enumerations/email-token-type.d.ts.map +1 -0
  48. package/src/enumerations/email-token-type.js +32 -0
  49. package/src/enumerations/email-token-type.js.map +1 -0
  50. package/src/enumerations/fec-error-type.d.ts +17 -0
  51. package/src/enumerations/fec-error-type.d.ts.map +1 -0
  52. package/src/enumerations/fec-error-type.js +21 -0
  53. package/src/enumerations/fec-error-type.js.map +1 -0
  54. package/src/enumerations/{index.ts → index.d.ts} +1 -0
  55. package/src/enumerations/index.d.ts.map +1 -0
  56. package/src/enumerations/index.js +13 -0
  57. package/src/enumerations/index.js.map +1 -0
  58. package/src/enumerations/pbkdf2-error-type.d.ts +8 -0
  59. package/src/enumerations/pbkdf2-error-type.d.ts.map +1 -0
  60. package/src/enumerations/pbkdf2-error-type.js +12 -0
  61. package/src/enumerations/pbkdf2-error-type.js.map +1 -0
  62. package/src/enumerations/role.d.ts +9 -0
  63. package/src/enumerations/role.d.ts.map +1 -0
  64. package/src/enumerations/role.js +13 -0
  65. package/src/enumerations/role.js.map +1 -0
  66. package/src/enumerations/suite-core-string-key.d.ts +488 -0
  67. package/src/enumerations/suite-core-string-key.d.ts.map +1 -0
  68. package/src/enumerations/suite-core-string-key.js +499 -0
  69. package/src/enumerations/suite-core-string-key.js.map +1 -0
  70. package/src/errors/account-locked.d.ts +5 -0
  71. package/src/errors/account-locked.d.ts.map +1 -0
  72. package/src/errors/account-locked.js +16 -0
  73. package/src/errors/account-locked.js.map +1 -0
  74. package/src/errors/account-status.d.ts +10 -0
  75. package/src/errors/account-status.d.ts.map +1 -0
  76. package/src/errors/account-status.js +36 -0
  77. package/src/errors/account-status.js.map +1 -0
  78. package/src/errors/admin-role-not-found.d.ts +9 -0
  79. package/src/errors/admin-role-not-found.d.ts.map +1 -0
  80. package/src/errors/admin-role-not-found.js +15 -0
  81. package/src/errors/admin-role-not-found.js.map +1 -0
  82. package/src/errors/core-typed-handleable.d.ts +15 -0
  83. package/src/errors/core-typed-handleable.d.ts.map +1 -0
  84. package/src/errors/core-typed-handleable.js +54 -0
  85. package/src/errors/core-typed-handleable.js.map +1 -0
  86. package/src/errors/direct-challenge-not-enabled.d.ts +8 -0
  87. package/src/errors/direct-challenge-not-enabled.d.ts.map +1 -0
  88. package/src/errors/direct-challenge-not-enabled.js +19 -0
  89. package/src/errors/direct-challenge-not-enabled.js.map +1 -0
  90. package/src/errors/direct-token-used.d.ts +5 -0
  91. package/src/errors/direct-token-used.d.ts.map +1 -0
  92. package/src/errors/direct-token-used.js +16 -0
  93. package/src/errors/direct-token-used.js.map +1 -0
  94. package/src/errors/email-in-use.d.ts +5 -0
  95. package/src/errors/email-in-use.d.ts.map +1 -0
  96. package/src/errors/email-in-use.js +18 -0
  97. package/src/errors/email-in-use.js.map +1 -0
  98. package/src/errors/email-token-expired.d.ts +5 -0
  99. package/src/errors/email-token-expired.d.ts.map +1 -0
  100. package/src/errors/email-token-expired.js +18 -0
  101. package/src/errors/email-token-expired.js.map +1 -0
  102. package/src/errors/email-token-failed-to-send.d.ts +9 -0
  103. package/src/errors/email-token-failed-to-send.d.ts.map +1 -0
  104. package/src/errors/email-token-failed-to-send.js +25 -0
  105. package/src/errors/email-token-failed-to-send.js.map +1 -0
  106. package/src/errors/email-token-sent-too-recently.d.ts +7 -0
  107. package/src/errors/email-token-sent-too-recently.d.ts.map +1 -0
  108. package/src/errors/email-token-sent-too-recently.js +24 -0
  109. package/src/errors/email-token-sent-too-recently.js.map +1 -0
  110. package/src/errors/email-token-used-or-invalid.d.ts +5 -0
  111. package/src/errors/email-token-used-or-invalid.d.ts.map +1 -0
  112. package/src/errors/email-token-used-or-invalid.js +18 -0
  113. package/src/errors/email-token-used-or-invalid.js.map +1 -0
  114. package/src/errors/email-verified.d.ts +5 -0
  115. package/src/errors/email-verified.d.ts.map +1 -0
  116. package/src/errors/email-verified.js +18 -0
  117. package/src/errors/email-verified.js.map +1 -0
  118. package/src/errors/failed-to-use-direct-token.d.ts +5 -0
  119. package/src/errors/failed-to-use-direct-token.d.ts.map +1 -0
  120. package/src/errors/failed-to-use-direct-token.js +16 -0
  121. package/src/errors/failed-to-use-direct-token.js.map +1 -0
  122. package/src/errors/fec-error.d.ts +9 -0
  123. package/src/errors/fec-error.d.ts.map +1 -0
  124. package/src/errors/fec-error.js +29 -0
  125. package/src/errors/fec-error.js.map +1 -0
  126. package/src/errors/generic-validation.d.ts +8 -0
  127. package/src/errors/generic-validation.d.ts.map +1 -0
  128. package/src/errors/generic-validation.js +15 -0
  129. package/src/errors/generic-validation.js.map +1 -0
  130. package/src/errors/{index.ts → index.d.ts} +1 -0
  131. package/src/errors/index.d.ts.map +1 -0
  132. package/src/errors/index.js +46 -0
  133. package/src/errors/index.js.map +1 -0
  134. package/src/errors/invalid-backup-code.d.ts +7 -0
  135. package/src/errors/invalid-backup-code.d.ts.map +1 -0
  136. package/src/errors/invalid-backup-code.js +14 -0
  137. package/src/errors/invalid-backup-code.js.map +1 -0
  138. package/src/errors/invalid-challenge-response.d.ts +8 -0
  139. package/src/errors/invalid-challenge-response.d.ts.map +1 -0
  140. package/src/errors/invalid-challenge-response.js +19 -0
  141. package/src/errors/invalid-challenge-response.js.map +1 -0
  142. package/src/errors/invalid-challenge.d.ts +5 -0
  143. package/src/errors/invalid-challenge.d.ts.map +1 -0
  144. package/src/errors/invalid-challenge.js +16 -0
  145. package/src/errors/invalid-challenge.js.map +1 -0
  146. package/src/errors/invalid-credentials.d.ts +5 -0
  147. package/src/errors/invalid-credentials.d.ts.map +1 -0
  148. package/src/errors/invalid-credentials.js +18 -0
  149. package/src/errors/invalid-credentials.js.map +1 -0
  150. package/src/errors/invalid-email.d.ts +11 -0
  151. package/src/errors/invalid-email.d.ts.map +1 -0
  152. package/src/errors/invalid-email.js +28 -0
  153. package/src/errors/invalid-email.js.map +1 -0
  154. package/src/errors/invalid-expired-token.d.ts +9 -0
  155. package/src/errors/invalid-expired-token.d.ts.map +1 -0
  156. package/src/errors/invalid-expired-token.js +13 -0
  157. package/src/errors/invalid-expired-token.js.map +1 -0
  158. package/src/errors/invalid-token.d.ts +8 -0
  159. package/src/errors/invalid-token.d.ts.map +1 -0
  160. package/src/errors/invalid-token.js +19 -0
  161. package/src/errors/invalid-token.js.map +1 -0
  162. package/src/errors/invalid-userid.d.ts +9 -0
  163. package/src/errors/invalid-userid.d.ts.map +1 -0
  164. package/src/errors/invalid-userid.js +23 -0
  165. package/src/errors/invalid-userid.js.map +1 -0
  166. package/src/errors/invalid-username.d.ts +5 -0
  167. package/src/errors/invalid-username.d.ts.map +1 -0
  168. package/src/errors/invalid-username.js +16 -0
  169. package/src/errors/invalid-username.js.map +1 -0
  170. package/src/errors/last-admin-error.d.ts +9 -0
  171. package/src/errors/last-admin-error.d.ts.map +1 -0
  172. package/src/errors/last-admin-error.js +15 -0
  173. package/src/errors/last-admin-error.js.map +1 -0
  174. package/src/errors/login-challenge-expired.d.ts +8 -0
  175. package/src/errors/login-challenge-expired.d.ts.map +1 -0
  176. package/src/errors/login-challenge-expired.js +19 -0
  177. package/src/errors/login-challenge-expired.js.map +1 -0
  178. package/src/errors/member-role-not-found.d.ts +9 -0
  179. package/src/errors/member-role-not-found.d.ts.map +1 -0
  180. package/src/errors/member-role-not-found.js +15 -0
  181. package/src/errors/member-role-not-found.js.map +1 -0
  182. package/src/errors/password-login-not-enabled.d.ts +8 -0
  183. package/src/errors/password-login-not-enabled.d.ts.map +1 -0
  184. package/src/errors/password-login-not-enabled.js +19 -0
  185. package/src/errors/password-login-not-enabled.js.map +1 -0
  186. package/src/errors/password-login-not-setup.d.ts +8 -0
  187. package/src/errors/password-login-not-setup.d.ts.map +1 -0
  188. package/src/errors/password-login-not-setup.js +19 -0
  189. package/src/errors/password-login-not-setup.js.map +1 -0
  190. package/src/errors/pbkdf2-error.d.ts +10 -0
  191. package/src/errors/pbkdf2-error.d.ts.map +1 -0
  192. package/src/errors/pbkdf2-error.js +22 -0
  193. package/src/errors/pbkdf2-error.js.map +1 -0
  194. package/src/errors/pending-email-verification.d.ts +5 -0
  195. package/src/errors/pending-email-verification.d.ts.map +1 -0
  196. package/src/errors/pending-email-verification.js +16 -0
  197. package/src/errors/pending-email-verification.js.map +1 -0
  198. package/src/errors/private-key-required.d.ts +5 -0
  199. package/src/errors/private-key-required.d.ts.map +1 -0
  200. package/src/errors/private-key-required.js +16 -0
  201. package/src/errors/private-key-required.js.map +1 -0
  202. package/src/errors/system-role-not-found.d.ts +9 -0
  203. package/src/errors/system-role-not-found.d.ts.map +1 -0
  204. package/src/errors/system-role-not-found.js +15 -0
  205. package/src/errors/system-role-not-found.js.map +1 -0
  206. package/src/errors/token-not-found.d.ts +10 -0
  207. package/src/errors/token-not-found.d.ts.map +1 -0
  208. package/src/errors/token-not-found.js +19 -0
  209. package/src/errors/token-not-found.js.map +1 -0
  210. package/src/errors/translatable-suite-handleable.d.ts +13 -0
  211. package/src/errors/translatable-suite-handleable.d.ts.map +1 -0
  212. package/src/errors/translatable-suite-handleable.js +18 -0
  213. package/src/errors/translatable-suite-handleable.js.map +1 -0
  214. package/src/errors/translatable-suite.d.ts +16 -0
  215. package/src/errors/translatable-suite.d.ts.map +1 -0
  216. package/src/errors/translatable-suite.js +29 -0
  217. package/src/errors/translatable-suite.js.map +1 -0
  218. package/src/errors/user-not-found.d.ts +5 -0
  219. package/src/errors/user-not-found.d.ts.map +1 -0
  220. package/src/errors/user-not-found.js +18 -0
  221. package/src/errors/user-not-found.js.map +1 -0
  222. package/src/errors/username-email-required.d.ts +9 -0
  223. package/src/errors/username-email-required.d.ts.map +1 -0
  224. package/src/errors/username-email-required.js +16 -0
  225. package/src/errors/username-email-required.js.map +1 -0
  226. package/src/errors/username-in-use.d.ts +5 -0
  227. package/src/errors/username-in-use.d.ts.map +1 -0
  228. package/src/errors/username-in-use.js +18 -0
  229. package/src/errors/username-in-use.js.map +1 -0
  230. package/src/i18n-setup.d.ts +18 -0
  231. package/src/i18n-setup.d.ts.map +1 -0
  232. package/src/i18n-setup.js +121 -0
  233. package/src/i18n-setup.js.map +1 -0
  234. package/src/{index.ts → index.d.ts} +1 -0
  235. package/src/index.d.ts.map +1 -0
  236. package/src/index.js +19 -0
  237. package/src/index.js.map +1 -0
  238. package/src/interfaces/backup-code-consts.d.ts +19 -0
  239. package/src/interfaces/backup-code-consts.d.ts.map +1 -0
  240. package/src/interfaces/backup-code-consts.js +3 -0
  241. package/src/interfaces/backup-code-consts.js.map +1 -0
  242. package/src/interfaces/backup-code.d.ts +10 -0
  243. package/src/interfaces/backup-code.d.ts.map +1 -0
  244. package/src/interfaces/backup-code.js +3 -0
  245. package/src/interfaces/backup-code.js.map +1 -0
  246. package/src/interfaces/bases/email-token.d.ts +34 -0
  247. package/src/interfaces/bases/email-token.d.ts.map +1 -0
  248. package/src/interfaces/bases/email-token.js +3 -0
  249. package/src/interfaces/bases/email-token.js.map +1 -0
  250. package/src/interfaces/bases/{index.ts → index.d.ts} +1 -0
  251. package/src/interfaces/bases/index.d.ts.map +1 -0
  252. package/src/interfaces/bases/index.js +14 -0
  253. package/src/interfaces/bases/index.js.map +1 -0
  254. package/src/interfaces/bases/{mnemonic.ts → mnemonic.d.ts} +5 -5
  255. package/src/interfaces/bases/mnemonic.d.ts.map +1 -0
  256. package/src/interfaces/bases/mnemonic.js +3 -0
  257. package/src/interfaces/bases/mnemonic.js.map +1 -0
  258. package/src/interfaces/bases/role.d.ts +33 -0
  259. package/src/interfaces/bases/role.d.ts.map +1 -0
  260. package/src/interfaces/bases/role.js +3 -0
  261. package/src/interfaces/bases/role.js.map +1 -0
  262. package/src/interfaces/bases/token-role.d.ts +13 -0
  263. package/src/interfaces/bases/token-role.d.ts.map +1 -0
  264. package/src/interfaces/bases/token-role.js +3 -0
  265. package/src/interfaces/bases/token-role.js.map +1 -0
  266. package/src/interfaces/bases/{used-direct-login-token.ts → used-direct-login-token.d.ts} +9 -9
  267. package/src/interfaces/bases/used-direct-login-token.d.ts.map +1 -0
  268. package/src/interfaces/bases/used-direct-login-token.js +3 -0
  269. package/src/interfaces/bases/used-direct-login-token.js.map +1 -0
  270. package/src/interfaces/bases/{user-role.ts → user-role.d.ts} +10 -16
  271. package/src/interfaces/bases/user-role.d.ts.map +1 -0
  272. package/src/interfaces/bases/user-role.js +3 -0
  273. package/src/interfaces/bases/user-role.js.map +1 -0
  274. package/src/interfaces/bases/user.d.ts +80 -0
  275. package/src/interfaces/bases/user.d.ts.map +1 -0
  276. package/src/interfaces/bases/user.js +3 -0
  277. package/src/interfaces/bases/user.js.map +1 -0
  278. package/src/interfaces/combined-role-privileges.d.ts +10 -0
  279. package/src/interfaces/combined-role-privileges.d.ts.map +1 -0
  280. package/src/interfaces/combined-role-privileges.js +3 -0
  281. package/src/interfaces/combined-role-privileges.js.map +1 -0
  282. package/src/interfaces/constants.d.ts +59 -0
  283. package/src/interfaces/constants.d.ts.map +1 -0
  284. package/src/interfaces/constants.js +3 -0
  285. package/src/interfaces/constants.js.map +1 -0
  286. package/src/interfaces/core-consts.d.ts +133 -0
  287. package/src/interfaces/core-consts.d.ts.map +1 -0
  288. package/src/interfaces/core-consts.js +3 -0
  289. package/src/interfaces/core-consts.js.map +1 -0
  290. package/src/interfaces/{deep-partial.ts → deep-partial.d.ts} +2 -1
  291. package/src/interfaces/deep-partial.d.ts.map +1 -0
  292. package/src/interfaces/deep-partial.js +3 -0
  293. package/src/interfaces/deep-partial.js.map +1 -0
  294. package/src/interfaces/dto/{email-token.ts → email-token.d.ts} +1 -1
  295. package/src/interfaces/dto/email-token.d.ts.map +1 -0
  296. package/src/interfaces/dto/email-token.js +3 -0
  297. package/src/interfaces/dto/email-token.js.map +1 -0
  298. package/src/interfaces/dto/{index.ts → index.d.ts} +1 -0
  299. package/src/interfaces/dto/index.d.ts.map +1 -0
  300. package/src/interfaces/dto/index.js +15 -0
  301. package/src/interfaces/dto/index.js.map +1 -0
  302. package/src/interfaces/dto/{mnemonic.ts → mnemonic.d.ts} +1 -1
  303. package/src/interfaces/dto/mnemonic.d.ts.map +1 -0
  304. package/src/interfaces/dto/mnemonic.js +3 -0
  305. package/src/interfaces/dto/mnemonic.js.map +1 -0
  306. package/src/interfaces/dto/request-user.d.ts +21 -0
  307. package/src/interfaces/dto/request-user.d.ts.map +1 -0
  308. package/src/interfaces/dto/request-user.js +3 -0
  309. package/src/interfaces/dto/request-user.js.map +1 -0
  310. package/src/interfaces/dto/{role.ts → role.d.ts} +1 -1
  311. package/src/interfaces/dto/role.d.ts.map +1 -0
  312. package/src/interfaces/dto/role.js +3 -0
  313. package/src/interfaces/dto/role.js.map +1 -0
  314. package/src/interfaces/dto/{token-role.ts → token-role.d.ts} +3 -10
  315. package/src/interfaces/dto/token-role.d.ts.map +1 -0
  316. package/src/interfaces/dto/token-role.js +3 -0
  317. package/src/interfaces/dto/token-role.js.map +1 -0
  318. package/src/interfaces/dto/{user-role.ts → user-role.d.ts} +1 -1
  319. package/src/interfaces/dto/user-role.d.ts.map +1 -0
  320. package/src/interfaces/dto/user-role.js +3 -0
  321. package/src/interfaces/dto/user-role.js.map +1 -0
  322. package/src/interfaces/dto/user-settings.d.ts +13 -0
  323. package/src/interfaces/dto/user-settings.d.ts.map +1 -0
  324. package/src/interfaces/dto/user-settings.js +3 -0
  325. package/src/interfaces/dto/user-settings.js.map +1 -0
  326. package/src/interfaces/dto/{user.ts → user.d.ts} +1 -1
  327. package/src/interfaces/dto/user.d.ts.map +1 -0
  328. package/src/interfaces/dto/user.js +3 -0
  329. package/src/interfaces/dto/user.js.map +1 -0
  330. package/src/interfaces/{failable-result.ts → failable-result.d.ts} +5 -4
  331. package/src/interfaces/failable-result.d.ts.map +1 -0
  332. package/src/interfaces/failable-result.js +3 -0
  333. package/src/interfaces/failable-result.js.map +1 -0
  334. package/src/interfaces/frontend-objects/{email-token.ts → email-token.d.ts} +2 -6
  335. package/src/interfaces/frontend-objects/email-token.d.ts.map +1 -0
  336. package/src/interfaces/frontend-objects/email-token.js +3 -0
  337. package/src/interfaces/frontend-objects/email-token.js.map +1 -0
  338. package/src/interfaces/frontend-objects/{index.ts → index.d.ts} +1 -0
  339. package/src/interfaces/frontend-objects/index.d.ts.map +1 -0
  340. package/src/interfaces/frontend-objects/index.js +12 -0
  341. package/src/interfaces/frontend-objects/index.js.map +1 -0
  342. package/src/interfaces/frontend-objects/request-user.d.ts +21 -0
  343. package/src/interfaces/frontend-objects/request-user.d.ts.map +1 -0
  344. package/src/interfaces/frontend-objects/request-user.js +3 -0
  345. package/src/interfaces/frontend-objects/request-user.js.map +1 -0
  346. package/src/interfaces/frontend-objects/{role.ts → role.d.ts} +1 -1
  347. package/src/interfaces/frontend-objects/role.d.ts.map +1 -0
  348. package/src/interfaces/frontend-objects/role.js +3 -0
  349. package/src/interfaces/frontend-objects/role.js.map +1 -0
  350. package/src/interfaces/frontend-objects/{user-role.ts → user-role.d.ts} +1 -1
  351. package/src/interfaces/frontend-objects/user-role.d.ts.map +1 -0
  352. package/src/interfaces/frontend-objects/user-role.js +3 -0
  353. package/src/interfaces/frontend-objects/user-role.js.map +1 -0
  354. package/src/interfaces/frontend-objects/{user.ts → user.d.ts} +2 -7
  355. package/src/interfaces/frontend-objects/user.d.ts.map +1 -0
  356. package/src/interfaces/frontend-objects/user.js +3 -0
  357. package/src/interfaces/frontend-objects/user.js.map +1 -0
  358. package/src/interfaces/{has-creation.ts → has-creation.d.ts} +5 -4
  359. package/src/interfaces/has-creation.d.ts.map +1 -0
  360. package/src/interfaces/has-creation.js +3 -0
  361. package/src/interfaces/has-creation.js.map +1 -0
  362. package/src/interfaces/has-creator.d.ts +11 -0
  363. package/src/interfaces/has-creator.d.ts.map +1 -0
  364. package/src/interfaces/has-creator.js +3 -0
  365. package/src/interfaces/has-creator.js.map +1 -0
  366. package/src/interfaces/has-id.d.ts +8 -0
  367. package/src/interfaces/has-id.d.ts.map +1 -0
  368. package/src/interfaces/has-id.js +3 -0
  369. package/src/interfaces/has-id.js.map +1 -0
  370. package/src/interfaces/{has-soft-delete.ts → has-soft-delete.d.ts} +5 -4
  371. package/src/interfaces/has-soft-delete.d.ts.map +1 -0
  372. package/src/interfaces/has-soft-delete.js +3 -0
  373. package/src/interfaces/has-soft-delete.js.map +1 -0
  374. package/src/interfaces/has-soft-deleter.d.ts +11 -0
  375. package/src/interfaces/has-soft-deleter.d.ts.map +1 -0
  376. package/src/interfaces/has-soft-deleter.js +3 -0
  377. package/src/interfaces/has-soft-deleter.js.map +1 -0
  378. package/src/interfaces/{has-timestamp-owners.ts → has-timestamp-owners.d.ts} +3 -3
  379. package/src/interfaces/has-timestamp-owners.d.ts.map +1 -0
  380. package/src/interfaces/has-timestamp-owners.js +3 -0
  381. package/src/interfaces/has-timestamp-owners.js.map +1 -0
  382. package/src/interfaces/has-timestamps.d.ts +9 -0
  383. package/src/interfaces/has-timestamps.d.ts.map +1 -0
  384. package/src/interfaces/has-timestamps.js +3 -0
  385. package/src/interfaces/has-timestamps.js.map +1 -0
  386. package/src/interfaces/has-updater.d.ts +11 -0
  387. package/src/interfaces/has-updater.d.ts.map +1 -0
  388. package/src/interfaces/has-updater.js +3 -0
  389. package/src/interfaces/has-updater.js.map +1 -0
  390. package/src/interfaces/{has-updates.ts → has-updates.d.ts} +2 -1
  391. package/src/interfaces/has-updates.d.ts.map +1 -0
  392. package/src/interfaces/has-updates.js +3 -0
  393. package/src/interfaces/has-updates.js.map +1 -0
  394. package/src/interfaces/{index.ts → index.d.ts} +1 -0
  395. package/src/interfaces/index.d.ts.map +1 -0
  396. package/src/interfaces/index.js +29 -0
  397. package/src/interfaces/index.js.map +1 -0
  398. package/src/interfaces/{success-message.ts → success-message.d.ts} +3 -2
  399. package/src/interfaces/success-message.d.ts.map +1 -0
  400. package/src/interfaces/success-message.js +3 -0
  401. package/src/interfaces/success-message.js.map +1 -0
  402. package/src/interfaces/{token-user.ts → token-user.d.ts} +3 -3
  403. package/src/interfaces/token-user.d.ts.map +1 -0
  404. package/src/interfaces/token-user.js +3 -0
  405. package/src/interfaces/token-user.js.map +1 -0
  406. package/src/interfaces/{user-settings.ts → user-settings.d.ts} +7 -7
  407. package/src/interfaces/user-settings.d.ts.map +1 -0
  408. package/src/interfaces/user-settings.js +3 -0
  409. package/src/interfaces/user-settings.js.map +1 -0
  410. package/src/lib/flags.d.ts +10 -0
  411. package/src/lib/flags.d.ts.map +1 -0
  412. package/src/lib/flags.js +288 -0
  413. package/src/lib/flags.js.map +1 -0
  414. package/src/lib/formatters.d.ts +16 -0
  415. package/src/lib/formatters.d.ts.map +1 -0
  416. package/src/lib/formatters.js +29 -0
  417. package/src/lib/formatters.js.map +1 -0
  418. package/src/lib/hydrate-dehydrate.d.ts +16 -0
  419. package/src/lib/hydrate-dehydrate.d.ts.map +1 -0
  420. package/src/lib/hydrate-dehydrate.js +43 -0
  421. package/src/lib/hydrate-dehydrate.js.map +1 -0
  422. package/src/lib/{index.ts → index.d.ts} +1 -1
  423. package/src/lib/index.d.ts.map +1 -0
  424. package/src/lib/index.js +12 -0
  425. package/src/lib/index.js.map +1 -0
  426. package/src/lib/validators-with-constants.d.ts +73 -0
  427. package/src/lib/validators-with-constants.d.ts.map +1 -0
  428. package/src/lib/validators-with-constants.js +64 -0
  429. package/src/lib/validators-with-constants.js.map +1 -0
  430. package/src/lib/validators.d.ts +37 -0
  431. package/src/lib/validators.d.ts.map +1 -0
  432. package/src/lib/validators.js +74 -0
  433. package/src/lib/validators.js.map +1 -0
  434. package/src/local-storage-manager.d.ts +22 -0
  435. package/src/local-storage-manager.d.ts.map +1 -0
  436. package/src/local-storage-manager.js +74 -0
  437. package/src/local-storage-manager.js.map +1 -0
  438. package/src/strings/de.d.ts +7 -0
  439. package/src/strings/de.d.ts.map +1 -0
  440. package/src/strings/de.js +492 -0
  441. package/src/strings/de.js.map +1 -0
  442. package/src/strings/en-GB.d.ts +7 -0
  443. package/src/strings/en-GB.d.ts.map +1 -0
  444. package/src/strings/en-GB.js +492 -0
  445. package/src/strings/en-GB.js.map +1 -0
  446. package/src/strings/en-US.d.ts +8 -0
  447. package/src/strings/en-US.d.ts.map +1 -0
  448. package/src/strings/en-US.js +493 -0
  449. package/src/strings/en-US.js.map +1 -0
  450. package/src/strings/es.d.ts +7 -0
  451. package/src/strings/es.d.ts.map +1 -0
  452. package/src/strings/es.js +492 -0
  453. package/src/strings/es.js.map +1 -0
  454. package/src/strings/fr.d.ts +7 -0
  455. package/src/strings/fr.d.ts.map +1 -0
  456. package/src/strings/fr.js +492 -0
  457. package/src/strings/fr.js.map +1 -0
  458. package/src/strings/ja.d.ts +7 -0
  459. package/src/strings/ja.d.ts.map +1 -0
  460. package/src/strings/ja.js +492 -0
  461. package/src/strings/ja.js.map +1 -0
  462. package/src/strings/uk.d.ts +7 -0
  463. package/src/strings/uk.d.ts.map +1 -0
  464. package/src/strings/uk.js +492 -0
  465. package/src/strings/uk.js.map +1 -0
  466. package/src/strings/zh-CN.d.ts +7 -0
  467. package/src/strings/zh-CN.d.ts.map +1 -0
  468. package/src/strings/zh-CN.js +492 -0
  469. package/src/strings/zh-CN.js.map +1 -0
  470. package/LICENSE +0 -21
  471. package/src/backup-code-string.ts +0 -102
  472. package/src/builders/role-builder.ts +0 -67
  473. package/src/builders/user-builder.ts +0 -81
  474. package/src/constants.ts +0 -229
  475. package/src/core/result.ts +0 -40
  476. package/src/defaults.ts +0 -114
  477. package/src/enumerations/account-status.ts +0 -17
  478. package/src/enumerations/email-token-type.ts +0 -27
  479. package/src/enumerations/fec-error-type.ts +0 -16
  480. package/src/enumerations/pbkdf2-error-type.ts +0 -7
  481. package/src/enumerations/role.ts +0 -8
  482. package/src/enumerations/suite-core-string-key.ts +0 -500
  483. package/src/errors/account-locked.ts +0 -12
  484. package/src/errors/account-status.ts +0 -38
  485. package/src/errors/admin-role-not-found.ts +0 -15
  486. package/src/errors/core-typed-handleable.ts +0 -72
  487. package/src/errors/direct-challenge-not-enabled.ts +0 -22
  488. package/src/errors/direct-token-used.ts +0 -17
  489. package/src/errors/email-in-use.ts +0 -14
  490. package/src/errors/email-token-expired.ts +0 -14
  491. package/src/errors/email-token-failed-to-send.ts +0 -46
  492. package/src/errors/email-token-sent-too-recently.ts +0 -32
  493. package/src/errors/email-token-used-or-invalid.ts +0 -14
  494. package/src/errors/email-verified.ts +0 -19
  495. package/src/errors/failed-to-use-direct-token.ts +0 -17
  496. package/src/errors/fec-error.ts +0 -49
  497. package/src/errors/generic-validation.ts +0 -14
  498. package/src/errors/invalid-backup-code.ts +0 -9
  499. package/src/errors/invalid-challenge-response.ts +0 -22
  500. package/src/errors/invalid-challenge.ts +0 -12
  501. package/src/errors/invalid-credentials.ts +0 -19
  502. package/src/errors/invalid-email.ts +0 -46
  503. package/src/errors/invalid-expired-token.ts +0 -21
  504. package/src/errors/invalid-token.ts +0 -22
  505. package/src/errors/invalid-userid.ts +0 -38
  506. package/src/errors/invalid-username.ts +0 -17
  507. package/src/errors/last-admin-error.ts +0 -15
  508. package/src/errors/login-challenge-expired.ts +0 -22
  509. package/src/errors/member-role-not-found.ts +0 -15
  510. package/src/errors/password-login-not-enabled.ts +0 -22
  511. package/src/errors/password-login-not-setup.ts +0 -22
  512. package/src/errors/pbkdf2-error.ts +0 -26
  513. package/src/errors/pending-email-verification.ts +0 -12
  514. package/src/errors/private-key-required.ts +0 -16
  515. package/src/errors/system-role-not-found.ts +0 -15
  516. package/src/errors/token-not-found.ts +0 -24
  517. package/src/errors/translatable-suite-handleable.ts +0 -30
  518. package/src/errors/translatable-suite.ts +0 -37
  519. package/src/errors/user-not-found.ts +0 -14
  520. package/src/errors/username-email-required.ts +0 -23
  521. package/src/errors/username-in-use.ts +0 -14
  522. package/src/i18n-setup.ts +0 -150
  523. package/src/interfaces/backup-code-consts.ts +0 -18
  524. package/src/interfaces/backup-code.ts +0 -9
  525. package/src/interfaces/bases/email-token.ts +0 -39
  526. package/src/interfaces/bases/role.ts +0 -43
  527. package/src/interfaces/bases/token-role.ts +0 -16
  528. package/src/interfaces/bases/user.ts +0 -91
  529. package/src/interfaces/combined-role-privileges.ts +0 -9
  530. package/src/interfaces/constants.ts +0 -59
  531. package/src/interfaces/core-consts.ts +0 -133
  532. package/src/interfaces/dto/request-user.ts +0 -23
  533. package/src/interfaces/dto/user-settings.ts +0 -12
  534. package/src/interfaces/frontend-objects/request-user.ts +0 -21
  535. package/src/interfaces/has-creator.ts +0 -11
  536. package/src/interfaces/has-id.ts +0 -8
  537. package/src/interfaces/has-soft-deleter.ts +0 -11
  538. package/src/interfaces/has-timestamps.ts +0 -11
  539. package/src/interfaces/has-updater.ts +0 -11
  540. package/src/lib/flags.ts +0 -286
  541. package/src/lib/formatters.ts +0 -26
  542. package/src/lib/hydrate-dehydrate.ts +0 -43
  543. package/src/lib/validators-with-constants.ts +0 -74
  544. package/src/lib/validators.ts +0 -72
  545. package/src/local-storage-manager.ts +0 -69
  546. package/src/strings/de.ts +0 -793
  547. package/src/strings/en-GB.ts +0 -743
  548. package/src/strings/en-US.ts +0 -746
  549. package/src/strings/es.ts +0 -799
  550. package/src/strings/fr.ts +0 -804
  551. package/src/strings/ja.ts +0 -766
  552. package/src/strings/uk.ts +0 -783
  553. package/src/strings/zh-CN.ts +0 -650
@@ -1,102 +0,0 @@
1
- /**
2
- * Backup code string class for generating, validating, and formatting backup codes.
3
- * Provides type-safe handling of backup codes with multiple output formats.
4
- */
5
- import { Constants } from './constants';
6
- import { InvalidBackupCodeError } from './errors/invalid-backup-code';
7
- import { IConstants } from './interfaces';
8
-
9
- export class BackupCodeString {
10
- private readonly _normalizedCode: string;
11
-
12
- constructor(code: string) {
13
- const normalizedCode = BackupCodeString.normalizeCode(code);
14
- if (!Constants.BACKUP_CODES.NormalizedHexRegex.test(normalizedCode)) {
15
- throw new InvalidBackupCodeError();
16
- }
17
- this._normalizedCode = normalizedCode;
18
- }
19
-
20
- public get value(): string {
21
- return BackupCodeString.formatBackupCode(this._normalizedCode);
22
- }
23
-
24
- public get notNullValue(): string {
25
- return BackupCodeString.formatBackupCode(this._normalizedCode);
26
- }
27
-
28
- public get valueAsHexString(): string {
29
- const formattedValue = BackupCodeString.formatBackupCode(
30
- this._normalizedCode,
31
- );
32
- return new TextEncoder().encode(formattedValue).reduce((str, byte) => {
33
- return str + byte.toString(16).padStart(2, '0');
34
- }, '');
35
- }
36
-
37
- public get valueAsBase64String(): string {
38
- const formattedValue = BackupCodeString.formatBackupCode(
39
- this._normalizedCode,
40
- );
41
- return btoa(formattedValue);
42
- }
43
-
44
- public get valueAsUint8Array(): Uint8Array {
45
- const formattedValue = BackupCodeString.formatBackupCode(
46
- this._normalizedCode,
47
- );
48
- return new TextEncoder().encode(formattedValue);
49
- }
50
-
51
- public get hasValue(): boolean {
52
- return this._normalizedCode.length > 0;
53
- }
54
-
55
- public get length(): number {
56
- return this._normalizedCode.length;
57
- }
58
-
59
- public dispose(): void {
60
- // Backup codes are not sensitive enough to require secure disposal
61
- // They're already encrypted when stored in the database
62
- }
63
-
64
- /**
65
- * Format a 32-char normalized code into display form (8 groups of 4).
66
- * Does not restrict characters beyond grouping.
67
- */
68
- public static formatBackupCode(code: string): string {
69
- const groups = code.match(/.{1,4}/g) ?? [code];
70
- return groups.join('-');
71
- }
72
- /**
73
- * Normalize user-entered code: remove spaces and hyphens, lowercase, and trim.
74
- */
75
- public static normalizeCode(input: string): string {
76
- return input.replace(/[\s-]/g, '').toLowerCase().trim();
77
- }
78
-
79
- public static generateBackupCode(): string {
80
- const alphabet = 'abcdefghijklmnopqrstuvwxyz0123456789';
81
- const rnd = crypto.getRandomValues(new Uint8Array(32));
82
- let raw = '';
83
- for (let j = 0; j < 32; j++) {
84
- raw += alphabet[rnd[j] % alphabet.length];
85
- }
86
- return raw;
87
- }
88
-
89
- /**
90
- * Generate the configured number of backup codes.
91
- * Note: If generation alphabet/length is controlled elsewhere, prefer that path.
92
- */
93
- public static generateBackupCodes(
94
- constants: IConstants = Constants,
95
- ): Array<BackupCodeString> {
96
- const codes: Array<BackupCodeString> = [];
97
- for (let i = 0; i < constants.BACKUP_CODES.Count; i++) {
98
- codes.push(new BackupCodeString(BackupCodeString.generateBackupCode()));
99
- }
100
- return codes;
101
- }
102
- }
@@ -1,67 +0,0 @@
1
- /**
2
- * Fluent builder for creating role objects
3
- */
4
-
5
- import type { PlatformID } from '@digitaldefiance/ecies-lib';
6
- import { Role } from '../enumerations/role';
7
- import { IRoleBase } from '../interfaces/bases/role';
8
-
9
- /**
10
- * Builder for creating role objects with fluent API
11
- */
12
- export class RoleBuilder<TID extends PlatformID = PlatformID, TDate extends Date | string = Date> {
13
- private data: Partial<IRoleBase<TID, TDate, Role>> = {
14
- admin: false,
15
- member: false,
16
- child: false,
17
- system: false,
18
- };
19
-
20
- static create<TID extends PlatformID = PlatformID, TDate extends Date | string = Date>(): RoleBuilder<
21
- TID,
22
- TDate
23
- > {
24
- return new RoleBuilder<TID, TDate>();
25
- }
26
-
27
- withName(name: Role): this {
28
- this.data.name = name;
29
- return this;
30
- }
31
-
32
- asAdmin(): this {
33
- this.data.admin = true;
34
- this.data.member = false;
35
- this.data.child = false;
36
- this.data.system = false;
37
- return this;
38
- }
39
-
40
- asMember(): this {
41
- this.data.admin = false;
42
- this.data.member = true;
43
- this.data.child = false;
44
- this.data.system = false;
45
- return this;
46
- }
47
-
48
- asChild(): this {
49
- this.data.admin = false;
50
- this.data.member = false;
51
- this.data.child = true;
52
- this.data.system = false;
53
- return this;
54
- }
55
-
56
- asSystem(): this {
57
- this.data.admin = false;
58
- this.data.member = false;
59
- this.data.child = false;
60
- this.data.system = true;
61
- return this;
62
- }
63
-
64
- build(): Partial<IRoleBase<TID, TDate, Role>> {
65
- return { ...this.data };
66
- }
67
- }
@@ -1,81 +0,0 @@
1
- /**
2
- * Fluent builder for creating user objects
3
- */
4
-
5
- import type { PlatformID } from '@digitaldefiance/ecies-lib';
6
- import { AccountStatus } from '../enumerations/account-status';
7
- import { IUserBase } from '../interfaces/bases/user';
8
-
9
- /**
10
- * Builder for creating user objects with fluent API
11
- */
12
- export class UserBuilder<
13
- TID extends PlatformID = PlatformID,
14
- TDate extends Date | string = Date,
15
- TLanguage extends string = string,
16
- > {
17
- private data: Partial<IUserBase<TID, TDate, TLanguage, AccountStatus>> = {
18
- emailVerified: false,
19
- accountStatus: AccountStatus.Active,
20
- directChallenge: false,
21
- backupCodes: [],
22
- timezone: 'UTC',
23
- };
24
-
25
- static create<
26
- TID extends PlatformID = PlatformID,
27
- TDate extends Date | string = Date,
28
- TLanguage extends string = string,
29
- >(): UserBuilder<TID, TDate, TLanguage> {
30
- return new UserBuilder<TID, TDate, TLanguage>();
31
- }
32
-
33
- withUsername(username: string): this {
34
- this.data.username = username;
35
- return this;
36
- }
37
-
38
- withEmail(email: string): this {
39
- this.data.email = email;
40
- return this;
41
- }
42
-
43
- withPublicKey(publicKey: string): this {
44
- this.data.publicKey = publicKey;
45
- return this;
46
- }
47
-
48
- withTimezone(timezone: string): this {
49
- this.data.timezone = timezone;
50
- return this;
51
- }
52
-
53
- withSiteLanguage(siteLanguage: TLanguage): this {
54
- this.data.siteLanguage = siteLanguage;
55
- return this;
56
- }
57
-
58
- withEmailVerified(verified: boolean): this {
59
- this.data.emailVerified = verified;
60
- return this;
61
- }
62
-
63
- withAccountStatus(status: AccountStatus): this {
64
- this.data.accountStatus = status;
65
- return this;
66
- }
67
-
68
- withDirectChallenge(enabled: boolean): this {
69
- this.data.directChallenge = enabled;
70
- return this;
71
- }
72
-
73
- withMnemonicRecovery(recovery: string): this {
74
- this.data.mnemonicRecovery = recovery;
75
- return this;
76
- }
77
-
78
- build(): Partial<IUserBase<TID, TDate, TLanguage, AccountStatus>> {
79
- return { ...this.data };
80
- }
81
- }
package/src/constants.ts DELETED
@@ -1,229 +0,0 @@
1
- /**
2
- * Constants and configuration for the suite-core library.
3
- * Provides runtime configuration including backup codes, authentication settings,
4
- * validation rules, and site-specific constants.
5
- */
6
- import { ObjectIdProvider } from '@digitaldefiance/ecies-lib';
7
- import { Role } from './enumerations/role';
8
- import { IBackupCodeConstants, ICoreConstants } from './interfaces';
9
- import { IConstants } from './interfaces/constants';
10
-
11
- export const BACKUP_CODES: IBackupCodeConstants = Object.freeze({
12
- /**
13
- * How many backup codes to generate for users
14
- */
15
- Count: 10 as const,
16
- NormalizedHexRegex: /^[a-z0-9]{32}$/, // exactly 32 lowercase alphanumeric chars
17
- DisplayRegex: /^([a-z0-9]{4}-){7}[a-z0-9]{4}$/, // xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxx
18
- } as const);
19
-
20
- export const CORE: ICoreConstants = Object.freeze({
21
- /**
22
- * The ID provider to use for generating and parsing IDs
23
- */
24
- idProvider: new ObjectIdProvider(),
25
- /**
26
- * Default duration in seconds for which a mnemonic is kept in memory
27
- */
28
- DefaultExpireMemoryMnemonicSeconds: 300 as const, // 5 minutes
29
- /**
30
- * Default duration in seconds for which a wallet is kept in memory
31
- */
32
- DefaultExpireMemoryWalletSeconds: 300 as const, // 5 minutes
33
-
34
- /**
35
- * Duration in milliseconds for which a login challenge is valid.
36
- */
37
- LoginChallengeExpiration: 60000 as const, // 60 seconds
38
-
39
- /**
40
- * The expected length of a direct login challenge in bytes
41
- */
42
- DirectLoginChallengeLength: 104 as const,
43
-
44
- /**
45
- * Backup code system configuration
46
- */
47
- BACKUP_CODES: BACKUP_CODES,
48
-
49
- /**
50
- * Duration in milliseconds for which an email token is valid.
51
- */
52
- EmailTokenExpiration: 86400000 as const, // 24 * 60 * 60 * 1000
53
- /**
54
- * Length in bytes of the email token generated (is represented as a hex string of twice as many)
55
- */
56
- EmailTokenLength: 32 as const,
57
- /**
58
- * Number of rounds for bcrypt hashing. Higher values increase security but also consume more CPU resources.
59
- */
60
- BcryptRounds: 10 as const,
61
- /**
62
- * The username of the administrator user.
63
- */
64
- AdministratorUser: 'admin' as const,
65
- /**
66
- * The name of the administrator role.
67
- */
68
- AdministratorRole: Role.Admin as const,
69
- /**
70
- * The name of the member role.
71
- */
72
- MemberRole: Role.Member as const,
73
- /**
74
- * The username of the test user.
75
- */
76
- MemberUser: 'test' as const,
77
- /**
78
- * The name of the system role.
79
- */
80
- SystemRole: Role.System as const,
81
- /**
82
- * The username of the system user.
83
- */
84
- SystemUser: 'system' as const,
85
- /**
86
- * Minimum username length
87
- */
88
- UsernameMinLength: 3 as const,
89
- /**
90
- * Maximum username length
91
- */
92
- UsernameMaxLength: 30 as const,
93
- /**
94
- * The regular expression for valid usernames.
95
- */
96
- UsernameRegex: /^[A-Za-z0-9]{3,30}$/,
97
- /**
98
- * Minimum password length
99
- */
100
- PasswordMinLength: 8 as const,
101
- /**
102
- * The regular expression for valid passwords.
103
- */
104
- PasswordRegex:
105
- /^(?=.*[A-Za-z])(?=.*\d)(?=.*[!@#$%^&*()_+\-=[\]{};':"\\|,.<>/?])[A-Za-z\d!@#$%^&*()_+\-=[\]{};':"\\|,.<>/?]{8,}$/,
106
- /**
107
- * The regular expression for valid JWT tokens.
108
- */
109
- JwtSecretRegex: /^[0-9a-f]{64}$/i,
110
- /**
111
- * The regular expression for valid mnemonic phrases.
112
- * BIP39 - supports 12, 15, 18, 21, or 24 word mnemonics
113
- */
114
- MnemonicRegex:
115
- /^(?:\w+\s){11}\w+$|^(?:\w+\s){14}\w+$|^(?:\w+\s){17}\w+$|^(?:\w+\s){20}\w+$|^(?:\w+\s){23}\w+$/i,
116
- /**
117
- * Matches a 64-character hexadecimal string (SHA-256).
118
- */
119
- MnemonicHmacRegex: /^[a-f0-9]{64}$/,
120
- /**
121
- * The regular expression for valid encryption keys.
122
- */
123
- MnemonicEncryptionKeyRegex: /^[a-f0-9]{64}$/,
124
- /**
125
- * The amount of time in milliseconds after which an email token can be resent.
126
- */
127
- EmailTokenResendInterval: 300000 as const, // 5 * 60 * 1000 = 5 minutes
128
- /**
129
- * The interval in minutes after which an email token can be resent.
130
- */
131
- EmailTokenResendIntervalMinutes: 5 as const,
132
- /**
133
- * The site name. Overridden by specific site constants.
134
- */
135
- Site: 'New Site' as const,
136
- /**
137
- * The site tagline. Overridden by specific site constants.
138
- */
139
- SiteTagline: 'New Site Tagline' as const,
140
- /**
141
- * The site description. Overridden by specific site constants.
142
- */
143
- SiteDescription: 'Description of the new site' as const,
144
- /**
145
- * Email domain of usernames on the site. Overridden by specific site constants.
146
- */
147
- SiteEmailDomain: 'localhost' as const,
148
- /**
149
- * The hostname of the site. Overridden by specific site constants.
150
- */
151
- SiteHostname: 'localhost' as const,
152
- } as const);
153
-
154
- export const createConstants: (
155
- siteDomain: string,
156
- siteHostname: string,
157
- overrides?: Partial<IConstants>,
158
- ) => IConstants = (
159
- siteDomain: string,
160
- siteHostname: string,
161
- overrides?: Partial<IConstants>,
162
- ) => {
163
- return Object.freeze({
164
- ...CORE,
165
- /**
166
- * The email of the administrator user/admin contact
167
- */
168
- AdministratorEmail: `admin@${siteDomain}` as const,
169
- /**
170
- * The email of the test user.
171
- */
172
- MemberEmail: `test@${siteDomain}` as const,
173
- /**
174
- * The email of the system user.
175
- */
176
- SystemEmail: `system@${siteDomain}` as const,
177
- /**
178
- * The email domain of usernames on the site.
179
- */
180
- SiteEmailDomain: siteDomain,
181
- /**
182
- * The hostname of the site.
183
- */
184
- SiteHostname: siteHostname,
185
- /**
186
- * The color used to indicate success states.
187
- */
188
- success_color: '#4CAF50',
189
- /**
190
- * The color used to indicate failure states.
191
- */
192
- failure_color: '#F44336',
193
- /**
194
- * The color used to indicate warning states.
195
- */
196
- warning_color: '#FF9800',
197
- /**
198
- * The light variant of the primary text color.
199
- */
200
- primary_text_light: '#ffffff',
201
- /**
202
- * The dark variant of the primary text color.
203
- */
204
- primary_text_dark: '#000000',
205
- /**
206
- * The light variant of the secondary text color.
207
- */
208
- secondary_text_light: '#ffffff',
209
- /**
210
- * The dark variant of the secondary text color.
211
- */
212
- secondary_text_dark: '#000000',
213
- /**
214
- * The primary brand color (used for primary theme color)
215
- */
216
- logo_primary_color: '#050505ff',
217
- /**
218
- * The primary text color (used for logo and text)
219
- */
220
- logo_primary_text: '#212121',
221
- /**
222
- * The secondary text color (used for logo and accents)
223
- */
224
- logo_secondary_text: '#757575',
225
- ...(overrides ?? {}),
226
- } as const);
227
- };
228
-
229
- export const Constants = createConstants('localhost', 'localhost');
@@ -1,40 +0,0 @@
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, TError = Error> =
7
- | { success: true; data: T }
8
- | { success: false; error: TError };
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>(
28
- result: Result<T, E>,
29
- ): result is { success: true; data: T } {
30
- return result.success;
31
- }
32
-
33
- /**
34
- * Check if result is a failure
35
- */
36
- export function isFailure<T, E>(
37
- result: Result<T, E>,
38
- ): result is { success: false; error: E } {
39
- return !result.success;
40
- }
package/src/defaults.ts DELETED
@@ -1,114 +0,0 @@
1
- /**
2
- * Default configuration management for suite-core library.
3
- * Provides runtime configuration creation, registration, and retrieval with deep cloning and freezing.
4
- */
5
- import { createConstants } from './constants';
6
- import { IConstants } from './interfaces/constants';
7
- import { DeepPartial } from './interfaces/deep-partial';
8
-
9
- export type ConfigurationKey = string | symbol;
10
-
11
- const DEFAULT_CONFIGURATION_KEY: ConfigurationKey = Symbol.for(
12
- 'digitaldefiance.suite-core.defaults.default',
13
- );
14
-
15
- const registry: Map<ConfigurationKey, IConstants> = new Map();
16
-
17
- // Define cloneable types to improve type safety
18
- type Cloneable =
19
- | string
20
- | number
21
- | boolean
22
- | null
23
- | undefined
24
- | Date
25
- | RegExp
26
- | Cloneable[]
27
- | { [key: string]: Cloneable };
28
-
29
- function deepClone<T extends Cloneable>(input: T): T {
30
- if (input === null || typeof input !== 'object') {
31
- return input;
32
- }
33
-
34
- if (Array.isArray(input)) {
35
- return input.map((item) => deepClone(item)) as T;
36
- }
37
-
38
- if (input instanceof RegExp) {
39
- return new RegExp(input.source, input.flags) as T;
40
- }
41
-
42
- if (input instanceof Date) {
43
- return new Date(input.getTime()) as T;
44
- }
45
-
46
- const result: Record<string, Cloneable> = {};
47
- for (const [key, value] of Object.entries(input)) {
48
- result[key] = deepClone(value as Cloneable);
49
- }
50
- return result as T;
51
- }
52
-
53
- function deepFreeze<T>(obj: T): T {
54
- Object.freeze(obj);
55
- if (obj && typeof obj === 'object') {
56
- Object.getOwnPropertyNames(obj).forEach((prop) => {
57
- const value = (obj as Record<string, unknown>)[prop];
58
- if (value && typeof value === 'object' && !Object.isFrozen(value)) {
59
- deepFreeze(value);
60
- }
61
- });
62
- }
63
- return obj;
64
- }
65
-
66
- function applyOverrides<T extends object>(
67
- target: T,
68
- overrides?: DeepPartial<T>,
69
- ): T {
70
- if (!overrides) return target;
71
- const result = deepClone(target as Cloneable) as unknown as T;
72
- for (const [key, value] of Object.entries(overrides)) {
73
- if (value !== undefined && key in result) {
74
- (result as Record<string, unknown>)[key] = value;
75
- }
76
- }
77
- return result;
78
- }
79
-
80
- export function createSuiteCoreRuntimeConfiguration(
81
- siteDomain: string = 'localhost',
82
- siteHostname: string = 'localhost',
83
- overrides?: DeepPartial<IConstants>,
84
- ): IConstants {
85
- const config = applyOverrides(
86
- createConstants(siteDomain, siteHostname),
87
- overrides,
88
- );
89
- return deepFreeze(config);
90
- }
91
-
92
- export function registerSuiteCoreRuntimeConfiguration(
93
- key: ConfigurationKey = DEFAULT_CONFIGURATION_KEY,
94
- siteDomain: string = 'localhost',
95
- siteHostname: string = 'localhost',
96
- overrides?: DeepPartial<IConstants>,
97
- ): IConstants {
98
- const config = createSuiteCoreRuntimeConfiguration(
99
- siteDomain,
100
- siteHostname,
101
- overrides,
102
- );
103
- registry.set(key, config);
104
- return config;
105
- }
106
-
107
- export function getSuiteCoreRuntimeConfiguration(
108
- key: ConfigurationKey = DEFAULT_CONFIGURATION_KEY,
109
- ): IConstants {
110
- if (!registry.has(key)) {
111
- registry.set(key, createSuiteCoreRuntimeConfiguration());
112
- }
113
- return registry.get(key)!;
114
- }
@@ -1,17 +0,0 @@
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
- }
@@ -1,27 +0,0 @@
1
- /**
2
- * Email token types for various authentication and recovery operations.
3
- */
4
- export enum EmailTokenType {
5
- /**
6
- * A token for verifying an account
7
- */
8
- AccountVerification = 'AccountVerification',
9
- /**
10
- * A token for resetting a password
11
- */
12
- PasswordReset = 'PasswordReset',
13
- /**
14
- * Requests a login link
15
- */
16
- LoginRequest = 'LoginRequest',
17
- /**
18
- * Request encrypted private key blob for a user
19
- * (requires username/email)
20
- */
21
- PrivateKeyRequest = 'PrivateKeyRequest',
22
- /**
23
- * Request encrypted mnemonic blob for a user
24
- * (requires private key)
25
- */
26
- MnemonicRecoveryRequest = 'MnemonicRecoveryRequest',
27
- }
@@ -1,16 +0,0 @@
1
- /**
2
- * Forward Error Correction (FEC) error types for data encoding/decoding operations.
3
- */
4
- export enum FecErrorType {
5
- DataRequired = 'DataRequired',
6
- InputDataMustBeUint8Array = 'InputDataMustBeUint8Array',
7
- InvalidShardCounts = 'InvalidShardCounts',
8
- InvalidShardsAvailableArray = 'InvalidShardsAvailableArray',
9
- ParityDataCountMustBePositive = 'ParityDataCountMustBePositive',
10
- ParityDataRequired = 'ParityDataRequired',
11
- InvalidDataLength = 'InvalidDataLength',
12
- ShardSizeExceedsMaximum = 'ShardSizeExceedsMaximum',
13
- NotEnoughShardsAvailable = 'NotEnoughShardsAvailable',
14
- FecEncodingFailed = 'FecEncodingFailed',
15
- FecDecodingFailed = 'FecDecodingFailed',
16
- }
@@ -1,7 +0,0 @@
1
- /**
2
- * PBKDF2 error types for password-based key derivation operations.
3
- */
4
- export enum Pbkdf2ErrorType {
5
- InvalidSaltLength = 'InvalidSaltLength',
6
- InvalidHashLength = 'InvalidHashLength',
7
- }