@digitaldefiance/node-express-suite 3.6.7 → 3.6.8

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 (859) hide show
  1. package/LICENSE +21 -0
  2. package/package.json +13 -9
  3. package/src/__tests__/fixtures/index.ts +1 -0
  4. package/src/__tests__/fixtures/model-mocks.mock.ts +122 -0
  5. package/src/__tests__/helpers/application.mock.ts +90 -0
  6. package/src/__tests__/helpers/{index.d.ts → index.ts} +1 -2
  7. package/src/__tests__/helpers/setup-test-env.ts +163 -0
  8. package/src/__tests__/index.ts +2 -0
  9. package/src/application-base.ts +520 -0
  10. package/src/application-concrete.ts +32 -0
  11. package/src/application.ts +321 -0
  12. package/src/backup-code.ts +348 -0
  13. package/src/builders/application-builder.ts +94 -0
  14. package/src/builders/{index.d.ts → index.ts} +0 -1
  15. package/src/constants.ts +83 -0
  16. package/src/container/{index.d.ts → index.ts} +0 -1
  17. package/src/container/service-container.ts +39 -0
  18. package/src/container/service-definitions.ts +11 -0
  19. package/src/controllers/base.ts +496 -0
  20. package/src/controllers/{index.d.ts → index.ts} +0 -1
  21. package/src/controllers/user.ts +1687 -0
  22. package/src/database/{database-initializer.d.ts → database-initializer.ts} +3 -3
  23. package/src/database/{index.d.ts → index.ts} +0 -1
  24. package/src/decorators/base-controller.ts +77 -0
  25. package/src/decorators/controller.ts +140 -0
  26. package/src/decorators/{index.d.ts → index.ts} +0 -1
  27. package/src/decorators/zod-validation.ts +57 -0
  28. package/src/defaults.ts +249 -0
  29. package/src/documents/base.ts +10 -0
  30. package/src/documents/{email-token.d.ts → email-token.ts} +9 -3
  31. package/src/documents/{index.d.ts → index.ts} +0 -1
  32. package/src/documents/{mnemonic.d.ts → mnemonic.ts} +5 -2
  33. package/src/documents/{role.d.ts → role.ts} +5 -2
  34. package/src/documents/{used-direct-login-token.d.ts → used-direct-login-token.ts} +5 -2
  35. package/src/documents/{user-role.d.ts → user-role.ts} +5 -2
  36. package/src/documents/{user.d.ts → user.ts} +5 -2
  37. package/src/enumerations/base-model-name.ts +41 -0
  38. package/src/enumerations/{index.d.ts → index.ts} +0 -1
  39. package/src/enumerations/length-encoding-type.ts +6 -0
  40. package/src/enumerations/schema-collection.ts +33 -0
  41. package/src/enumerations/symmetric-error-type.ts +4 -0
  42. package/src/environment.ts +836 -0
  43. package/src/errors/express-validation.ts +21 -0
  44. package/src/errors/{index.d.ts → index.ts} +0 -1
  45. package/src/errors/invalid-backup-code-version.ts +15 -0
  46. package/src/errors/invalid-jwt-token.ts +11 -0
  47. package/src/errors/invalid-model.ts +11 -0
  48. package/src/errors/invalid-new-password.ts +18 -0
  49. package/src/errors/invalid-password.ts +13 -0
  50. package/src/errors/missing-validated-data.ts +36 -0
  51. package/src/errors/mnemonic-or-password-required.ts +13 -0
  52. package/src/errors/model-not-registered.ts +11 -0
  53. package/src/errors/mongoose-validation.ts +36 -0
  54. package/src/errors/symmetric.ts +38 -0
  55. package/src/errors/token-expired.ts +11 -0
  56. package/src/get-language.ts +53 -0
  57. package/src/get-timezone.ts +61 -0
  58. package/src/{index.d.ts → index.ts} +3 -2
  59. package/src/interfaces/{api-error-response.d.ts → api-error-response.ts} +2 -2
  60. package/src/interfaces/api-express-validation-error-response.ts +8 -0
  61. package/src/interfaces/api-message-response.ts +3 -0
  62. package/src/interfaces/{api-mongo-validation-error-response.d.ts → api-mongo-validation-error-response.ts} +2 -2
  63. package/src/interfaces/api-responses/{backup-codes-response.d.ts → backup-codes-response.ts} +2 -2
  64. package/src/interfaces/api-responses/{challenge-response.d.ts → challenge-response.ts} +3 -3
  65. package/src/interfaces/api-responses/{code-count-response.d.ts → code-count-response.ts} +2 -2
  66. package/src/interfaces/api-responses/{index.d.ts → index.ts} +1 -2
  67. package/src/interfaces/api-responses/{login-response.d.ts → login-response.ts} +4 -4
  68. package/src/interfaces/api-responses/{mnemonic-response.d.ts → mnemonic-response.ts} +2 -2
  69. package/src/interfaces/api-responses/{registration-response.d.ts → registration-response.ts} +3 -3
  70. package/src/interfaces/api-responses/{request-user-response.d.ts → request-user-response.ts} +2 -2
  71. package/src/interfaces/api-responses/user-settings-response.ts +12 -0
  72. package/src/interfaces/application.ts +16 -0
  73. package/src/interfaces/backend-objects/email-token.ts +11 -0
  74. package/src/interfaces/backend-objects/{index.d.ts → index.ts} +0 -1
  75. package/src/interfaces/backend-objects/request-user.ts +8 -0
  76. package/src/interfaces/backend-objects/{role.d.ts → role.ts} +1 -1
  77. package/src/interfaces/backend-objects/user.ts +7 -0
  78. package/src/interfaces/checksum-config.ts +4 -0
  79. package/src/interfaces/checksum-consts.ts +13 -0
  80. package/src/interfaces/constants.ts +103 -0
  81. package/src/interfaces/controller-config.ts +27 -0
  82. package/src/interfaces/create-user-basics.ts +17 -0
  83. package/src/interfaces/csp-config.ts +16 -0
  84. package/src/interfaces/csp-definition.ts +53 -0
  85. package/src/interfaces/{db-init-result.d.ts → db-init-result.ts} +3 -3
  86. package/src/interfaces/deep-partial.ts +3 -0
  87. package/src/interfaces/{discriminator-collections.d.ts → discriminator-collections.ts} +3 -3
  88. package/src/interfaces/email-service.ts +8 -0
  89. package/src/interfaces/environment-mongo.ts +76 -0
  90. package/src/interfaces/environment.ts +185 -0
  91. package/src/interfaces/failable-result.ts +6 -0
  92. package/src/interfaces/fec-consts.ts +4 -0
  93. package/src/interfaces/flexible-csp.ts +18 -0
  94. package/src/interfaces/handleable-error-options.ts +6 -0
  95. package/src/interfaces/{index.d.ts → index.ts} +0 -1
  96. package/src/interfaces/jwt-consts.ts +23 -0
  97. package/src/interfaces/jwt-sign-response.ts +19 -0
  98. package/src/interfaces/models/{email-token.d.ts → email-token.ts} +1 -1
  99. package/src/interfaces/models/{index.d.ts → index.ts} +0 -1
  100. package/src/interfaces/models/{mnemonic.d.ts → mnemonic.ts} +1 -1
  101. package/src/interfaces/models/{role.d.ts → role.ts} +1 -1
  102. package/src/interfaces/models/{token-role.d.ts → token-role.ts} +1 -1
  103. package/src/interfaces/models/{used-direct-login-token.d.ts → used-direct-login-token.ts} +3 -2
  104. package/src/interfaces/models/{user-role.d.ts → user-role.ts} +1 -1
  105. package/src/interfaces/models/{user.d.ts → user.ts} +11 -3
  106. package/src/interfaces/mongo-errors.ts +5 -0
  107. package/src/interfaces/request-user.ts +66 -0
  108. package/src/interfaces/required-string-keys.ts +26 -0
  109. package/src/interfaces/schema.ts +31 -0
  110. package/src/interfaces/server-init-result.ts +38 -0
  111. package/src/interfaces/status-code-response.ts +7 -0
  112. package/src/interfaces/symmetric-encryption-results.d.ts +3 -3
  113. package/src/interfaces/symmetric-encryption-results.d.ts.map +1 -1
  114. package/src/interfaces/symmetric-encryption-results.js.map +1 -1
  115. package/src/interfaces/symmetric-encryption-results.ts +4 -0
  116. package/src/interfaces/{test-environment.d.ts → test-environment.ts} +6 -6
  117. package/src/interfaces/{token-response.d.ts → token-response.ts} +2 -2
  118. package/src/middlewares/authenticate-crypto.ts +216 -0
  119. package/src/middlewares/authenticate-token.ts +150 -0
  120. package/src/middlewares/cleanup-crypto.ts +37 -0
  121. package/src/middlewares/{index.d.ts → index.ts} +0 -1
  122. package/src/middlewares/set-global-context-language.ts +24 -0
  123. package/src/middlewares.ts +105 -0
  124. package/src/model-registry.ts +75 -0
  125. package/src/models/email-token.d.ts +11 -35
  126. package/src/models/email-token.ts +16 -0
  127. package/src/models/{index.d.ts → index.ts} +0 -1
  128. package/src/models/mnemonic.d.ts +11 -35
  129. package/src/models/mnemonic.ts +16 -0
  130. package/src/models/role.d.ts +11 -35
  131. package/src/models/role.ts +16 -0
  132. package/src/models/used-direct-login-token.d.ts +11 -35
  133. package/src/models/used-direct-login-token.ts +16 -0
  134. package/src/models/user-role.d.ts +10 -3
  135. package/src/models/user-role.ts +14 -0
  136. package/src/models/user.d.ts +16 -3
  137. package/src/models/user.ts +16 -0
  138. package/src/pipeline/{index.d.ts → index.ts} +0 -1
  139. package/src/pipeline/pipeline-builder.ts +18 -0
  140. package/src/plugins/{index.d.ts → index.ts} +0 -1
  141. package/src/plugins/plugin-interface.ts +8 -0
  142. package/src/plugins/plugin-manager.ts +40 -0
  143. package/src/registry/email-service-registry.ts +53 -0
  144. package/src/registry/{index.d.ts → index.ts} +0 -1
  145. package/src/responses/{index.d.ts → index.ts} +0 -1
  146. package/src/responses/response-builder.ts +86 -0
  147. package/src/routers/api.ts +168 -0
  148. package/src/routers/app.ts +340 -0
  149. package/src/routers/base.ts +17 -0
  150. package/src/routers/{index.d.ts → index.ts} +0 -1
  151. package/src/routers/router-config.ts +16 -0
  152. package/src/routing/index.ts +1 -0
  153. package/src/routing/route-builder.ts +126 -0
  154. package/src/schemas/email-token.d.ts +13 -47
  155. package/src/schemas/email-token.ts +97 -0
  156. package/src/schemas/{index.d.ts → index.ts} +0 -1
  157. package/src/schemas/mnemonic.d.ts +10 -26
  158. package/src/schemas/mnemonic.ts +39 -0
  159. package/src/schemas/role.d.ts +13 -40
  160. package/src/schemas/role.ts +132 -0
  161. package/src/schemas/schema.ts +150 -0
  162. package/src/schemas/used-direct-login-token.d.ts +12 -35
  163. package/src/schemas/used-direct-login-token.ts +44 -0
  164. package/src/schemas/user-role.d.ts +12 -37
  165. package/src/schemas/user-role.ts +81 -0
  166. package/src/schemas/user.d.ts +18 -23
  167. package/src/schemas/user.ts +224 -0
  168. package/src/services/backup-code.ts +321 -0
  169. package/src/services/base.ts +35 -0
  170. package/src/services/checksum.ts +167 -0
  171. package/src/services/crc.ts +213 -0
  172. package/src/services/database-initialization.ts +1564 -0
  173. package/src/services/{db-init-cache.d.ts → db-init-cache.ts} +11 -5
  174. package/src/services/direct-login-token.ts +62 -0
  175. package/src/services/dummy-email-service.ts +20 -0
  176. package/src/services/fec-usage-example.ts +102 -0
  177. package/src/services/fec.ts +355 -0
  178. package/src/services/{index.d.ts → index.ts} +0 -1
  179. package/src/services/jwt.ts +133 -0
  180. package/src/services/key-wrapping.ts +449 -0
  181. package/src/services/mnemonic.ts +166 -0
  182. package/src/services/request-user.ts +99 -0
  183. package/src/services/role.ts +410 -0
  184. package/src/services/symmetric.ts +139 -0
  185. package/src/services/system-user.ts +79 -0
  186. package/src/services/user.ts +2279 -0
  187. package/src/services/xor.ts +34 -0
  188. package/src/testing.ts +3 -0
  189. package/src/transactions/{index.d.ts → index.ts} +0 -1
  190. package/src/transactions/transaction-manager.ts +37 -0
  191. package/src/types/{app-config.d.ts → app-config.ts} +10 -9
  192. package/src/types/{controller-config.d.ts → controller-config.ts} +8 -7
  193. package/src/types/{environment-variables.d.ts → environment-variables.ts} +26 -5
  194. package/src/types/id-converters.ts +53 -0
  195. package/src/types/{index.d.ts → index.ts} +0 -1
  196. package/src/types/{mongoose-helpers.d.ts → mongoose-helpers.ts} +2 -2
  197. package/src/types/mongoose-override.d.ts +1 -0
  198. package/src/types/mongoose.d.ts +1 -0
  199. package/src/types.d.ts +40 -68
  200. package/src/types.ts +130 -0
  201. package/src/utils.ts +1081 -0
  202. package/src/validation/{index.d.ts → index.ts} +0 -1
  203. package/src/validation/validation-builder.ts +94 -0
  204. package/src/__tests__/fixtures/index.d.ts +0 -2
  205. package/src/__tests__/fixtures/index.d.ts.map +0 -1
  206. package/src/__tests__/fixtures/index.js +0 -5
  207. package/src/__tests__/fixtures/index.js.map +0 -1
  208. package/src/__tests__/fixtures/model-mocks.mock.d.ts +0 -6
  209. package/src/__tests__/fixtures/model-mocks.mock.d.ts.map +0 -1
  210. package/src/__tests__/fixtures/model-mocks.mock.js +0 -94
  211. package/src/__tests__/fixtures/model-mocks.mock.js.map +0 -1
  212. package/src/__tests__/helpers/application.mock.d.ts +0 -8
  213. package/src/__tests__/helpers/application.mock.d.ts.map +0 -1
  214. package/src/__tests__/helpers/application.mock.js +0 -77
  215. package/src/__tests__/helpers/application.mock.js.map +0 -1
  216. package/src/__tests__/helpers/index.d.ts.map +0 -1
  217. package/src/__tests__/helpers/index.js +0 -7
  218. package/src/__tests__/helpers/index.js.map +0 -1
  219. package/src/__tests__/helpers/setup-test-env.d.ts +0 -12
  220. package/src/__tests__/helpers/setup-test-env.d.ts.map +0 -1
  221. package/src/__tests__/helpers/setup-test-env.js +0 -119
  222. package/src/__tests__/helpers/setup-test-env.js.map +0 -1
  223. package/src/__tests__/index.d.ts +0 -3
  224. package/src/__tests__/index.d.ts.map +0 -1
  225. package/src/__tests__/index.js +0 -6
  226. package/src/__tests__/index.js.map +0 -1
  227. package/src/application-base.d.ts +0 -122
  228. package/src/application-base.d.ts.map +0 -1
  229. package/src/application-base.js +0 -355
  230. package/src/application-base.js.map +0 -1
  231. package/src/application-concrete.d.ts +0 -12
  232. package/src/application-concrete.d.ts.map +0 -1
  233. package/src/application-concrete.js +0 -21
  234. package/src/application-concrete.js.map +0 -1
  235. package/src/application.d.ts +0 -28
  236. package/src/application.d.ts.map +0 -1
  237. package/src/application.js +0 -167
  238. package/src/application.js.map +0 -1
  239. package/src/backup-code.d.ts +0 -68
  240. package/src/backup-code.d.ts.map +0 -1
  241. package/src/backup-code.js +0 -238
  242. package/src/backup-code.js.map +0 -1
  243. package/src/builders/application-builder.d.ts +0 -34
  244. package/src/builders/application-builder.d.ts.map +0 -1
  245. package/src/builders/application-builder.js +0 -64
  246. package/src/builders/application-builder.js.map +0 -1
  247. package/src/builders/index.d.ts.map +0 -1
  248. package/src/builders/index.js +0 -5
  249. package/src/builders/index.js.map +0 -1
  250. package/src/constants.d.ts +0 -16
  251. package/src/constants.d.ts.map +0 -1
  252. package/src/constants.js +0 -58
  253. package/src/constants.js.map +0 -1
  254. package/src/container/index.d.ts.map +0 -1
  255. package/src/container/index.js +0 -6
  256. package/src/container/index.js.map +0 -1
  257. package/src/container/service-container.d.ts +0 -11
  258. package/src/container/service-container.d.ts.map +0 -1
  259. package/src/container/service-container.js +0 -38
  260. package/src/container/service-container.js.map +0 -1
  261. package/src/container/service-definitions.d.ts +0 -11
  262. package/src/container/service-definitions.d.ts.map +0 -1
  263. package/src/container/service-definitions.js +0 -13
  264. package/src/container/service-definitions.js.map +0 -1
  265. package/src/controllers/base.d.ts +0 -66
  266. package/src/controllers/base.d.ts.map +0 -1
  267. package/src/controllers/base.js +0 -305
  268. package/src/controllers/base.js.map +0 -1
  269. package/src/controllers/index.d.ts.map +0 -1
  270. package/src/controllers/index.js +0 -6
  271. package/src/controllers/index.js.map +0 -1
  272. package/src/controllers/user.d.ts +0 -46
  273. package/src/controllers/user.d.ts.map +0 -1
  274. package/src/controllers/user.js +0 -918
  275. package/src/controllers/user.js.map +0 -1
  276. package/src/database/database-initializer.d.ts.map +0 -1
  277. package/src/database/database-initializer.js +0 -3
  278. package/src/database/database-initializer.js.map +0 -1
  279. package/src/database/index.d.ts.map +0 -1
  280. package/src/database/index.js +0 -5
  281. package/src/database/index.js.map +0 -1
  282. package/src/decorators/base-controller.d.ts +0 -10
  283. package/src/decorators/base-controller.d.ts.map +0 -1
  284. package/src/decorators/base-controller.js +0 -60
  285. package/src/decorators/base-controller.js.map +0 -1
  286. package/src/decorators/controller.d.ts +0 -38
  287. package/src/decorators/controller.d.ts.map +0 -1
  288. package/src/decorators/controller.js +0 -67
  289. package/src/decorators/controller.js.map +0 -1
  290. package/src/decorators/index.d.ts.map +0 -1
  291. package/src/decorators/index.js +0 -7
  292. package/src/decorators/index.js.map +0 -1
  293. package/src/decorators/zod-validation.d.ts +0 -5
  294. package/src/decorators/zod-validation.d.ts.map +0 -1
  295. package/src/decorators/zod-validation.js +0 -47
  296. package/src/decorators/zod-validation.js.map +0 -1
  297. package/src/defaults.d.ts +0 -7
  298. package/src/defaults.d.ts.map +0 -1
  299. package/src/defaults.js +0 -202
  300. package/src/defaults.js.map +0 -1
  301. package/src/documents/base.d.ts +0 -4
  302. package/src/documents/base.d.ts.map +0 -1
  303. package/src/documents/base.js +0 -3
  304. package/src/documents/base.js.map +0 -1
  305. package/src/documents/email-token.d.ts.map +0 -1
  306. package/src/documents/email-token.js +0 -3
  307. package/src/documents/email-token.js.map +0 -1
  308. package/src/documents/index.d.ts.map +0 -1
  309. package/src/documents/index.js +0 -3
  310. package/src/documents/index.js.map +0 -1
  311. package/src/documents/mnemonic.d.ts.map +0 -1
  312. package/src/documents/mnemonic.js +0 -3
  313. package/src/documents/mnemonic.js.map +0 -1
  314. package/src/documents/role.d.ts.map +0 -1
  315. package/src/documents/role.js +0 -3
  316. package/src/documents/role.js.map +0 -1
  317. package/src/documents/used-direct-login-token.d.ts.map +0 -1
  318. package/src/documents/used-direct-login-token.js +0 -3
  319. package/src/documents/used-direct-login-token.js.map +0 -1
  320. package/src/documents/user-role.d.ts.map +0 -1
  321. package/src/documents/user-role.js +0 -3
  322. package/src/documents/user-role.js.map +0 -1
  323. package/src/documents/user.d.ts.map +0 -1
  324. package/src/documents/user.js +0 -3
  325. package/src/documents/user.js.map +0 -1
  326. package/src/enumerations/base-model-name.d.ts +0 -38
  327. package/src/enumerations/base-model-name.d.ts.map +0 -1
  328. package/src/enumerations/base-model-name.js +0 -34
  329. package/src/enumerations/base-model-name.js.map +0 -1
  330. package/src/enumerations/index.d.ts.map +0 -1
  331. package/src/enumerations/index.js +0 -8
  332. package/src/enumerations/index.js.map +0 -1
  333. package/src/enumerations/length-encoding-type.d.ts +0 -7
  334. package/src/enumerations/length-encoding-type.d.ts.map +0 -1
  335. package/src/enumerations/length-encoding-type.js +0 -11
  336. package/src/enumerations/length-encoding-type.js.map +0 -1
  337. package/src/enumerations/schema-collection.d.ts +0 -34
  338. package/src/enumerations/schema-collection.d.ts.map +0 -1
  339. package/src/enumerations/schema-collection.js +0 -38
  340. package/src/enumerations/schema-collection.js.map +0 -1
  341. package/src/enumerations/symmetric-error-type.d.ts +0 -5
  342. package/src/enumerations/symmetric-error-type.d.ts.map +0 -1
  343. package/src/enumerations/symmetric-error-type.js +0 -9
  344. package/src/enumerations/symmetric-error-type.js.map +0 -1
  345. package/src/environment.d.ts +0 -190
  346. package/src/environment.d.ts.map +0 -1
  347. package/src/environment.js +0 -646
  348. package/src/environment.js.map +0 -1
  349. package/src/errors/express-validation.d.ts +0 -9
  350. package/src/errors/express-validation.d.ts.map +0 -1
  351. package/src/errors/express-validation.js +0 -18
  352. package/src/errors/express-validation.js.map +0 -1
  353. package/src/errors/index.d.ts.map +0 -1
  354. package/src/errors/index.js +0 -16
  355. package/src/errors/index.js.map +0 -1
  356. package/src/errors/invalid-backup-code-version.d.ts +0 -6
  357. package/src/errors/invalid-backup-code-version.d.ts.map +0 -1
  358. package/src/errors/invalid-backup-code-version.js +0 -16
  359. package/src/errors/invalid-backup-code-version.js.map +0 -1
  360. package/src/errors/invalid-jwt-token.d.ts +0 -5
  361. package/src/errors/invalid-jwt-token.d.ts.map +0 -1
  362. package/src/errors/invalid-jwt-token.js +0 -12
  363. package/src/errors/invalid-jwt-token.js.map +0 -1
  364. package/src/errors/invalid-model.d.ts +0 -6
  365. package/src/errors/invalid-model.d.ts.map +0 -1
  366. package/src/errors/invalid-model.js +0 -14
  367. package/src/errors/invalid-model.js.map +0 -1
  368. package/src/errors/invalid-new-password.d.ts +0 -5
  369. package/src/errors/invalid-new-password.d.ts.map +0 -1
  370. package/src/errors/invalid-new-password.js +0 -14
  371. package/src/errors/invalid-new-password.js.map +0 -1
  372. package/src/errors/invalid-password.d.ts +0 -5
  373. package/src/errors/invalid-password.d.ts.map +0 -1
  374. package/src/errors/invalid-password.js +0 -14
  375. package/src/errors/invalid-password.js.map +0 -1
  376. package/src/errors/missing-validated-data.d.ts +0 -7
  377. package/src/errors/missing-validated-data.d.ts.map +0 -1
  378. package/src/errors/missing-validated-data.js +0 -36
  379. package/src/errors/missing-validated-data.js.map +0 -1
  380. package/src/errors/mnemonic-or-password-required.d.ts +0 -5
  381. package/src/errors/mnemonic-or-password-required.d.ts.map +0 -1
  382. package/src/errors/mnemonic-or-password-required.js +0 -14
  383. package/src/errors/mnemonic-or-password-required.js.map +0 -1
  384. package/src/errors/model-not-registered.d.ts +0 -6
  385. package/src/errors/model-not-registered.d.ts.map +0 -1
  386. package/src/errors/model-not-registered.js +0 -14
  387. package/src/errors/model-not-registered.js.map +0 -1
  388. package/src/errors/mongoose-validation.d.ts +0 -12
  389. package/src/errors/mongoose-validation.d.ts.map +0 -1
  390. package/src/errors/mongoose-validation.js +0 -17
  391. package/src/errors/mongoose-validation.js.map +0 -1
  392. package/src/errors/symmetric.d.ts +0 -8
  393. package/src/errors/symmetric.d.ts.map +0 -1
  394. package/src/errors/symmetric.js +0 -22
  395. package/src/errors/symmetric.js.map +0 -1
  396. package/src/errors/token-expired.d.ts +0 -5
  397. package/src/errors/token-expired.d.ts.map +0 -1
  398. package/src/errors/token-expired.js +0 -12
  399. package/src/errors/token-expired.js.map +0 -1
  400. package/src/get-language.d.ts +0 -2
  401. package/src/get-language.d.ts.map +0 -1
  402. package/src/get-language.js +0 -30
  403. package/src/get-language.js.map +0 -1
  404. package/src/get-timezone.d.ts +0 -2
  405. package/src/get-timezone.d.ts.map +0 -1
  406. package/src/get-timezone.js +0 -39
  407. package/src/get-timezone.js.map +0 -1
  408. package/src/index.d.ts.map +0 -1
  409. package/src/index.js +0 -43
  410. package/src/index.js.map +0 -1
  411. package/src/interfaces/api-error-response.d.ts.map +0 -1
  412. package/src/interfaces/api-error-response.js +0 -3
  413. package/src/interfaces/api-error-response.js.map +0 -1
  414. package/src/interfaces/api-express-validation-error-response.d.ts +0 -7
  415. package/src/interfaces/api-express-validation-error-response.d.ts.map +0 -1
  416. package/src/interfaces/api-express-validation-error-response.js +0 -3
  417. package/src/interfaces/api-express-validation-error-response.js.map +0 -1
  418. package/src/interfaces/api-message-response.d.ts +0 -4
  419. package/src/interfaces/api-message-response.d.ts.map +0 -1
  420. package/src/interfaces/api-message-response.js +0 -3
  421. package/src/interfaces/api-message-response.js.map +0 -1
  422. package/src/interfaces/api-mongo-validation-error-response.d.ts.map +0 -1
  423. package/src/interfaces/api-mongo-validation-error-response.js +0 -3
  424. package/src/interfaces/api-mongo-validation-error-response.js.map +0 -1
  425. package/src/interfaces/api-responses/backup-codes-response.d.ts.map +0 -1
  426. package/src/interfaces/api-responses/backup-codes-response.js +0 -3
  427. package/src/interfaces/api-responses/backup-codes-response.js.map +0 -1
  428. package/src/interfaces/api-responses/challenge-response.d.ts.map +0 -1
  429. package/src/interfaces/api-responses/challenge-response.js +0 -3
  430. package/src/interfaces/api-responses/challenge-response.js.map +0 -1
  431. package/src/interfaces/api-responses/code-count-response.d.ts.map +0 -1
  432. package/src/interfaces/api-responses/code-count-response.js +0 -3
  433. package/src/interfaces/api-responses/code-count-response.js.map +0 -1
  434. package/src/interfaces/api-responses/index.d.ts.map +0 -1
  435. package/src/interfaces/api-responses/index.js +0 -12
  436. package/src/interfaces/api-responses/index.js.map +0 -1
  437. package/src/interfaces/api-responses/login-response.d.ts.map +0 -1
  438. package/src/interfaces/api-responses/login-response.js +0 -3
  439. package/src/interfaces/api-responses/login-response.js.map +0 -1
  440. package/src/interfaces/api-responses/mnemonic-response.d.ts.map +0 -1
  441. package/src/interfaces/api-responses/mnemonic-response.js +0 -3
  442. package/src/interfaces/api-responses/mnemonic-response.js.map +0 -1
  443. package/src/interfaces/api-responses/registration-response.d.ts.map +0 -1
  444. package/src/interfaces/api-responses/registration-response.js +0 -3
  445. package/src/interfaces/api-responses/registration-response.js.map +0 -1
  446. package/src/interfaces/api-responses/request-user-response.d.ts.map +0 -1
  447. package/src/interfaces/api-responses/request-user-response.js +0 -3
  448. package/src/interfaces/api-responses/request-user-response.js.map +0 -1
  449. package/src/interfaces/api-responses/user-settings-response.d.ts +0 -12
  450. package/src/interfaces/api-responses/user-settings-response.d.ts.map +0 -1
  451. package/src/interfaces/api-responses/user-settings-response.js +0 -3
  452. package/src/interfaces/api-responses/user-settings-response.js.map +0 -1
  453. package/src/interfaces/application.d.ts +0 -16
  454. package/src/interfaces/application.d.ts.map +0 -1
  455. package/src/interfaces/application.js +0 -3
  456. package/src/interfaces/application.js.map +0 -1
  457. package/src/interfaces/backend-objects/email-token.d.ts +0 -4
  458. package/src/interfaces/backend-objects/email-token.d.ts.map +0 -1
  459. package/src/interfaces/backend-objects/email-token.js +0 -3
  460. package/src/interfaces/backend-objects/email-token.js.map +0 -1
  461. package/src/interfaces/backend-objects/index.d.ts.map +0 -1
  462. package/src/interfaces/backend-objects/index.js +0 -8
  463. package/src/interfaces/backend-objects/index.js.map +0 -1
  464. package/src/interfaces/backend-objects/request-user.d.ts +0 -5
  465. package/src/interfaces/backend-objects/request-user.d.ts.map +0 -1
  466. package/src/interfaces/backend-objects/request-user.js +0 -3
  467. package/src/interfaces/backend-objects/request-user.js.map +0 -1
  468. package/src/interfaces/backend-objects/role.d.ts.map +0 -1
  469. package/src/interfaces/backend-objects/role.js +0 -3
  470. package/src/interfaces/backend-objects/role.js.map +0 -1
  471. package/src/interfaces/backend-objects/user.d.ts +0 -4
  472. package/src/interfaces/backend-objects/user.d.ts.map +0 -1
  473. package/src/interfaces/backend-objects/user.js +0 -3
  474. package/src/interfaces/backend-objects/user.js.map +0 -1
  475. package/src/interfaces/checksum-config.d.ts +0 -5
  476. package/src/interfaces/checksum-config.d.ts.map +0 -1
  477. package/src/interfaces/checksum-config.js +0 -3
  478. package/src/interfaces/checksum-config.js.map +0 -1
  479. package/src/interfaces/checksum-consts.d.ts +0 -11
  480. package/src/interfaces/checksum-consts.d.ts.map +0 -1
  481. package/src/interfaces/checksum-consts.js +0 -3
  482. package/src/interfaces/checksum-consts.js.map +0 -1
  483. package/src/interfaces/constants.d.ts +0 -98
  484. package/src/interfaces/constants.d.ts.map +0 -1
  485. package/src/interfaces/constants.js +0 -3
  486. package/src/interfaces/constants.js.map +0 -1
  487. package/src/interfaces/controller-config.d.ts +0 -21
  488. package/src/interfaces/controller-config.d.ts.map +0 -1
  489. package/src/interfaces/controller-config.js +0 -3
  490. package/src/interfaces/controller-config.js.map +0 -1
  491. package/src/interfaces/create-user-basics.d.ts +0 -18
  492. package/src/interfaces/create-user-basics.d.ts.map +0 -1
  493. package/src/interfaces/create-user-basics.js +0 -3
  494. package/src/interfaces/create-user-basics.js.map +0 -1
  495. package/src/interfaces/csp-config.d.ts +0 -7
  496. package/src/interfaces/csp-config.d.ts.map +0 -1
  497. package/src/interfaces/csp-config.js +0 -13
  498. package/src/interfaces/csp-config.js.map +0 -1
  499. package/src/interfaces/csp-definition.d.ts +0 -13
  500. package/src/interfaces/csp-definition.d.ts.map +0 -1
  501. package/src/interfaces/csp-definition.js +0 -23
  502. package/src/interfaces/csp-definition.js.map +0 -1
  503. package/src/interfaces/db-init-result.d.ts.map +0 -1
  504. package/src/interfaces/db-init-result.js +0 -3
  505. package/src/interfaces/db-init-result.js.map +0 -1
  506. package/src/interfaces/deep-partial.d.ts +0 -4
  507. package/src/interfaces/deep-partial.d.ts.map +0 -1
  508. package/src/interfaces/deep-partial.js +0 -3
  509. package/src/interfaces/deep-partial.js.map +0 -1
  510. package/src/interfaces/discriminator-collections.d.ts.map +0 -1
  511. package/src/interfaces/discriminator-collections.js +0 -3
  512. package/src/interfaces/discriminator-collections.js.map +0 -1
  513. package/src/interfaces/email-service.d.ts +0 -4
  514. package/src/interfaces/email-service.d.ts.map +0 -1
  515. package/src/interfaces/email-service.js +0 -3
  516. package/src/interfaces/email-service.js.map +0 -1
  517. package/src/interfaces/environment-mongo.d.ts +0 -76
  518. package/src/interfaces/environment-mongo.d.ts.map +0 -1
  519. package/src/interfaces/environment-mongo.js +0 -3
  520. package/src/interfaces/environment-mongo.js.map +0 -1
  521. package/src/interfaces/environment.d.ts +0 -184
  522. package/src/interfaces/environment.d.ts.map +0 -1
  523. package/src/interfaces/environment.js +0 -3
  524. package/src/interfaces/environment.js.map +0 -1
  525. package/src/interfaces/failable-result.d.ts +0 -7
  526. package/src/interfaces/failable-result.d.ts.map +0 -1
  527. package/src/interfaces/failable-result.js +0 -3
  528. package/src/interfaces/failable-result.js.map +0 -1
  529. package/src/interfaces/fec-consts.d.ts +0 -5
  530. package/src/interfaces/fec-consts.d.ts.map +0 -1
  531. package/src/interfaces/fec-consts.js +0 -3
  532. package/src/interfaces/fec-consts.js.map +0 -1
  533. package/src/interfaces/flexible-csp.d.ts +0 -8
  534. package/src/interfaces/flexible-csp.d.ts.map +0 -1
  535. package/src/interfaces/flexible-csp.js +0 -14
  536. package/src/interfaces/flexible-csp.js.map +0 -1
  537. package/src/interfaces/handleable-error-options.d.ts +0 -7
  538. package/src/interfaces/handleable-error-options.d.ts.map +0 -1
  539. package/src/interfaces/handleable-error-options.js +0 -3
  540. package/src/interfaces/handleable-error-options.js.map +0 -1
  541. package/src/interfaces/index.d.ts.map +0 -1
  542. package/src/interfaces/index.js +0 -38
  543. package/src/interfaces/index.js.map +0 -1
  544. package/src/interfaces/jwt-consts.d.ts +0 -11
  545. package/src/interfaces/jwt-consts.d.ts.map +0 -1
  546. package/src/interfaces/jwt-consts.js +0 -3
  547. package/src/interfaces/jwt-consts.js.map +0 -1
  548. package/src/interfaces/jwt-sign-response.d.ts +0 -11
  549. package/src/interfaces/jwt-sign-response.d.ts.map +0 -1
  550. package/src/interfaces/jwt-sign-response.js +0 -3
  551. package/src/interfaces/jwt-sign-response.js.map +0 -1
  552. package/src/interfaces/models/email-token.d.ts.map +0 -1
  553. package/src/interfaces/models/email-token.js +0 -3
  554. package/src/interfaces/models/email-token.js.map +0 -1
  555. package/src/interfaces/models/index.d.ts.map +0 -1
  556. package/src/interfaces/models/index.js +0 -11
  557. package/src/interfaces/models/index.js.map +0 -1
  558. package/src/interfaces/models/mnemonic.d.ts.map +0 -1
  559. package/src/interfaces/models/mnemonic.js +0 -3
  560. package/src/interfaces/models/mnemonic.js.map +0 -1
  561. package/src/interfaces/models/role.d.ts.map +0 -1
  562. package/src/interfaces/models/role.js +0 -3
  563. package/src/interfaces/models/role.js.map +0 -1
  564. package/src/interfaces/models/token-role.d.ts.map +0 -1
  565. package/src/interfaces/models/token-role.js +0 -3
  566. package/src/interfaces/models/token-role.js.map +0 -1
  567. package/src/interfaces/models/used-direct-login-token.d.ts.map +0 -1
  568. package/src/interfaces/models/used-direct-login-token.js +0 -3
  569. package/src/interfaces/models/used-direct-login-token.js.map +0 -1
  570. package/src/interfaces/models/user-role.d.ts.map +0 -1
  571. package/src/interfaces/models/user-role.js +0 -3
  572. package/src/interfaces/models/user-role.js.map +0 -1
  573. package/src/interfaces/models/user.d.ts.map +0 -1
  574. package/src/interfaces/models/user.js +0 -3
  575. package/src/interfaces/models/user.js.map +0 -1
  576. package/src/interfaces/mongo-errors.d.ts +0 -5
  577. package/src/interfaces/mongo-errors.d.ts.map +0 -1
  578. package/src/interfaces/mongo-errors.js +0 -3
  579. package/src/interfaces/mongo-errors.js.map +0 -1
  580. package/src/interfaces/request-user.d.ts +0 -58
  581. package/src/interfaces/request-user.d.ts.map +0 -1
  582. package/src/interfaces/request-user.js +0 -3
  583. package/src/interfaces/request-user.js.map +0 -1
  584. package/src/interfaces/required-string-keys.d.ts +0 -22
  585. package/src/interfaces/required-string-keys.d.ts.map +0 -1
  586. package/src/interfaces/required-string-keys.js +0 -3
  587. package/src/interfaces/required-string-keys.js.map +0 -1
  588. package/src/interfaces/schema.d.ts +0 -29
  589. package/src/interfaces/schema.d.ts.map +0 -1
  590. package/src/interfaces/schema.js +0 -3
  591. package/src/interfaces/schema.js.map +0 -1
  592. package/src/interfaces/server-init-result.d.ts +0 -36
  593. package/src/interfaces/server-init-result.d.ts.map +0 -1
  594. package/src/interfaces/server-init-result.js +0 -3
  595. package/src/interfaces/server-init-result.js.map +0 -1
  596. package/src/interfaces/status-code-response.d.ts +0 -7
  597. package/src/interfaces/status-code-response.d.ts.map +0 -1
  598. package/src/interfaces/status-code-response.js +0 -3
  599. package/src/interfaces/status-code-response.js.map +0 -1
  600. package/src/interfaces/test-environment.d.ts.map +0 -1
  601. package/src/interfaces/test-environment.js +0 -3
  602. package/src/interfaces/test-environment.js.map +0 -1
  603. package/src/interfaces/token-response.d.ts.map +0 -1
  604. package/src/interfaces/token-response.js +0 -3
  605. package/src/interfaces/token-response.js.map +0 -1
  606. package/src/middlewares/authenticate-crypto.d.ts +0 -10
  607. package/src/middlewares/authenticate-crypto.d.ts.map +0 -1
  608. package/src/middlewares/authenticate-crypto.js +0 -126
  609. package/src/middlewares/authenticate-crypto.js.map +0 -1
  610. package/src/middlewares/authenticate-token.d.ts +0 -21
  611. package/src/middlewares/authenticate-token.d.ts.map +0 -1
  612. package/src/middlewares/authenticate-token.js +0 -104
  613. package/src/middlewares/authenticate-token.js.map +0 -1
  614. package/src/middlewares/cleanup-crypto.d.ts +0 -7
  615. package/src/middlewares/cleanup-crypto.d.ts.map +0 -1
  616. package/src/middlewares/cleanup-crypto.js +0 -32
  617. package/src/middlewares/cleanup-crypto.js.map +0 -1
  618. package/src/middlewares/index.d.ts.map +0 -1
  619. package/src/middlewares/index.js +0 -8
  620. package/src/middlewares/index.js.map +0 -1
  621. package/src/middlewares/set-global-context-language.d.ts +0 -3
  622. package/src/middlewares/set-global-context-language.d.ts.map +0 -1
  623. package/src/middlewares/set-global-context-language.js +0 -14
  624. package/src/middlewares/set-global-context-language.js.map +0 -1
  625. package/src/middlewares.d.ts +0 -8
  626. package/src/middlewares.d.ts.map +0 -1
  627. package/src/middlewares.js +0 -89
  628. package/src/middlewares.js.map +0 -1
  629. package/src/model-registry.d.ts +0 -23
  630. package/src/model-registry.d.ts.map +0 -1
  631. package/src/model-registry.js +0 -47
  632. package/src/model-registry.js.map +0 -1
  633. package/src/models/email-token.d.ts.map +0 -1
  634. package/src/models/email-token.js +0 -11
  635. package/src/models/email-token.js.map +0 -1
  636. package/src/models/index.d.ts.map +0 -1
  637. package/src/models/index.js +0 -10
  638. package/src/models/index.js.map +0 -1
  639. package/src/models/mnemonic.d.ts.map +0 -1
  640. package/src/models/mnemonic.js +0 -11
  641. package/src/models/mnemonic.js.map +0 -1
  642. package/src/models/role.d.ts.map +0 -1
  643. package/src/models/role.js +0 -11
  644. package/src/models/role.js.map +0 -1
  645. package/src/models/used-direct-login-token.d.ts.map +0 -1
  646. package/src/models/used-direct-login-token.js +0 -11
  647. package/src/models/used-direct-login-token.js.map +0 -1
  648. package/src/models/user-role.d.ts.map +0 -1
  649. package/src/models/user-role.js +0 -10
  650. package/src/models/user-role.js.map +0 -1
  651. package/src/models/user.d.ts.map +0 -1
  652. package/src/models/user.js +0 -11
  653. package/src/models/user.js.map +0 -1
  654. package/src/pipeline/index.d.ts.map +0 -1
  655. package/src/pipeline/index.js +0 -5
  656. package/src/pipeline/index.js.map +0 -1
  657. package/src/pipeline/pipeline-builder.d.ts +0 -8
  658. package/src/pipeline/pipeline-builder.d.ts.map +0 -1
  659. package/src/pipeline/pipeline-builder.js +0 -18
  660. package/src/pipeline/pipeline-builder.js.map +0 -1
  661. package/src/plugins/index.d.ts.map +0 -1
  662. package/src/plugins/index.js +0 -6
  663. package/src/plugins/index.js.map +0 -1
  664. package/src/plugins/plugin-interface.d.ts +0 -8
  665. package/src/plugins/plugin-interface.d.ts.map +0 -1
  666. package/src/plugins/plugin-interface.js +0 -3
  667. package/src/plugins/plugin-interface.js.map +0 -1
  668. package/src/plugins/plugin-manager.d.ts +0 -12
  669. package/src/plugins/plugin-manager.d.ts.map +0 -1
  670. package/src/plugins/plugin-manager.js +0 -37
  671. package/src/plugins/plugin-manager.js.map +0 -1
  672. package/src/registry/email-service-registry.d.ts +0 -27
  673. package/src/registry/email-service-registry.d.ts.map +0 -1
  674. package/src/registry/email-service-registry.js +0 -42
  675. package/src/registry/email-service-registry.js.map +0 -1
  676. package/src/registry/index.d.ts.map +0 -1
  677. package/src/registry/index.js +0 -6
  678. package/src/registry/index.js.map +0 -1
  679. package/src/responses/index.d.ts.map +0 -1
  680. package/src/responses/index.js +0 -5
  681. package/src/responses/index.js.map +0 -1
  682. package/src/responses/response-builder.d.ts +0 -24
  683. package/src/responses/response-builder.d.ts.map +0 -1
  684. package/src/responses/response-builder.js +0 -63
  685. package/src/responses/response-builder.js.map +0 -1
  686. package/src/routers/api.d.ts +0 -28
  687. package/src/routers/api.d.ts.map +0 -1
  688. package/src/routers/api.js +0 -80
  689. package/src/routers/api.js.map +0 -1
  690. package/src/routers/app.d.ts +0 -32
  691. package/src/routers/app.d.ts.map +0 -1
  692. package/src/routers/app.js +0 -228
  693. package/src/routers/app.js.map +0 -1
  694. package/src/routers/base.d.ts +0 -8
  695. package/src/routers/base.d.ts.map +0 -1
  696. package/src/routers/base.js +0 -14
  697. package/src/routers/base.js.map +0 -1
  698. package/src/routers/index.d.ts.map +0 -1
  699. package/src/routers/index.js +0 -7
  700. package/src/routers/index.js.map +0 -1
  701. package/src/routers/router-config.d.ts +0 -18
  702. package/src/routers/router-config.d.ts.map +0 -1
  703. package/src/routers/router-config.js +0 -8
  704. package/src/routers/router-config.js.map +0 -1
  705. package/src/routing/index.d.ts +0 -2
  706. package/src/routing/index.d.ts.map +0 -1
  707. package/src/routing/index.js +0 -5
  708. package/src/routing/index.js.map +0 -1
  709. package/src/routing/route-builder.d.ts +0 -36
  710. package/src/routing/route-builder.d.ts.map +0 -1
  711. package/src/routing/route-builder.js +0 -86
  712. package/src/routing/route-builder.js.map +0 -1
  713. package/src/schemas/email-token.d.ts.map +0 -1
  714. package/src/schemas/email-token.js +0 -55
  715. package/src/schemas/email-token.js.map +0 -1
  716. package/src/schemas/index.d.ts.map +0 -1
  717. package/src/schemas/index.js +0 -11
  718. package/src/schemas/index.js.map +0 -1
  719. package/src/schemas/mnemonic.d.ts.map +0 -1
  720. package/src/schemas/mnemonic.js +0 -31
  721. package/src/schemas/mnemonic.js.map +0 -1
  722. package/src/schemas/role.d.ts.map +0 -1
  723. package/src/schemas/role.js +0 -88
  724. package/src/schemas/role.js.map +0 -1
  725. package/src/schemas/schema.d.ts +0 -42
  726. package/src/schemas/schema.d.ts.map +0 -1
  727. package/src/schemas/schema.js +0 -70
  728. package/src/schemas/schema.js.map +0 -1
  729. package/src/schemas/used-direct-login-token.d.ts.map +0 -1
  730. package/src/schemas/used-direct-login-token.js +0 -24
  731. package/src/schemas/used-direct-login-token.js.map +0 -1
  732. package/src/schemas/user-role.d.ts.map +0 -1
  733. package/src/schemas/user-role.js +0 -55
  734. package/src/schemas/user-role.js.map +0 -1
  735. package/src/schemas/user.d.ts.map +0 -1
  736. package/src/schemas/user.js +0 -194
  737. package/src/schemas/user.js.map +0 -1
  738. package/src/services/backup-code.d.ts +0 -76
  739. package/src/services/backup-code.d.ts.map +0 -1
  740. package/src/services/backup-code.js +0 -185
  741. package/src/services/backup-code.js.map +0 -1
  742. package/src/services/base.d.ts +0 -10
  743. package/src/services/base.d.ts.map +0 -1
  744. package/src/services/base.js +0 -15
  745. package/src/services/base.js.map +0 -1
  746. package/src/services/checksum.d.ts +0 -69
  747. package/src/services/checksum.d.ts.map +0 -1
  748. package/src/services/checksum.js +0 -145
  749. package/src/services/checksum.js.map +0 -1
  750. package/src/services/crc.d.ts +0 -87
  751. package/src/services/crc.d.ts.map +0 -1
  752. package/src/services/crc.js +0 -198
  753. package/src/services/crc.js.map +0 -1
  754. package/src/services/database-initialization.d.ts +0 -103
  755. package/src/services/database-initialization.d.ts.map +0 -1
  756. package/src/services/database-initialization.js +0 -817
  757. package/src/services/database-initialization.js.map +0 -1
  758. package/src/services/db-init-cache.d.ts.map +0 -1
  759. package/src/services/db-init-cache.js +0 -3
  760. package/src/services/db-init-cache.js.map +0 -1
  761. package/src/services/direct-login-token.d.ts +0 -6
  762. package/src/services/direct-login-token.d.ts.map +0 -1
  763. package/src/services/direct-login-token.js +0 -41
  764. package/src/services/direct-login-token.js.map +0 -1
  765. package/src/services/dummy-email-service.d.ts +0 -10
  766. package/src/services/dummy-email-service.d.ts.map +0 -1
  767. package/src/services/dummy-email-service.js +0 -16
  768. package/src/services/dummy-email-service.js.map +0 -1
  769. package/src/services/fec-usage-example.d.ts +0 -38
  770. package/src/services/fec-usage-example.d.ts.map +0 -1
  771. package/src/services/fec-usage-example.js +0 -75
  772. package/src/services/fec-usage-example.js.map +0 -1
  773. package/src/services/fec.d.ts +0 -46
  774. package/src/services/fec.d.ts.map +0 -1
  775. package/src/services/fec.js +0 -214
  776. package/src/services/fec.js.map +0 -1
  777. package/src/services/index.d.ts.map +0 -1
  778. package/src/services/index.js +0 -23
  779. package/src/services/index.js.map +0 -1
  780. package/src/services/jwt.d.ts +0 -30
  781. package/src/services/jwt.d.ts.map +0 -1
  782. package/src/services/jwt.js +0 -90
  783. package/src/services/jwt.js.map +0 -1
  784. package/src/services/key-wrapping.d.ts +0 -61
  785. package/src/services/key-wrapping.d.ts.map +0 -1
  786. package/src/services/key-wrapping.js +0 -310
  787. package/src/services/key-wrapping.js.map +0 -1
  788. package/src/services/mnemonic.d.ts +0 -61
  789. package/src/services/mnemonic.d.ts.map +0 -1
  790. package/src/services/mnemonic.js +0 -114
  791. package/src/services/mnemonic.js.map +0 -1
  792. package/src/services/request-user.d.ts +0 -23
  793. package/src/services/request-user.d.ts.map +0 -1
  794. package/src/services/request-user.js +0 -66
  795. package/src/services/request-user.js.map +0 -1
  796. package/src/services/role.d.ts +0 -86
  797. package/src/services/role.d.ts.map +0 -1
  798. package/src/services/role.js +0 -285
  799. package/src/services/role.js.map +0 -1
  800. package/src/services/symmetric.d.ts +0 -42
  801. package/src/services/symmetric.d.ts.map +0 -1
  802. package/src/services/symmetric.js +0 -101
  803. package/src/services/symmetric.js.map +0 -1
  804. package/src/services/system-user.d.ts +0 -17
  805. package/src/services/system-user.d.ts.map +0 -1
  806. package/src/services/system-user.js +0 -46
  807. package/src/services/system-user.js.map +0 -1
  808. package/src/services/user.d.ts +0 -349
  809. package/src/services/user.d.ts.map +0 -1
  810. package/src/services/user.js +0 -1452
  811. package/src/services/user.js.map +0 -1
  812. package/src/services/xor.d.ts +0 -24
  813. package/src/services/xor.d.ts.map +0 -1
  814. package/src/services/xor.js +0 -37
  815. package/src/services/xor.js.map +0 -1
  816. package/src/testing.d.ts +0 -3
  817. package/src/testing.d.ts.map +0 -1
  818. package/src/testing.js +0 -7
  819. package/src/testing.js.map +0 -1
  820. package/src/transactions/index.d.ts.map +0 -1
  821. package/src/transactions/index.js +0 -5
  822. package/src/transactions/index.js.map +0 -1
  823. package/src/transactions/transaction-manager.d.ts +0 -12
  824. package/src/transactions/transaction-manager.d.ts.map +0 -1
  825. package/src/transactions/transaction-manager.js +0 -30
  826. package/src/transactions/transaction-manager.js.map +0 -1
  827. package/src/types/app-config.d.ts.map +0 -1
  828. package/src/types/app-config.js +0 -3
  829. package/src/types/app-config.js.map +0 -1
  830. package/src/types/controller-config.d.ts.map +0 -1
  831. package/src/types/controller-config.js +0 -3
  832. package/src/types/controller-config.js.map +0 -1
  833. package/src/types/environment-variables.d.ts.map +0 -1
  834. package/src/types/environment-variables.js +0 -39
  835. package/src/types/environment-variables.js.map +0 -1
  836. package/src/types/id-converters.d.ts +0 -28
  837. package/src/types/id-converters.d.ts.map +0 -1
  838. package/src/types/id-converters.js +0 -45
  839. package/src/types/id-converters.js.map +0 -1
  840. package/src/types/index.d.ts.map +0 -1
  841. package/src/types/index.js +0 -6
  842. package/src/types/index.js.map +0 -1
  843. package/src/types/mongoose-helpers.d.ts.map +0 -1
  844. package/src/types/mongoose-helpers.js +0 -6
  845. package/src/types/mongoose-helpers.js.map +0 -1
  846. package/src/types.d.ts.map +0 -1
  847. package/src/types.js +0 -14
  848. package/src/types.js.map +0 -1
  849. package/src/utils.d.ts +0 -210
  850. package/src/utils.d.ts.map +0 -1
  851. package/src/utils.js +0 -819
  852. package/src/utils.js.map +0 -1
  853. package/src/validation/index.d.ts.map +0 -1
  854. package/src/validation/index.js +0 -5
  855. package/src/validation/index.js.map +0 -1
  856. package/src/validation/validation-builder.d.ts +0 -32
  857. package/src/validation/validation-builder.d.ts.map +0 -1
  858. package/src/validation/validation-builder.js +0 -81
  859. package/src/validation/validation-builder.js.map +0 -1
