@digitaldefiance/node-express-suite 3.7.4 → 3.7.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (600) hide show
  1. package/package.json +2 -2
  2. package/src/__tests__/helpers/setup-test-env.d.ts +1 -1
  3. package/src/__tests__/helpers/setup-test-env.d.ts.map +1 -1
  4. package/src/__tests__/helpers/setup-test-env.js.map +1 -1
  5. package/src/application-base.d.ts +9 -4
  6. package/src/application-base.d.ts.map +1 -1
  7. package/src/application-base.js +5 -0
  8. package/src/application-base.js.map +1 -1
  9. package/src/application-concrete.d.ts +14 -1
  10. package/src/application-concrete.d.ts.map +1 -1
  11. package/src/application-concrete.js +14 -1
  12. package/src/application-concrete.js.map +1 -1
  13. package/src/application.d.ts +7 -2
  14. package/src/application.d.ts.map +1 -1
  15. package/src/application.js +5 -0
  16. package/src/application.js.map +1 -1
  17. package/src/backup-code.d.ts +5 -0
  18. package/src/backup-code.d.ts.map +1 -1
  19. package/src/backup-code.js +5 -0
  20. package/src/backup-code.js.map +1 -1
  21. package/src/builders/application-builder.d.ts +13 -1
  22. package/src/builders/application-builder.d.ts.map +1 -1
  23. package/src/builders/application-builder.js +12 -0
  24. package/src/builders/application-builder.js.map +1 -1
  25. package/src/constants.d.ts +5 -0
  26. package/src/constants.d.ts.map +1 -1
  27. package/src/constants.js +5 -0
  28. package/src/constants.js.map +1 -1
  29. package/src/container/service-container.d.ts +34 -0
  30. package/src/container/service-container.d.ts.map +1 -1
  31. package/src/container/service-container.js +30 -0
  32. package/src/container/service-container.js.map +1 -1
  33. package/src/container/service-definitions.d.ts +11 -0
  34. package/src/container/service-definitions.d.ts.map +1 -1
  35. package/src/container/service-definitions.js +8 -0
  36. package/src/container/service-definitions.js.map +1 -1
  37. package/src/controllers/base.d.ts +21 -8
  38. package/src/controllers/base.d.ts.map +1 -1
  39. package/src/controllers/base.js +13 -0
  40. package/src/controllers/base.js.map +1 -1
  41. package/src/controllers/user.d.ts +25 -8
  42. package/src/controllers/user.d.ts.map +1 -1
  43. package/src/controllers/user.js +17 -0
  44. package/src/controllers/user.js.map +1 -1
  45. package/src/database/database-initializer.d.ts +5 -0
  46. package/src/database/database-initializer.d.ts.map +1 -1
  47. package/src/database/database-initializer.js +5 -0
  48. package/src/database/database-initializer.js.map +1 -1
  49. package/src/decorators/base-controller.d.ts +11 -0
  50. package/src/decorators/base-controller.d.ts.map +1 -1
  51. package/src/decorators/base-controller.js +11 -0
  52. package/src/decorators/base-controller.js.map +1 -1
  53. package/src/decorators/controller.d.ts +5 -0
  54. package/src/decorators/controller.d.ts.map +1 -1
  55. package/src/decorators/controller.js +5 -0
  56. package/src/decorators/controller.js.map +1 -1
  57. package/src/decorators/zod-validation.d.ts +5 -0
  58. package/src/decorators/zod-validation.d.ts.map +1 -1
  59. package/src/decorators/zod-validation.js +5 -0
  60. package/src/decorators/zod-validation.js.map +1 -1
  61. package/src/defaults.d.ts +5 -0
  62. package/src/defaults.d.ts.map +1 -1
  63. package/src/defaults.js +5 -0
  64. package/src/defaults.js.map +1 -1
  65. package/src/documents/base.d.ts +12 -1
  66. package/src/documents/base.d.ts.map +1 -1
  67. package/src/documents/base.js +5 -0
  68. package/src/documents/base.js.map +1 -1
  69. package/src/documents/email-token.d.ts +9 -2
  70. package/src/documents/email-token.d.ts.map +1 -1
  71. package/src/documents/email-token.js +5 -0
  72. package/src/documents/email-token.js.map +1 -1
  73. package/src/documents/mnemonic.d.ts +10 -2
  74. package/src/documents/mnemonic.d.ts.map +1 -1
  75. package/src/documents/mnemonic.js +5 -0
  76. package/src/documents/mnemonic.js.map +1 -1
  77. package/src/documents/role.d.ts +9 -2
  78. package/src/documents/role.d.ts.map +1 -1
  79. package/src/documents/role.js +5 -0
  80. package/src/documents/role.js.map +1 -1
  81. package/src/documents/used-direct-login-token.d.ts +12 -1
  82. package/src/documents/used-direct-login-token.d.ts.map +1 -1
  83. package/src/documents/used-direct-login-token.js +5 -0
  84. package/src/documents/used-direct-login-token.js.map +1 -1
  85. package/src/documents/user-role.d.ts +10 -2
  86. package/src/documents/user-role.d.ts.map +1 -1
  87. package/src/documents/user-role.js +5 -0
  88. package/src/documents/user-role.js.map +1 -1
  89. package/src/documents/user.d.ts +10 -2
  90. package/src/documents/user.d.ts.map +1 -1
  91. package/src/documents/user.js +5 -0
  92. package/src/documents/user.js.map +1 -1
  93. package/src/enumerations/base-model-name.d.ts +5 -0
  94. package/src/enumerations/base-model-name.d.ts.map +1 -1
  95. package/src/enumerations/base-model-name.js +5 -0
  96. package/src/enumerations/base-model-name.js.map +1 -1
  97. package/src/enumerations/length-encoding-type.d.ts +9 -0
  98. package/src/enumerations/length-encoding-type.d.ts.map +1 -1
  99. package/src/enumerations/length-encoding-type.js +9 -0
  100. package/src/enumerations/length-encoding-type.js.map +1 -1
  101. package/src/enumerations/schema-collection.d.ts +5 -0
  102. package/src/enumerations/schema-collection.d.ts.map +1 -1
  103. package/src/enumerations/schema-collection.js +5 -0
  104. package/src/enumerations/schema-collection.js.map +1 -1
  105. package/src/enumerations/symmetric-error-type.d.ts +8 -0
  106. package/src/enumerations/symmetric-error-type.d.ts.map +1 -1
  107. package/src/enumerations/symmetric-error-type.js +8 -0
  108. package/src/enumerations/symmetric-error-type.js.map +1 -1
  109. package/src/environment.d.ts +15 -10
  110. package/src/environment.d.ts.map +1 -1
  111. package/src/environment.js +5 -0
  112. package/src/environment.js.map +1 -1
  113. package/src/errors/express-validation.d.ts +15 -0
  114. package/src/errors/express-validation.d.ts.map +1 -1
  115. package/src/errors/express-validation.js +15 -0
  116. package/src/errors/express-validation.js.map +1 -1
  117. package/src/errors/invalid-backup-code-version.d.ts +13 -0
  118. package/src/errors/invalid-backup-code-version.d.ts.map +1 -1
  119. package/src/errors/invalid-backup-code-version.js +13 -0
  120. package/src/errors/invalid-backup-code-version.js.map +1 -1
  121. package/src/errors/invalid-jwt-token.d.ts +12 -0
  122. package/src/errors/invalid-jwt-token.d.ts.map +1 -1
  123. package/src/errors/invalid-jwt-token.js +12 -0
  124. package/src/errors/invalid-jwt-token.js.map +1 -1
  125. package/src/errors/invalid-model.d.ts +12 -0
  126. package/src/errors/invalid-model.d.ts.map +1 -1
  127. package/src/errors/invalid-model.js +12 -0
  128. package/src/errors/invalid-model.js.map +1 -1
  129. package/src/errors/invalid-new-password.d.ts +14 -0
  130. package/src/errors/invalid-new-password.d.ts.map +1 -1
  131. package/src/errors/invalid-new-password.js +14 -0
  132. package/src/errors/invalid-new-password.js.map +1 -1
  133. package/src/errors/invalid-password.d.ts +14 -0
  134. package/src/errors/invalid-password.d.ts.map +1 -1
  135. package/src/errors/invalid-password.js +14 -0
  136. package/src/errors/invalid-password.js.map +1 -1
  137. package/src/errors/missing-validated-data.d.ts +17 -0
  138. package/src/errors/missing-validated-data.d.ts.map +1 -1
  139. package/src/errors/missing-validated-data.js +17 -0
  140. package/src/errors/missing-validated-data.js.map +1 -1
  141. package/src/errors/mnemonic-or-password-required.d.ts +12 -0
  142. package/src/errors/mnemonic-or-password-required.d.ts.map +1 -1
  143. package/src/errors/mnemonic-or-password-required.js +12 -0
  144. package/src/errors/mnemonic-or-password-required.js.map +1 -1
  145. package/src/errors/model-not-registered.d.ts +12 -0
  146. package/src/errors/model-not-registered.d.ts.map +1 -1
  147. package/src/errors/model-not-registered.js +12 -0
  148. package/src/errors/model-not-registered.js.map +1 -1
  149. package/src/errors/mongoose-validation.d.ts +16 -0
  150. package/src/errors/mongoose-validation.d.ts.map +1 -1
  151. package/src/errors/mongoose-validation.js +16 -0
  152. package/src/errors/mongoose-validation.js.map +1 -1
  153. package/src/errors/symmetric.d.ts +15 -0
  154. package/src/errors/symmetric.d.ts.map +1 -1
  155. package/src/errors/symmetric.js +15 -0
  156. package/src/errors/symmetric.js.map +1 -1
  157. package/src/errors/token-expired.d.ts +12 -0
  158. package/src/errors/token-expired.d.ts.map +1 -1
  159. package/src/errors/token-expired.js +12 -0
  160. package/src/errors/token-expired.js.map +1 -1
  161. package/src/get-language.d.ts +10 -0
  162. package/src/get-language.d.ts.map +1 -1
  163. package/src/get-language.js +10 -0
  164. package/src/get-language.js.map +1 -1
  165. package/src/get-timezone.d.ts +10 -0
  166. package/src/get-timezone.d.ts.map +1 -1
  167. package/src/get-timezone.js +15 -1
  168. package/src/get-timezone.js.map +1 -1
  169. package/src/interfaces/api-error-response.d.ts +9 -0
  170. package/src/interfaces/api-error-response.d.ts.map +1 -1
  171. package/src/interfaces/api-error-response.js +5 -0
  172. package/src/interfaces/api-error-response.js.map +1 -1
  173. package/src/interfaces/api-express-validation-error-response.d.ts +9 -0
  174. package/src/interfaces/api-express-validation-error-response.d.ts.map +1 -1
  175. package/src/interfaces/api-express-validation-error-response.js +5 -0
  176. package/src/interfaces/api-express-validation-error-response.js.map +1 -1
  177. package/src/interfaces/api-message-response.d.ts +8 -0
  178. package/src/interfaces/api-message-response.d.ts.map +1 -1
  179. package/src/interfaces/api-message-response.js +5 -0
  180. package/src/interfaces/api-message-response.js.map +1 -1
  181. package/src/interfaces/api-mongo-validation-error-response.d.ts +10 -0
  182. package/src/interfaces/api-mongo-validation-error-response.d.ts.map +1 -1
  183. package/src/interfaces/api-mongo-validation-error-response.js +5 -0
  184. package/src/interfaces/api-mongo-validation-error-response.js.map +1 -1
  185. package/src/interfaces/api-responses/backup-codes-response.d.ts +9 -0
  186. package/src/interfaces/api-responses/backup-codes-response.d.ts.map +1 -1
  187. package/src/interfaces/api-responses/backup-codes-response.js +5 -0
  188. package/src/interfaces/api-responses/backup-codes-response.js.map +1 -1
  189. package/src/interfaces/api-responses/challenge-response.d.ts +10 -0
  190. package/src/interfaces/api-responses/challenge-response.d.ts.map +1 -1
  191. package/src/interfaces/api-responses/challenge-response.js +4 -0
  192. package/src/interfaces/api-responses/challenge-response.js.map +1 -1
  193. package/src/interfaces/api-responses/code-count-response.d.ts +6 -0
  194. package/src/interfaces/api-responses/code-count-response.d.ts.map +1 -1
  195. package/src/interfaces/api-responses/code-count-response.js +5 -0
  196. package/src/interfaces/api-responses/code-count-response.js.map +1 -1
  197. package/src/interfaces/api-responses/login-response.d.ts +9 -0
  198. package/src/interfaces/api-responses/login-response.d.ts.map +1 -1
  199. package/src/interfaces/api-responses/login-response.js +5 -0
  200. package/src/interfaces/api-responses/login-response.js.map +1 -1
  201. package/src/interfaces/api-responses/mnemonic-response.d.ts +9 -0
  202. package/src/interfaces/api-responses/mnemonic-response.d.ts.map +1 -1
  203. package/src/interfaces/api-responses/mnemonic-response.js +4 -0
  204. package/src/interfaces/api-responses/mnemonic-response.js.map +1 -1
  205. package/src/interfaces/api-responses/registration-response.d.ts +10 -0
  206. package/src/interfaces/api-responses/registration-response.d.ts.map +1 -1
  207. package/src/interfaces/api-responses/registration-response.js +4 -0
  208. package/src/interfaces/api-responses/registration-response.js.map +1 -1
  209. package/src/interfaces/api-responses/request-user-response.d.ts +9 -0
  210. package/src/interfaces/api-responses/request-user-response.d.ts.map +1 -1
  211. package/src/interfaces/api-responses/request-user-response.js +5 -0
  212. package/src/interfaces/api-responses/request-user-response.js.map +1 -1
  213. package/src/interfaces/api-responses/user-settings-response.d.ts +6 -0
  214. package/src/interfaces/api-responses/user-settings-response.d.ts.map +1 -1
  215. package/src/interfaces/api-responses/user-settings-response.js +5 -0
  216. package/src/interfaces/api-responses/user-settings-response.js.map +1 -1
  217. package/src/interfaces/application.d.ts +22 -0
  218. package/src/interfaces/application.d.ts.map +1 -1
  219. package/src/interfaces/application.js +5 -0
  220. package/src/interfaces/application.js.map +1 -1
  221. package/src/interfaces/backend-objects/email-token.d.ts +10 -1
  222. package/src/interfaces/backend-objects/email-token.d.ts.map +1 -1
  223. package/src/interfaces/backend-objects/email-token.js +5 -0
  224. package/src/interfaces/backend-objects/email-token.js.map +1 -1
  225. package/src/interfaces/backend-objects/request-user.d.ts +11 -1
  226. package/src/interfaces/backend-objects/request-user.d.ts.map +1 -1
  227. package/src/interfaces/backend-objects/request-user.js +5 -0
  228. package/src/interfaces/backend-objects/request-user.js.map +1 -1
  229. package/src/interfaces/backend-objects/role.d.ts +10 -1
  230. package/src/interfaces/backend-objects/role.d.ts.map +1 -1
  231. package/src/interfaces/backend-objects/role.js +5 -0
  232. package/src/interfaces/backend-objects/role.js.map +1 -1
  233. package/src/interfaces/backend-objects/user.d.ts +11 -1
  234. package/src/interfaces/backend-objects/user.d.ts.map +1 -1
  235. package/src/interfaces/backend-objects/user.js +5 -0
  236. package/src/interfaces/backend-objects/user.js.map +1 -1
  237. package/src/interfaces/checksum-config.d.ts +10 -0
  238. package/src/interfaces/checksum-config.d.ts.map +1 -1
  239. package/src/interfaces/checksum-config.js +5 -0
  240. package/src/interfaces/checksum-config.js.map +1 -1
  241. package/src/interfaces/checksum-consts.d.ts +9 -0
  242. package/src/interfaces/checksum-consts.d.ts.map +1 -1
  243. package/src/interfaces/checksum-consts.js +5 -0
  244. package/src/interfaces/checksum-consts.js.map +1 -1
  245. package/src/interfaces/constants.d.ts +7 -2
  246. package/src/interfaces/constants.d.ts.map +1 -1
  247. package/src/interfaces/constants.js +5 -0
  248. package/src/interfaces/constants.js.map +1 -1
  249. package/src/interfaces/controller-config.d.ts +27 -10
  250. package/src/interfaces/controller-config.d.ts.map +1 -1
  251. package/src/interfaces/controller-config.js +5 -0
  252. package/src/interfaces/controller-config.js.map +1 -1
  253. package/src/interfaces/create-user-basics.d.ts +7 -1
  254. package/src/interfaces/create-user-basics.d.ts.map +1 -1
  255. package/src/interfaces/create-user-basics.js +5 -0
  256. package/src/interfaces/create-user-basics.js.map +1 -1
  257. package/src/interfaces/csp-config.d.ts +15 -0
  258. package/src/interfaces/csp-config.d.ts.map +1 -1
  259. package/src/interfaces/csp-config.js +10 -0
  260. package/src/interfaces/csp-config.js.map +1 -1
  261. package/src/interfaces/csp-definition.d.ts +21 -0
  262. package/src/interfaces/csp-definition.d.ts.map +1 -1
  263. package/src/interfaces/csp-definition.js +10 -0
  264. package/src/interfaces/csp-definition.js.map +1 -1
  265. package/src/interfaces/db-init-result.d.ts +11 -0
  266. package/src/interfaces/db-init-result.d.ts.map +1 -1
  267. package/src/interfaces/db-init-result.js +5 -0
  268. package/src/interfaces/db-init-result.js.map +1 -1
  269. package/src/interfaces/deep-partial.d.ts +10 -0
  270. package/src/interfaces/deep-partial.d.ts.map +1 -1
  271. package/src/interfaces/deep-partial.js +5 -0
  272. package/src/interfaces/deep-partial.js.map +1 -1
  273. package/src/interfaces/discriminator-collections.d.ts +11 -1
  274. package/src/interfaces/discriminator-collections.d.ts.map +1 -1
  275. package/src/interfaces/discriminator-collections.js +5 -0
  276. package/src/interfaces/discriminator-collections.js.map +1 -1
  277. package/src/interfaces/email-service.d.ts +17 -0
  278. package/src/interfaces/email-service.d.ts.map +1 -1
  279. package/src/interfaces/email-service.js +5 -0
  280. package/src/interfaces/email-service.js.map +1 -1
  281. package/src/interfaces/environment-mongo.d.ts +9 -0
  282. package/src/interfaces/environment-mongo.d.ts.map +1 -1
  283. package/src/interfaces/environment-mongo.js +5 -0
  284. package/src/interfaces/environment-mongo.js.map +1 -1
  285. package/src/interfaces/environment.d.ts +20 -10
  286. package/src/interfaces/environment.d.ts.map +1 -1
  287. package/src/interfaces/environment.js +5 -0
  288. package/src/interfaces/environment.js.map +1 -1
  289. package/src/interfaces/failable-result.d.ts +13 -0
  290. package/src/interfaces/failable-result.d.ts.map +1 -1
  291. package/src/interfaces/failable-result.js +5 -0
  292. package/src/interfaces/failable-result.js.map +1 -1
  293. package/src/interfaces/fec-consts.d.ts +9 -0
  294. package/src/interfaces/fec-consts.d.ts.map +1 -1
  295. package/src/interfaces/fec-consts.js +5 -0
  296. package/src/interfaces/fec-consts.js.map +1 -1
  297. package/src/interfaces/flexible-csp.d.ts +16 -0
  298. package/src/interfaces/flexible-csp.d.ts.map +1 -1
  299. package/src/interfaces/flexible-csp.js +10 -0
  300. package/src/interfaces/flexible-csp.js.map +1 -1
  301. package/src/interfaces/handleable-error-options.d.ts +12 -0
  302. package/src/interfaces/handleable-error-options.d.ts.map +1 -1
  303. package/src/interfaces/handleable-error-options.js +5 -0
  304. package/src/interfaces/handleable-error-options.js.map +1 -1
  305. package/src/interfaces/jwt-consts.d.ts +9 -0
  306. package/src/interfaces/jwt-consts.d.ts.map +1 -1
  307. package/src/interfaces/jwt-consts.js +5 -0
  308. package/src/interfaces/jwt-consts.js.map +1 -1
  309. package/src/interfaces/jwt-sign-response.d.ts +12 -1
  310. package/src/interfaces/jwt-sign-response.d.ts.map +1 -1
  311. package/src/interfaces/jwt-sign-response.js +5 -0
  312. package/src/interfaces/jwt-sign-response.js.map +1 -1
  313. package/src/interfaces/models/email-token.d.ts +7 -1
  314. package/src/interfaces/models/email-token.d.ts.map +1 -1
  315. package/src/interfaces/models/email-token.js +5 -0
  316. package/src/interfaces/models/email-token.js.map +1 -1
  317. package/src/interfaces/models/mnemonic.d.ts +8 -1
  318. package/src/interfaces/models/mnemonic.d.ts.map +1 -1
  319. package/src/interfaces/models/mnemonic.js +5 -0
  320. package/src/interfaces/models/mnemonic.js.map +1 -1
  321. package/src/interfaces/models/role.d.ts +7 -1
  322. package/src/interfaces/models/role.d.ts.map +1 -1
  323. package/src/interfaces/models/role.js +5 -0
  324. package/src/interfaces/models/role.js.map +1 -1
  325. package/src/interfaces/models/token-role.d.ts +11 -3
  326. package/src/interfaces/models/token-role.d.ts.map +1 -1
  327. package/src/interfaces/models/token-role.js +5 -0
  328. package/src/interfaces/models/token-role.js.map +1 -1
  329. package/src/interfaces/models/used-direct-login-token.d.ts +11 -3
  330. package/src/interfaces/models/used-direct-login-token.d.ts.map +1 -1
  331. package/src/interfaces/models/used-direct-login-token.js +5 -0
  332. package/src/interfaces/models/used-direct-login-token.js.map +1 -1
  333. package/src/interfaces/models/user-role.d.ts +11 -3
  334. package/src/interfaces/models/user-role.d.ts.map +1 -1
  335. package/src/interfaces/models/user-role.js +5 -0
  336. package/src/interfaces/models/user-role.js.map +1 -1
  337. package/src/interfaces/models/user.d.ts +13 -3
  338. package/src/interfaces/models/user.d.ts.map +1 -1
  339. package/src/interfaces/models/user.js +5 -0
  340. package/src/interfaces/models/user.js.map +1 -1
  341. package/src/interfaces/mongo-errors.d.ts +8 -0
  342. package/src/interfaces/mongo-errors.d.ts.map +1 -1
  343. package/src/interfaces/mongo-errors.js +5 -0
  344. package/src/interfaces/mongo-errors.js.map +1 -1
  345. package/src/interfaces/request-user.d.ts +16 -7
  346. package/src/interfaces/request-user.d.ts.map +1 -1
  347. package/src/interfaces/request-user.js +5 -0
  348. package/src/interfaces/request-user.js.map +1 -1
  349. package/src/interfaces/required-string-keys.d.ts +9 -3
  350. package/src/interfaces/required-string-keys.d.ts.map +1 -1
  351. package/src/interfaces/required-string-keys.js +5 -0
  352. package/src/interfaces/required-string-keys.js.map +1 -1
  353. package/src/interfaces/schema.d.ts +11 -3
  354. package/src/interfaces/schema.d.ts.map +1 -1
  355. package/src/interfaces/schema.js +5 -0
  356. package/src/interfaces/schema.js.map +1 -1
  357. package/src/interfaces/server-init-result.d.ts +23 -13
  358. package/src/interfaces/server-init-result.d.ts.map +1 -1
  359. package/src/interfaces/server-init-result.js +5 -0
  360. package/src/interfaces/server-init-result.js.map +1 -1
  361. package/src/interfaces/status-code-response.d.ts +12 -0
  362. package/src/interfaces/status-code-response.d.ts.map +1 -1
  363. package/src/interfaces/status-code-response.js +5 -0
  364. package/src/interfaces/status-code-response.js.map +1 -1
  365. package/src/interfaces/symmetric-encryption-results.d.ts +10 -0
  366. package/src/interfaces/symmetric-encryption-results.d.ts.map +1 -1
  367. package/src/interfaces/symmetric-encryption-results.js +5 -0
  368. package/src/interfaces/symmetric-encryption-results.js.map +1 -1
  369. package/src/interfaces/test-environment.d.ts +10 -0
  370. package/src/interfaces/test-environment.d.ts.map +1 -1
  371. package/src/interfaces/test-environment.js +5 -0
  372. package/src/interfaces/test-environment.js.map +1 -1
  373. package/src/interfaces/token-response.d.ts +10 -0
  374. package/src/interfaces/token-response.d.ts.map +1 -1
  375. package/src/interfaces/token-response.js +5 -0
  376. package/src/interfaces/token-response.js.map +1 -1
  377. package/src/middleware-utils.d.ts +23 -0
  378. package/src/middleware-utils.d.ts.map +1 -1
  379. package/src/middleware-utils.js +23 -0
  380. package/src/middleware-utils.js.map +1 -1
  381. package/src/middlewares/authenticate-crypto.d.ts +20 -3
  382. package/src/middlewares/authenticate-crypto.d.ts.map +1 -1
  383. package/src/middlewares/authenticate-crypto.js +19 -2
  384. package/src/middlewares/authenticate-crypto.js.map +1 -1
  385. package/src/middlewares/authenticate-token.d.ts +23 -10
  386. package/src/middlewares/authenticate-token.d.ts.map +1 -1
  387. package/src/middlewares/authenticate-token.js +22 -9
  388. package/src/middlewares/authenticate-token.js.map +1 -1
  389. package/src/middlewares/cleanup-crypto.d.ts +11 -2
  390. package/src/middlewares/cleanup-crypto.d.ts.map +1 -1
  391. package/src/middlewares/cleanup-crypto.js +11 -2
  392. package/src/middlewares/cleanup-crypto.js.map +1 -1
  393. package/src/middlewares/set-global-context-language.d.ts +13 -0
  394. package/src/middlewares/set-global-context-language.d.ts.map +1 -1
  395. package/src/middlewares/set-global-context-language.js +14 -1
  396. package/src/middlewares/set-global-context-language.js.map +1 -1
  397. package/src/model-registry.d.ts +63 -7
  398. package/src/model-registry.d.ts.map +1 -1
  399. package/src/model-registry.js +50 -0
  400. package/src/model-registry.js.map +1 -1
  401. package/src/models/email-token.d.ts +17 -1
  402. package/src/models/email-token.d.ts.map +1 -1
  403. package/src/models/email-token.js +5 -0
  404. package/src/models/email-token.js.map +1 -1
  405. package/src/models/mnemonic.d.ts +17 -1
  406. package/src/models/mnemonic.d.ts.map +1 -1
  407. package/src/models/mnemonic.js +16 -0
  408. package/src/models/mnemonic.js.map +1 -1
  409. package/src/models/role.d.ts +17 -1
  410. package/src/models/role.d.ts.map +1 -1
  411. package/src/models/role.js +16 -0
  412. package/src/models/role.js.map +1 -1
  413. package/src/models/used-direct-login-token.d.ts +17 -1
  414. package/src/models/used-direct-login-token.d.ts.map +1 -1
  415. package/src/models/used-direct-login-token.js +5 -0
  416. package/src/models/used-direct-login-token.js.map +1 -1
  417. package/src/models/user-role.d.ts +17 -1
  418. package/src/models/user-role.d.ts.map +1 -1
  419. package/src/models/user-role.js +16 -0
  420. package/src/models/user-role.js.map +1 -1
  421. package/src/models/user.d.ts +17 -1
  422. package/src/models/user.d.ts.map +1 -1
  423. package/src/models/user.js +16 -0
  424. package/src/models/user.js.map +1 -1
  425. package/src/pipeline/pipeline-builder.d.ts +8 -0
  426. package/src/pipeline/pipeline-builder.d.ts.map +1 -1
  427. package/src/pipeline/pipeline-builder.js +8 -0
  428. package/src/pipeline/pipeline-builder.js.map +1 -1
  429. package/src/plugins/plugin-interface.d.ts +9 -0
  430. package/src/plugins/plugin-interface.d.ts.map +1 -1
  431. package/src/plugins/plugin-interface.js +5 -0
  432. package/src/plugins/plugin-interface.js.map +1 -1
  433. package/src/plugins/plugin-manager.d.ts +9 -0
  434. package/src/plugins/plugin-manager.d.ts.map +1 -1
  435. package/src/plugins/plugin-manager.js +9 -0
  436. package/src/plugins/plugin-manager.js.map +1 -1
  437. package/src/registry/email-service-registry.d.ts +28 -6
  438. package/src/registry/email-service-registry.d.ts.map +1 -1
  439. package/src/registry/email-service-registry.js +28 -6
  440. package/src/registry/email-service-registry.js.map +1 -1
  441. package/src/responses/response-builder.d.ts +79 -0
  442. package/src/responses/response-builder.d.ts.map +1 -1
  443. package/src/responses/response-builder.js +79 -0
  444. package/src/responses/response-builder.js.map +1 -1
  445. package/src/routers/api.d.ts +36 -5
  446. package/src/routers/api.d.ts.map +1 -1
  447. package/src/routers/api.js +34 -4
  448. package/src/routers/api.js.map +1 -1
  449. package/src/routers/app.d.ts +61 -7
  450. package/src/routers/app.d.ts.map +1 -1
  451. package/src/routers/app.js +62 -5
  452. package/src/routers/app.js.map +1 -1
  453. package/src/routers/base.d.ts +17 -0
  454. package/src/routers/base.d.ts.map +1 -1
  455. package/src/routers/base.js +17 -0
  456. package/src/routers/base.js.map +1 -1
  457. package/src/routers/router-config.d.ts +17 -0
  458. package/src/routers/router-config.d.ts.map +1 -1
  459. package/src/routers/router-config.js +8 -0
  460. package/src/routers/router-config.js.map +1 -1
  461. package/src/routing/route-builder.d.ts +85 -0
  462. package/src/routing/route-builder.d.ts.map +1 -1
  463. package/src/routing/route-builder.js +81 -0
  464. package/src/routing/route-builder.js.map +1 -1
  465. package/src/schemas/email-token.d.ts +19 -3
  466. package/src/schemas/email-token.d.ts.map +1 -1
  467. package/src/schemas/email-token.js +15 -2
  468. package/src/schemas/email-token.js.map +1 -1
  469. package/src/schemas/mnemonic.d.ts +12 -2
  470. package/src/schemas/mnemonic.d.ts.map +1 -1
  471. package/src/schemas/mnemonic.js +12 -2
  472. package/src/schemas/mnemonic.js.map +1 -1
  473. package/src/schemas/role.d.ts +18 -3
  474. package/src/schemas/role.d.ts.map +1 -1
  475. package/src/schemas/role.js +15 -2
  476. package/src/schemas/role.js.map +1 -1
  477. package/src/schemas/schema.d.ts +21 -1
  478. package/src/schemas/schema.d.ts.map +1 -1
  479. package/src/schemas/schema.js +11 -0
  480. package/src/schemas/schema.js.map +1 -1
  481. package/src/schemas/used-direct-login-token.d.ts +15 -3
  482. package/src/schemas/used-direct-login-token.d.ts.map +1 -1
  483. package/src/schemas/used-direct-login-token.js +13 -2
  484. package/src/schemas/used-direct-login-token.js.map +1 -1
  485. package/src/schemas/user-role.d.ts +16 -3
  486. package/src/schemas/user-role.d.ts.map +1 -1
  487. package/src/schemas/user-role.js +14 -2
  488. package/src/schemas/user-role.js.map +1 -1
  489. package/src/schemas/user.d.ts +20 -1
  490. package/src/schemas/user.d.ts.map +1 -1
  491. package/src/schemas/user.js +20 -1
  492. package/src/schemas/user.js.map +1 -1
  493. package/src/services/backup-code.d.ts +22 -18
  494. package/src/services/backup-code.d.ts.map +1 -1
  495. package/src/services/backup-code.js +12 -8
  496. package/src/services/backup-code.js.map +1 -1
  497. package/src/services/base.d.ts +11 -0
  498. package/src/services/base.d.ts.map +1 -1
  499. package/src/services/base.js +11 -0
  500. package/src/services/base.js.map +1 -1
  501. package/src/services/checksum.d.ts +50 -29
  502. package/src/services/checksum.d.ts.map +1 -1
  503. package/src/services/checksum.js +50 -29
  504. package/src/services/checksum.js.map +1 -1
  505. package/src/services/database-initialization.d.ts +82 -55
  506. package/src/services/database-initialization.d.ts.map +1 -1
  507. package/src/services/database-initialization.js +61 -35
  508. package/src/services/database-initialization.js.map +1 -1
  509. package/src/services/db-init-cache.d.ts +8 -0
  510. package/src/services/db-init-cache.d.ts.map +1 -1
  511. package/src/services/db-init-cache.js +4 -0
  512. package/src/services/db-init-cache.js.map +1 -1
  513. package/src/services/direct-login-token.d.ts +22 -1
  514. package/src/services/direct-login-token.d.ts.map +1 -1
  515. package/src/services/direct-login-token.js +21 -0
  516. package/src/services/direct-login-token.js.map +1 -1
  517. package/src/services/dummy-email-service.d.ts +20 -1
  518. package/src/services/dummy-email-service.d.ts.map +1 -1
  519. package/src/services/dummy-email-service.js +20 -1
  520. package/src/services/dummy-email-service.js.map +1 -1
  521. package/src/services/fec-usage-example.d.ts +25 -5
  522. package/src/services/fec-usage-example.d.ts.map +1 -1
  523. package/src/services/fec-usage-example.js +25 -5
  524. package/src/services/fec-usage-example.js.map +1 -1
  525. package/src/services/fec.d.ts +49 -7
  526. package/src/services/fec.d.ts.map +1 -1
  527. package/src/services/fec.js +39 -7
  528. package/src/services/fec.js.map +1 -1
  529. package/src/services/jwt.d.ts +17 -2
  530. package/src/services/jwt.d.ts.map +1 -1
  531. package/src/services/jwt.js +15 -0
  532. package/src/services/jwt.js.map +1 -1
  533. package/src/services/key-wrapping.d.ts +86 -8
  534. package/src/services/key-wrapping.d.ts.map +1 -1
  535. package/src/services/key-wrapping.js +75 -10
  536. package/src/services/key-wrapping.js.map +1 -1
  537. package/src/services/mnemonic.d.ts +14 -8
  538. package/src/services/mnemonic.d.ts.map +1 -1
  539. package/src/services/mnemonic.js +8 -2
  540. package/src/services/mnemonic.js.map +1 -1
  541. package/src/services/request-user.d.ts +33 -11
  542. package/src/services/request-user.d.ts.map +1 -1
  543. package/src/services/request-user.js +28 -6
  544. package/src/services/request-user.js.map +1 -1
  545. package/src/services/role.d.ts +28 -18
  546. package/src/services/role.d.ts.map +1 -1
  547. package/src/services/role.js +11 -1
  548. package/src/services/role.js.map +1 -1
  549. package/src/services/symmetric.d.ts +35 -17
  550. package/src/services/symmetric.d.ts.map +1 -1
  551. package/src/services/symmetric.js +41 -17
  552. package/src/services/symmetric.js.map +1 -1
  553. package/src/services/system-user.d.ts +7 -1
  554. package/src/services/system-user.d.ts.map +1 -1
  555. package/src/services/system-user.js +7 -1
  556. package/src/services/system-user.js.map +1 -1
  557. package/src/services/user.d.ts +61 -38
  558. package/src/services/user.d.ts.map +1 -1
  559. package/src/services/user.js +23 -0
  560. package/src/services/user.js.map +1 -1
  561. package/src/services/xor.d.ts +10 -6
  562. package/src/services/xor.d.ts.map +1 -1
  563. package/src/services/xor.js +14 -6
  564. package/src/services/xor.js.map +1 -1
  565. package/src/testing.d.ts +5 -0
  566. package/src/testing.d.ts.map +1 -1
  567. package/src/testing.js +5 -0
  568. package/src/testing.js.map +1 -1
  569. package/src/transactions/transaction-manager.d.ts +25 -0
  570. package/src/transactions/transaction-manager.d.ts.map +1 -1
  571. package/src/transactions/transaction-manager.js +20 -0
  572. package/src/transactions/transaction-manager.js.map +1 -1
  573. package/src/types/app-config.d.ts +16 -2
  574. package/src/types/app-config.d.ts.map +1 -1
  575. package/src/types/app-config.js +5 -0
  576. package/src/types/app-config.js.map +1 -1
  577. package/src/types/controller-config.d.ts +14 -2
  578. package/src/types/controller-config.d.ts.map +1 -1
  579. package/src/types/controller-config.js +5 -0
  580. package/src/types/controller-config.js.map +1 -1
  581. package/src/types/environment-variables.d.ts +5 -0
  582. package/src/types/environment-variables.d.ts.map +1 -1
  583. package/src/types/environment-variables.js +3 -1
  584. package/src/types/environment-variables.js.map +1 -1
  585. package/src/types/mongoose-helpers.d.ts +5 -0
  586. package/src/types/mongoose-helpers.d.ts.map +1 -1
  587. package/src/types/mongoose-helpers.js +3 -1
  588. package/src/types/mongoose-helpers.js.map +1 -1
  589. package/src/types.d.ts +17 -3
  590. package/src/types.d.ts.map +1 -1
  591. package/src/types.js +14 -0
  592. package/src/types.js.map +1 -1
  593. package/src/utils.d.ts +58 -29
  594. package/src/utils.d.ts.map +1 -1
  595. package/src/utils.js +56 -31
  596. package/src/utils.js.map +1 -1
  597. package/src/validation/validation-builder.d.ts +39 -0
  598. package/src/validation/validation-builder.d.ts.map +1 -1
  599. package/src/validation/validation-builder.js +39 -0
  600. package/src/validation/validation-builder.js.map +1 -1
