@digitaldefiance/node-express-suite 3.7.5 → 3.7.6

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 (813) hide show
  1. package/package.json +5 -4
  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 +128 -0
  27. package/src/application-base.d.ts.map +1 -0
  28. package/src/application-base.js +364 -0
  29. package/src/application-base.js.map +1 -0
  30. package/src/application-concrete.d.ts +26 -0
  31. package/src/application-concrete.d.ts.map +1 -0
  32. package/src/application-concrete.js +34 -0
  33. package/src/application-concrete.js.map +1 -0
  34. package/src/application.d.ts +34 -0
  35. package/src/application.d.ts.map +1 -0
  36. package/src/application.js +172 -0
  37. package/src/application.js.map +1 -0
  38. package/src/backup-code.d.ts +72 -0
  39. package/src/backup-code.d.ts.map +1 -0
  40. package/src/backup-code.js +243 -0
  41. package/src/backup-code.js.map +1 -0
  42. package/src/builders/application-builder.d.ts +47 -0
  43. package/src/builders/application-builder.d.ts.map +1 -0
  44. package/src/builders/application-builder.js +76 -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 +21 -0
  51. package/src/constants.d.ts.map +1 -0
  52. package/src/constants.js +63 -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 +45 -0
  59. package/src/container/service-container.d.ts.map +1 -0
  60. package/src/container/service-container.js +68 -0
  61. package/src/container/service-container.js.map +1 -0
  62. package/src/container/{service-definitions.ts → service-definitions.d.ts} +10 -11
  63. package/src/container/service-definitions.d.ts.map +1 -0
  64. package/src/container/service-definitions.js +21 -0
  65. package/src/container/service-definitions.js.map +1 -0
  66. package/src/controllers/base.d.ts +80 -0
  67. package/src/controllers/base.d.ts.map +1 -0
  68. package/src/controllers/base.js +318 -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 +66 -0
  75. package/src/controllers/user.d.ts.map +1 -0
  76. package/src/controllers/user.js +936 -0
  77. package/src/controllers/user.js.map +1 -0
  78. package/src/database/{database-initializer.ts → database-initializer.d.ts} +3 -4
  79. package/src/database/database-initializer.d.ts.map +1 -0
  80. package/src/database/database-initializer.js +8 -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 +22 -0
  87. package/src/decorators/base-controller.d.ts.map +1 -0
  88. package/src/decorators/base-controller.js +71 -0
  89. package/src/decorators/base-controller.js.map +1 -0
  90. package/src/decorators/controller.d.ts +43 -0
  91. package/src/decorators/controller.d.ts.map +1 -0
  92. package/src/decorators/controller.js +73 -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 +10 -0
  99. package/src/decorators/zod-validation.d.ts.map +1 -0
  100. package/src/decorators/zod-validation.js +53 -0
  101. package/src/decorators/zod-validation.js.map +1 -0
  102. package/src/defaults.d.ts +12 -0
  103. package/src/defaults.d.ts.map +1 -0
  104. package/src/defaults.js +210 -0
  105. package/src/defaults.js.map +1 -0
  106. package/src/documents/{base.ts → base.d.ts} +2 -4
  107. package/src/documents/base.d.ts.map +1 -0
  108. package/src/documents/base.js +8 -0
  109. package/src/documents/base.js.map +1 -0
  110. package/src/documents/{email-token.ts → email-token.d.ts} +3 -8
  111. package/src/documents/email-token.d.ts.map +1 -0
  112. package/src/documents/email-token.js +8 -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 -6
  119. package/src/documents/mnemonic.d.ts.map +1 -0
  120. package/src/documents/mnemonic.js +8 -0
  121. package/src/documents/mnemonic.js.map +1 -0
  122. package/src/documents/{role.ts → role.d.ts} +2 -6
  123. package/src/documents/role.d.ts.map +1 -0
  124. package/src/documents/role.js +8 -0
  125. package/src/documents/role.js.map +1 -0
  126. package/src/documents/{used-direct-login-token.ts → used-direct-login-token.d.ts} +2 -4
  127. package/src/documents/used-direct-login-token.d.ts.map +1 -0
  128. package/src/documents/used-direct-login-token.js +8 -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 -6
  131. package/src/documents/user-role.d.ts.map +1 -0
  132. package/src/documents/user-role.js +8 -0
  133. package/src/documents/user-role.js.map +1 -0
  134. package/src/documents/{user.ts → user.d.ts} +2 -6
  135. package/src/documents/user.d.ts.map +1 -0
  136. package/src/documents/user.js +8 -0
  137. package/src/documents/user.js.map +1 -0
  138. package/src/enumerations/base-model-name.d.ts +43 -0
  139. package/src/enumerations/base-model-name.d.ts.map +1 -0
  140. package/src/enumerations/base-model-name.js +39 -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.ts → length-encoding-type.d.ts} +6 -6
  147. package/src/enumerations/length-encoding-type.d.ts.map +1 -0
  148. package/src/enumerations/length-encoding-type.js +20 -0
  149. package/src/enumerations/length-encoding-type.js.map +1 -0
  150. package/src/enumerations/schema-collection.d.ts +39 -0
  151. package/src/enumerations/schema-collection.d.ts.map +1 -0
  152. package/src/enumerations/schema-collection.js +43 -0
  153. package/src/enumerations/schema-collection.js.map +1 -0
  154. package/src/enumerations/{symmetric-error-type.ts → symmetric-error-type.d.ts} +4 -4
  155. package/src/enumerations/symmetric-error-type.d.ts.map +1 -0
  156. package/src/enumerations/symmetric-error-type.js +17 -0
  157. package/src/enumerations/symmetric-error-type.js.map +1 -0
  158. package/src/environment.d.ts +194 -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 +24 -0
  163. package/src/errors/express-validation.d.ts.map +1 -0
  164. package/src/errors/express-validation.js +33 -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 +19 -0
  171. package/src/errors/invalid-backup-code-version.d.ts.map +1 -0
  172. package/src/errors/invalid-backup-code-version.js +29 -0
  173. package/src/errors/invalid-backup-code-version.js.map +1 -0
  174. package/src/errors/invalid-jwt-token.d.ts +17 -0
  175. package/src/errors/invalid-jwt-token.d.ts.map +1 -0
  176. package/src/errors/invalid-jwt-token.js +24 -0
  177. package/src/errors/invalid-jwt-token.js.map +1 -0
  178. package/src/errors/invalid-model.d.ts +18 -0
  179. package/src/errors/invalid-model.d.ts.map +1 -0
  180. package/src/errors/invalid-model.js +26 -0
  181. package/src/errors/invalid-model.js.map +1 -0
  182. package/src/errors/invalid-new-password.d.ts +19 -0
  183. package/src/errors/invalid-new-password.d.ts.map +1 -0
  184. package/src/errors/invalid-new-password.js +28 -0
  185. package/src/errors/invalid-new-password.js.map +1 -0
  186. package/src/errors/invalid-password.d.ts +19 -0
  187. package/src/errors/invalid-password.d.ts.map +1 -0
  188. package/src/errors/invalid-password.js +28 -0
  189. package/src/errors/invalid-password.js.map +1 -0
  190. package/src/errors/missing-validated-data.d.ts +24 -0
  191. package/src/errors/missing-validated-data.d.ts.map +1 -0
  192. package/src/errors/missing-validated-data.js +53 -0
  193. package/src/errors/missing-validated-data.js.map +1 -0
  194. package/src/errors/mnemonic-or-password-required.d.ts +17 -0
  195. package/src/errors/mnemonic-or-password-required.d.ts.map +1 -0
  196. package/src/errors/mnemonic-or-password-required.js +26 -0
  197. package/src/errors/mnemonic-or-password-required.js.map +1 -0
  198. package/src/errors/model-not-registered.d.ts +18 -0
  199. package/src/errors/model-not-registered.d.ts.map +1 -0
  200. package/src/errors/model-not-registered.js +26 -0
  201. package/src/errors/model-not-registered.js.map +1 -0
  202. package/src/errors/mongoose-validation.d.ts +28 -0
  203. package/src/errors/mongoose-validation.d.ts.map +1 -0
  204. package/src/errors/mongoose-validation.js +33 -0
  205. package/src/errors/mongoose-validation.js.map +1 -0
  206. package/src/errors/symmetric.d.ts +23 -0
  207. package/src/errors/symmetric.d.ts.map +1 -0
  208. package/src/errors/symmetric.js +37 -0
  209. package/src/errors/symmetric.js.map +1 -0
  210. package/src/errors/token-expired.d.ts +17 -0
  211. package/src/errors/token-expired.d.ts.map +1 -0
  212. package/src/errors/token-expired.js +24 -0
  213. package/src/errors/token-expired.js.map +1 -0
  214. package/src/get-language.d.ts +12 -0
  215. package/src/get-language.d.ts.map +1 -0
  216. package/src/get-language.js +40 -0
  217. package/src/get-language.js.map +1 -0
  218. package/src/get-timezone.d.ts +12 -0
  219. package/src/get-timezone.d.ts.map +1 -0
  220. package/src/get-timezone.js +53 -0
  221. package/src/get-timezone.js.map +1 -0
  222. package/src/{index.ts → index.d.ts} +2 -44
  223. package/src/index.d.ts.map +1 -0
  224. package/src/index.js +80 -0
  225. package/src/index.js.map +1 -0
  226. package/src/interfaces/{api-error-response.ts → api-error-response.d.ts} +2 -3
  227. package/src/interfaces/api-error-response.d.ts.map +1 -0
  228. package/src/interfaces/api-error-response.js +8 -0
  229. package/src/interfaces/api-error-response.js.map +1 -0
  230. package/src/interfaces/{api-express-validation-error-response.ts → api-express-validation-error-response.d.ts} +3 -4
  231. package/src/interfaces/api-express-validation-error-response.d.ts.map +1 -0
  232. package/src/interfaces/api-express-validation-error-response.js +8 -0
  233. package/src/interfaces/api-express-validation-error-response.js.map +1 -0
  234. package/src/interfaces/{api-message-response.ts → api-message-response.d.ts} +2 -2
  235. package/src/interfaces/api-message-response.d.ts.map +1 -0
  236. package/src/interfaces/api-message-response.js +8 -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 -3
  239. package/src/interfaces/api-mongo-validation-error-response.d.ts.map +1 -0
  240. package/src/interfaces/api-mongo-validation-error-response.js +8 -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 -3
  243. package/src/interfaces/api-responses/backup-codes-response.d.ts.map +1 -0
  244. package/src/interfaces/api-responses/backup-codes-response.js +8 -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} +5 -6
  247. package/src/interfaces/api-responses/challenge-response.d.ts.map +1 -0
  248. package/src/interfaces/api-responses/challenge-response.js +7 -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 -3
  251. package/src/interfaces/api-responses/code-count-response.d.ts.map +1 -0
  252. package/src/interfaces/api-responses/code-count-response.js +8 -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 -5
  259. package/src/interfaces/api-responses/login-response.d.ts.map +1 -0
  260. package/src/interfaces/api-responses/login-response.js +8 -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} +3 -4
  263. package/src/interfaces/api-responses/mnemonic-response.d.ts.map +1 -0
  264. package/src/interfaces/api-responses/mnemonic-response.js +7 -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} +5 -6
  267. package/src/interfaces/api-responses/registration-response.d.ts.map +1 -0
  268. package/src/interfaces/api-responses/registration-response.js +7 -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 -3
  271. package/src/interfaces/api-responses/request-user-response.d.ts.map +1 -0
  272. package/src/interfaces/api-responses/request-user-response.js +8 -0
  273. package/src/interfaces/api-responses/request-user-response.js.map +1 -0
  274. package/src/interfaces/api-responses/{user-settings-response.ts → user-settings-response.d.ts} +9 -10
  275. package/src/interfaces/api-responses/user-settings-response.d.ts.map +1 -0
  276. package/src/interfaces/api-responses/user-settings-response.js +8 -0
  277. package/src/interfaces/api-responses/user-settings-response.js.map +1 -0
  278. package/src/interfaces/application.d.ts +39 -0
  279. package/src/interfaces/application.d.ts.map +1 -0
  280. package/src/interfaces/application.js +8 -0
  281. package/src/interfaces/application.js.map +1 -0
  282. package/src/interfaces/backend-objects/{email-token.ts → email-token.d.ts} +3 -8
  283. package/src/interfaces/backend-objects/email-token.d.ts.map +1 -0
  284. package/src/interfaces/backend-objects/email-token.js +8 -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.ts → request-user.d.ts} +2 -6
  291. package/src/interfaces/backend-objects/request-user.d.ts.map +1 -0
  292. package/src/interfaces/backend-objects/request-user.js +8 -0
  293. package/src/interfaces/backend-objects/request-user.js.map +1 -0
  294. package/src/interfaces/backend-objects/{role.ts → role.d.ts} +2 -7
  295. package/src/interfaces/backend-objects/role.d.ts.map +1 -0
  296. package/src/interfaces/backend-objects/role.js +8 -0
  297. package/src/interfaces/backend-objects/role.js.map +1 -0
  298. package/src/interfaces/backend-objects/{user.ts → user.d.ts} +2 -6
  299. package/src/interfaces/backend-objects/user.d.ts.map +1 -0
  300. package/src/interfaces/backend-objects/user.js +8 -0
  301. package/src/interfaces/backend-objects/user.js.map +1 -0
  302. package/src/interfaces/{checksum-config.ts → checksum-config.d.ts} +3 -3
  303. package/src/interfaces/checksum-config.d.ts.map +1 -0
  304. package/src/interfaces/checksum-config.js +8 -0
  305. package/src/interfaces/checksum-config.js.map +1 -0
  306. package/src/interfaces/checksum-consts.d.ts +20 -0
  307. package/src/interfaces/checksum-consts.d.ts.map +1 -0
  308. package/src/interfaces/checksum-consts.js +8 -0
  309. package/src/interfaces/checksum-consts.js.map +1 -0
  310. package/src/interfaces/constants.d.ts +107 -0
  311. package/src/interfaces/constants.d.ts.map +1 -0
  312. package/src/interfaces/constants.js +8 -0
  313. package/src/interfaces/constants.js.map +1 -0
  314. package/src/interfaces/{controller-config.ts → controller-config.d.ts} +15 -31
  315. package/src/interfaces/controller-config.d.ts.map +1 -0
  316. package/src/interfaces/controller-config.js +8 -0
  317. package/src/interfaces/controller-config.js.map +1 -0
  318. package/src/interfaces/{create-user-basics.ts → create-user-basics.d.ts} +13 -13
  319. package/src/interfaces/create-user-basics.d.ts.map +1 -0
  320. package/src/interfaces/create-user-basics.js +8 -0
  321. package/src/interfaces/create-user-basics.js.map +1 -0
  322. package/src/interfaces/{csp-config.ts → csp-config.d.ts} +5 -15
  323. package/src/interfaces/csp-config.d.ts.map +1 -0
  324. package/src/interfaces/csp-config.js +23 -0
  325. package/src/interfaces/csp-config.js.map +1 -0
  326. package/src/interfaces/{csp-definition.ts → csp-definition.d.ts} +9 -46
  327. package/src/interfaces/csp-definition.d.ts.map +1 -0
  328. package/src/interfaces/csp-definition.js +32 -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 -3
  331. package/src/interfaces/db-init-result.d.ts.map +1 -0
  332. package/src/interfaces/db-init-result.js +8 -0
  333. package/src/interfaces/db-init-result.js.map +1 -0
  334. package/src/interfaces/{deep-partial.ts → deep-partial.d.ts} +2 -2
  335. package/src/interfaces/deep-partial.d.ts.map +1 -0
  336. package/src/interfaces/deep-partial.js +8 -0
  337. package/src/interfaces/deep-partial.js.map +1 -0
  338. package/src/interfaces/{discriminator-collections.ts → discriminator-collections.d.ts} +4 -8
  339. package/src/interfaces/discriminator-collections.d.ts.map +1 -0
  340. package/src/interfaces/discriminator-collections.js +8 -0
  341. package/src/interfaces/discriminator-collections.js.map +1 -0
  342. package/src/interfaces/email-service.d.ts +21 -0
  343. package/src/interfaces/email-service.d.ts.map +1 -0
  344. package/src/interfaces/email-service.js +8 -0
  345. package/src/interfaces/email-service.js.map +1 -0
  346. package/src/interfaces/environment-mongo.d.ts +85 -0
  347. package/src/interfaces/environment-mongo.d.ts.map +1 -0
  348. package/src/interfaces/environment-mongo.js +8 -0
  349. package/src/interfaces/environment-mongo.js.map +1 -0
  350. package/src/interfaces/environment.d.ts +190 -0
  351. package/src/interfaces/environment.d.ts.map +1 -0
  352. package/src/interfaces/environment.js +8 -0
  353. package/src/interfaces/environment.js.map +1 -0
  354. package/src/interfaces/{failable-result.ts → failable-result.d.ts} +5 -5
  355. package/src/interfaces/failable-result.d.ts.map +1 -0
  356. package/src/interfaces/failable-result.js +8 -0
  357. package/src/interfaces/failable-result.js.map +1 -0
  358. package/src/interfaces/{fec-consts.ts → fec-consts.d.ts} +3 -3
  359. package/src/interfaces/fec-consts.d.ts.map +1 -0
  360. package/src/interfaces/fec-consts.js +8 -0
  361. package/src/interfaces/fec-consts.js.map +1 -0
  362. package/src/interfaces/{flexible-csp.ts → flexible-csp.d.ts} +5 -16
  363. package/src/interfaces/flexible-csp.d.ts.map +1 -0
  364. package/src/interfaces/flexible-csp.js +24 -0
  365. package/src/interfaces/flexible-csp.js.map +1 -0
  366. package/src/interfaces/{handleable-error-options.ts → handleable-error-options.d.ts} +5 -5
  367. package/src/interfaces/handleable-error-options.d.ts.map +1 -0
  368. package/src/interfaces/handleable-error-options.js +8 -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 +20 -0
  375. package/src/interfaces/jwt-consts.d.ts.map +1 -0
  376. package/src/interfaces/jwt-consts.js +8 -0
  377. package/src/interfaces/jwt-consts.js.map +1 -0
  378. package/src/interfaces/{jwt-sign-response.ts → jwt-sign-response.d.ts} +9 -18
  379. package/src/interfaces/jwt-sign-response.d.ts.map +1 -0
  380. package/src/interfaces/jwt-sign-response.js +8 -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 -2
  383. package/src/interfaces/models/email-token.d.ts.map +1 -0
  384. package/src/interfaces/models/email-token.js +8 -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 -2
  391. package/src/interfaces/models/mnemonic.d.ts.map +1 -0
  392. package/src/interfaces/models/mnemonic.js +8 -0
  393. package/src/interfaces/models/mnemonic.js.map +1 -0
  394. package/src/interfaces/models/{role.ts → role.d.ts} +1 -2
  395. package/src/interfaces/models/role.d.ts.map +1 -0
  396. package/src/interfaces/models/role.js +8 -0
  397. package/src/interfaces/models/role.js.map +1 -0
  398. package/src/interfaces/models/{token-role.ts → token-role.d.ts} +2 -6
  399. package/src/interfaces/models/token-role.d.ts.map +1 -0
  400. package/src/interfaces/models/token-role.js +8 -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 -4
  403. package/src/interfaces/models/used-direct-login-token.d.ts.map +1 -0
  404. package/src/interfaces/models/used-direct-login-token.js +8 -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} +2 -6
  407. package/src/interfaces/models/user-role.d.ts.map +1 -0
  408. package/src/interfaces/models/user-role.js +8 -0
  409. package/src/interfaces/models/user-role.js.map +1 -0
  410. package/src/interfaces/models/{user.ts → user.d.ts} +3 -12
  411. package/src/interfaces/models/user.d.ts.map +1 -0
  412. package/src/interfaces/models/user.js +8 -0
  413. package/src/interfaces/models/user.js.map +1 -0
  414. package/src/interfaces/{mongo-errors.ts → mongo-errors.d.ts} +2 -3
  415. package/src/interfaces/mongo-errors.d.ts.map +1 -0
  416. package/src/interfaces/mongo-errors.js +8 -0
  417. package/src/interfaces/mongo-errors.js.map +1 -0
  418. package/src/interfaces/request-user.d.ts +67 -0
  419. package/src/interfaces/request-user.d.ts.map +1 -0
  420. package/src/interfaces/request-user.js +8 -0
  421. package/src/interfaces/request-user.js.map +1 -0
  422. package/src/interfaces/required-string-keys.d.ts +28 -0
  423. package/src/interfaces/required-string-keys.d.ts.map +1 -0
  424. package/src/interfaces/required-string-keys.js +8 -0
  425. package/src/interfaces/required-string-keys.js.map +1 -0
  426. package/src/interfaces/{schema.ts → schema.d.ts} +22 -28
  427. package/src/interfaces/schema.d.ts.map +1 -0
  428. package/src/interfaces/schema.js +8 -0
  429. package/src/interfaces/schema.js.map +1 -0
  430. package/src/interfaces/server-init-result.d.ts +45 -0
  431. package/src/interfaces/server-init-result.d.ts.map +1 -0
  432. package/src/interfaces/server-init-result.js +8 -0
  433. package/src/interfaces/server-init-result.js.map +1 -0
  434. package/src/interfaces/{status-code-response.ts → status-code-response.d.ts} +4 -5
  435. package/src/interfaces/status-code-response.d.ts.map +1 -0
  436. package/src/interfaces/status-code-response.js +8 -0
  437. package/src/interfaces/status-code-response.js.map +1 -0
  438. package/src/interfaces/{symmetric-encryption-results.ts → 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 +5 -0
  441. package/src/interfaces/symmetric-encryption-results.js.map +1 -1
  442. package/src/interfaces/{test-environment.ts → test-environment.d.ts} +6 -7
  443. package/src/interfaces/test-environment.d.ts.map +1 -0
  444. package/src/interfaces/test-environment.js +8 -0
  445. package/src/interfaces/test-environment.js.map +1 -0
  446. package/src/interfaces/{token-response.ts → token-response.d.ts} +2 -3
  447. package/src/interfaces/token-response.d.ts.map +1 -0
  448. package/src/interfaces/token-response.js +8 -0
  449. package/src/interfaces/token-response.js.map +1 -0
  450. package/src/middleware-utils.d.ts +31 -0
  451. package/src/middleware-utils.d.ts.map +1 -0
  452. package/src/middleware-utils.js +117 -0
  453. package/src/middleware-utils.js.map +1 -0
  454. package/src/middlewares/authenticate-crypto.d.ts +27 -0
  455. package/src/middlewares/authenticate-crypto.d.ts.map +1 -0
  456. package/src/middlewares/authenticate-crypto.js +143 -0
  457. package/src/middlewares/authenticate-crypto.js.map +1 -0
  458. package/src/middlewares/authenticate-token.d.ts +34 -0
  459. package/src/middlewares/authenticate-token.d.ts.map +1 -0
  460. package/src/middlewares/authenticate-token.js +117 -0
  461. package/src/middlewares/authenticate-token.js.map +1 -0
  462. package/src/middlewares/cleanup-crypto.d.ts +16 -0
  463. package/src/middlewares/cleanup-crypto.d.ts.map +1 -0
  464. package/src/middlewares/cleanup-crypto.js +41 -0
  465. package/src/middlewares/cleanup-crypto.js.map +1 -0
  466. package/src/middlewares/{index.ts → index.d.ts} +1 -0
  467. package/src/middlewares/index.d.ts.map +1 -0
  468. package/src/middlewares/index.js +8 -0
  469. package/src/middlewares/index.js.map +1 -0
  470. package/src/middlewares/{set-global-context-language.ts → set-global-context-language.d.ts} +2 -24
  471. package/src/middlewares/set-global-context-language.d.ts.map +1 -0
  472. package/src/middlewares/set-global-context-language.js +27 -0
  473. package/src/middlewares/set-global-context-language.js.map +1 -0
  474. package/src/model-registry.d.ts +79 -0
  475. package/src/model-registry.d.ts.map +1 -0
  476. package/src/model-registry.js +97 -0
  477. package/src/model-registry.js.map +1 -0
  478. package/src/models/{email-token.ts → email-token.d.ts} +2 -27
  479. package/src/models/email-token.d.ts.map +1 -0
  480. package/src/models/email-token.js +16 -0
  481. package/src/models/email-token.js.map +1 -0
  482. package/src/models/{index.ts → index.d.ts} +1 -0
  483. package/src/models/index.d.ts.map +1 -0
  484. package/src/models/index.js +10 -0
  485. package/src/models/index.js.map +1 -0
  486. package/src/models/{mnemonic.ts → mnemonic.d.ts} +2 -20
  487. package/src/models/mnemonic.d.ts.map +1 -0
  488. package/src/models/mnemonic.js +27 -0
  489. package/src/models/mnemonic.js.map +1 -0
  490. package/src/models/{role.ts → role.d.ts} +2 -16
  491. package/src/models/role.d.ts.map +1 -0
  492. package/src/models/role.js +27 -0
  493. package/src/models/role.js.map +1 -0
  494. package/src/models/{used-direct-login-token.ts → used-direct-login-token.d.ts} +2 -27
  495. package/src/models/used-direct-login-token.d.ts.map +1 -0
  496. package/src/models/used-direct-login-token.js +16 -0
  497. package/src/models/used-direct-login-token.js.map +1 -0
  498. package/src/models/{user-role.ts → user-role.d.ts} +2 -19
  499. package/src/models/user-role.d.ts.map +1 -0
  500. package/src/models/user-role.js +26 -0
  501. package/src/models/user-role.js.map +1 -0
  502. package/src/models/{user.ts → user.d.ts} +2 -20
  503. package/src/models/user.d.ts.map +1 -0
  504. package/src/models/user.js +27 -0
  505. package/src/models/user.js.map +1 -0
  506. package/src/pipeline/{index.ts → index.d.ts} +1 -0
  507. package/src/pipeline/index.d.ts.map +1 -0
  508. package/src/pipeline/index.js +5 -0
  509. package/src/pipeline/index.js.map +1 -0
  510. package/src/pipeline/pipeline-builder.d.ts +16 -0
  511. package/src/pipeline/pipeline-builder.d.ts.map +1 -0
  512. package/src/pipeline/pipeline-builder.js +26 -0
  513. package/src/pipeline/pipeline-builder.js.map +1 -0
  514. package/src/plugins/{index.ts → index.d.ts} +1 -0
  515. package/src/plugins/index.d.ts.map +1 -0
  516. package/src/plugins/index.js +6 -0
  517. package/src/plugins/index.js.map +1 -0
  518. package/src/plugins/{plugin-interface.ts → plugin-interface.d.ts} +5 -6
  519. package/src/plugins/plugin-interface.d.ts.map +1 -0
  520. package/src/plugins/plugin-interface.js +8 -0
  521. package/src/plugins/plugin-interface.js.map +1 -0
  522. package/src/plugins/plugin-manager.d.ts +22 -0
  523. package/src/plugins/plugin-manager.d.ts.map +1 -0
  524. package/src/plugins/plugin-manager.js +46 -0
  525. package/src/plugins/plugin-manager.js.map +1 -0
  526. package/src/registry/email-service-registry.d.ts +49 -0
  527. package/src/registry/email-service-registry.d.ts.map +1 -0
  528. package/src/registry/email-service-registry.js +64 -0
  529. package/src/registry/email-service-registry.js.map +1 -0
  530. package/src/registry/{index.ts → index.d.ts} +1 -0
  531. package/src/registry/index.d.ts.map +1 -0
  532. package/src/registry/index.js +6 -0
  533. package/src/registry/index.js.map +1 -0
  534. package/src/responses/{index.ts → index.d.ts} +1 -0
  535. package/src/responses/index.d.ts.map +1 -0
  536. package/src/responses/index.js +5 -0
  537. package/src/responses/index.js.map +1 -0
  538. package/src/responses/response-builder.d.ts +103 -0
  539. package/src/responses/response-builder.d.ts.map +1 -0
  540. package/src/responses/response-builder.js +142 -0
  541. package/src/responses/response-builder.js.map +1 -0
  542. package/src/routers/api.d.ts +59 -0
  543. package/src/routers/api.d.ts.map +1 -0
  544. package/src/routers/api.js +110 -0
  545. package/src/routers/api.js.map +1 -0
  546. package/src/routers/app.d.ts +87 -0
  547. package/src/routers/app.d.ts.map +1 -0
  548. package/src/routers/app.js +285 -0
  549. package/src/routers/app.js.map +1 -0
  550. package/src/routers/{base.ts → base.d.ts} +11 -19
  551. package/src/routers/base.d.ts.map +1 -0
  552. package/src/routers/base.js +31 -0
  553. package/src/routers/base.js.map +1 -0
  554. package/src/routers/{index.ts → index.d.ts} +1 -0
  555. package/src/routers/index.d.ts.map +1 -0
  556. package/src/routers/index.js +7 -0
  557. package/src/routers/index.js.map +1 -0
  558. package/src/routers/router-config.d.ts +35 -0
  559. package/src/routers/router-config.d.ts.map +1 -0
  560. package/src/routers/router-config.js +16 -0
  561. package/src/routers/router-config.js.map +1 -0
  562. package/src/routing/index.d.ts +2 -0
  563. package/src/routing/index.d.ts.map +1 -0
  564. package/src/routing/index.js +5 -0
  565. package/src/routing/index.js.map +1 -0
  566. package/src/routing/route-builder.d.ts +121 -0
  567. package/src/routing/route-builder.d.ts.map +1 -0
  568. package/src/routing/route-builder.js +167 -0
  569. package/src/routing/route-builder.js.map +1 -0
  570. package/src/schemas/email-token.d.ts +65 -0
  571. package/src/schemas/email-token.d.ts.map +1 -0
  572. package/src/schemas/email-token.js +68 -0
  573. package/src/schemas/email-token.js.map +1 -0
  574. package/src/schemas/{index.ts → index.d.ts} +1 -0
  575. package/src/schemas/index.d.ts.map +1 -0
  576. package/src/schemas/index.js +11 -0
  577. package/src/schemas/index.js.map +1 -0
  578. package/src/schemas/mnemonic.d.ts +37 -0
  579. package/src/schemas/mnemonic.d.ts.map +1 -0
  580. package/src/schemas/mnemonic.js +41 -0
  581. package/src/schemas/mnemonic.js.map +1 -0
  582. package/src/schemas/role.d.ts +57 -0
  583. package/src/schemas/role.d.ts.map +1 -0
  584. package/src/schemas/role.js +102 -0
  585. package/src/schemas/role.js.map +1 -0
  586. package/src/schemas/schema.d.ts +62 -0
  587. package/src/schemas/schema.d.ts.map +1 -0
  588. package/src/schemas/schema.js +81 -0
  589. package/src/schemas/schema.js.map +1 -0
  590. package/src/schemas/used-direct-login-token.d.ts +49 -0
  591. package/src/schemas/used-direct-login-token.d.ts.map +1 -0
  592. package/src/schemas/used-direct-login-token.js +35 -0
  593. package/src/schemas/used-direct-login-token.js.map +1 -0
  594. package/src/schemas/user-role.d.ts +52 -0
  595. package/src/schemas/user-role.d.ts.map +1 -0
  596. package/src/schemas/user-role.js +67 -0
  597. package/src/schemas/user-role.js.map +1 -0
  598. package/src/schemas/user.d.ts +43 -0
  599. package/src/schemas/user.d.ts.map +1 -0
  600. package/src/schemas/user.js +214 -0
  601. package/src/schemas/user.js.map +1 -0
  602. package/src/services/backup-code.d.ts +80 -0
  603. package/src/services/backup-code.d.ts.map +1 -0
  604. package/src/services/backup-code.js +189 -0
  605. package/src/services/backup-code.js.map +1 -0
  606. package/src/services/base.d.ts +22 -0
  607. package/src/services/base.d.ts.map +1 -0
  608. package/src/services/base.js +26 -0
  609. package/src/services/base.js.map +1 -0
  610. package/src/services/checksum.d.ts +90 -0
  611. package/src/services/checksum.d.ts.map +1 -0
  612. package/src/services/checksum.js +166 -0
  613. package/src/services/checksum.js.map +1 -0
  614. package/src/services/database-initialization.d.ts +138 -0
  615. package/src/services/database-initialization.d.ts.map +1 -0
  616. package/src/services/database-initialization.js +904 -0
  617. package/src/services/database-initialization.js.map +1 -0
  618. package/src/services/{db-init-cache.ts → db-init-cache.d.ts} +6 -16
  619. package/src/services/db-init-cache.d.ts.map +1 -0
  620. package/src/services/db-init-cache.js +7 -0
  621. package/src/services/db-init-cache.js.map +1 -0
  622. package/src/services/direct-login-token.d.ts +28 -0
  623. package/src/services/direct-login-token.d.ts.map +1 -0
  624. package/src/services/direct-login-token.js +62 -0
  625. package/src/services/direct-login-token.js.map +1 -0
  626. package/src/services/dummy-email-service.d.ts +30 -0
  627. package/src/services/dummy-email-service.d.ts.map +1 -0
  628. package/src/services/dummy-email-service.js +35 -0
  629. package/src/services/dummy-email-service.js.map +1 -0
  630. package/src/services/fec-usage-example.d.ts +58 -0
  631. package/src/services/fec-usage-example.d.ts.map +1 -0
  632. package/src/services/fec-usage-example.js +95 -0
  633. package/src/services/fec-usage-example.js.map +1 -0
  634. package/src/services/fec.d.ts +88 -0
  635. package/src/services/fec.d.ts.map +1 -0
  636. package/src/services/fec.js +246 -0
  637. package/src/services/fec.js.map +1 -0
  638. package/src/services/{index.ts → index.d.ts} +1 -0
  639. package/src/services/index.d.ts.map +1 -0
  640. package/src/services/index.js +22 -0
  641. package/src/services/index.js.map +1 -0
  642. package/src/services/jwt.d.ts +45 -0
  643. package/src/services/jwt.d.ts.map +1 -0
  644. package/src/services/jwt.js +105 -0
  645. package/src/services/jwt.js.map +1 -0
  646. package/src/services/key-wrapping.d.ts +139 -0
  647. package/src/services/key-wrapping.d.ts.map +1 -0
  648. package/src/services/key-wrapping.js +372 -0
  649. package/src/services/key-wrapping.js.map +1 -0
  650. package/src/services/mnemonic.d.ts +68 -0
  651. package/src/services/mnemonic.d.ts.map +1 -0
  652. package/src/services/mnemonic.js +120 -0
  653. package/src/services/mnemonic.js.map +1 -0
  654. package/src/services/request-user.d.ts +45 -0
  655. package/src/services/request-user.d.ts.map +1 -0
  656. package/src/services/request-user.js +90 -0
  657. package/src/services/request-user.js.map +1 -0
  658. package/src/services/role.d.ts +97 -0
  659. package/src/services/role.d.ts.map +1 -0
  660. package/src/services/role.js +289 -0
  661. package/src/services/role.js.map +1 -0
  662. package/src/services/symmetric.d.ts +60 -0
  663. package/src/services/symmetric.d.ts.map +1 -0
  664. package/src/services/symmetric.js +125 -0
  665. package/src/services/symmetric.js.map +1 -0
  666. package/src/services/system-user.d.ts +22 -0
  667. package/src/services/system-user.d.ts.map +1 -0
  668. package/src/services/system-user.js +52 -0
  669. package/src/services/system-user.js.map +1 -0
  670. package/src/services/user.d.ts +368 -0
  671. package/src/services/user.d.ts.map +1 -0
  672. package/src/services/user.js +1470 -0
  673. package/src/services/user.js.map +1 -0
  674. package/src/services/xor.d.ts +28 -0
  675. package/src/services/xor.d.ts.map +1 -0
  676. package/src/services/xor.js +45 -0
  677. package/src/services/xor.js.map +1 -0
  678. package/src/{testing.ts → testing.d.ts} +1 -2
  679. package/src/testing.d.ts.map +1 -0
  680. package/src/testing.js +12 -0
  681. package/src/testing.js.map +1 -0
  682. package/src/transactions/{index.ts → index.d.ts} +1 -0
  683. package/src/transactions/index.d.ts.map +1 -0
  684. package/src/transactions/index.js +5 -0
  685. package/src/transactions/index.js.map +1 -0
  686. package/src/transactions/transaction-manager.d.ts +37 -0
  687. package/src/transactions/transaction-manager.d.ts.map +1 -0
  688. package/src/transactions/transaction-manager.js +50 -0
  689. package/src/transactions/transaction-manager.js.map +1 -0
  690. package/src/types/{app-config.ts → app-config.d.ts} +10 -16
  691. package/src/types/app-config.d.ts.map +1 -0
  692. package/src/types/app-config.js +8 -0
  693. package/src/types/app-config.js.map +1 -0
  694. package/src/types/{controller-config.ts → controller-config.d.ts} +7 -9
  695. package/src/types/controller-config.d.ts.map +1 -0
  696. package/src/types/controller-config.js +8 -0
  697. package/src/types/controller-config.js.map +1 -0
  698. package/src/types/{environment-variables.ts → environment-variables.d.ts} +5 -27
  699. package/src/types/environment-variables.d.ts.map +1 -0
  700. package/src/types/environment-variables.js +41 -0
  701. package/src/types/environment-variables.js.map +1 -0
  702. package/src/types/{index.ts → index.d.ts} +1 -0
  703. package/src/types/index.d.ts.map +1 -0
  704. package/src/types/index.js +6 -0
  705. package/src/types/index.js.map +1 -0
  706. package/src/types/{mongoose-helpers.ts → mongoose-helpers.d.ts} +2 -3
  707. package/src/types/mongoose-helpers.d.ts.map +1 -0
  708. package/src/types/mongoose-helpers.js +8 -0
  709. package/src/types/mongoose-helpers.js.map +1 -0
  710. package/src/types.d.ts +118 -0
  711. package/src/types.d.ts.map +1 -0
  712. package/src/types.js +28 -0
  713. package/src/types.js.map +1 -0
  714. package/src/utils.d.ts +240 -0
  715. package/src/utils.d.ts.map +1 -0
  716. package/src/utils.js +843 -0
  717. package/src/utils.js.map +1 -0
  718. package/src/validation/{index.ts → index.d.ts} +1 -0
  719. package/src/validation/index.d.ts.map +1 -0
  720. package/src/validation/index.js +5 -0
  721. package/src/validation/index.js.map +1 -0
  722. package/src/validation/validation-builder.d.ts +71 -0
  723. package/src/validation/validation-builder.d.ts.map +1 -0
  724. package/src/validation/validation-builder.js +120 -0
  725. package/src/validation/validation-builder.js.map +1 -0
  726. package/LICENSE +0 -21
  727. package/src/__tests__/fixtures/model-mocks.mock.ts +0 -164
  728. package/src/__tests__/helpers/application.mock.ts +0 -89
  729. package/src/__tests__/helpers/setup-test-env.ts +0 -202
  730. package/src/application-base.ts +0 -548
  731. package/src/application-concrete.ts +0 -62
  732. package/src/application.ts +0 -330
  733. package/src/backup-code.ts +0 -348
  734. package/src/builders/application-builder.ts +0 -147
  735. package/src/constants.ts +0 -89
  736. package/src/container/service-container.ts +0 -85
  737. package/src/controllers/base.ts +0 -512
  738. package/src/controllers/user.ts +0 -1734
  739. package/src/decorators/base-controller.ts +0 -91
  740. package/src/decorators/controller.ts +0 -152
  741. package/src/decorators/zod-validation.ts +0 -64
  742. package/src/defaults.ts +0 -259
  743. package/src/enumerations/base-model-name.ts +0 -47
  744. package/src/enumerations/schema-collection.ts +0 -39
  745. package/src/environment.ts +0 -859
  746. package/src/errors/express-validation.ts +0 -38
  747. package/src/errors/invalid-backup-code-version.ts +0 -30
  748. package/src/errors/invalid-jwt-token.ts +0 -24
  749. package/src/errors/invalid-model.ts +0 -24
  750. package/src/errors/invalid-new-password.ts +0 -33
  751. package/src/errors/invalid-password.ts +0 -28
  752. package/src/errors/missing-validated-data.ts +0 -55
  753. package/src/errors/mnemonic-or-password-required.ts +0 -26
  754. package/src/errors/model-not-registered.ts +0 -24
  755. package/src/errors/mongoose-validation.ts +0 -56
  756. package/src/errors/symmetric.ts +0 -53
  757. package/src/errors/token-expired.ts +0 -24
  758. package/src/get-language.ts +0 -64
  759. package/src/get-timezone.ts +0 -76
  760. package/src/interfaces/application.ts +0 -40
  761. package/src/interfaces/checksum-consts.ts +0 -23
  762. package/src/interfaces/constants.ts +0 -114
  763. package/src/interfaces/email-service.ts +0 -26
  764. package/src/interfaces/environment-mongo.ts +0 -86
  765. package/src/interfaces/environment.ts +0 -191
  766. package/src/interfaces/jwt-consts.ts +0 -33
  767. package/src/interfaces/request-user.ts +0 -80
  768. package/src/interfaces/required-string-keys.ts +0 -33
  769. package/src/interfaces/server-init-result.ts +0 -48
  770. package/src/middleware-utils.ts +0 -138
  771. package/src/middlewares/authenticate-crypto.ts +0 -237
  772. package/src/middlewares/authenticate-token.ts +0 -165
  773. package/src/middlewares/cleanup-crypto.ts +0 -47
  774. package/src/model-registry.ts +0 -142
  775. package/src/pipeline/pipeline-builder.ts +0 -27
  776. package/src/plugins/plugin-manager.ts +0 -53
  777. package/src/registry/email-service-registry.ts +0 -76
  778. package/src/responses/response-builder.ts +0 -166
  779. package/src/routers/api.ts +0 -233
  780. package/src/routers/app.ts +0 -395
  781. package/src/routers/router-config.ts +0 -34
  782. package/src/routing/index.ts +0 -1
  783. package/src/routing/route-builder.ts +0 -214
  784. package/src/schemas/email-token.ts +0 -112
  785. package/src/schemas/mnemonic.ts +0 -48
  786. package/src/schemas/role.ts +0 -153
  787. package/src/schemas/schema.ts +0 -185
  788. package/src/schemas/used-direct-login-token.ts +0 -58
  789. package/src/schemas/user-role.ts +0 -93
  790. package/src/schemas/user.ts +0 -244
  791. package/src/services/backup-code.ts +0 -327
  792. package/src/services/base.ts +0 -46
  793. package/src/services/checksum.ts +0 -189
  794. package/src/services/database-initialization.ts +0 -1653
  795. package/src/services/direct-login-token.ts +0 -83
  796. package/src/services/dummy-email-service.ts +0 -43
  797. package/src/services/fec-usage-example.ts +0 -123
  798. package/src/services/fec.ts +0 -399
  799. package/src/services/jwt.ts +0 -146
  800. package/src/services/key-wrapping.ts +0 -528
  801. package/src/services/mnemonic.ts +0 -174
  802. package/src/services/request-user.ts +0 -127
  803. package/src/services/role.ts +0 -417
  804. package/src/services/symmetric.ts +0 -164
  805. package/src/services/system-user.ts +0 -87
  806. package/src/services/user.ts +0 -2324
  807. package/src/services/xor.ts +0 -39
  808. package/src/transactions/transaction-manager.ts +0 -63
  809. package/src/types/mongoose-override.d.ts +0 -1
  810. package/src/types/mongoose.d.ts +0 -1
  811. package/src/types.ts +0 -189
  812. package/src/utils.ts +0 -1116
  813. package/src/validation/validation-builder.ts +0 -155
@@ -1,142 +0,0 @@
1
- /**
2
- * @fileoverview Model registry for dynamic Mongoose model management.
3
- * Singleton registry for registering and retrieving Mongoose models.
4
- * @module model-registry
5
- */
6
-
7
- import {
8
- Model,
9
- Document as MongooseDocument,
10
- Schema,
11
- } from '@digitaldefiance/mongoose-types';
12
- import { IBaseDocument } from './documents/base';
13
- import { InvalidModelError } from './errors';
14
- import { PlatformID } from '@digitaldefiance/node-ecies-lib';
15
-
16
- /**
17
- * Model registration information.
18
- * @template T - Document Data type
19
- * @template U - Document type extending IBaseDocument
20
- */
21
- export type ModelRegistration<
22
- TID extends PlatformID,
23
- T,
24
- U extends IBaseDocument<T, TID>,
25
- > = {
26
- modelName: string;
27
- schema: Schema;
28
- model: Model<U>;
29
- collection: string;
30
- discriminators?: unknown;
31
- };
32
-
33
- /**
34
- * Singleton registry for Mongoose models.
35
- * Manages model registration and retrieval across the application.
36
- */
37
- class ModelRegistry<TID extends PlatformID> {
38
- protected static _instance: ModelRegistry<PlatformID>;
39
- protected _models: Map<
40
- string,
41
- ModelRegistration<TID, any, IBaseDocument<any, TID>>
42
- > = new Map();
43
-
44
- private constructor() {}
45
-
46
- /**
47
- * Gets the singleton instance of ModelRegistry.
48
- * @returns {ModelRegistry} The singleton instance
49
- */
50
- public static get instance(): ModelRegistry<PlatformID> {
51
- if (!ModelRegistry._instance) {
52
- ModelRegistry._instance = new ModelRegistry();
53
- }
54
- return ModelRegistry._instance;
55
- }
56
-
57
- /**
58
- * Registers a model with the registry.
59
- * @template T - Document ID type
60
- * @template U - Document type extending IBaseDocument
61
- * @param {ModelRegistration<T, U>} registration - Model registration information
62
- */
63
- public register<T, U extends IBaseDocument<T, TID>>(
64
- registration: ModelRegistration<TID, T, U>,
65
- ): void {
66
- this._models.set(
67
- registration.modelName,
68
- registration as ModelRegistration<TID, T, U>,
69
- );
70
- }
71
-
72
- /**
73
- * Retrieves a model registration by name.
74
- * @template T - Document ID type
75
- * @template U - Document type extending IBaseDocument
76
- * @param {string} modelName - Name of the model
77
- * @returns {ModelRegistration<T, U>} Model registration
78
- * @throws {InvalidModelError} If model is not registered
79
- */
80
- public get<T, U extends IBaseDocument<T, TID>>(
81
- modelName: string,
82
- ): ModelRegistration<TID, T, U> {
83
- const result = this._models.get(modelName) as ModelRegistration<TID, T, U>;
84
- if (result === undefined) {
85
- throw new InvalidModelError(modelName);
86
- }
87
- return result;
88
- }
89
-
90
- /**
91
- * Retrieves a typed Mongoose model by name.
92
- * @template TDoc - Mongoose document type
93
- * @param {string} modelName - Name of the model
94
- * @returns {Model<TDoc>} Mongoose model
95
- * @throws {InvalidModelError} If model is not registered
96
- */
97
- public getTypedModel<TDoc extends MongooseDocument>(
98
- modelName: string,
99
- ): Model<TDoc> {
100
- const result = this._models.get(modelName);
101
- if (result === undefined) {
102
- throw new InvalidModelError(modelName);
103
- }
104
- return result.model as Model<TDoc>;
105
- }
106
-
107
- /**
108
- * Retrieves a typed Mongoose schema by name.
109
- * @template TDoc - Mongoose document type
110
- * @param {string} modelName - Name of the model
111
- * @returns {Schema<TDoc>} Mongoose schema
112
- * @throws {InvalidModelError} If model is not registered
113
- */
114
- public getTypedSchema<TDoc extends MongooseDocument>(
115
- modelName: string,
116
- ): Schema<TDoc> {
117
- const result = this._models.get(modelName);
118
- if (result === undefined) {
119
- throw new InvalidModelError(modelName);
120
- }
121
- return result.schema as Schema<TDoc>;
122
- }
123
-
124
- /**
125
- * Checks if a model is registered.
126
- * @param {string} modelName - Name of the model
127
- * @returns {boolean} True if model exists
128
- */
129
- public has(modelName: string): boolean {
130
- return this._models.has(modelName);
131
- }
132
-
133
- /**
134
- * Lists all registered model names.
135
- * @returns {string[]} Array of model names
136
- */
137
- public list(): string[] {
138
- return Array.from(this._models.keys());
139
- }
140
- }
141
-
142
- export { ModelRegistry };
@@ -1,27 +0,0 @@
1
- /**
2
- * @fileoverview Pipeline builder for Express middleware chains.
3
- * Provides fluent API for building middleware pipelines.
4
- * @module pipeline/pipeline-builder
5
- */
6
-
7
- import { RequestHandler } from 'express';
8
-
9
- /**
10
- * Builder for creating Express middleware pipelines.
11
- */
12
- export class Pipeline {
13
- private middleware: RequestHandler[] = [];
14
-
15
- static create(): Pipeline {
16
- return new Pipeline();
17
- }
18
-
19
- use(handler: RequestHandler): this {
20
- this.middleware.push(handler);
21
- return this;
22
- }
23
-
24
- build(): RequestHandler[] {
25
- return this.middleware;
26
- }
27
- }
@@ -1,53 +0,0 @@
1
- /**
2
- * @fileoverview Plugin manager for application plugins.
3
- * Manages registration and lifecycle of application plugins.
4
- * @module plugins/plugin-manager
5
- */
6
-
7
- import type { PlatformID } from '@digitaldefiance/node-ecies-lib';
8
- import { IApplication } from '../interfaces/application';
9
- import { IApplicationPlugin } from './plugin-interface';
10
-
11
- /**
12
- * Manager for application plugins.
13
- * @template TID - Platform ID type (defaults to Buffer)
14
- */
15
- export class PluginManager<TID extends PlatformID = Buffer> {
16
- private plugins = new Map<string, IApplicationPlugin<TID>>();
17
- private initialized = false;
18
-
19
- register(plugin: IApplicationPlugin<TID>): void {
20
- if (this.initialized) {
21
- throw new Error(
22
- `Cannot register plugin ${plugin.name} after initialization`,
23
- );
24
- }
25
- if (this.plugins.has(plugin.name)) {
26
- throw new Error(`Plugin ${plugin.name} already registered`);
27
- }
28
- this.plugins.set(plugin.name, plugin);
29
- }
30
-
31
- async initAll(app: IApplication<TID>): Promise<void> {
32
- for (const plugin of this.plugins.values()) {
33
- await plugin.init(app);
34
- }
35
- this.initialized = true;
36
- }
37
-
38
- async stopAll(): Promise<void> {
39
- for (const plugin of this.plugins.values()) {
40
- if (plugin.stop) {
41
- await plugin.stop();
42
- }
43
- }
44
- }
45
-
46
- get(name: string): IApplicationPlugin<TID> | undefined {
47
- return this.plugins.get(name);
48
- }
49
-
50
- has(name: string): boolean {
51
- return this.plugins.has(name);
52
- }
53
- }
@@ -1,76 +0,0 @@
1
- /**
2
- * @fileoverview Email service registry singleton.
3
- * Manages email service registration and retrieval.
4
- * @module registry/email-service-registry
5
- */
6
-
7
- import {
8
- SuiteCoreStringKey,
9
- TranslatableSuiteError,
10
- } from '@digitaldefiance/suite-core-lib';
11
- import { IEmailService } from '../interfaces/email-service';
12
-
13
- /**
14
- * Singleton registry for email service.
15
- */
16
- class EmailServiceRegistry {
17
- private service?: IEmailService;
18
-
19
- /**
20
- * Registers an email service.
21
- * @param {IEmailService} service - Email service implementation
22
- */
23
- setService(service: IEmailService): void {
24
- this.service = service;
25
- }
26
-
27
- /**
28
- * Retrieves the registered email service.
29
- * @returns {IEmailService} Email service instance
30
- * @throws {TranslatableSuiteError} If no service is registered
31
- */
32
- getService(): IEmailService {
33
- if (!this.service) {
34
- throw new TranslatableSuiteError(
35
- SuiteCoreStringKey.Error_EmailService_NotConfigured,
36
- );
37
- }
38
- return this.service;
39
- }
40
-
41
- /**
42
- * Check if any email service is registered.
43
- * @returns {boolean} True if service is registered
44
- */
45
- hasService(): boolean {
46
- return this.service !== undefined;
47
- }
48
-
49
- /**
50
- * Check if the registered service is an instance of a specific class.
51
- * @template T - Email service type
52
- * @param {Function} serviceClass - The class/constructor to check against
53
- * @returns {boolean} True if the registered service is an instance of the given class
54
- * @example
55
- * emailServiceRegistry.isServiceType(EmailService) // true if EmailService is registered
56
- * emailServiceRegistry.isServiceType(DummyEmailService) // true if DummyEmailService is registered
57
- */
58
- isServiceType<T extends IEmailService>(
59
- serviceClass: new (...args: any[]) => T,
60
- ): boolean {
61
- return this.service !== undefined && this.service instanceof serviceClass;
62
- }
63
-
64
- /**
65
- * Get the constructor name of the registered service.
66
- * @returns {string | undefined} The name of the service class, or undefined if no service is registered
67
- */
68
- getServiceTypeName(): string | undefined {
69
- return this.service?.constructor.name;
70
- }
71
- }
72
-
73
- /**
74
- * Singleton instance of EmailServiceRegistry.
75
- */
76
- export const emailServiceRegistry = new EmailServiceRegistry();
@@ -1,166 +0,0 @@
1
- /**
2
- * @fileoverview Response builder for API responses.
3
- * Provides fluent API for building HTTP responses with status codes.
4
- * @module responses/response-builder
5
- */
6
-
7
- import { CoreLanguageCode } from '@digitaldefiance/i18n-lib';
8
- import {
9
- getSuiteCoreTranslation,
10
- SuiteCoreStringKey,
11
- } from '@digitaldefiance/suite-core-lib';
12
- import { IStatusCodeResponse } from '../interfaces';
13
- import { ApiResponse } from '../types';
14
-
15
- /**
16
- * Builder for constructing API responses with fluent interface.
17
- * @template T - Response type extending ApiResponse
18
- */
19
- export class ResponseBuilder<T extends ApiResponse = ApiResponse> {
20
- private statusCode: number = 200;
21
- private responseData: Partial<T> = {};
22
- private responseHeaders?: Record<string, string>;
23
-
24
- /**
25
- * Creates a 200 OK response builder.
26
- * @template T - Response type
27
- * @returns {ResponseBuilder<T>} Response builder instance
28
- */
29
- static ok<T extends ApiResponse = ApiResponse>(): ResponseBuilder<T> {
30
- return new ResponseBuilder<T>().status(200);
31
- }
32
-
33
- /**
34
- * Creates a 201 Created response builder.
35
- * @template T - Response type
36
- * @returns {ResponseBuilder<T>} Response builder instance
37
- */
38
- static created<T extends ApiResponse = ApiResponse>(): ResponseBuilder<T> {
39
- return new ResponseBuilder<T>().status(201);
40
- }
41
-
42
- /**
43
- * Creates a 202 Accepted response builder.
44
- * @template T - Response type
45
- * @returns {ResponseBuilder<T>} Response builder instance
46
- */
47
- static accepted<T extends ApiResponse = ApiResponse>(): ResponseBuilder<T> {
48
- return new ResponseBuilder<T>().status(202);
49
- }
50
-
51
- /**
52
- * Creates a 204 No Content response builder.
53
- * @returns {ResponseBuilder<ApiResponse>} Response builder instance
54
- */
55
- static noContent(): ResponseBuilder<ApiResponse> {
56
- return new ResponseBuilder<ApiResponse>().status(204);
57
- }
58
-
59
- /**
60
- * Creates a 400 Bad Request response builder.
61
- * @template T - Response type
62
- * @returns {ResponseBuilder<T>} Response builder instance
63
- */
64
- static badRequest<T extends ApiResponse = ApiResponse>(): ResponseBuilder<T> {
65
- return new ResponseBuilder<T>().status(400);
66
- }
67
-
68
- /**
69
- * Creates a 401 Unauthorized response builder.
70
- * @template T - Response type
71
- * @returns {ResponseBuilder<T>} Response builder instance
72
- */
73
- static unauthorized<
74
- T extends ApiResponse = ApiResponse,
75
- >(): ResponseBuilder<T> {
76
- return new ResponseBuilder<T>().status(401);
77
- }
78
-
79
- /**
80
- * Creates a 403 Forbidden response builder.
81
- * @template T - Response type
82
- * @returns {ResponseBuilder<T>} Response builder instance
83
- */
84
- static forbidden<T extends ApiResponse = ApiResponse>(): ResponseBuilder<T> {
85
- return new ResponseBuilder<T>().status(403);
86
- }
87
-
88
- /**
89
- * Creates a 404 Not Found response builder.
90
- * @template T - Response type
91
- * @returns {ResponseBuilder<T>} Response builder instance
92
- */
93
- static notFound<T extends ApiResponse = ApiResponse>(): ResponseBuilder<T> {
94
- return new ResponseBuilder<T>().status(404);
95
- }
96
-
97
- /**
98
- * Creates a 500 Internal Server Error response builder.
99
- * @template T - Response type
100
- * @returns {ResponseBuilder<T>} Response builder instance
101
- */
102
- static error<T extends ApiResponse = ApiResponse>(): ResponseBuilder<T> {
103
- return new ResponseBuilder<T>().status(500);
104
- }
105
-
106
- /**
107
- * Sets the HTTP status code.
108
- * @param {number} code - HTTP status code
109
- * @returns {this} This builder instance for chaining
110
- */
111
- status(code: number): this {
112
- this.statusCode = code;
113
- return this;
114
- }
115
-
116
- /**
117
- * Sets a translatable message on the response.
118
- * @param {SuiteCoreStringKey} key - Translation key
119
- * @param {Record<string, string>} [params] - Translation parameters
120
- * @param {string} [language] - Target language
121
- * @returns {this} This builder instance for chaining
122
- */
123
- message(
124
- key: SuiteCoreStringKey,
125
- params?: Record<string, string>,
126
- language?: string,
127
- ): this {
128
- (this.responseData as T & { message?: string }).message =
129
- getSuiteCoreTranslation(key, params, language as CoreLanguageCode);
130
- return this;
131
- }
132
-
133
- /**
134
- * Sets response data.
135
- * @param {Partial<T>} data - Response data to merge
136
- * @returns {this} This builder instance for chaining
137
- */
138
- data(data: Partial<T>): this {
139
- this.responseData = { ...this.responseData, ...data };
140
- return this;
141
- }
142
-
143
- /**
144
- * Sets response headers.
145
- * @param {Record<string, string>} headers - HTTP headers
146
- * @returns {this} This builder instance for chaining
147
- */
148
- headers(headers: Record<string, string>): this {
149
- this.responseHeaders = headers;
150
- return this;
151
- }
152
-
153
- /**
154
- * Builds the final response object.
155
- * @returns {IStatusCodeResponse<T>} Complete response with status code and headers
156
- */
157
- build(): IStatusCodeResponse<T> {
158
- return {
159
- statusCode: this.statusCode,
160
- response: this.responseData as T,
161
- ...(this.responseHeaders ? { headers: this.responseHeaders } : {}),
162
- };
163
- }
164
- }
165
-
166
- export const Response = ResponseBuilder;
@@ -1,233 +0,0 @@
1
- /**
2
- * @fileoverview API router configuration with dependency injection and service registration.
3
- * Manages user controller and all required services for API endpoints.
4
- * @module routers/api
5
- */
6
-
7
- import { IECIESConfig } from '@digitaldefiance/ecies-lib';
8
- import { ECIESService, PlatformID } from '@digitaldefiance/node-ecies-lib';
9
- import {
10
- ITokenRole,
11
- ITokenUser,
12
- IUserBase,
13
- } from '@digitaldefiance/suite-core-lib';
14
- import { ServiceKeys } from '../container';
15
- import { UserController } from '../controllers/user';
16
- import { IBaseDocument } from '../documents';
17
- import { Environment } from '../environment';
18
- import { IConstants } from '../interfaces';
19
- import { IApplication } from '../interfaces/application';
20
- import { IEmailService } from '../interfaces/email-service';
21
- import { emailServiceRegistry } from '../registry';
22
- import { BackupCodeService } from '../services/backup-code';
23
- import { JwtService } from '../services/jwt';
24
- import { KeyWrappingService } from '../services/key-wrapping';
25
- import { RoleService } from '../services/role';
26
- import { UserService } from '../services/user';
27
- import { BaseRouter } from './base';
28
- import { CoreLanguageCode } from '@digitaldefiance/i18n-lib';
29
-
30
- /**
31
- * Router for the API endpoints.
32
- * Manages user controller and registers all required services via dependency injection.
33
- * @template TID Platform-specific ID type
34
- * @template TDate Date type
35
- * @template TLanguage Site language string literal type
36
- * @template TAccountStatus Account status string literal type
37
- * @template TUser User base type
38
- * @template TTokenRole Token role type
39
- * @template TBaseDocument Base document type
40
- * @template TTokenUser Token user type
41
- * @template TConstants Constants type
42
- * @template TEnvironment Environment type
43
- * @template TApplication Application type
44
- */
45
- export class ApiRouter<
46
- TID extends PlatformID,
47
- TDate extends Date,
48
- TLanguage extends CoreLanguageCode,
49
- TAccountStatus extends string,
50
- TUser extends IUserBase<TID, TDate, TLanguage, TAccountStatus> = IUserBase<
51
- TID,
52
- TDate,
53
- TLanguage,
54
- TAccountStatus
55
- >,
56
- TTokenRole extends ITokenRole<TID, TDate> = ITokenRole<TID, TDate>,
57
- TBaseDocument extends IBaseDocument<any, TID> = IBaseDocument<any, TID>,
58
- TTokenUser extends ITokenUser = ITokenUser,
59
- TConstants extends IConstants = IConstants,
60
- TEnvironment extends Environment<TID> = Environment<TID>,
61
- TApplication extends IApplication<TID> = IApplication<TID>,
62
- > extends BaseRouter<TID, TApplication> {
63
- /** User controller for handling user-related API endpoints */
64
- private readonly userController: UserController<
65
- TID,
66
- TDate,
67
- TLanguage,
68
- TAccountStatus,
69
- TUser,
70
- TTokenRole,
71
- TTokenUser,
72
- TApplication
73
- >;
74
- /** JWT service for token generation and validation */
75
- private readonly jwtService: JwtService<
76
- TID,
77
- TDate,
78
- TTokenRole,
79
- TTokenUser,
80
- TApplication
81
- >;
82
- /** Email service for sending emails */
83
- private readonly emailService: IEmailService;
84
- /** User service for user management operations */
85
- private readonly userService: UserService<
86
- any,
87
- TID,
88
- TDate,
89
- TLanguage,
90
- TAccountStatus,
91
- TEnvironment,
92
- TConstants,
93
- TBaseDocument,
94
- TUser,
95
- TTokenRole,
96
- TApplication
97
- >;
98
- /** Role service for role management operations */
99
- private readonly roleService: RoleService<TID, TDate, TTokenRole>;
100
- /** Key wrapping service for password-based encryption */
101
- private readonly keyWrappingService: KeyWrappingService;
102
- /** ECIES service for elliptic curve encryption */
103
- private readonly eciesService: ECIESService<TID>;
104
- /** Backup code service for generating and validating backup codes */
105
- private readonly backupCodeService: BackupCodeService<
106
- TID,
107
- TDate,
108
- TTokenRole,
109
- TApplication
110
- >;
111
- /**
112
- * Creates a new API router instance.
113
- * Registers all required services and initializes the user controller.
114
- * @param application Application instance with database connection and configuration
115
- */
116
- constructor(application: TApplication) {
117
- super(application);
118
- this.registerServices();
119
- this.jwtService = application.services.get(ServiceKeys.JWT);
120
- this.roleService = application.services.get(ServiceKeys.ROLE);
121
- this.emailService = application.services.get(ServiceKeys.EMAIL);
122
- this.keyWrappingService = application.services.get(
123
- ServiceKeys.KEY_WRAPPING,
124
- );
125
- this.eciesService = application.services.get(ServiceKeys.ECIES);
126
- this.backupCodeService = application.services.get(ServiceKeys.BACKUP_CODE);
127
- this.userService = application.services.get(ServiceKeys.USER);
128
- this.userController = new UserController<
129
- TID,
130
- TDate,
131
- TLanguage,
132
- TAccountStatus,
133
- TUser,
134
- TTokenRole,
135
- TTokenUser,
136
- TApplication
137
- >(
138
- application,
139
- this.jwtService,
140
- this.userService,
141
- this.backupCodeService,
142
- this.roleService,
143
- this.eciesService,
144
- );
145
- this.router.use('/user', this.userController.router);
146
- }
147
-
148
- /**
149
- * Registers all required services in the application service container.
150
- * Services are registered as singletons and lazily instantiated.
151
- * @private
152
- */
153
- private registerServices(): void {
154
- const app = this.application;
155
-
156
- if (!app.services.has(ServiceKeys.JWT)) {
157
- app.services.register(
158
- ServiceKeys.JWT,
159
- () =>
160
- new JwtService<TID, TDate, TTokenRole, TTokenUser, TApplication>(app),
161
- );
162
- }
163
- if (!app.services.has(ServiceKeys.ROLE)) {
164
- app.services.register(
165
- ServiceKeys.ROLE,
166
- () => new RoleService<TID, TDate, TTokenRole>(app),
167
- );
168
- }
169
- if (!app.services.has(ServiceKeys.EMAIL)) {
170
- app.services.register(ServiceKeys.EMAIL, () =>
171
- emailServiceRegistry.getService(),
172
- );
173
- }
174
- if (!app.services.has(ServiceKeys.KEY_WRAPPING)) {
175
- app.services.register(
176
- ServiceKeys.KEY_WRAPPING,
177
- () => new KeyWrappingService(),
178
- );
179
- }
180
- if (!app.services.has(ServiceKeys.ECIES)) {
181
- app.services.register(ServiceKeys.ECIES, () => {
182
- const config: IECIESConfig = {
183
- curveName: app.constants.ECIES.CURVE_NAME,
184
- primaryKeyDerivationPath:
185
- app.constants.ECIES.PRIMARY_KEY_DERIVATION_PATH,
186
- mnemonicStrength: app.constants.ECIES.MNEMONIC_STRENGTH,
187
- symmetricAlgorithm:
188
- app.constants.ECIES.SYMMETRIC_ALGORITHM_CONFIGURATION,
189
- symmetricKeyBits: app.constants.ECIES.SYMMETRIC.KEY_BITS,
190
- symmetricKeyMode: app.constants.ECIES.SYMMETRIC.MODE,
191
- };
192
- return new ECIESService(config);
193
- });
194
- }
195
- if (!app.services.has(ServiceKeys.BACKUP_CODE)) {
196
- app.services.register(
197
- ServiceKeys.BACKUP_CODE,
198
- () =>
199
- new BackupCodeService<TID, TDate, TTokenRole, TApplication>(
200
- app,
201
- app.services.get(ServiceKeys.ECIES),
202
- app.services.get(ServiceKeys.KEY_WRAPPING),
203
- app.services.get(ServiceKeys.ROLE),
204
- ),
205
- );
206
- }
207
- if (!app.services.has(ServiceKeys.USER)) {
208
- app.services.register(
209
- ServiceKeys.USER,
210
- () =>
211
- new UserService<
212
- any,
213
- TID,
214
- TDate,
215
- TLanguage,
216
- TAccountStatus,
217
- TEnvironment,
218
- TConstants,
219
- TBaseDocument,
220
- TUser,
221
- TTokenRole,
222
- TApplication
223
- >(
224
- app,
225
- app.services.get(ServiceKeys.ROLE),
226
- app.services.get(ServiceKeys.EMAIL),
227
- app.services.get(ServiceKeys.KEY_WRAPPING),
228
- app.services.get(ServiceKeys.BACKUP_CODE),
229
- ),
230
- );
231
- }
232
- }
233
- }