@digitaldefiance/node-express-suite-mongo 4.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (390) hide show
  1. package/README.md +152 -0
  2. package/package.json +51 -0
  3. package/src/__tests__/fixtures/index.d.ts +2 -0
  4. package/src/__tests__/fixtures/index.d.ts.map +1 -0
  5. package/src/__tests__/fixtures/index.js +5 -0
  6. package/src/__tests__/fixtures/index.js.map +1 -0
  7. package/src/__tests__/fixtures/model-mocks.mock.d.ts +12 -0
  8. package/src/__tests__/fixtures/model-mocks.mock.d.ts.map +1 -0
  9. package/src/__tests__/fixtures/model-mocks.mock.js +102 -0
  10. package/src/__tests__/fixtures/model-mocks.mock.js.map +1 -0
  11. package/src/__tests__/helpers/application.mock.d.ts +4 -0
  12. package/src/__tests__/helpers/application.mock.d.ts.map +1 -0
  13. package/src/__tests__/helpers/application.mock.js +35 -0
  14. package/src/__tests__/helpers/application.mock.js.map +1 -0
  15. package/src/__tests__/helpers/index.d.ts +5 -0
  16. package/src/__tests__/helpers/index.d.ts.map +1 -0
  17. package/src/__tests__/helpers/index.js +8 -0
  18. package/src/__tests__/helpers/index.js.map +1 -0
  19. package/src/__tests__/helpers/mongoose-memory.d.ts +14 -0
  20. package/src/__tests__/helpers/mongoose-memory.d.ts.map +1 -0
  21. package/src/__tests__/helpers/mongoose-memory.js +49 -0
  22. package/src/__tests__/helpers/mongoose-memory.js.map +1 -0
  23. package/src/__tests__/helpers/setup-test-env.d.ts +13 -0
  24. package/src/__tests__/helpers/setup-test-env.d.ts.map +1 -0
  25. package/src/__tests__/helpers/setup-test-env.js +131 -0
  26. package/src/__tests__/helpers/setup-test-env.js.map +1 -0
  27. package/src/__tests__/index.d.ts +3 -0
  28. package/src/__tests__/index.d.ts.map +1 -0
  29. package/src/__tests__/index.js +6 -0
  30. package/src/__tests__/index.js.map +1 -0
  31. package/src/builders/application-builder.d.ts +38 -0
  32. package/src/builders/application-builder.d.ts.map +1 -0
  33. package/src/builders/application-builder.js +82 -0
  34. package/src/builders/application-builder.js.map +1 -0
  35. package/src/builders/index.d.ts +2 -0
  36. package/src/builders/index.d.ts.map +1 -0
  37. package/src/builders/index.js +5 -0
  38. package/src/builders/index.js.map +1 -0
  39. package/src/controllers/index.d.ts +3 -0
  40. package/src/controllers/index.d.ts.map +1 -0
  41. package/src/controllers/index.js +6 -0
  42. package/src/controllers/index.js.map +1 -0
  43. package/src/controllers/mongo-base.d.ts +55 -0
  44. package/src/controllers/mongo-base.d.ts.map +1 -0
  45. package/src/controllers/mongo-base.js +108 -0
  46. package/src/controllers/mongo-base.js.map +1 -0
  47. package/src/controllers/user.d.ts +61 -0
  48. package/src/controllers/user.d.ts.map +1 -0
  49. package/src/controllers/user.js +944 -0
  50. package/src/controllers/user.js.map +1 -0
  51. package/src/documents/base.d.ts +15 -0
  52. package/src/documents/base.d.ts.map +1 -0
  53. package/src/documents/base.js +8 -0
  54. package/src/documents/base.js.map +1 -0
  55. package/src/documents/email-token.d.ts +15 -0
  56. package/src/documents/email-token.d.ts.map +1 -0
  57. package/src/documents/email-token.js +8 -0
  58. package/src/documents/email-token.js.map +1 -0
  59. package/src/documents/index.d.ts +8 -0
  60. package/src/documents/index.d.ts.map +1 -0
  61. package/src/documents/index.js +3 -0
  62. package/src/documents/index.js.map +1 -0
  63. package/src/documents/mnemonic.d.ts +16 -0
  64. package/src/documents/mnemonic.d.ts.map +1 -0
  65. package/src/documents/mnemonic.js +8 -0
  66. package/src/documents/mnemonic.js.map +1 -0
  67. package/src/documents/role.d.ts +15 -0
  68. package/src/documents/role.d.ts.map +1 -0
  69. package/src/documents/role.js +8 -0
  70. package/src/documents/role.js.map +1 -0
  71. package/src/documents/used-direct-login-token.d.ts +16 -0
  72. package/src/documents/used-direct-login-token.d.ts.map +1 -0
  73. package/src/documents/used-direct-login-token.js +8 -0
  74. package/src/documents/used-direct-login-token.js.map +1 -0
  75. package/src/documents/user-role.d.ts +16 -0
  76. package/src/documents/user-role.d.ts.map +1 -0
  77. package/src/documents/user-role.js +8 -0
  78. package/src/documents/user-role.js.map +1 -0
  79. package/src/documents/user.d.ts +16 -0
  80. package/src/documents/user.d.ts.map +1 -0
  81. package/src/documents/user.js +8 -0
  82. package/src/documents/user.js.map +1 -0
  83. package/src/enumerations/base-model-name.d.ts +43 -0
  84. package/src/enumerations/base-model-name.d.ts.map +1 -0
  85. package/src/enumerations/base-model-name.js +39 -0
  86. package/src/enumerations/base-model-name.js.map +1 -0
  87. package/src/enumerations/index.d.ts +3 -0
  88. package/src/enumerations/index.d.ts.map +1 -0
  89. package/src/enumerations/index.js +6 -0
  90. package/src/enumerations/index.js.map +1 -0
  91. package/src/enumerations/schema-collection.d.ts +39 -0
  92. package/src/enumerations/schema-collection.d.ts.map +1 -0
  93. package/src/enumerations/schema-collection.js +43 -0
  94. package/src/enumerations/schema-collection.js.map +1 -0
  95. package/src/errors/index.d.ts +5 -0
  96. package/src/errors/index.d.ts.map +1 -0
  97. package/src/errors/index.js +8 -0
  98. package/src/errors/index.js.map +1 -0
  99. package/src/errors/invalid-backup-code-version.d.ts +5 -0
  100. package/src/errors/invalid-backup-code-version.d.ts.map +1 -0
  101. package/src/errors/invalid-backup-code-version.js +14 -0
  102. package/src/errors/invalid-backup-code-version.js.map +1 -0
  103. package/src/errors/invalid-model.d.ts +18 -0
  104. package/src/errors/invalid-model.d.ts.map +1 -0
  105. package/src/errors/invalid-model.js +26 -0
  106. package/src/errors/invalid-model.js.map +1 -0
  107. package/src/errors/model-not-registered.d.ts +18 -0
  108. package/src/errors/model-not-registered.d.ts.map +1 -0
  109. package/src/errors/model-not-registered.js +26 -0
  110. package/src/errors/model-not-registered.js.map +1 -0
  111. package/src/errors/mongoose-validation.d.ts +28 -0
  112. package/src/errors/mongoose-validation.d.ts.map +1 -0
  113. package/src/errors/mongoose-validation.js +33 -0
  114. package/src/errors/mongoose-validation.js.map +1 -0
  115. package/src/index.d.ts +19 -0
  116. package/src/index.d.ts.map +1 -0
  117. package/src/index.js +31 -0
  118. package/src/index.js.map +1 -0
  119. package/src/interfaces/api-mongo-validation-error-response.d.ts +16 -0
  120. package/src/interfaces/api-mongo-validation-error-response.d.ts.map +1 -0
  121. package/src/interfaces/api-mongo-validation-error-response.js +8 -0
  122. package/src/interfaces/api-mongo-validation-error-response.js.map +1 -0
  123. package/src/interfaces/database-init-result-tx.d.ts +27 -0
  124. package/src/interfaces/database-init-result-tx.d.ts.map +1 -0
  125. package/src/interfaces/database-init-result-tx.js +3 -0
  126. package/src/interfaces/database-init-result-tx.js.map +1 -0
  127. package/src/interfaces/db-init-result.d.ts +16 -0
  128. package/src/interfaces/db-init-result.d.ts.map +1 -0
  129. package/src/interfaces/db-init-result.js +8 -0
  130. package/src/interfaces/db-init-result.js.map +1 -0
  131. package/src/interfaces/discriminator-collections.d.ts +17 -0
  132. package/src/interfaces/discriminator-collections.d.ts.map +1 -0
  133. package/src/interfaces/discriminator-collections.js +8 -0
  134. package/src/interfaces/discriminator-collections.js.map +1 -0
  135. package/src/interfaces/environment-mongo.d.ts +88 -0
  136. package/src/interfaces/environment-mongo.d.ts.map +1 -0
  137. package/src/interfaces/environment-mongo.js +8 -0
  138. package/src/interfaces/environment-mongo.js.map +1 -0
  139. package/src/interfaces/index.d.ts +13 -0
  140. package/src/interfaces/index.d.ts.map +1 -0
  141. package/src/interfaces/index.js +16 -0
  142. package/src/interfaces/index.js.map +1 -0
  143. package/src/interfaces/models/email-token.d.ts +12 -0
  144. package/src/interfaces/models/email-token.d.ts.map +1 -0
  145. package/src/interfaces/models/email-token.js +8 -0
  146. package/src/interfaces/models/email-token.js.map +1 -0
  147. package/src/interfaces/models/index.d.ts +8 -0
  148. package/src/interfaces/models/index.d.ts.map +1 -0
  149. package/src/interfaces/models/index.js +11 -0
  150. package/src/interfaces/models/index.js.map +1 -0
  151. package/src/interfaces/models/mnemonic.d.ts +13 -0
  152. package/src/interfaces/models/mnemonic.d.ts.map +1 -0
  153. package/src/interfaces/models/mnemonic.js +8 -0
  154. package/src/interfaces/models/mnemonic.js.map +1 -0
  155. package/src/interfaces/models/role.d.ts +12 -0
  156. package/src/interfaces/models/role.d.ts.map +1 -0
  157. package/src/interfaces/models/role.js +8 -0
  158. package/src/interfaces/models/role.js.map +1 -0
  159. package/src/interfaces/models/token-role.d.ts +19 -0
  160. package/src/interfaces/models/token-role.d.ts.map +1 -0
  161. package/src/interfaces/models/token-role.js +8 -0
  162. package/src/interfaces/models/token-role.js.map +1 -0
  163. package/src/interfaces/models/used-direct-login-token.d.ts +19 -0
  164. package/src/interfaces/models/used-direct-login-token.d.ts.map +1 -0
  165. package/src/interfaces/models/used-direct-login-token.js +8 -0
  166. package/src/interfaces/models/used-direct-login-token.js.map +1 -0
  167. package/src/interfaces/models/user-role.d.ts +19 -0
  168. package/src/interfaces/models/user-role.d.ts.map +1 -0
  169. package/src/interfaces/models/user-role.js +8 -0
  170. package/src/interfaces/models/user-role.js.map +1 -0
  171. package/src/interfaces/models/user.d.ts +21 -0
  172. package/src/interfaces/models/user.d.ts.map +1 -0
  173. package/src/interfaces/models/user.js +8 -0
  174. package/src/interfaces/models/user.js.map +1 -0
  175. package/src/interfaces/mongo-application.d.ts +47 -0
  176. package/src/interfaces/mongo-application.d.ts.map +1 -0
  177. package/src/interfaces/mongo-application.js +10 -0
  178. package/src/interfaces/mongo-application.js.map +1 -0
  179. package/src/interfaces/mongo-errors.d.ts +13 -0
  180. package/src/interfaces/mongo-errors.d.ts.map +1 -0
  181. package/src/interfaces/mongo-errors.js +8 -0
  182. package/src/interfaces/mongo-errors.js.map +1 -0
  183. package/src/interfaces/mongoose-document-store.d.ts +42 -0
  184. package/src/interfaces/mongoose-document-store.d.ts.map +1 -0
  185. package/src/interfaces/mongoose-document-store.js +10 -0
  186. package/src/interfaces/mongoose-document-store.js.map +1 -0
  187. package/src/interfaces/schema.d.ts +37 -0
  188. package/src/interfaces/schema.d.ts.map +1 -0
  189. package/src/interfaces/schema.js +8 -0
  190. package/src/interfaces/schema.js.map +1 -0
  191. package/src/interfaces/server-init-result.d.ts +45 -0
  192. package/src/interfaces/server-init-result.d.ts.map +1 -0
  193. package/src/interfaces/server-init-result.js +8 -0
  194. package/src/interfaces/server-init-result.js.map +1 -0
  195. package/src/interfaces/test-environment.d.ts +22 -0
  196. package/src/interfaces/test-environment.d.ts.map +1 -0
  197. package/src/interfaces/test-environment.js +8 -0
  198. package/src/interfaces/test-environment.js.map +1 -0
  199. package/src/model-registry.d.ts +79 -0
  200. package/src/model-registry.d.ts.map +1 -0
  201. package/src/model-registry.js +97 -0
  202. package/src/model-registry.js.map +1 -0
  203. package/src/models/email-token.d.ts +24 -0
  204. package/src/models/email-token.d.ts.map +1 -0
  205. package/src/models/email-token.js +16 -0
  206. package/src/models/email-token.js.map +1 -0
  207. package/src/models/index.d.ts +7 -0
  208. package/src/models/index.d.ts.map +1 -0
  209. package/src/models/index.js +10 -0
  210. package/src/models/index.js.map +1 -0
  211. package/src/models/mnemonic.d.ts +24 -0
  212. package/src/models/mnemonic.d.ts.map +1 -0
  213. package/src/models/mnemonic.js +27 -0
  214. package/src/models/mnemonic.js.map +1 -0
  215. package/src/models/role.d.ts +24 -0
  216. package/src/models/role.d.ts.map +1 -0
  217. package/src/models/role.js +27 -0
  218. package/src/models/role.js.map +1 -0
  219. package/src/models/used-direct-login-token.d.ts +24 -0
  220. package/src/models/used-direct-login-token.d.ts.map +1 -0
  221. package/src/models/used-direct-login-token.js +16 -0
  222. package/src/models/used-direct-login-token.js.map +1 -0
  223. package/src/models/user-role.d.ts +23 -0
  224. package/src/models/user-role.d.ts.map +1 -0
  225. package/src/models/user-role.js +26 -0
  226. package/src/models/user-role.js.map +1 -0
  227. package/src/models/user.d.ts +24 -0
  228. package/src/models/user.d.ts.map +1 -0
  229. package/src/models/user.js +27 -0
  230. package/src/models/user.js.map +1 -0
  231. package/src/mongo-application-concrete.d.ts +30 -0
  232. package/src/mongo-application-concrete.d.ts.map +1 -0
  233. package/src/mongo-application-concrete.js +46 -0
  234. package/src/mongo-application-concrete.js.map +1 -0
  235. package/src/plugins/index.d.ts +2 -0
  236. package/src/plugins/index.d.ts.map +1 -0
  237. package/src/plugins/index.js +5 -0
  238. package/src/plugins/index.js.map +1 -0
  239. package/src/plugins/mongo-database-plugin.d.ts +116 -0
  240. package/src/plugins/mongo-database-plugin.d.ts.map +1 -0
  241. package/src/plugins/mongo-database-plugin.js +230 -0
  242. package/src/plugins/mongo-database-plugin.js.map +1 -0
  243. package/src/routers/api.d.ts +29 -0
  244. package/src/routers/api.d.ts.map +1 -0
  245. package/src/routers/api.js +84 -0
  246. package/src/routers/api.js.map +1 -0
  247. package/src/routers/index.d.ts +2 -0
  248. package/src/routers/index.d.ts.map +1 -0
  249. package/src/routers/index.js +5 -0
  250. package/src/routers/index.js.map +1 -0
  251. package/src/schemas/email-token.d.ts +65 -0
  252. package/src/schemas/email-token.d.ts.map +1 -0
  253. package/src/schemas/email-token.js +68 -0
  254. package/src/schemas/email-token.js.map +1 -0
  255. package/src/schemas/index.d.ts +8 -0
  256. package/src/schemas/index.d.ts.map +1 -0
  257. package/src/schemas/index.js +11 -0
  258. package/src/schemas/index.js.map +1 -0
  259. package/src/schemas/mnemonic.d.ts +37 -0
  260. package/src/schemas/mnemonic.d.ts.map +1 -0
  261. package/src/schemas/mnemonic.js +41 -0
  262. package/src/schemas/mnemonic.js.map +1 -0
  263. package/src/schemas/role.d.ts +57 -0
  264. package/src/schemas/role.d.ts.map +1 -0
  265. package/src/schemas/role.js +102 -0
  266. package/src/schemas/role.js.map +1 -0
  267. package/src/schemas/schema.d.ts +62 -0
  268. package/src/schemas/schema.d.ts.map +1 -0
  269. package/src/schemas/schema.js +81 -0
  270. package/src/schemas/schema.js.map +1 -0
  271. package/src/schemas/used-direct-login-token.d.ts +49 -0
  272. package/src/schemas/used-direct-login-token.d.ts.map +1 -0
  273. package/src/schemas/used-direct-login-token.js +35 -0
  274. package/src/schemas/used-direct-login-token.js.map +1 -0
  275. package/src/schemas/user-role.d.ts +52 -0
  276. package/src/schemas/user-role.d.ts.map +1 -0
  277. package/src/schemas/user-role.js +67 -0
  278. package/src/schemas/user-role.js.map +1 -0
  279. package/src/schemas/user.d.ts +43 -0
  280. package/src/schemas/user.d.ts.map +1 -0
  281. package/src/schemas/user.js +214 -0
  282. package/src/schemas/user.js.map +1 -0
  283. package/src/services/backup-code.d.ts +118 -0
  284. package/src/services/backup-code.d.ts.map +1 -0
  285. package/src/services/backup-code.js +320 -0
  286. package/src/services/backup-code.js.map +1 -0
  287. package/src/services/database-initialization.d.ts +137 -0
  288. package/src/services/database-initialization.d.ts.map +1 -0
  289. package/src/services/database-initialization.js +911 -0
  290. package/src/services/database-initialization.js.map +1 -0
  291. package/src/services/db-init-cache.d.ts +18 -0
  292. package/src/services/db-init-cache.d.ts.map +1 -0
  293. package/src/services/db-init-cache.js +7 -0
  294. package/src/services/db-init-cache.js.map +1 -0
  295. package/src/services/direct-login-token.d.ts +28 -0
  296. package/src/services/direct-login-token.d.ts.map +1 -0
  297. package/src/services/direct-login-token.js +62 -0
  298. package/src/services/direct-login-token.js.map +1 -0
  299. package/src/services/index.d.ts +17 -0
  300. package/src/services/index.d.ts.map +1 -0
  301. package/src/services/index.js +20 -0
  302. package/src/services/index.js.map +1 -0
  303. package/src/services/jwt.d.ts +20 -0
  304. package/src/services/jwt.d.ts.map +1 -0
  305. package/src/services/jwt.js +79 -0
  306. package/src/services/jwt.js.map +1 -0
  307. package/src/services/mnemonic.d.ts +30 -0
  308. package/src/services/mnemonic.d.ts.map +1 -0
  309. package/src/services/mnemonic.js +80 -0
  310. package/src/services/mnemonic.js.map +1 -0
  311. package/src/services/mongo-authentication-provider.d.ts +27 -0
  312. package/src/services/mongo-authentication-provider.d.ts.map +1 -0
  313. package/src/services/mongo-authentication-provider.js +97 -0
  314. package/src/services/mongo-authentication-provider.js.map +1 -0
  315. package/src/services/mongo-backup-code-store.d.ts +40 -0
  316. package/src/services/mongo-backup-code-store.d.ts.map +1 -0
  317. package/src/services/mongo-backup-code-store.js +104 -0
  318. package/src/services/mongo-backup-code-store.js.map +1 -0
  319. package/src/services/mongo-base.d.ts +24 -0
  320. package/src/services/mongo-base.d.ts.map +1 -0
  321. package/src/services/mongo-base.js +28 -0
  322. package/src/services/mongo-base.js.map +1 -0
  323. package/src/services/mongoose-collection.d.ts +52 -0
  324. package/src/services/mongoose-collection.d.ts.map +1 -0
  325. package/src/services/mongoose-collection.js +326 -0
  326. package/src/services/mongoose-collection.js.map +1 -0
  327. package/src/services/mongoose-database.d.ts +64 -0
  328. package/src/services/mongoose-database.d.ts.map +1 -0
  329. package/src/services/mongoose-database.js +121 -0
  330. package/src/services/mongoose-database.js.map +1 -0
  331. package/src/services/mongoose-document-store.d.ts +108 -0
  332. package/src/services/mongoose-document-store.d.ts.map +1 -0
  333. package/src/services/mongoose-document-store.js +265 -0
  334. package/src/services/mongoose-document-store.js.map +1 -0
  335. package/src/services/mongoose-session-adapter.d.ts +39 -0
  336. package/src/services/mongoose-session-adapter.d.ts.map +1 -0
  337. package/src/services/mongoose-session-adapter.js +63 -0
  338. package/src/services/mongoose-session-adapter.js.map +1 -0
  339. package/src/services/request-user.d.ts +22 -0
  340. package/src/services/request-user.d.ts.map +1 -0
  341. package/src/services/request-user.js +66 -0
  342. package/src/services/request-user.js.map +1 -0
  343. package/src/services/role.d.ts +97 -0
  344. package/src/services/role.d.ts.map +1 -0
  345. package/src/services/role.js +288 -0
  346. package/src/services/role.js.map +1 -0
  347. package/src/services/user.d.ts +362 -0
  348. package/src/services/user.d.ts.map +1 -0
  349. package/src/services/user.js +1504 -0
  350. package/src/services/user.js.map +1 -0
  351. package/src/testing.d.ts +9 -0
  352. package/src/testing.d.ts.map +1 -0
  353. package/src/testing.js +12 -0
  354. package/src/testing.js.map +1 -0
  355. package/src/transactions/index.d.ts +2 -0
  356. package/src/transactions/index.d.ts.map +1 -0
  357. package/src/transactions/index.js +5 -0
  358. package/src/transactions/index.js.map +1 -0
  359. package/src/transactions/transaction-manager.d.ts +37 -0
  360. package/src/transactions/transaction-manager.d.ts.map +1 -0
  361. package/src/transactions/transaction-manager.js +50 -0
  362. package/src/transactions/transaction-manager.js.map +1 -0
  363. package/src/types/index.d.ts +26 -0
  364. package/src/types/index.d.ts.map +1 -0
  365. package/src/types/index.js +9 -0
  366. package/src/types/index.js.map +1 -0
  367. package/src/types/mongoose-helpers.d.ts +16 -0
  368. package/src/types/mongoose-helpers.d.ts.map +1 -0
  369. package/src/types/mongoose-helpers.js +8 -0
  370. package/src/types/mongoose-helpers.js.map +1 -0
  371. package/src/utils/default-mongo-uri-validator.d.ts +15 -0
  372. package/src/utils/default-mongo-uri-validator.d.ts.map +1 -0
  373. package/src/utils/default-mongo-uri-validator.js +46 -0
  374. package/src/utils/default-mongo-uri-validator.js.map +1 -0
  375. package/src/utils/index.d.ts +5 -0
  376. package/src/utils/index.d.ts.map +1 -0
  377. package/src/utils/index.js +8 -0
  378. package/src/utils/index.js.map +1 -0
  379. package/src/utils/mongo-error-response.d.ts +17 -0
  380. package/src/utils/mongo-error-response.d.ts.map +1 -0
  381. package/src/utils/mongo-error-response.js +21 -0
  382. package/src/utils/mongo-error-response.js.map +1 -0
  383. package/src/utils/mongo-transaction.d.ts +39 -0
  384. package/src/utils/mongo-transaction.d.ts.map +1 -0
  385. package/src/utils/mongo-transaction.js +131 -0
  386. package/src/utils/mongo-transaction.js.map +1 -0
  387. package/src/utils/object-id.d.ts +11 -0
  388. package/src/utils/object-id.d.ts.map +1 -0
  389. package/src/utils/object-id.js +17 -0
  390. package/src/utils/object-id.js.map +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email-token.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite-mongo/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"}
