@digitaldefiance/node-express-suite 4.22.2 → 4.23.1

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 (441) hide show
  1. package/README.md +173 -407
  2. package/package.json +1 -5
  3. package/src/__tests__/fixtures/index.d.ts +1 -1
  4. package/src/__tests__/fixtures/index.d.ts.map +1 -1
  5. package/src/__tests__/fixtures/index.js +1 -2
  6. package/src/__tests__/fixtures/index.js.map +1 -1
  7. package/src/__tests__/helpers/index.d.ts +1 -3
  8. package/src/__tests__/helpers/index.d.ts.map +1 -1
  9. package/src/__tests__/helpers/index.js +1 -4
  10. package/src/__tests__/helpers/index.js.map +1 -1
  11. package/src/__tests__/index.d.ts.map +1 -1
  12. package/src/__tests__/index.js +1 -0
  13. package/src/__tests__/index.js.map +1 -1
  14. package/src/application.d.ts +8 -11
  15. package/src/application.d.ts.map +1 -1
  16. package/src/application.js +8 -17
  17. package/src/application.js.map +1 -1
  18. package/src/branded-responses/branded-api-responses.d.ts +10 -2
  19. package/src/branded-responses/branded-api-responses.d.ts.map +1 -1
  20. package/src/branded-responses/branded-api-responses.js +5 -0
  21. package/src/branded-responses/branded-api-responses.js.map +1 -1
  22. package/src/branded-responses/serializers.d.ts +4 -1
  23. package/src/branded-responses/serializers.d.ts.map +1 -1
  24. package/src/builders/index.d.ts +1 -1
  25. package/src/builders/index.d.ts.map +1 -1
  26. package/src/builders/index.js +1 -2
  27. package/src/builders/index.js.map +1 -1
  28. package/src/controllers/base.d.ts +5 -18
  29. package/src/controllers/base.d.ts.map +1 -1
  30. package/src/controllers/base.js +7 -62
  31. package/src/controllers/base.js.map +1 -1
  32. package/src/controllers/index.d.ts +1 -1
  33. package/src/controllers/index.d.ts.map +1 -1
  34. package/src/controllers/index.js +2 -1
  35. package/src/controllers/index.js.map +1 -1
  36. package/src/controllers/openapi.d.ts +3 -3
  37. package/src/controllers/openapi.d.ts.map +1 -1
  38. package/src/controllers/openapi.js.map +1 -1
  39. package/src/enumerations/index.d.ts +0 -2
  40. package/src/enumerations/index.d.ts.map +1 -1
  41. package/src/enumerations/index.js +0 -2
  42. package/src/enumerations/index.js.map +1 -1
  43. package/src/environment.d.ts +4 -3
  44. package/src/environment.d.ts.map +1 -1
  45. package/src/environment.js +3 -1
  46. package/src/environment.js.map +1 -1
  47. package/src/errors/index.d.ts +0 -3
  48. package/src/errors/index.d.ts.map +1 -1
  49. package/src/errors/index.js +0 -3
  50. package/src/errors/index.js.map +1 -1
  51. package/src/index.d.ts +1 -8
  52. package/src/index.d.ts.map +1 -1
  53. package/src/index.js +1 -11
  54. package/src/index.js.map +1 -1
  55. package/src/interfaces/controller-config.d.ts +1 -2
  56. package/src/interfaces/controller-config.d.ts.map +1 -1
  57. package/src/interfaces/document-store.d.ts +3 -2
  58. package/src/interfaces/document-store.d.ts.map +1 -1
  59. package/src/interfaces/document-store.js +3 -3
  60. package/src/interfaces/document-store.js.map +1 -1
  61. package/src/interfaces/documents/base.d.ts +24 -0
  62. package/src/interfaces/documents/base.d.ts.map +1 -0
  63. package/src/interfaces/documents/base.js +13 -0
  64. package/src/interfaces/documents/base.js.map +1 -0
  65. package/src/interfaces/documents/email-token.d.ts +15 -0
  66. package/src/interfaces/documents/email-token.d.ts.map +1 -0
  67. package/src/interfaces/documents/email-token.js +7 -0
  68. package/src/interfaces/{models → documents}/email-token.js.map +1 -1
  69. package/src/interfaces/documents/index.d.ts +25 -0
  70. package/src/interfaces/documents/index.d.ts.map +1 -0
  71. package/src/interfaces/documents/index.js +20 -0
  72. package/src/interfaces/documents/index.js.map +1 -0
  73. package/src/interfaces/documents/mnemonic.d.ts +15 -0
  74. package/src/interfaces/documents/mnemonic.d.ts.map +1 -0
  75. package/src/interfaces/documents/mnemonic.js +7 -0
  76. package/src/interfaces/{models → documents}/mnemonic.js.map +1 -1
  77. package/src/interfaces/documents/role.d.ts +15 -0
  78. package/src/interfaces/documents/role.d.ts.map +1 -0
  79. package/src/interfaces/documents/role.js +7 -0
  80. package/src/interfaces/{models → documents}/role.js.map +1 -1
  81. package/src/interfaces/documents/used-direct-login-token.d.ts +15 -0
  82. package/src/interfaces/documents/used-direct-login-token.d.ts.map +1 -0
  83. package/src/interfaces/documents/used-direct-login-token.js +7 -0
  84. package/src/interfaces/{models → documents}/used-direct-login-token.js.map +1 -1
  85. package/src/interfaces/documents/user-role.d.ts +15 -0
  86. package/src/interfaces/documents/user-role.d.ts.map +1 -0
  87. package/src/interfaces/documents/user-role.js +7 -0
  88. package/src/interfaces/{models → documents}/user-role.js.map +1 -1
  89. package/src/interfaces/documents/user.d.ts +16 -0
  90. package/src/interfaces/documents/user.d.ts.map +1 -0
  91. package/src/interfaces/documents/user.js +7 -0
  92. package/src/interfaces/{models → documents}/user.js.map +1 -1
  93. package/src/interfaces/environment.d.ts +3 -2
  94. package/src/interfaces/environment.d.ts.map +1 -1
  95. package/src/interfaces/index.d.ts +3 -10
  96. package/src/interfaces/index.d.ts.map +1 -1
  97. package/src/interfaces/index.js +3 -10
  98. package/src/interfaces/index.js.map +1 -1
  99. package/src/interfaces/jwt-service.d.ts +27 -0
  100. package/src/interfaces/jwt-service.d.ts.map +1 -0
  101. package/src/interfaces/jwt-service.js +10 -0
  102. package/src/interfaces/jwt-service.js.map +1 -0
  103. package/src/interfaces/role-service.d.ts +55 -0
  104. package/src/interfaces/role-service.d.ts.map +1 -0
  105. package/src/interfaces/role-service.js +10 -0
  106. package/src/interfaces/role-service.js.map +1 -0
  107. package/src/interfaces/server-init-result.d.ts +10 -18
  108. package/src/interfaces/server-init-result.d.ts.map +1 -1
  109. package/src/interfaces/server-init-result.js +4 -2
  110. package/src/interfaces/server-init-result.js.map +1 -1
  111. package/src/plugins/database-plugin.d.ts +12 -0
  112. package/src/plugins/database-plugin.d.ts.map +1 -1
  113. package/src/plugins/index.d.ts +0 -1
  114. package/src/plugins/index.d.ts.map +1 -1
  115. package/src/plugins/index.js +0 -1
  116. package/src/plugins/index.js.map +1 -1
  117. package/src/routers/index.d.ts +0 -1
  118. package/src/routers/index.d.ts.map +1 -1
  119. package/src/routers/index.js +0 -1
  120. package/src/routers/index.js.map +1 -1
  121. package/src/services/abstract-jwt-service.d.ts +34 -0
  122. package/src/services/abstract-jwt-service.d.ts.map +1 -0
  123. package/src/services/abstract-jwt-service.js +68 -0
  124. package/src/services/abstract-jwt-service.js.map +1 -0
  125. package/src/services/abstract-role-service.d.ts +61 -0
  126. package/src/services/abstract-role-service.d.ts.map +1 -0
  127. package/src/services/abstract-role-service.js +69 -0
  128. package/src/services/abstract-role-service.js.map +1 -0
  129. package/src/services/base.d.ts +10 -13
  130. package/src/services/base.d.ts.map +1 -1
  131. package/src/services/base.js +7 -21
  132. package/src/services/base.js.map +1 -1
  133. package/src/services/index.d.ts +2 -15
  134. package/src/services/index.d.ts.map +1 -1
  135. package/src/services/index.js +2 -15
  136. package/src/services/index.js.map +1 -1
  137. package/src/testing.d.ts +1 -1
  138. package/src/testing.d.ts.map +1 -1
  139. package/src/testing.js +1 -1
  140. package/src/testing.js.map +1 -1
  141. package/src/types.d.ts +6 -17
  142. package/src/types.d.ts.map +1 -1
  143. package/src/types.js.map +1 -1
  144. package/src/utils.d.ts +5 -34
  145. package/src/utils.d.ts.map +1 -1
  146. package/src/utils.js +24 -165
  147. package/src/utils.js.map +1 -1
  148. package/src/__tests__/fixtures/model-mocks.mock.d.ts +0 -12
  149. package/src/__tests__/fixtures/model-mocks.mock.d.ts.map +0 -1
  150. package/src/__tests__/fixtures/model-mocks.mock.js +0 -102
  151. package/src/__tests__/fixtures/model-mocks.mock.js.map +0 -1
  152. package/src/__tests__/helpers/application.mock.d.ts +0 -8
  153. package/src/__tests__/helpers/application.mock.d.ts.map +0 -1
  154. package/src/__tests__/helpers/application.mock.js +0 -85
  155. package/src/__tests__/helpers/application.mock.js.map +0 -1
  156. package/src/__tests__/helpers/setup-test-env.d.ts +0 -13
  157. package/src/__tests__/helpers/setup-test-env.d.ts.map +0 -1
  158. package/src/__tests__/helpers/setup-test-env.js +0 -133
  159. package/src/__tests__/helpers/setup-test-env.js.map +0 -1
  160. package/src/builders/application-builder.d.ts +0 -53
  161. package/src/builders/application-builder.d.ts.map +0 -1
  162. package/src/builders/application-builder.js +0 -91
  163. package/src/builders/application-builder.js.map +0 -1
  164. package/src/controllers/user.d.ts +0 -66
  165. package/src/controllers/user.d.ts.map +0 -1
  166. package/src/controllers/user.js +0 -949
  167. package/src/controllers/user.js.map +0 -1
  168. package/src/documents/base.d.ts +0 -15
  169. package/src/documents/base.d.ts.map +0 -1
  170. package/src/documents/base.js +0 -8
  171. package/src/documents/base.js.map +0 -1
  172. package/src/documents/email-token.d.ts +0 -15
  173. package/src/documents/email-token.d.ts.map +0 -1
  174. package/src/documents/email-token.js +0 -8
  175. package/src/documents/email-token.js.map +0 -1
  176. package/src/documents/index.d.ts +0 -8
  177. package/src/documents/index.d.ts.map +0 -1
  178. package/src/documents/index.js +0 -3
  179. package/src/documents/index.js.map +0 -1
  180. package/src/documents/mnemonic.d.ts +0 -16
  181. package/src/documents/mnemonic.d.ts.map +0 -1
  182. package/src/documents/mnemonic.js +0 -8
  183. package/src/documents/mnemonic.js.map +0 -1
  184. package/src/documents/role.d.ts +0 -15
  185. package/src/documents/role.d.ts.map +0 -1
  186. package/src/documents/role.js +0 -8
  187. package/src/documents/role.js.map +0 -1
  188. package/src/documents/used-direct-login-token.d.ts +0 -16
  189. package/src/documents/used-direct-login-token.d.ts.map +0 -1
  190. package/src/documents/used-direct-login-token.js +0 -8
  191. package/src/documents/used-direct-login-token.js.map +0 -1
  192. package/src/documents/user-role.d.ts +0 -16
  193. package/src/documents/user-role.d.ts.map +0 -1
  194. package/src/documents/user-role.js +0 -8
  195. package/src/documents/user-role.js.map +0 -1
  196. package/src/documents/user.d.ts +0 -16
  197. package/src/documents/user.d.ts.map +0 -1
  198. package/src/documents/user.js +0 -8
  199. package/src/documents/user.js.map +0 -1
  200. package/src/enumerations/base-model-name.d.ts +0 -43
  201. package/src/enumerations/base-model-name.d.ts.map +0 -1
  202. package/src/enumerations/base-model-name.js +0 -39
  203. package/src/enumerations/base-model-name.js.map +0 -1
  204. package/src/enumerations/schema-collection.d.ts +0 -39
  205. package/src/enumerations/schema-collection.d.ts.map +0 -1
  206. package/src/enumerations/schema-collection.js +0 -43
  207. package/src/enumerations/schema-collection.js.map +0 -1
  208. package/src/errors/invalid-model.d.ts +0 -18
  209. package/src/errors/invalid-model.d.ts.map +0 -1
  210. package/src/errors/invalid-model.js +0 -26
  211. package/src/errors/invalid-model.js.map +0 -1
  212. package/src/errors/model-not-registered.d.ts +0 -18
  213. package/src/errors/model-not-registered.d.ts.map +0 -1
  214. package/src/errors/model-not-registered.js +0 -26
  215. package/src/errors/model-not-registered.js.map +0 -1
  216. package/src/errors/mongoose-validation.d.ts +0 -28
  217. package/src/errors/mongoose-validation.d.ts.map +0 -1
  218. package/src/errors/mongoose-validation.js +0 -33
  219. package/src/errors/mongoose-validation.js.map +0 -1
  220. package/src/interfaces/api-mongo-validation-error-response.d.ts +0 -16
  221. package/src/interfaces/api-mongo-validation-error-response.d.ts.map +0 -1
  222. package/src/interfaces/api-mongo-validation-error-response.js +0 -8
  223. package/src/interfaces/api-mongo-validation-error-response.js.map +0 -1
  224. package/src/interfaces/database-init-result-tx.d.ts +0 -27
  225. package/src/interfaces/database-init-result-tx.d.ts.map +0 -1
  226. package/src/interfaces/database-init-result-tx.js +0 -3
  227. package/src/interfaces/database-init-result-tx.js.map +0 -1
  228. package/src/interfaces/db-init-result.d.ts +0 -16
  229. package/src/interfaces/db-init-result.d.ts.map +0 -1
  230. package/src/interfaces/db-init-result.js +0 -8
  231. package/src/interfaces/db-init-result.js.map +0 -1
  232. package/src/interfaces/discriminator-collections.d.ts +0 -17
  233. package/src/interfaces/discriminator-collections.d.ts.map +0 -1
  234. package/src/interfaces/discriminator-collections.js +0 -8
  235. package/src/interfaces/discriminator-collections.js.map +0 -1
  236. package/src/interfaces/environment-mongo.d.ts +0 -86
  237. package/src/interfaces/environment-mongo.d.ts.map +0 -1
  238. package/src/interfaces/environment-mongo.js +0 -8
  239. package/src/interfaces/environment-mongo.js.map +0 -1
  240. package/src/interfaces/models/email-token.d.ts +0 -12
  241. package/src/interfaces/models/email-token.d.ts.map +0 -1
  242. package/src/interfaces/models/email-token.js +0 -8
  243. package/src/interfaces/models/index.d.ts +0 -8
  244. package/src/interfaces/models/index.d.ts.map +0 -1
  245. package/src/interfaces/models/index.js +0 -11
  246. package/src/interfaces/models/index.js.map +0 -1
  247. package/src/interfaces/models/mnemonic.d.ts +0 -13
  248. package/src/interfaces/models/mnemonic.d.ts.map +0 -1
  249. package/src/interfaces/models/mnemonic.js +0 -8
  250. package/src/interfaces/models/role.d.ts +0 -12
  251. package/src/interfaces/models/role.d.ts.map +0 -1
  252. package/src/interfaces/models/role.js +0 -8
  253. package/src/interfaces/models/token-role.d.ts +0 -19
  254. package/src/interfaces/models/token-role.d.ts.map +0 -1
  255. package/src/interfaces/models/token-role.js +0 -8
  256. package/src/interfaces/models/token-role.js.map +0 -1
  257. package/src/interfaces/models/used-direct-login-token.d.ts +0 -19
  258. package/src/interfaces/models/used-direct-login-token.d.ts.map +0 -1
  259. package/src/interfaces/models/used-direct-login-token.js +0 -8
  260. package/src/interfaces/models/user-role.d.ts +0 -19
  261. package/src/interfaces/models/user-role.d.ts.map +0 -1
  262. package/src/interfaces/models/user-role.js +0 -8
  263. package/src/interfaces/models/user.d.ts +0 -21
  264. package/src/interfaces/models/user.d.ts.map +0 -1
  265. package/src/interfaces/models/user.js +0 -8
  266. package/src/interfaces/mongo-application.d.ts +0 -35
  267. package/src/interfaces/mongo-application.d.ts.map +0 -1
  268. package/src/interfaces/mongo-application.js +0 -10
  269. package/src/interfaces/mongo-application.js.map +0 -1
  270. package/src/interfaces/mongo-errors.d.ts +0 -13
  271. package/src/interfaces/mongo-errors.d.ts.map +0 -1
  272. package/src/interfaces/mongo-errors.js +0 -8
  273. package/src/interfaces/mongo-errors.js.map +0 -1
  274. package/src/interfaces/mongoose-document-store.d.ts +0 -42
  275. package/src/interfaces/mongoose-document-store.d.ts.map +0 -1
  276. package/src/interfaces/mongoose-document-store.js +0 -10
  277. package/src/interfaces/mongoose-document-store.js.map +0 -1
  278. package/src/interfaces/schema.d.ts +0 -37
  279. package/src/interfaces/schema.d.ts.map +0 -1
  280. package/src/interfaces/schema.js +0 -8
  281. package/src/interfaces/schema.js.map +0 -1
  282. package/src/interfaces/test-environment.d.ts +0 -22
  283. package/src/interfaces/test-environment.d.ts.map +0 -1
  284. package/src/interfaces/test-environment.js +0 -8
  285. package/src/interfaces/test-environment.js.map +0 -1
  286. package/src/model-registry.d.ts +0 -79
  287. package/src/model-registry.d.ts.map +0 -1
  288. package/src/model-registry.js +0 -97
  289. package/src/model-registry.js.map +0 -1
  290. package/src/models/email-token.d.ts +0 -24
  291. package/src/models/email-token.d.ts.map +0 -1
  292. package/src/models/email-token.js +0 -16
  293. package/src/models/email-token.js.map +0 -1
  294. package/src/models/index.d.ts +0 -7
  295. package/src/models/index.d.ts.map +0 -1
  296. package/src/models/index.js +0 -10
  297. package/src/models/index.js.map +0 -1
  298. package/src/models/mnemonic.d.ts +0 -24
  299. package/src/models/mnemonic.d.ts.map +0 -1
  300. package/src/models/mnemonic.js +0 -27
  301. package/src/models/mnemonic.js.map +0 -1
  302. package/src/models/role.d.ts +0 -24
  303. package/src/models/role.d.ts.map +0 -1
  304. package/src/models/role.js +0 -27
  305. package/src/models/role.js.map +0 -1
  306. package/src/models/used-direct-login-token.d.ts +0 -24
  307. package/src/models/used-direct-login-token.d.ts.map +0 -1
  308. package/src/models/used-direct-login-token.js +0 -16
  309. package/src/models/used-direct-login-token.js.map +0 -1
  310. package/src/models/user-role.d.ts +0 -23
  311. package/src/models/user-role.d.ts.map +0 -1
  312. package/src/models/user-role.js +0 -26
  313. package/src/models/user-role.js.map +0 -1
  314. package/src/models/user.d.ts +0 -24
  315. package/src/models/user.d.ts.map +0 -1
  316. package/src/models/user.js +0 -27
  317. package/src/models/user.js.map +0 -1
  318. package/src/mongo-application-concrete.d.ts +0 -32
  319. package/src/mongo-application-concrete.d.ts.map +0 -1
  320. package/src/mongo-application-concrete.js +0 -49
  321. package/src/mongo-application-concrete.js.map +0 -1
  322. package/src/plugins/mongo-database-plugin.d.ts +0 -115
  323. package/src/plugins/mongo-database-plugin.d.ts.map +0 -1
  324. package/src/plugins/mongo-database-plugin.js +0 -234
  325. package/src/plugins/mongo-database-plugin.js.map +0 -1
  326. package/src/routers/api.d.ts +0 -60
  327. package/src/routers/api.d.ts.map +0 -1
  328. package/src/routers/api.js +0 -116
  329. package/src/routers/api.js.map +0 -1
  330. package/src/schemas/email-token.d.ts +0 -65
  331. package/src/schemas/email-token.d.ts.map +0 -1
  332. package/src/schemas/email-token.js +0 -68
  333. package/src/schemas/email-token.js.map +0 -1
  334. package/src/schemas/index.d.ts +0 -8
  335. package/src/schemas/index.d.ts.map +0 -1
  336. package/src/schemas/index.js +0 -11
  337. package/src/schemas/index.js.map +0 -1
  338. package/src/schemas/mnemonic.d.ts +0 -37
  339. package/src/schemas/mnemonic.d.ts.map +0 -1
  340. package/src/schemas/mnemonic.js +0 -41
  341. package/src/schemas/mnemonic.js.map +0 -1
  342. package/src/schemas/role.d.ts +0 -57
  343. package/src/schemas/role.d.ts.map +0 -1
  344. package/src/schemas/role.js +0 -102
  345. package/src/schemas/role.js.map +0 -1
  346. package/src/schemas/schema.d.ts +0 -62
  347. package/src/schemas/schema.d.ts.map +0 -1
  348. package/src/schemas/schema.js +0 -81
  349. package/src/schemas/schema.js.map +0 -1
  350. package/src/schemas/used-direct-login-token.d.ts +0 -49
  351. package/src/schemas/used-direct-login-token.d.ts.map +0 -1
  352. package/src/schemas/used-direct-login-token.js +0 -35
  353. package/src/schemas/used-direct-login-token.js.map +0 -1
  354. package/src/schemas/user-role.d.ts +0 -52
  355. package/src/schemas/user-role.d.ts.map +0 -1
  356. package/src/schemas/user-role.js +0 -67
  357. package/src/schemas/user-role.js.map +0 -1
  358. package/src/schemas/user.d.ts +0 -43
  359. package/src/schemas/user.d.ts.map +0 -1
  360. package/src/schemas/user.js +0 -214
  361. package/src/schemas/user.js.map +0 -1
  362. package/src/services/backup-code.d.ts +0 -120
  363. package/src/services/backup-code.d.ts.map +0 -1
  364. package/src/services/backup-code.js +0 -323
  365. package/src/services/backup-code.js.map +0 -1
  366. package/src/services/database-initialization.d.ts +0 -138
  367. package/src/services/database-initialization.d.ts.map +0 -1
  368. package/src/services/database-initialization.js +0 -913
  369. package/src/services/database-initialization.js.map +0 -1
  370. package/src/services/db-init-cache.d.ts +0 -18
  371. package/src/services/db-init-cache.d.ts.map +0 -1
  372. package/src/services/db-init-cache.js +0 -7
  373. package/src/services/db-init-cache.js.map +0 -1
  374. package/src/services/direct-login-token.d.ts +0 -28
  375. package/src/services/direct-login-token.d.ts.map +0 -1
  376. package/src/services/direct-login-token.js +0 -62
  377. package/src/services/direct-login-token.js.map +0 -1
  378. package/src/services/jwt.d.ts +0 -45
  379. package/src/services/jwt.d.ts.map +0 -1
  380. package/src/services/jwt.js +0 -105
  381. package/src/services/jwt.js.map +0 -1
  382. package/src/services/mnemonic.d.ts +0 -68
  383. package/src/services/mnemonic.d.ts.map +0 -1
  384. package/src/services/mnemonic.js +0 -120
  385. package/src/services/mnemonic.js.map +0 -1
  386. package/src/services/mongo-authentication-provider.d.ts +0 -27
  387. package/src/services/mongo-authentication-provider.d.ts.map +0 -1
  388. package/src/services/mongo-authentication-provider.js +0 -84
  389. package/src/services/mongo-authentication-provider.js.map +0 -1
  390. package/src/services/mongo-backup-code-store.d.ts +0 -40
  391. package/src/services/mongo-backup-code-store.d.ts.map +0 -1
  392. package/src/services/mongo-backup-code-store.js +0 -104
  393. package/src/services/mongo-backup-code-store.js.map +0 -1
  394. package/src/services/mongo-base.d.ts +0 -24
  395. package/src/services/mongo-base.d.ts.map +0 -1
  396. package/src/services/mongo-base.js +0 -28
  397. package/src/services/mongo-base.js.map +0 -1
  398. package/src/services/mongoose-collection.d.ts +0 -52
  399. package/src/services/mongoose-collection.d.ts.map +0 -1
  400. package/src/services/mongoose-collection.js +0 -326
  401. package/src/services/mongoose-collection.js.map +0 -1
  402. package/src/services/mongoose-database.d.ts +0 -64
  403. package/src/services/mongoose-database.d.ts.map +0 -1
  404. package/src/services/mongoose-database.js +0 -121
  405. package/src/services/mongoose-database.js.map +0 -1
  406. package/src/services/mongoose-document-store.d.ts +0 -109
  407. package/src/services/mongoose-document-store.d.ts.map +0 -1
  408. package/src/services/mongoose-document-store.js +0 -264
  409. package/src/services/mongoose-document-store.js.map +0 -1
  410. package/src/services/mongoose-session-adapter.d.ts +0 -39
  411. package/src/services/mongoose-session-adapter.d.ts.map +0 -1
  412. package/src/services/mongoose-session-adapter.js +0 -63
  413. package/src/services/mongoose-session-adapter.js.map +0 -1
  414. package/src/services/request-user.d.ts +0 -45
  415. package/src/services/request-user.d.ts.map +0 -1
  416. package/src/services/request-user.js +0 -90
  417. package/src/services/request-user.js.map +0 -1
  418. package/src/services/role.d.ts +0 -97
  419. package/src/services/role.d.ts.map +0 -1
  420. package/src/services/role.js +0 -289
  421. package/src/services/role.js.map +0 -1
  422. package/src/services/user.d.ts +0 -368
  423. package/src/services/user.d.ts.map +0 -1
  424. package/src/services/user.js +0 -1495
  425. package/src/services/user.js.map +0 -1
  426. package/src/transactions/index.d.ts +0 -2
  427. package/src/transactions/index.d.ts.map +0 -1
  428. package/src/transactions/index.js +0 -5
  429. package/src/transactions/index.js.map +0 -1
  430. package/src/transactions/transaction-manager.d.ts +0 -37
  431. package/src/transactions/transaction-manager.d.ts.map +0 -1
  432. package/src/transactions/transaction-manager.js +0 -50
  433. package/src/transactions/transaction-manager.js.map +0 -1
  434. package/src/types/mongoose-helpers.d.ts +0 -16
  435. package/src/types/mongoose-helpers.d.ts.map +0 -1
  436. package/src/types/mongoose-helpers.js +0 -8
  437. package/src/types/mongoose-helpers.js.map +0 -1
  438. package/src/utils/default-mongo-uri-validator.d.ts +0 -15
  439. package/src/utils/default-mongo-uri-validator.d.ts.map +0 -1
  440. package/src/utils/default-mongo-uri-validator.js +0 -46
  441. package/src/utils/default-mongo-uri-validator.js.map +0 -1