@@ -1,8 +1,14 @@
1
+ /**
2
+ * @fileoverview Used direct login token schema factory for MongoDB.
3
+ * Creates schema for tracking consumed direct login tokens.
4
+ * @module schemas/used-direct-login-token
5
+ */
1
6
  import { Schema } from '@digitaldefiance/mongoose-types';
2
7
  import { BaseModelName } from '../enumerations';
3
8
  import { IConstants } from '../interfaces';
4
9
  /**
5
- * Configuration options for creating a used direct login token schema
10
+ * Configuration options for creating a used direct login token schema.
11
+ * @template TModelName - Model name type (defaults to BaseModelName)
6
12
  */
7
13
  export interface UsedDirectLoginTokenSchemaOptions<TModelName extends string = BaseModelName> {
8
14
  /** Model name for user reference */
@@ -11,11 +17,17 @@ export interface UsedDirectLoginTokenSchemaOptions<TModelName extends string = B
11
17
  idType?: any;
12
18
  }
13
19
  /**
14
- * Factory function to create an extensible used direct login token schema
20
+ * Factory function to create an extensible used direct login token schema.
21
+ * @template TModelName - Model name type (defaults to BaseModelName)
22
+ * @template TConstants - Constants type (defaults to IConstants)
23
+ * @param {UsedDirectLoginTokenSchemaOptions<TModelName>} options - Schema configuration options
24
+ * @param {TConstants} [_constants] - Optional constants (reserved for future use)
25
+ * @returns {Schema} Configured used direct login token schema with unique index
15
26
  */
