@digitaldefiance/suite-core-lib 3.6.11 → 3.6.13

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 (562) hide show
  1. package/package.json +6 -5
  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 +81 -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 +19 -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 +23 -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 +209 -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 +66 -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 +25 -0
  47. package/src/enumerations/email-token-type.d.ts.map +1 -0
  48. package/src/enumerations/email-token-type.js +29 -0
  49. package/src/enumerations/email-token-type.js.map +1 -0
  50. package/src/enumerations/fec-error-type.d.ts +14 -0
  51. package/src/enumerations/fec-error-type.d.ts.map +1 -0
  52. package/src/enumerations/fec-error-type.js +18 -0
  53. package/src/enumerations/fec-error-type.js.map +1 -0
  54. package/src/enumerations/{index.ts → index.d.ts} +2 -1
  55. package/src/enumerations/index.d.ts.map +1 -0
  56. package/src/enumerations/index.js +10 -0
  57. package/src/enumerations/index.js.map +1 -0
  58. package/src/enumerations/pbkdf2-error-type.d.ts +5 -0
  59. package/src/enumerations/pbkdf2-error-type.d.ts.map +1 -0
  60. package/src/enumerations/pbkdf2-error-type.js +9 -0
  61. package/src/enumerations/pbkdf2-error-type.js.map +1 -0
  62. package/src/enumerations/role.d.ts +6 -0
  63. package/src/enumerations/role.d.ts.map +1 -0
  64. package/src/enumerations/role.js +10 -0
  65. package/src/enumerations/role.js.map +1 -0
  66. package/src/enumerations/suite-core-string-key.d.ts +482 -0
  67. package/src/enumerations/suite-core-string-key.d.ts.map +1 -0
  68. package/src/enumerations/suite-core-string-key.js +493 -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 +13 -0
  73. package/src/errors/account-locked.js.map +1 -0
  74. package/src/errors/account-status.d.ts +7 -0
  75. package/src/errors/account-status.d.ts.map +1 -0
  76. package/src/errors/account-status.js +31 -0
  77. package/src/errors/account-status.js.map +1 -0
  78. package/src/errors/admin-role-not-found.d.ts +6 -0
  79. package/src/errors/admin-role-not-found.d.ts.map +1 -0
  80. package/src/errors/admin-role-not-found.js +13 -0
  81. package/src/errors/admin-role-not-found.js.map +1 -0
  82. package/src/errors/core-typed-handleable.d.ts +12 -0
  83. package/src/errors/core-typed-handleable.d.ts.map +1 -0
  84. package/src/errors/core-typed-handleable.js +51 -0
  85. package/src/errors/core-typed-handleable.js.map +1 -0
  86. package/src/errors/direct-challenge-not-enabled.d.ts +5 -0
  87. package/src/errors/direct-challenge-not-enabled.d.ts.map +1 -0
  88. package/src/errors/direct-challenge-not-enabled.js +16 -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 +13 -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 +15 -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 +15 -0
  101. package/src/errors/email-token-expired.js.map +1 -0
  102. package/src/errors/email-token-failed-to-send.d.ts +6 -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 +22 -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 +21 -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 +15 -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 +15 -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 +13 -0
  121. package/src/errors/failed-to-use-direct-token.js.map +1 -0
  122. package/src/errors/fec-error.d.ts +6 -0
  123. package/src/errors/fec-error.d.ts.map +1 -0
  124. package/src/errors/fec-error.js +26 -0
  125. package/src/errors/fec-error.js.map +1 -0
  126. package/src/errors/generic-validation.d.ts +5 -0
  127. package/src/errors/generic-validation.d.ts.map +1 -0
  128. package/src/errors/generic-validation.js +12 -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 +43 -0
  133. package/src/errors/index.js.map +1 -0
  134. package/src/errors/invalid-backup-code.d.ts +4 -0
  135. package/src/errors/invalid-backup-code.d.ts.map +1 -0
  136. package/src/errors/invalid-backup-code.js +11 -0
  137. package/src/errors/invalid-backup-code.js.map +1 -0
  138. package/src/errors/invalid-challenge-response.d.ts +5 -0
  139. package/src/errors/invalid-challenge-response.d.ts.map +1 -0
  140. package/src/errors/invalid-challenge-response.js +16 -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 +13 -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 +15 -0
  149. package/src/errors/invalid-credentials.js.map +1 -0
  150. package/src/errors/invalid-email.d.ts +8 -0
  151. package/src/errors/invalid-email.d.ts.map +1 -0
  152. package/src/errors/invalid-email.js +25 -0
  153. package/src/errors/invalid-email.js.map +1 -0
  154. package/src/errors/invalid-expired-token.d.ts +7 -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 +5 -0
  159. package/src/errors/invalid-token.d.ts.map +1 -0
  160. package/src/errors/invalid-token.js +16 -0
  161. package/src/errors/invalid-token.js.map +1 -0
  162. package/src/errors/invalid-userid.d.ts +6 -0
  163. package/src/errors/invalid-userid.d.ts.map +1 -0
  164. package/src/errors/invalid-userid.js +18 -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 +13 -0
  169. package/src/errors/invalid-username.js.map +1 -0
  170. package/src/errors/last-admin-error.d.ts +6 -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 +5 -0
  175. package/src/errors/login-challenge-expired.d.ts.map +1 -0
  176. package/src/errors/login-challenge-expired.js +16 -0
  177. package/src/errors/login-challenge-expired.js.map +1 -0
  178. package/src/errors/member-role-not-found.d.ts +6 -0
  179. package/src/errors/member-role-not-found.d.ts.map +1 -0
  180. package/src/errors/member-role-not-found.js +13 -0
  181. package/src/errors/member-role-not-found.js.map +1 -0
  182. package/src/errors/password-login-not-enabled.d.ts +5 -0
  183. package/src/errors/password-login-not-enabled.d.ts.map +1 -0
  184. package/src/errors/password-login-not-enabled.js +16 -0
  185. package/src/errors/password-login-not-enabled.js.map +1 -0
  186. package/src/errors/password-login-not-setup.d.ts +5 -0
  187. package/src/errors/password-login-not-setup.d.ts.map +1 -0
  188. package/src/errors/password-login-not-setup.js +16 -0
  189. package/src/errors/password-login-not-setup.js.map +1 -0
  190. package/src/errors/pbkdf2-error.d.ts +7 -0
  191. package/src/errors/pbkdf2-error.d.ts.map +1 -0
  192. package/src/errors/pbkdf2-error.js +20 -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 +13 -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 +13 -0
  201. package/src/errors/private-key-required.js.map +1 -0
  202. package/src/errors/system-role-not-found.d.ts +6 -0
  203. package/src/errors/system-role-not-found.d.ts.map +1 -0
  204. package/src/errors/system-role-not-found.js +13 -0
  205. package/src/errors/system-role-not-found.js.map +1 -0
  206. package/src/errors/token-not-found.d.ts +7 -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 +10 -0
  211. package/src/errors/translatable-suite-handleable.d.ts.map +1 -0
  212. package/src/errors/translatable-suite-handleable.js +15 -0
  213. package/src/errors/translatable-suite-handleable.js.map +1 -0
  214. package/src/errors/translatable-suite.d.ts +13 -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 +13 -0
  221. package/src/errors/user-not-found.js.map +1 -0
  222. package/src/errors/username-email-required.d.ts +6 -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 +13 -0
  229. package/src/errors/username-in-use.js.map +1 -0
  230. package/src/i18n-setup.d.ts +13 -0
  231. package/src/i18n-setup.d.ts.map +1 -0
  232. package/src/i18n-setup.js +116 -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 +15 -0
  237. package/src/index.js.map +1 -0
  238. package/src/interfaces/backup-code-consts.d.ts +16 -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 +7 -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 +33 -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 +11 -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 +32 -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 +8 -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} +3 -3
  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.d.ts +16 -0
  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 +79 -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 +7 -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 +56 -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 +130 -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.d.ts +4 -0
  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} +2 -1
  299. package/src/interfaces/dto/index.d.ts.map +1 -0
  300. package/src/interfaces/dto/index.js +12 -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 +17 -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 -9
  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.ts → user-settings.d.ts} +2 -1
  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.d.ts +7 -0
  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.d.ts +4 -0
  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} +2 -1
  339. package/src/interfaces/frontend-objects/index.d.ts.map +1 -0
  340. package/src/interfaces/frontend-objects/index.js +9 -0
  341. package/src/interfaces/frontend-objects/index.js.map +1 -0
  342. package/src/interfaces/frontend-objects/request-user.d.ts +17 -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.d.ts +4 -0
  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.d.ts +7 -0
  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 +7 -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 +4 -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.d.ts +7 -0
  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 +7 -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.d.ts +5 -0
  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 +6 -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 +7 -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.d.ts +4 -0
  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 +26 -0
  397. package/src/interfaces/index.js.map +1 -0
  398. package/src/interfaces/success-message.d.ts +5 -0
  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} +2 -2
  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 +4 -0
  419. package/src/lib/hydrate-dehydrate.d.ts.map +1 -0
  420. package/src/lib/hydrate-dehydrate.js +27 -0
  421. package/src/lib/hydrate-dehydrate.js.map +1 -0
  422. package/src/lib/{index.ts → index.d.ts} +2 -2
  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 +3 -0
  439. package/src/strings/de.d.ts.map +1 -0
  440. package/src/strings/de.js +486 -0
  441. package/src/strings/de.js.map +1 -0
  442. package/src/strings/en-GB.d.ts +3 -0
  443. package/src/strings/en-GB.d.ts.map +1 -0
  444. package/src/strings/en-GB.js +486 -0
  445. package/src/strings/en-GB.js.map +1 -0
  446. package/src/strings/en-US.d.ts +3 -0
  447. package/src/strings/en-US.d.ts.map +1 -0
  448. package/src/strings/en-US.js +486 -0
  449. package/src/strings/en-US.js.map +1 -0
  450. package/src/strings/es.d.ts +3 -0
  451. package/src/strings/es.d.ts.map +1 -0
  452. package/src/strings/es.js +486 -0
  453. package/src/strings/es.js.map +1 -0
  454. package/src/strings/fr.d.ts +3 -0
  455. package/src/strings/fr.d.ts.map +1 -0
  456. package/src/strings/fr.js +486 -0
  457. package/src/strings/fr.js.map +1 -0
  458. package/src/strings/ja.d.ts +3 -0
  459. package/src/strings/ja.d.ts.map +1 -0
  460. package/src/strings/ja.js +486 -0
  461. package/src/strings/ja.js.map +1 -0
  462. package/src/strings/uk.d.ts +3 -0
  463. package/src/strings/uk.d.ts.map +1 -0
  464. package/src/strings/uk.js +486 -0
  465. package/src/strings/uk.js.map +1 -0
  466. package/src/strings/zh-CN.d.ts +3 -0
  467. package/src/strings/zh-CN.d.ts.map +1 -0
  468. package/src/strings/zh-CN.js +486 -0
  469. package/src/strings/zh-CN.js.map +1 -0
  470. package/LICENSE +0 -21
  471. package/src/backup-code-string.ts +0 -96
  472. package/src/builders/role-builder.ts +0 -63
  473. package/src/builders/user-builder.ts +0 -72
  474. package/src/constants.ts +0 -220
  475. package/src/core/result.ts +0 -36
  476. package/src/defaults.ts +0 -110
  477. package/src/enumerations/account-status.ts +0 -17
  478. package/src/enumerations/email-token-type.ts +0 -24
  479. package/src/enumerations/fec-error-type.ts +0 -13
  480. package/src/enumerations/pbkdf2-error-type.ts +0 -4
  481. package/src/enumerations/role.ts +0 -5
  482. package/src/enumerations/suite-core-string-key.ts +0 -495
  483. package/src/errors/account-locked.ts +0 -9
  484. package/src/errors/account-status.ts +0 -33
  485. package/src/errors/admin-role-not-found.ts +0 -10
  486. package/src/errors/core-typed-handleable.ts +0 -69
  487. package/src/errors/direct-challenge-not-enabled.ts +0 -12
  488. package/src/errors/direct-token-used.ts +0 -9
  489. package/src/errors/email-in-use.ts +0 -11
  490. package/src/errors/email-token-expired.ts +0 -12
  491. package/src/errors/email-token-failed-to-send.ts +0 -20
  492. package/src/errors/email-token-sent-too-recently.ts +0 -29
  493. package/src/errors/email-token-used-or-invalid.ts +0 -12
  494. package/src/errors/email-verified.ts +0 -11
  495. package/src/errors/failed-to-use-direct-token.ts +0 -9
  496. package/src/errors/fec-error.ts +0 -33
  497. package/src/errors/generic-validation.ts +0 -11
  498. package/src/errors/invalid-backup-code.ts +0 -6
  499. package/src/errors/invalid-challenge-response.ts +0 -12
  500. package/src/errors/invalid-challenge.ts +0 -9
  501. package/src/errors/invalid-credentials.ts +0 -14
  502. package/src/errors/invalid-email.ts +0 -22
  503. package/src/errors/invalid-expired-token.ts +0 -11
  504. package/src/errors/invalid-token.ts +0 -13
  505. package/src/errors/invalid-userid.ts +0 -21
  506. package/src/errors/invalid-username.ts +0 -14
  507. package/src/errors/last-admin-error.ts +0 -12
  508. package/src/errors/login-challenge-expired.ts +0 -12
  509. package/src/errors/member-role-not-found.ts +0 -10
  510. package/src/errors/password-login-not-enabled.ts +0 -12
  511. package/src/errors/password-login-not-setup.ts +0 -12
  512. package/src/errors/pbkdf2-error.ts +0 -19
  513. package/src/errors/pending-email-verification.ts +0 -9
  514. package/src/errors/private-key-required.ts +0 -13
  515. package/src/errors/system-role-not-found.ts +0 -10
  516. package/src/errors/token-not-found.ts +0 -26
  517. package/src/errors/translatable-suite-handleable.ts +0 -27
  518. package/src/errors/translatable-suite.ts +0 -34
  519. package/src/errors/user-not-found.ts +0 -14
  520. package/src/errors/username-email-required.ts +0 -20
  521. package/src/errors/username-in-use.ts +0 -14
  522. package/src/i18n-setup.ts +0 -141
  523. package/src/interfaces/backup-code-consts.ts +0 -15
  524. package/src/interfaces/backup-code.ts +0 -6
  525. package/src/interfaces/bases/email-token.ts +0 -38
  526. package/src/interfaces/bases/role.ts +0 -40
  527. package/src/interfaces/bases/token-role.ts +0 -9
  528. package/src/interfaces/bases/user-role.ts +0 -21
  529. package/src/interfaces/bases/user.ts +0 -88
  530. package/src/interfaces/combined-role-privileges.ts +0 -6
  531. package/src/interfaces/constants.ts +0 -56
  532. package/src/interfaces/core-consts.ts +0 -130
  533. package/src/interfaces/deep-partial.ts +0 -3
  534. package/src/interfaces/dto/request-user.ts +0 -19
  535. package/src/interfaces/failable-result.ts +0 -6
  536. package/src/interfaces/frontend-objects/email-token.ts +0 -8
  537. package/src/interfaces/frontend-objects/request-user.ts +0 -17
  538. package/src/interfaces/frontend-objects/user.ts +0 -9
  539. package/src/interfaces/has-creation.ts +0 -6
  540. package/src/interfaces/has-creator.ts +0 -6
  541. package/src/interfaces/has-id.ts +0 -3
  542. package/src/interfaces/has-soft-delete.ts +0 -6
  543. package/src/interfaces/has-soft-deleter.ts +0 -6
  544. package/src/interfaces/has-timestamp-owners.ts +0 -6
  545. package/src/interfaces/has-timestamps.ts +0 -7
  546. package/src/interfaces/has-updater.ts +0 -6
  547. package/src/interfaces/has-updates.ts +0 -3
  548. package/src/interfaces/success-message.ts +0 -4
  549. package/src/lib/flags.ts +0 -286
  550. package/src/lib/formatters.ts +0 -28
  551. package/src/lib/hydrate-dehydrate.ts +0 -27
  552. package/src/lib/validators-with-constants.ts +0 -72
  553. package/src/lib/validators.ts +0 -72
  554. package/src/local-storage-manager.ts +0 -69
  555. package/src/strings/de.ts +0 -689
  556. package/src/strings/en-GB.ts +0 -626
  557. package/src/strings/en-US.ts +0 -628
  558. package/src/strings/es.ts +0 -688
  559. package/src/strings/fr.ts +0 -685
  560. package/src/strings/ja.ts +0 -654
  561. package/src/strings/uk.ts +0 -667
  562. package/src/strings/zh-CN.ts +0 -566
