@digitaldefiance/node-express-suite 3.6.21 → 3.6.24

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 (860) hide show
  1. package/package.json +8 -7
  2. package/src/__tests__/fixtures/{index.ts → index.d.ts} +1 -0
  3. package/src/__tests__/fixtures/index.d.ts.map +1 -0
  4. package/src/__tests__/fixtures/index.js +5 -0
  5. package/src/__tests__/fixtures/index.js.map +1 -0
  6. package/src/__tests__/fixtures/model-mocks.mock.d.ts +12 -0
  7. package/src/__tests__/fixtures/model-mocks.mock.d.ts.map +1 -0
  8. package/src/__tests__/fixtures/model-mocks.mock.js +102 -0
  9. package/src/__tests__/fixtures/model-mocks.mock.js.map +1 -0
  10. package/src/__tests__/helpers/application.mock.d.ts +8 -0
  11. package/src/__tests__/helpers/application.mock.d.ts.map +1 -0
  12. package/src/__tests__/helpers/application.mock.js +77 -0
  13. package/src/__tests__/helpers/application.mock.js.map +1 -0
  14. package/src/__tests__/helpers/{index.ts → index.d.ts} +1 -0
  15. package/src/__tests__/helpers/index.d.ts.map +1 -0
  16. package/src/__tests__/helpers/index.js +7 -0
  17. package/src/__tests__/helpers/index.js.map +1 -0
  18. package/src/__tests__/helpers/setup-test-env.d.ts +12 -0
  19. package/src/__tests__/helpers/setup-test-env.d.ts.map +1 -0
  20. package/src/__tests__/helpers/setup-test-env.js +121 -0
  21. package/src/__tests__/helpers/setup-test-env.js.map +1 -0
  22. package/src/__tests__/{index.ts → index.d.ts} +1 -0
  23. package/src/__tests__/index.d.ts.map +1 -0
  24. package/src/__tests__/index.js +6 -0
  25. package/src/__tests__/index.js.map +1 -0
  26. package/src/application-base.d.ts +122 -0
  27. package/src/application-base.d.ts.map +1 -0
  28. package/src/application-base.js +359 -0
  29. package/src/application-base.js.map +1 -0
  30. package/src/application-concrete.d.ts +12 -0
  31. package/src/application-concrete.d.ts.map +1 -0
  32. package/src/application-concrete.js +21 -0
  33. package/src/application-concrete.js.map +1 -0
  34. package/src/application.d.ts +28 -0
  35. package/src/application.d.ts.map +1 -0
  36. package/src/application.js +167 -0
  37. package/src/application.js.map +1 -0
  38. package/src/backup-code.d.ts +68 -0
  39. package/src/backup-code.d.ts.map +1 -0
  40. package/src/backup-code.js +238 -0
  41. package/src/backup-code.js.map +1 -0
  42. package/src/builders/application-builder.d.ts +34 -0
  43. package/src/builders/application-builder.d.ts.map +1 -0
  44. package/src/builders/application-builder.js +64 -0
  45. package/src/builders/application-builder.js.map +1 -0
  46. package/src/builders/{index.ts → index.d.ts} +1 -0
  47. package/src/builders/index.d.ts.map +1 -0
  48. package/src/builders/index.js +5 -0
  49. package/src/builders/index.js.map +1 -0
  50. package/src/constants.d.ts +16 -0
  51. package/src/constants.d.ts.map +1 -0
  52. package/src/constants.js +58 -0
  53. package/src/constants.js.map +1 -0
  54. package/src/container/{index.ts → index.d.ts} +1 -0
  55. package/src/container/index.d.ts.map +1 -0
  56. package/src/container/index.js +6 -0
  57. package/src/container/index.js.map +1 -0
  58. package/src/container/service-container.d.ts +11 -0
  59. package/src/container/service-container.d.ts.map +1 -0
  60. package/src/container/service-container.js +38 -0
  61. package/src/container/service-container.js.map +1 -0
  62. package/src/container/service-definitions.d.ts +11 -0
  63. package/src/container/service-definitions.d.ts.map +1 -0
  64. package/src/container/service-definitions.js +13 -0
  65. package/src/container/service-definitions.js.map +1 -0
  66. package/src/controllers/base.d.ts +66 -0
  67. package/src/controllers/base.d.ts.map +1 -0
  68. package/src/controllers/base.js +305 -0
  69. package/src/controllers/base.js.map +1 -0
  70. package/src/controllers/{index.ts → index.d.ts} +1 -0
  71. package/src/controllers/index.d.ts.map +1 -0
  72. package/src/controllers/index.js +6 -0
  73. package/src/controllers/index.js.map +1 -0
  74. package/src/controllers/user.d.ts +50 -0
  75. package/src/controllers/user.d.ts.map +1 -0
  76. package/src/controllers/user.js +918 -0
  77. package/src/controllers/user.js.map +1 -0
  78. package/src/database/{database-initializer.ts → database-initializer.d.ts} +3 -3
  79. package/src/database/database-initializer.d.ts.map +1 -0
  80. package/src/database/database-initializer.js +3 -0
  81. package/src/database/database-initializer.js.map +1 -0
  82. package/src/database/{index.ts → index.d.ts} +1 -0
  83. package/src/database/index.d.ts.map +1 -0
  84. package/src/database/index.js +5 -0
  85. package/src/database/index.js.map +1 -0
  86. package/src/decorators/base-controller.d.ts +10 -0
  87. package/src/decorators/base-controller.d.ts.map +1 -0
  88. package/src/decorators/base-controller.js +60 -0
  89. package/src/decorators/base-controller.js.map +1 -0
  90. package/src/decorators/controller.d.ts +38 -0
  91. package/src/decorators/controller.d.ts.map +1 -0
  92. package/src/decorators/controller.js +68 -0
  93. package/src/decorators/controller.js.map +1 -0
  94. package/src/decorators/{index.ts → index.d.ts} +1 -0
  95. package/src/decorators/index.d.ts.map +1 -0
  96. package/src/decorators/index.js +7 -0
  97. package/src/decorators/index.js.map +1 -0
  98. package/src/decorators/zod-validation.d.ts +5 -0
  99. package/src/decorators/zod-validation.d.ts.map +1 -0
  100. package/src/decorators/zod-validation.js +48 -0
  101. package/src/decorators/zod-validation.js.map +1 -0
  102. package/src/defaults.d.ts +7 -0
  103. package/src/defaults.d.ts.map +1 -0
  104. package/src/defaults.js +204 -0
  105. package/src/defaults.js.map +1 -0
  106. package/src/documents/base.d.ts +4 -0
  107. package/src/documents/base.d.ts.map +1 -0
  108. package/src/documents/base.js +3 -0
  109. package/src/documents/base.js.map +1 -0
  110. package/src/documents/email-token.d.ts +8 -0
  111. package/src/documents/email-token.d.ts.map +1 -0
  112. package/src/documents/email-token.js +3 -0
  113. package/src/documents/email-token.js.map +1 -0
  114. package/src/documents/{index.ts → index.d.ts} +1 -0
  115. package/src/documents/index.d.ts.map +1 -0
  116. package/src/documents/index.js +3 -0
  117. package/src/documents/index.js.map +1 -0
  118. package/src/documents/{mnemonic.ts → mnemonic.d.ts} +2 -4
  119. package/src/documents/mnemonic.d.ts.map +1 -0
  120. package/src/documents/mnemonic.js +3 -0
  121. package/src/documents/mnemonic.js.map +1 -0
  122. package/src/documents/{role.ts → role.d.ts} +2 -3
  123. package/src/documents/role.d.ts.map +1 -0
  124. package/src/documents/role.js +3 -0
  125. package/src/documents/role.js.map +1 -0
  126. package/src/documents/used-direct-login-token.d.ts +5 -0
  127. package/src/documents/used-direct-login-token.d.ts.map +1 -0
  128. package/src/documents/used-direct-login-token.js +3 -0
  129. package/src/documents/used-direct-login-token.js.map +1 -0
  130. package/src/documents/{user-role.ts → user-role.d.ts} +2 -4
  131. package/src/documents/user-role.d.ts.map +1 -0
  132. package/src/documents/user-role.js +3 -0
  133. package/src/documents/user-role.js.map +1 -0
  134. package/src/documents/{user.ts → user.d.ts} +2 -5
  135. package/src/documents/user.d.ts.map +1 -0
  136. package/src/documents/user.js +3 -0
  137. package/src/documents/user.js.map +1 -0
  138. package/src/enumerations/base-model-name.d.ts +38 -0
  139. package/src/enumerations/base-model-name.d.ts.map +1 -0
  140. package/src/enumerations/base-model-name.js +34 -0
  141. package/src/enumerations/base-model-name.js.map +1 -0
  142. package/src/enumerations/{index.ts → index.d.ts} +1 -0
  143. package/src/enumerations/index.d.ts.map +1 -0
  144. package/src/enumerations/index.js +8 -0
  145. package/src/enumerations/index.js.map +1 -0
  146. package/src/enumerations/length-encoding-type.d.ts +7 -0
  147. package/src/enumerations/length-encoding-type.d.ts.map +1 -0
  148. package/src/enumerations/length-encoding-type.js +11 -0
  149. package/src/enumerations/length-encoding-type.js.map +1 -0
  150. package/src/enumerations/schema-collection.d.ts +34 -0
  151. package/src/enumerations/schema-collection.d.ts.map +1 -0
  152. package/src/enumerations/schema-collection.js +38 -0
  153. package/src/enumerations/schema-collection.js.map +1 -0
  154. package/src/enumerations/symmetric-error-type.d.ts +5 -0
  155. package/src/enumerations/symmetric-error-type.d.ts.map +1 -0
  156. package/src/enumerations/symmetric-error-type.js +9 -0
  157. package/src/enumerations/symmetric-error-type.js.map +1 -0
  158. package/src/environment.d.ts +190 -0
  159. package/src/environment.d.ts.map +1 -0
  160. package/src/environment.js +646 -0
  161. package/src/environment.js.map +1 -0
  162. package/src/errors/express-validation.d.ts +9 -0
  163. package/src/errors/express-validation.d.ts.map +1 -0
  164. package/src/errors/express-validation.js +18 -0
  165. package/src/errors/express-validation.js.map +1 -0
  166. package/src/errors/{index.ts → index.d.ts} +1 -0
  167. package/src/errors/index.d.ts.map +1 -0
  168. package/src/errors/index.js +16 -0
  169. package/src/errors/index.js.map +1 -0
  170. package/src/errors/invalid-backup-code-version.d.ts +6 -0
  171. package/src/errors/invalid-backup-code-version.d.ts.map +1 -0
  172. package/src/errors/invalid-backup-code-version.js +16 -0
  173. package/src/errors/invalid-backup-code-version.js.map +1 -0
  174. package/src/errors/invalid-jwt-token.d.ts +5 -0
  175. package/src/errors/invalid-jwt-token.d.ts.map +1 -0
  176. package/src/errors/invalid-jwt-token.js +12 -0
  177. package/src/errors/invalid-jwt-token.js.map +1 -0
  178. package/src/errors/invalid-model.d.ts +6 -0
  179. package/src/errors/invalid-model.d.ts.map +1 -0
  180. package/src/errors/invalid-model.js +14 -0
  181. package/src/errors/invalid-model.js.map +1 -0
  182. package/src/errors/invalid-new-password.d.ts +5 -0
  183. package/src/errors/invalid-new-password.d.ts.map +1 -0
  184. package/src/errors/invalid-new-password.js +14 -0
  185. package/src/errors/invalid-new-password.js.map +1 -0
  186. package/src/errors/invalid-password.d.ts +5 -0
  187. package/src/errors/invalid-password.d.ts.map +1 -0
  188. package/src/errors/invalid-password.js +14 -0
  189. package/src/errors/invalid-password.js.map +1 -0
  190. package/src/errors/missing-validated-data.d.ts +7 -0
  191. package/src/errors/missing-validated-data.d.ts.map +1 -0
  192. package/src/errors/missing-validated-data.js +36 -0
  193. package/src/errors/missing-validated-data.js.map +1 -0
  194. package/src/errors/mnemonic-or-password-required.d.ts +5 -0
  195. package/src/errors/mnemonic-or-password-required.d.ts.map +1 -0
  196. package/src/errors/mnemonic-or-password-required.js +14 -0
  197. package/src/errors/mnemonic-or-password-required.js.map +1 -0
  198. package/src/errors/model-not-registered.d.ts +6 -0
  199. package/src/errors/model-not-registered.d.ts.map +1 -0
  200. package/src/errors/model-not-registered.js +14 -0
  201. package/src/errors/model-not-registered.js.map +1 -0
  202. package/src/errors/mongoose-validation.d.ts +12 -0
  203. package/src/errors/mongoose-validation.d.ts.map +1 -0
  204. package/src/errors/mongoose-validation.js +17 -0
  205. package/src/errors/mongoose-validation.js.map +1 -0
  206. package/src/errors/symmetric.d.ts +8 -0
  207. package/src/errors/symmetric.d.ts.map +1 -0
  208. package/src/errors/symmetric.js +22 -0
  209. package/src/errors/symmetric.js.map +1 -0
  210. package/src/errors/token-expired.d.ts +5 -0
  211. package/src/errors/token-expired.d.ts.map +1 -0
  212. package/src/errors/token-expired.js +12 -0
  213. package/src/errors/token-expired.js.map +1 -0
  214. package/src/get-language.d.ts +2 -0
  215. package/src/get-language.d.ts.map +1 -0
  216. package/src/get-language.js +30 -0
  217. package/src/get-language.js.map +1 -0
  218. package/src/get-timezone.d.ts +2 -0
  219. package/src/get-timezone.d.ts.map +1 -0
  220. package/src/get-timezone.js +39 -0
  221. package/src/get-timezone.js.map +1 -0
  222. package/src/{index.ts → index.d.ts} +1 -2
  223. package/src/index.d.ts.map +1 -0
  224. package/src/index.js +42 -0
  225. package/src/index.js.map +1 -0
  226. package/src/interfaces/{api-error-response.ts → api-error-response.d.ts} +2 -2
  227. package/src/interfaces/api-error-response.d.ts.map +1 -0
  228. package/src/interfaces/api-error-response.js +3 -0
  229. package/src/interfaces/api-error-response.js.map +1 -0
  230. package/src/interfaces/api-express-validation-error-response.d.ts +7 -0
  231. package/src/interfaces/api-express-validation-error-response.d.ts.map +1 -0
  232. package/src/interfaces/api-express-validation-error-response.js +3 -0
  233. package/src/interfaces/api-express-validation-error-response.js.map +1 -0
  234. package/src/interfaces/api-message-response.d.ts +4 -0
  235. package/src/interfaces/api-message-response.d.ts.map +1 -0
  236. package/src/interfaces/api-message-response.js +3 -0
  237. package/src/interfaces/api-message-response.js.map +1 -0
  238. package/src/interfaces/{api-mongo-validation-error-response.ts → api-mongo-validation-error-response.d.ts} +2 -2
  239. package/src/interfaces/api-mongo-validation-error-response.d.ts.map +1 -0
  240. package/src/interfaces/api-mongo-validation-error-response.js +3 -0
  241. package/src/interfaces/api-mongo-validation-error-response.js.map +1 -0
  242. package/src/interfaces/api-responses/{backup-codes-response.ts → backup-codes-response.d.ts} +2 -2
  243. package/src/interfaces/api-responses/backup-codes-response.d.ts.map +1 -0
  244. package/src/interfaces/api-responses/backup-codes-response.js +3 -0
  245. package/src/interfaces/api-responses/backup-codes-response.js.map +1 -0
  246. package/src/interfaces/api-responses/{challenge-response.ts → challenge-response.d.ts} +3 -3
  247. package/src/interfaces/api-responses/challenge-response.d.ts.map +1 -0
  248. package/src/interfaces/api-responses/challenge-response.js +3 -0
  249. package/src/interfaces/api-responses/challenge-response.js.map +1 -0
  250. package/src/interfaces/api-responses/{code-count-response.ts → code-count-response.d.ts} +2 -2
  251. package/src/interfaces/api-responses/code-count-response.d.ts.map +1 -0
  252. package/src/interfaces/api-responses/code-count-response.js +3 -0
  253. package/src/interfaces/api-responses/code-count-response.js.map +1 -0
  254. package/src/interfaces/api-responses/{index.ts → index.d.ts} +1 -0
  255. package/src/interfaces/api-responses/index.d.ts.map +1 -0
  256. package/src/interfaces/api-responses/index.js +12 -0
  257. package/src/interfaces/api-responses/index.js.map +1 -0
  258. package/src/interfaces/api-responses/{login-response.ts → login-response.d.ts} +4 -4
  259. package/src/interfaces/api-responses/login-response.d.ts.map +1 -0
  260. package/src/interfaces/api-responses/login-response.js +3 -0
  261. package/src/interfaces/api-responses/login-response.js.map +1 -0
  262. package/src/interfaces/api-responses/{mnemonic-response.ts → mnemonic-response.d.ts} +2 -2
  263. package/src/interfaces/api-responses/mnemonic-response.d.ts.map +1 -0
  264. package/src/interfaces/api-responses/mnemonic-response.js +3 -0
  265. package/src/interfaces/api-responses/mnemonic-response.js.map +1 -0
  266. package/src/interfaces/api-responses/{registration-response.ts → registration-response.d.ts} +3 -3
  267. package/src/interfaces/api-responses/registration-response.d.ts.map +1 -0
  268. package/src/interfaces/api-responses/registration-response.js +3 -0
  269. package/src/interfaces/api-responses/registration-response.js.map +1 -0
  270. package/src/interfaces/api-responses/{request-user-response.ts → request-user-response.d.ts} +2 -2
  271. package/src/interfaces/api-responses/request-user-response.d.ts.map +1 -0
  272. package/src/interfaces/api-responses/request-user-response.js +3 -0
  273. package/src/interfaces/api-responses/request-user-response.js.map +1 -0
  274. package/src/interfaces/api-responses/user-settings-response.d.ts +12 -0
  275. package/src/interfaces/api-responses/user-settings-response.d.ts.map +1 -0
  276. package/src/interfaces/api-responses/user-settings-response.js +3 -0
  277. package/src/interfaces/api-responses/user-settings-response.js.map +1 -0
  278. package/src/interfaces/application.d.ts +16 -0
  279. package/src/interfaces/application.d.ts.map +1 -0
  280. package/src/interfaces/application.js +3 -0
  281. package/src/interfaces/application.js.map +1 -0
  282. package/src/interfaces/backend-objects/email-token.d.ts +4 -0
  283. package/src/interfaces/backend-objects/email-token.d.ts.map +1 -0
  284. package/src/interfaces/backend-objects/email-token.js +3 -0
  285. package/src/interfaces/backend-objects/email-token.js.map +1 -0
  286. package/src/interfaces/backend-objects/{index.ts → index.d.ts} +1 -0
  287. package/src/interfaces/backend-objects/index.d.ts.map +1 -0
  288. package/src/interfaces/backend-objects/index.js +8 -0
  289. package/src/interfaces/backend-objects/index.js.map +1 -0
  290. package/src/interfaces/backend-objects/request-user.d.ts +5 -0
  291. package/src/interfaces/backend-objects/request-user.d.ts.map +1 -0
  292. package/src/interfaces/backend-objects/request-user.js +3 -0
  293. package/src/interfaces/backend-objects/request-user.js.map +1 -0
  294. package/src/interfaces/backend-objects/role.d.ts +4 -0
  295. package/src/interfaces/backend-objects/role.d.ts.map +1 -0
  296. package/src/interfaces/backend-objects/role.js +3 -0
  297. package/src/interfaces/backend-objects/role.js.map +1 -0
  298. package/src/interfaces/backend-objects/user.d.ts +4 -0
  299. package/src/interfaces/backend-objects/user.d.ts.map +1 -0
  300. package/src/interfaces/backend-objects/user.js +3 -0
  301. package/src/interfaces/backend-objects/user.js.map +1 -0
  302. package/src/interfaces/checksum-config.d.ts +5 -0
  303. package/src/interfaces/checksum-config.d.ts.map +1 -0
  304. package/src/interfaces/checksum-config.js +3 -0
  305. package/src/interfaces/checksum-config.js.map +1 -0
  306. package/src/interfaces/checksum-consts.d.ts +11 -0
  307. package/src/interfaces/checksum-consts.d.ts.map +1 -0
  308. package/src/interfaces/checksum-consts.js +3 -0
  309. package/src/interfaces/checksum-consts.js.map +1 -0
  310. package/src/interfaces/constants.d.ts +98 -0
  311. package/src/interfaces/constants.d.ts.map +1 -0
  312. package/src/interfaces/constants.js +3 -0
  313. package/src/interfaces/constants.js.map +1 -0
  314. package/src/interfaces/controller-config.d.ts +21 -0
  315. package/src/interfaces/controller-config.d.ts.map +1 -0
  316. package/src/interfaces/controller-config.js +3 -0
  317. package/src/interfaces/controller-config.js.map +1 -0
  318. package/src/interfaces/create-user-basics.d.ts +18 -0
  319. package/src/interfaces/create-user-basics.d.ts.map +1 -0
  320. package/src/interfaces/create-user-basics.js +3 -0
  321. package/src/interfaces/create-user-basics.js.map +1 -0
  322. package/src/interfaces/csp-config.d.ts +7 -0
  323. package/src/interfaces/csp-config.d.ts.map +1 -0
  324. package/src/interfaces/csp-config.js +13 -0
  325. package/src/interfaces/csp-config.js.map +1 -0
  326. package/src/interfaces/csp-definition.d.ts +13 -0
  327. package/src/interfaces/csp-definition.d.ts.map +1 -0
  328. package/src/interfaces/csp-definition.js +22 -0
  329. package/src/interfaces/csp-definition.js.map +1 -0
  330. package/src/interfaces/{db-init-result.ts → db-init-result.d.ts} +2 -2
  331. package/src/interfaces/db-init-result.d.ts.map +1 -0
  332. package/src/interfaces/db-init-result.js +3 -0
  333. package/src/interfaces/db-init-result.js.map +1 -0
  334. package/src/interfaces/deep-partial.d.ts +4 -0
  335. package/src/interfaces/deep-partial.d.ts.map +1 -0
  336. package/src/interfaces/deep-partial.js +3 -0
  337. package/src/interfaces/deep-partial.js.map +1 -0
  338. package/src/interfaces/{discriminator-collections.ts → discriminator-collections.d.ts} +3 -3
  339. package/src/interfaces/discriminator-collections.d.ts.map +1 -0
  340. package/src/interfaces/discriminator-collections.js +3 -0
  341. package/src/interfaces/discriminator-collections.js.map +1 -0
  342. package/src/interfaces/email-service.d.ts +4 -0
  343. package/src/interfaces/email-service.d.ts.map +1 -0
  344. package/src/interfaces/email-service.js +3 -0
  345. package/src/interfaces/email-service.js.map +1 -0
  346. package/src/interfaces/environment-mongo.d.ts +76 -0
  347. package/src/interfaces/environment-mongo.d.ts.map +1 -0
  348. package/src/interfaces/environment-mongo.js +3 -0
  349. package/src/interfaces/environment-mongo.js.map +1 -0
  350. package/src/interfaces/environment.d.ts +184 -0
  351. package/src/interfaces/environment.d.ts.map +1 -0
  352. package/src/interfaces/environment.js +3 -0
  353. package/src/interfaces/environment.js.map +1 -0
  354. package/src/interfaces/failable-result.d.ts +7 -0
  355. package/src/interfaces/failable-result.d.ts.map +1 -0
  356. package/src/interfaces/failable-result.js +3 -0
  357. package/src/interfaces/failable-result.js.map +1 -0
  358. package/src/interfaces/fec-consts.d.ts +5 -0
  359. package/src/interfaces/fec-consts.d.ts.map +1 -0
  360. package/src/interfaces/fec-consts.js +3 -0
  361. package/src/interfaces/fec-consts.js.map +1 -0
  362. package/src/interfaces/flexible-csp.d.ts +8 -0
  363. package/src/interfaces/flexible-csp.d.ts.map +1 -0
  364. package/src/interfaces/flexible-csp.js +14 -0
  365. package/src/interfaces/flexible-csp.js.map +1 -0
  366. package/src/interfaces/handleable-error-options.d.ts +7 -0
  367. package/src/interfaces/handleable-error-options.d.ts.map +1 -0
  368. package/src/interfaces/handleable-error-options.js +3 -0
  369. package/src/interfaces/handleable-error-options.js.map +1 -0
  370. package/src/interfaces/{index.ts → index.d.ts} +1 -0
  371. package/src/interfaces/index.d.ts.map +1 -0
  372. package/src/interfaces/index.js +38 -0
  373. package/src/interfaces/index.js.map +1 -0
  374. package/src/interfaces/jwt-consts.d.ts +11 -0
  375. package/src/interfaces/jwt-consts.d.ts.map +1 -0
  376. package/src/interfaces/jwt-consts.js +3 -0
  377. package/src/interfaces/jwt-consts.js.map +1 -0
  378. package/src/interfaces/jwt-sign-response.d.ts +11 -0
  379. package/src/interfaces/jwt-sign-response.d.ts.map +1 -0
  380. package/src/interfaces/jwt-sign-response.js +3 -0
  381. package/src/interfaces/jwt-sign-response.js.map +1 -0
  382. package/src/interfaces/models/{email-token.ts → email-token.d.ts} +1 -1
  383. package/src/interfaces/models/email-token.d.ts.map +1 -0
  384. package/src/interfaces/models/email-token.js +3 -0
  385. package/src/interfaces/models/email-token.js.map +1 -0
  386. package/src/interfaces/models/{index.ts → index.d.ts} +1 -0
  387. package/src/interfaces/models/index.d.ts.map +1 -0
  388. package/src/interfaces/models/index.js +11 -0
  389. package/src/interfaces/models/index.js.map +1 -0
  390. package/src/interfaces/models/{mnemonic.ts → mnemonic.d.ts} +1 -1
  391. package/src/interfaces/models/mnemonic.d.ts.map +1 -0
  392. package/src/interfaces/models/mnemonic.js +3 -0
  393. package/src/interfaces/models/mnemonic.js.map +1 -0
  394. package/src/interfaces/models/{role.ts → role.d.ts} +1 -1
  395. package/src/interfaces/models/role.d.ts.map +1 -0
  396. package/src/interfaces/models/role.js +3 -0
  397. package/src/interfaces/models/role.js.map +1 -0
  398. package/src/interfaces/models/{token-role.ts → token-role.d.ts} +1 -1
  399. package/src/interfaces/models/token-role.d.ts.map +1 -0
  400. package/src/interfaces/models/token-role.js +3 -0
  401. package/src/interfaces/models/token-role.js.map +1 -0
  402. package/src/interfaces/models/{used-direct-login-token.ts → used-direct-login-token.d.ts} +2 -3
  403. package/src/interfaces/models/used-direct-login-token.d.ts.map +1 -0
  404. package/src/interfaces/models/used-direct-login-token.js +3 -0
  405. package/src/interfaces/models/used-direct-login-token.js.map +1 -0
  406. package/src/interfaces/models/{user-role.ts → user-role.d.ts} +1 -1
  407. package/src/interfaces/models/user-role.d.ts.map +1 -0
  408. package/src/interfaces/models/user-role.js +3 -0
  409. package/src/interfaces/models/user-role.js.map +1 -0
  410. package/src/interfaces/models/{user.ts → user.d.ts} +3 -11
  411. package/src/interfaces/models/user.d.ts.map +1 -0
  412. package/src/interfaces/models/user.js +3 -0
  413. package/src/interfaces/models/user.js.map +1 -0
  414. package/src/interfaces/mongo-errors.d.ts +5 -0
  415. package/src/interfaces/mongo-errors.d.ts.map +1 -0
  416. package/src/interfaces/mongo-errors.js +3 -0
  417. package/src/interfaces/mongo-errors.js.map +1 -0
  418. package/src/interfaces/request-user.d.ts +58 -0
  419. package/src/interfaces/request-user.d.ts.map +1 -0
  420. package/src/interfaces/request-user.js +3 -0
  421. package/src/interfaces/request-user.js.map +1 -0
  422. package/src/interfaces/required-string-keys.d.ts +22 -0
  423. package/src/interfaces/required-string-keys.d.ts.map +1 -0
  424. package/src/interfaces/required-string-keys.js +3 -0
  425. package/src/interfaces/required-string-keys.js.map +1 -0
  426. package/src/interfaces/schema.d.ts +29 -0
  427. package/src/interfaces/schema.d.ts.map +1 -0
  428. package/src/interfaces/schema.js +3 -0
  429. package/src/interfaces/schema.js.map +1 -0
  430. package/src/interfaces/server-init-result.d.ts +36 -0
  431. package/src/interfaces/server-init-result.d.ts.map +1 -0
  432. package/src/interfaces/server-init-result.js +3 -0
  433. package/src/interfaces/server-init-result.js.map +1 -0
  434. package/src/interfaces/status-code-response.d.ts +7 -0
  435. package/src/interfaces/status-code-response.d.ts.map +1 -0
  436. package/src/interfaces/status-code-response.js +3 -0
  437. package/src/interfaces/status-code-response.js.map +1 -0
  438. package/src/interfaces/symmetric-encryption-results.d.ts +3 -3
  439. package/src/interfaces/symmetric-encryption-results.d.ts.map +1 -1
  440. package/src/interfaces/symmetric-encryption-results.js.map +1 -1
  441. package/src/interfaces/{test-environment.ts → test-environment.d.ts} +6 -6
  442. package/src/interfaces/test-environment.d.ts.map +1 -0
  443. package/src/interfaces/test-environment.js +3 -0
  444. package/src/interfaces/test-environment.js.map +1 -0
  445. package/src/interfaces/{token-response.ts → token-response.d.ts} +2 -2
  446. package/src/interfaces/token-response.d.ts.map +1 -0
  447. package/src/interfaces/token-response.js +3 -0
  448. package/src/interfaces/token-response.js.map +1 -0
  449. package/src/middlewares/authenticate-crypto.d.ts +10 -0
  450. package/src/middlewares/authenticate-crypto.d.ts.map +1 -0
  451. package/src/middlewares/authenticate-crypto.js +126 -0
  452. package/src/middlewares/authenticate-crypto.js.map +1 -0
  453. package/src/middlewares/authenticate-token.d.ts +21 -0
  454. package/src/middlewares/authenticate-token.d.ts.map +1 -0
  455. package/src/middlewares/authenticate-token.js +104 -0
  456. package/src/middlewares/authenticate-token.js.map +1 -0
  457. package/src/middlewares/cleanup-crypto.d.ts +7 -0
  458. package/src/middlewares/cleanup-crypto.d.ts.map +1 -0
  459. package/src/middlewares/cleanup-crypto.js +32 -0
  460. package/src/middlewares/cleanup-crypto.js.map +1 -0
  461. package/src/middlewares/{index.ts → index.d.ts} +1 -0
  462. package/src/middlewares/index.d.ts.map +1 -0
  463. package/src/middlewares/index.js +8 -0
  464. package/src/middlewares/index.js.map +1 -0
  465. package/src/middlewares/set-global-context-language.d.ts +3 -0
  466. package/src/middlewares/set-global-context-language.d.ts.map +1 -0
  467. package/src/middlewares/set-global-context-language.js +14 -0
  468. package/src/middlewares/set-global-context-language.js.map +1 -0
  469. package/src/middlewares.d.ts +8 -0
  470. package/src/middlewares.d.ts.map +1 -0
  471. package/src/middlewares.js +91 -0
  472. package/src/middlewares.js.map +1 -0
  473. package/src/model-registry.d.ts +23 -0
  474. package/src/model-registry.d.ts.map +1 -0
  475. package/src/model-registry.js +47 -0
  476. package/src/model-registry.js.map +1 -0
  477. package/src/models/email-token.d.ts +35 -11
  478. package/src/models/email-token.d.ts.map +1 -0
  479. package/src/models/email-token.js +11 -0
  480. package/src/models/email-token.js.map +1 -0
  481. package/src/models/{index.ts → index.d.ts} +1 -0
  482. package/src/models/index.d.ts.map +1 -0
  483. package/src/models/index.js +10 -0
  484. package/src/models/index.js.map +1 -0
  485. package/src/models/mnemonic.d.ts +35 -11
  486. package/src/models/mnemonic.d.ts.map +1 -0
  487. package/src/models/mnemonic.js +11 -0
  488. package/src/models/mnemonic.js.map +1 -0
  489. package/src/models/role.d.ts +35 -11
  490. package/src/models/role.d.ts.map +1 -0
  491. package/src/models/role.js +11 -0
  492. package/src/models/role.js.map +1 -0
  493. package/src/models/used-direct-login-token.d.ts +35 -11
  494. package/src/models/used-direct-login-token.d.ts.map +1 -0
  495. package/src/models/used-direct-login-token.js +11 -0
  496. package/src/models/used-direct-login-token.js.map +1 -0
  497. package/src/models/user-role.d.ts +3 -10
  498. package/src/models/user-role.d.ts.map +1 -0
  499. package/src/models/user-role.js +10 -0
  500. package/src/models/user-role.js.map +1 -0
  501. package/src/models/user.d.ts +3 -16
  502. package/src/models/user.d.ts.map +1 -0
  503. package/src/models/user.js +11 -0
  504. package/src/models/user.js.map +1 -0
  505. package/src/pipeline/{index.ts → index.d.ts} +1 -0
  506. package/src/pipeline/index.d.ts.map +1 -0
  507. package/src/pipeline/index.js +5 -0
  508. package/src/pipeline/index.js.map +1 -0
  509. package/src/pipeline/pipeline-builder.d.ts +8 -0
  510. package/src/pipeline/pipeline-builder.d.ts.map +1 -0
  511. package/src/pipeline/pipeline-builder.js +18 -0
  512. package/src/pipeline/pipeline-builder.js.map +1 -0
  513. package/src/plugins/{index.ts → index.d.ts} +1 -0
  514. package/src/plugins/index.d.ts.map +1 -0
  515. package/src/plugins/index.js +6 -0
  516. package/src/plugins/index.js.map +1 -0
  517. package/src/plugins/plugin-interface.d.ts +8 -0
  518. package/src/plugins/plugin-interface.d.ts.map +1 -0
  519. package/src/plugins/plugin-interface.js +3 -0
  520. package/src/plugins/plugin-interface.js.map +1 -0
  521. package/src/plugins/plugin-manager.d.ts +12 -0
  522. package/src/plugins/plugin-manager.d.ts.map +1 -0
  523. package/src/plugins/plugin-manager.js +37 -0
  524. package/src/plugins/plugin-manager.js.map +1 -0
  525. package/src/registry/email-service-registry.d.ts +27 -0
  526. package/src/registry/email-service-registry.d.ts.map +1 -0
  527. package/src/registry/email-service-registry.js +42 -0
  528. package/src/registry/email-service-registry.js.map +1 -0
  529. package/src/registry/{index.ts → index.d.ts} +1 -0
  530. package/src/registry/index.d.ts.map +1 -0
  531. package/src/registry/index.js +6 -0
  532. package/src/registry/index.js.map +1 -0
  533. package/src/responses/{index.ts → index.d.ts} +1 -0
  534. package/src/responses/index.d.ts.map +1 -0
  535. package/src/responses/index.js +5 -0
  536. package/src/responses/index.js.map +1 -0
  537. package/src/responses/response-builder.d.ts +24 -0
  538. package/src/responses/response-builder.d.ts.map +1 -0
  539. package/src/responses/response-builder.js +63 -0
  540. package/src/responses/response-builder.js.map +1 -0
  541. package/src/routers/api.d.ts +28 -0
  542. package/src/routers/api.d.ts.map +1 -0
  543. package/src/routers/api.js +80 -0
  544. package/src/routers/api.js.map +1 -0
  545. package/src/routers/app.d.ts +32 -0
  546. package/src/routers/app.d.ts.map +1 -0
  547. package/src/routers/app.js +228 -0
  548. package/src/routers/app.js.map +1 -0
  549. package/src/routers/base.d.ts +8 -0
  550. package/src/routers/base.d.ts.map +1 -0
  551. package/src/routers/base.js +14 -0
  552. package/src/routers/base.js.map +1 -0
  553. package/src/routers/{index.ts → index.d.ts} +1 -0
  554. package/src/routers/index.d.ts.map +1 -0
  555. package/src/routers/index.js +7 -0
  556. package/src/routers/index.js.map +1 -0
  557. package/src/routers/router-config.d.ts +18 -0
  558. package/src/routers/router-config.d.ts.map +1 -0
  559. package/src/routers/router-config.js +8 -0
  560. package/src/routers/router-config.js.map +1 -0
  561. package/src/routing/index.d.ts +2 -0
  562. package/src/routing/index.d.ts.map +1 -0
  563. package/src/routing/index.js +5 -0
  564. package/src/routing/index.js.map +1 -0
  565. package/src/routing/route-builder.d.ts +36 -0
  566. package/src/routing/route-builder.d.ts.map +1 -0
  567. package/src/routing/route-builder.js +86 -0
  568. package/src/routing/route-builder.js.map +1 -0
  569. package/src/schemas/email-token.d.ts +47 -13
  570. package/src/schemas/email-token.d.ts.map +1 -0
  571. package/src/schemas/email-token.js +55 -0
  572. package/src/schemas/email-token.js.map +1 -0
  573. package/src/schemas/{index.ts → index.d.ts} +1 -0
  574. package/src/schemas/index.d.ts.map +1 -0
  575. package/src/schemas/index.js +11 -0
  576. package/src/schemas/index.js.map +1 -0
  577. package/src/schemas/mnemonic.d.ts +26 -10
  578. package/src/schemas/mnemonic.d.ts.map +1 -0
  579. package/src/schemas/mnemonic.js +31 -0
  580. package/src/schemas/mnemonic.js.map +1 -0
  581. package/src/schemas/role.d.ts +40 -13
  582. package/src/schemas/role.d.ts.map +1 -0
  583. package/src/schemas/role.js +89 -0
  584. package/src/schemas/role.js.map +1 -0
  585. package/src/schemas/schema.d.ts +42 -0
  586. package/src/schemas/schema.d.ts.map +1 -0
  587. package/src/schemas/schema.js +70 -0
  588. package/src/schemas/schema.js.map +1 -0
  589. package/src/schemas/used-direct-login-token.d.ts +35 -12
  590. package/src/schemas/used-direct-login-token.d.ts.map +1 -0
  591. package/src/schemas/used-direct-login-token.js +24 -0
  592. package/src/schemas/used-direct-login-token.js.map +1 -0
  593. package/src/schemas/user-role.d.ts +37 -12
  594. package/src/schemas/user-role.d.ts.map +1 -0
  595. package/src/schemas/user-role.js +55 -0
  596. package/src/schemas/user-role.js.map +1 -0
  597. package/src/schemas/user.d.ts +23 -18
  598. package/src/schemas/user.d.ts.map +1 -0
  599. package/src/schemas/user.js +195 -0
  600. package/src/schemas/user.js.map +1 -0
  601. package/src/services/backup-code.d.ts +76 -0
  602. package/src/services/backup-code.d.ts.map +1 -0
  603. package/src/services/backup-code.js +185 -0
  604. package/src/services/backup-code.js.map +1 -0
  605. package/src/services/base.d.ts +10 -0
  606. package/src/services/base.d.ts.map +1 -0
  607. package/src/services/base.js +15 -0
  608. package/src/services/base.js.map +1 -0
  609. package/src/services/checksum.d.ts +69 -0
  610. package/src/services/checksum.d.ts.map +1 -0
  611. package/src/services/checksum.js +145 -0
  612. package/src/services/checksum.js.map +1 -0
  613. package/src/services/crc.d.ts +87 -0
  614. package/src/services/crc.d.ts.map +1 -0
  615. package/src/services/crc.js +198 -0
  616. package/src/services/crc.js.map +1 -0
  617. package/src/services/database-initialization.d.ts +111 -0
  618. package/src/services/database-initialization.d.ts.map +1 -0
  619. package/src/services/database-initialization.js +879 -0
  620. package/src/services/database-initialization.js.map +1 -0
  621. package/src/services/{db-init-cache.ts → db-init-cache.d.ts} +5 -11
  622. package/src/services/db-init-cache.d.ts.map +1 -0
  623. package/src/services/db-init-cache.js +3 -0
  624. package/src/services/db-init-cache.js.map +1 -0
  625. package/src/services/direct-login-token.d.ts +6 -0
  626. package/src/services/direct-login-token.d.ts.map +1 -0
  627. package/src/services/direct-login-token.js +41 -0
  628. package/src/services/direct-login-token.js.map +1 -0
  629. package/src/services/dummy-email-service.d.ts +10 -0
  630. package/src/services/dummy-email-service.d.ts.map +1 -0
  631. package/src/services/dummy-email-service.js +16 -0
  632. package/src/services/dummy-email-service.js.map +1 -0
  633. package/src/services/fec-usage-example.d.ts +38 -0
  634. package/src/services/fec-usage-example.d.ts.map +1 -0
  635. package/src/services/fec-usage-example.js +75 -0
  636. package/src/services/fec-usage-example.js.map +1 -0
  637. package/src/services/fec.d.ts +46 -0
  638. package/src/services/fec.d.ts.map +1 -0
  639. package/src/services/fec.js +214 -0
  640. package/src/services/fec.js.map +1 -0
  641. package/src/services/{index.ts → index.d.ts} +1 -0
  642. package/src/services/index.d.ts.map +1 -0
  643. package/src/services/index.js +23 -0
  644. package/src/services/index.js.map +1 -0
  645. package/src/services/jwt.d.ts +30 -0
  646. package/src/services/jwt.d.ts.map +1 -0
  647. package/src/services/jwt.js +90 -0
  648. package/src/services/jwt.js.map +1 -0
  649. package/src/services/key-wrapping.d.ts +61 -0
  650. package/src/services/key-wrapping.d.ts.map +1 -0
  651. package/src/services/key-wrapping.js +307 -0
  652. package/src/services/key-wrapping.js.map +1 -0
  653. package/src/services/mnemonic.d.ts +61 -0
  654. package/src/services/mnemonic.d.ts.map +1 -0
  655. package/src/services/mnemonic.js +114 -0
  656. package/src/services/mnemonic.js.map +1 -0
  657. package/src/services/request-user.d.ts +23 -0
  658. package/src/services/request-user.d.ts.map +1 -0
  659. package/src/services/request-user.js +66 -0
  660. package/src/services/request-user.js.map +1 -0
  661. package/src/services/role.d.ts +86 -0
  662. package/src/services/role.d.ts.map +1 -0
  663. package/src/services/role.js +285 -0
  664. package/src/services/role.js.map +1 -0
  665. package/src/services/symmetric.d.ts +42 -0
  666. package/src/services/symmetric.d.ts.map +1 -0
  667. package/src/services/symmetric.js +101 -0
  668. package/src/services/symmetric.js.map +1 -0
  669. package/src/services/system-user.d.ts +17 -0
  670. package/src/services/system-user.d.ts.map +1 -0
  671. package/src/services/system-user.js +46 -0
  672. package/src/services/system-user.js.map +1 -0
  673. package/src/services/user.d.ts +349 -0
  674. package/src/services/user.d.ts.map +1 -0
  675. package/src/services/user.js +1442 -0
  676. package/src/services/user.js.map +1 -0
  677. package/src/services/xor.d.ts +24 -0
  678. package/src/services/xor.d.ts.map +1 -0
  679. package/src/services/xor.js +37 -0
  680. package/src/services/xor.js.map +1 -0
  681. package/src/testing.d.ts +3 -0
  682. package/src/testing.d.ts.map +1 -0
  683. package/src/testing.js +7 -0
  684. package/src/testing.js.map +1 -0
  685. package/src/transactions/{index.ts → index.d.ts} +1 -0
  686. package/src/transactions/index.d.ts.map +1 -0
  687. package/src/transactions/index.js +5 -0
  688. package/src/transactions/index.js.map +1 -0
  689. package/src/transactions/transaction-manager.d.ts +12 -0
  690. package/src/transactions/transaction-manager.d.ts.map +1 -0
  691. package/src/transactions/transaction-manager.js +30 -0
  692. package/src/transactions/transaction-manager.js.map +1 -0
  693. package/src/types/{app-config.ts → app-config.d.ts} +9 -10
  694. package/src/types/app-config.d.ts.map +1 -0
  695. package/src/types/app-config.js +3 -0
  696. package/src/types/app-config.js.map +1 -0
  697. package/src/types/{controller-config.ts → controller-config.d.ts} +7 -8
  698. package/src/types/controller-config.d.ts.map +1 -0
  699. package/src/types/controller-config.js +3 -0
  700. package/src/types/controller-config.js.map +1 -0
  701. package/src/types/{environment-variables.ts → environment-variables.d.ts} +5 -26
  702. package/src/types/environment-variables.d.ts.map +1 -0
  703. package/src/types/environment-variables.js +39 -0
  704. package/src/types/environment-variables.js.map +1 -0
  705. package/src/types/id-converters.d.ts +28 -0
  706. package/src/types/id-converters.d.ts.map +1 -0
  707. package/src/types/id-converters.js +45 -0
  708. package/src/types/id-converters.js.map +1 -0
  709. package/src/types/{index.ts → index.d.ts} +1 -0
  710. package/src/types/index.d.ts.map +1 -0
  711. package/src/types/index.js +6 -0
  712. package/src/types/index.js.map +1 -0
  713. package/src/types/{mongoose-helpers.ts → mongoose-helpers.d.ts} +2 -2
  714. package/src/types/mongoose-helpers.d.ts.map +1 -0
  715. package/src/types/mongoose-helpers.js +6 -0
  716. package/src/types/mongoose-helpers.js.map +1 -0
  717. package/src/types.d.ts +67 -34
  718. package/src/types.d.ts.map +1 -0
  719. package/src/types.js +14 -0
  720. package/src/types.js.map +1 -0
  721. package/src/utils.d.ts +210 -0
  722. package/src/utils.d.ts.map +1 -0
  723. package/src/utils.js +818 -0
  724. package/src/utils.js.map +1 -0
  725. package/src/validation/{index.ts → index.d.ts} +1 -0
  726. package/src/validation/index.d.ts.map +1 -0
  727. package/src/validation/index.js +5 -0
  728. package/src/validation/index.js.map +1 -0
  729. package/src/validation/validation-builder.d.ts +32 -0
  730. package/src/validation/validation-builder.d.ts.map +1 -0
  731. package/src/validation/validation-builder.js +81 -0
  732. package/src/validation/validation-builder.js.map +1 -0
  733. package/LICENSE +0 -21
  734. package/src/__tests__/fixtures/model-mocks.mock.ts +0 -164
  735. package/src/__tests__/helpers/application.mock.ts +0 -89
  736. package/src/__tests__/helpers/setup-test-env.ts +0 -190
  737. package/src/application-base.ts +0 -536
  738. package/src/application-concrete.ts +0 -42
  739. package/src/application.ts +0 -321
  740. package/src/backup-code.ts +0 -348
  741. package/src/builders/application-builder.ts +0 -131
  742. package/src/constants.ts +0 -83
  743. package/src/container/service-container.ts +0 -50
  744. package/src/container/service-definitions.ts +0 -11
  745. package/src/controllers/base.ts +0 -499
  746. package/src/controllers/user.ts +0 -1711
  747. package/src/decorators/base-controller.ts +0 -77
  748. package/src/decorators/controller.ts +0 -146
  749. package/src/decorators/zod-validation.ts +0 -58
  750. package/src/defaults.ts +0 -249
  751. package/src/documents/base.ts +0 -10
  752. package/src/documents/email-token.ts +0 -13
  753. package/src/documents/used-direct-login-token.ts +0 -7
  754. package/src/enumerations/base-model-name.ts +0 -41
  755. package/src/enumerations/length-encoding-type.ts +0 -6
  756. package/src/enumerations/schema-collection.ts +0 -33
  757. package/src/enumerations/symmetric-error-type.ts +0 -4
  758. package/src/environment.ts +0 -836
  759. package/src/errors/express-validation.ts +0 -21
  760. package/src/errors/invalid-backup-code-version.ts +0 -15
  761. package/src/errors/invalid-jwt-token.ts +0 -11
  762. package/src/errors/invalid-model.ts +0 -11
  763. package/src/errors/invalid-new-password.ts +0 -18
  764. package/src/errors/invalid-password.ts +0 -13
  765. package/src/errors/missing-validated-data.ts +0 -36
  766. package/src/errors/mnemonic-or-password-required.ts +0 -13
  767. package/src/errors/model-not-registered.ts +0 -11
  768. package/src/errors/mongoose-validation.ts +0 -38
  769. package/src/errors/symmetric.ts +0 -37
  770. package/src/errors/token-expired.ts +0 -11
  771. package/src/get-language.ts +0 -53
  772. package/src/get-timezone.ts +0 -61
  773. package/src/interfaces/api-express-validation-error-response.ts +0 -8
  774. package/src/interfaces/api-message-response.ts +0 -3
  775. package/src/interfaces/api-responses/user-settings-response.ts +0 -12
  776. package/src/interfaces/application.ts +0 -16
  777. package/src/interfaces/backend-objects/email-token.ts +0 -9
  778. package/src/interfaces/backend-objects/request-user.ts +0 -8
  779. package/src/interfaces/backend-objects/role.ts +0 -6
  780. package/src/interfaces/backend-objects/user.ts +0 -7
  781. package/src/interfaces/checksum-config.ts +0 -4
  782. package/src/interfaces/checksum-consts.ts +0 -13
  783. package/src/interfaces/constants.ts +0 -103
  784. package/src/interfaces/controller-config.ts +0 -36
  785. package/src/interfaces/create-user-basics.ts +0 -17
  786. package/src/interfaces/csp-config.ts +0 -16
  787. package/src/interfaces/csp-definition.ts +0 -49
  788. package/src/interfaces/deep-partial.ts +0 -3
  789. package/src/interfaces/email-service.ts +0 -8
  790. package/src/interfaces/environment-mongo.ts +0 -76
  791. package/src/interfaces/environment.ts +0 -185
  792. package/src/interfaces/failable-result.ts +0 -6
  793. package/src/interfaces/fec-consts.ts +0 -4
  794. package/src/interfaces/flexible-csp.ts +0 -18
  795. package/src/interfaces/handleable-error-options.ts +0 -6
  796. package/src/interfaces/jwt-consts.ts +0 -23
  797. package/src/interfaces/jwt-sign-response.ts +0 -19
  798. package/src/interfaces/mongo-errors.ts +0 -5
  799. package/src/interfaces/request-user.ts +0 -70
  800. package/src/interfaces/required-string-keys.ts +0 -26
  801. package/src/interfaces/schema.ts +0 -31
  802. package/src/interfaces/server-init-result.ts +0 -40
  803. package/src/interfaces/status-code-response.ts +0 -7
  804. package/src/interfaces/symmetric-encryption-results.ts +0 -4
  805. package/src/middlewares/authenticate-crypto.ts +0 -216
  806. package/src/middlewares/authenticate-token.ts +0 -150
  807. package/src/middlewares/cleanup-crypto.ts +0 -37
  808. package/src/middlewares/set-global-context-language.ts +0 -24
  809. package/src/middlewares.ts +0 -112
  810. package/src/model-registry.ts +0 -79
  811. package/src/models/email-token.ts +0 -15
  812. package/src/models/mnemonic.ts +0 -15
  813. package/src/models/role.ts +0 -15
  814. package/src/models/used-direct-login-token.ts +0 -15
  815. package/src/models/user-role.ts +0 -13
  816. package/src/models/user.ts +0 -15
  817. package/src/pipeline/pipeline-builder.ts +0 -18
  818. package/src/plugins/plugin-interface.ts +0 -8
  819. package/src/plugins/plugin-manager.ts +0 -42
  820. package/src/registry/email-service-registry.ts +0 -53
  821. package/src/responses/response-builder.ts +0 -86
  822. package/src/routers/api.ts +0 -196
  823. package/src/routers/app.ts +0 -333
  824. package/src/routers/base.ts +0 -13
  825. package/src/routers/router-config.ts +0 -16
  826. package/src/routing/index.ts +0 -1
  827. package/src/routing/route-builder.ts +0 -128
  828. package/src/schemas/email-token.ts +0 -95
  829. package/src/schemas/mnemonic.ts +0 -37
  830. package/src/schemas/role.ts +0 -137
  831. package/src/schemas/schema.ts +0 -164
  832. package/src/schemas/used-direct-login-token.ts +0 -45
  833. package/src/schemas/user-role.ts +0 -79
  834. package/src/schemas/user.ts +0 -224
  835. package/src/services/backup-code.ts +0 -321
  836. package/src/services/base.ts +0 -30
  837. package/src/services/checksum.ts +0 -167
  838. package/src/services/crc.ts +0 -213
  839. package/src/services/database-initialization.ts +0 -1648
  840. package/src/services/direct-login-token.ts +0 -61
  841. package/src/services/dummy-email-service.ts +0 -20
  842. package/src/services/fec-usage-example.ts +0 -102
  843. package/src/services/fec.ts +0 -355
  844. package/src/services/jwt.ts +0 -130
  845. package/src/services/key-wrapping.ts +0 -447
  846. package/src/services/mnemonic.ts +0 -168
  847. package/src/services/request-user.ts +0 -101
  848. package/src/services/role.ts +0 -414
  849. package/src/services/symmetric.ts +0 -139
  850. package/src/services/system-user.ts +0 -79
  851. package/src/services/user.ts +0 -2281
  852. package/src/services/xor.ts +0 -34
  853. package/src/testing.ts +0 -3
  854. package/src/transactions/transaction-manager.ts +0 -37
  855. package/src/types/id-converters.ts +0 -53
  856. package/src/types/mongoose-override.d.ts +0 -1
  857. package/src/types/mongoose.d.ts +0 -1
  858. package/src/types.ts +0 -130
  859. package/src/utils.ts +0 -1087
  860. package/src/validation/validation-builder.ts +0 -115