@@ -1,234 +0,0 @@
1
- "use strict";
2
- /**
3
- * @fileoverview Mongoose/MongoDB database plugin.
4
- * Extracts all Mongo-specific database lifecycle
5
- * into a plugin that can be registered on any Application instance.
6
- * @module plugins/mongo-database-plugin
7
- */
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.MongoDatabasePlugin = void 0;
10
- const suite_core_lib_1 = require("@digitaldefiance/suite-core-lib");
11
- const mongoose_document_store_1 = require("../services/mongoose-document-store");
12
- const mongo_authentication_provider_1 = require("../services/mongo-authentication-provider");
13
- const database_initialization_1 = require("../services/database-initialization");
14
- const no_op_database_1 = require("../utils/no-op-database");
15
- /**
16
- * Mongoose/MongoDB database plugin.
17
- *
18
- * Wraps a MongooseDocumentStore and exposes Mongoose-specific accessors
19
- * (db, getModel, schemaMap, devDatabase) while conforming to the
20
- * IDatabasePlugin contract for pluggable database backends.
21
- *
22
- * @template TID - Platform ID type
23
- * @template TModelDocs - Record mapping model names to document types
24
- * @template TInitResults - Database initialization result type
25
- * @template TConstants - Application constants type
26
- */
27
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
28
- class MongoDatabasePlugin {
29
- name = 'mongo-database';
30
- version = '1.0.0';
31
- _documentStore;
32
- _environment;
33
- _authProvider;
34
- _application;
35
- _lastInitResult;
36
- constructor(options) {
37
- const constants = options.constants ?? suite_core_lib_1.Constants;
38
- this._documentStore = new mongoose_document_store_1.MongooseDocumentStore(options.schemaMapFactory, options.databaseInitFunction, options.initResultHashFunction, options.environment, constants);
39
- this._environment = options.environment;
40
- }
41
- /**
42
- * Construct from an existing IDocumentStore instance.
43
- */
44
- static fromDocumentStore(documentStore, environment) {
45
- const plugin = Object.create(MongoDatabasePlugin.prototype);
46
- Object.defineProperty(plugin, '_documentStore', {
47
- value: documentStore,
48
- writable: false,
49
- });
50
- Object.defineProperty(plugin, '_environment', {
51
- value: environment,
52
- writable: false,
53
- });
54
- Object.defineProperty(plugin, 'name', {
55
- value: 'mongo-database',
56
- writable: false,
57
- });
58
- Object.defineProperty(plugin, 'version', {
59
- value: '1.0.0',
60
- writable: false,
61
- });
62
- return plugin;
63
- }
64
- // ── IDatabasePlugin contract ──
65
- /**
66
- * The IDatabase instance. For Mongo, this is a no-op adapter since
67
- * the document store manages its own connection lifecycle.
68
- */
69
- get database() {
70
- return (0, no_op_database_1.createNoOpDatabase)();
71
- }
72
- get authenticationProvider() {
73
- return this._authProvider;
74
- }
75
- async connect(uri) {
76
- // Handle dev database setup
77
- if (this._environment.devDatabase && !this._documentStore.devDatabase) {
78
- if (this._documentStore.setupDevStore) {
79
- const devUri = await this._documentStore.setupDevStore();
80
- if (devUri) {
81
- uri = devUri;
82
- }
83
- }
84
- }
85
- const resolvedUri = uri ?? this._environment.mongo?.uri;
86
- await this._documentStore.connect(resolvedUri);
87
- }
88
- async disconnect() {
89
- await this._documentStore.disconnect();
90
- if (this._documentStore.devDatabase) {
91
- await this._documentStore.devDatabase.stop();
92
- }
93
- }
94
- isConnected() {
95
- return this._documentStore.isConnected();
96
- }
97
- async setupDevStore() {
98
- if (this._documentStore.setupDevStore) {
99
- const uri = await this._documentStore.setupDevStore();
100
- return uri ?? '';
101
- }
102
- return '';
103
- }
104
- async teardownDevStore() {
105
- if (this._documentStore.devDatabase) {
106
- await this._documentStore.devDatabase.stop();
107
- }
108
- }
109
- async initializeDevStore() {
110
- if (this._documentStore.initializeDevStore && this._application) {
111
- const result = await this._documentStore.initializeDevStore(this._application);
112
- database_initialization_1.DatabaseInitializationService.printServerInitResults(result, false);
113
- this._lastInitResult = result;
114
- return result;
115
- }
116
- return undefined;
117
- }
118
- /**
119
- * Get the result of the last initializeDevStore call.
120
- * Available after start() completes in dev mode.
121
- */
122
- get lastInitResult() {
123
- return this._lastInitResult;
124
- }
125
- /**
126
- * Get the IMongoApplication adapter created during init().
127
- * This adapter delegates Mongo-specific accessors (db, getModel) to the plugin
128
- * and everything else to the real application. Use this when constructing
129
- * services that need IMongoApplication (e.g. UserService, RoleService).
130
- * Available after init() has been called.
131
- */
132
- get mongoApplication() {
133
- return this._application;
134
- }
135
- /**
136
- * Called by PluginManager during Application.start().
137
- * Wires up the Mongoose-backed authentication provider.
138
- */
139
- async init(app) {
140
- // Wire up auth provider if the app exposes IMongoApplication-compatible interface
141
- // We create a lightweight adapter that satisfies IMongoApplication
142
- const mongoAppAdapter = this.createMongoAppAdapter(app);
143
- // Store the adapter (not the raw app) so that initializeDevStore
144
- // passes an IMongoApplication with getModel/db to the init function.
145
- this._application = mongoAppAdapter;
146
- this._authProvider = new mongo_authentication_provider_1.MongoAuthenticationProvider(mongoAppAdapter);
147
- // Set the auth provider on the application
148
- if ('authProvider' in app && app.authProvider === undefined) {
149
- app.authProvider = this._authProvider;
150
- }
151
- }
152
- async stop() {
153
- await this.disconnect();
154
- }
155
- // ── Mongo-specific accessors ──
156
- /**
157
- * Get the Mongoose database instance.
158
- */
159
- get db() {
160
- if (this._documentStore instanceof mongoose_document_store_1.MongooseDocumentStore) {
161
- return this._documentStore.db;
162
- }
163
- throw new suite_core_lib_1.TranslatableSuiteError(suite_core_lib_1.SuiteCoreStringKey.Admin_Error_DatabaseNotConnectedYet);
164
- }
165
- /**
166
- * Get the schema map for all models.
167
- */
168
- get schemaMap() {
169
- const map = this._documentStore.schemaMap;
170
- if (!map) {
171
- throw new suite_core_lib_1.TranslatableSuiteError(suite_core_lib_1.SuiteCoreStringKey.Admin_Error_SchemaMapIsNotLoadedYet);
172
- }
173
- return map;
174
- }
175
- /**
176
- * Get the in-memory MongoDB instance (if any).
177
- */
178
- get devDatabase() {
179
- return this._documentStore.devDatabase;
180
- }
181
- /**
182
- * Get the underlying document store.
183
- */
184
- get documentStore() {
185
- return this._documentStore;
186
- }
187
- /**
188
- * Get a Mongoose model by name.
189
- */
190
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
191
- getModel(modelName) {
192
- return this._documentStore.getModel(modelName);
193
- }
194
- /**
195
- * Creates a lightweight adapter that satisfies IMongoApplication
196
- * by delegating to the plugin for Mongo-specific accessors and
197
- * to the real app for everything else.
198
- */
199
- createMongoAppAdapter(app) {
200
- // eslint-disable-next-line @typescript-eslint/no-this-alias
201
- const plugin = this;
202
- return {
203
- get environment() {
204
- return app.environment;
205
- },
206
- get constants() {
207
- return app.constants;
208
- },
209
- get ready() {
210
- return app.ready;
211
- },
212
- get services() {
213
- return app.services;
214
- },
215
- get plugins() {
216
- return app.plugins;
217
- },
218
- get database() {
219
- return app.database;
220
- },
221
- get authProvider() {
222
- return app.authProvider;
223
- },
224
- start: () => app.start(),
225
- get db() {
226
- return plugin.db;
227
- },
228
- /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
229
- getModel: (modelName) => plugin.getModel(modelName),
230
- };
231
- }
232
- }
233
- exports.MongoDatabasePlugin = MongoDatabasePlugin;
234
- //# sourceMappingURL=mongo-database-plugin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mongo-database-plugin.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/plugins/mongo-database-plugin.ts"],"names":[],"mappings":"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"}
@@ -1,60 +0,0 @@
1
- /**
2
- * @fileoverview API router configuration with dependency injection and service registration.
3
- * Manages user controller and all required services for API endpoints.
4
- * @module routers/api
5
- */
6
- import { PlatformID } from '@digitaldefiance/node-ecies-lib';
7
- import { ITokenRole, ITokenUser, IUserBase } from '@digitaldefiance/suite-core-lib';
8
- import { BaseDocument } from '../documents';
9
- import { Environment } from '../environment';
10
- import { IConstants } from '../interfaces';
11
- import { IMongoApplication } from '../interfaces/mongo-application';
12
- import { BaseRouter } from './base';
13
- import { CoreLanguageCode } from '@digitaldefiance/i18n-lib';
14
- /**
15
- * Router for the API endpoints.
16
- * Manages user controller and registers all required services via dependency injection.
17
- * @template TID Platform-specific ID type
18
- * @template TDate Date type
19
- * @template TLanguage Site language string literal type
20
- * @template TAccountStatus Account status string literal type
21
- * @template TUser User base type
22
- * @template TTokenRole Token role type
23
- * @template TBaseDocument Base document type
24
- * @template TTokenUser Token user type
25
- * @template TConstants Constants type
26
- * @template TEnvironment Environment type
27
- * @template TApplication Application type
28
- */
29
- export declare class ApiRouter<TID extends PlatformID, TDate extends Date, TLanguage extends CoreLanguageCode, TAccountStatus extends string, TUser extends IUserBase<TID, TDate, TLanguage, TAccountStatus> = IUserBase<TID, TDate, TLanguage, TAccountStatus>, TTokenRole extends ITokenRole<TID, TDate> = ITokenRole<TID, TDate>, TBaseDocument extends BaseDocument<any, TID> = BaseDocument<any, TID>, TTokenUser extends ITokenUser = ITokenUser, TConstants extends IConstants = IConstants, TEnvironment extends Environment<TID> = Environment<TID>, TApplication extends IMongoApplication<TID> = IMongoApplication<TID>> extends BaseRouter<TID, TApplication> {
30
- private readonly openApiController;
31
- /** User controller for handling user-related API endpoints */
32
- private readonly userController;
33
- /** JWT service for token generation and validation */
34
- private readonly jwtService;
35
- /** Email service for sending emails */
36
- private readonly emailService;
37
- /** User service for user management operations */
38
- private readonly userService;
39
- /** Role service for role management operations */
40
- private readonly roleService;
41
- /** Key wrapping service for password-based encryption */
42
- private readonly keyWrappingService;
43
- /** ECIES service for elliptic curve encryption */
44
- private readonly eciesService;
45
- /** Backup code service for generating and validating backup codes */
46
- private readonly backupCodeService;
47
- /**
48
- * Creates a new API router instance.
49
- * Registers all required services and initializes the user controller.
50
- * @param application Application instance with database connection and configuration
51
- */
52
- constructor(application: TApplication, docsRoute?: string | undefined);
53
- /**
54
- * Registers all required services in the application service container.
55
- * Services are registered as singletons and lazily instantiated.
56
- * @private
57
- */
58
- private registerServices;
59
- }
60
- //# sourceMappingURL=api.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/routers/api.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAgB,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EACL,UAAU,EACV,UAAU,EACV,SAAS,EACV,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAQpE,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAG7D;;;;;;;;;;;;;;GAcG;AACH,qBAAa,SAAS,CACpB,GAAG,SAAS,UAAU,EACtB,KAAK,SAAS,IAAI,EAClB,SAAS,SAAS,gBAAgB,EAClC,cAAc,SAAS,MAAM,EAC7B,KAAK,SAAS,SAAS,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,cAAc,CAAC,GAAG,SAAS,CACxE,GAAG,EACH,KAAK,EACL,SAAS,EACT,cAAc,CACf,EACD,UAAU,SAAS,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,EAClE,aAAa,SAAS,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,EACrE,UAAU,SAAS,UAAU,GAAG,UAAU,EAC1C,UAAU,SAAS,UAAU,GAAG,UAAU,EAC1C,YAAY,SAAS,WAAW,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,EACxD,YAAY,SAAS,iBAAiB,CAAC,GAAG,CAAC,GAAG,iBAAiB,CAAC,GAAG,CAAC,CACpE,SAAQ,UAAU,CAAC,GAAG,EAAE,YAAY,CAAC;IACrC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAyB;IAC3D,8DAA8D;IAC9D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAS7B;IACF,sDAAsD;IACtD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAMzB;IACF,uCAAuC;IACvC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgB;IAC7C,kDAAkD;IAClD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAY1B;IACF,kDAAkD;IAClD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsC;IAClE,yDAAyD;IACzD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqB;IACxD,kDAAkD;IAClD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoB;IACjD,qEAAqE;IACrE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAKhC;IACF;;;;OAIG;gBAED,WAAW,EAAE,YAAY,EACzB,SAAS,GAAE,MAAM,GAAG,SAAsB;IAqC5C;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;CAgFzB"}
@@ -1,116 +0,0 @@
1
- "use strict";
2
- /**
3
- * @fileoverview API router configuration with dependency injection and service registration.
4
- * Manages user controller and all required services for API endpoints.
5
- * @module routers/api
6
- */
7
- Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.ApiRouter = void 0;
9
- const node_ecies_lib_1 = require("@digitaldefiance/node-ecies-lib");
10
- const container_1 = require("../container");
11
- const user_1 = require("../controllers/user");
12
- const registry_1 = require("../registry");
13
- const backup_code_1 = require("../services/backup-code");
14
- const jwt_1 = require("../services/jwt");
15
- const key_wrapping_1 = require("../services/key-wrapping");
16
- const role_1 = require("../services/role");
17
- const user_2 = require("../services/user");
18
- const base_1 = require("./base");
19
- const openapi_1 = require("../controllers/openapi");
20
- /**
21
- * Router for the API endpoints.
22
- * Manages user controller and registers all required services via dependency injection.
23
- * @template TID Platform-specific ID type
24
- * @template TDate Date type
25
- * @template TLanguage Site language string literal type
26
- * @template TAccountStatus Account status string literal type
27
- * @template TUser User base type
28
- * @template TTokenRole Token role type
29
- * @template TBaseDocument Base document type
30
- * @template TTokenUser Token user type
31
- * @template TConstants Constants type
32
- * @template TEnvironment Environment type
33
- * @template TApplication Application type
34
- */
35
- class ApiRouter extends base_1.BaseRouter {
36
- openApiController;
37
- /** User controller for handling user-related API endpoints */
38
- userController;
39
- /** JWT service for token generation and validation */
40
- jwtService;
41
- /** Email service for sending emails */
42
- emailService;
43
- /** User service for user management operations */
44
- userService;
45
- /** Role service for role management operations */
46
- roleService;
47
- /** Key wrapping service for password-based encryption */
48
- keyWrappingService;
49
- /** ECIES service for elliptic curve encryption */
50
- eciesService;
51
- /** Backup code service for generating and validating backup codes */
52
- backupCodeService;
53
- /**
54
- * Creates a new API router instance.
55
- * Registers all required services and initializes the user controller.
56
- * @param application Application instance with database connection and configuration
57
- */
58
- constructor(application, docsRoute = '/openapi') {
59
- super(application);
60
- this.registerServices();
61
- this.jwtService = application.services.get(container_1.ServiceKeys.JWT);
62
- this.roleService = application.services.get(container_1.ServiceKeys.ROLE);
63
- this.emailService = application.services.get(container_1.ServiceKeys.EMAIL);
64
- this.keyWrappingService = application.services.get(container_1.ServiceKeys.KEY_WRAPPING);
65
- this.eciesService = application.services.get(container_1.ServiceKeys.ECIES);
66
- this.backupCodeService = application.services.get(container_1.ServiceKeys.BACKUP_CODE);
67
- this.userService = application.services.get(container_1.ServiceKeys.USER);
68
- this.userController = new user_1.UserController(application, this.jwtService, this.userService, this.backupCodeService, this.roleService, this.eciesService);
69
- this.openApiController = new openapi_1.OpenApiController(application);
70
- this.router.use('/user', this.userController.router);
71
- if (docsRoute !== undefined && docsRoute !== '') {
72
- this.router.use(docsRoute, this.openApiController.router);
73
- }
74
- }
75
- /**
76
- * Registers all required services in the application service container.
77
- * Services are registered as singletons and lazily instantiated.
78
- * @private
79
- */
80
- registerServices() {
81
- const app = this.application;
82
- if (!app.services.has(container_1.ServiceKeys.JWT)) {
83
- app.services.register(container_1.ServiceKeys.JWT, () => new jwt_1.JwtService(app));
84
- }
85
- if (!app.services.has(container_1.ServiceKeys.ROLE)) {
86
- app.services.register(container_1.ServiceKeys.ROLE, () => new role_1.RoleService(app));
87
- }
88
- if (!app.services.has(container_1.ServiceKeys.EMAIL)) {
89
- app.services.register(container_1.ServiceKeys.EMAIL, () => registry_1.emailServiceRegistry.getService());
90
- }
91
- if (!app.services.has(container_1.ServiceKeys.KEY_WRAPPING)) {
92
- app.services.register(container_1.ServiceKeys.KEY_WRAPPING, () => new key_wrapping_1.KeyWrappingService());
93
- }
94
- if (!app.services.has(container_1.ServiceKeys.ECIES)) {
95
- app.services.register(container_1.ServiceKeys.ECIES, () => {
96
- const config = {
97
- curveName: app.constants.ECIES.CURVE_NAME,
98
- primaryKeyDerivationPath: app.constants.ECIES.PRIMARY_KEY_DERIVATION_PATH,
99
- mnemonicStrength: app.constants.ECIES.MNEMONIC_STRENGTH,
100
- symmetricAlgorithm: app.constants.ECIES.SYMMETRIC_ALGORITHM_CONFIGURATION,
101
- symmetricKeyBits: app.constants.ECIES.SYMMETRIC.KEY_BITS,
102
- symmetricKeyMode: app.constants.ECIES.SYMMETRIC.MODE,
103
- };
104
- return new node_ecies_lib_1.ECIESService(config);
105
- });
106
- }
107
- if (!app.services.has(container_1.ServiceKeys.BACKUP_CODE)) {
108
- app.services.register(container_1.ServiceKeys.BACKUP_CODE, () => new backup_code_1.BackupCodeService(app, app.services.get(container_1.ServiceKeys.ECIES), app.services.get(container_1.ServiceKeys.KEY_WRAPPING), app.services.get(container_1.ServiceKeys.ROLE)));
109
- }
110
- if (!app.services.has(container_1.ServiceKeys.USER)) {
111
- app.services.register(container_1.ServiceKeys.USER, () => new user_2.UserService(app, app.services.get(container_1.ServiceKeys.ROLE), app.services.get(container_1.ServiceKeys.EMAIL), app.services.get(container_1.ServiceKeys.KEY_WRAPPING), app.services.get(container_1.ServiceKeys.BACKUP_CODE)));
112
- }
113
- }
114
- }
115
- exports.ApiRouter = ApiRouter;
116
- //# sourceMappingURL=api.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/routers/api.ts"],"names":[],"mappings":"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"}
@@ -1,65 +0,0 @@
1
- /**
2
- * @fileoverview Email token schema factory for MongoDB.
3
- * Creates schema for email verification and password reset tokens.
4
- * @module schemas/email-token
5
- */
6
- import { Schema } from '@digitaldefiance/mongoose-types';
7
- import { EmailTokenType } from '@digitaldefiance/suite-core-lib';
8
- import { BaseModelName } from '../enumerations';
9
- import { IConstants } from '../interfaces';
10
- /**
11
- * Configuration options for creating an email token schema.
12
- * @template TTokenType - Token type enum (defaults to EmailTokenType)
13
- * @template TModelName - Model name type (defaults to BaseModelName)
14
- * @template TConstants - Constants type (defaults to IConstants)
15
- */
16
- export interface EmailTokenSchemaOptions<TTokenType extends string = EmailTokenType, TModelName extends string = BaseModelName, TConstants extends IConstants = IConstants> {
17
- /** Token type enum values to use */
18
- tokenTypeEnum?: TTokenType[];
19
- /** Model name for user reference */
20
- userModelName?: TModelName;
21
- /** Token expiration time (default: '1d') */
22
- expiresIn?: string;
23
- /** Custom email validator function */
24
- emailValidator?: (v: string) => boolean;
25
- /** Custom validation error message function */
26
- validationMessage?: (props: {
27
- value: string;
28
- }) => string;
29
- constants?: TConstants;
30
- /** ID type for references */
31
- idType?: any;
32
- }
33
- /**
34
- * Factory function to create an extensible email token schema.
35
- * Includes TTL index for automatic token expiration.
36
- * @template TTokenType - Token type enum (defaults to EmailTokenType)
37
- * @template TModelName - Model name type (defaults to BaseModelName)
38
- * @template TConstants - Constants type (defaults to IConstants)
39
- * @param {EmailTokenSchemaOptions<TTokenType, TModelName>} options - Schema configuration options
40
- * @param {TConstants} [_constants] - Optional constants (reserved for future use)
41
- * @returns {Schema} Configured email token schema with TTL and unique indexes
42
- */
43
- export declare function createEmailTokenSchema<TTokenType extends string = EmailTokenType, TModelName extends string = BaseModelName, TConstants extends IConstants = IConstants>(options?: EmailTokenSchemaOptions<TTokenType, TModelName>, _constants?: TConstants): Schema;
44
- /**
45
- * Default email token schema with base configuration.
46
- * Pre-configured schema with 1-day TTL and compound unique index.
47
- */
48
- export declare const EmailTokenSchema: Schema<any, import("mongoose").Model<any, any, any, any, any, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, {
49
- [x: number]: unknown;
50
- [x: symbol]: unknown;
51
- [x: string]: unknown;
52
- }, import("mongoose").Document<unknown, {}, import("mongoose").FlatRecord<{
53
- [x: number]: unknown;
54
- [x: symbol]: unknown;
55
- [x: string]: unknown;
56
- }>, {}, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>> & import("mongoose").FlatRecord<{
57
- [x: number]: unknown;
58
- [x: symbol]: unknown;
59
- [x: string]: unknown;
60
- }> & Required<{
61
- _id: unknown;
62
- }> & {
63
- __v: number;
64
- }>;
65
- //# sourceMappingURL=email-token.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"email-token.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/schemas/email-token.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AACzD,OAAO,EACL,cAAc,EAGf,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C;;;;;GAKG;AACH,MAAM,WAAW,uBAAuB,CACtC,UAAU,SAAS,MAAM,GAAG,cAAc,EAC1C,UAAU,SAAS,MAAM,GAAG,aAAa,EACzC,UAAU,SAAS,UAAU,GAAG,UAAU;IAE1C,oCAAoC;IACpC,aAAa,CAAC,EAAE,UAAU,EAAE,CAAC;IAC7B,oCAAoC;IACpC,aAAa,CAAC,EAAE,UAAU,CAAC;IAC3B,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sCAAsC;IACtC,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;IACxC,+CAA+C;IAC/C,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,MAAM,CAAC;IACzD,SAAS,CAAC,EAAE,UAAU,CAAC;IACvB,6BAA6B;IAC7B,MAAM,CAAC,EAAE,GAAG,CAAC;CACd;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CACpC,UAAU,SAAS,MAAM,GAAG,cAAc,EAC1C,UAAU,SAAS,MAAM,GAAG,aAAa,EACzC,UAAU,SAAS,UAAU,GAAG,UAAU,EAE1C,OAAO,GAAE,uBAAuB,CAAC,UAAU,EAAE,UAAU,CAAM,EAC7D,UAAU,CAAC,EAAE,UAAU,GACtB,MAAM,CA8CR;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;EAA2B,CAAC"}
@@ -1,68 +0,0 @@
1
- "use strict";
2
- /**
3
- * @fileoverview Email token schema factory for MongoDB.
4
- * Creates schema for email verification and password reset tokens.
5
- * @module schemas/email-token
6
- */
7
- Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.EmailTokenSchema = void 0;
9
- exports.createEmailTokenSchema = createEmailTokenSchema;
10
- const tslib_1 = require("tslib");
11
- const mongoose_types_1 = require("@digitaldefiance/mongoose-types");
12
- const suite_core_lib_1 = require("@digitaldefiance/suite-core-lib");
13
- const validator_1 = tslib_1.__importDefault(require("validator"));
14
- const enumerations_1 = require("../enumerations");
15
- /**
16
- * Factory function to create an extensible email token schema.
17
- * Includes TTL index for automatic token expiration.
18
- * @template TTokenType - Token type enum (defaults to EmailTokenType)
19
- * @template TModelName - Model name type (defaults to BaseModelName)
20
- * @template TConstants - Constants type (defaults to IConstants)
21
- * @param {EmailTokenSchemaOptions<TTokenType, TModelName>} options - Schema configuration options
22
- * @param {TConstants} [_constants] - Optional constants (reserved for future use)
23
- * @returns {Schema} Configured email token schema with TTL and unique indexes
24
- */
25
- function createEmailTokenSchema(options = {}, _constants) {
26
- const { tokenTypeEnum = Object.values(suite_core_lib_1.EmailTokenType), userModelName = enumerations_1.BaseModelName.User, expiresIn = '1d', validationMessage = (props) => (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Error_InvalidEmailTemplate, {
27
- email: props.value,
28
- }), idType = mongoose_types_1.Schema.Types.ObjectId, } = options;
29
- const definition = {
30
- userId: {
31
- type: idType,
32
- required: true,
33
- ref: userModelName,
34
- immutable: true,
35
- },
36
- type: {
37
- type: String,
38
- enum: tokenTypeEnum,
39
- required: true,
40
- immutable: true,
41
- },
42
- token: { type: String, required: true, immutable: true, unique: true },
43
- email: {
44
- type: String,
45
- required: true,
46
- immutable: true,
47
- validate: {
48
- validator: (v) => validator_1.default.isEmail(v),
49
- message: validationMessage,
50
- },
51
- },
52
- lastSent: { type: Date, required: false },
53
- expiresAt: {
54
- type: Date,
55
- default: Date.now,
56
- index: { expires: expiresIn },
57
- },
58
- };
59
- const schema = new mongoose_types_1.Schema(definition, { timestamps: true });
60
- schema.index({ userId: 1, email: 1, type: 1 }, { unique: true });
61
- return schema;
62
- }
63
- /**
64
- * Default email token schema with base configuration.
65
- * Pre-configured schema with 1-day TTL and compound unique index.
66
- */
67
- exports.EmailTokenSchema = createEmailTokenSchema();
68
- //# sourceMappingURL=email-token.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"email-token.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/schemas/email-token.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAgDH,wDAqDC;;AAnGD,oEAAyD;AACzD,oEAIyC;AACzC,kEAAkC;AAClC,kDAAgD;AA6BhD;;;;;;;;;GASG;AACH,SAAgB,sBAAsB,CAKpC,UAA2D,EAAE,EAC7D,UAAuB;IAEvB,MAAM,EACJ,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,+BAAc,CAAiB,EAC7D,aAAa,GAAG,4BAAa,CAAC,IAAkB,EAChD,SAAS,GAAG,IAAI,EAChB,iBAAiB,GAAG,CAAC,KAAwB,EAAE,EAAE,CAC/C,IAAA,wCAAuB,EAAC,mCAAkB,CAAC,0BAA0B,EAAE;QACrE,KAAK,EAAE,KAAK,CAAC,KAAK;KACnB,CAAC,EACJ,MAAM,GAAG,uBAAM,CAAC,KAAK,CAAC,QAAQ,GAC/B,GAAG,OAAO,CAAC;IAEZ,MAAM,UAAU,GAAG;QACjB,MAAM,EAAE;YACN,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,IAAI;YACd,GAAG,EAAE,aAAa;YAClB,SAAS,EAAE,IAAI;SAChB;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,aAAa;YACnB,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,IAAI;SAChB;QACD,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;QACtE,KAAK,EAAE;YACL,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE;gBACR,SAAS,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,mBAAS,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC9C,OAAO,EAAE,iBAAiB;aAC3B;SACF;QACD,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;QACzC,SAAS,EAAE;YACT,IAAI,EAAE,IAAI;YACV,OAAO,EAAE,IAAI,CAAC,GAAG;YACjB,KAAK,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE;SAC9B;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,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACjE,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACU,QAAA,gBAAgB,GAAG,sBAAsB,EAAE,CAAC"}
@@ -1,8 +0,0 @@
1
- export * from './email-token';
2
- export * from './mnemonic';
3
- export * from './role';
4
- export * from './schema';
5
- export * from './used-direct-login-token';
6
- export * from './user';
7
- export * from './user-role';
8
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/schemas/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,2BAA2B,CAAC;AAC1C,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC"}
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./email-token"), exports);
5
- tslib_1.__exportStar(require("./mnemonic"), exports);
6
- tslib_1.__exportStar(require("./role"), exports);
7
- tslib_1.__exportStar(require("./schema"), exports);
8
- tslib_1.__exportStar(require("./used-direct-login-token"), exports);
9
- tslib_1.__exportStar(require("./user"), exports);
10
- tslib_1.__exportStar(require("./user-role"), exports);
11
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/schemas/index.ts"],"names":[],"mappings":";;;AAAA,wDAA8B;AAC9B,qDAA2B;AAC3B,iDAAuB;AACvB,mDAAyB;AACzB,oEAA0C;AAC1C,iDAAuB;AACvB,sDAA4B"}
@@ -1,37 +0,0 @@
1
- /**
2
- * @fileoverview Mnemonic schema factory for MongoDB.
3
- * Creates schema for storing HMAC-protected mnemonic hashes.
4
- * @module schemas/mnemonic
5
- */
6
- import { Schema } from '@digitaldefiance/mongoose-types';
7
- import { IConstants } from '../interfaces/constants';
8
- /**
9
- * Creates a mnemonic schema with custom or default constants.
10
- * @template T - Constants type extending IConstants
11
- * @param {Function} [validationMessage] - Optional custom validation message function
12
- * @param {T} constants - Constants for validation (defaults to AppConstants)
13
- * @returns {Schema} Configured mnemonic schema
14
- */
15
- export declare function createMnemonicSchema<T extends IConstants = IConstants>(validationMessage?: () => string, constants?: T): Schema;
16
- /**
17
- * Default mnemonic schema using AppConstants.
18
- * Pre-configured schema for standard mnemonic storage.
19
- */
20
- export declare const MnemonicSchema: Schema<any, import("mongoose").Model<any, any, any, any, any, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, {
21
- [x: number]: unknown;
22
- [x: symbol]: unknown;
23
- [x: string]: unknown;
24
- }, import("mongoose").Document<unknown, {}, import("mongoose").FlatRecord<{
25
- [x: number]: unknown;
26
- [x: symbol]: unknown;
27
- [x: string]: unknown;
28
- }>, {}, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>> & import("mongoose").FlatRecord<{
29
- [x: number]: unknown;
30
- [x: symbol]: unknown;
31
- [x: string]: unknown;
32
- }> & Required<{
33
- _id: unknown;
34
- }> & {
35
- __v: number;
36
- }>;
37
- //# sourceMappingURL=mnemonic.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mnemonic.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/schemas/mnemonic.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAMzD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,EACpE,iBAAiB,CAAC,EAAE,MAAM,MAAM,EAChC,SAAS,GAAE,CAAqB,GAC/B,MAAM,CAiBR;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;EAAyB,CAAC"}