@digitaldefiance/node-express-suite 1.0.22 → 1.0.23

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 (633) hide show
  1. package/README.md +4 -0
  2. package/package.json +27 -32
  3. package/src/application-base.ts +492 -0
  4. package/src/application.ts +254 -0
  5. package/src/backup-code.ts +336 -0
  6. package/src/constants.ts +69 -0
  7. package/src/controllers/base.ts +440 -0
  8. package/{dist/controllers/index.d.ts → src/controllers/index.ts} +0 -1
  9. package/src/controllers/user.ts +1451 -0
  10. package/src/decorators/base-controller.ts +61 -0
  11. package/src/decorators/controller.ts +109 -0
  12. package/{dist/decorators/index.d.ts → src/decorators/index.ts} +0 -1
  13. package/src/decorators/zod-validation.ts +57 -0
  14. package/src/defaults.ts +94 -0
  15. package/src/documents/base.ts +7 -0
  16. package/src/documents/email-token.ts +14 -0
  17. package/{dist/documents/index.d.ts → src/documents/index.ts} +0 -1
  18. package/{dist/documents/mnemonic.d.ts → src/documents/mnemonic.ts} +5 -2
  19. package/{dist/documents/role.d.ts → src/documents/role.ts} +5 -2
  20. package/src/documents/used-direct-login-token.ts +7 -0
  21. package/{dist/documents/user-role.d.ts → src/documents/user-role.ts} +5 -2
  22. package/{dist/documents/user.d.ts → src/documents/user.ts} +4 -2
  23. package/src/enumerations/base-model-name.ts +41 -0
  24. package/{dist/enumerations/index.d.ts → src/enumerations/index.ts} +0 -1
  25. package/src/enumerations/length-encoding-type.ts +6 -0
  26. package/src/enumerations/schema-collection.ts +33 -0
  27. package/src/enumerations/symmetric-error-type.ts +4 -0
  28. package/src/environment.ts +770 -0
  29. package/src/errors/express-validation.ts +21 -0
  30. package/{dist/errors/index.d.ts → src/errors/index.ts} +0 -1
  31. package/src/errors/invalid-backup-code-version.ts +14 -0
  32. package/src/errors/invalid-jwt-token.ts +10 -0
  33. package/src/errors/invalid-model.ts +11 -0
  34. package/src/errors/invalid-new-password.ts +18 -0
  35. package/src/errors/invalid-password.ts +13 -0
  36. package/src/errors/missing-validated-data.ts +36 -0
  37. package/src/errors/mnemonic-or-password-required.ts +12 -0
  38. package/src/errors/model-not-registered.ts +11 -0
  39. package/src/errors/mongoose-validation.ts +34 -0
  40. package/src/errors/symmetric.ts +41 -0
  41. package/src/errors/token-expired.ts +10 -0
  42. package/src/get-language.ts +53 -0
  43. package/src/get-timezone.ts +45 -0
  44. package/{dist/index.d.ts → src/index.ts} +3 -2
  45. package/{dist/interfaces/api-error-response.d.ts → src/interfaces/api-error-response.ts} +2 -2
  46. package/src/interfaces/api-express-validation-error-response.ts +8 -0
  47. package/src/interfaces/api-message-response.ts +3 -0
  48. package/{dist/interfaces/api-mongo-validation-error-response.d.ts → src/interfaces/api-mongo-validation-error-response.ts} +2 -2
  49. package/{dist/interfaces/api-responses/backup-codes-response.d.ts → src/interfaces/api-responses/backup-codes-response.ts} +2 -2
  50. package/{dist/interfaces/api-responses/challenge-response.d.ts → src/interfaces/api-responses/challenge-response.ts} +3 -3
  51. package/{dist/interfaces/api-responses/code-count-response.d.ts → src/interfaces/api-responses/code-count-response.ts} +2 -2
  52. package/{dist/interfaces/api-responses/index.d.ts → src/interfaces/api-responses/index.ts} +0 -1
  53. package/{dist/interfaces/api-responses/login-response.d.ts → src/interfaces/api-responses/login-response.ts} +4 -4
  54. package/{dist/interfaces/api-responses/mnemonic-response.d.ts → src/interfaces/api-responses/mnemonic-response.ts} +2 -2
  55. package/{dist/interfaces/api-responses/registration-response.d.ts → src/interfaces/api-responses/registration-response.ts} +3 -3
  56. package/{dist/interfaces/api-responses/request-user-response.d.ts → src/interfaces/api-responses/request-user-response.ts} +2 -2
  57. package/{dist/interfaces/application.d.ts → src/interfaces/application.ts} +7 -7
  58. package/src/interfaces/backend-objects/email-token.ts +11 -0
  59. package/{dist/interfaces/backend-objects/index.d.ts → src/interfaces/backend-objects/index.ts} +0 -1
  60. package/{dist/interfaces/backend-objects/request-user.d.ts → src/interfaces/backend-objects/request-user.ts} +7 -2
  61. package/{dist/interfaces/backend-objects/role.d.ts → src/interfaces/backend-objects/role.ts} +1 -1
  62. package/src/interfaces/backend-objects/user.ts +9 -0
  63. package/src/interfaces/checksum-config.ts +4 -0
  64. package/src/interfaces/checksum-consts.ts +13 -0
  65. package/{dist/interfaces/constants.d.ts → src/interfaces/constants.ts} +5 -5
  66. package/src/interfaces/create-user-basics.ts +17 -0
  67. package/src/interfaces/csp-config.ts +35 -0
  68. package/src/interfaces/deep-partial.ts +3 -0
  69. package/{dist/interfaces/discriminator-collections.d.ts → src/interfaces/discriminator-collections.ts} +3 -3
  70. package/src/interfaces/email-service.ts +8 -0
  71. package/src/interfaces/environment-mongo.ts +76 -0
  72. package/src/interfaces/environment.ts +181 -0
  73. package/src/interfaces/failable-result.ts +6 -0
  74. package/src/interfaces/fec-consts.ts +4 -0
  75. package/src/interfaces/handleable-error-options.ts +6 -0
  76. package/{dist/interfaces/index.d.ts → src/interfaces/index.ts} +0 -1
  77. package/src/interfaces/jwt-consts.ts +23 -0
  78. package/src/interfaces/jwt-sign-response.ts +19 -0
  79. package/src/interfaces/mongo-errors.ts +5 -0
  80. package/src/interfaces/request-user.ts +50 -0
  81. package/src/interfaces/required-string-keys.ts +26 -0
  82. package/src/interfaces/schema.ts +31 -0
  83. package/src/interfaces/server-init-result.ts +37 -0
  84. package/src/interfaces/status-code-response.ts +7 -0
  85. package/src/interfaces/symmetric-encryption-results.d.ts +5 -0
  86. package/src/interfaces/symmetric-encryption-results.d.ts.map +1 -0
  87. package/src/interfaces/symmetric-encryption-results.js.map +1 -0
  88. package/src/interfaces/symmetric-encryption-results.ts +4 -0
  89. package/{dist/interfaces/token-response.d.ts → src/interfaces/token-response.ts} +2 -2
  90. package/src/middlewares/authenticate-crypto.ts +243 -0
  91. package/src/middlewares/authenticate-token.ts +152 -0
  92. package/src/middlewares/cleanup-crypto.ts +40 -0
  93. package/{dist/middlewares/index.d.ts → src/middlewares/index.ts} +0 -1
  94. package/src/middlewares/set-global-context-language.ts +24 -0
  95. package/src/middlewares.ts +120 -0
  96. package/src/model-registry.ts +75 -0
  97. package/src/models/email-token.ts +19 -0
  98. package/{dist/models/index.d.ts → src/models/index.ts} +0 -1
  99. package/src/models/mnemonic.ts +19 -0
  100. package/src/models/role.ts +19 -0
  101. package/src/models/used-direct-login-token.ts +23 -0
  102. package/src/models/user-role.ts +17 -0
  103. package/src/models/user.ts +19 -0
  104. package/src/registry/email-service-registry.ts +24 -0
  105. package/{dist/registry/index.d.ts → src/registry/index.ts} +0 -1
  106. package/src/routers/api.ts +151 -0
  107. package/src/routers/app.ts +258 -0
  108. package/src/routers/base.ts +17 -0
  109. package/{dist/routers/index.d.ts → src/routers/index.ts} +0 -1
  110. package/src/schemas/email-token.ts +91 -0
  111. package/{dist/schemas/index.d.ts → src/schemas/index.ts} +1 -2
  112. package/src/schemas/mnemonic.ts +37 -0
  113. package/src/schemas/role.ts +127 -0
  114. package/src/schemas/schema.ts +140 -0
  115. package/src/schemas/used-direct-login-token.ts +38 -0
  116. package/src/schemas/user-role.ts +75 -0
  117. package/src/schemas/user.ts +202 -0
  118. package/src/services/backup-code.ts +316 -0
  119. package/src/services/base.ts +33 -0
  120. package/src/services/checksum.ts +161 -0
  121. package/src/services/crc.ts +213 -0
  122. package/src/services/database-initialization.ts +1479 -0
  123. package/src/services/db-init-cache.d.ts +16 -0
  124. package/src/services/direct-login-token.ts +62 -0
  125. package/src/services/fec-usage-example.ts +102 -0
  126. package/src/services/fec.ts +296 -0
  127. package/{dist/services/index.d.ts → src/services/index.ts} +0 -1
  128. package/src/services/jwt.ts +134 -0
  129. package/src/services/key-wrapping.ts +434 -0
  130. package/src/services/mnemonic.ts +167 -0
  131. package/src/services/request-user.ts +62 -0
  132. package/src/services/role.ts +396 -0
  133. package/src/services/symmetric.ts +139 -0
  134. package/src/services/system-user.ts +82 -0
  135. package/src/services/user.ts +2137 -0
  136. package/src/services/xor.ts +34 -0
  137. package/src/types.d.ts +44 -0
  138. package/src/types.ts +128 -0
  139. package/src/utils.ts +1022 -0
  140. package/dist/application-base.d.ts +0 -112
  141. package/dist/application-base.d.ts.map +0 -1
  142. package/dist/application-base.js +0 -301
  143. package/dist/application-base.js.map +0 -1
  144. package/dist/application.d.ts +0 -23
  145. package/dist/application.d.ts.map +0 -1
  146. package/dist/application.js +0 -126
  147. package/dist/application.js.map +0 -1
  148. package/dist/backup-code.d.ts +0 -67
  149. package/dist/backup-code.d.ts.map +0 -1
  150. package/dist/backup-code.js +0 -270
  151. package/dist/backup-code.js.map +0 -1
  152. package/dist/constants.d.ts +0 -16
  153. package/dist/constants.d.ts.map +0 -1
  154. package/dist/constants.js +0 -54
  155. package/dist/constants.js.map +0 -1
  156. package/dist/controllers/base.d.ts +0 -63
  157. package/dist/controllers/base.d.ts.map +0 -1
  158. package/dist/controllers/base.js +0 -269
  159. package/dist/controllers/base.js.map +0 -1
  160. package/dist/controllers/index.d.ts.map +0 -1
  161. package/dist/controllers/index.js +0 -19
  162. package/dist/controllers/index.js.map +0 -1
  163. package/dist/controllers/user.d.ts +0 -45
  164. package/dist/controllers/user.d.ts.map +0 -1
  165. package/dist/controllers/user.js +0 -750
  166. package/dist/controllers/user.js.map +0 -1
  167. package/dist/decorators/base-controller.d.ts +0 -14
  168. package/dist/decorators/base-controller.d.ts.map +0 -1
  169. package/dist/decorators/base-controller.js +0 -49
  170. package/dist/decorators/base-controller.js.map +0 -1
  171. package/dist/decorators/controller.d.ts +0 -32
  172. package/dist/decorators/controller.d.ts.map +0 -1
  173. package/dist/decorators/controller.js +0 -67
  174. package/dist/decorators/controller.js.map +0 -1
  175. package/dist/decorators/index.d.ts.map +0 -1
  176. package/dist/decorators/index.js +0 -20
  177. package/dist/decorators/index.js.map +0 -1
  178. package/dist/decorators/zod-validation.d.ts +0 -5
  179. package/dist/decorators/zod-validation.d.ts.map +0 -1
  180. package/dist/decorators/zod-validation.js +0 -47
  181. package/dist/decorators/zod-validation.js.map +0 -1
  182. package/dist/defaults.d.ts +0 -7
  183. package/dist/defaults.d.ts.map +0 -1
  184. package/dist/defaults.js +0 -83
  185. package/dist/defaults.js.map +0 -1
  186. package/dist/documents/base.d.ts +0 -3
  187. package/dist/documents/base.d.ts.map +0 -1
  188. package/dist/documents/base.js +0 -3
  189. package/dist/documents/base.js.map +0 -1
  190. package/dist/documents/email-token.d.ts +0 -8
  191. package/dist/documents/email-token.d.ts.map +0 -1
  192. package/dist/documents/email-token.js +0 -3
  193. package/dist/documents/email-token.js.map +0 -1
  194. package/dist/documents/index.d.ts.map +0 -1
  195. package/dist/documents/index.js +0 -3
  196. package/dist/documents/index.js.map +0 -1
  197. package/dist/documents/mnemonic.d.ts.map +0 -1
  198. package/dist/documents/mnemonic.js +0 -3
  199. package/dist/documents/mnemonic.js.map +0 -1
  200. package/dist/documents/role.d.ts.map +0 -1
  201. package/dist/documents/role.js +0 -3
  202. package/dist/documents/role.js.map +0 -1
  203. package/dist/documents/used-direct-login-token.d.ts +0 -5
  204. package/dist/documents/used-direct-login-token.d.ts.map +0 -1
  205. package/dist/documents/used-direct-login-token.js +0 -3
  206. package/dist/documents/used-direct-login-token.js.map +0 -1
  207. package/dist/documents/user-role.d.ts.map +0 -1
  208. package/dist/documents/user-role.js +0 -3
  209. package/dist/documents/user-role.js.map +0 -1
  210. package/dist/documents/user.d.ts.map +0 -1
  211. package/dist/documents/user.js +0 -3
  212. package/dist/documents/user.js.map +0 -1
  213. package/dist/enumerations/base-model-name.d.ts +0 -38
  214. package/dist/enumerations/base-model-name.d.ts.map +0 -1
  215. package/dist/enumerations/base-model-name.js +0 -34
  216. package/dist/enumerations/base-model-name.js.map +0 -1
  217. package/dist/enumerations/index.d.ts.map +0 -1
  218. package/dist/enumerations/index.js +0 -21
  219. package/dist/enumerations/index.js.map +0 -1
  220. package/dist/enumerations/length-encoding-type.d.ts +0 -7
  221. package/dist/enumerations/length-encoding-type.d.ts.map +0 -1
  222. package/dist/enumerations/length-encoding-type.js +0 -11
  223. package/dist/enumerations/length-encoding-type.js.map +0 -1
  224. package/dist/enumerations/schema-collection.d.ts +0 -34
  225. package/dist/enumerations/schema-collection.d.ts.map +0 -1
  226. package/dist/enumerations/schema-collection.js +0 -38
  227. package/dist/enumerations/schema-collection.js.map +0 -1
  228. package/dist/enumerations/symmetric-error-type.d.ts +0 -5
  229. package/dist/enumerations/symmetric-error-type.d.ts.map +0 -1
  230. package/dist/enumerations/symmetric-error-type.js +0 -9
  231. package/dist/enumerations/symmetric-error-type.js.map +0 -1
  232. package/dist/environment.d.ts +0 -189
  233. package/dist/environment.d.ts.map +0 -1
  234. package/dist/environment.js +0 -618
  235. package/dist/environment.js.map +0 -1
  236. package/dist/errors/express-validation.d.ts +0 -9
  237. package/dist/errors/express-validation.d.ts.map +0 -1
  238. package/dist/errors/express-validation.js +0 -17
  239. package/dist/errors/express-validation.js.map +0 -1
  240. package/dist/errors/index.d.ts.map +0 -1
  241. package/dist/errors/index.js +0 -29
  242. package/dist/errors/index.js.map +0 -1
  243. package/dist/errors/invalid-backup-code-version.d.ts +0 -6
  244. package/dist/errors/invalid-backup-code-version.d.ts.map +0 -1
  245. package/dist/errors/invalid-backup-code-version.js +0 -14
  246. package/dist/errors/invalid-backup-code-version.js.map +0 -1
  247. package/dist/errors/invalid-jwt-token.d.ts +0 -5
  248. package/dist/errors/invalid-jwt-token.d.ts.map +0 -1
  249. package/dist/errors/invalid-jwt-token.js +0 -11
  250. package/dist/errors/invalid-jwt-token.js.map +0 -1
  251. package/dist/errors/invalid-model.d.ts +0 -6
  252. package/dist/errors/invalid-model.d.ts.map +0 -1
  253. package/dist/errors/invalid-model.js +0 -13
  254. package/dist/errors/invalid-model.js.map +0 -1
  255. package/dist/errors/invalid-new-password.d.ts +0 -5
  256. package/dist/errors/invalid-new-password.d.ts.map +0 -1
  257. package/dist/errors/invalid-new-password.js +0 -14
  258. package/dist/errors/invalid-new-password.js.map +0 -1
  259. package/dist/errors/invalid-password.d.ts +0 -5
  260. package/dist/errors/invalid-password.d.ts.map +0 -1
  261. package/dist/errors/invalid-password.js +0 -14
  262. package/dist/errors/invalid-password.js.map +0 -1
  263. package/dist/errors/missing-validated-data.d.ts +0 -7
  264. package/dist/errors/missing-validated-data.d.ts.map +0 -1
  265. package/dist/errors/missing-validated-data.js +0 -34
  266. package/dist/errors/missing-validated-data.js.map +0 -1
  267. package/dist/errors/mnemonic-or-password-required.d.ts +0 -5
  268. package/dist/errors/mnemonic-or-password-required.d.ts.map +0 -1
  269. package/dist/errors/mnemonic-or-password-required.js +0 -13
  270. package/dist/errors/mnemonic-or-password-required.js.map +0 -1
  271. package/dist/errors/model-not-registered.d.ts +0 -5
  272. package/dist/errors/model-not-registered.d.ts.map +0 -1
  273. package/dist/errors/model-not-registered.js +0 -12
  274. package/dist/errors/model-not-registered.js.map +0 -1
  275. package/dist/errors/mongoose-validation.d.ts +0 -11
  276. package/dist/errors/mongoose-validation.d.ts.map +0 -1
  277. package/dist/errors/mongoose-validation.js +0 -16
  278. package/dist/errors/mongoose-validation.js.map +0 -1
  279. package/dist/errors/symmetric.d.ts +0 -8
  280. package/dist/errors/symmetric.d.ts.map +0 -1
  281. package/dist/errors/symmetric.js +0 -23
  282. package/dist/errors/symmetric.js.map +0 -1
  283. package/dist/errors/token-expired.d.ts +0 -5
  284. package/dist/errors/token-expired.d.ts.map +0 -1
  285. package/dist/errors/token-expired.js +0 -11
  286. package/dist/errors/token-expired.js.map +0 -1
  287. package/dist/get-language.d.ts +0 -2
  288. package/dist/get-language.d.ts.map +0 -1
  289. package/dist/get-language.js +0 -30
  290. package/dist/get-language.js.map +0 -1
  291. package/dist/get-timezone.d.ts +0 -3
  292. package/dist/get-timezone.d.ts.map +0 -1
  293. package/dist/get-timezone.js +0 -31
  294. package/dist/get-timezone.js.map +0 -1
  295. package/dist/index.d.ts.map +0 -1
  296. package/dist/index.js +0 -40
  297. package/dist/index.js.map +0 -1
  298. package/dist/interfaces/api-error-response.d.ts.map +0 -1
  299. package/dist/interfaces/api-error-response.js +0 -3
  300. package/dist/interfaces/api-error-response.js.map +0 -1
  301. package/dist/interfaces/api-express-validation-error-response.d.ts +0 -7
  302. package/dist/interfaces/api-express-validation-error-response.d.ts.map +0 -1
  303. package/dist/interfaces/api-express-validation-error-response.js +0 -3
  304. package/dist/interfaces/api-express-validation-error-response.js.map +0 -1
  305. package/dist/interfaces/api-message-response.d.ts +0 -4
  306. package/dist/interfaces/api-message-response.d.ts.map +0 -1
  307. package/dist/interfaces/api-message-response.js +0 -3
  308. package/dist/interfaces/api-message-response.js.map +0 -1
  309. package/dist/interfaces/api-mongo-validation-error-response.d.ts.map +0 -1
  310. package/dist/interfaces/api-mongo-validation-error-response.js +0 -3
  311. package/dist/interfaces/api-mongo-validation-error-response.js.map +0 -1
  312. package/dist/interfaces/api-responses/backup-codes-response.d.ts.map +0 -1
  313. package/dist/interfaces/api-responses/backup-codes-response.js +0 -3
  314. package/dist/interfaces/api-responses/backup-codes-response.js.map +0 -1
  315. package/dist/interfaces/api-responses/challenge-response.d.ts.map +0 -1
  316. package/dist/interfaces/api-responses/challenge-response.js +0 -3
  317. package/dist/interfaces/api-responses/challenge-response.js.map +0 -1
  318. package/dist/interfaces/api-responses/code-count-response.d.ts.map +0 -1
  319. package/dist/interfaces/api-responses/code-count-response.js +0 -3
  320. package/dist/interfaces/api-responses/code-count-response.js.map +0 -1
  321. package/dist/interfaces/api-responses/index.d.ts.map +0 -1
  322. package/dist/interfaces/api-responses/index.js +0 -24
  323. package/dist/interfaces/api-responses/index.js.map +0 -1
  324. package/dist/interfaces/api-responses/login-response.d.ts.map +0 -1
  325. package/dist/interfaces/api-responses/login-response.js +0 -3
  326. package/dist/interfaces/api-responses/login-response.js.map +0 -1
  327. package/dist/interfaces/api-responses/mnemonic-response.d.ts.map +0 -1
  328. package/dist/interfaces/api-responses/mnemonic-response.js +0 -3
  329. package/dist/interfaces/api-responses/mnemonic-response.js.map +0 -1
  330. package/dist/interfaces/api-responses/registration-response.d.ts.map +0 -1
  331. package/dist/interfaces/api-responses/registration-response.js +0 -3
  332. package/dist/interfaces/api-responses/registration-response.js.map +0 -1
  333. package/dist/interfaces/api-responses/request-user-response.d.ts.map +0 -1
  334. package/dist/interfaces/api-responses/request-user-response.js +0 -3
  335. package/dist/interfaces/api-responses/request-user-response.js.map +0 -1
  336. package/dist/interfaces/application.d.ts.map +0 -1
  337. package/dist/interfaces/application.js +0 -3
  338. package/dist/interfaces/application.js.map +0 -1
  339. package/dist/interfaces/backend-objects/email-token.d.ts +0 -4
  340. package/dist/interfaces/backend-objects/email-token.d.ts.map +0 -1
  341. package/dist/interfaces/backend-objects/email-token.js +0 -3
  342. package/dist/interfaces/backend-objects/email-token.js.map +0 -1
  343. package/dist/interfaces/backend-objects/index.d.ts.map +0 -1
  344. package/dist/interfaces/backend-objects/index.js +0 -21
  345. package/dist/interfaces/backend-objects/index.js.map +0 -1
  346. package/dist/interfaces/backend-objects/request-user.d.ts.map +0 -1
  347. package/dist/interfaces/backend-objects/request-user.js +0 -3
  348. package/dist/interfaces/backend-objects/request-user.js.map +0 -1
  349. package/dist/interfaces/backend-objects/role.d.ts.map +0 -1
  350. package/dist/interfaces/backend-objects/role.js +0 -3
  351. package/dist/interfaces/backend-objects/role.js.map +0 -1
  352. package/dist/interfaces/backend-objects/user.d.ts +0 -4
  353. package/dist/interfaces/backend-objects/user.d.ts.map +0 -1
  354. package/dist/interfaces/backend-objects/user.js +0 -3
  355. package/dist/interfaces/backend-objects/user.js.map +0 -1
  356. package/dist/interfaces/checksum-config.d.ts +0 -5
  357. package/dist/interfaces/checksum-config.d.ts.map +0 -1
  358. package/dist/interfaces/checksum-config.js +0 -3
  359. package/dist/interfaces/checksum-config.js.map +0 -1
  360. package/dist/interfaces/checksum-consts.d.ts +0 -11
  361. package/dist/interfaces/checksum-consts.d.ts.map +0 -1
  362. package/dist/interfaces/checksum-consts.js +0 -3
  363. package/dist/interfaces/checksum-consts.js.map +0 -1
  364. package/dist/interfaces/constants.d.ts.map +0 -1
  365. package/dist/interfaces/constants.js +0 -3
  366. package/dist/interfaces/constants.js.map +0 -1
  367. package/dist/interfaces/create-user-basics.d.ts +0 -18
  368. package/dist/interfaces/create-user-basics.d.ts.map +0 -1
  369. package/dist/interfaces/create-user-basics.js +0 -3
  370. package/dist/interfaces/create-user-basics.js.map +0 -1
  371. package/dist/interfaces/csp-config.d.ts +0 -14
  372. package/dist/interfaces/csp-config.d.ts.map +0 -1
  373. package/dist/interfaces/csp-config.js +0 -3
  374. package/dist/interfaces/csp-config.js.map +0 -1
  375. package/dist/interfaces/deep-partial.d.ts +0 -4
  376. package/dist/interfaces/deep-partial.d.ts.map +0 -1
  377. package/dist/interfaces/deep-partial.js +0 -3
  378. package/dist/interfaces/deep-partial.js.map +0 -1
  379. package/dist/interfaces/discriminator-collections.d.ts.map +0 -1
  380. package/dist/interfaces/discriminator-collections.js +0 -3
  381. package/dist/interfaces/discriminator-collections.js.map +0 -1
  382. package/dist/interfaces/email-service.d.ts +0 -4
  383. package/dist/interfaces/email-service.d.ts.map +0 -1
  384. package/dist/interfaces/email-service.js +0 -3
  385. package/dist/interfaces/email-service.js.map +0 -1
  386. package/dist/interfaces/environment-mongo.d.ts +0 -76
  387. package/dist/interfaces/environment-mongo.d.ts.map +0 -1
  388. package/dist/interfaces/environment-mongo.js +0 -3
  389. package/dist/interfaces/environment-mongo.js.map +0 -1
  390. package/dist/interfaces/environment.d.ts +0 -181
  391. package/dist/interfaces/environment.d.ts.map +0 -1
  392. package/dist/interfaces/environment.js +0 -3
  393. package/dist/interfaces/environment.js.map +0 -1
  394. package/dist/interfaces/failable-result.d.ts +0 -7
  395. package/dist/interfaces/failable-result.d.ts.map +0 -1
  396. package/dist/interfaces/failable-result.js +0 -3
  397. package/dist/interfaces/failable-result.js.map +0 -1
  398. package/dist/interfaces/fec-consts.d.ts +0 -5
  399. package/dist/interfaces/fec-consts.d.ts.map +0 -1
  400. package/dist/interfaces/fec-consts.js +0 -3
  401. package/dist/interfaces/fec-consts.js.map +0 -1
  402. package/dist/interfaces/handleable-error-options.d.ts +0 -7
  403. package/dist/interfaces/handleable-error-options.d.ts.map +0 -1
  404. package/dist/interfaces/handleable-error-options.js +0 -3
  405. package/dist/interfaces/handleable-error-options.js.map +0 -1
  406. package/dist/interfaces/index.d.ts.map +0 -1
  407. package/dist/interfaces/index.js +0 -46
  408. package/dist/interfaces/index.js.map +0 -1
  409. package/dist/interfaces/jwt-consts.d.ts +0 -11
  410. package/dist/interfaces/jwt-consts.d.ts.map +0 -1
  411. package/dist/interfaces/jwt-consts.js +0 -3
  412. package/dist/interfaces/jwt-consts.js.map +0 -1
  413. package/dist/interfaces/jwt-sign-response.d.ts +0 -11
  414. package/dist/interfaces/jwt-sign-response.d.ts.map +0 -1
  415. package/dist/interfaces/jwt-sign-response.js +0 -3
  416. package/dist/interfaces/jwt-sign-response.js.map +0 -1
  417. package/dist/interfaces/mongo-errors.d.ts +0 -5
  418. package/dist/interfaces/mongo-errors.d.ts.map +0 -1
  419. package/dist/interfaces/mongo-errors.js +0 -3
  420. package/dist/interfaces/mongo-errors.js.map +0 -1
  421. package/dist/interfaces/request-user.d.ts +0 -42
  422. package/dist/interfaces/request-user.d.ts.map +0 -1
  423. package/dist/interfaces/request-user.js +0 -3
  424. package/dist/interfaces/request-user.js.map +0 -1
  425. package/dist/interfaces/required-string-keys.d.ts +0 -22
  426. package/dist/interfaces/required-string-keys.d.ts.map +0 -1
  427. package/dist/interfaces/required-string-keys.js +0 -3
  428. package/dist/interfaces/required-string-keys.js.map +0 -1
  429. package/dist/interfaces/schema.d.ts +0 -29
  430. package/dist/interfaces/schema.d.ts.map +0 -1
  431. package/dist/interfaces/schema.js +0 -3
  432. package/dist/interfaces/schema.js.map +0 -1
  433. package/dist/interfaces/server-init-result.d.ts +0 -35
  434. package/dist/interfaces/server-init-result.d.ts.map +0 -1
  435. package/dist/interfaces/server-init-result.js +0 -3
  436. package/dist/interfaces/server-init-result.js.map +0 -1
  437. package/dist/interfaces/status-code-response.d.ts +0 -7
  438. package/dist/interfaces/status-code-response.d.ts.map +0 -1
  439. package/dist/interfaces/status-code-response.js +0 -3
  440. package/dist/interfaces/status-code-response.js.map +0 -1
  441. package/dist/interfaces/symmetric-encryption-results.d.ts +0 -5
  442. package/dist/interfaces/symmetric-encryption-results.d.ts.map +0 -1
  443. package/dist/interfaces/symmetric-encryption-results.js.map +0 -1
  444. package/dist/interfaces/token-response.d.ts.map +0 -1
  445. package/dist/interfaces/token-response.js +0 -3
  446. package/dist/interfaces/token-response.js.map +0 -1
  447. package/dist/middlewares/authenticate-crypto.d.ts +0 -13
  448. package/dist/middlewares/authenticate-crypto.d.ts.map +0 -1
  449. package/dist/middlewares/authenticate-crypto.js +0 -146
  450. package/dist/middlewares/authenticate-crypto.js.map +0 -1
  451. package/dist/middlewares/authenticate-token.d.ts +0 -24
  452. package/dist/middlewares/authenticate-token.d.ts.map +0 -1
  453. package/dist/middlewares/authenticate-token.js +0 -102
  454. package/dist/middlewares/authenticate-token.js.map +0 -1
  455. package/dist/middlewares/cleanup-crypto.d.ts +0 -7
  456. package/dist/middlewares/cleanup-crypto.d.ts.map +0 -1
  457. package/dist/middlewares/cleanup-crypto.js +0 -32
  458. package/dist/middlewares/cleanup-crypto.js.map +0 -1
  459. package/dist/middlewares/index.d.ts.map +0 -1
  460. package/dist/middlewares/index.js +0 -21
  461. package/dist/middlewares/index.js.map +0 -1
  462. package/dist/middlewares/set-global-context-language.d.ts +0 -3
  463. package/dist/middlewares/set-global-context-language.d.ts.map +0 -1
  464. package/dist/middlewares/set-global-context-language.js +0 -14
  465. package/dist/middlewares/set-global-context-language.js.map +0 -1
  466. package/dist/middlewares.d.ts +0 -18
  467. package/dist/middlewares.d.ts.map +0 -1
  468. package/dist/middlewares.js +0 -76
  469. package/dist/middlewares.js.map +0 -1
  470. package/dist/model-registry.d.ts +0 -23
  471. package/dist/model-registry.d.ts.map +0 -1
  472. package/dist/model-registry.js +0 -47
  473. package/dist/model-registry.js.map +0 -1
  474. package/dist/models/email-token.d.ts +0 -11
  475. package/dist/models/email-token.d.ts.map +0 -1
  476. package/dist/models/email-token.js +0 -11
  477. package/dist/models/email-token.js.map +0 -1
  478. package/dist/models/index.d.ts.map +0 -1
  479. package/dist/models/index.js +0 -23
  480. package/dist/models/index.js.map +0 -1
  481. package/dist/models/mnemonic.d.ts +0 -11
  482. package/dist/models/mnemonic.d.ts.map +0 -1
  483. package/dist/models/mnemonic.js +0 -11
  484. package/dist/models/mnemonic.js.map +0 -1
  485. package/dist/models/role.d.ts +0 -11
  486. package/dist/models/role.d.ts.map +0 -1
  487. package/dist/models/role.js +0 -11
  488. package/dist/models/role.js.map +0 -1
  489. package/dist/models/used-direct-login-token.d.ts +0 -11
  490. package/dist/models/used-direct-login-token.d.ts.map +0 -1
  491. package/dist/models/used-direct-login-token.js +0 -11
  492. package/dist/models/used-direct-login-token.js.map +0 -1
  493. package/dist/models/user-role.d.ts +0 -6
  494. package/dist/models/user-role.d.ts.map +0 -1
  495. package/dist/models/user-role.js +0 -10
  496. package/dist/models/user-role.js.map +0 -1
  497. package/dist/models/user.d.ts +0 -7
  498. package/dist/models/user.d.ts.map +0 -1
  499. package/dist/models/user.js +0 -11
  500. package/dist/models/user.js.map +0 -1
  501. package/dist/registry/email-service-registry.d.ts +0 -9
  502. package/dist/registry/email-service-registry.d.ts.map +0 -1
  503. package/dist/registry/email-service-registry.js +0 -17
  504. package/dist/registry/email-service-registry.js.map +0 -1
  505. package/dist/registry/index.d.ts.map +0 -1
  506. package/dist/registry/index.js +0 -6
  507. package/dist/registry/index.js.map +0 -1
  508. package/dist/routers/api.d.ts +0 -27
  509. package/dist/routers/api.d.ts.map +0 -1
  510. package/dist/routers/api.js +0 -44
  511. package/dist/routers/api.js.map +0 -1
  512. package/dist/routers/app.d.ts +0 -28
  513. package/dist/routers/app.d.ts.map +0 -1
  514. package/dist/routers/app.js +0 -182
  515. package/dist/routers/app.js.map +0 -1
  516. package/dist/routers/base.d.ts +0 -12
  517. package/dist/routers/base.d.ts.map +0 -1
  518. package/dist/routers/base.js +0 -12
  519. package/dist/routers/base.js.map +0 -1
  520. package/dist/routers/index.d.ts.map +0 -1
  521. package/dist/routers/index.js +0 -20
  522. package/dist/routers/index.js.map +0 -1
  523. package/dist/schemas/email-token.d.ts +0 -38
  524. package/dist/schemas/email-token.d.ts.map +0 -1
  525. package/dist/schemas/email-token.js +0 -56
  526. package/dist/schemas/email-token.js.map +0 -1
  527. package/dist/schemas/index.d.ts.map +0 -1
  528. package/dist/schemas/index.js +0 -24
  529. package/dist/schemas/index.js.map +0 -1
  530. package/dist/schemas/mnemonic.d.ts +0 -20
  531. package/dist/schemas/mnemonic.d.ts.map +0 -1
  532. package/dist/schemas/mnemonic.js +0 -30
  533. package/dist/schemas/mnemonic.js.map +0 -1
  534. package/dist/schemas/role.d.ts +0 -32
  535. package/dist/schemas/role.d.ts.map +0 -1
  536. package/dist/schemas/role.js +0 -86
  537. package/dist/schemas/role.js.map +0 -1
  538. package/dist/schemas/schema.d.ts +0 -40
  539. package/dist/schemas/schema.d.ts.map +0 -1
  540. package/dist/schemas/schema.js +0 -64
  541. package/dist/schemas/schema.js.map +0 -1
  542. package/dist/schemas/used-direct-login-token.d.ts +0 -27
  543. package/dist/schemas/used-direct-login-token.d.ts.map +0 -1
  544. package/dist/schemas/used-direct-login-token.js +0 -23
  545. package/dist/schemas/used-direct-login-token.js.map +0 -1
  546. package/dist/schemas/user-role.d.ts +0 -29
  547. package/dist/schemas/user-role.d.ts.map +0 -1
  548. package/dist/schemas/user-role.js +0 -54
  549. package/dist/schemas/user-role.js.map +0 -1
  550. package/dist/schemas/user.d.ts +0 -21
  551. package/dist/schemas/user.d.ts.map +0 -1
  552. package/dist/schemas/user.js +0 -178
  553. package/dist/schemas/user.js.map +0 -1
  554. package/dist/services/backup-code.d.ts +0 -78
  555. package/dist/services/backup-code.d.ts.map +0 -1
  556. package/dist/services/backup-code.js +0 -180
  557. package/dist/services/backup-code.js.map +0 -1
  558. package/dist/services/base.d.ts +0 -13
  559. package/dist/services/base.d.ts.map +0 -1
  560. package/dist/services/base.js +0 -14
  561. package/dist/services/base.js.map +0 -1
  562. package/dist/services/checksum.d.ts +0 -67
  563. package/dist/services/checksum.d.ts.map +0 -1
  564. package/dist/services/checksum.js +0 -175
  565. package/dist/services/checksum.js.map +0 -1
  566. package/dist/services/crc.d.ts +0 -87
  567. package/dist/services/crc.d.ts.map +0 -1
  568. package/dist/services/crc.js +0 -198
  569. package/dist/services/crc.js.map +0 -1
  570. package/dist/services/database-initialization.d.ts +0 -105
  571. package/dist/services/database-initialization.d.ts.map +0 -1
  572. package/dist/services/database-initialization.js +0 -779
  573. package/dist/services/database-initialization.js.map +0 -1
  574. package/dist/services/direct-login-token.d.ts +0 -9
  575. package/dist/services/direct-login-token.d.ts.map +0 -1
  576. package/dist/services/direct-login-token.js +0 -41
  577. package/dist/services/direct-login-token.js.map +0 -1
  578. package/dist/services/fec-usage-example.d.ts +0 -38
  579. package/dist/services/fec-usage-example.d.ts.map +0 -1
  580. package/dist/services/fec-usage-example.js +0 -77
  581. package/dist/services/fec-usage-example.js.map +0 -1
  582. package/dist/services/fec.d.ts +0 -46
  583. package/dist/services/fec.d.ts.map +0 -1
  584. package/dist/services/fec.js +0 -192
  585. package/dist/services/fec.js.map +0 -1
  586. package/dist/services/index.d.ts.map +0 -1
  587. package/dist/services/index.js +0 -35
  588. package/dist/services/index.js.map +0 -1
  589. package/dist/services/jwt.d.ts +0 -33
  590. package/dist/services/jwt.d.ts.map +0 -1
  591. package/dist/services/jwt.js +0 -90
  592. package/dist/services/jwt.js.map +0 -1
  593. package/dist/services/key-wrapping.d.ts +0 -60
  594. package/dist/services/key-wrapping.d.ts.map +0 -1
  595. package/dist/services/key-wrapping.js +0 -311
  596. package/dist/services/key-wrapping.js.map +0 -1
  597. package/dist/services/mnemonic.d.ts +0 -61
  598. package/dist/services/mnemonic.d.ts.map +0 -1
  599. package/dist/services/mnemonic.js +0 -112
  600. package/dist/services/mnemonic.js.map +0 -1
  601. package/dist/services/request-user.d.ts +0 -20
  602. package/dist/services/request-user.d.ts.map +0 -1
  603. package/dist/services/request-user.js +0 -50
  604. package/dist/services/request-user.js.map +0 -1
  605. package/dist/services/role.d.ts +0 -88
  606. package/dist/services/role.d.ts.map +0 -1
  607. package/dist/services/role.js +0 -263
  608. package/dist/services/role.js.map +0 -1
  609. package/dist/services/symmetric.d.ts +0 -42
  610. package/dist/services/symmetric.d.ts.map +0 -1
  611. package/dist/services/symmetric.js +0 -101
  612. package/dist/services/symmetric.js.map +0 -1
  613. package/dist/services/system-user.d.ts +0 -17
  614. package/dist/services/system-user.d.ts.map +0 -1
  615. package/dist/services/system-user.js +0 -46
  616. package/dist/services/system-user.js.map +0 -1
  617. package/dist/services/user.d.ts +0 -320
  618. package/dist/services/user.d.ts.map +0 -1
  619. package/dist/services/user.js +0 -1373
  620. package/dist/services/user.js.map +0 -1
  621. package/dist/services/xor.d.ts +0 -24
  622. package/dist/services/xor.d.ts.map +0 -1
  623. package/dist/services/xor.js +0 -37
  624. package/dist/services/xor.js.map +0 -1
  625. package/dist/types.d.ts +0 -70
  626. package/dist/types.d.ts.map +0 -1
  627. package/dist/types.js +0 -14
  628. package/dist/types.js.map +0 -1
  629. package/dist/utils.d.ts +0 -202
  630. package/dist/utils.d.ts.map +0 -1
  631. package/dist/utils.js +0 -786
  632. package/dist/utils.js.map +0 -1
  633. /package/{dist → src}/interfaces/symmetric-encryption-results.js +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"authenticate-crypto.d.ts","sourceRoot":"","sources":["../../src/middlewares/authenticate-crypto.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,aAAa,EAId,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAiB,KAAK,EAAE,MAAM,UAAU,CAAC;AAIhD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAOzD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,cAAc,SAAS,MAAM,GAAG,aAAa,EAE7C,WAAW,EAAE,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,EAAE,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,WAAW,EAAE,UAAU,CAAC,EAC3G,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,YAAY,EAClB,iBAAiB,GAAE,cAAuD,GACzE,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CA2M1B"}