@@ -0,0 +1 @@
1
+ {"version":3,"file":"symmetric.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/services/symmetric.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAIpE,OAAO,EAAE,2BAA2B,EAAE,MAAM,4CAA4C,CAAC;AAMzF;;;;;;GAMG;AACH,qBAAa,gBAAgB;WACb,gBAAgB,CAC5B,cAAc,GAAE,eAAuB,GACtC,MAAM;WAIK,iBAAiB,CAC7B,cAAc,GAAE,eAAuB,GACtC,MAAM;IAIT;;;;;OAKG;WACW,aAAa,CACzB,IAAI,EAAE,MAAM,EACZ,aAAa,CAAC,EAAE,MAAM,EACtB,cAAc,GAAE,eAAuB,GACtC,2BAA2B;IAmC9B;;;;;OAKG;WACW,aAAa,CACzB,aAAa,EAAE,MAAM,EACrB,GAAG,EAAE,MAAM,EACX,cAAc,GAAE,eAAuB,GACtC,MAAM;IAmBT;;;;;OAKG;WACW,WAAW,CAAC,CAAC,EACzB,IAAI,EAAE,CAAC,EACP,aAAa,CAAC,EAAE,MAAM,GACrB,2BAA2B;IAc9B;;;;;OAKG;WACW,WAAW,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC;CAKpE"}
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SymmetricService = void 0;
4
+ const ecies_lib_1 = require("@digitaldefiance/ecies-lib");
5
+ const crypto_1 = require("crypto");
6
+ const symmetric_error_type_1 = require("../enumerations/symmetric-error-type");
7
+ const symmetric_1 = require("../errors/symmetric");
8
+ function hasToJsonMethod(obj) {
9
+ return typeof obj === 'object' && obj !== null && 'toJson' in obj;
10
+ }
11
+ /**
12
+ * Service for handling symmetric encryption operations.
13
+ * This service provides functionality for:
14
+ * - AES encryption/decryption of buffers and JSON data
15
+ * - Key and IV generation
16
+ * - Secure cryptographic operations
17
+ */
18
+ class SymmetricService {
19
+ static symmetricKeyBits(eciesConstants = ecies_lib_1.ECIES) {
20
+ return eciesConstants.SYMMETRIC.KEY_BITS;
21
+ }
22
+ static symmetricKeyBytes(eciesConstants = ecies_lib_1.ECIES) {
23
+ return eciesConstants.SYMMETRIC.KEY_SIZE;
24
+ }
25
+ /**
26
+ * Encrypt data with AES
27
+ * @param data The data to encrypt
28
+ * @param encryptionKey Optional encryption key (will be randomly generated if not provided)
29
+ * @returns Object containing encrypted data and key
30
+ */
31
+ static encryptBuffer(data, encryptionKey, eciesConstants = ecies_lib_1.ECIES) {
32
+ if (encryptionKey &&
33
+ encryptionKey.length != eciesConstants.SYMMETRIC.KEY_SIZE) {
34
+ throw new symmetric_1.SymmetricError(symmetric_error_type_1.SymmetricErrorType.InvalidKeyLength);
35
+ }
36
+ // encrypt the document using AES-256 and the key
37
+ // Initialization Vector
38
+ const ivBuffer = (0, crypto_1.randomBytes)(eciesConstants.IV_SIZE);
39
+ const key = encryptionKey ?? (0, crypto_1.randomBytes)(eciesConstants.SYMMETRIC.KEY_SIZE);
40
+ const cipher = (0, crypto_1.createCipheriv)(eciesConstants.SYMMETRIC_ALGORITHM_CONFIGURATION, key, ivBuffer);
41
+ const ciphertextBuffer = cipher.update(data);
42
+ const finalBuffer = cipher.final();
43
+ const authTag = cipher.getAuthTag();
44
+ const encryptionIvPlusData = Buffer.concat([
45
+ ivBuffer,
46
+ ciphertextBuffer,
47
+ finalBuffer,
48
+ authTag,
49
+ ]);
50
+ return {
51
+ encryptedData: encryptionIvPlusData,
52
+ key: key,
53
+ };
54
+ }
55
+ /**
56
+ * Decrypt the given buffer with AES
57
+ * @param encryptedData The encrypted data to decrypt
58
+ * @param key The key to use for decryption
59
+ * @returns Decrypted data as a Buffer
60
+ */
61
+ static decryptBuffer(encryptedData, key, eciesConstants = ecies_lib_1.ECIES) {
62
+ const ivBuffer = encryptedData.subarray(0, eciesConstants.IV_SIZE);
63
+ const authTagStart = encryptedData.length - eciesConstants.AUTH_TAG_SIZE;
64
+ const ciphertextBuffer = encryptedData.subarray(eciesConstants.IV_SIZE, authTagStart);
65
+ const authTag = encryptedData.subarray(authTagStart);
66
+ const decipher = (0, crypto_1.createDecipheriv)(eciesConstants.SYMMETRIC_ALGORITHM_CONFIGURATION, key, ivBuffer);
67
+ decipher.setAuthTag(authTag);
68
+ return Buffer.concat([decipher.update(ciphertextBuffer), decipher.final()]);
69
+ }
70
+ /**
71
+ * Encrypt JSON data with AES
72
+ * @param data The data to encrypt
73
+ * @param encryptionKey Optional encryption key (will be randomly generated if not provided)
74
+ * @returns Object containing encrypted data and key
75
+ */
76
+ static encryptJson(data, encryptionKey) {
77
+ if (data === null || data === undefined) {
78
+ throw new symmetric_1.SymmetricError(symmetric_error_type_1.SymmetricErrorType.DataNullOrUndefined);
79
+ }
80
+ let dataBuffer;
81
+ if (hasToJsonMethod(data)) {
82
+ // amazonq-ignore-next-line false positive
83
+ dataBuffer = Buffer.from(data.toJson(), 'utf8');
84
+ }
85
+ else {
86
+ dataBuffer = Buffer.from(JSON.stringify(data), 'utf8');
87
+ }
88
+ return SymmetricService.encryptBuffer(dataBuffer, encryptionKey);
89
+ }
90
+ /**
91
+ * Decrypt the given buffer with AES and parse as JSON
92
+ * @param encryptedData The encrypted data to decrypt
93
+ * @param key The key to use for decryption
94
+ * @returns Decrypted data parsed as type T
95
+ */
96
+ static decryptJson(encryptedData, key) {
97
+ return JSON.parse(SymmetricService.decryptBuffer(encryptedData, key).toString('utf8'));
98
+ }
99
+ }
100
+ exports.SymmetricService = SymmetricService;
101
+ //# sourceMappingURL=symmetric.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"symmetric.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/services/symmetric.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { Types } from '@digitaldefiance/mongoose-types';
2
+ import { Member as BackendMember } from '@digitaldefiance/node-ecies-lib';
3
+ import { Environment } from '../environment';
4
+ import { IConstants } from '../interfaces/constants';
5
+ /**
6
+ * Service to manage the system member's wallet.
7
+ */
8
+ export declare class SystemUserService {
9
+ private static systemUser;
10
+ /**
11
+ * Initializes and returns the system member's Member instance.
12
+ * The mnemonic should be stored securely in environment variables.
13
+ */
14
+ static getSystemUser(environment: Environment, constants: IConstants): BackendMember<Buffer>;
15
+ static setSystemUser<TID extends string | Types.ObjectId | Buffer | Uint8Array = Buffer>(user: BackendMember<TID>, constants: IConstants): void;
16
+ }
17
+ //# sourceMappingURL=system-user.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system-user.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/services/system-user.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AACxD,OAAO,EACL,MAAM,IAAI,aAAa,EAExB,MAAM,iCAAiC,CAAC;AAKzC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD;;GAEG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAC,UAAU,CAAsC;IAE/D;;;OAGG;WACW,aAAa,CACzB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,UAAU,GACpB,aAAa,CAAC,MAAM,CAAC;WAqCV,aAAa,CACzB,GAAG,SAAS,MAAM,GAAG,KAAK,CAAC,QAAQ,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,EAClE,IAAI,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,GAAG,IAAI;CAQzD"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SystemUserService = void 0;
4
+ const ecies_lib_1 = require("@digitaldefiance/ecies-lib");
5
+ const node_ecies_lib_1 = require("@digitaldefiance/node-ecies-lib");
6
+ const suite_core_lib_1 = require("@digitaldefiance/suite-core-lib");
7
+ /**
8
+ * Service to manage the system member's wallet.
9
+ */
10
+ class SystemUserService {
11
+ static systemUser = null;
12
+ /**
13
+ * Initializes and returns the system member's Member instance.
14
+ * The mnemonic should be stored securely in environment variables.
15
+ */
16
+ static getSystemUser(environment, constants) {
17
+ if (!SystemUserService.systemUser) {
18
+ if (!environment.systemMnemonic) {
19
+ throw new suite_core_lib_1.TranslatableSuiteError(suite_core_lib_1.SuiteCoreStringKey.Admin_EnvNotSetTemplate, {
20
+ NAME: 'SYSTEM_MNEMONIC',
21
+ });
22
+ }
23
+ const mnemonic = environment.systemMnemonic;
24
+ const eciesService = new node_ecies_lib_1.ECIESService(undefined, constants.ECIES);
25
+ const { wallet } = eciesService.walletAndSeedFromMnemonic(mnemonic);
26
+ const keyPair = eciesService.walletToSimpleKeyPairBuffer(wallet);
27
+ SystemUserService.systemUser = new node_ecies_lib_1.Member(eciesService, ecies_lib_1.MemberType.System, constants.SystemUser, new ecies_lib_1.EmailString(constants.SystemEmail), keyPair.publicKey, new ecies_lib_1.SecureBuffer(keyPair.privateKey), wallet);
28
+ if (SystemUserService.systemUser.publicKey.toString('hex') !==
29
+ environment.systemPublicKeyHex) {
30
+ console.warn('System public key does not match environment variable', {
31
+ derived: SystemUserService.systemUser.publicKey.toString('hex'),
32
+ expected: environment.systemPublicKeyHex,
33
+ });
34
+ }
35
+ }
36
+ return SystemUserService.systemUser;
37
+ }
38
+ static setSystemUser(user, constants) {
39
+ if (user.type !== ecies_lib_1.MemberType.System || user.name !== constants.SystemUser) {
40
+ throw new Error('setSystemUser can only be called with a MemberType.System user');
41
+ }
42
+ SystemUserService.systemUser = user;
43
+ }
44
+ }
45
+ exports.SystemUserService = SystemUserService;
46
+ //# sourceMappingURL=system-user.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system-user.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/services/system-user.ts"],"names":[],"mappings":";;;AAAA,0DAKoC;AAEpC,oEAGyC;AACzC,oEAGyC;AAIzC;;GAEG;AACH,MAAa,iBAAiB;IACpB,MAAM,CAAC,UAAU,GAAiC,IAAI,CAAC;IAE/D;;;OAGG;IACI,MAAM,CAAC,aAAa,CACzB,WAAwB,EACxB,SAAqB;QAErB,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,CAAC;YAClC,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC;gBAChC,MAAM,IAAI,uCAAsB,CAC9B,mCAAkB,CAAC,uBAAuB,EAC1C;oBACE,IAAI,EAAE,iBAAiB;iBACxB,CACF,CAAC;YACJ,CAAC;YACD,MAAM,QAAQ,GAAiB,WAAW,CAAC,cAAc,CAAC;YAC1D,MAAM,YAAY,GAAG,IAAI,6BAAY,CAAC,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;YAClE,MAAM,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC;YACpE,MAAM,OAAO,GAAG,YAAY,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC;YAEjE,iBAAiB,CAAC,UAAU,GAAG,IAAI,uBAAa,CAC9C,YAAY,EACZ,sBAAU,CAAC,MAAM,EACjB,SAAS,CAAC,UAAU,EACpB,IAAI,uBAAW,CAAC,SAAS,CAAC,WAAW,CAAC,EACtC,OAAO,CAAC,SAAS,EACjB,IAAI,wBAAY,CAAC,OAAO,CAAC,UAAU,CAAC,EACpC,MAAM,CACP,CAAC;YACF,IACE,iBAAiB,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACtD,WAAW,CAAC,kBAAkB,EAC9B,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,uDAAuD,EAAE;oBACpE,OAAO,EAAE,iBAAiB,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;oBAC/D,QAAQ,EAAE,WAAW,CAAC,kBAAkB;iBACzC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,OAAO,iBAAiB,CAAC,UAAU,CAAC;IACtC,CAAC;IAEM,MAAM,CAAC,aAAa,CAEzB,IAAwB,EAAE,SAAqB;QAC/C,IAAI,IAAI,CAAC,IAAI,KAAK,sBAAU,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,UAAU,EAAE,CAAC;YAC1E,MAAM,IAAI,KAAK,CACb,gEAAgE,CACjE,CAAC;QACJ,CAAC;QACD,iBAAiB,CAAC,UAAU,GAAG,IAA6B,CAAC;IAC/D,CAAC;;AAxDH,8CAyDC"}
@@ -0,0 +1,349 @@
1
+ import { SecureBuffer, SecureString } from '@digitaldefiance/ecies-lib';
2
+ import { ClientSession, ProjectionType, Types } from '@digitaldefiance/mongoose-types';
3
+ import { Member as BackendMember, ECIESService } from '@digitaldefiance/node-ecies-lib';
4
+ import { EmailTokenType, IBackupCode, IRequestUserDTO, ITokenRole, IUserBase, IUserDTO } from '@digitaldefiance/suite-core-lib';
5
+ import { Wallet } from '@ethereumjs/wallet';
6
+ import { BackupCode } from '../backup-code';
7
+ import { IBaseDocument } from '../documents';
8
+ import { IEmailTokenDocument } from '../documents/email-token';
9
+ import { IUserDocument } from '../documents/user';
10
+ import { Environment } from '../environment';
11
+ import { ICreateUserBasics } from '../interfaces';
12
+ import { IApplication } from '../interfaces/application';
13
+ import { IUserBackendObject } from '../interfaces/backend-objects/user';
14
+ import { IConstants } from '../interfaces/constants';
15
+ import { IEmailService } from '../interfaces/email-service';
16
+ import { BackupCodeService } from './backup-code';
17
+ import { BaseService } from './base';
18
+ import { KeyWrappingService } from './key-wrapping';
19
+ import { MnemonicService } from './mnemonic';
20
+ import { RoleService } from './role';
21
+ export declare class UserService<T, I extends Types.ObjectId | string, D extends Date, S extends string, A extends string, _TEnvironment extends Environment = Environment, _TConstants extends IConstants = IConstants, _TBaseDocument extends IBaseDocument<T, I> = IBaseDocument<T, I>, TUser extends IUserBase<I, D, S, A> = IUserBase<I, D, S, A>, TTokenRole extends ITokenRole<I, D> = ITokenRole<I, D>, TApplication extends IApplication = IApplication> extends BaseService {
22
+ protected readonly roleService: RoleService<I, D, TTokenRole>;
23
+ protected readonly eciesService: ECIESService;
24
+ protected readonly keyWrappingService: KeyWrappingService;
25
+ protected readonly mnemonicService: MnemonicService;
26
+ protected readonly emailService: IEmailService;
27
+ protected readonly backupCodeService: BackupCodeService<I, D, TTokenRole, TApplication>;
28
+ protected readonly serverUrl: string;
29
+ protected readonly disableEmailSend: boolean;
30
+ protected readonly idConverter: (id: string) => I;
31
+ protected readonly idGenerator: () => I;
32
+ constructor(application: IApplication, roleService: RoleService<I, D, TTokenRole>, emailService: IEmailService, keyWrappingService: KeyWrappingService, backupCodeService: BackupCodeService<I, D, TTokenRole, TApplication>, idConverter?: (id: string) => I, idGenerator?: () => I);
33
+ toId(id: string): I;
34
+ generateId(): I;
35
+ /**
36
+ * Given a User Document, make a User DTO
37
+ * @param user a User Document
38
+ * @returns An IUserDTO
39
+ */
40
+ static userToUserDTO<S extends string, I extends string | Types.ObjectId = Types.ObjectId>(user: IUserDocument<S, I> | Record<string, unknown>): IUserDTO;
41
+ /**
42
+ * Given a User DTO, reconstitute ids and dates
43
+ * @param user a User DTO
44
+ * @returns An IUserBackendObject
45
+ */
46
+ hydrateUserDTOToBackend(user: IUserDTO): IUserBackendObject<S, I>;
47
+ /**
48
+ * Create a new email token to send to the user for email verification
49
+ * @param userDoc The user to create the email token for
50
+ * @param type The type of email token to create
51
+ * @param session The session to use for the query
52
+ * @returns The email token document
53
+ */
54
+ createEmailToken(userDoc: IUserDocument<S, I>, type: EmailTokenType, session?: ClientSession): Promise<IEmailTokenDocument>;
55
+ /**
56
+ * Create and send an email token to the user for email verification
57
+ * @param user The user to send the email token to
58
+ * @param type The type of email token to send
59
+ * @param session The session to use for the query
60
+ * @returns The email token document
61
+ */
62
+ createAndSendEmailToken(user: IUserDocument<S, I> | (Pick<IUserDocument<S, I>, keyof IUserDocument<S, I>> & {
63
+ _id: any;
64
+ }), type?: EmailTokenType, session?: ClientSession, debug?: boolean): Promise<IEmailTokenDocument>;
65
+ /**
66
+ * Create and send an email token directly within an existing transaction
67
+ * @param user The user to send the email token to
68
+ * @param type The type of email token to send
69
+ * @param session The session to use for the query (required)
70
+ * @param debug Whether to enable debug logging
71
+ * @returns The email token document
72
+ */
73
+ createAndSendEmailTokenDirect(user: IUserDocument<S, I>, type: EmailTokenType | undefined, session: ClientSession, debug?: boolean): Promise<IEmailTokenDocument>;
74
+ /**
75
+ * Send an email token to the user for email verification
76
+ * @param emailToken The email token to send
77
+ * @param session The session to use for the query
78
+ * @returns void
79
+ */
80
+ sendEmailToken(emailToken: IEmailTokenDocument, session?: ClientSession, debug?: boolean): Promise<void>;
81
+ /**
82
+ * Find a user by email or username and enforce account status checks
83
+ * @param email Optional email
84
+ * @param username Optional username
85
+ * @param session Optional mongoose session
86
+ * @throws UsernameOrEmailRequiredError if neither provided
87
+ * @throws InvalidCredentialsError if not found or deleted
88
+ * @throws AccountLockedError | PendingEmailVerificationError | AccountStatusError per status
89
+ */
90
+ findUser(email?: string, username?: string, session?: ClientSession): Promise<IUserDocument<S, I>>;
91
+ /**
92
+ * Finds a user record by ID
93
+ * @param userId The user ID
94
+ * @param throwIfNotActive Whether to throw if the user is inactive
95
+ * @param session The active session, if present
96
+ * @returns The user document
97
+ */
98
+ findUserById(userId: I, throwIfNotActive: boolean, session?: ClientSession, select?: ProjectionType<IUserDocument<S, I>>): Promise<IUserDocument<S, I>>;
99
+ /**
100
+ * Ensure required fields are present in a projection for queries that rely on them.
101
+ * Supports string and object-style projections. For inclusion projections, adds fields.
102
+ * For exclusion projections, ensures required fields are not excluded.
103
+ */
104
+ private ensureRequiredFieldsInProjection;
105
+ /**
106
+ * Fill in the default values to a user object
107
+ * @param newUser The user object to fill in
108
+ * @param createdBy The user ID of the user creating the new user
109
+ * @returns The filled in user
110
+ */
111
+ fillUserDefaults(newUser: ICreateUserBasics, createdBy: I, backupCodes: Array<IBackupCode>, encryptedMnemonic: string, userId?: I): IUserBackendObject<S, I>;
112
+ /**
113
+ * Create a new user document from an IUser and unhashed password
114
+ * @param newUser The user object
115
+ * @returns The new user document
116
+ */
117
+ makeUserDoc(newUser: TUser): Promise<IUserDocument<S, I>>;
118
+ /**
119
+ * Create a new user.
120
+ * Do not set createdBy to a new (non-existing) ObjectId unless you also set newUserId to it.
121
+ * If newUserId is not set, one will be generated.
122
+ * @param systemUser The system user performing the operation
123
+ * @param userData Username, email, password in a ICreateUserBasics object
124
+ * @param createdBy The user id of the user creating the user
125
+ * @param newUserId the user id of the new user object- usually the createdBy user id.
126
+ * @param session The session to use for the query
127
+ * @param debug Whether to log debug information
128
+ * @param password The password to use for the new user (optional, if not provided, mnemonic will be used)
129
+ * @returns The new user document
130
+ */
131
+ newUser(systemUser: BackendMember, userData: ICreateUserBasics, createdBy?: I, newUserId?: I, session?: ClientSession, debug?: boolean, password?: string): Promise<{
132
+ user: IUserDocument<S, I>;
133
+ mnemonic: string;
134
+ backupCodes: Array<string>;
135
+ password?: string;
136
+ }>;
137
+ /**
138
+ * Get the backup codes for a user.
139
+ * Requires the user not be deleted or inactive
140
+ */
141
+ getEncryptedUserBackupCodes(userId: Types.ObjectId, session?: ClientSession): Promise<Array<IBackupCode>>;
142
+ /**
143
+ * Resets the given user's backup codes
144
+ * @param backupUser The user to generate codes for
145
+ * @param session The current session, if any
146
+ * @returns A promise of an array of backup codes
147
+ */
148
+ resetUserBackupCodes(backupUser: BackendMember, systemUser: BackendMember, session?: ClientSession): Promise<Array<BackupCode>>;
149
+ /**
150
+ * Recover a user's mnemonic from an encrypted mnemonic
151
+ * @param user The user whose mnemonic to recover
152
+ * @param encryptedMnemonic The encrypted mnemonic
153
+ * @returns The recovered mnemonic
154
+ */
155
+ recoverMnemonic(user: BackendMember<any>, encryptedMnemonic: string): SecureString;
156
+ /**
157
+ * Make a Member from a user document and optional private key
158
+ * @param userDoc The user document
159
+ * @param privateKey Optional private key to load the wallet
160
+ * @param publicKey Optional public key to override the userDoc public key
161
+ * @param session The current session, if any
162
+ * @returns A promise containing the created Member
163
+ */
164
+ makeUserFromUserDoc(userDoc: IUserDocument<S, I>, privateKey?: SecureBuffer, publicKey?: Buffer, mnemonic?: SecureString, wallet?: Wallet, session?: ClientSession): Promise<BackendMember<any>>;
165
+ /**
166
+ * Challenges a given userDoc with a given mnemonic, returns a system and user Member
167
+ * @param userDoc The userDoc in question
168
+ * @param mnemonic The mnemonic to challenge against
169
+ * @returns A promise containing the user and system Members
170
+ * @throws InvalidCredentialsError if the challenge fails
171
+ * @throws AccountLockedError if the account is locked
172
+ * @throws PendingEmailVerificationError if the email is not verified
173
+ * @throws AccountStatusError if the account status is invalid
174
+ */
175
+ challengeUserWithMnemonic(userDoc: IUserDocument<S, I>, mnemonic: SecureString, session?: ClientSession): Promise<{
176
+ userMember: BackendMember;
177
+ adminMember: BackendMember;
178
+ }>;
179
+ /**
180
+ * Validates a login challenge response
181
+ * @param challengeResponse The challenge response bytes in hex
182
+ * @param email The email address of the user
183
+ * @param username The username of the user
184
+ * @param session The mongo session for the query
185
+ * @returns A promise that resolves to the user document, user member, and system member
186
+ */
187
+ loginWithChallengeResponse(challengeResponse: string, email?: string, username?: string, session?: ClientSession): Promise<{
188
+ userDoc: IUserDocument<S, I>;
189
+ userMember: BackendMember;
190
+ adminMember: BackendMember;
191
+ }>;
192
+ /**
193
+ * Authenticate a user with client-verified challenge (skips server-side challenge)
194
+ * @returns The authenticated user document.
195
+ */
196
+ loginWithClientVerifiedChallenge(usernameOrEmail: string, mnemonic: SecureString, session?: ClientSession): Promise<{
197
+ userDoc: IUserDocument<S, I>;
198
+ userMember: BackendMember;
199
+ adminMember: BackendMember;
200
+ }>;
201
+ /**
202
+ * Authenticate a user with their mnemonic.
203
+ * @returns The authenticated user document.
204
+ */
205
+ loginWithMnemonic(usernameOrEmail: string, mnemonic: SecureString, session?: ClientSession): Promise<{
206
+ userDoc: IUserDocument<S, I>;
207
+ userMember: BackendMember;
208
+ adminMember: BackendMember;
209
+ }>;
210
+ /**
211
+ * Authenticate a user with their password (for key-wrapped accounts).
212
+ * @returns The authenticated user document.
213
+ */
214
+ loginWithPassword(usernameOrEmail: string, password: string, session?: ClientSession): Promise<{
215
+ userDoc: IUserDocument<S, I>;
216
+ userMember: BackendMember;
217
+ adminMember: BackendMember;
218
+ }>;
219
+ /**
220
+ * Re-send a previously sent email token
221
+ * @param userId The user id
222
+ * @param session The session to use for the query
223
+ * @returns void
224
+ * @throws EmailTokenUsedOrInvalidError
225
+ */
226
+ resendEmailToken(userId: string, type: EmailTokenType, session?: ClientSession, debug?: boolean): Promise<void>;
227
+ /**
228
+ * Verify the email token and update the user's account status
229
+ * @param emailToken The email token to verify
230
+ * @param session The session to use for the query
231
+ * @returns void
232
+ * @throws EmailTokenUsedOrInvalidError
233
+ * @throws EmailTokenExpiredError
234
+ * @throws EmailVerifiedError
235
+ * @throws UserNotFoundError
236
+ */
237
+ verifyAccountTokenAndComplete(emailToken: string, session?: ClientSession): Promise<void>;
238
+ /**
239
+ * Validate the email token
240
+ * @param token The token to validate
241
+ * @param restrictType The type of email token to validate (or throw)
242
+ * @param session The session to use for the query
243
+ * @returns void
244
+ * @throws EmailTokenUsedOrInvalidError
245
+ */
246
+ validateEmailToken(token: string, restrictType?: EmailTokenType, session?: ClientSession): Promise<void>;
247
+ /**
248
+ * Updates the user's language
249
+ * @param userId - The ID of the user
250
+ * @param newLanguage - The new language
251
+ * @param session - The session to use for the query
252
+ * @returns The updated user
253
+ */
254
+ updateSiteLanguage(userId: string, newLanguage: string, session?: ClientSession): Promise<IRequestUserDTO>;
255
+ /**
256
+ * Updates the user's Dark Mode preference
257
+ * @param userId - The ID of the user
258
+ * @param newDarkMode - The new Dark Mode preference
259
+ * @param session - The session to use for the query
260
+ * @returns The updated user
261
+ */
262
+ updateDarkMode(userId: string, newDarkMode: boolean, session?: ClientSession): Promise<IRequestUserDTO>;
263
+ /**
264
+ * Updates multiple user settings at once
265
+ * @param userId - The ID of the user
266
+ * @param settings - Object containing settings to update
267
+ * @param session - The session to use for the query
268
+ * @returns The updated user
269
+ */
270
+ updateUserSettings(userId: string, settings: {
271
+ email?: string;
272
+ timezone?: string;
273
+ siteLanguage?: string;
274
+ currency?: string;
275
+ darkMode?: boolean;
276
+ directChallenge?: boolean;
277
+ }, session?: ClientSession): Promise<IRequestUserDTO>;
278
+ /**
279
+ * Changes the user's password by re-wrapping their master key
280
+ * @param userId - The ID of the user
281
+ * @param currentPassword - The current password
282
+ * @param newPassword - The new password
283
+ * @param session - The session to use for the query
284
+ * @returns void
285
+ */
286
+ changePassword(userId: string, currentPassword: string, newPassword: string, session?: ClientSession): Promise<void>;
287
+ /**
288
+ * Retrieve an email token by its token string and type
289
+ * @param token - The token string
290
+ * @param type - The type of the email token
291
+ * @param session - The session to use for the query
292
+ * @returns The email token document or null if not found
293
+ */
294
+ findEmailToken(token: string, type?: EmailTokenType, session?: ClientSession): Promise<IEmailTokenDocument | null>;
295
+ /**
296
+ * Verify email token is valid
297
+ * @param token - The email token
298
+ * @param session - The session to use for the query
299
+ * @returns void
300
+ */
301
+ verifyEmailToken(token: string, type: EmailTokenType, session?: ClientSession): Promise<void>;
302
+ /**
303
+ * Reset password using email token
304
+ * @param token - The email token
305
+ * @param newPassword - The new password
306
+ * @param session - The session to use for the query
307
+ * @returns void
308
+ */
309
+ resetPasswordWithToken(token: string, newPassword: string, credential?: string, // either mnemonic or current password; required
310
+ session?: ClientSession): Promise<void>;
311
+ /**
312
+ * Generate a login challenge for the client to sign
313
+ * @returns The login challenge in hex
314
+ */
315
+ generateDirectLoginChallenge(): string;
316
+ /**
317
+ * Verifies a direct login challenge response
318
+ * @param serverSignedRequest The login challenge response in hex
319
+ * @param session The mongoose session, if provided
320
+ * @returns A promise with the user document and user member object
321
+ */
322
+ verifyDirectLoginChallenge(serverSignedRequest: string, signature: string, username?: string, email?: string, session?: ClientSession): Promise<{
323
+ userDoc: IUserDocument<S, I>;
324
+ userMember: BackendMember;
325
+ }>;
326
+ /**
327
+ * Request a login link via email
328
+ * @param email Email address
329
+ * @param username Username
330
+ * @param session Existing session, if any
331
+ * @returns void
332
+ */
333
+ requestEmailLogin(email?: string, username?: string, session?: ClientSession): Promise<void>;
334
+ /**
335
+ * Validate an email login token challenge
336
+ * @param token The token to challenge
337
+ * @param signature The signature of the token by the user's private key
338
+ * @param session The session to use for the query
339
+ * @returns The user document if the challenge is valid
340
+ */
341
+ validateEmailLoginTokenChallenge(token: string, signature: string, session?: ClientSession): Promise<IUserDocument<S, I>>;
342
+ /**
343
+ * Updates the user's last login time atomically
344
+ * @param userId - The ID of the user
345
+ * @returns void
346
+ */
347
+ updateLastLogin(userId: I): Promise<void>;
348
+ }
349
+ //# sourceMappingURL=user.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/services/user.ts"],"names":[],"mappings":"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"}