@digitaldefiance/node-express-suite 3.7.5 → 3.8.0

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 (814) hide show
  1. package/README.md +38 -6
  2. package/package.json +9 -8
  3. package/src/__tests__/fixtures/{index.ts → index.d.ts} +1 -0
  4. package/src/__tests__/fixtures/index.d.ts.map +1 -0
  5. package/src/__tests__/fixtures/index.js +5 -0
  6. package/src/__tests__/fixtures/index.js.map +1 -0
  7. package/src/__tests__/fixtures/model-mocks.mock.d.ts +12 -0
  8. package/src/__tests__/fixtures/model-mocks.mock.d.ts.map +1 -0
  9. package/src/__tests__/fixtures/model-mocks.mock.js +102 -0
  10. package/src/__tests__/fixtures/model-mocks.mock.js.map +1 -0
  11. package/src/__tests__/helpers/application.mock.d.ts +8 -0
  12. package/src/__tests__/helpers/application.mock.d.ts.map +1 -0
  13. package/src/__tests__/helpers/application.mock.js +77 -0
  14. package/src/__tests__/helpers/application.mock.js.map +1 -0
  15. package/src/__tests__/helpers/{index.ts → index.d.ts} +1 -0
  16. package/src/__tests__/helpers/index.d.ts.map +1 -0
  17. package/src/__tests__/helpers/index.js +7 -0
  18. package/src/__tests__/helpers/index.js.map +1 -0
  19. package/src/__tests__/helpers/setup-test-env.d.ts +12 -0
  20. package/src/__tests__/helpers/setup-test-env.d.ts.map +1 -0
  21. package/src/__tests__/helpers/setup-test-env.js +121 -0
  22. package/src/__tests__/helpers/setup-test-env.js.map +1 -0
  23. package/src/__tests__/{index.ts → index.d.ts} +1 -0
  24. package/src/__tests__/index.d.ts.map +1 -0
  25. package/src/__tests__/index.js +6 -0
  26. package/src/__tests__/index.js.map +1 -0
  27. package/src/application-base.d.ts +128 -0
  28. package/src/application-base.d.ts.map +1 -0
  29. package/src/application-base.js +364 -0
  30. package/src/application-base.js.map +1 -0
  31. package/src/application-concrete.d.ts +26 -0
  32. package/src/application-concrete.d.ts.map +1 -0
  33. package/src/application-concrete.js +34 -0
  34. package/src/application-concrete.js.map +1 -0
  35. package/src/application.d.ts +34 -0
  36. package/src/application.d.ts.map +1 -0
  37. package/src/application.js +172 -0
  38. package/src/application.js.map +1 -0
  39. package/src/backup-code.d.ts +72 -0
  40. package/src/backup-code.d.ts.map +1 -0
  41. package/src/backup-code.js +243 -0
  42. package/src/backup-code.js.map +1 -0
  43. package/src/builders/application-builder.d.ts +47 -0
  44. package/src/builders/application-builder.d.ts.map +1 -0
  45. package/src/builders/application-builder.js +76 -0
  46. package/src/builders/application-builder.js.map +1 -0
  47. package/src/builders/{index.ts → index.d.ts} +1 -0
  48. package/src/builders/index.d.ts.map +1 -0
  49. package/src/builders/index.js +5 -0
  50. package/src/builders/index.js.map +1 -0
  51. package/src/constants.d.ts +21 -0
  52. package/src/constants.d.ts.map +1 -0
  53. package/src/constants.js +63 -0
  54. package/src/constants.js.map +1 -0
  55. package/src/container/{index.ts → index.d.ts} +1 -0
  56. package/src/container/index.d.ts.map +1 -0
  57. package/src/container/index.js +6 -0
  58. package/src/container/index.js.map +1 -0
  59. package/src/container/service-container.d.ts +45 -0
  60. package/src/container/service-container.d.ts.map +1 -0
  61. package/src/container/service-container.js +68 -0
  62. package/src/container/service-container.js.map +1 -0
  63. package/src/container/{service-definitions.ts → service-definitions.d.ts} +10 -11
  64. package/src/container/service-definitions.d.ts.map +1 -0
  65. package/src/container/service-definitions.js +21 -0
  66. package/src/container/service-definitions.js.map +1 -0
  67. package/src/controllers/base.d.ts +80 -0
  68. package/src/controllers/base.d.ts.map +1 -0
  69. package/src/controllers/base.js +318 -0
  70. package/src/controllers/base.js.map +1 -0
  71. package/src/controllers/{index.ts → index.d.ts} +1 -0
  72. package/src/controllers/index.d.ts.map +1 -0
  73. package/src/controllers/index.js +6 -0
  74. package/src/controllers/index.js.map +1 -0
  75. package/src/controllers/user.d.ts +66 -0
  76. package/src/controllers/user.d.ts.map +1 -0
  77. package/src/controllers/user.js +936 -0
  78. package/src/controllers/user.js.map +1 -0
  79. package/src/database/{database-initializer.ts → database-initializer.d.ts} +3 -4
  80. package/src/database/database-initializer.d.ts.map +1 -0
  81. package/src/database/database-initializer.js +8 -0
  82. package/src/database/database-initializer.js.map +1 -0
  83. package/src/database/{index.ts → index.d.ts} +1 -0
  84. package/src/database/index.d.ts.map +1 -0
  85. package/src/database/index.js +5 -0
  86. package/src/database/index.js.map +1 -0
  87. package/src/decorators/base-controller.d.ts +22 -0
  88. package/src/decorators/base-controller.d.ts.map +1 -0
  89. package/src/decorators/base-controller.js +71 -0
  90. package/src/decorators/base-controller.js.map +1 -0
  91. package/src/decorators/controller.d.ts +43 -0
  92. package/src/decorators/controller.d.ts.map +1 -0
  93. package/src/decorators/controller.js +73 -0
  94. package/src/decorators/controller.js.map +1 -0
  95. package/src/decorators/{index.ts → index.d.ts} +1 -0
  96. package/src/decorators/index.d.ts.map +1 -0
  97. package/src/decorators/index.js +7 -0
  98. package/src/decorators/index.js.map +1 -0
  99. package/src/decorators/zod-validation.d.ts +10 -0
  100. package/src/decorators/zod-validation.d.ts.map +1 -0
  101. package/src/decorators/zod-validation.js +53 -0
  102. package/src/decorators/zod-validation.js.map +1 -0
  103. package/src/defaults.d.ts +12 -0
  104. package/src/defaults.d.ts.map +1 -0
  105. package/src/defaults.js +212 -0
  106. package/src/defaults.js.map +1 -0
  107. package/src/documents/{base.ts → base.d.ts} +2 -4
  108. package/src/documents/base.d.ts.map +1 -0
  109. package/src/documents/base.js +8 -0
  110. package/src/documents/base.js.map +1 -0
  111. package/src/documents/{email-token.ts → email-token.d.ts} +3 -8
  112. package/src/documents/email-token.d.ts.map +1 -0
  113. package/src/documents/email-token.js +8 -0
  114. package/src/documents/email-token.js.map +1 -0
  115. package/src/documents/{index.ts → index.d.ts} +1 -0
  116. package/src/documents/index.d.ts.map +1 -0
  117. package/src/documents/index.js +3 -0
  118. package/src/documents/index.js.map +1 -0
  119. package/src/documents/{mnemonic.ts → mnemonic.d.ts} +2 -6
  120. package/src/documents/mnemonic.d.ts.map +1 -0
  121. package/src/documents/mnemonic.js +8 -0
  122. package/src/documents/mnemonic.js.map +1 -0
  123. package/src/documents/{role.ts → role.d.ts} +2 -6
  124. package/src/documents/role.d.ts.map +1 -0
  125. package/src/documents/role.js +8 -0
  126. package/src/documents/role.js.map +1 -0
  127. package/src/documents/{used-direct-login-token.ts → used-direct-login-token.d.ts} +2 -4
  128. package/src/documents/used-direct-login-token.d.ts.map +1 -0
  129. package/src/documents/used-direct-login-token.js +8 -0
  130. package/src/documents/used-direct-login-token.js.map +1 -0
  131. package/src/documents/{user-role.ts → user-role.d.ts} +2 -6
  132. package/src/documents/user-role.d.ts.map +1 -0
  133. package/src/documents/user-role.js +8 -0
  134. package/src/documents/user-role.js.map +1 -0
  135. package/src/documents/{user.ts → user.d.ts} +2 -6
  136. package/src/documents/user.d.ts.map +1 -0
  137. package/src/documents/user.js +8 -0
  138. package/src/documents/user.js.map +1 -0
  139. package/src/enumerations/base-model-name.d.ts +43 -0
  140. package/src/enumerations/base-model-name.d.ts.map +1 -0
  141. package/src/enumerations/base-model-name.js +39 -0
  142. package/src/enumerations/base-model-name.js.map +1 -0
  143. package/src/enumerations/{index.ts → index.d.ts} +1 -0
  144. package/src/enumerations/index.d.ts.map +1 -0
  145. package/src/enumerations/index.js +8 -0
  146. package/src/enumerations/index.js.map +1 -0
  147. package/src/enumerations/{length-encoding-type.ts → length-encoding-type.d.ts} +6 -6
  148. package/src/enumerations/length-encoding-type.d.ts.map +1 -0
  149. package/src/enumerations/length-encoding-type.js +20 -0
  150. package/src/enumerations/length-encoding-type.js.map +1 -0
  151. package/src/enumerations/schema-collection.d.ts +39 -0
  152. package/src/enumerations/schema-collection.d.ts.map +1 -0
  153. package/src/enumerations/schema-collection.js +43 -0
  154. package/src/enumerations/schema-collection.js.map +1 -0
  155. package/src/enumerations/{symmetric-error-type.ts → symmetric-error-type.d.ts} +4 -4
  156. package/src/enumerations/symmetric-error-type.d.ts.map +1 -0
  157. package/src/enumerations/symmetric-error-type.js +17 -0
  158. package/src/enumerations/symmetric-error-type.js.map +1 -0
  159. package/src/environment.d.ts +194 -0
  160. package/src/environment.d.ts.map +1 -0
  161. package/src/environment.js +649 -0
  162. package/src/environment.js.map +1 -0
  163. package/src/errors/express-validation.d.ts +24 -0
  164. package/src/errors/express-validation.d.ts.map +1 -0
  165. package/src/errors/express-validation.js +33 -0
  166. package/src/errors/express-validation.js.map +1 -0
  167. package/src/errors/{index.ts → index.d.ts} +1 -0
  168. package/src/errors/index.d.ts.map +1 -0
  169. package/src/errors/index.js +16 -0
  170. package/src/errors/index.js.map +1 -0
  171. package/src/errors/invalid-backup-code-version.d.ts +19 -0
  172. package/src/errors/invalid-backup-code-version.d.ts.map +1 -0
  173. package/src/errors/invalid-backup-code-version.js +29 -0
  174. package/src/errors/invalid-backup-code-version.js.map +1 -0
  175. package/src/errors/invalid-jwt-token.d.ts +17 -0
  176. package/src/errors/invalid-jwt-token.d.ts.map +1 -0
  177. package/src/errors/invalid-jwt-token.js +24 -0
  178. package/src/errors/invalid-jwt-token.js.map +1 -0
  179. package/src/errors/invalid-model.d.ts +18 -0
  180. package/src/errors/invalid-model.d.ts.map +1 -0
  181. package/src/errors/invalid-model.js +26 -0
  182. package/src/errors/invalid-model.js.map +1 -0
  183. package/src/errors/invalid-new-password.d.ts +19 -0
  184. package/src/errors/invalid-new-password.d.ts.map +1 -0
  185. package/src/errors/invalid-new-password.js +28 -0
  186. package/src/errors/invalid-new-password.js.map +1 -0
  187. package/src/errors/invalid-password.d.ts +19 -0
  188. package/src/errors/invalid-password.d.ts.map +1 -0
  189. package/src/errors/invalid-password.js +28 -0
  190. package/src/errors/invalid-password.js.map +1 -0
  191. package/src/errors/missing-validated-data.d.ts +24 -0
  192. package/src/errors/missing-validated-data.d.ts.map +1 -0
  193. package/src/errors/missing-validated-data.js +53 -0
  194. package/src/errors/missing-validated-data.js.map +1 -0
  195. package/src/errors/mnemonic-or-password-required.d.ts +17 -0
  196. package/src/errors/mnemonic-or-password-required.d.ts.map +1 -0
  197. package/src/errors/mnemonic-or-password-required.js +26 -0
  198. package/src/errors/mnemonic-or-password-required.js.map +1 -0
  199. package/src/errors/model-not-registered.d.ts +18 -0
  200. package/src/errors/model-not-registered.d.ts.map +1 -0
  201. package/src/errors/model-not-registered.js +26 -0
  202. package/src/errors/model-not-registered.js.map +1 -0
  203. package/src/errors/mongoose-validation.d.ts +28 -0
  204. package/src/errors/mongoose-validation.d.ts.map +1 -0
  205. package/src/errors/mongoose-validation.js +33 -0
  206. package/src/errors/mongoose-validation.js.map +1 -0
  207. package/src/errors/symmetric.d.ts +23 -0
  208. package/src/errors/symmetric.d.ts.map +1 -0
  209. package/src/errors/symmetric.js +37 -0
  210. package/src/errors/symmetric.js.map +1 -0
  211. package/src/errors/token-expired.d.ts +17 -0
  212. package/src/errors/token-expired.d.ts.map +1 -0
  213. package/src/errors/token-expired.js +24 -0
  214. package/src/errors/token-expired.js.map +1 -0
  215. package/src/get-language.d.ts +12 -0
  216. package/src/get-language.d.ts.map +1 -0
  217. package/src/get-language.js +40 -0
  218. package/src/get-language.js.map +1 -0
  219. package/src/get-timezone.d.ts +12 -0
  220. package/src/get-timezone.d.ts.map +1 -0
  221. package/src/get-timezone.js +53 -0
  222. package/src/get-timezone.js.map +1 -0
  223. package/src/{index.ts → index.d.ts} +2 -44
  224. package/src/index.d.ts.map +1 -0
  225. package/src/index.js +80 -0
  226. package/src/index.js.map +1 -0
  227. package/src/interfaces/{api-error-response.ts → api-error-response.d.ts} +2 -3
  228. package/src/interfaces/api-error-response.d.ts.map +1 -0
  229. package/src/interfaces/api-error-response.js +8 -0
  230. package/src/interfaces/api-error-response.js.map +1 -0
  231. package/src/interfaces/{api-express-validation-error-response.ts → api-express-validation-error-response.d.ts} +3 -4
  232. package/src/interfaces/api-express-validation-error-response.d.ts.map +1 -0
  233. package/src/interfaces/api-express-validation-error-response.js +8 -0
  234. package/src/interfaces/api-express-validation-error-response.js.map +1 -0
  235. package/src/interfaces/{api-message-response.ts → api-message-response.d.ts} +2 -2
  236. package/src/interfaces/api-message-response.d.ts.map +1 -0
  237. package/src/interfaces/api-message-response.js +8 -0
  238. package/src/interfaces/api-message-response.js.map +1 -0
  239. package/src/interfaces/{api-mongo-validation-error-response.ts → api-mongo-validation-error-response.d.ts} +2 -3
  240. package/src/interfaces/api-mongo-validation-error-response.d.ts.map +1 -0
  241. package/src/interfaces/api-mongo-validation-error-response.js +8 -0
  242. package/src/interfaces/api-mongo-validation-error-response.js.map +1 -0
  243. package/src/interfaces/api-responses/{backup-codes-response.ts → backup-codes-response.d.ts} +2 -3
  244. package/src/interfaces/api-responses/backup-codes-response.d.ts.map +1 -0
  245. package/src/interfaces/api-responses/backup-codes-response.js +8 -0
  246. package/src/interfaces/api-responses/backup-codes-response.js.map +1 -0
  247. package/src/interfaces/api-responses/{challenge-response.ts → challenge-response.d.ts} +5 -6
  248. package/src/interfaces/api-responses/challenge-response.d.ts.map +1 -0
  249. package/src/interfaces/api-responses/challenge-response.js +7 -0
  250. package/src/interfaces/api-responses/challenge-response.js.map +1 -0
  251. package/src/interfaces/api-responses/{code-count-response.ts → code-count-response.d.ts} +2 -3
  252. package/src/interfaces/api-responses/code-count-response.d.ts.map +1 -0
  253. package/src/interfaces/api-responses/code-count-response.js +8 -0
  254. package/src/interfaces/api-responses/code-count-response.js.map +1 -0
  255. package/src/interfaces/api-responses/{index.ts → index.d.ts} +1 -0
  256. package/src/interfaces/api-responses/index.d.ts.map +1 -0
  257. package/src/interfaces/api-responses/index.js +12 -0
  258. package/src/interfaces/api-responses/index.js.map +1 -0
  259. package/src/interfaces/api-responses/{login-response.ts → login-response.d.ts} +4 -5
  260. package/src/interfaces/api-responses/login-response.d.ts.map +1 -0
  261. package/src/interfaces/api-responses/login-response.js +8 -0
  262. package/src/interfaces/api-responses/login-response.js.map +1 -0
  263. package/src/interfaces/api-responses/{mnemonic-response.ts → mnemonic-response.d.ts} +3 -4
  264. package/src/interfaces/api-responses/mnemonic-response.d.ts.map +1 -0
  265. package/src/interfaces/api-responses/mnemonic-response.js +7 -0
  266. package/src/interfaces/api-responses/mnemonic-response.js.map +1 -0
  267. package/src/interfaces/api-responses/{registration-response.ts → registration-response.d.ts} +5 -6
  268. package/src/interfaces/api-responses/registration-response.d.ts.map +1 -0
  269. package/src/interfaces/api-responses/registration-response.js +7 -0
  270. package/src/interfaces/api-responses/registration-response.js.map +1 -0
  271. package/src/interfaces/api-responses/{request-user-response.ts → request-user-response.d.ts} +2 -3
  272. package/src/interfaces/api-responses/request-user-response.d.ts.map +1 -0
  273. package/src/interfaces/api-responses/request-user-response.js +8 -0
  274. package/src/interfaces/api-responses/request-user-response.js.map +1 -0
  275. package/src/interfaces/api-responses/{user-settings-response.ts → user-settings-response.d.ts} +9 -10
  276. package/src/interfaces/api-responses/user-settings-response.d.ts.map +1 -0
  277. package/src/interfaces/api-responses/user-settings-response.js +8 -0
  278. package/src/interfaces/api-responses/user-settings-response.js.map +1 -0
  279. package/src/interfaces/application.d.ts +39 -0
  280. package/src/interfaces/application.d.ts.map +1 -0
  281. package/src/interfaces/application.js +8 -0
  282. package/src/interfaces/application.js.map +1 -0
  283. package/src/interfaces/backend-objects/{email-token.ts → email-token.d.ts} +3 -8
  284. package/src/interfaces/backend-objects/email-token.d.ts.map +1 -0
  285. package/src/interfaces/backend-objects/email-token.js +8 -0
  286. package/src/interfaces/backend-objects/email-token.js.map +1 -0
  287. package/src/interfaces/backend-objects/{index.ts → index.d.ts} +1 -0
  288. package/src/interfaces/backend-objects/index.d.ts.map +1 -0
  289. package/src/interfaces/backend-objects/index.js +8 -0
  290. package/src/interfaces/backend-objects/index.js.map +1 -0
  291. package/src/interfaces/backend-objects/{request-user.ts → request-user.d.ts} +2 -6
  292. package/src/interfaces/backend-objects/request-user.d.ts.map +1 -0
  293. package/src/interfaces/backend-objects/request-user.js +8 -0
  294. package/src/interfaces/backend-objects/request-user.js.map +1 -0
  295. package/src/interfaces/backend-objects/{role.ts → role.d.ts} +2 -7
  296. package/src/interfaces/backend-objects/role.d.ts.map +1 -0
  297. package/src/interfaces/backend-objects/role.js +8 -0
  298. package/src/interfaces/backend-objects/role.js.map +1 -0
  299. package/src/interfaces/backend-objects/{user.ts → user.d.ts} +2 -6
  300. package/src/interfaces/backend-objects/user.d.ts.map +1 -0
  301. package/src/interfaces/backend-objects/user.js +8 -0
  302. package/src/interfaces/backend-objects/user.js.map +1 -0
  303. package/src/interfaces/{checksum-config.ts → checksum-config.d.ts} +3 -3
  304. package/src/interfaces/checksum-config.d.ts.map +1 -0
  305. package/src/interfaces/checksum-config.js +8 -0
  306. package/src/interfaces/checksum-config.js.map +1 -0
  307. package/src/interfaces/checksum-consts.d.ts +20 -0
  308. package/src/interfaces/checksum-consts.d.ts.map +1 -0
  309. package/src/interfaces/checksum-consts.js +8 -0
  310. package/src/interfaces/checksum-consts.js.map +1 -0
  311. package/src/interfaces/constants.d.ts +66 -0
  312. package/src/interfaces/constants.d.ts.map +1 -0
  313. package/src/interfaces/constants.js +8 -0
  314. package/src/interfaces/constants.js.map +1 -0
  315. package/src/interfaces/{controller-config.ts → controller-config.d.ts} +15 -31
  316. package/src/interfaces/controller-config.d.ts.map +1 -0
  317. package/src/interfaces/controller-config.js +8 -0
  318. package/src/interfaces/controller-config.js.map +1 -0
  319. package/src/interfaces/{create-user-basics.ts → create-user-basics.d.ts} +13 -13
  320. package/src/interfaces/create-user-basics.d.ts.map +1 -0
  321. package/src/interfaces/create-user-basics.js +8 -0
  322. package/src/interfaces/create-user-basics.js.map +1 -0
  323. package/src/interfaces/{csp-config.ts → csp-config.d.ts} +5 -15
  324. package/src/interfaces/csp-config.d.ts.map +1 -0
  325. package/src/interfaces/csp-config.js +23 -0
  326. package/src/interfaces/csp-config.js.map +1 -0
  327. package/src/interfaces/{csp-definition.ts → csp-definition.d.ts} +9 -46
  328. package/src/interfaces/csp-definition.d.ts.map +1 -0
  329. package/src/interfaces/csp-definition.js +32 -0
  330. package/src/interfaces/csp-definition.js.map +1 -0
  331. package/src/interfaces/{db-init-result.ts → db-init-result.d.ts} +2 -3
  332. package/src/interfaces/db-init-result.d.ts.map +1 -0
  333. package/src/interfaces/db-init-result.js +8 -0
  334. package/src/interfaces/db-init-result.js.map +1 -0
  335. package/src/interfaces/{deep-partial.ts → deep-partial.d.ts} +2 -2
  336. package/src/interfaces/deep-partial.d.ts.map +1 -0
  337. package/src/interfaces/deep-partial.js +8 -0
  338. package/src/interfaces/deep-partial.js.map +1 -0
  339. package/src/interfaces/{discriminator-collections.ts → discriminator-collections.d.ts} +4 -8
  340. package/src/interfaces/discriminator-collections.d.ts.map +1 -0
  341. package/src/interfaces/discriminator-collections.js +8 -0
  342. package/src/interfaces/discriminator-collections.js.map +1 -0
  343. package/src/interfaces/email-service.d.ts +21 -0
  344. package/src/interfaces/email-service.d.ts.map +1 -0
  345. package/src/interfaces/email-service.js +8 -0
  346. package/src/interfaces/email-service.js.map +1 -0
  347. package/src/interfaces/environment-mongo.d.ts +85 -0
  348. package/src/interfaces/environment-mongo.d.ts.map +1 -0
  349. package/src/interfaces/environment-mongo.js +8 -0
  350. package/src/interfaces/environment-mongo.js.map +1 -0
  351. package/src/interfaces/environment.d.ts +190 -0
  352. package/src/interfaces/environment.d.ts.map +1 -0
  353. package/src/interfaces/environment.js +8 -0
  354. package/src/interfaces/environment.js.map +1 -0
  355. package/src/interfaces/{failable-result.ts → failable-result.d.ts} +5 -5
  356. package/src/interfaces/failable-result.d.ts.map +1 -0
  357. package/src/interfaces/failable-result.js +8 -0
  358. package/src/interfaces/failable-result.js.map +1 -0
  359. package/src/interfaces/{fec-consts.ts → fec-consts.d.ts} +3 -3
  360. package/src/interfaces/fec-consts.d.ts.map +1 -0
  361. package/src/interfaces/fec-consts.js +8 -0
  362. package/src/interfaces/fec-consts.js.map +1 -0
  363. package/src/interfaces/{flexible-csp.ts → flexible-csp.d.ts} +5 -16
  364. package/src/interfaces/flexible-csp.d.ts.map +1 -0
  365. package/src/interfaces/flexible-csp.js +24 -0
  366. package/src/interfaces/flexible-csp.js.map +1 -0
  367. package/src/interfaces/{handleable-error-options.ts → handleable-error-options.d.ts} +5 -5
  368. package/src/interfaces/handleable-error-options.d.ts.map +1 -0
  369. package/src/interfaces/handleable-error-options.js +8 -0
  370. package/src/interfaces/handleable-error-options.js.map +1 -0
  371. package/src/interfaces/{index.ts → index.d.ts} +1 -0
  372. package/src/interfaces/index.d.ts.map +1 -0
  373. package/src/interfaces/index.js +38 -0
  374. package/src/interfaces/index.js.map +1 -0
  375. package/src/interfaces/jwt-consts.d.ts +20 -0
  376. package/src/interfaces/jwt-consts.d.ts.map +1 -0
  377. package/src/interfaces/jwt-consts.js +8 -0
  378. package/src/interfaces/jwt-consts.js.map +1 -0
  379. package/src/interfaces/{jwt-sign-response.ts → jwt-sign-response.d.ts} +9 -18
  380. package/src/interfaces/jwt-sign-response.d.ts.map +1 -0
  381. package/src/interfaces/jwt-sign-response.js +8 -0
  382. package/src/interfaces/jwt-sign-response.js.map +1 -0
  383. package/src/interfaces/models/{email-token.ts → email-token.d.ts} +1 -2
  384. package/src/interfaces/models/email-token.d.ts.map +1 -0
  385. package/src/interfaces/models/email-token.js +8 -0
  386. package/src/interfaces/models/email-token.js.map +1 -0
  387. package/src/interfaces/models/{index.ts → index.d.ts} +1 -0
  388. package/src/interfaces/models/index.d.ts.map +1 -0
  389. package/src/interfaces/models/index.js +11 -0
  390. package/src/interfaces/models/index.js.map +1 -0
  391. package/src/interfaces/models/{mnemonic.ts → mnemonic.d.ts} +1 -2
  392. package/src/interfaces/models/mnemonic.d.ts.map +1 -0
  393. package/src/interfaces/models/mnemonic.js +8 -0
  394. package/src/interfaces/models/mnemonic.js.map +1 -0
  395. package/src/interfaces/models/{role.ts → role.d.ts} +1 -2
  396. package/src/interfaces/models/role.d.ts.map +1 -0
  397. package/src/interfaces/models/role.js +8 -0
  398. package/src/interfaces/models/role.js.map +1 -0
  399. package/src/interfaces/models/{token-role.ts → token-role.d.ts} +2 -6
  400. package/src/interfaces/models/token-role.d.ts.map +1 -0
  401. package/src/interfaces/models/token-role.js +8 -0
  402. package/src/interfaces/models/token-role.js.map +1 -0
  403. package/src/interfaces/models/{used-direct-login-token.ts → used-direct-login-token.d.ts} +2 -4
  404. package/src/interfaces/models/used-direct-login-token.d.ts.map +1 -0
  405. package/src/interfaces/models/used-direct-login-token.js +8 -0
  406. package/src/interfaces/models/used-direct-login-token.js.map +1 -0
  407. package/src/interfaces/models/{user-role.ts → user-role.d.ts} +2 -6
  408. package/src/interfaces/models/user-role.d.ts.map +1 -0
  409. package/src/interfaces/models/user-role.js +8 -0
  410. package/src/interfaces/models/user-role.js.map +1 -0
  411. package/src/interfaces/models/{user.ts → user.d.ts} +3 -12
  412. package/src/interfaces/models/user.d.ts.map +1 -0
  413. package/src/interfaces/models/user.js +8 -0
  414. package/src/interfaces/models/user.js.map +1 -0
  415. package/src/interfaces/{mongo-errors.ts → mongo-errors.d.ts} +2 -3
  416. package/src/interfaces/mongo-errors.d.ts.map +1 -0
  417. package/src/interfaces/mongo-errors.js +8 -0
  418. package/src/interfaces/mongo-errors.js.map +1 -0
  419. package/src/interfaces/request-user.d.ts +67 -0
  420. package/src/interfaces/request-user.d.ts.map +1 -0
  421. package/src/interfaces/request-user.js +8 -0
  422. package/src/interfaces/request-user.js.map +1 -0
  423. package/src/interfaces/required-string-keys.d.ts +28 -0
  424. package/src/interfaces/required-string-keys.d.ts.map +1 -0
  425. package/src/interfaces/required-string-keys.js +8 -0
  426. package/src/interfaces/required-string-keys.js.map +1 -0
  427. package/src/interfaces/{schema.ts → schema.d.ts} +22 -28
  428. package/src/interfaces/schema.d.ts.map +1 -0
  429. package/src/interfaces/schema.js +8 -0
  430. package/src/interfaces/schema.js.map +1 -0
  431. package/src/interfaces/server-init-result.d.ts +45 -0
  432. package/src/interfaces/server-init-result.d.ts.map +1 -0
  433. package/src/interfaces/server-init-result.js +8 -0
  434. package/src/interfaces/server-init-result.js.map +1 -0
  435. package/src/interfaces/{status-code-response.ts → status-code-response.d.ts} +4 -5
  436. package/src/interfaces/status-code-response.d.ts.map +1 -0
  437. package/src/interfaces/status-code-response.js +8 -0
  438. package/src/interfaces/status-code-response.js.map +1 -0
  439. package/src/interfaces/{symmetric-encryption-results.ts → symmetric-encryption-results.d.ts} +3 -3
  440. package/src/interfaces/symmetric-encryption-results.d.ts.map +1 -1
  441. package/src/interfaces/symmetric-encryption-results.js +5 -0
  442. package/src/interfaces/symmetric-encryption-results.js.map +1 -1
  443. package/src/interfaces/{test-environment.ts → test-environment.d.ts} +6 -7
  444. package/src/interfaces/test-environment.d.ts.map +1 -0
  445. package/src/interfaces/test-environment.js +8 -0
  446. package/src/interfaces/test-environment.js.map +1 -0
  447. package/src/interfaces/{token-response.ts → token-response.d.ts} +2 -3
  448. package/src/interfaces/token-response.d.ts.map +1 -0
  449. package/src/interfaces/token-response.js +8 -0
  450. package/src/interfaces/token-response.js.map +1 -0
  451. package/src/middleware-utils.d.ts +31 -0
  452. package/src/middleware-utils.d.ts.map +1 -0
  453. package/src/middleware-utils.js +117 -0
  454. package/src/middleware-utils.js.map +1 -0
  455. package/src/middlewares/authenticate-crypto.d.ts +27 -0
  456. package/src/middlewares/authenticate-crypto.d.ts.map +1 -0
  457. package/src/middlewares/authenticate-crypto.js +143 -0
  458. package/src/middlewares/authenticate-crypto.js.map +1 -0
  459. package/src/middlewares/authenticate-token.d.ts +34 -0
  460. package/src/middlewares/authenticate-token.d.ts.map +1 -0
  461. package/src/middlewares/authenticate-token.js +117 -0
  462. package/src/middlewares/authenticate-token.js.map +1 -0
  463. package/src/middlewares/cleanup-crypto.d.ts +16 -0
  464. package/src/middlewares/cleanup-crypto.d.ts.map +1 -0
  465. package/src/middlewares/cleanup-crypto.js +41 -0
  466. package/src/middlewares/cleanup-crypto.js.map +1 -0
  467. package/src/middlewares/{index.ts → index.d.ts} +1 -0
  468. package/src/middlewares/index.d.ts.map +1 -0
  469. package/src/middlewares/index.js +8 -0
  470. package/src/middlewares/index.js.map +1 -0
  471. package/src/middlewares/{set-global-context-language.ts → set-global-context-language.d.ts} +2 -24
  472. package/src/middlewares/set-global-context-language.d.ts.map +1 -0
  473. package/src/middlewares/set-global-context-language.js +27 -0
  474. package/src/middlewares/set-global-context-language.js.map +1 -0
  475. package/src/model-registry.d.ts +79 -0
  476. package/src/model-registry.d.ts.map +1 -0
  477. package/src/model-registry.js +97 -0
  478. package/src/model-registry.js.map +1 -0
  479. package/src/models/{email-token.ts → email-token.d.ts} +2 -27
  480. package/src/models/email-token.d.ts.map +1 -0
  481. package/src/models/email-token.js +16 -0
  482. package/src/models/email-token.js.map +1 -0
  483. package/src/models/{index.ts → index.d.ts} +1 -0
  484. package/src/models/index.d.ts.map +1 -0
  485. package/src/models/index.js +10 -0
  486. package/src/models/index.js.map +1 -0
  487. package/src/models/{mnemonic.ts → mnemonic.d.ts} +2 -20
  488. package/src/models/mnemonic.d.ts.map +1 -0
  489. package/src/models/mnemonic.js +27 -0
  490. package/src/models/mnemonic.js.map +1 -0
  491. package/src/models/{role.ts → role.d.ts} +2 -16
  492. package/src/models/role.d.ts.map +1 -0
  493. package/src/models/role.js +27 -0
  494. package/src/models/role.js.map +1 -0
  495. package/src/models/{used-direct-login-token.ts → used-direct-login-token.d.ts} +2 -27
  496. package/src/models/used-direct-login-token.d.ts.map +1 -0
  497. package/src/models/used-direct-login-token.js +16 -0
  498. package/src/models/used-direct-login-token.js.map +1 -0
  499. package/src/models/{user-role.ts → user-role.d.ts} +2 -19
  500. package/src/models/user-role.d.ts.map +1 -0
  501. package/src/models/user-role.js +26 -0
  502. package/src/models/user-role.js.map +1 -0
  503. package/src/models/{user.ts → user.d.ts} +2 -20
  504. package/src/models/user.d.ts.map +1 -0
  505. package/src/models/user.js +27 -0
  506. package/src/models/user.js.map +1 -0
  507. package/src/pipeline/{index.ts → index.d.ts} +1 -0
  508. package/src/pipeline/index.d.ts.map +1 -0
  509. package/src/pipeline/index.js +5 -0
  510. package/src/pipeline/index.js.map +1 -0
  511. package/src/pipeline/pipeline-builder.d.ts +16 -0
  512. package/src/pipeline/pipeline-builder.d.ts.map +1 -0
  513. package/src/pipeline/pipeline-builder.js +26 -0
  514. package/src/pipeline/pipeline-builder.js.map +1 -0
  515. package/src/plugins/{index.ts → index.d.ts} +1 -0
  516. package/src/plugins/index.d.ts.map +1 -0
  517. package/src/plugins/index.js +6 -0
  518. package/src/plugins/index.js.map +1 -0
  519. package/src/plugins/{plugin-interface.ts → plugin-interface.d.ts} +5 -6
  520. package/src/plugins/plugin-interface.d.ts.map +1 -0
  521. package/src/plugins/plugin-interface.js +8 -0
  522. package/src/plugins/plugin-interface.js.map +1 -0
  523. package/src/plugins/plugin-manager.d.ts +22 -0
  524. package/src/plugins/plugin-manager.d.ts.map +1 -0
  525. package/src/plugins/plugin-manager.js +46 -0
  526. package/src/plugins/plugin-manager.js.map +1 -0
  527. package/src/registry/email-service-registry.d.ts +49 -0
  528. package/src/registry/email-service-registry.d.ts.map +1 -0
  529. package/src/registry/email-service-registry.js +64 -0
  530. package/src/registry/email-service-registry.js.map +1 -0
  531. package/src/registry/{index.ts → index.d.ts} +1 -0
  532. package/src/registry/index.d.ts.map +1 -0
  533. package/src/registry/index.js +6 -0
  534. package/src/registry/index.js.map +1 -0
  535. package/src/responses/{index.ts → index.d.ts} +1 -0
  536. package/src/responses/index.d.ts.map +1 -0
  537. package/src/responses/index.js +5 -0
  538. package/src/responses/index.js.map +1 -0
  539. package/src/responses/response-builder.d.ts +103 -0
  540. package/src/responses/response-builder.d.ts.map +1 -0
  541. package/src/responses/response-builder.js +142 -0
  542. package/src/responses/response-builder.js.map +1 -0
  543. package/src/routers/api.d.ts +59 -0
  544. package/src/routers/api.d.ts.map +1 -0
  545. package/src/routers/api.js +110 -0
  546. package/src/routers/api.js.map +1 -0
  547. package/src/routers/app.d.ts +87 -0
  548. package/src/routers/app.d.ts.map +1 -0
  549. package/src/routers/app.js +285 -0
  550. package/src/routers/app.js.map +1 -0
  551. package/src/routers/{base.ts → base.d.ts} +11 -19
  552. package/src/routers/base.d.ts.map +1 -0
  553. package/src/routers/base.js +31 -0
  554. package/src/routers/base.js.map +1 -0
  555. package/src/routers/{index.ts → index.d.ts} +1 -0
  556. package/src/routers/index.d.ts.map +1 -0
  557. package/src/routers/index.js +7 -0
  558. package/src/routers/index.js.map +1 -0
  559. package/src/routers/router-config.d.ts +35 -0
  560. package/src/routers/router-config.d.ts.map +1 -0
  561. package/src/routers/router-config.js +16 -0
  562. package/src/routers/router-config.js.map +1 -0
  563. package/src/routing/index.d.ts +2 -0
  564. package/src/routing/index.d.ts.map +1 -0
  565. package/src/routing/index.js +5 -0
  566. package/src/routing/index.js.map +1 -0
  567. package/src/routing/route-builder.d.ts +121 -0
  568. package/src/routing/route-builder.d.ts.map +1 -0
  569. package/src/routing/route-builder.js +167 -0
  570. package/src/routing/route-builder.js.map +1 -0
  571. package/src/schemas/email-token.d.ts +65 -0
  572. package/src/schemas/email-token.d.ts.map +1 -0
  573. package/src/schemas/email-token.js +68 -0
  574. package/src/schemas/email-token.js.map +1 -0
  575. package/src/schemas/{index.ts → index.d.ts} +1 -0
  576. package/src/schemas/index.d.ts.map +1 -0
  577. package/src/schemas/index.js +11 -0
  578. package/src/schemas/index.js.map +1 -0
  579. package/src/schemas/mnemonic.d.ts +37 -0
  580. package/src/schemas/mnemonic.d.ts.map +1 -0
  581. package/src/schemas/mnemonic.js +41 -0
  582. package/src/schemas/mnemonic.js.map +1 -0
  583. package/src/schemas/role.d.ts +57 -0
  584. package/src/schemas/role.d.ts.map +1 -0
  585. package/src/schemas/role.js +102 -0
  586. package/src/schemas/role.js.map +1 -0
  587. package/src/schemas/schema.d.ts +62 -0
  588. package/src/schemas/schema.d.ts.map +1 -0
  589. package/src/schemas/schema.js +81 -0
  590. package/src/schemas/schema.js.map +1 -0
  591. package/src/schemas/used-direct-login-token.d.ts +49 -0
  592. package/src/schemas/used-direct-login-token.d.ts.map +1 -0
  593. package/src/schemas/used-direct-login-token.js +35 -0
  594. package/src/schemas/used-direct-login-token.js.map +1 -0
  595. package/src/schemas/user-role.d.ts +52 -0
  596. package/src/schemas/user-role.d.ts.map +1 -0
  597. package/src/schemas/user-role.js +67 -0
  598. package/src/schemas/user-role.js.map +1 -0
  599. package/src/schemas/user.d.ts +43 -0
  600. package/src/schemas/user.d.ts.map +1 -0
  601. package/src/schemas/user.js +214 -0
  602. package/src/schemas/user.js.map +1 -0
  603. package/src/services/backup-code.d.ts +80 -0
  604. package/src/services/backup-code.d.ts.map +1 -0
  605. package/src/services/backup-code.js +189 -0
  606. package/src/services/backup-code.js.map +1 -0
  607. package/src/services/base.d.ts +22 -0
  608. package/src/services/base.d.ts.map +1 -0
  609. package/src/services/base.js +26 -0
  610. package/src/services/base.js.map +1 -0
  611. package/src/services/checksum.d.ts +90 -0
  612. package/src/services/checksum.d.ts.map +1 -0
  613. package/src/services/checksum.js +166 -0
  614. package/src/services/checksum.js.map +1 -0
  615. package/src/services/database-initialization.d.ts +138 -0
  616. package/src/services/database-initialization.d.ts.map +1 -0
  617. package/src/services/database-initialization.js +904 -0
  618. package/src/services/database-initialization.js.map +1 -0
  619. package/src/services/{db-init-cache.ts → db-init-cache.d.ts} +6 -16
  620. package/src/services/db-init-cache.d.ts.map +1 -0
  621. package/src/services/db-init-cache.js +7 -0
  622. package/src/services/db-init-cache.js.map +1 -0
  623. package/src/services/direct-login-token.d.ts +28 -0
  624. package/src/services/direct-login-token.d.ts.map +1 -0
  625. package/src/services/direct-login-token.js +62 -0
  626. package/src/services/direct-login-token.js.map +1 -0
  627. package/src/services/dummy-email-service.d.ts +30 -0
  628. package/src/services/dummy-email-service.d.ts.map +1 -0
  629. package/src/services/dummy-email-service.js +35 -0
  630. package/src/services/dummy-email-service.js.map +1 -0
  631. package/src/services/fec-usage-example.d.ts +58 -0
  632. package/src/services/fec-usage-example.d.ts.map +1 -0
  633. package/src/services/fec-usage-example.js +95 -0
  634. package/src/services/fec-usage-example.js.map +1 -0
  635. package/src/services/fec.d.ts +88 -0
  636. package/src/services/fec.d.ts.map +1 -0
  637. package/src/services/fec.js +246 -0
  638. package/src/services/fec.js.map +1 -0
  639. package/src/services/{index.ts → index.d.ts} +1 -0
  640. package/src/services/index.d.ts.map +1 -0
  641. package/src/services/index.js +22 -0
  642. package/src/services/index.js.map +1 -0
  643. package/src/services/jwt.d.ts +45 -0
  644. package/src/services/jwt.d.ts.map +1 -0
  645. package/src/services/jwt.js +105 -0
  646. package/src/services/jwt.js.map +1 -0
  647. package/src/services/key-wrapping.d.ts +139 -0
  648. package/src/services/key-wrapping.d.ts.map +1 -0
  649. package/src/services/key-wrapping.js +372 -0
  650. package/src/services/key-wrapping.js.map +1 -0
  651. package/src/services/mnemonic.d.ts +68 -0
  652. package/src/services/mnemonic.d.ts.map +1 -0
  653. package/src/services/mnemonic.js +120 -0
  654. package/src/services/mnemonic.js.map +1 -0
  655. package/src/services/request-user.d.ts +45 -0
  656. package/src/services/request-user.d.ts.map +1 -0
  657. package/src/services/request-user.js +90 -0
  658. package/src/services/request-user.js.map +1 -0
  659. package/src/services/role.d.ts +97 -0
  660. package/src/services/role.d.ts.map +1 -0
  661. package/src/services/role.js +289 -0
  662. package/src/services/role.js.map +1 -0
  663. package/src/services/symmetric.d.ts +60 -0
  664. package/src/services/symmetric.d.ts.map +1 -0
  665. package/src/services/symmetric.js +125 -0
  666. package/src/services/symmetric.js.map +1 -0
  667. package/src/services/system-user.d.ts +22 -0
  668. package/src/services/system-user.d.ts.map +1 -0
  669. package/src/services/system-user.js +52 -0
  670. package/src/services/system-user.js.map +1 -0
  671. package/src/services/user.d.ts +368 -0
  672. package/src/services/user.d.ts.map +1 -0
  673. package/src/services/user.js +1470 -0
  674. package/src/services/user.js.map +1 -0
  675. package/src/services/xor.d.ts +28 -0
  676. package/src/services/xor.d.ts.map +1 -0
  677. package/src/services/xor.js +45 -0
  678. package/src/services/xor.js.map +1 -0
  679. package/src/{testing.ts → testing.d.ts} +1 -2
  680. package/src/testing.d.ts.map +1 -0
  681. package/src/testing.js +12 -0
  682. package/src/testing.js.map +1 -0
  683. package/src/transactions/{index.ts → index.d.ts} +1 -0
  684. package/src/transactions/index.d.ts.map +1 -0
  685. package/src/transactions/index.js +5 -0
  686. package/src/transactions/index.js.map +1 -0
  687. package/src/transactions/transaction-manager.d.ts +37 -0
  688. package/src/transactions/transaction-manager.d.ts.map +1 -0
  689. package/src/transactions/transaction-manager.js +50 -0
  690. package/src/transactions/transaction-manager.js.map +1 -0
  691. package/src/types/{app-config.ts → app-config.d.ts} +10 -16
  692. package/src/types/app-config.d.ts.map +1 -0
  693. package/src/types/app-config.js +8 -0
  694. package/src/types/app-config.js.map +1 -0
  695. package/src/types/{controller-config.ts → controller-config.d.ts} +7 -9
  696. package/src/types/controller-config.d.ts.map +1 -0
  697. package/src/types/controller-config.js +8 -0
  698. package/src/types/controller-config.js.map +1 -0
  699. package/src/types/{environment-variables.ts → environment-variables.d.ts} +5 -27
  700. package/src/types/environment-variables.d.ts.map +1 -0
  701. package/src/types/environment-variables.js +41 -0
  702. package/src/types/environment-variables.js.map +1 -0
  703. package/src/types/{index.ts → index.d.ts} +1 -0
  704. package/src/types/index.d.ts.map +1 -0
  705. package/src/types/index.js +6 -0
  706. package/src/types/index.js.map +1 -0
  707. package/src/types/{mongoose-helpers.ts → mongoose-helpers.d.ts} +2 -3
  708. package/src/types/mongoose-helpers.d.ts.map +1 -0
  709. package/src/types/mongoose-helpers.js +8 -0
  710. package/src/types/mongoose-helpers.js.map +1 -0
  711. package/src/types.d.ts +118 -0
  712. package/src/types.d.ts.map +1 -0
  713. package/src/types.js +28 -0
  714. package/src/types.js.map +1 -0
  715. package/src/utils.d.ts +240 -0
  716. package/src/utils.d.ts.map +1 -0
  717. package/src/utils.js +843 -0
  718. package/src/utils.js.map +1 -0
  719. package/src/validation/{index.ts → index.d.ts} +1 -0
  720. package/src/validation/index.d.ts.map +1 -0
  721. package/src/validation/index.js +5 -0
  722. package/src/validation/index.js.map +1 -0
  723. package/src/validation/validation-builder.d.ts +71 -0
  724. package/src/validation/validation-builder.d.ts.map +1 -0
  725. package/src/validation/validation-builder.js +120 -0
  726. package/src/validation/validation-builder.js.map +1 -0
  727. package/LICENSE +0 -21
  728. package/src/__tests__/fixtures/model-mocks.mock.ts +0 -164
  729. package/src/__tests__/helpers/application.mock.ts +0 -89
  730. package/src/__tests__/helpers/setup-test-env.ts +0 -202
  731. package/src/application-base.ts +0 -548
  732. package/src/application-concrete.ts +0 -62
  733. package/src/application.ts +0 -330
  734. package/src/backup-code.ts +0 -348
  735. package/src/builders/application-builder.ts +0 -147
  736. package/src/constants.ts +0 -89
  737. package/src/container/service-container.ts +0 -85
  738. package/src/controllers/base.ts +0 -512
  739. package/src/controllers/user.ts +0 -1734
  740. package/src/decorators/base-controller.ts +0 -91
  741. package/src/decorators/controller.ts +0 -152
  742. package/src/decorators/zod-validation.ts +0 -64
  743. package/src/defaults.ts +0 -259
  744. package/src/enumerations/base-model-name.ts +0 -47
  745. package/src/enumerations/schema-collection.ts +0 -39
  746. package/src/environment.ts +0 -859
  747. package/src/errors/express-validation.ts +0 -38
  748. package/src/errors/invalid-backup-code-version.ts +0 -30
  749. package/src/errors/invalid-jwt-token.ts +0 -24
  750. package/src/errors/invalid-model.ts +0 -24
  751. package/src/errors/invalid-new-password.ts +0 -33
  752. package/src/errors/invalid-password.ts +0 -28
  753. package/src/errors/missing-validated-data.ts +0 -55
  754. package/src/errors/mnemonic-or-password-required.ts +0 -26
  755. package/src/errors/model-not-registered.ts +0 -24
  756. package/src/errors/mongoose-validation.ts +0 -56
  757. package/src/errors/symmetric.ts +0 -53
  758. package/src/errors/token-expired.ts +0 -24
  759. package/src/get-language.ts +0 -64
  760. package/src/get-timezone.ts +0 -76
  761. package/src/interfaces/application.ts +0 -40
  762. package/src/interfaces/checksum-consts.ts +0 -23
  763. package/src/interfaces/constants.ts +0 -114
  764. package/src/interfaces/email-service.ts +0 -26
  765. package/src/interfaces/environment-mongo.ts +0 -86
  766. package/src/interfaces/environment.ts +0 -191
  767. package/src/interfaces/jwt-consts.ts +0 -33
  768. package/src/interfaces/request-user.ts +0 -80
  769. package/src/interfaces/required-string-keys.ts +0 -33
  770. package/src/interfaces/server-init-result.ts +0 -48
  771. package/src/middleware-utils.ts +0 -138
  772. package/src/middlewares/authenticate-crypto.ts +0 -237
  773. package/src/middlewares/authenticate-token.ts +0 -165
  774. package/src/middlewares/cleanup-crypto.ts +0 -47
  775. package/src/model-registry.ts +0 -142
  776. package/src/pipeline/pipeline-builder.ts +0 -27
  777. package/src/plugins/plugin-manager.ts +0 -53
  778. package/src/registry/email-service-registry.ts +0 -76
  779. package/src/responses/response-builder.ts +0 -166
  780. package/src/routers/api.ts +0 -233
  781. package/src/routers/app.ts +0 -395
  782. package/src/routers/router-config.ts +0 -34
  783. package/src/routing/index.ts +0 -1
  784. package/src/routing/route-builder.ts +0 -214
  785. package/src/schemas/email-token.ts +0 -112
  786. package/src/schemas/mnemonic.ts +0 -48
  787. package/src/schemas/role.ts +0 -153
  788. package/src/schemas/schema.ts +0 -185
  789. package/src/schemas/used-direct-login-token.ts +0 -58
  790. package/src/schemas/user-role.ts +0 -93
  791. package/src/schemas/user.ts +0 -244
  792. package/src/services/backup-code.ts +0 -327
  793. package/src/services/base.ts +0 -46
  794. package/src/services/checksum.ts +0 -189
  795. package/src/services/database-initialization.ts +0 -1653
  796. package/src/services/direct-login-token.ts +0 -83
  797. package/src/services/dummy-email-service.ts +0 -43
  798. package/src/services/fec-usage-example.ts +0 -123
  799. package/src/services/fec.ts +0 -399
  800. package/src/services/jwt.ts +0 -146
  801. package/src/services/key-wrapping.ts +0 -528
  802. package/src/services/mnemonic.ts +0 -174
  803. package/src/services/request-user.ts +0 -127
  804. package/src/services/role.ts +0 -417
  805. package/src/services/symmetric.ts +0 -164
  806. package/src/services/system-user.ts +0 -87
  807. package/src/services/user.ts +0 -2324
  808. package/src/services/xor.ts +0 -39
  809. package/src/transactions/transaction-manager.ts +0 -63
  810. package/src/types/mongoose-override.d.ts +0 -1
  811. package/src/types/mongoose.d.ts +0 -1
  812. package/src/types.ts +0 -189
  813. package/src/utils.ts +0 -1116
  814. 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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"}