@@ -1,96 +0,0 @@
1
- import { Constants } from './constants';
2
- import { InvalidBackupCodeError } from './errors/invalid-backup-code';
3
- import { IConstants } from './interfaces';
4
-
5
- export class BackupCodeString {
6
- private readonly _normalizedCode: string;
7
-
8
- constructor(code: string) {
9
- const normalizedCode = BackupCodeString.normalizeCode(code);
10
- if (!Constants.BACKUP_CODES.NormalizedHexRegex.test(normalizedCode)) {
11
- throw new InvalidBackupCodeError();
12
- }
13
- this._normalizedCode = normalizedCode;
14
- }
15
-
16
- public get value(): string {
17
- return BackupCodeString.formatBackupCode(this._normalizedCode);
18
- }
19
-
20
- public get notNullValue(): string {
21
- return BackupCodeString.formatBackupCode(this._normalizedCode);
22
- }
23
-
24
- public get valueAsHexString(): string {
25
- const formattedValue = BackupCodeString.formatBackupCode(
26
- this._normalizedCode,
27
- );
28
- return new TextEncoder().encode(formattedValue).reduce((str, byte) => {
29
- return str + byte.toString(16).padStart(2, '0');
30
- }, '');
31
- }
32
-
33
- public get valueAsBase64String(): string {
34
- const formattedValue = BackupCodeString.formatBackupCode(
35
- this._normalizedCode,
36
- );
37
- return btoa(formattedValue);
38
- }
39
-
40
- public get valueAsUint8Array(): Uint8Array {
41
- const formattedValue = BackupCodeString.formatBackupCode(
42
- this._normalizedCode,
43
- );
44
- return new TextEncoder().encode(formattedValue);
45
- }
46
-
47
- public get hasValue(): boolean {
48
- return this._normalizedCode.length > 0;
49
- }
50
-
51
- public get length(): number {
52
- return this._normalizedCode.length;
53
- }
54
-
55
- public dispose(): void {
56
- // Backup codes are not sensitive enough to require secure disposal
57
- // They're already encrypted when stored in the database
58
- }
59
-
60
- /**
61
- * Format a 32-char normalized code into display form (8 groups of 4).
62
- * Does not restrict characters beyond grouping.
63
- */
64
- public static formatBackupCode(code: string): string {
65
- const groups = code.match(/.{1,4}/g) ?? [code];
66
- return groups.join('-');
67
- }
68
- /**
69
- * Normalize user-entered code: remove spaces and hyphens, lowercase, and trim.
70
- */
71
- public static normalizeCode(input: string): string {
72
- return input.replace(/[\s-]/g, '').toLowerCase().trim();
73
- }
74
-
75
- public static generateBackupCode(): string {
76
- const alphabet = 'abcdefghijklmnopqrstuvwxyz0123456789';
77
- const rnd = crypto.getRandomValues(new Uint8Array(32));
78
- let raw = '';
79
- for (let j = 0; j < 32; j++) {
80
- raw += alphabet[rnd[j] % alphabet.length];
81
- }
82
- return raw;
83
- }
84
-
85
- /**
86
- * Generate the configured number of backup codes.
87
- * Note: If generation alphabet/length is controlled elsewhere, prefer that path.
88
- */
89
- public static generateBackupCodes(constants: IConstants = Constants): Array<BackupCodeString> {
90
- const codes: Array<BackupCodeString> = [];
91
- for (let i = 0; i < constants.BACKUP_CODES.Count; i++) {
92
- codes.push(new BackupCodeString(BackupCodeString.generateBackupCode()));
93
- }
94
- return codes;
95
- }
96
- }
@@ -1,63 +0,0 @@
1
- /**
2
- * Fluent builder for creating role objects
3
- */
4
-
5
- import { Role } from '../enumerations/role';
6
- import { IRoleBase } from '../interfaces/bases/role';
7
-
8
- /**
9
- * Builder for creating role objects with fluent API
10
- */
11
- export class RoleBuilder<I = string, D extends Date | string = Date> {
12
- private data: Partial<IRoleBase<I, D, Role>> = {
13
- admin: false,
14
- member: false,
15
- child: false,
16
- system: false,
17
- };
18
-
19
- static create<I = string, D extends Date | string = Date>(): RoleBuilder<I, D> {
20
- return new RoleBuilder<I, D>();
21
- }
22
-
23
- withName(name: Role): this {
24
- this.data.name = name;
25
- return this;
26
- }
27
-
28
- asAdmin(): this {
29
- this.data.admin = true;
30
- this.data.member = false;
31
- this.data.child = false;
32
- this.data.system = false;
33
- return this;
34
- }
35
-
36
- asMember(): this {
37
- this.data.admin = false;
38
- this.data.member = true;
39
- this.data.child = false;
40
- this.data.system = false;
41
- return this;
42
- }
43
-
44
- asChild(): this {
45
- this.data.admin = false;
46
- this.data.member = false;
47
- this.data.child = true;
48
- this.data.system = false;
49
- return this;
50
- }
51
-
52
- asSystem(): this {
53
- this.data.admin = false;
54
- this.data.member = false;
55
- this.data.child = false;
56
- this.data.system = true;
57
- return this;
58
- }
59
-
60
- build(): Partial<IRoleBase<I, D, Role>> {
61
- return { ...this.data };
62
- }
63
- }
@@ -1,72 +0,0 @@
1
- /**
2
- * Fluent builder for creating user objects
3
- */
4
-
5
- import { AccountStatus } from '../enumerations/account-status';
6
- import { IUserBase } from '../interfaces/bases/user';
7
-
8
- /**
9
- * Builder for creating user objects with fluent API
10
- */
11
- export class UserBuilder<I = string, D extends Date | string = Date, S extends string = string> {
12
- private data: Partial<IUserBase<I, D, S, AccountStatus>> = {
13
- emailVerified: false,
14
- accountStatus: AccountStatus.Active,
15
- directChallenge: false,
16
- backupCodes: [],
17
- timezone: 'UTC',
18
- };
19
-
20
- static create<I = string, D extends Date | string = Date, S extends string = string>(): UserBuilder<I, D, S> {
21
- return new UserBuilder<I, D, S>();
22
- }
23
-
24
- withUsername(username: string): this {
25
- this.data.username = username;
26
- return this;
27
- }
28
-
29
- withEmail(email: string): this {
30
- this.data.email = email;
31
- return this;
32
- }
33
-
34
- withPublicKey(publicKey: string): this {
35
- this.data.publicKey = publicKey;
36
- return this;
37
- }
38
-
39
- withTimezone(timezone: string): this {
40
- this.data.timezone = timezone;
41
- return this;
42
- }
43
-
44
- withSiteLanguage(siteLanguage: S): this {
45
- this.data.siteLanguage = siteLanguage;
46
- return this;
47
- }
48
-
49
- withEmailVerified(verified: boolean): this {
50
- this.data.emailVerified = verified;
51
- return this;
52
- }
53
-
54
- withAccountStatus(status: AccountStatus): this {
55
- this.data.accountStatus = status;
56
- return this;
57
- }
58
-
59
- withDirectChallenge(enabled: boolean): this {
60
- this.data.directChallenge = enabled;
61
- return this;
62
- }
63
-
64
- withMnemonicRecovery(recovery: string): this {
65
- this.data.mnemonicRecovery = recovery;
66
- return this;
67
- }
68
-
69
- build(): Partial<IUserBase<I, D, S, AccountStatus>> {
70
- return { ...this.data };
71
- }
72
- }
package/src/constants.ts DELETED
@@ -1,220 +0,0 @@
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,36 +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, 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
- }
package/src/defaults.ts DELETED
@@ -1,110 +0,0 @@
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
- }
@@ -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,24 +0,0 @@
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
- }
@@ -1,13 +0,0 @@
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
- }
@@ -1,4 +0,0 @@
1
- export enum Pbkdf2ErrorType {
2
- InvalidSaltLength = 'InvalidSaltLength',
3
- InvalidHashLength = 'InvalidHashLength',
4
- }
@@ -1,5 +0,0 @@
1
- export enum Role {
2
- Admin = 'Admin',
3
- Member = 'Member',
4
- System = 'System',
5
- }