@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
package/src/types.d.ts ADDED
@@ -0,0 +1,118 @@
1
+ /**
2
+ * @fileoverview Type definitions and Express module augmentation.
3
+ * Defines core types for routing, validation, and API responses.
4
+ * @module types
5
+ */
6
+ import { ClientSession } from '@digitaldefiance/mongoose-types';
7
+ import { Member, PlatformID } from '@digitaldefiance/node-ecies-lib';
8
+ import { IRequestUserDTO } from '@digitaldefiance/suite-core-lib';
9
+ import { NextFunction, RequestHandler, Response } from 'express';
10
+ import { ValidationChain } from 'express-validator';
11
+ import { IBaseDocument } from './documents';
12
+ import { IApiErrorResponse, IApiExpressValidationErrorResponse, IApiMessageResponse, IApiMongoValidationErrorResponse, IStatusCodeResponse } from './interfaces';
13
+ import { ISchema } from './interfaces/schema';
14
+ /**
15
+ * Transaction callback type for withTransaction
16
+ */
17
+ export type TransactionCallback<T> = (session: ClientSession | undefined, ...args: Array<unknown>) => Promise<T>;
18
+ /**
19
+ * Validated body for express-validator
20
+ */
21
+ export type ValidatedBody<T extends string> = {
22
+ [K in T]: unknown;
23
+ };
24
+ declare module 'express-serve-static-core' {
25
+ interface Request {
26
+ user?: IRequestUserDTO;
27
+ eciesUser?: Member<PlatformID>;
28
+ validatedBody?: ValidatedBody<string>;
29
+ validate?: {
30
+ body: (field: string) => ValidationChain;
31
+ param: (field: string) => ValidationChain;
32
+ query: (field: string) => ValidationChain;
33
+ header: (field: string) => ValidationChain;
34
+ cookie: (field: string) => ValidationChain;
35
+ };
36
+ }
37
+ }
38
+ declare global {
39
+ namespace Express {
40
+ interface Request {
41
+ user?: IRequestUserDTO;
42
+ eciesUser?: Member<PlatformID>;
43
+ validatedBody?: ValidatedBody<string>;
44
+ validate?: {
45
+ body: (field: string) => ValidationChain;
46
+ param: (field: string) => ValidationChain;
47
+ query: (field: string) => ValidationChain;
48
+ header: (field: string) => ValidationChain;
49
+ cookie: (field: string) => ValidationChain;
50
+ };
51
+ }
52
+ }
53
+ }
54
+ /**
55
+ * Schema map interface
56
+ */
57
+ type ModelDocMap<TID extends PlatformID, TModelDocs extends Record<string, IBaseDocument<any, TID>>> = {
58
+ [K in keyof TModelDocs]: TModelDocs[K];
59
+ };
60
+ export type SchemaMap<TID extends PlatformID, TModelDocs extends Record<string, IBaseDocument<any, TID>>> = {
61
+ [K in keyof ModelDocMap<TID, TModelDocs>]: ISchema<TID, ModelDocMap<TID, TModelDocs>[K]>;
62
+ };
63
+ export type ApiRequestHandler<T extends ApiResponse> = (req: Request, res: Response, next: NextFunction) => Promise<IStatusCodeResponse<T>>;
64
+ export type TypedHandlers = {
65
+ [key: string]: ApiRequestHandler<ApiResponse>;
66
+ };
67
+ export interface IRouteDefinition<T extends TypedHandlers, TLanguage extends string> {
68
+ method: 'get' | 'post' | 'put' | 'delete' | 'patch';
69
+ path: string;
70
+ options: {
71
+ handlerKey: keyof T;
72
+ validation?: (validationLanguage: TLanguage) => ValidationChain[];
73
+ useAuthentication: boolean;
74
+ useCryptoAuthentication: boolean;
75
+ };
76
+ }
77
+ export type RouteHandlers = Record<string, ApiRequestHandler<ApiResponse>>;
78
+ export type HttpMethod = 'get' | 'post' | 'put' | 'delete' | 'patch';
79
+ export interface RouteConfig<H extends object, TLanguage extends string> {
80
+ method: HttpMethod;
81
+ path: string;
82
+ handlerKey: keyof H;
83
+ handlerArgs?: Array<unknown>;
84
+ useAuthentication: boolean;
85
+ useCryptoAuthentication: boolean;
86
+ middleware?: RequestHandler[];
87
+ validation?: FlexibleValidationChain<TLanguage>;
88
+ rawJsonHandler?: boolean;
89
+ authFailureStatusCode?: number;
90
+ useTransaction?: boolean;
91
+ transactionTimeout?: number;
92
+ }
93
+ /**
94
+ * Creates a route configuration object.
95
+ * @template T - Handler object type
96
+ * @template TLanguage - Language code type
97
+ * @param {HttpMethod} method - HTTP method
98
+ * @param {string} path - Route path
99
+ * @param {object} options - Route options
100
+ * @returns {RouteConfig<T, TLanguage>} Route configuration
101
+ */
102
+ export declare function routeConfig<T extends object, TLanguage extends string>(method: 'get' | 'post' | 'put' | 'delete' | 'patch', path: string, options: {
103
+ handlerKey: keyof T;
104
+ validation?: (validationLanguage: TLanguage) => ValidationChain[];
105
+ useAuthentication: boolean;
106
+ useCryptoAuthentication: boolean;
107
+ }): RouteConfig<T, TLanguage>;
108
+ export type THandlerArgs<T extends Array<unknown>> = T;
109
+ export type FlexibleValidationChain<TLanguage extends string> = ValidationChain[] | ((lang: TLanguage) => ValidationChain[]);
110
+ export type JsonPrimitive = string | number | boolean | null | undefined;
111
+ export type JsonResponse = JsonPrimitive | {
112
+ [key: string]: JsonResponse;
113
+ } | JsonResponse[];
114
+ export type ApiErrorResponse = IApiErrorResponse | IApiExpressValidationErrorResponse | IApiMongoValidationErrorResponse;
115
+ export type ApiResponse = IApiMessageResponse | ApiErrorResponse | JsonResponse;
116
+ export type SendFunction<T extends ApiResponse> = (statusCode: number, data: T, res: Response<T>) => void;
117
+ export {};
118
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-express-suite/src/types.ts"],"names":[],"mappings":"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"}
package/src/types.js ADDED
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview Type definitions and Express module augmentation.
4
+ * Defines core types for routing, validation, and API responses.
5
+ * @module types
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.routeConfig = routeConfig;
9
+ /**
10
+ * Creates a route configuration object.
11
+ * @template T - Handler object type
12
+ * @template TLanguage - Language code type
13
+ * @param {HttpMethod} method - HTTP method
14
+ * @param {string} path - Route path
15
+ * @param {object} options - Route options
16
+ * @returns {RouteConfig<T, TLanguage>} Route configuration
17
+ */
18
+ function routeConfig(method, path, options) {
19
+ return {
20
+ method,
21
+ path,
22
+ handlerKey: options.handlerKey,
23
+ validation: options.validation,
24
+ useAuthentication: options.useAuthentication,
25
+ useCryptoAuthentication: options.useCryptoAuthentication,
26
+ };
27
+ }
28
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-express-suite/src/types.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AA4IH,kCAkBC;AA3BD;;;;;;;;GAQG;AACH,SAAgB,WAAW,CACzB,MAAmD,EACnD,IAAY,EACZ,OAKC;IAED,OAAO;QACL,MAAM;QACN,IAAI;QACJ,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;QAC5C,uBAAuB,EAAE,OAAO,CAAC,uBAAuB;KACzD,CAAC;AACJ,CAAC"}
package/src/utils.d.ts ADDED
@@ -0,0 +1,240 @@
1
+ /**
2
+ * @fileoverview Utility functions for Express application including validation, transactions, error handling, and data encoding.
3
+ * Provides comprehensive helpers for API responses, MongoDB transactions, validation, and cryptographic operations.
4
+ * @module utils
5
+ */
6
+ import { ClientSession, Connection } from '@digitaldefiance/mongoose-types';
7
+ import { NextFunction, Request, Response } from 'express';
8
+ import { ValidationError } from 'express-validator';
9
+ import { z, ZodType } from 'zod';
10
+ import { IApiErrorResponse, IApplication } from './interfaces';
11
+ import { IApiExpressValidationErrorResponse } from './interfaces/api-express-validation-error-response';
12
+ import { IApiMongoValidationErrorResponse } from './interfaces/api-mongo-validation-error-response';
13
+ import { IMongoErrors } from './interfaces/mongo-errors';
14
+ import { ApiResponse, SendFunction, TransactionCallback } from './types';
15
+ /** Debug message type for console output */
16
+ export type DEBUG_TYPE = 'error' | 'warn' | 'log';
17
+ /**
18
+ * Conditionally prints debug messages to console.
19
+ * @param debug Whether to print debug messages
20
+ * @param type Type of message (error, warn, or log)
21
+ * @param args Arguments to print
22
+ */
23
+ export declare function debugLog(debug: boolean, type?: DEBUG_TYPE, ...args: unknown[]): void;
24
+ /**
25
+ * Prints debug messages directly to stdout/stderr bypassing Node streams.
26
+ * Uses fs.writeSync to avoid Nx interception.
27
+ * @param debug Whether to print debug messages
28
+ * @param type Type of message (error, warn, or log)
29
+ * @param args Arguments to print
30
+ */
31
+ export declare function directLog(debug: boolean, type?: DEBUG_TYPE, ...args: any[]): void;
32
+ /**
33
+ * Gets value at a dotted path from an object.
34
+ * @param obj Object to traverse
35
+ * @param path Array of keys representing the path
36
+ * @returns Value at path or undefined
37
+ */
38
+ export declare function getValueAtPath(obj: unknown, path: (string | number)[]): unknown;
39
+ /**
40
+ * Maps Zod validation issues to express-validator ValidationError format.
41
+ * @param issues Zod validation issues
42
+ * @param source Source object being validated
43
+ * @param location Location of validation (body, query, params, etc.)
44
+ * @returns Array of express-validator ValidationErrors
45
+ */
46
+ export declare function mapZodIssuesToValidationErrors(issues: z.ZodError<unknown>['issues'], source: unknown, location?: 'body' | 'cookies' | 'headers' | 'params' | 'query'): ValidationError[];
47
+ /**
48
+ * Validates request body against Zod schema and executes callback with validated data.
49
+ * @template T Zod schema type
50
+ * @template TResult Callback return type
51
+ * @param req Express request
52
+ * @param schema Zod schema for validation
53
+ * @param callback Callback to execute with validated data
54
+ * @returns Promise resolving to callback result
55
+ * @throws {MissingValidatedDataError} If validated body is missing
56
+ * @throws {ExpressValidationError} If validation fails
57
+ */
58
+ export declare function requireValidatedFieldsAsync<T extends ZodType<any, any, any>, TResult = void>(req: Request, schema: T, callback: (data: z.output<T>) => Promise<TResult>): Promise<TResult>;
59
+ /**
60
+ * Checks if at least one of the required fields is present in validated body.
61
+ * @template T Callback return type
62
+ * @param req Express request
63
+ * @param fields Array of field names to check
64
+ * @param callback Callback to execute if validation passes
65
+ * @returns Promise resolving to callback result
66
+ * @throws {MissingValidatedDataError} If none of the fields are present
67
+ */
68
+ export declare function requireOneOfValidatedFieldsAsync<T = void>(req: Request, fields: string[], callback: () => Promise<T>): Promise<T>;
69
+ /**
70
+ * Validates required fields are present in validated body (synchronous).
71
+ * @template T Callback return type
72
+ * @param req Express request
73
+ * @param fields Array of required field names
74
+ * @param callback Callback to execute if validation passes
75
+ * @returns Callback result
76
+ * @throws {MissingValidatedDataError} If any required field is missing
77
+ */
78
+ export declare function requireValidatedFieldsOrThrow<T = void>(req: Request, fields: string[], callback: () => T): T;
79
+ /**
80
+ * Checks if a value is a valid MongoDB ObjectId string.
81
+ * @param id Value to check
82
+ * @returns True if valid ObjectId string
83
+ */
84
+ export declare function isValidStringObjectId(id: unknown): boolean;
85
+ /**
86
+ * Default number of retry attempts for transactions.
87
+ * Uses fewer retries in test environment for faster feedback.
88
+ */
89
+ export declare const DEFAULT_RETRY_ATTEMPTS: number;
90
+ /**
91
+ * Default transaction timeout in milliseconds.
92
+ * Uses shorter timeout in test environment for faster failure detection.
93
+ */
94
+ export declare const DEFAULT_TRANSACTION_TIMEOUT: number;
95
+ /**
96
+ * Default transaction lock request timeout in milliseconds.
97
+ */
98
+ export declare const DEFAULT_TRANSACTION_LOCK_REQUEST_TIMEOUT: number;
99
+ /** Transaction configuration options */
100
+ export interface TransactionOptions<TID extends PlatformID = Buffer> {
101
+ application?: IApplication<TID>;
102
+ timeoutMs?: number;
103
+ retryAttempts?: number;
104
+ baseDelay?: number;
105
+ debugLogEnabled?: boolean;
106
+ }
107
+ /**
108
+ * Gets the default base delay for transaction retries from environment variables
109
+ * @returns The base delay in milliseconds
110
+ */
111
+ export declare function getDefaultBaseDelay(): number;
112
+ /**
113
+ * Wraps a callback in a transaction if necessary
114
+ * @param connection The mongoose connection
115
+ * @param useTransaction Whether to use a transaction
116
+ * @param session The session to use
117
+ * @param callback The callback to wrap
118
+ * @param options Transaction options including timeout and retry attempts
119
+ * @param args The arguments to pass to the callback
120
+ * @returns The result of the callback
121
+ */
122
+ export declare function withTransaction<T, TID extends PlatformID = Buffer>(connection: Connection, useTransaction: boolean, session: ClientSession | undefined, callback: TransactionCallback<T>, options?: TransactionOptions<TID>, ...args: any): Promise<T>;
123
+ /**
124
+ * Sends an API response with the given status and response object.
125
+ * @param status
126
+ * @param response
127
+ * @param res
128
+ */
129
+ export declare function sendApiMessageResponse<T extends ApiResponse>(status: number, response: T, res: Response<T>): void;
130
+ /**
131
+ * Sends an API response with the given status, message, and error.
132
+ * @param status
133
+ * @param message
134
+ * @param error
135
+ * @param res
136
+ */
137
+ export declare function sendApiErrorResponse(status: number, message: string, error: unknown, res: Response): void;
138
+ /**
139
+ * Sends an API response with the given status and validation errors.
140
+ * @param status
141
+ * @param errors
142
+ * @param res
143
+ */
144
+ export declare function sendApiExpressValidationErrorResponse(status: number, errors: ValidationError[], res: Response, application?: IApplication): void;
145
+ /**
146
+ * Sends an API response with the given status, message, and MongoDB validation errors.
147
+ * @param status
148
+ * @param message
149
+ * @param errors
150
+ * @param res
151
+ */
152
+ export declare function sendApiMongoValidationErrorResponse(status: number, message: string, errors: IMongoErrors, res: Response): void;
153
+ /**
154
+ * Sends a raw JSON response with the given status and response object.
155
+ * @param status The status code
156
+ * @param response The response data
157
+ * @param res The response object
158
+ */
159
+ export declare function sendRawJsonResponse<T>(status: number, response: T, res: Response<T>): void;
160
+ export declare function handleError(error: unknown, res: Response, send: SendFunction<IApiErrorResponse | IApiExpressValidationErrorResponse | IApiMongoValidationErrorResponse>, _next: NextFunction): void;
161
+ export declare function locatePEMRoot(devRootDir: string): string | undefined;
162
+ /**
163
+ * Encodes the length of the data in the buffer
164
+ * @param buffer The buffer to encode
165
+ * @returns The encoded buffer
166
+ */
167
+ export declare function lengthEncodeData(buffer: Buffer): Buffer;
168
+ export declare function decodeLengthEncodedData(buffer: Buffer): {
169
+ data: Buffer;
170
+ totalLength: number;
171
+ };
172
+ import { BackupCode } from './backup-code';
173
+ import { LengthEncodingType } from './enumerations/length-encoding-type';
174
+ import type { PlatformID } from '@digitaldefiance/node-ecies-lib';
175
+ export declare function isValidTimezone(timezone: string): boolean;
176
+ /**
177
+ * Omits keys from an object
178
+ */
179
+ export declare function omit<T extends object, K extends keyof T>(obj: T, keys: K[]): Omit<T, K>;
180
+ /**
181
+ * Validates that a collection contains exactly the keys from an enum
182
+ * @param collection The collection to validate
183
+ * @param enumObject The enum object to validate against
184
+ * @param collectionName Optional name for the collection (for better error messages)
185
+ * @param enumName Optional name for the enum (for better error messages)
186
+ * @throws Error if collection has missing, extra, or invalid keys
187
+ */
188
+ export declare function validateEnumCollection<T extends Record<string, any>>(collection: Record<string, unknown>, enumObject: T, collectionName?: string, enumName?: string): void;
189
+ export declare function uint8ArrayToBase64(uint8Array: Uint8Array): string;
190
+ export declare function base64ToUint8Array(base64String: string): Uint8Array;
191
+ export declare function uint8ArrayToHex(uint8Array: Uint8Array): string;
192
+ export declare function hexToUint8Array(hexString: string): Uint8Array;
193
+ /**
194
+ * Utility functions for browser ECIES implementation
195
+ */
196
+ /**
197
+ * CRC16-CCITT implementation for data integrity checking
198
+ * Uses the same algorithm as the server-side implementation (CRC16-CCITT-FALSE)
199
+ */
200
+ export declare function crc16(data: Uint8Array): Uint8Array;
201
+ /**
202
+ * Convert string to Uint8Array (UTF-8 encoding)
203
+ */
204
+ export declare function stringToUint8Array(str: string): Uint8Array;
205
+ /**
206
+ * Convert Uint8Array to string (UTF-8 decoding)
207
+ */
208
+ export declare function uint8ArrayToString(array: Uint8Array): string;
209
+ /**
210
+ * Secure random bytes generation
211
+ */
212
+ export declare function randomBytes(length: number): Uint8Array;
213
+ /**
214
+ * Compare two Uint8Arrays for equality
215
+ */
216
+ export declare function arraysEqual(a: Uint8Array, b: Uint8Array): boolean;
217
+ /**
218
+ * Concatenate multiple Uint8Arrays
219
+ */
220
+ export declare function concatUint8Arrays(...arrays: Uint8Array[]): Uint8Array;
221
+ /**
222
+ * Get the length encoding type for a given length
223
+ * @param length The length to evaluate
224
+ * @returns The corresponding LengthEncodingType
225
+ */
226
+ export declare function getLengthEncodingTypeForLength(length: number | bigint): LengthEncodingType;
227
+ /**
228
+ * Get the length encoding type for a given value
229
+ * @param value The value to evaluate
230
+ * @returns The corresponding LengthEncodingType
231
+ */
232
+ export declare function getLengthEncodingTypeFromValue(value: number): LengthEncodingType;
233
+ /**
234
+ * Get the length in bytes for a given LengthEncodingType
235
+ * @param type The LengthEncodingType to evaluate
236
+ * @returns The length in bytes
237
+ */
238
+ export declare function getLengthForLengthType(type: LengthEncodingType): number;
239
+ export declare function parseBackupCodes(user: 'admin' | 'member' | 'system', environment: Record<string, string | undefined>): BackupCode[];
240
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-express-suite/src/utils.ts"],"names":[],"mappings":"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"}