@@ -0,0 +1,8 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite-mongo/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"}
@@ -0,0 +1,11 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite-mongo/src/schemas/index.ts"],"names":[],"mappings":";;;AAAA,wDAA8B;AAC9B,qDAA2B;AAC3B,iDAAuB;AACvB,mDAAyB;AACzB,oEAA0C;AAC1C,iDAAuB;AACvB,sDAA4B"}
@@ -0,0 +1,37 @@
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 '@digitaldefiance/node-express-suite';
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mnemonic.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite-mongo/src/schemas/mnemonic.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAKzD,OAAO,EAEL,UAAU,EACX,MAAM,qCAAqC,CAAC;AAE7C;;;;;;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"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview Mnemonic schema factory for MongoDB.
4
+ * Creates schema for storing HMAC-protected mnemonic hashes.
5
+ * @module schemas/mnemonic
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.MnemonicSchema = void 0;
9
+ exports.createMnemonicSchema = createMnemonicSchema;
10
+ const mongoose_types_1 = require("@digitaldefiance/mongoose-types");
11
+ const suite_core_lib_1 = require("@digitaldefiance/suite-core-lib");
12
+ const node_express_suite_1 = require("@digitaldefiance/node-express-suite");
13
+ /**
14
+ * Creates a mnemonic schema with custom or default constants.
15
+ * @template T - Constants type extending IConstants
16
+ * @param {Function} [validationMessage] - Optional custom validation message function
17
+ * @param {T} constants - Constants for validation (defaults to AppConstants)
18
+ * @returns {Schema} Configured mnemonic schema
19
+ */
20
+ function createMnemonicSchema(validationMessage, constants = node_express_suite_1.LocalhostConstants) {
21
+ const definition = {
22
+ hmac: {
23
+ type: String,
24
+ required: true,
25
+ unique: true,
26
+ index: true,
27
+ validate: {
28
+ validator: (v) => constants.MnemonicHmacRegex.test(v),
29
+ message: validationMessage ||
30
+ (() => (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Validation_HmacRegex)),
31
+ },
32
+ },
33
+ };
34
+ return new mongoose_types_1.Schema(definition);
35
+ }
36
+ /**
37
+ * Default mnemonic schema using AppConstants.
38
+ * Pre-configured schema for standard mnemonic storage.
39
+ */
40
+ exports.MnemonicSchema = createMnemonicSchema();
41
+ //# sourceMappingURL=mnemonic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mnemonic.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite-mongo/src/schemas/mnemonic.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAmBH,oDAoBC;AArCD,oEAAyD;AACzD,oEAGyC;AACzC,4EAG6C;AAE7C;;;;;;GAMG;AACH,SAAgB,oBAAoB,CAClC,iBAAgC,EAChC,YAAe,uCAAiB;IAEhC,MAAM,UAAU,GAAG;QACjB,IAAI,EAAE;YACJ,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,IAAI;YACX,QAAQ,EAAE;gBACR,SAAS,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC7D,OAAO,EACL,iBAAiB;oBACjB,CAAC,GAAG,EAAE,CACJ,IAAA,wCAAuB,EAAC,mCAAkB,CAAC,oBAAoB,CAAC,CAAC;aACtE;SACF;KACF,CAAC;IACF,OAAO,IAAI,uBAAM,CAAC,UAAU,CAAC,CAAC;AAChC,CAAC;AAED;;;GAGG;AACU,QAAA,cAAc,GAAG,oBAAoB,EAAE,CAAC"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * @fileoverview Role schema factory for MongoDB with RBAC support.
3
+ * Creates schema for role management with validation and immutability.
4
+ * @module schemas/role
5
+ */
6
+ import { CallbackWithoutResultAndOptionalError, Schema } from '@digitaldefiance/mongoose-types';
7
+ import { Role } from '@digitaldefiance/suite-core-lib';
8
+ import { BaseModelName } from '../enumerations';
9
+ import { IConstants } from '@digitaldefiance/node-express-suite';
10
+ /**
11
+ * Configuration options for creating a role schema.
12
+ * @template TRole - Role enum type (defaults to Role)
13
+ * @template TModelName - Model name type (defaults to BaseModelName)
14
+ */
15
+ export interface RoleSchemaOptions<TRole extends string = Role, TModelName extends string = BaseModelName> {
16
+ /** Role enum values to use */
17
+ roleEnum?: TRole[];
18
+ /** Model name for user reference */
19
+ userModelName?: TModelName;
20
+ /** Custom pre-save validation function */
21
+ customValidation?: <T = any>(doc: T, next: CallbackWithoutResultAndOptionalError) => void;
22
+ /** ID type for references */
23
+ idType?: any;
24
+ }
25
+ /**
26
+ * Factory function to create an extensible role schema.
27
+ * Includes pre-save validation to prevent invalid role combinations.
28
+ * @template TRole - Role enum type (defaults to Role)
29
+ * @template TModelName - Model name type (defaults to BaseModelName)
30
+ * @template TConstants - Constants type (defaults to IConstants)
31
+ * @param {RoleSchemaOptions<TRole, TModelName>} options - Schema configuration options
32
+ * @param {TConstants} _constants - Optional constants (reserved for future use)
33
+ * @returns {Schema} Configured role schema with validation hooks
34
+ */
35
+ export declare function createRoleSchema<TRole extends string = Role, TModelName extends string = BaseModelName, TConstants extends IConstants = IConstants>(options?: RoleSchemaOptions<TRole, TModelName>, _constants?: TConstants): Schema;
36
+ /**
37
+ * Default role schema with base configuration.
38
+ * Pre-configured schema with Role enum and validation hooks.
39
+ */
40
+ export declare const RoleSchema: Schema<any, import("mongoose").Model<any, any, any, any, any, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, {
41
+ [x: number]: unknown;
42
+ [x: symbol]: unknown;
43
+ [x: string]: unknown;
44
+ }, import("mongoose").Document<unknown, {}, import("mongoose").FlatRecord<{
45
+ [x: number]: unknown;
46
+ [x: symbol]: unknown;
47
+ [x: string]: unknown;
48
+ }>, {}, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>> & import("mongoose").FlatRecord<{
49
+ [x: number]: unknown;
50
+ [x: symbol]: unknown;
51
+ [x: string]: unknown;
52
+ }> & Required<{
53
+ _id: unknown;
54
+ }> & {
55
+ __v: number;
56
+ }>;
57
+ //# sourceMappingURL=role.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"role.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite-mongo/src/schemas/role.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,qCAAqC,EACrC,MAAM,EACP,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,IAAI,EAGL,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AAEjE;;;;GAIG;AACH,MAAM,WAAW,iBAAiB,CAChC,KAAK,SAAS,MAAM,GAAG,IAAI,EAC3B,UAAU,SAAS,MAAM,GAAG,aAAa;IAEzC,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC;IACnB,oCAAoC;IACpC,aAAa,CAAC,EAAE,UAAU,CAAC;IAC3B,0CAA0C;IAC1C,gBAAgB,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,EACzB,GAAG,EAAE,CAAC,EACN,IAAI,EAAE,qCAAqC,KACxC,IAAI,CAAC;IACV,6BAA6B;IAC7B,MAAM,CAAC,EAAE,GAAG,CAAC;CACd;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,SAAS,MAAM,GAAG,IAAI,EAC3B,UAAU,SAAS,MAAM,GAAG,aAAa,EACzC,UAAU,SAAS,UAAU,GAAG,UAAU,EAE1C,OAAO,GAAE,iBAAiB,CAAC,KAAK,EAAE,UAAU,CAAM,EAClD,UAAU,GAAE,UAA6B,GACxC,MAAM,CAyFR;AAED;;;GAGG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;EAAqB,CAAC"}
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview Role schema factory for MongoDB with RBAC support.
4
+ * Creates schema for role management with validation and immutability.
5
+ * @module schemas/role
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.RoleSchema = void 0;
9
+ exports.createRoleSchema = createRoleSchema;
10
+ const mongoose_types_1 = require("@digitaldefiance/mongoose-types");
11
+ const suite_core_lib_1 = require("@digitaldefiance/suite-core-lib");
12
+ const enumerations_1 = require("../enumerations");
13
+ /**
14
+ * Factory function to create an extensible role schema.
15
+ * Includes pre-save validation to prevent invalid role combinations.
16
+ * @template TRole - Role enum type (defaults to Role)
17
+ * @template TModelName - Model name type (defaults to BaseModelName)
18
+ * @template TConstants - Constants type (defaults to IConstants)
19
+ * @param {RoleSchemaOptions<TRole, TModelName>} options - Schema configuration options
20
+ * @param {TConstants} _constants - Optional constants (reserved for future use)
21
+ * @returns {Schema} Configured role schema with validation hooks
22
+ */
23
+ function createRoleSchema(options = {}, _constants = {}) {
24
+ const { roleEnum = Object.values(suite_core_lib_1.Role), userModelName = enumerations_1.BaseModelName.User, customValidation, idType = mongoose_types_1.Schema.Types.ObjectId, } = options;
25
+ const definition = {
26
+ name: {
27
+ type: String,
28
+ enum: roleEnum,
29
+ required: true,
30
+ immutable: true,
31
+ },
32
+ admin: {
33
+ type: Boolean,
34
+ default: false,
35
+ immutable: true,
36
+ },
37
+ member: {
38
+ type: Boolean,
39
+ default: false,
40
+ immutable: true,
41
+ },
42
+ child: {
43
+ type: Boolean,
44
+ default: false,
45
+ immutable: true,
46
+ },
47
+ system: {
48
+ type: Boolean,
49
+ default: false,
50
+ immutable: true,
51
+ },
52
+ createdBy: {
53
+ type: idType,
54
+ ref: userModelName,
55
+ required: true,
56
+ immutable: true,
57
+ },
58
+ updatedBy: {
59
+ type: idType,
60
+ ref: userModelName,
61
+ required: true,
62
+ },
63
+ deletedAt: {
64
+ type: Date,
65
+ optional: true,
66
+ get: (v) => v,
67
+ set: (v) => new Date(v.toUTCString()),
68
+ },
69
+ deletedBy: {
70
+ type: idType,
71
+ ref: userModelName,
72
+ required: false,
73
+ optional: true,
74
+ },
75
+ };
76
+ const schema = new mongoose_types_1.Schema(definition, { timestamps: true });
77
+ schema.index({ name: 1 }, { unique: true });
78
+ schema.pre('save', function (next) {
79
+ // eslint-disable-next-line @typescript-eslint/no-this-alias
80
+ const doc = this;
81
+ if (customValidation) {
82
+ customValidation(doc, next);
83
+ }
84
+ else {
85
+ // Default validation
86
+ if (doc.admin && doc.child) {
87
+ return next(new suite_core_lib_1.TranslatableSuiteError(suite_core_lib_1.SuiteCoreStringKey.Error_ChildRoleCannotBeAnAdminRole));
88
+ }
89
+ if (doc.system && doc.child) {
90
+ return next(new suite_core_lib_1.TranslatableSuiteError(suite_core_lib_1.SuiteCoreStringKey.Error_ChildRoleCannotBeASystemRole));
91
+ }
92
+ next();
93
+ }
94
+ });
95
+ return schema;
96
+ }
97
+ /**
98
+ * Default role schema with base configuration.
99
+ * Pre-configured schema with Role enum and validation hooks.
100
+ */
101
+ exports.RoleSchema = createRoleSchema();
102
+ //# sourceMappingURL=role.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"role.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite-mongo/src/schemas/role.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * @fileoverview Schema map factory and base model document types.
3
+ * Creates Mongoose schema map with models for all base collections.
4
+ * @module schemas/schema
5
+ */
6
+ import { Connection, Schema } from '@digitaldefiance/mongoose-types';
7
+ import { EmailTokenDocument, MnemonicDocument, RoleDocument, UserDocument, UserRoleDocument } from '../documents';
8
+ import { UsedDirectLoginTokenDocument } from '../documents/used-direct-login-token';
9
+ import type { IConstants } from '@digitaldefiance/node-express-suite';
10
+ import { SchemaMap } from '../types';
11
+ import { PlatformID } from '@digitaldefiance/node-ecies-lib';
12
+ /**
13
+ * Base model document types for all collections.
14
+ * Maps model names to their document interfaces.
15
+ */
16
+ export interface BaseModelDocs {
17
+ EmailToken: EmailTokenDocument;
18
+ Mnemonic: MnemonicDocument;
19
+ Role: RoleDocument;
20
+ UsedDirectLoginToken: UsedDirectLoginTokenDocument;
21
+ User: UserDocument;
22
+ UserRole: UserRoleDocument;
23
+ }
24
+ /**
25
+ * Options for customizing schema map creation.
26
+ * Allows overriding constants, schemas, model names, and collection names.
27
+ */
28
+ export interface SchemaMapOptions {
29
+ constants?: IConstants;
30
+ schemas?: {
31
+ EmailToken?: Schema<EmailTokenDocument>;
32
+ Mnemonic?: Schema<MnemonicDocument>;
33
+ Role?: Schema<RoleDocument>;
34
+ UsedDirectLoginToken?: Schema<UsedDirectLoginTokenDocument>;
35
+ User?: Schema<UserDocument>;
36
+ UserRole?: Schema<UserRoleDocument>;
37
+ };
38
+ modelNames?: {
39
+ EmailToken?: string;
40
+ Mnemonic?: string;
41
+ Role?: string;
42
+ UsedDirectLoginToken?: string;
43
+ User?: string;
44
+ UserRole?: string;
45
+ };
46
+ collections?: {
47
+ EmailToken?: string;
48
+ Mnemonic?: string;
49
+ Role?: string;
50
+ UsedDirectLoginToken?: string;
51
+ User?: string;
52
+ UserRole?: string;
53
+ };
54
+ }
55
+ /**
56
+ * Creates a schema map with all base models.
57
+ * @param {Connection} connection - Mongoose connection instance
58
+ * @param {SchemaMapOptions} options - Optional customization options
59
+ * @returns {SchemaMap<TID, BaseModelDocs>} Complete schema map with models
60
+ */
61
+ export declare function getSchemaMap<TID extends PlatformID>(connection: Connection, options?: SchemaMapOptions): SchemaMap<TID, BaseModelDocs>;
62
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite-mongo/src/schemas/schema.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,gBAAgB,EACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AAGpF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAgBrC,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE7D;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,kBAAkB,CAAC;IAC/B,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,IAAI,EAAE,YAAY,CAAC;IACnB,oBAAoB,EAAE,4BAA4B,CAAC;IACnD,IAAI,EAAE,YAAY,CAAC;IACnB,QAAQ,EAAE,gBAAgB,CAAC;CAC5B;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,UAAU,CAAC;IACvB,OAAO,CAAC,EAAE;QACR,UAAU,CAAC,EAAE,MAAM,CAAC,kBAAkB,CAAC,CAAC;QACxC,QAAQ,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;QACpC,IAAI,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;QAC5B,oBAAoB,CAAC,EAAE,MAAM,CAAC,4BAA4B,CAAC,CAAC;QAC5D,IAAI,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;QAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;KACrC,CAAC;IACF,UAAU,CAAC,EAAE;QACX,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,WAAW,CAAC,EAAE;QACZ,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,GAAG,SAAS,UAAU,EACjD,UAAU,EAAE,UAAU,EACtB,OAAO,GAAE,gBAAqB,GAC7B,SAAS,CAAC,GAAG,EAAE,aAAa,CAAC,CA8F/B"}
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview Schema map factory and base model document types.
4
+ * Creates Mongoose schema map with models for all base collections.
5
+ * @module schemas/schema
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.getSchemaMap = getSchemaMap;
9
+ const tslib_1 = require("tslib");
10
+ const enumerations_1 = require("../enumerations");
11
+ const schema_collection_1 = require("../enumerations/schema-collection");
12
+ const email_token_1 = tslib_1.__importDefault(require("../models/email-token"));
13
+ const mnemonic_1 = tslib_1.__importDefault(require("../models/mnemonic"));
14
+ const role_1 = tslib_1.__importDefault(require("../models/role"));
15
+ const used_direct_login_token_1 = tslib_1.__importDefault(require("../models/used-direct-login-token"));
16
+ const user_1 = tslib_1.__importDefault(require("../models/user"));
17
+ const user_role_1 = tslib_1.__importDefault(require("../models/user-role"));
18
+ const email_token_2 = require("./email-token");
19
+ const mnemonic_2 = require("./mnemonic");
20
+ const role_2 = require("./role");
21
+ const used_direct_login_token_2 = require("./used-direct-login-token");
22
+ const user_2 = require("./user");
23
+ const user_role_2 = require("./user-role");
24
+ /**
25
+ * Creates a schema map with all base models.
26
+ * @param {Connection} connection - Mongoose connection instance
27
+ * @param {SchemaMapOptions} options - Optional customization options
28
+ * @returns {SchemaMap<TID, BaseModelDocs>} Complete schema map with models
29
+ */
30
+ function getSchemaMap(connection, options = {}) {
31
+ const schemas = options.schemas ?? {
32
+ EmailToken: (0, email_token_2.createEmailTokenSchema)(undefined, options?.constants),
33
+ Mnemonic: (0, mnemonic_2.createMnemonicSchema)(undefined, options?.constants),
34
+ Role: (0, role_2.createRoleSchema)(undefined, options?.constants),
35
+ UsedDirectLoginToken: (0, used_direct_login_token_2.createUsedDirectLoginTokenSchema)(undefined, options?.constants),
36
+ User: (0, user_2.createUserSchema)(undefined, undefined, undefined, undefined, undefined, undefined, options?.constants),
37
+ UserRole: (0, user_role_2.createUserRoleSchema)(undefined, options?.constants),
38
+ };
39
+ const { modelNames = {}, collections = {} } = options;
40
+ return {
41
+ EmailToken: {
42
+ collection: collections.EmailToken ?? schema_collection_1.SchemaCollection.EmailToken,
43
+ model: (0, email_token_1.default)(connection, modelNames.EmailToken ?? enumerations_1.BaseModelName.EmailToken, collections.EmailToken ?? schema_collection_1.SchemaCollection.EmailToken, schemas.EmailToken),
44
+ modelName: modelNames.EmailToken ?? enumerations_1.BaseModelName.EmailToken,
45
+ schema: schemas.EmailToken ?? email_token_2.EmailTokenSchema,
46
+ },
47
+ Mnemonic: {
48
+ collection: collections.Mnemonic ?? schema_collection_1.SchemaCollection.Mnemonic,
49
+ model: (0, mnemonic_1.default)(connection, modelNames.Mnemonic ?? enumerations_1.BaseModelName.Mnemonic, collections.Mnemonic ?? schema_collection_1.SchemaCollection.Mnemonic, schemas.Mnemonic),
50
+ modelName: modelNames.Mnemonic ?? enumerations_1.BaseModelName.Mnemonic,
51
+ schema: schemas.Mnemonic ?? mnemonic_2.MnemonicSchema,
52
+ },
53
+ Role: {
54
+ collection: collections.Role ?? schema_collection_1.SchemaCollection.Role,
55
+ model: (0, role_1.default)(connection, modelNames.Role ?? enumerations_1.BaseModelName.Role, collections.Role ?? schema_collection_1.SchemaCollection.Role, schemas.Role),
56
+ modelName: modelNames.Role ?? enumerations_1.BaseModelName.Role,
57
+ schema: schemas.Role ?? role_2.RoleSchema,
58
+ },
59
+ UsedDirectLoginToken: {
60
+ collection: collections.UsedDirectLoginToken ??
61
+ schema_collection_1.SchemaCollection.UsedDirectLoginToken,
62
+ model: (0, used_direct_login_token_1.default)(connection, modelNames.UsedDirectLoginToken ?? enumerations_1.BaseModelName.UsedDirectLoginToken, collections.UsedDirectLoginToken ??
63
+ schema_collection_1.SchemaCollection.UsedDirectLoginToken, schemas.UsedDirectLoginToken),
64
+ modelName: modelNames.UsedDirectLoginToken ?? enumerations_1.BaseModelName.UsedDirectLoginToken,
65
+ schema: schemas.UsedDirectLoginToken ?? used_direct_login_token_2.UsedDirectLoginTokenSchema,
66
+ },
67
+ User: {
68
+ collection: collections.User ?? schema_collection_1.SchemaCollection.User,
69
+ model: (0, user_1.default)(connection, modelNames.User ?? enumerations_1.BaseModelName.User, collections.User ?? schema_collection_1.SchemaCollection.User, schemas.User),
70
+ modelName: modelNames.User ?? enumerations_1.BaseModelName.User,
71
+ schema: schemas.User ?? user_2.UserSchema,
72
+ },
73
+ UserRole: {
74
+ collection: collections.UserRole ?? schema_collection_1.SchemaCollection.UserRole,
75
+ model: (0, user_role_1.default)(connection, modelNames.UserRole ?? enumerations_1.BaseModelName.UserRole, collections.UserRole ?? schema_collection_1.SchemaCollection.UserRole, schemas.UserRole),
76
+ modelName: modelNames.UserRole ?? enumerations_1.BaseModelName.UserRole,
77
+ schema: schemas.UserRole ?? user_role_2.UserRoleSchema,
78
+ },
79
+ };
80
+ }
81
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite-mongo/src/schemas/schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * @fileoverview Used direct login token schema factory for MongoDB.
3
+ * Creates schema for tracking consumed direct login tokens.
4
+ * @module schemas/used-direct-login-token
5
+ */
6
+ import { Schema } from '@digitaldefiance/mongoose-types';
7
+ import { BaseModelName } from '../enumerations';
8
+ import { IConstants } from '@digitaldefiance/node-express-suite';
9
+ /**
10
+ * Configuration options for creating a used direct login token schema.
11
+ * @template TModelName - Model name type (defaults to BaseModelName)
12
+ */
13
+ export interface UsedDirectLoginTokenSchemaOptions<TModelName extends string = BaseModelName> {
14
+ /** Model name for user reference */
15
+ userModelName?: TModelName;
16
+ /** ID type for references */
17
+ idType?: any;
18
+ }
19
+ /**
20
+ * Factory function to create an extensible used direct login token schema.
21
+ * @template TModelName - Model name type (defaults to BaseModelName)
22
+ * @template TConstants - Constants type (defaults to IConstants)
23
+ * @param {UsedDirectLoginTokenSchemaOptions<TModelName>} options - Schema configuration options
24
+ * @param {TConstants} [_constants] - Optional constants (reserved for future use)
25
+ * @returns {Schema} Configured used direct login token schema with unique index
26
+ */
27
+ export declare function createUsedDirectLoginTokenSchema<TModelName extends string = BaseModelName, TConstants extends IConstants = IConstants>(options?: UsedDirectLoginTokenSchemaOptions<TModelName>, _constants?: TConstants): Schema;
28
+ /**
29
+ * Default used direct login token schema with base configuration.
30
+ * Pre-configured schema with ObjectId references and unique compound index.
31
+ */
32
+ export declare const UsedDirectLoginTokenSchema: Schema<any, import("mongoose").Model<any, any, any, any, any, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, {
33
+ [x: number]: unknown;
34
+ [x: symbol]: unknown;
35
+ [x: string]: unknown;
36
+ }, import("mongoose").Document<unknown, {}, import("mongoose").FlatRecord<{
37
+ [x: number]: unknown;
38
+ [x: symbol]: unknown;
39
+ [x: string]: unknown;
40
+ }>, {}, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>> & import("mongoose").FlatRecord<{
41
+ [x: number]: unknown;
42
+ [x: symbol]: unknown;
43
+ [x: string]: unknown;
44
+ }> & Required<{
45
+ _id: unknown;
46
+ }> & {
47
+ __v: number;
48
+ }>;
49
+ //# sourceMappingURL=used-direct-login-token.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"used-direct-login-token.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite-mongo/src/schemas/used-direct-login-token.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AAEjE;;;GAGG;AACH,MAAM,WAAW,iCAAiC,CAChD,UAAU,SAAS,MAAM,GAAG,aAAa;IAEzC,oCAAoC;IACpC,aAAa,CAAC,EAAE,UAAU,CAAC;IAC3B,6BAA6B;IAC7B,MAAM,CAAC,EAAE,GAAG,CAAC;CACd;AAED;;;;;;;GAOG;AACH,wBAAgB,gCAAgC,CAC9C,UAAU,SAAS,MAAM,GAAG,aAAa,EACzC,UAAU,SAAS,UAAU,GAAG,UAAU,EAE1C,OAAO,GAAE,iCAAiC,CAAC,UAAU,CAAM,EAC3D,UAAU,CAAC,EAAE,UAAU,GACtB,MAAM,CAcR;AAED;;;GAGG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;EAAqC,CAAC"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview Used direct login token schema factory for MongoDB.
4
+ * Creates schema for tracking consumed direct login tokens.
5
+ * @module schemas/used-direct-login-token
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.UsedDirectLoginTokenSchema = void 0;
9
+ exports.createUsedDirectLoginTokenSchema = createUsedDirectLoginTokenSchema;
10
+ const mongoose_types_1 = require("@digitaldefiance/mongoose-types");
11
+ const enumerations_1 = require("../enumerations");
12
+ /**
13
+ * Factory function to create an extensible used direct login token schema.
14
+ * @template TModelName - Model name type (defaults to BaseModelName)
15
+ * @template TConstants - Constants type (defaults to IConstants)
16
+ * @param {UsedDirectLoginTokenSchemaOptions<TModelName>} options - Schema configuration options
17
+ * @param {TConstants} [_constants] - Optional constants (reserved for future use)
18
+ * @returns {Schema} Configured used direct login token schema with unique index
19
+ */
20
+ function createUsedDirectLoginTokenSchema(options = {}, _constants) {
21
+ const { userModelName = enumerations_1.BaseModelName.User, idType = mongoose_types_1.Schema.Types.ObjectId, } = options;
22
+ const definition = {
23
+ userId: { type: idType, required: true, ref: userModelName },
24
+ token: { type: String, required: true },
25
+ };
26
+ const schema = new mongoose_types_1.Schema(definition);
27
+ schema.index({ userId: 1, token: 1 }, { unique: true });
28
+ return schema;
29
+ }
30
+ /**
31
+ * Default used direct login token schema with base configuration.
32
+ * Pre-configured schema with ObjectId references and unique compound index.
33
+ */
34
+ exports.UsedDirectLoginTokenSchema = createUsedDirectLoginTokenSchema();
35
+ //# sourceMappingURL=used-direct-login-token.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"used-direct-login-token.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite-mongo/src/schemas/used-direct-login-token.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AA2BH,4EAoBC;AA7CD,oEAAyD;AACzD,kDAAgD;AAgBhD;;;;;;;GAOG;AACH,SAAgB,gCAAgC,CAI9C,UAAyD,EAAE,EAC3D,UAAuB;IAEvB,MAAM,EACJ,aAAa,GAAG,4BAAa,CAAC,IAAkB,EAChD,MAAM,GAAG,uBAAM,CAAC,KAAK,CAAC,QAAQ,GAC/B,GAAG,OAAO,CAAC;IAEZ,MAAM,UAAU,GAAG;QACjB,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,aAAa,EAAE;QAC5D,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;KACxC,CAAC;IAEF,MAAM,MAAM,GAAG,IAAI,uBAAM,CAAC,UAAU,CAAC,CAAC;IACtC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACU,QAAA,0BAA0B,GAAG,gCAAgC,EAAE,CAAC"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * @fileoverview User-role relationship schema factory for MongoDB.
3
+ * Creates schema for many-to-many user-role associations.
4
+ * @module schemas/user-role
5
+ */
6
+ import { Schema } from '@digitaldefiance/mongoose-types';
7
+ import { BaseModelName } from '../enumerations';
8
+ import { IConstants } from '@digitaldefiance/node-express-suite';
9
+ /**
10
+ * Configuration options for creating a user-role schema.
11
+ * @template TModelName - Model name type (defaults to BaseModelName)
12
+ */
13
+ export interface UserRoleSchemaOptions<TModelName extends string = BaseModelName> {
14
+ /** Model name for user reference */
15
+ userModelName?: TModelName;
16
+ /** Model name for role reference */
17
+ roleModelName?: TModelName;
18
+ /** ID type for references */
19
+ idType?: any;
20
+ }
21
+ /**
22
+ * Factory function to create an extensible user-role schema.
23
+ * Includes compound unique index and separate indexes for queries.
24
+ * @template TModelName - Model name type (defaults to BaseModelName)
25
+ * @template TConstants - Constants type (defaults to IConstants)
26
+ * @param {UserRoleSchemaOptions<TModelName>} options - Schema configuration options
27
+ * @param {TConstants} [_constants] - Optional constants (reserved for future use)
28
+ * @returns {Schema} Configured user-role schema with indexes
29
+ */
30
+ export declare function createUserRoleSchema<TModelName extends string = BaseModelName, TConstants extends IConstants = IConstants>(options?: UserRoleSchemaOptions<TModelName>, _constants?: TConstants): Schema;
31
+ /**
32
+ * Default user-role schema with base configuration.
33
+ * Pre-configured schema with compound unique index on userId and roleId.
34
+ */
35
+ export declare const UserRoleSchema: Schema<any, import("mongoose").Model<any, any, any, any, any, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, {
36
+ [x: number]: unknown;
37
+ [x: symbol]: unknown;
38
+ [x: string]: unknown;
39
+ }, import("mongoose").Document<unknown, {}, import("mongoose").FlatRecord<{
40
+ [x: number]: unknown;
41
+ [x: symbol]: unknown;
42
+ [x: string]: unknown;
43
+ }>, {}, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>> & import("mongoose").FlatRecord<{
44
+ [x: number]: unknown;
45
+ [x: symbol]: unknown;
46
+ [x: string]: unknown;
47
+ }> & Required<{
48
+ _id: unknown;
49
+ }> & {
50
+ __v: number;
51
+ }>;
52
+ //# sourceMappingURL=user-role.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-role.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite-mongo/src/schemas/user-role.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AAEjE;;;GAGG;AACH,MAAM,WAAW,qBAAqB,CACpC,UAAU,SAAS,MAAM,GAAG,aAAa;IAEzC,oCAAoC;IACpC,aAAa,CAAC,EAAE,UAAU,CAAC;IAC3B,oCAAoC;IACpC,aAAa,CAAC,EAAE,UAAU,CAAC;IAC3B,6BAA6B;IAC7B,MAAM,CAAC,EAAE,GAAG,CAAC;CACd;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,SAAS,MAAM,GAAG,aAAa,EACzC,UAAU,SAAS,UAAU,GAAG,UAAU,EAE1C,OAAO,GAAE,qBAAqB,CAAC,UAAU,CAAM,EAC/C,UAAU,CAAC,EAAE,UAAU,GACtB,MAAM,CA8CR;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;EAAyB,CAAC"}