@@ -1,30 +0,0 @@
1
- import { ITokenRole, ITokenUser } from '@digitaldefiance/suite-core-lib';
2
- import { Types } from '@digitaldefiance/mongoose-types';
3
- import { IUserDocument } from '../documents/user';
4
- import { IApplication } from '../interfaces/application';
5
- import { IJwtSignResponse } from '../interfaces/jwt-sign-response';
6
- import { BaseService } from './base';
7
- export declare class JwtService<I extends string | Types.ObjectId = Types.ObjectId, D extends Date = Date, TTokenRole extends ITokenRole<I, D> = ITokenRole<I, D>, TTokenUser extends ITokenUser = ITokenUser, TApplication extends IApplication = IApplication> extends BaseService {
8
- private readonly roleService;
9
- /**
10
- * Constructor for the JWT service
11
- * @param application The application object
12
- */
13
- constructor(application: TApplication);
14
- /**
15
- * Sign a JWT token for a user
16
- * @param userDoc The user document to sign the token for
17
- * @param jwtSecret The secret to sign the token with
18
- * @param overrideLanguage Optional language to use for role translations
19
- * @returns The signed token
20
- */
21
- signToken(userDoc: IUserDocument<string, I>, jwtSecret: string, overrideLanguage?: string): Promise<IJwtSignResponse<I, D, TTokenRole>>;
22
- /**
23
- * Verify a JWT token and return the user data
24
- * @param token The token to verify
25
- * @returns The user data
26
- * @throws InvalidTokenError
27
- */
28
- verifyToken(token: string): Promise<TTokenUser | null>;
29
- }
30
- //# sourceMappingURL=jwt.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"jwt.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/services/jwt.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EAEV,UAAU,EACX,MAAM,iCAAiC,CAAC;AASzC,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AAGxD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAKlD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAUrC,qBAAa,UAAU,CACrB,CAAC,SAAS,MAAM,GAAG,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,EAClD,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,GAAG,YAAY,CAChD,SAAQ,WAAW;IACnB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAgC;IAE5D;;;OAGG;gBACS,WAAW,EAAE,YAAY;IAKrC;;;;;;OAMG;IACU,SAAS,CACpB,OAAO,EAAE,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,EACjC,SAAS,EAAE,MAAM,EACjB,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;IAgC9C;;;;;OAKG;IACU,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;CAgCpE"}
@@ -1,90 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.JwtService = void 0;
4
- const jsonwebtoken_1 = require("jsonwebtoken");
5
- const util_1 = require("util");
6
- const invalid_jwt_token_1 = require("../errors/invalid-jwt-token");
7
- const token_expired_1 = require("../errors/token-expired");
8
- const base_1 = require("./base");
9
- const role_1 = require("./role");
10
- const verifyAsync = (0, util_1.promisify)(jsonwebtoken_1.verify);
11
- class JwtService extends base_1.BaseService {
12
- roleService;
13
- /**
14
- * Constructor for the JWT service
15
- * @param application The application object
16
- */
17
- constructor(application) {
18
- super(application);
19
- this.roleService = new role_1.RoleService(application);
20
- }
21
- /**
22
- * Sign a JWT token for a user
23
- * @param userDoc The user document to sign the token for
24
- * @param jwtSecret The secret to sign the token with
25
- * @param overrideLanguage Optional language to use for role translations
26
- * @returns The signed token
27
- */
28
- async signToken(userDoc, jwtSecret, overrideLanguage) {
29
- // look for roles the user is a member of (the role contains the user id in the user's roles array)
30
- const roles = await this.roleService.getUserRoles(userDoc._id);
31
- const tokenRoles = this.roleService.rolesToTokenRoles(roles, overrideLanguage);
32
- const tokenRoleDTOs = tokenRoles.map((role) => role_1.RoleService.roleToRoleDTO(role));
33
- const roleTranslatedNames = tokenRoles.map((role) => role.translatedName);
34
- const roleNames = tokenRoles.map((role) => role.name);
35
- const tokenUser = {
36
- userId: userDoc._id.toString(),
37
- roles: tokenRoleDTOs,
38
- };
39
- // amazonq-ignore-next-line false positive
40
- const token = (0, jsonwebtoken_1.sign)(tokenUser, jwtSecret, {
41
- algorithm: this.application.constants.JWT.ALGORITHM,
42
- allowInsecureKeySizes: false,
43
- expiresIn: this.application.constants.JWT.EXPIRATION_SEC,
44
- });
45
- return {
46
- token,
47
- tokenUser,
48
- roleNames,
49
- roleTranslatedNames,
50
- roles: tokenRoles,
51
- roleDTOs: tokenRoleDTOs,
52
- };
53
- }
54
- /**
55
- * Verify a JWT token and return the user data
56
- * @param token The token to verify
57
- * @returns The user data
58
- * @throws InvalidTokenError
59
- */
60
- async verifyToken(token) {
61
- try {
62
- const decoded = (await verifyAsync(token, this.application.environment.jwtSecret, {
63
- algorithms: [this.application.constants.JWT.ALGORITHM],
64
- }));
65
- if (typeof decoded === 'object' &&
66
- decoded !== null &&
67
- 'userId' in decoded &&
68
- 'roles' in decoded) {
69
- return {
70
- userId: decoded['userId'],
71
- roles: decoded['roles'],
72
- };
73
- }
74
- else {
75
- return null;
76
- }
77
- }
78
- catch (err) {
79
- if (err instanceof jsonwebtoken_1.TokenExpiredError) {
80
- throw new token_expired_1.TokenExpiredError();
81
- }
82
- else if (err instanceof jsonwebtoken_1.JsonWebTokenError) {
83
- throw err;
84
- }
85
- throw new invalid_jwt_token_1.InvalidJwtTokenError();
86
- }
87
- }
88
- }
89
- exports.JwtService = JwtService;
90
- //# sourceMappingURL=jwt.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"jwt.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/services/jwt.ts"],"names":[],"mappings":"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"}
@@ -1,61 +0,0 @@
1
- import { SecureBuffer, SecureString } from '@digitaldefiance/ecies-lib';
2
- import { IConstants } from '@digitaldefiance/node-ecies-lib';
3
- export interface WrappedKey {
4
- salt: string;
5
- iv: string;
6
- authTag: string;
7
- encryptedMasterKey: string;
8
- iterations: number;
9
- }
10
- export interface PasswordWrappedSecret {
11
- salt: string;
12
- iv: string;
13
- authTag: string;
14
- ciphertext: string;
15
- iterations: number;
16
- }
17
- export declare class KeyWrappingService {
18
- private static inFlightUnwraps;
19
- /**
20
- * Generates a new master key and wraps it with the user's password
21
- */
22
- wrapNewMasterKey(password: SecureString, constants?: IConstants): {
23
- masterKey: SecureBuffer;
24
- wrappedKey: WrappedKey;
25
- };
26
- /**
27
- * Wraps an existing master key with a password-derived key
28
- */
29
- wrapMasterKey(masterKey: SecureBuffer, password: SecureString, constants?: IConstants): WrappedKey;
30
- /**
31
- * Unwraps a master key using the user's password
32
- */
33
- unwrapMasterKey(wrappedKey: WrappedKey, password: SecureString, constants?: IConstants): SecureBuffer;
34
- /**
35
- * Async version of unwrapMasterKey that uses libuv threadpool via crypto.pbkdf2
36
- * to avoid blocking the event loop during password verification.
37
- */
38
- unwrapMasterKeyAsync(wrappedKey: WrappedKey, password: SecureString | string, constants?: IConstants): Promise<SecureBuffer>;
39
- /**
40
- * Deduplicated async unwrap that coalesces concurrent identical PBKDF2 operations.
41
- * Keyed by salt + iterations + a short hash of the password. Entry is removed after resolve/reject.
42
- */
43
- unwrapMasterKeyAsyncDedup(wrappedKey: WrappedKey, password: string, constants?: IConstants): Promise<SecureBuffer>;
44
- /**
45
- * Changes password by re-wrapping the master key
46
- */
47
- changePassword(wrappedKey: WrappedKey, oldPassword: SecureString, newPassword: SecureString, constants?: IConstants): WrappedKey;
48
- /**
49
- * Wraps arbitrary secret bytes with a password-derived key (AES-256-GCM)
50
- */
51
- wrapSecret(secret: SecureBuffer, password: SecureString, constants?: IConstants): PasswordWrappedSecret;
52
- /**
53
- * Unwraps a password-wrapped secret (sync)
54
- */
55
- unwrapSecret(wrapped: PasswordWrappedSecret, password: SecureString, constants?: IConstants): SecureBuffer;
56
- /**
57
- * Unwraps a password-wrapped secret (async PBKDF2)
58
- */
59
- unwrapSecretAsync(wrapped: PasswordWrappedSecret, password: SecureString | string, constants?: IConstants): Promise<SecureBuffer>;
60
- }
61
- //# sourceMappingURL=key-wrapping.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"key-wrapping.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/services/key-wrapping.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAEL,UAAU,EAEX,MAAM,iCAAiC,CAAC;AAazC,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;CACpB;AAGD,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,kBAAkB;IAG7B,OAAO,CAAC,MAAM,CAAC,eAAe,CAA2C;IAEzE;;OAEG;IACI,gBAAgB,CACrB,QAAQ,EAAE,YAAY,EACtB,SAAS,GAAE,UAAsB,GAChC;QACD,SAAS,EAAE,YAAY,CAAC;QACxB,UAAU,EAAE,UAAU,CAAC;KACxB;IAQD;;OAEG;IACI,aAAa,CAClB,SAAS,EAAE,YAAY,EACvB,QAAQ,EAAE,YAAY,EACtB,SAAS,GAAE,UAAsB,GAChC,UAAU;IAyCb;;OAEG;IACI,eAAe,CACpB,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,YAAY,EACtB,SAAS,GAAE,UAAsB,GAChC,YAAY;IAuCf;;;OAGG;IACU,oBAAoB,CAC/B,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,YAAY,GAAG,MAAM,EAC/B,SAAS,GAAE,UAAsB,GAChC,OAAO,CAAC,YAAY,CAAC;IA6DxB;;;OAGG;IACU,yBAAyB,CACpC,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,MAAM,EAChB,SAAS,GAAE,UAAsB,GAChC,OAAO,CAAC,YAAY,CAAC;IAuCxB;;OAEG;IACI,cAAc,CACnB,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,YAAY,EACzB,WAAW,EAAE,YAAY,EACzB,SAAS,GAAE,UAAsB,GAChC,UAAU;IAcb;;OAEG;IACI,UAAU,CACf,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,YAAY,EACtB,SAAS,GAAE,UAAsB,GAChC,qBAAqB;IAuCxB;;OAEG;IACI,YAAY,CACjB,OAAO,EAAE,qBAAqB,EAC9B,QAAQ,EAAE,YAAY,EACtB,SAAS,GAAE,UAAsB,GAChC,YAAY;IAoCf;;OAEG;IACU,iBAAiB,CAC5B,OAAO,EAAE,qBAAqB,EAC9B,QAAQ,EAAE,YAAY,GAAG,MAAM,EAC/B,SAAS,GAAE,UAAsB,GAChC,OAAO,CAAC,YAAY,CAAC;CA+DzB"}
@@ -1,310 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.KeyWrappingService = void 0;
4
- const ecies_lib_1 = require("@digitaldefiance/ecies-lib");
5
- const node_ecies_lib_1 = require("@digitaldefiance/node-ecies-lib");
6
- const crypto_1 = require("crypto");
7
- const errors_1 = require("../errors");
8
- function createPbkdf2Service(constants) {
9
- return node_ecies_lib_1.Pbkdf2Service.fromConstants(constants);
10
- }
11
- class KeyWrappingService {
12
- // In-flight de-duplication map to share PBKDF2 work across concurrent identical requests
13
- // Store a promise of the raw master key bytes, so each caller can get an independent SecureBuffer
14
- static inFlightUnwraps = new Map();
15
- /**
16
- * Generates a new master key and wraps it with the user's password
17
- */
18
- wrapNewMasterKey(password, constants = node_ecies_lib_1.Constants) {
19
- const masterKey = new ecies_lib_1.SecureBuffer((0, crypto_1.randomBytes)(constants.WRAPPED_KEY.MASTER_KEY_SIZE));
20
- const wrappedKey = this.wrapMasterKey(masterKey, password, constants);
21
- return { masterKey, wrappedKey };
22
- }
23
- /**
24
- * Wraps an existing master key with a password-derived key
25
- */
26
- wrapMasterKey(masterKey, password, constants = node_ecies_lib_1.Constants) {
27
- if (constants.PasswordRegex.test(password.value ?? '') === false) {
28
- throw new errors_1.InvalidNewPasswordError();
29
- }
30
- const salt = (0, crypto_1.randomBytes)(constants.WRAPPED_KEY.SALT_SIZE);
31
- const iterations = constants.WRAPPED_KEY.MIN_ITERATIONS;
32
- const pbkdf2Service = createPbkdf2Service(constants);
33
- // Derive key from password using centralized PBKDF2 service
34
- const derivedKey = pbkdf2Service.deriveKeyFromPassword(Buffer.from(password.valueAsUint8Array), salt, iterations, constants.WRAPPED_KEY.SALT_SIZE, 32, // AES-256 key size
35
- 'sha256');
36
- const passwordKeySecure = new ecies_lib_1.SecureBuffer(derivedKey.hash);
37
- // Encrypt master key
38
- const iv = (0, crypto_1.randomBytes)(constants.WRAPPED_KEY.IV_SIZE);
39
- const cipher = (0, crypto_1.createCipheriv)('aes-256-gcm', passwordKeySecure.value, iv);
40
- const encrypted = Buffer.concat([
41
- cipher.update(masterKey.value),
42
- cipher.final(),
43
- ]);
44
- const authTag = cipher.getAuthTag();
45
- passwordKeySecure.dispose();
46
- return {
47
- salt: salt.toString('hex'),
48
- iv: iv.toString('hex'),
49
- authTag: authTag.toString('hex'),
50
- encryptedMasterKey: encrypted.toString('hex'),
51
- iterations,
52
- };
53
- }
54
- /**
55
- * Unwraps a master key using the user's password
56
- */
57
- unwrapMasterKey(wrappedKey, password, constants = node_ecies_lib_1.Constants) {
58
- const salt = Buffer.from(wrappedKey.salt, 'hex');
59
- const iv = Buffer.from(wrappedKey.iv, 'hex');
60
- const authTag = Buffer.from(wrappedKey.authTag, 'hex');
61
- const encrypted = Buffer.from(wrappedKey.encryptedMasterKey, 'hex');
62
- const pbkdf2Service = createPbkdf2Service(constants);
63
- // Derive the same key from password using centralized PBKDF2 service
64
- const derivedKey = pbkdf2Service.deriveKeyFromPassword(Buffer.from(password.valueAsUint8Array), salt, wrappedKey.iterations, salt.length, // Use actual salt size
65
- 32, // AES-256 key size
66
- 'sha256');
67
- const passwordKeySecure = new ecies_lib_1.SecureBuffer(derivedKey.hash);
68
- try {
69
- const decipher = (0, crypto_1.createDecipheriv)('aes-256-gcm', passwordKeySecure.value, iv);
70
- decipher.setAuthTag(authTag);
71
- const decrypted = Buffer.concat([
72
- decipher.update(encrypted),
73
- decipher.final(),
74
- ]);
75
- return new ecies_lib_1.SecureBuffer(decrypted);
76
- }
77
- catch {
78
- throw new errors_1.InvalidPasswordError();
79
- }
80
- finally {
81
- passwordKeySecure.dispose();
82
- }
83
- }
84
- /**
85
- * Async version of unwrapMasterKey that uses libuv threadpool via crypto.pbkdf2
86
- * to avoid blocking the event loop during password verification.
87
- */
88
- async unwrapMasterKeyAsync(wrappedKey, password, constants = node_ecies_lib_1.Constants) {
89
- const __perfEnabled = process.env['PERF_LOGS'] === '1';
90
- const _t0 = __perfEnabled ? Date.now() : 0;
91
- const salt = Buffer.from(wrappedKey.salt, 'hex');
92
- const iv = Buffer.from(wrappedKey.iv, 'hex');
93
- const authTag = Buffer.from(wrappedKey.authTag, 'hex');
94
- const encrypted = Buffer.from(wrappedKey.encryptedMasterKey, 'hex');
95
- // Accept either a SecureString (preferred) or a raw password string to avoid
96
- // expensive SecureString construction in the hot login path.
97
- const pwdBuffer =
98
- // amazonq-ignore-next-line false positive
99
- typeof password === 'string'
100
- ? Buffer.from(password, 'utf8')
101
- : Buffer.from(password.valueAsUint8Array);
102
- const pbkdf2Service = createPbkdf2Service(constants);
103
- // Use centralized PBKDF2 service for async key derivation
104
- const derivedKey = await pbkdf2Service.deriveKeyFromPasswordAsync(pwdBuffer, salt, wrappedKey.iterations, salt.length, // Use actual salt size
105
- 32, // AES-256 key size
106
- 'sha256');
107
- const passwordKeySecure = new ecies_lib_1.SecureBuffer(derivedKey.hash);
108
- try {
109
- const decipher = (0, crypto_1.createDecipheriv)('aes-256-gcm', passwordKeySecure.value, iv);
110
- decipher.setAuthTag(authTag);
111
- const decrypted = Buffer.concat([
112
- decipher.update(encrypted),
113
- decipher.final(),
114
- ]);
115
- if (__perfEnabled)
116
- console.warn('[perf] unwrapMasterKeyAsync pbkdf2', 'iters=' + String(wrappedKey.iterations).replace(/[\r\n]/g, ''), 'dt=' + (Date.now() - _t0) + 'ms');
117
- return new ecies_lib_1.SecureBuffer(decrypted);
118
- }
119
- catch {
120
- throw new errors_1.InvalidPasswordError();
121
- }
122
- finally {
123
- // Best-effort zero the temporary password buffer
124
- try {
125
- pwdBuffer.fill(0);
126
- }
127
- catch {
128
- // ignore
129
- }
130
- passwordKeySecure.dispose();
131
- }
132
- }
133
- /**
134
- * Deduplicated async unwrap that coalesces concurrent identical PBKDF2 operations.
135
- * Keyed by salt + iterations + a short hash of the password. Entry is removed after resolve/reject.
136
- */
137
- async unwrapMasterKeyAsyncDedup(wrappedKey, password, constants = node_ecies_lib_1.Constants) {
138
- // Derive a short cache key; avoid storing raw password by hashing
139
- const pwdKey = (0, crypto_1.createHash)('sha256')
140
- .update(password, 'utf8')
141
- .digest('hex')
142
- .slice(0, 24);
143
- const cacheKey = `${wrappedKey.salt}:${wrappedKey.iterations}:${pwdKey}`;
144
- let p = KeyWrappingService.inFlightUnwraps.get(cacheKey);
145
- if (!p) {
146
- // Compute once, extract raw bytes, dispose the shared SecureBuffer, and cache the bytes
147
- p = (async () => {
148
- const mk = await this.unwrapMasterKeyAsync(wrappedKey, password, constants);
149
- try {
150
- const copy = Buffer.from(mk.value);
151
- const b64 = copy.toString('base64');
152
- // zeroize copy
153
- copy.fill(0);
154
- return b64;
155
- }
156
- finally {
157
- mk.dispose();
158
- }
159
- })().finally(() => {
160
- // Best-effort cleanup
161
- KeyWrappingService.inFlightUnwraps.delete(cacheKey);
162
- });
163
- KeyWrappingService.inFlightUnwraps.set(cacheKey, p);
164
- }
165
- const b64 = await p;
166
- // Return a fresh SecureBuffer per caller to avoid cross-disposal races
167
- const buf = Buffer.from(b64, 'base64');
168
- const secure = new ecies_lib_1.SecureBuffer(Buffer.from(buf));
169
- buf.fill(0);
170
- return secure;
171
- }
172
- /**
173
- * Changes password by re-wrapping the master key
174
- */
175
- changePassword(wrappedKey, oldPassword, newPassword, constants = node_ecies_lib_1.Constants) {
176
- // Unwrap with old password
177
- const masterKey = this.unwrapMasterKey(wrappedKey, oldPassword, constants);
178
- try {
179
- // Re-wrap with new password
180
- return this.wrapMasterKey(masterKey, newPassword, constants);
181
- }
182
- catch (error) {
183
- throw error;
184
- }
185
- finally {
186
- masterKey.dispose();
187
- }
188
- }
189
- /**
190
- * Wraps arbitrary secret bytes with a password-derived key (AES-256-GCM)
191
- */
192
- wrapSecret(secret, password, constants = node_ecies_lib_1.Constants) {
193
- if (constants.PasswordRegex.test(password.value ?? '') === false) {
194
- throw new errors_1.InvalidNewPasswordError();
195
- }
196
- const salt = (0, crypto_1.randomBytes)(constants.WRAPPED_KEY.SALT_SIZE);
197
- const iterations = constants.WRAPPED_KEY.MIN_ITERATIONS;
198
- const pbkdf2Service = createPbkdf2Service(constants);
199
- // Derive key from password using centralized PBKDF2 service
200
- const derivedKey = pbkdf2Service.deriveKeyFromPassword(Buffer.from(password.valueAsUint8Array), salt, iterations, constants.WRAPPED_KEY.SALT_SIZE, 32, // AES-256 key size
201
- 'sha256');
202
- const passwordKeySecure = new ecies_lib_1.SecureBuffer(derivedKey.hash);
203
- try {
204
- const iv = (0, crypto_1.randomBytes)(constants.WRAPPED_KEY.IV_SIZE);
205
- const cipher = (0, crypto_1.createCipheriv)('aes-256-gcm', passwordKeySecure.value, iv);
206
- const encrypted = Buffer.concat([
207
- cipher.update(secret.value),
208
- cipher.final(),
209
- ]);
210
- const authTag = cipher.getAuthTag();
211
- return {
212
- salt: salt.toString('hex'),
213
- iv: iv.toString('hex'),
214
- authTag: authTag.toString('hex'),
215
- ciphertext: encrypted.toString('hex'),
216
- iterations,
217
- };
218
- }
219
- finally {
220
- passwordKeySecure.dispose();
221
- }
222
- }
223
- /**
224
- * Unwraps a password-wrapped secret (sync)
225
- */
226
- unwrapSecret(wrapped, password, constants = node_ecies_lib_1.Constants) {
227
- const salt = Buffer.from(wrapped.salt, 'hex');
228
- const iv = Buffer.from(wrapped.iv, 'hex');
229
- const authTag = Buffer.from(wrapped.authTag, 'hex');
230
- const encrypted = Buffer.from(wrapped.ciphertext, 'hex');
231
- const pbkdf2Service = createPbkdf2Service(constants);
232
- // Derive key from password using centralized PBKDF2 service
233
- const derivedKey = pbkdf2Service.deriveKeyFromPassword(Buffer.from(password.valueAsUint8Array), salt, wrapped.iterations, salt.length, // Use actual salt size
234
- 32, // AES-256 key size
235
- 'sha256');
236
- const passwordKeySecure = new ecies_lib_1.SecureBuffer(derivedKey.hash);
237
- try {
238
- const decipher = (0, crypto_1.createDecipheriv)('aes-256-gcm', passwordKeySecure.value, iv);
239
- decipher.setAuthTag(authTag);
240
- const decrypted = Buffer.concat([
241
- decipher.update(encrypted),
242
- decipher.final(),
243
- ]);
244
- return new ecies_lib_1.SecureBuffer(decrypted);
245
- }
246
- catch {
247
- throw new errors_1.InvalidPasswordError();
248
- }
249
- finally {
250
- passwordKeySecure.dispose();
251
- }
252
- }
253
- /**
254
- * Unwraps a password-wrapped secret (async PBKDF2)
255
- */
256
- async unwrapSecretAsync(wrapped, password, constants = node_ecies_lib_1.Constants) {
257
- const salt = Buffer.from(wrapped.salt, 'hex');
258
- const iv = Buffer.from(wrapped.iv, 'hex');
259
- const authTag = Buffer.from(wrapped.authTag, 'hex');
260
- const encrypted = Buffer.from(wrapped.ciphertext, 'hex');
261
- // Validate password parameter before using it
262
- // amazonq-ignore-next-line false positive
263
- if (typeof password === 'string') {
264
- if (password === undefined || password === null) {
265
- throw new Error('Password cannot be undefined or null');
266
- }
267
- }
268
- else if (!(password instanceof ecies_lib_1.SecureString)) {
269
- throw new Error('Password must be provided as string or SecureString');
270
- }
271
- const pwdBuffer =
272
- // amazonq-ignore-next-line false positive
273
- typeof password === 'string'
274
- ? Buffer.from(password, 'utf8')
275
- : await (async () => password.valueAsUint8Array)();
276
- // Additional safety check
277
- if (!pwdBuffer) {
278
- throw new Error('Failed to create password buffer - password may be invalid');
279
- }
280
- const pbkdf2Service = createPbkdf2Service(constants);
281
- // Use centralized PBKDF2 service for async key derivation
282
- const derivedKey = await pbkdf2Service.deriveKeyFromPasswordAsync(Buffer.from(pwdBuffer), salt, wrapped.iterations, salt.length, // Use actual salt size
283
- 32, // AES-256 key size
284
- 'sha256');
285
- const passwordKeySecure = new ecies_lib_1.SecureBuffer(derivedKey.hash);
286
- try {
287
- const decipher = (0, crypto_1.createDecipheriv)('aes-256-gcm', passwordKeySecure.value, iv);
288
- decipher.setAuthTag(authTag);
289
- const decrypted = Buffer.concat([
290
- decipher.update(encrypted),
291
- decipher.final(),
292
- ]);
293
- return new ecies_lib_1.SecureBuffer(decrypted);
294
- }
295
- catch {
296
- throw new errors_1.InvalidPasswordError();
297
- }
298
- finally {
299
- try {
300
- pwdBuffer.fill(0);
301
- }
302
- catch {
303
- // ignore
304
- }
305
- passwordKeySecure.dispose();
306
- }
307
- }
308
- }
309
- exports.KeyWrappingService = KeyWrappingService;
310
- //# sourceMappingURL=key-wrapping.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"key-wrapping.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/services/key-wrapping.ts"],"names":[],"mappings":"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"}
@@ -1,61 +0,0 @@
1
- import { SecureBuffer, SecureString } from '@digitaldefiance/ecies-lib';
2
- import { ClientSession, Model, Types } from '@digitaldefiance/mongoose-types';
3
- import { IMnemonicDocument } from '../documents/mnemonic';
4
- import { IConstants } from '../interfaces';
5
- /**
6
- * Encrypts and stores mnemonics securely, using an HMAC to check for
7
- * uniqueness without exposing the mnemonic itself.
8
- */
9
- export declare class MnemonicService<I extends string | Types.ObjectId = Types.ObjectId> {
10
- private readonly hmacSecret;
11
- private readonly MnemonicModel;
12
- private readonly constants;
13
- constructor(mnemonicModel: Model<IMnemonicDocument<I>>, hmacSecret: SecureBuffer, constants: IConstants);
14
- /**
15
- * Disposes of the secure secrets held by this service.
16
- */
17
- dispose(): void;
18
- /**
19
- * Creates a non-reversible HMAC of the mnemonic for fast, indexed lookups.
20
- * @param mnemonic The mnemonic to hash, wrapped in a SecureString.
21
- */
22
- getMnemonicHmac(mnemonic: SecureString): string;
23
- /**
24
- * Checks if a mnemonic already exists in the database using its HMAC.
25
- * @param mnemonic The mnemonic to check, wrapped in a SecureString.
26
- * @param session Optional Mongoose session for transaction support.
27
- */
28
- mnemonicExists(mnemonic: SecureString, session?: ClientSession): Promise<boolean>;
29
- /**
30
- * Adds a new, unique mnemonic to the database with password-based key wrapping.
31
- * @param mnemonic The mnemonic to add, wrapped in a SecureString.
32
- * @param password User's password for key wrapping.
33
- * @param session Optional Mongoose session for transaction support.
34
- */
35
- addMnemonicWithPassword(mnemonic: SecureString, _password: SecureString, session?: ClientSession): Promise<{
36
- document: IMnemonicDocument<I> | null;
37
- }>;
38
- /**
39
- * Adds a new, unique mnemonic to the database.
40
- * @param mnemonic The mnemonic to add, wrapped in a SecureString.
41
- * @param session Optional Mongoose session for transaction support.
42
- */
43
- addMnemonic(mnemonic: SecureString, session?: ClientSession): Promise<IMnemonicDocument<I> | null>;
44
- /**
45
- * Retrieves a mnemonic document by ID.
46
- * @param mnemonicId The ID of the mnemonic document.
47
- * @param session Optional Mongoose session for transaction support.
48
- */
49
- getMnemonicDocument(mnemonicId: I, session?: ClientSession): Promise<IMnemonicDocument<I> | null>;
50
- /**
51
- * Decrypts a mnemonic from a document using the service's master encryption key.
52
- * @param doc The mnemonic document.
53
- */
54
- /**
55
- * Deletes a mnemonic document by ID.
56
- * @param mnemonicId The ID of the mnemonic document.
57
- * @param session Optional Mongoose session for transaction support.
58
- */
59
- deleteMnemonicDocument(mnemonicId: I, session?: ClientSession): Promise<void>;
60
- }
61
- //# sourceMappingURL=mnemonic.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mnemonic.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/services/mnemonic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAMxE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C;;;GAGG;AACH,qBAAa,eAAe,CAAC,CAAC,SAAS,MAAM,GAAG,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ;IAC7E,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAe;IAC1C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA8B;IAC5D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAa;gBAGrC,aAAa,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAC1C,UAAU,EAAE,YAAY,EACxB,SAAS,EAAE,UAAU;IAQvB;;OAEG;IACI,OAAO,IAAI,IAAI;IAItB;;;OAGG;IACI,eAAe,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM;IAOtD;;;;OAIG;IACU,cAAc,CACzB,QAAQ,EAAE,YAAY,EACtB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,OAAO,CAAC;IAQnB;;;;;OAKG;IACU,uBAAuB,CAClC,QAAQ,EAAE,YAAY,EACtB,SAAS,EAAE,YAAY,EACvB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC;QACT,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;KACvC,CAAC;IA2BF;;;;OAIG;IACU,WAAW,CACtB,QAAQ,EAAE,YAAY,EACtB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAsBvC;;;;OAIG;IACU,mBAAmB,CAC9B,UAAU,EAAE,CAAC,EACb,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAMvC;;;OAGG;IAEH;;;;OAIG;IACU,sBAAsB,CACjC,UAAU,EAAE,CAAC,EACb,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,IAAI,CAAC;CAKjB"}