@@ -1,146 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.authenticateCrypto = authenticateCrypto;
4
- const ecies_lib_1 = require("@digitaldefiance/ecies-lib");
5
- const node_ecies_lib_1 = require("@digitaldefiance/node-ecies-lib");
6
- const suite_core_lib_1 = require("@digitaldefiance/suite-core-lib");
7
- const enumerations_1 = require("../enumerations");
8
- const errors_1 = require("../errors");
9
- const registry_1 = require("../registry");
10
- const backup_code_1 = require("../services/backup-code");
11
- const key_wrapping_1 = require("../services/key-wrapping");
12
- const role_1 = require("../services/role");
13
- const user_1 = require("../services/user");
14
- const utils_1 = require("../utils");
15
- /**
16
- * Middleware to authenticate crypto operations requiring private key access
17
- * Expects mnemonic or password in request body for fresh authentication
18
- */
19
- async function authenticateCrypto(application, req, res, next, activeStatusValue = suite_core_lib_1.AccountStatus.Active) {
20
- if (!req.user) {
21
- return res
22
- .status(401)
23
- .send(
24
- // amazonq-ignore-next-line false positive, hardcoded string
25
- (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Validation_InvalidToken));
26
- }
27
- // Try validatedBody first (if validation has run), then fall back to raw body
28
- // Note: This middleware runs BEFORE validation, so validatedBody may not exist yet
29
- const validatedBody = req
30
- .validatedBody;
31
- const rawBody = req.body;
32
- const sourceBody = validatedBody ?? rawBody;
33
- if (!sourceBody) {
34
- return res.status(400).send({
35
- // amazonq-ignore-next-line false positive, hardcoded string
36
- message: (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Validation_MnemonicOrPasswordRequired),
37
- });
38
- }
39
- const mnemonic = typeof sourceBody['mnemonic'] === 'string'
40
- ? sourceBody['mnemonic']
41
- : undefined;
42
- const password =
43
- // amazonq-ignore-next-line false positive
44
- typeof sourceBody['password'] === 'string'
45
- ? sourceBody['password']
46
- : undefined;
47
- if (!mnemonic && !password) {
48
- return res.status(400).send({
49
- // amazonq-ignore-next-line false positive, hardcoded string
50
- message: (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Validation_MnemonicOrPasswordRequired),
51
- });
52
- }
53
- const UserModel = application.getModel(enumerations_1.BaseModelName.User);
54
- const config = {
55
- curveName: application.constants.ECIES.CURVE_NAME,
56
- primaryKeyDerivationPath: application.constants.ECIES.PRIMARY_KEY_DERIVATION_PATH,
57
- mnemonicStrength: application.constants.ECIES.MNEMONIC_STRENGTH,
58
- symmetricAlgorithm: application.constants.ECIES.SYMMETRIC_ALGORITHM_CONFIGURATION,
59
- symmetricKeyBits: application.constants.ECIES.SYMMETRIC.KEY_BITS,
60
- symmetricKeyMode: application.constants.ECIES.SYMMETRIC.MODE,
61
- };
62
- const keyWrappingService = new key_wrapping_1.KeyWrappingService();
63
- const roleService = new role_1.RoleService(application);
64
- const userService = new user_1.UserService(application, roleService, registry_1.emailServiceRegistry.getService(), keyWrappingService, new backup_code_1.BackupCodeService(application, new node_ecies_lib_1.ECIESService(config), keyWrappingService, roleService));
65
- try {
66
- return await (0, utils_1.withTransaction)(application.db.connection, application.environment.mongo.useTransactions, undefined, async (sess) => {
67
- const userDoc = await UserModel.findById(req.user.id)
68
- .session(sess ?? null)
69
- .exec();
70
- if (!userDoc || userDoc.accountStatus !== activeStatusValue) {
71
- return (res
72
- .status(403)
73
- .send(
74
- // amazonq-ignore-next-line false positive, hardcoded string
75
- (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Validation_UserNotFound)));
76
- }
77
- // Ensure we're only authenticating the currently logged-in user
78
- if (userDoc._id.toString() !== req.user.id) {
79
- return (res
80
- .status(403)
81
- .send(
82
- // amazonq-ignore-next-line false positive, hardcoded string
83
- (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Validation_InvalidCredentials)));
84
- }
85
- let loginResult;
86
- if (mnemonic) {
87
- // Authenticate with mnemonic
88
- const userMnemonic = new ecies_lib_1.SecureString(mnemonic);
89
- try {
90
- loginResult = await userService.loginWithMnemonic(userDoc.email, userMnemonic, sess);
91
- }
92
- finally {
93
- userMnemonic.dispose();
94
- }
95
- }
96
- else if (password) {
97
- // Authenticate with password
98
- loginResult = await userService.loginWithPassword(userDoc.email, password, sess);
99
- }
100
- else {
101
- // Should not happen due to earlier guard; keeps TypeScript happy
102
- return res.status(400).send({
103
- // amazonq-ignore-next-line false positive, hardcoded string
104
- message: (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Validation_MnemonicOrPasswordRequired),
105
- });
106
- }
107
- // Double-check authenticated user matches logged-in user
108
- if (loginResult.userDoc._id.toString() !== req.user.id) {
109
- return (res
110
- .status(403)
111
- .send(
112
- // amazonq-ignore-next-line false positive, hardcoded string
113
- (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Validation_InvalidCredentials)));
114
- }
115
- // Attach the fully authenticated member (with private key) to the request
116
- req.eciesUser = loginResult.userMember;
117
- // Do not attach the admin user to the request; it's a process-wide singleton
118
- // and must not be disposed as part of request cleanup.
119
- next();
120
- return;
121
- }, {
122
- timeoutMs: application.environment.mongo.transactionTimeout,
123
- });
124
- }
125
- catch (err) {
126
- if (err instanceof suite_core_lib_1.InvalidCredentialsError ||
127
- err instanceof errors_1.InvalidPasswordError) {
128
- // amazonq-ignore-next-line false positive
129
- console.error('Crypto authentication failed:', `userId=${String(req.user?.id || 'unknown').replace(/[\r\n]/g, '')} hasPassword=${!!password} hasMnemonic=${!!mnemonic}`);
130
- return res.status(401).send({
131
- // amazonq-ignore-next-line false positive, hardcoded string
132
- message: (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Validation_InvalidCredentials),
133
- });
134
- }
135
- const sanitizedErr = err instanceof Error
136
- ? err.message.replace(/[\r\n]/g, ' ')
137
- : String(err).replace(/[\r\n]/g, ' ');
138
- console.error('Unexpected error in authenticateCrypto:', sanitizedErr);
139
- return res.status(500).send({
140
- // amazonq-ignore-next-line false positive, hardcoded string
141
- message: (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Common_UnexpectedError),
142
- error: err,
143
- });
144
- }
145
- }
146
- //# sourceMappingURL=authenticate-crypto.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"authenticate-crypto.js","sourceRoot":"","sources":["../../src/middlewares/authenticate-crypto.ts"],"names":[],"mappings":"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"}
@@ -1,24 +0,0 @@
1
- import { ITokenRole, ITokenUser } from '@digitaldefiance/suite-core-lib';
2
- import { NextFunction, Request, Response } from 'express';
3
- import { IncomingHttpHeaders } from 'http';
4
- import { Types } from 'mongoose';
5
- import { IApplication } from '../interfaces/application';
6
- import { IBaseDocument } from '../documents';
7
- import { Environment } from '../environment';
8
- import { IConstants } from '../interfaces';
9
- /**
10
- * Find the auth token in the headers
11
- * @param headers The headers
12
- * @returns The auth token
13
- */
14
- export declare function findAuthToken(headers: IncomingHttpHeaders): string | null;
15
- /**
16
- * Middleware to authenticate a token
17
- * @param application The application
18
- * @param req The request
19
- * @param res The response
20
- * @param next The next function
21
- * @returns The response
22
- */
23
- export declare function authenticateToken<I = Types.ObjectId, D extends Date = Date, TTokenRole extends ITokenRole<I, D> = ITokenRole<I, D>, TTokenUser extends ITokenUser = ITokenUser, TApplication extends IApplication<any, Types.ObjectId, IBaseDocument<any, Types.ObjectId>, Environment, IConstants> = IApplication<any, Types.ObjectId, IBaseDocument<any, Types.ObjectId>, Environment, IConstants>>(application: TApplication, req: Request, res: Response, next: NextFunction): Promise<Response>;
24
- //# sourceMappingURL=authenticate-token.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"authenticate-token.d.ts","sourceRoot":"","sources":["../../src/middlewares/authenticate-token.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,UAAU,EACV,UAAU,EAEX,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAC;AAC3C,OAAO,EAAiB,KAAK,EAAE,MAAM,UAAU,CAAC;AAIhD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAKzD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,GAAG,IAAI,CASzE;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,CAAC,GAAG,KAAK,CAAC,QAAQ,EAClB,CAAC,SAAS,IAAI,GAAG,IAAI,EACrB,UAAU,SAAS,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,EACtD,UAAU,SAAS,UAAU,GAAG,UAAU,EAC1C,YAAY,SAAS,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,EAAE,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,WAAW,EAAE,UAAU,CAAC,GAAG,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,EAAE,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,WAAW,EAAE,UAAU,CAAC,EAEpN,WAAW,EAAE,YAAY,EACzB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,QAAQ,CAAC,CA6FnB"}
@@ -1,102 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.findAuthToken = findAuthToken;
4
- exports.authenticateToken = authenticateToken;
5
- const i18n_lib_1 = require("@digitaldefiance/i18n-lib");
6
- const suite_core_lib_1 = require("@digitaldefiance/suite-core-lib");
7
- const base_model_name_1 = require("../enumerations/base-model-name");
8
- const token_expired_1 = require("../errors/token-expired");
9
- const jwt_1 = require("../services/jwt");
10
- const request_user_1 = require("../services/request-user");
11
- const role_1 = require("../services/role");
12
- const utils_1 = require("../utils");
13
- /**
14
- * Find the auth token in the headers
15
- * @param headers The headers
16
- * @returns The auth token
17
- */
18
- function findAuthToken(headers) {
19
- const authHeader = headers['Authorization'] || headers['authorization'];
20
- if (authHeader && typeof authHeader === 'string') {
21
- const parts = authHeader.split(' ');
22
- if (parts.length === 2 && parts[0].toLowerCase() === 'bearer') {
23
- return parts[1];
24
- }
25
- }
26
- return null;
27
- }
28
- /**
29
- * Middleware to authenticate a token
30
- * @param application The application
31
- * @param req The request
32
- * @param res The response
33
- * @param next The next function
34
- * @returns The response
35
- */
36
- async function authenticateToken(application, req, res, next) {
37
- const UserModel = application.getModel(base_model_name_1.BaseModelName.User);
38
- const token = findAuthToken(req.headers);
39
- if (token == null) {
40
- return res
41
- .status(401)
42
- .send((0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Validation_InvalidToken));
43
- }
44
- try {
45
- return await (0, utils_1.withTransaction)(application.db.connection, application.environment.mongo.useTransactions, undefined, async (sess) => {
46
- const jwtService = new jwt_1.JwtService(application);
47
- const user = await jwtService.verifyToken(token);
48
- if (user === null) {
49
- return (res
50
- .status(403)
51
- .send(
52
- // amazonq-ignore-next-line false positive, hardcoded string
53
- (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Validation_UserNotFound)));
54
- }
55
- const userDoc = await UserModel.findById(user.userId, {
56
- password: 0,
57
- })
58
- .session(sess ?? null)
59
- .exec();
60
- if (!userDoc || userDoc.accountStatus !== suite_core_lib_1.AccountStatus.Active) {
61
- return (res
62
- .status(403)
63
- .send(
64
- // amazonq-ignore-next-line false positive, hardcoded string
65
- (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Validation_UserNotFound)));
66
- }
67
- const roleService = new role_1.RoleService(application);
68
- const roles = await roleService.getUserRoles(userDoc._id, sess);
69
- const tokenRoles = roleService.rolesToTokenRoles(roles);
70
- req.user = request_user_1.RequestUserService.makeRequestUserDTO(userDoc, tokenRoles);
71
- const context = i18n_lib_1.GlobalActiveContext.getInstance();
72
- context.userLanguage = userDoc.siteLanguage ?? context.userLanguage;
73
- context.setLanguageContextSpace('user');
74
- context.userTimezone = new i18n_lib_1.Timezone(userDoc.timezone);
75
- next();
76
- return res;
77
- }, {
78
- timeoutMs: application.environment.mongo.transactionTimeout,
79
- });
80
- }
81
- catch (err) {
82
- if (err instanceof token_expired_1.TokenExpiredError) {
83
- return res.status(401).send({
84
- message: (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Validation_TokenExpired),
85
- error: err,
86
- });
87
- }
88
- else if (err instanceof Error && err.name === 'JsonWebTokenError') {
89
- return res.status(400).send({
90
- message: (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Validation_InvalidToken),
91
- error: err,
92
- });
93
- }
94
- else {
95
- return res.status(500).send({
96
- message: (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Common_UnexpectedError),
97
- error: err,
98
- });
99
- }
100
- }
101
- }
102
- //# sourceMappingURL=authenticate-token.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"authenticate-token.js","sourceRoot":"","sources":["../../src/middlewares/authenticate-token.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- import { NextFunction, Request, Response } from 'express';
2
- /**
3
- * Middleware to clean up crypto resources after request completion
4
- * Should be used after crypto operations to ensure private keys are disposed
5
- */
6
- export declare function cleanupCrypto(req: Request, res: Response, next: NextFunction): void;
7
- //# sourceMappingURL=cleanup-crypto.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cleanup-crypto.d.ts","sourceRoot":"","sources":["../../src/middlewares/cleanup-crypto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE1D;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,YAAY,GACjB,IAAI,CA6BN"}
@@ -1,32 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.cleanupCrypto = cleanupCrypto;
4
- /**
5
- * Middleware to clean up crypto resources after request completion
6
- * Should be used after crypto operations to ensure private keys are disposed
7
- */
8
- function cleanupCrypto(req, res, next) {
9
- // Store original end function
10
- const originalEnd = res.end;
11
- // Override end function to cleanup before response
12
- const wrappedEnd = function (...args) {
13
- // Cleanup eciesUser if it exists
14
- if (req.eciesUser) {
15
- try {
16
- // Dispose of sensitive cryptographic material
17
- req.eciesUser.dispose();
18
- req.eciesUser = undefined;
19
- }
20
- catch (error) {
21
- console.error('Error cleaning up crypto resources:', error);
22
- }
23
- }
24
- // Do not dispose system user here; it may be a process-wide singleton
25
- // Call original end function
26
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
27
- return originalEnd.apply(this, args);
28
- };
29
- res.end = wrappedEnd;
30
- next();
31
- }
32
- //# sourceMappingURL=cleanup-crypto.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cleanup-crypto.js","sourceRoot":"","sources":["../../src/middlewares/cleanup-crypto.ts"],"names":[],"mappings":";;AAMA,sCAiCC;AArCD;;;GAGG;AACH,SAAgB,aAAa,CAC3B,GAAY,EACZ,GAAa,EACb,IAAkB;IAElB,8BAA8B;IAC9B,MAAM,WAAW,GAAG,GAAG,CAAC,GAAG,CAAC;IAE5B,mDAAmD;IACnD,MAAM,UAAU,GAAG,UAA0B,GAAG,IAAe;QAC7D,iCAAiC;QACjC,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YAClB,IAAI,CAAC;gBACH,8CAA8C;gBAC9C,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;gBACxB,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC;YAC5B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,KAAK,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC;QACD,sEAAsE;QAEtE,6BAA6B;QAC7B,8DAA8D;QAC9D,OAAQ,WAAoD,CAAC,KAAK,CAChE,IAAI,EACJ,IAAI,CACL,CAAC;IACJ,CAA8B,CAAC;IAE/B,GAAG,CAAC,GAAG,GAAG,UAAU,CAAC;IAErB,IAAI,EAAE,CAAC;AACT,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/middlewares/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,+BAA+B,CAAC"}
@@ -1,21 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./authenticate-crypto"), exports);
18
- __exportStar(require("./authenticate-token"), exports);
19
- __exportStar(require("./cleanup-crypto"), exports);
20
- __exportStar(require("./set-global-context-language"), exports);
21
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/middlewares/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC;AACtC,uDAAqC;AACrC,mDAAiC;AACjC,gEAA8C"}
@@ -1,3 +0,0 @@
1
- import { NextFunction, Request, Response } from 'express';
2
- export declare function setGlobalContextLanguageFromRequest(req: Request, res: Response, next: NextFunction): void;
3
- //# sourceMappingURL=set-global-context-language.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"set-global-context-language.d.ts","sourceRoot":"","sources":["../../src/middlewares/set-global-context-language.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE1D,wBAAgB,mCAAmC,CACjD,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,YAAY,QAYnB"}
@@ -1,14 +0,0 @@
1
- "use strict";
2
- // src/middlewares/injectMongooseContext.ts
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.setGlobalContextLanguageFromRequest = setGlobalContextLanguageFromRequest;
5
- const i18n_lib_1 = require("@digitaldefiance/i18n-lib");
6
- function setGlobalContextLanguageFromRequest(req, res, next) {
7
- // Use fallback chain: accept-language -> user preference -> site default
8
- const language = i18n_lib_1.LanguageRegistry.getMatchingLanguageCode(req.headers['accept-language'], req.user?.siteLanguage);
9
- const context = i18n_lib_1.GlobalActiveContext.getInstance();
10
- context.setUserLanguage(language);
11
- context.setLanguageContextSpace('user');
12
- next();
13
- }
14
- //# sourceMappingURL=set-global-context-language.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"set-global-context-language.js","sourceRoot":"","sources":["../../src/middlewares/set-global-context-language.ts"],"names":[],"mappings":";AAAA,2CAA2C;;AAQ3C,kFAeC;AArBD,wDAGmC;AAGnC,SAAgB,mCAAmC,CACjD,GAAY,EACZ,GAAa,EACb,IAAkB;IAElB,yEAAyE;IACzE,MAAM,QAAQ,GAAG,2BAAgB,CAAC,uBAAuB,CACvD,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAW,EACxC,GAAG,CAAC,IAAI,EAAE,YAAsB,CACjC,CAAC;IAEF,MAAM,OAAO,GAAG,8BAAmB,CAAC,WAAW,EAAE,CAAC;IAClD,OAAO,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;IAClC,OAAO,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;IACxC,IAAI,EAAE,CAAC;AACT,CAAC"}
@@ -1,18 +0,0 @@
1
- import { Application } from 'express';
2
- import { IncomingMessage, ServerResponse } from 'http';
3
- export declare class Middlewares {
4
- /**
5
- * Initialize the middleware
6
- * @param app - Express application
7
- */
8
- static init(app: Application, corsWhitelist: string[], csp: {
9
- defaultSrc: (string | ((req: IncomingMessage, res: ServerResponse) => string))[];
10
- imgSrc: (string | ((req: IncomingMessage, res: ServerResponse) => string))[];
11
- connectSrc: (string | ((req: IncomingMessage, res: ServerResponse) => string))[];
12
- scriptSrc: (string | ((req: IncomingMessage, res: ServerResponse) => string))[];
13
- styleSrc: (string | ((req: IncomingMessage, res: ServerResponse) => string))[];
14
- fontSrc: (string | ((req: IncomingMessage, res: ServerResponse) => string))[];
15
- frameSrc: (string | ((req: IncomingMessage, res: ServerResponse) => string))[];
16
- }): void;
17
- }
18
- //# sourceMappingURL=middlewares.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"middlewares.d.ts","sourceRoot":"","sources":["../src/middlewares.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,WAAW,EAMZ,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AA8BvD,qBAAa,WAAW;IACtB;;;OAGG;WACW,IAAI,CAChB,GAAG,EAAE,WAAW,EAChB,aAAa,EAAE,MAAM,EAAE,EACvB,GAAG,EAAE;QACH,UAAU,EAAE,CACR,MAAM,GACN,CAAC,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,MAAM,CAAC,CAC1D,EAAE,CAAC;QACJ,MAAM,EAAE,CACJ,MAAM,GACN,CAAC,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,MAAM,CAAC,CAC1D,EAAE,CAAC;QACJ,UAAU,EAAE,CACR,MAAM,GACN,CAAC,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,MAAM,CAAC,CAC1D,EAAE,CAAC;QACJ,SAAS,EAAE,CACP,MAAM,GACN,CAAC,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,MAAM,CAAC,CAC1D,EAAE,CAAC;QACJ,QAAQ,EAAE,CACN,MAAM,GACN,CAAC,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,MAAM,CAAC,CAC1D,EAAE,CAAC;QACJ,OAAO,EAAE,CACL,MAAM,GACN,CAAC,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,MAAM,CAAC,CAC1D,EAAE,CAAC;QACJ,QAAQ,EAAE,CACN,MAAM,GACN,CAAC,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,MAAM,CAAC,CAC1D,EAAE,CAAC;KACL,GACA,IAAI;CAwCR"}
@@ -1,76 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Middlewares = void 0;
7
- const cors_1 = __importDefault(require("cors"));
8
- const crypto_1 = require("crypto");
9
- const express_1 = require("express");
10
- const helmet_1 = __importDefault(require("helmet"));
11
- const corsOptionsDelegate = (corsWhitelist) => {
12
- return (req, callback) => {
13
- let corsOptions;
14
- const origin = req.headers.origin;
15
- if (origin &&
16
- corsWhitelist.find((w) => {
17
- if (w instanceof RegExp) {
18
- return w.test(origin);
19
- }
20
- else {
21
- return w === origin;
22
- }
23
- })) {
24
- corsOptions = { origin: true };
25
- }
26
- else {
27
- corsOptions = { origin: false };
28
- }
29
- callback(null, corsOptions);
30
- };
31
- };
32
- class Middlewares {
33
- /**
34
- * Initialize the middleware
35
- * @param app - Express application
36
- */
37
- static init(app, corsWhitelist, csp) {
38
- // Helmet helps you secure your Express apps by setting various HTTP headers
39
- // CSP nonce
40
- app.use((req, res, next) => {
41
- res.locals['cspNonce'] = (0, crypto_1.randomBytes)(32).toString('hex');
42
- next();
43
- });
44
- app.use((0, helmet_1.default)({
45
- contentSecurityPolicy: {
46
- directives: {
47
- defaultSrc: ["'self'", ...csp.defaultSrc],
48
- imgSrc: ["'self'", 'data:', 'blob:', ...csp.imgSrc],
49
- connectSrc: ["'self'", ...csp.connectSrc],
50
- scriptSrc: [
51
- "'self'",
52
- //"'unsafe-inline'",
53
- "'strict-dynamic'",
54
- (req, res) => `'nonce-${res.locals['cspNonce']}'`,
55
- ...csp.scriptSrc,
56
- ],
57
- styleSrc: [
58
- "'self'",
59
- // "'unsafe-inline'",
60
- ...csp.styleSrc,
61
- ],
62
- fontSrc: ["'self'", ...csp.fontSrc],
63
- frameSrc: ["'self'", ...csp.frameSrc],
64
- },
65
- },
66
- }));
67
- // Enable CORS
68
- app.use((0, cors_1.default)(corsOptionsDelegate(corsWhitelist)));
69
- // Parse incoming requests with JSON payloads
70
- app.use((0, express_1.json)());
71
- // Parse incoming requests with urlencoded payloads
72
- app.use((0, express_1.urlencoded)({ extended: true }));
73
- }
74
- }
75
- exports.Middlewares = Middlewares;
76
- //# sourceMappingURL=middlewares.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"middlewares.js","sourceRoot":"","sources":["../src/middlewares.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AACxB,mCAAqC;AACrC,qCAOiB;AACjB,oDAA4B;AAG5B,MAAM,mBAAmB,GAAG,CAAC,aAAuB,EAAE,EAAE;IACtD,OAAO,CACL,GAAqB,EACrB,QAGS,EACT,EAAE;QACF,IAAI,WAA6B,CAAC;QAClC,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;QAClC,IACE,MAAM;YACN,aAAa,CAAC,IAAI,CAAC,CAAC,CAAkB,EAAE,EAAE;gBACxC,IAAI,CAAC,YAAY,MAAM,EAAE,CAAC;oBACxB,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACxB,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,KAAK,MAAM,CAAC;gBACtB,CAAC;YACH,CAAC,CAAC,EACF,CAAC;YACD,WAAW,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,WAAW,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QAClC,CAAC;QACD,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAC9B,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAa,WAAW;IACtB;;;OAGG;IACI,MAAM,CAAC,IAAI,CAChB,GAAgB,EAChB,aAAuB,EACvB,GA6BC;QAED,4EAA4E;QAC5E,YAAY;QACZ,GAAG,CAAC,GAAG,CAAC,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE;YAC1D,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,IAAA,oBAAW,EAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACzD,IAAI,EAAE,CAAC;QACT,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,GAAG,CACL,IAAA,gBAAM,EAAC;YACL,qBAAqB,EAAE;gBACrB,UAAU,EAAE;oBACV,UAAU,EAAE,CAAC,QAAQ,EAAE,GAAG,GAAG,CAAC,UAAU,CAAC;oBACzC,MAAM,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;oBACnD,UAAU,EAAE,CAAC,QAAQ,EAAE,GAAG,GAAG,CAAC,UAAU,CAAC;oBACzC,SAAS,EAAE;wBACT,QAAQ;wBACR,oBAAoB;wBACpB,kBAAkB;wBAClB,CAAC,GAAoB,EAAE,GAAmB,EAAE,EAAE,CAC5C,UAAW,GAAgB,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG;wBACnD,GAAG,GAAG,CAAC,SAAS;qBACjB;oBACD,QAAQ,EAAE;wBACR,QAAQ;wBACR,qBAAqB;wBACrB,GAAG,GAAG,CAAC,QAAQ;qBAChB;oBACD,OAAO,EAAE,CAAC,QAAQ,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC;oBACnC,QAAQ,EAAE,CAAC,QAAQ,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC;iBACtC;aACF;SACF,CAAC,CACH,CAAC;QACF,cAAc;QACd,GAAG,CAAC,GAAG,CAAC,IAAA,cAAI,EAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAClD,6CAA6C;QAC7C,GAAG,CAAC,GAAG,CAAC,IAAA,cAAI,GAAE,CAAC,CAAC;QAChB,mDAAmD;QACnD,GAAG,CAAC,GAAG,CAAC,IAAA,oBAAU,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC1C,CAAC;CACF;AA9ED,kCA8EC"}
@@ -1,23 +0,0 @@
1
- import { Model, Document as MongooseDocument, Schema } from 'mongoose';
2
- import { IBaseDocument } from './documents/base';
3
- export type ModelRegistration<T, U extends IBaseDocument<T>> = {
4
- modelName: string;
5
- schema: Schema;
6
- model: Model<U>;
7
- collection: string;
8
- discriminators?: unknown;
9
- };
10
- declare class ModelRegistry {
11
- protected static _instance: ModelRegistry;
12
- protected _models: Map<string, ModelRegistration<any, IBaseDocument<any>>>;
13
- private constructor();
14
- static get instance(): ModelRegistry;
15
- register<T, U extends IBaseDocument<T>>(registration: ModelRegistration<T, U>): void;
16
- get<T, U extends IBaseDocument<T>>(modelName: string): ModelRegistration<T, U>;
17
- getTypedModel<TDoc extends MongooseDocument>(modelName: string): Model<TDoc>;
18
- getTypedSchema<TDoc extends MongooseDocument>(modelName: string): Schema<TDoc>;
19
- has(modelName: string): boolean;
20
- list(): string[];
21
- }
22
- export { ModelRegistry };
23
- //# sourceMappingURL=model-registry.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"model-registry.d.ts","sourceRoot":"","sources":["../src/model-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,IAAI,gBAAgB,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,MAAM,MAAM,iBAAiB,CAAC,CAAC,EAAE,CAAC,SAAS,aAAa,CAAC,CAAC,CAAC,IAAI;IAC7D,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF,cAAM,aAAa;IACjB,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,aAAa,CAAC;IAC1C,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,GAAG,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAC9D;IAEZ,OAAO;IAEP,WAAkB,QAAQ,IAAI,aAAa,CAK1C;IAEM,QAAQ,CAAC,CAAC,EAAE,CAAC,SAAS,aAAa,CAAC,CAAC,CAAC,EAC3C,YAAY,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,GACpC,IAAI;IAOA,GAAG,CAAC,CAAC,EAAE,CAAC,SAAS,aAAa,CAAC,CAAC,CAAC,EACtC,SAAS,EAAE,MAAM,GAChB,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;IAQnB,aAAa,CAAC,IAAI,SAAS,gBAAgB,EAChD,SAAS,EAAE,MAAM,GAChB,KAAK,CAAC,IAAI,CAAC;IAQP,cAAc,CAAC,IAAI,SAAS,gBAAgB,EACjD,SAAS,EAAE,MAAM,GAChB,MAAM,CAAC,IAAI,CAAC;IAQR,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAI/B,IAAI,IAAI,MAAM,EAAE;CAGxB;AAED,OAAO,EAAE,aAAa,EAAE,CAAC"}
@@ -1,47 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ModelRegistry = void 0;
4
- const errors_1 = require("./errors");
5
- class ModelRegistry {
6
- constructor() {
7
- this._models = new Map();
8
- }
9
- static get instance() {
10
- if (!ModelRegistry._instance) {
11
- ModelRegistry._instance = new ModelRegistry();
12
- }
13
- return ModelRegistry._instance;
14
- }
15
- register(registration) {
16
- this._models.set(registration.modelName, registration);
17
- }
18
- get(modelName) {
19
- const result = this._models.get(modelName);
20
- if (result === undefined) {
21
- throw new errors_1.InvalidModelError(modelName);
22
- }
23
- return result;
24
- }
25
- getTypedModel(modelName) {
26
- const result = this._models.get(modelName);
27
- if (result === undefined) {
28
- throw new errors_1.InvalidModelError(modelName);
29
- }
30
- return result.model;
31
- }
32
- getTypedSchema(modelName) {
33
- const result = this._models.get(modelName);
34
- if (result === undefined) {
35
- throw new errors_1.InvalidModelError(modelName);
36
- }
37
- return result.schema;
38
- }
39
- has(modelName) {
40
- return this._models.has(modelName);
41
- }
42
- list() {
43
- return Array.from(this._models.keys());
44
- }
45
- }
46
- exports.ModelRegistry = ModelRegistry;
47
- //# sourceMappingURL=model-registry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"model-registry.js","sourceRoot":"","sources":["../src/model-registry.ts"],"names":[],"mappings":";;;AAEA,qCAA6C;AAU7C,MAAM,aAAa;IAKjB;QAHU,YAAO,GACf,IAAI,GAAG,EAAE,CAAC;IAEW,CAAC;IAEjB,MAAM,KAAK,QAAQ;QACxB,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC;YAC7B,aAAa,CAAC,SAAS,GAAG,IAAI,aAAa,EAAE,CAAC;QAChD,CAAC;QACD,OAAO,aAAa,CAAC,SAAS,CAAC;IACjC,CAAC;IAEM,QAAQ,CACb,YAAqC;QAErC,IAAI,CAAC,OAAO,CAAC,GAAG,CACd,YAAY,CAAC,SAAS,EACtB,YAAuC,CACxC,CAAC;IACJ,CAAC;IAEM,GAAG,CACR,SAAiB;QAEjB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAA4B,CAAC;QACtE,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,0BAAiB,CAAC,SAAS,CAAC,CAAC;QACzC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEM,aAAa,CAClB,SAAiB;QAEjB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC3C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,0BAAiB,CAAC,SAAS,CAAC,CAAC;QACzC,CAAC;QACD,OAAO,MAAM,CAAC,KAAoB,CAAC;IACrC,CAAC;IAEM,cAAc,CACnB,SAAiB;QAEjB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC3C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,0BAAiB,CAAC,SAAS,CAAC,CAAC;QACzC,CAAC;QACD,OAAO,MAAM,CAAC,MAAsB,CAAC;IACvC,CAAC;IAEM,GAAG,CAAC,SAAiB;QAC1B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACrC,CAAC;IAEM,IAAI;QACT,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;CACF;AAEQ,sCAAa"}
@@ -1,11 +0,0 @@
1
- import { Connection, Schema } from 'mongoose';
2
- import { IEmailTokenDocument } from '../documents/email-token';
3
- import { BaseModelName } from '../enumerations';
4
- import { SchemaCollection } from '../enumerations/schema-collection';
5
- export declare function EmailTokenModel<TModelName extends string = BaseModelName, TCollection extends string = SchemaCollection>(connection: Connection, modelName?: TModelName, collection?: TCollection, schema?: Schema<IEmailTokenDocument>): import("mongoose").Model<IEmailTokenDocument, {}, {}, {}, import("mongoose").Document<unknown, {}, IEmailTokenDocument, {}, {}> & import("mongoose").Document<import("mongoose").Types.ObjectId, any, any, Record<string, any>, {}> & import("@digitaldefiance/suite-core-lib").IEmailTokenBase<import("mongoose").Types.ObjectId, Date, import("@digitaldefiance/suite-core-lib").EmailTokenType> & Required<{
6
- _id: import("mongoose").Types.ObjectId;
7
- }> & {
8
- __v: number;
9
- }, any>;
10
- export default EmailTokenModel;
11
- //# sourceMappingURL=email-token.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"email-token.d.ts","sourceRoot":"","sources":["../../src/models/email-token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAGrE,wBAAgB,eAAe,CAC7B,UAAU,SAAS,MAAM,GAAG,aAAa,EACzC,WAAW,SAAS,MAAM,GAAG,gBAAgB,EAE7C,UAAU,EAAE,UAAU,EACtB,SAAS,GAAE,UAAmD,EAC9D,UAAU,GAAE,WAAwD,EACpE,MAAM,GAAE,MAAM,CAAC,mBAAmB,CAAoB;;;;QAGvD;AAED,eAAe,eAAe,CAAC"}
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EmailTokenModel = EmailTokenModel;
4
- const enumerations_1 = require("../enumerations");
5
- const schema_collection_1 = require("../enumerations/schema-collection");
6
- const email_token_1 = require("../schemas/email-token");
7
- function EmailTokenModel(connection, modelName = enumerations_1.BaseModelName.EmailToken, collection = schema_collection_1.SchemaCollection.EmailToken, schema = email_token_1.EmailTokenSchema) {
8
- return connection.model(modelName, schema, collection);
9
- }
10
- exports.default = EmailTokenModel;
11
- //# sourceMappingURL=email-token.js.map