16
27
  export declare function createUsedDirectLoginTokenSchema<TModelName extends string = BaseModelName, TConstants extends IConstants = IConstants>(options?: UsedDirectLoginTokenSchemaOptions<TModelName>, _constants?: TConstants): Schema;
17
28
  /**
18
- * Default used direct login token schema with base configuration
29
+ * Default used direct login token schema with base configuration.
30
+ * Pre-configured schema with ObjectId references and unique compound index.
19
31
  */
20
32
  export declare const UsedDirectLoginTokenSchema: Schema<any, import("mongoose").Model<any, any, any, any, any, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, {
21
33
  [x: number]: unknown;
@@ -1 +1 @@
1
- {"version":3,"file":"used-direct-login-token.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/schemas/used-direct-login-token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C;;GAEG;AACH,MAAM,WAAW,iCAAiC,CAChD,UAAU,SAAS,MAAM,GAAG,aAAa;IAEzC,oCAAoC;IACpC,aAAa,CAAC,EAAE,UAAU,CAAC;IAC3B,6BAA6B;IAC7B,MAAM,CAAC,EAAE,GAAG,CAAC;CACd;AAED;;GAEG;AACH,wBAAgB,gCAAgC,CAC9C,UAAU,SAAS,MAAM,GAAG,aAAa,EACzC,UAAU,SAAS,UAAU,GAAG,UAAU,EAE1C,OAAO,GAAE,iCAAiC,CAAC,UAAU,CAAM,EAC3D,UAAU,CAAC,EAAE,UAAU,GACtB,MAAM,CAcR;AAED;;GAEG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;EAAqC,CAAC"}
1
+ {"version":3,"file":"used-direct-login-token.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/schemas/used-direct-login-token.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C;;;GAGG;AACH,MAAM,WAAW,iCAAiC,CAChD,UAAU,SAAS,MAAM,GAAG,aAAa;IAEzC,oCAAoC;IACpC,aAAa,CAAC,EAAE,UAAU,CAAC;IAC3B,6BAA6B;IAC7B,MAAM,CAAC,EAAE,GAAG,CAAC;CACd;AAED;;;;;;;GAOG;AACH,wBAAgB,gCAAgC,CAC9C,UAAU,SAAS,MAAM,GAAG,aAAa,EACzC,UAAU,SAAS,UAAU,GAAG,UAAU,EAE1C,OAAO,GAAE,iCAAiC,CAAC,UAAU,CAAM,EAC3D,UAAU,CAAC,EAAE,UAAU,GACtB,MAAM,CAcR;AAED;;;GAGG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;EAAqC,CAAC"}
@@ -1,11 +1,21 @@
1
1
  "use strict";
2
+ /**
3
+ * @fileoverview Used direct login token schema factory for MongoDB.
4
+ * Creates schema for tracking consumed direct login tokens.
5
+ * @module schemas/used-direct-login-token
6
+ */
2
7
  Object.defineProperty(exports, "__esModule", { value: true });
3
8
  exports.UsedDirectLoginTokenSchema = void 0;
4
9
  exports.createUsedDirectLoginTokenSchema = createUsedDirectLoginTokenSchema;
5
10
  const mongoose_types_1 = require("@digitaldefiance/mongoose-types");
6
11
  const enumerations_1 = require("../enumerations");
7
12
  /**
8
- * Factory function to create an extensible used direct login token schema
13
+ * Factory function to create an extensible used direct login token schema.
14
+ * @template TModelName - Model name type (defaults to BaseModelName)
15
+ * @template TConstants - Constants type (defaults to IConstants)
16
+ * @param {UsedDirectLoginTokenSchemaOptions<TModelName>} options - Schema configuration options
17
+ * @param {TConstants} [_constants] - Optional constants (reserved for future use)
18
+ * @returns {Schema} Configured used direct login token schema with unique index
9
19
  */
10
20
  function createUsedDirectLoginTokenSchema(options = {}, _constants) {
11
21
  const { userModelName = enumerations_1.BaseModelName.User, idType = mongoose_types_1.Schema.Types.ObjectId, } = options;
@@ -18,7 +28,8 @@ function createUsedDirectLoginTokenSchema(options = {}, _constants) {
18
28
  return schema;
19
29
  }
20
30
  /**
21
- * Default used direct login token schema with base configuration
31
+ * Default used direct login token schema with base configuration.
32
+ * Pre-configured schema with ObjectId references and unique compound index.
22
33
  */
23
34
  exports.UsedDirectLoginTokenSchema = createUsedDirectLoginTokenSchema();
24
35
  //# sourceMappingURL=used-direct-login-token.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"used-direct-login-token.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/schemas/used-direct-login-token.ts"],"names":[],"mappings":";;;AAmBA,4EAoBC;AAvCD,oEAAyD;AACzD,kDAAgD;AAehD;;GAEG;AACH,SAAgB,gCAAgC,CAI9C,UAAyD,EAAE,EAC3D,UAAuB;IAEvB,MAAM,EACJ,aAAa,GAAG,4BAAa,CAAC,IAAkB,EAChD,MAAM,GAAG,uBAAM,CAAC,KAAK,CAAC,QAAQ,GAC/B,GAAG,OAAO,CAAC;IAEZ,MAAM,UAAU,GAAG;QACjB,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,aAAa,EAAE;QAC5D,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;KACxC,CAAC;IAEF,MAAM,MAAM,GAAG,IAAI,uBAAM,CAAC,UAAU,CAAC,CAAC;IACtC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACU,QAAA,0BAA0B,GAAG,gCAAgC,EAAE,CAAC"}
1
+ {"version":3,"file":"used-direct-login-token.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/schemas/used-direct-login-token.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AA2BH,4EAoBC;AA7CD,oEAAyD;AACzD,kDAAgD;AAgBhD;;;;;;;GAOG;AACH,SAAgB,gCAAgC,CAI9C,UAAyD,EAAE,EAC3D,UAAuB;IAEvB,MAAM,EACJ,aAAa,GAAG,4BAAa,CAAC,IAAkB,EAChD,MAAM,GAAG,uBAAM,CAAC,KAAK,CAAC,QAAQ,GAC/B,GAAG,OAAO,CAAC;IAEZ,MAAM,UAAU,GAAG;QACjB,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,aAAa,EAAE;QAC5D,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;KACxC,CAAC;IAEF,MAAM,MAAM,GAAG,IAAI,uBAAM,CAAC,UAAU,CAAC,CAAC;IACtC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACU,QAAA,0BAA0B,GAAG,gCAAgC,EAAE,CAAC"}
@@ -1,8 +1,14 @@
1
+ /**
2
+ * @fileoverview User-role relationship schema factory for MongoDB.
3
+ * Creates schema for many-to-many user-role associations.
4
+ * @module schemas/user-role
5
+ */
1
6
  import { Schema } from '@digitaldefiance/mongoose-types';
2
7
  import { BaseModelName } from '../enumerations';
3
8
  import { IConstants } from '../interfaces';
4
9
  /**
5
- * Configuration options for creating a user-role schema
10
+ * Configuration options for creating a user-role schema.
11
+ * @template TModelName - Model name type (defaults to BaseModelName)
6
12
  */
7
13
  export interface UserRoleSchemaOptions<TModelName extends string = BaseModelName> {
8
14
  /** Model name for user reference */
@@ -13,11 +19,18 @@ export interface UserRoleSchemaOptions<TModelName extends string = BaseModelName
13
19
  idType?: any;
14
20
  }
15
21
  /**
16
- * Factory function to create an extensible user-role schema
22
+ * Factory function to create an extensible user-role schema.
23
+ * Includes compound unique index and separate indexes for queries.
24
+ * @template TModelName - Model name type (defaults to BaseModelName)
25
+ * @template TConstants - Constants type (defaults to IConstants)
26
+ * @param {UserRoleSchemaOptions<TModelName>} options - Schema configuration options
27
+ * @param {TConstants} [_constants] - Optional constants (reserved for future use)
28
+ * @returns {Schema} Configured user-role schema with indexes
17
29
  */
18
30
  export declare function createUserRoleSchema<TModelName extends string = BaseModelName, TConstants extends IConstants = IConstants>(options?: UserRoleSchemaOptions<TModelName>, _constants?: TConstants): Schema;
19
31
  /**
20
- * Default user-role schema with base configuration
32
+ * Default user-role schema with base configuration.
33
+ * Pre-configured schema with compound unique index on userId and roleId.
21
34
  */
22
35
  export declare const UserRoleSchema: Schema<any, import("mongoose").Model<any, any, any, any, any, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, {
23
36
  [x: number]: unknown;
@@ -1 +1 @@
1
- {"version":3,"file":"user-role.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/schemas/user-role.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C;;GAEG;AACH,MAAM,WAAW,qBAAqB,CACpC,UAAU,SAAS,MAAM,GAAG,aAAa;IAEzC,oCAAoC;IACpC,aAAa,CAAC,EAAE,UAAU,CAAC;IAC3B,oCAAoC;IACpC,aAAa,CAAC,EAAE,UAAU,CAAC;IAC3B,6BAA6B;IAC7B,MAAM,CAAC,EAAE,GAAG,CAAC;CACd;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,SAAS,MAAM,GAAG,aAAa,EACzC,UAAU,SAAS,UAAU,GAAG,UAAU,EAE1C,OAAO,GAAE,qBAAqB,CAAC,UAAU,CAAM,EAC/C,UAAU,CAAC,EAAE,UAAU,GACtB,MAAM,CA8CR;AAED;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;EAAyB,CAAC"}
1
+ {"version":3,"file":"user-role.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/schemas/user-role.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C;;;GAGG;AACH,MAAM,WAAW,qBAAqB,CACpC,UAAU,SAAS,MAAM,GAAG,aAAa;IAEzC,oCAAoC;IACpC,aAAa,CAAC,EAAE,UAAU,CAAC;IAC3B,oCAAoC;IACpC,aAAa,CAAC,EAAE,UAAU,CAAC;IAC3B,6BAA6B;IAC7B,MAAM,CAAC,EAAE,GAAG,CAAC;CACd;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,SAAS,MAAM,GAAG,aAAa,EACzC,UAAU,SAAS,UAAU,GAAG,UAAU,EAE1C,OAAO,GAAE,qBAAqB,CAAC,UAAU,CAAM,EAC/C,UAAU,CAAC,EAAE,UAAU,GACtB,MAAM,CA8CR;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;EAAyB,CAAC"}
@@ -1,11 +1,22 @@
1
1
  "use strict";
2
+ /**
3
+ * @fileoverview User-role relationship schema factory for MongoDB.
4
+ * Creates schema for many-to-many user-role associations.
5
+ * @module schemas/user-role
6
+ */
2
7
  Object.defineProperty(exports, "__esModule", { value: true });
3
8
  exports.UserRoleSchema = void 0;
4
9
  exports.createUserRoleSchema = createUserRoleSchema;
5
10
  const mongoose_types_1 = require("@digitaldefiance/mongoose-types");
6
11
  const enumerations_1 = require("../enumerations");
7
12
  /**
8
- * Factory function to create an extensible user-role schema
13
+ * Factory function to create an extensible user-role schema.
14
+ * Includes compound unique index and separate indexes for queries.
15
+ * @template TModelName - Model name type (defaults to BaseModelName)
16
+ * @template TConstants - Constants type (defaults to IConstants)
17
+ * @param {UserRoleSchemaOptions<TModelName>} options - Schema configuration options
18
+ * @param {TConstants} [_constants] - Optional constants (reserved for future use)
19
+ * @returns {Schema} Configured user-role schema with indexes
9
20
  */
10
21
  function createUserRoleSchema(options = {}, _constants) {
11
22
  const { userModelName = enumerations_1.BaseModelName.User, roleModelName = enumerations_1.BaseModelName.Role, idType = mongoose_types_1.Schema.Types.ObjectId, } = options;
@@ -49,7 +60,8 @@ function createUserRoleSchema(options = {}, _constants) {
49
60
  return schema;
50
61
  }
51
62
  /**
52
- * Default user-role schema with base configuration
63
+ * Default user-role schema with base configuration.
64
+ * Pre-configured schema with compound unique index on userId and roleId.
53
65
  */
54
66
  exports.UserRoleSchema = createUserRoleSchema();
55
67
  //# sourceMappingURL=user-role.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"user-role.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/schemas/user-role.ts"],"names":[],"mappings":";;;AAqBA,oDAoDC;AAzED,oEAAyD;AACzD,kDAAgD;AAiBhD;;GAEG;AACH,SAAgB,oBAAoB,CAIlC,UAA6C,EAAE,EAC/C,UAAuB;IAEvB,MAAM,EACJ,aAAa,GAAG,4BAAa,CAAC,IAAkB,EAChD,aAAa,GAAG,4BAAa,CAAC,IAAkB,EAChD,MAAM,GAAG,uBAAM,CAAC,KAAK,CAAC,QAAQ,GAC/B,GAAG,OAAO,CAAC;IAEZ,MAAM,UAAU,GAAG;QACjB,MAAM,EAAE;YACN,IAAI,EAAE,MAAM;YACZ,GAAG,EAAE,aAAa;YAClB,QAAQ,EAAE,IAAI;SACf;QACD,MAAM,EAAE;YACN,IAAI,EAAE,MAAM;YACZ,GAAG,EAAE,aAAa;YAClB,QAAQ,EAAE,IAAI;SACf;QACD,SAAS,EAAE;YACT,IAAI,EAAE,MAAM;YACZ,GAAG,EAAE,aAAa;YAClB,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,IAAI;SAChB;QACD,SAAS,EAAE;YACT,IAAI,EAAE,MAAM;YACZ,GAAG,EAAE,aAAa;YAClB,QAAQ,EAAE,IAAI;SACf;QACD,SAAS,EAAE;YACT,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,IAAI;SACf;QACD,SAAS,EAAE;YACT,IAAI,EAAE,MAAM;YACZ,GAAG,EAAE,aAAa;YAClB,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,IAAI;SACf;KACF,CAAC;IAEF,MAAM,MAAM,GAAG,IAAI,uBAAM,CAAC,UAAU,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5D,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACzD,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;IAC5B,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;IAC5B,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACU,QAAA,cAAc,GAAG,oBAAoB,EAAE,CAAC"}
1
+ {"version":3,"file":"user-role.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/schemas/user-role.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AA8BH,oDAoDC;AAhFD,oEAAyD;AACzD,kDAAgD;AAkBhD;;;;;;;;GAQG;AACH,SAAgB,oBAAoB,CAIlC,UAA6C,EAAE,EAC/C,UAAuB;IAEvB,MAAM,EACJ,aAAa,GAAG,4BAAa,CAAC,IAAkB,EAChD,aAAa,GAAG,4BAAa,CAAC,IAAkB,EAChD,MAAM,GAAG,uBAAM,CAAC,KAAK,CAAC,QAAQ,GAC/B,GAAG,OAAO,CAAC;IAEZ,MAAM,UAAU,GAAG;QACjB,MAAM,EAAE;YACN,IAAI,EAAE,MAAM;YACZ,GAAG,EAAE,aAAa;YAClB,QAAQ,EAAE,IAAI;SACf;QACD,MAAM,EAAE;YACN,IAAI,EAAE,MAAM;YACZ,GAAG,EAAE,aAAa;YAClB,QAAQ,EAAE,IAAI;SACf;QACD,SAAS,EAAE;YACT,IAAI,EAAE,MAAM;YACZ,GAAG,EAAE,aAAa;YAClB,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,IAAI;SAChB;QACD,SAAS,EAAE;YACT,IAAI,EAAE,MAAM;YACZ,GAAG,EAAE,aAAa;YAClB,QAAQ,EAAE,IAAI;SACf;QACD,SAAS,EAAE;YACT,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,IAAI;SACf;QACD,SAAS,EAAE;YACT,IAAI,EAAE,MAAM;YACZ,GAAG,EAAE,aAAa;YAClB,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,IAAI;SACf;KACF,CAAC;IAEF,MAAM,MAAM,GAAG,IAAI,uBAAM,CAAC,UAAU,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5D,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACzD,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;IAC5B,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;IAC5B,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACU,QAAA,cAAc,GAAG,oBAAoB,EAAE,CAAC"}
@@ -1,8 +1,27 @@
1
+ /**
2
+ * @fileoverview User schema factory for MongoDB with comprehensive validation.
3
+ * Creates schema for user management with authentication and preferences.
4
+ * @module schemas/user
5
+ */
1
6
  import { Schema } from '@digitaldefiance/mongoose-types';
2
7
  import { IConstants } from '../interfaces/constants';
8
+ /**
9
+ * Creates a user schema with custom or default constants.
10
+ * Includes validation for username, email, timezone, currency, and language.
11
+ * @template T - Constants type extending IConstants
12
+ * @param {Function} [usernameValidationMessage] - Custom username validation message
13
+ * @param {Function} [emailValidationMessage] - Custom email validation message
14
+ * @param {Function} [timezoneValidationMessage] - Custom timezone validation message
15
+ * @param {Function} [currencyValidationMessage] - Custom currency validation message
16
+ * @param {readonly string[]} [supportedLanguages] - Supported language codes
17
+ * @param {any} idType - ID type for references (defaults to ObjectId)
18
+ * @param {T} constants - Constants for validation (defaults to AppConstants)
19
+ * @returns {Schema} Configured user schema with timestamps
20
+ */
3
21
  export declare function createUserSchema<T extends IConstants = IConstants>(usernameValidationMessage?: () => string, emailValidationMessage?: () => string, timezoneValidationMessage?: () => string, currencyValidationMessage?: () => string, supportedLanguages?: readonly string[], idType?: any, constants?: T): Schema;
4
22
  /**
5
- * Default user schema with base configuration
23
+ * Default user schema with base configuration.
24
+ * Pre-configured schema with standard validation and supported languages.
6
25
  */
7
26
  export declare const UserSchema: Schema<any, import("mongoose").Model<any, any, any, any, any, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, {
8
27
  [x: number]: unknown;
@@ -1 +1 @@
1
- {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/schemas/user.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAUzD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,EAChE,yBAAyB,CAAC,EAAE,MAAM,MAAM,EACxC,sBAAsB,CAAC,EAAE,MAAM,MAAM,EACrC,yBAAyB,CAAC,EAAE,MAAM,MAAM,EACxC,yBAAyB,CAAC,EAAE,MAAM,MAAM,EACxC,kBAAkB,CAAC,EAAE,SAAS,MAAM,EAAE,EACtC,MAAM,GAAE,GAA2B,EACnC,SAAS,GAAE,CAAqB,GAC/B,MAAM,CAqMR;AAED;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;EAAqB,CAAC"}
1
+ {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/schemas/user.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAUzD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,EAChE,yBAAyB,CAAC,EAAE,MAAM,MAAM,EACxC,sBAAsB,CAAC,EAAE,MAAM,MAAM,EACrC,yBAAyB,CAAC,EAAE,MAAM,MAAM,EACxC,yBAAyB,CAAC,EAAE,MAAM,MAAM,EACxC,kBAAkB,CAAC,EAAE,SAAS,MAAM,EAAE,EACtC,MAAM,GAAE,GAA2B,EACnC,SAAS,GAAE,CAAqB,GAC/B,MAAM,CAqMR;AAED;;;GAGG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;EAAqB,CAAC"}
@@ -1,4 +1,9 @@
1
1
  "use strict";
2
+ /**
3
+ * @fileoverview User schema factory for MongoDB with comprehensive validation.
4
+ * Creates schema for user management with authentication and preferences.
5
+ * @module schemas/user
6
+ */
2
7
  Object.defineProperty(exports, "__esModule", { value: true });
3
8
  exports.UserSchema = void 0;
4
9
  exports.createUserSchema = createUserSchema;
@@ -10,6 +15,19 @@ const currency_codes_1 = require("currency-codes");
10
15
  const validator_1 = tslib_1.__importDefault(require("validator"));
11
16
  const constants_1 = require("../constants");
12
17
  const enumerations_1 = require("../enumerations");
18
+ /**
19
+ * Creates a user schema with custom or default constants.
20
+ * Includes validation for username, email, timezone, currency, and language.
21
+ * @template T - Constants type extending IConstants
22
+ * @param {Function} [usernameValidationMessage] - Custom username validation message
23
+ * @param {Function} [emailValidationMessage] - Custom email validation message
24
+ * @param {Function} [timezoneValidationMessage] - Custom timezone validation message
25
+ * @param {Function} [currencyValidationMessage] - Custom currency validation message
26
+ * @param {readonly string[]} [supportedLanguages] - Supported language codes
27
+ * @param {any} idType - ID type for references (defaults to ObjectId)
28
+ * @param {T} constants - Constants for validation (defaults to AppConstants)
29
+ * @returns {Schema} Configured user schema with timestamps
30
+ */
13
31
  function createUserSchema(usernameValidationMessage, emailValidationMessage, timezoneValidationMessage, currencyValidationMessage, supportedLanguages, idType = mongoose_types_1.Schema.Types.ObjectId, constants = constants_1.LocalhostConstants) {
14
32
  const definition = {
15
33
  /**
@@ -189,7 +207,8 @@ function createUserSchema(usernameValidationMessage, emailValidationMessage, tim
189
207
  return new mongoose_types_1.Schema(definition, { timestamps: true });
190
208
  }
191
209
  /**
192
- * Default user schema with base configuration
210
+ * Default user schema with base configuration.
211
+ * Pre-configured schema with standard validation and supported languages.
193
212
  */
194
213
  exports.UserSchema = createUserSchema();
195
214
  //# sourceMappingURL=user.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"user.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/schemas/user.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"user.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/schemas/user.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,8 @@
1
+ /**
2
+ * @fileoverview Backup code service for secure account recovery.
3
+ * Implements v1.0.0 backup code scheme with Argon2id KDF and HKDF-SHA256 checksums.
4
+ * @module services/backup-code
5
+ */
1
6
  import { SecureString } from '@digitaldefiance/ecies-lib';
2
7
  import { ClientSession } from '@digitaldefiance/mongoose-types';
3
8
  import { Member as BackendMember, ECIESService, PlatformID } from '@digitaldefiance/node-ecies-lib';
@@ -8,16 +13,15 @@ import { BaseService } from './base';
8
13
  import { KeyWrappingService } from './index';
9
14
  import { RoleService } from './role';
10
15
  /**
11
- * Service handling generation, storage, validation, consumption, and recovery using backup codes.
12
- *
13
- * v1 scheme:
14
- * - Code: 32 lowercase alphanumerics (a–z0–9), displayed as 8 groups of 4: xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxx
15
- * - Checksum/tag: HKDF-SHA256(codeUtf8, salt, "backup-checksum") 32 bytes (stored as hex)
16
- * - KDF for encryption key: Argon2id(codeUtf8, salt) → 32 bytes
17
- * - Encryption: SymmetricService AEAD (encryptedData must embed IV + authTag + ciphertext)
18
- * - Wrapping: AEAD blob wrapped with system user's asymmetric key (ECIES)
16
+ * Service for backup code generation, validation, and key recovery.
17
+ * Implements secure backup code scheme with constant-time validation and key wrapping.
18
+ * @template TID - Platform ID type (defaults to Buffer)
19
+ * @template TDate - Date type (defaults to Date)
20
+ * @template TTokenRole - Token role interface type
21
+ * @template TApplication - Application interface type
22
+ * @extends {BaseService<TID>}
19
23
  */
20
- export declare class BackupCodeService<I extends PlatformID = Buffer, D extends Date = Date, TTokenRole extends ITokenRole<I, D> = ITokenRole<I, D>, TApplication extends IApplication<I> = IApplication<I>> extends BaseService<I> {
24
+ export declare class BackupCodeService<TID extends PlatformID = Buffer, TDate extends Date = Date, TTokenRole extends ITokenRole<TID, TDate> = ITokenRole<TID, TDate>, TApplication extends IApplication<TID> = IApplication<TID>> extends BaseService<TID> {
21
25
  private readonly eciesService;
22
26
  private systemUser?;
23
27
  private readonly keyWrappingService;
@@ -25,7 +29,7 @@ export declare class BackupCodeService<I extends PlatformID = Buffer, D extends
25
29
  /**
26
30
  * Construct a BackupCodeService.
27
31
  */
28
- constructor(application: TApplication, eciesService: ECIESService<I>, keyWrappingService: KeyWrappingService, roleService: RoleService<I, D, TTokenRole>);
32
+ constructor(application: TApplication, eciesService: ECIESService<TID>, keyWrappingService: KeyWrappingService, roleService: RoleService<TID, TDate, TTokenRole>);
29
33
  /**
30
34
  * Get the lazily-initialized system user for key wrapping/unwrapping.
31
35
  */
@@ -34,7 +38,7 @@ export declare class BackupCodeService<I extends PlatformID = Buffer, D extends
34
38
  * Forcibly set the system user (for database initialization)
35
39
  * @param user
36
40
  */
37
- setSystemUser(user: BackendMember<I>): void;
41
+ setSystemUser(user: BackendMember<TID>): void;
38
42
  /**
39
43
  * v1: Consume (validate and remove) a backup code via constant-time checksum match.
40
44
  */
@@ -52,23 +56,23 @@ export declare class BackupCodeService<I extends PlatformID = Buffer, D extends
52
56
  /**
53
57
  * v1: Recover a user's private key using a backup code.
54
58
  */
55
- recoverKeyWithBackupCodeV1(userDoc: IUserDocument<string, I>, backupCode: string, newPassword?: SecureString, session?: ClientSession): Promise<{
56
- userDoc: IUserDocument<string, I>;
57
- user: BackendMember<I>;
59
+ recoverKeyWithBackupCodeV1(userDoc: IUserDocument<string, TID>, backupCode: string, newPassword?: SecureString, session?: ClientSession): Promise<{
60
+ userDoc: IUserDocument<string, TID>;
61
+ user: BackendMember<TID>;
58
62
  codeCount: number;
59
63
  }>;
60
64
  /**
61
65
  * Recover a user's private key using a backup code (version-dispatched).
62
66
  */
63
- recoverKeyWithBackupCode(userDoc: IUserDocument<string, I>, backupCode: string, newPassword?: SecureString, session?: ClientSession): Promise<{
64
- userDoc: IUserDocument<string, I>;
65
- user: BackendMember<I>;
67
+ recoverKeyWithBackupCode(userDoc: IUserDocument<string, TID>, backupCode: string, newPassword?: SecureString, session?: ClientSession): Promise<{
68
+ userDoc: IUserDocument<string, TID>;
69
+ user: BackendMember<TID>;
66
70
  codeCount: number;
67
71
  }>;
68
72
  /**
69
73
  * Rewrap system-wrapped AEAD blobs from old system key to new one without touching inner AEAD.
70
74
  */
71
- rewrapAllUsersBackupCodes(fetchBatch: (afterId?: string, limit?: number) => Promise<IUserDocument<string, I>[]>, saveUser: (user: IUserDocument<string, I>) => Promise<void>, oldSystem: BackendMember, newSystem: BackendMember, options?: {
75
+ rewrapAllUsersBackupCodes(fetchBatch: (afterId?: string, limit?: number) => Promise<IUserDocument<string, TID>[]>, saveUser: (user: IUserDocument<string, TID>) => Promise<void>, oldSystem: BackendMember, newSystem: BackendMember, options?: {
72
76
  batchSize?: number;
73
77
  onProgress?: (count: number) => void;
74
78
  }): Promise<number>;
@@ -1 +1 @@
1
- {"version":3,"file":"backup-code.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/services/backup-code.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"backup-code.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/services/backup-code.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,9 @@
1
1
  "use strict";
2
+ /**
3
+ * @fileoverview Backup code service for secure account recovery.
4
+ * Implements v1.0.0 backup code scheme with Argon2id KDF and HKDF-SHA256 checksums.
5
+ * @module services/backup-code
6
+ */
2
7
  Object.defineProperty(exports, "__esModule", { value: true });
3
8
  exports.BackupCodeService = void 0;
4
9
  const ecies_lib_1 = require("@digitaldefiance/ecies-lib");
@@ -12,14 +17,13 @@ const base_1 = require("./base");
12
17
  const symmetric_1 = require("./symmetric");
13
18
  const system_user_1 = require("./system-user");
14
19
  /**
15
- * Service handling generation, storage, validation, consumption, and recovery using backup codes.
16
- *
17
- * v1 scheme:
18
- * - Code: 32 lowercase alphanumerics (a–z0–9), displayed as 8 groups of 4: xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxx
19
- * - Checksum/tag: HKDF-SHA256(codeUtf8, salt, "backup-checksum") 32 bytes (stored as hex)
20
- * - KDF for encryption key: Argon2id(codeUtf8, salt) → 32 bytes
21
- * - Encryption: SymmetricService AEAD (encryptedData must embed IV + authTag + ciphertext)
22
- * - Wrapping: AEAD blob wrapped with system user's asymmetric key (ECIES)
20
+ * Service for backup code generation, validation, and key recovery.
21
+ * Implements secure backup code scheme with constant-time validation and key wrapping.
22
+ * @template TID - Platform ID type (defaults to Buffer)
23
+ * @template TDate - Date type (defaults to Date)
24
+ * @template TTokenRole - Token role interface type
25
+ * @template TApplication - Application interface type
26
+ * @extends {BaseService<TID>}
23
27
  */
24
28
  class BackupCodeService extends base_1.BaseService {
25
29
  eciesService;
@@ -1 +1 @@
1
- {"version":3,"file":"backup-code.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/services/backup-code.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"backup-code.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/services/backup-code.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,19 @@
1
+ /**
2
+ * @fileoverview Base service class providing common functionality for all services.
3
+ * Includes transaction management utilities.
4
+ * @module services/base
5
+ */
1
6
  import { ClientSession } from '@digitaldefiance/mongoose-types';
2
7
  import { IApplication } from '../interfaces/application';
3
8
  import { TransactionCallback } from '../types';
4
9
  import { TransactionOptions } from '../utils';
5
10
  import type { PlatformID } from '@digitaldefiance/node-ecies-lib';
11
+ /**
12
+ * Base service class providing common functionality for all services.
13
+ * Includes transaction wrapper for database operations.
14
+ * @template TID - Platform ID type (defaults to Buffer)
15
+ * @template TApplication - Application interface type
16
+ */
6
17
  export declare class BaseService<TID extends PlatformID = Buffer, TApplication extends IApplication<TID> = IApplication<TID>> {
7
18
  protected readonly application: TApplication;
8
19
  constructor(application: TApplication);
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/services/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EACL,kBAAkB,EAEnB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAElE,qBAAa,WAAW,CACtB,GAAG,SAAS,UAAU,GAAG,MAAM,EAC/B,YAAY,SAAS,YAAY,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC;IAE1D,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,YAAY,CAAC;gBAEjC,WAAW,EAAE,YAAY;IAGxB,eAAe,CAAC,CAAC,EAC5B,QAAQ,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAChC,OAAO,CAAC,EAAE,aAAa,EACvB,OAAO,CAAC,EAAE,kBAAkB,CAAC,GAAG,CAAC,EACjC,GAAG,IAAI,EAAE,OAAO,EAAE;CAWrB"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/services/base.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EACL,kBAAkB,EAEnB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAElE;;;;;GAKG;AACH,qBAAa,WAAW,CACtB,GAAG,SAAS,UAAU,GAAG,MAAM,EAC/B,YAAY,SAAS,YAAY,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC;IAE1D,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,YAAY,CAAC;gBAEjC,WAAW,EAAE,YAAY;IAGxB,eAAe,CAAC,CAAC,EAC5B,QAAQ,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAChC,OAAO,CAAC,EAAE,aAAa,EACvB,OAAO,CAAC,EAAE,kBAAkB,CAAC,GAAG,CAAC,EACjC,GAAG,IAAI,EAAE,OAAO,EAAE;CAWrB"}
@@ -1,7 +1,18 @@
1
1
  "use strict";
2
+ /**
3
+ * @fileoverview Base service class providing common functionality for all services.
4
+ * Includes transaction management utilities.
5
+ * @module services/base
6
+ */
2
7
  Object.defineProperty(exports, "__esModule", { value: true });
3
8
  exports.BaseService = void 0;
4
9
  const utils_1 = require("../utils");
10
+ /**
11
+ * Base service class providing common functionality for all services.
12
+ * Includes transaction wrapper for database operations.
13
+ * @template TID - Platform ID type (defaults to Buffer)
14
+ * @template TApplication - Application interface type
15
+ */
5
16
  class BaseService {
6
17
  application;
7
18
  constructor(application) {
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/services/base.ts"],"names":[],"mappings":";;;AAGA,oCAGkB;AAGlB,MAAa,WAAW;IAIH,WAAW,CAAe;IAE7C,YAAY,WAAyB;QACnC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IACM,KAAK,CAAC,eAAe,CAC1B,QAAgC,EAChC,OAAuB,EACvB,OAAiC,EACjC,GAAG,IAAe;QAElB,OAAO,MAAM,IAAA,uBAAoB,EAC/B,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,UAAU,EAC9B,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,eAAe,EAClD,OAAO,EACP,QAAQ,EACR,OAAO,IAAI,EAAE,EACb,GAAG,IAAI,CACR,CAAC;IACJ,CAAC;CACF;AAxBD,kCAwBC"}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/services/base.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAKH,oCAGkB;AAGlB;;;;;GAKG;AACH,MAAa,WAAW;IAIH,WAAW,CAAe;IAE7C,YAAY,WAAyB;QACnC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IACM,KAAK,CAAC,eAAe,CAC1B,QAAgC,EAChC,OAAuB,EACvB,OAAiC,EACjC,GAAG,IAAe;QAElB,OAAO,MAAM,IAAA,uBAAoB,EAC/B,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,UAAU,EAC9B,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,eAAe,EAClD,OAAO,EACP,QAAQ,EACR,OAAO,IAAI,EAAE,EACb,GAAG,IAAI,CACR,CAAC;IACJ,CAAC;CACF;AAxBD,kCAwBC"}
@@ -1,68 +1,89 @@
1
+ /**
2
+ * @fileoverview Service for calculating and validating SHA3-512 checksums.
3
+ * Provides checksum operations for buffers, strings, files, and streams.
4
+ * @module services/checksum
5
+ */
1
6
  import { ChecksumBuffer, ChecksumString } from '@digitaldefiance/node-ecies-lib';
2
7
  import { IChecksumConfig } from '../interfaces/checksum-config';
3
8
  import { IChecksumConsts } from '../interfaces/checksum-consts';
9
+ /**
10
+ * Service for calculating and validating SHA3-512 checksums.
11
+ * Supports multiple input types including buffers, strings, files, and streams.
12
+ */
4
13
  export declare class ChecksumService {
14
+ /** Checksum configuration (algorithm and encoding) */
5
15
  private readonly config;
16
+ /** Checksum constants (buffer lengths and defaults) */
6
17
  protected readonly constants: IChecksumConsts;
18
+ /**
19
+ * Creates a new checksum service instance.
20
+ * @param config Optional configuration overrides
21
+ * @param constants Checksum constants (defaults to CHECKSUM)
22
+ */
7
23
  constructor(config?: Partial<IChecksumConfig>, constants?: IChecksumConsts);
8
24
  /**
9
- * Calculate a checksum for a buffer
10
- * @param data - The data to calculate the checksum for
11
- * @returns The checksum as a Buffer
25
+ * Calculates a checksum for a buffer.
26
+ * @param data Buffer to calculate checksum for
27
+ * @returns Checksum as a Buffer
12
28
  */
13
29
  calculateChecksum(data: Buffer): ChecksumBuffer;
14
30
  /**
15
- * Calculate a checksum for multiple buffers
16
- * @param buffers - The buffers to calculate the checksum for
17
- * @returns The checksum as a Buffer
31
+ * Calculates a checksum for multiple buffers.
32
+ * @param buffers Array of buffers to calculate checksum for
33
+ * @returns Checksum as a Buffer
18
34
  */
19
35
  calculateChecksumForBuffers(buffers: Buffer[]): ChecksumBuffer;
20
36
  /**
21
- * Calculate a checksum for a string
22
- * @param str - The string to calculate the checksum for
23
- * @returns The checksum as a Buffer
37
+ * Calculates a checksum for a UTF-8 string.
38
+ * @param str String to calculate checksum for
39
+ * @returns Checksum as a Buffer
24
40
  */
25
41
  calculateChecksumForString(str: string): ChecksumBuffer;
26
42
  /**
27
- * Compare two checksums for equality
28
- * @param checksum1 - The first checksum
29
- * @param checksum2 - The second checksum
30
- * @returns True if the checksums are equal, false otherwise
43
+ * Compares two checksums for equality.
44
+ * @param checksum1 First checksum
45
+ * @param checksum2 Second checksum
46
+ * @returns True if checksums are equal, false otherwise
31
47
  */
32
48
  compareChecksums(checksum1: ChecksumBuffer, checksum2: ChecksumBuffer): boolean;
33
49
  /**
34
- * Convert a checksum to a hex string
35
- * @param checksum - The checksum to convert
36
- * @returns The checksum as a hex string
50
+ * Converts a checksum buffer to a hex string.
51
+ * @param checksum Checksum buffer
52
+ * @returns Checksum as a hex string
37
53
  */
38
54
  checksumToHexString(checksum: ChecksumBuffer): ChecksumString;
39
55
  /**
40
- * Convert a hex string to a checksum
41
- * @param hexString - The hex string to convert
42
- * @returns The checksum as a Buffer
56
+ * Converts a hex string to a checksum buffer.
57
+ * @param hexString Hex string to convert
58
+ * @returns Checksum as a Buffer
59
+ * @throws {Error} If hex string length is invalid
43
60
  */
44
61
  hexStringToChecksum(hexString: string): ChecksumBuffer;
45
62
  /**
46
- * Validate a checksum buffer
47
- * @param checksum - The checksum to validate
48
- * @returns True if the checksum is valid, false otherwise
63
+ * Validates a checksum buffer length.
64
+ * @param checksum Checksum buffer to validate
65
+ * @returns True if checksum length is valid, false otherwise
49
66
  */
50
67
  validateChecksum(checksum: ChecksumBuffer): boolean;
51
68
  /**
52
- * Calculate a checksum for a file
53
- * @param filePath - The path to the file
54
- * @returns The checksum as a Buffer
69
+ * Calculates a checksum for a file.
70
+ * @param filePath Path to the file
71
+ * @returns Promise resolving to checksum as a Buffer
72
+ * @throws {Error} If file cannot be read
55
73
  */
56
74
  calculateChecksumForFile(filePath: string): Promise<ChecksumBuffer>;
57
75
  /**
58
- * Internal file reading method
76
+ * Internal file reading method using fs.promises.
77
+ * @param filePath Path to the file
78
+ * @returns Promise resolving to file contents as Buffer
79
+ * @throws {Error} If file cannot be read
59
80
  * @private
60
81
  */
61
82
  private readFile;
62
83
  /**
63
- * Calculate a checksum for a stream
64
- * @param stream - The readable stream
65
- * @returns The checksum as a Buffer
84
+ * Calculates a checksum for a readable stream.
85
+ * @param stream Readable stream to calculate checksum for
86
+ * @returns Promise resolving to checksum as a Buffer
66
87
  */
67
88
  calculateChecksumForStream(stream: NodeJS.ReadableStream): Promise<ChecksumBuffer>;
68
89
  }
@@ -1 +1 @@
1
- {"version":3,"file":"checksum.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/services/checksum.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,cAAc,EACf,MAAM,iCAAiC,CAAC;AAIzC,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;gBAG5C,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,EACjC,SAAS,GAAE,eAA0B;IAUvC;;;;OAIG;IACI,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc;IAOtD;;;;OAIG;IACI,2BAA2B,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,cAAc;IASrE;;;;OAIG;IACI,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc;IAI9D;;;;;OAKG;IACI,gBAAgB,CACrB,SAAS,EAAE,cAAc,EACzB,SAAS,EAAE,cAAc,GACxB,OAAO;IAUV;;;;OAIG;IACI,mBAAmB,CAAC,QAAQ,EAAE,cAAc,GAAG,cAAc;IAIpE;;;;OAIG;IACI,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc;IAO7D;;;;OAIG;IACI,gBAAgB,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO;IAI1D;;;;OAIG;IACU,wBAAwB,CACnC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,cAAc,CAAC;IAQ1B;;;OAGG;YACW,QAAQ;IAUtB;;;;OAIG;IACI,0BAA0B,CAC/B,MAAM,EAAE,MAAM,CAAC,cAAc,GAC5B,OAAO,CAAC,cAAc,CAAC;CAoB3B"}
1
+ {"version":3,"file":"checksum.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/services/checksum.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,cAAc,EACd,cAAc,EACf,MAAM,iCAAiC,CAAC;AAIzC,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE;;;GAGG;AACH,qBAAa,eAAe;IAC1B,sDAAsD;IACtD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,uDAAuD;IACvD,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IAE9C;;;;OAIG;gBAED,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,EACjC,SAAS,GAAE,eAA0B;IAUvC;;;;OAIG;IACI,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc;IAOtD;;;;OAIG;IACI,2BAA2B,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,cAAc;IASrE;;;;OAIG;IACI,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc;IAI9D;;;;;OAKG;IACI,gBAAgB,CACrB,SAAS,EAAE,cAAc,EACzB,SAAS,EAAE,cAAc,GACxB,OAAO;IAUV;;;;OAIG;IACI,mBAAmB,CAAC,QAAQ,EAAE,cAAc,GAAG,cAAc;IAIpE;;;;;OAKG;IACI,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc;IAO7D;;;;OAIG;IACI,gBAAgB,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO;IAI1D;;;;;OAKG;IACU,wBAAwB,CACnC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,cAAc,CAAC;IAQ1B;;;;;;OAMG;YACW,QAAQ;IAUtB;;;;OAIG;IACI,0BAA0B,CAC/B,MAAM,EAAE,MAAM,CAAC,cAAc,GAC5B,OAAO,CAAC,cAAc,CAAC;CAoB3B"}