@neohm/nestend 4.1.1 → 5.0.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 (1024) hide show
  1. package/README.md +68 -14
  2. package/dist/admin/admin.module.d.ts.map +1 -1
  3. package/dist/admin/admin.module.js +9 -1
  4. package/dist/admin/admin.module.js.map +1 -1
  5. package/dist/admin/controllers/admin.api.key.controller.d.ts +13 -5
  6. package/dist/admin/controllers/admin.api.key.controller.d.ts.map +1 -1
  7. package/dist/admin/controllers/admin.api.key.controller.js +71 -23
  8. package/dist/admin/controllers/admin.api.key.controller.js.map +1 -1
  9. package/dist/admin/controllers/admin.email.template.controller.d.ts +2 -3
  10. package/dist/admin/controllers/admin.email.template.controller.d.ts.map +1 -1
  11. package/dist/admin/controllers/admin.email.template.controller.js +13 -11
  12. package/dist/admin/controllers/admin.email.template.controller.js.map +1 -1
  13. package/dist/admin/controllers/admin.pdf.template.controller.d.ts +2 -3
  14. package/dist/admin/controllers/admin.pdf.template.controller.d.ts.map +1 -1
  15. package/dist/admin/controllers/admin.pdf.template.controller.js +13 -11
  16. package/dist/admin/controllers/admin.pdf.template.controller.js.map +1 -1
  17. package/dist/admin/controllers/admin.role.controller.d.ts.map +1 -1
  18. package/dist/admin/controllers/admin.role.controller.js +2 -0
  19. package/dist/admin/controllers/admin.role.controller.js.map +1 -1
  20. package/dist/admin/controllers/admin.scheduled.task.controller.d.ts +5 -4
  21. package/dist/admin/controllers/admin.scheduled.task.controller.d.ts.map +1 -1
  22. package/dist/admin/controllers/admin.scheduled.task.controller.js +19 -14
  23. package/dist/admin/controllers/admin.scheduled.task.controller.js.map +1 -1
  24. package/dist/admin/controllers/admin.scope.controller.d.ts +4 -5
  25. package/dist/admin/controllers/admin.scope.controller.d.ts.map +1 -1
  26. package/dist/admin/controllers/admin.scope.controller.js +45 -27
  27. package/dist/admin/controllers/admin.scope.controller.js.map +1 -1
  28. package/dist/admin/controllers/admin.system.user.controller.d.ts +1 -2
  29. package/dist/admin/controllers/admin.system.user.controller.d.ts.map +1 -1
  30. package/dist/admin/controllers/admin.system.user.controller.js +12 -8
  31. package/dist/admin/controllers/admin.system.user.controller.js.map +1 -1
  32. package/dist/admin/controllers/admin.tenant.controller.d.ts +2 -3
  33. package/dist/admin/controllers/admin.tenant.controller.d.ts.map +1 -1
  34. package/dist/admin/controllers/admin.tenant.controller.js +12 -10
  35. package/dist/admin/controllers/admin.tenant.controller.js.map +1 -1
  36. package/dist/admin/controllers/admin.tenant.user.controller.d.ts +12 -6
  37. package/dist/admin/controllers/admin.tenant.user.controller.d.ts.map +1 -1
  38. package/dist/admin/controllers/admin.tenant.user.controller.js +55 -24
  39. package/dist/admin/controllers/admin.tenant.user.controller.js.map +1 -1
  40. package/dist/admin/controllers/admin.user.controller.d.ts +3 -3
  41. package/dist/admin/controllers/admin.user.controller.d.ts.map +1 -1
  42. package/dist/admin/controllers/admin.user.controller.js +22 -8
  43. package/dist/admin/controllers/admin.user.controller.js.map +1 -1
  44. package/dist/admin/controllers/system.role.controller.d.ts +2 -3
  45. package/dist/admin/controllers/system.role.controller.d.ts.map +1 -1
  46. package/dist/admin/controllers/system.role.controller.js +34 -14
  47. package/dist/admin/controllers/system.role.controller.js.map +1 -1
  48. package/dist/admin/dtos/add.admin.user.dto.d.ts +1 -0
  49. package/dist/admin/dtos/add.admin.user.dto.d.ts.map +1 -1
  50. package/dist/admin/dtos/add.admin.user.dto.js +27 -4
  51. package/dist/admin/dtos/add.admin.user.dto.js.map +1 -1
  52. package/dist/admin/dtos/add.api.key.dto.d.ts +1 -1
  53. package/dist/admin/dtos/add.api.key.dto.d.ts.map +1 -1
  54. package/dist/admin/dtos/add.api.key.dto.js +5 -1
  55. package/dist/admin/dtos/add.api.key.dto.js.map +1 -1
  56. package/dist/admin/dtos/add.bulk.users.dto.d.ts.map +1 -1
  57. package/dist/admin/dtos/add.bulk.users.dto.js +6 -2
  58. package/dist/admin/dtos/add.bulk.users.dto.js.map +1 -1
  59. package/dist/admin/dtos/add.client.membership.dto.d.ts.map +1 -1
  60. package/dist/admin/dtos/add.client.membership.dto.js +4 -1
  61. package/dist/admin/dtos/add.client.membership.dto.js.map +1 -1
  62. package/dist/admin/dtos/add.client.user.dto.d.ts +1 -1
  63. package/dist/admin/dtos/add.client.user.dto.d.ts.map +1 -1
  64. package/dist/admin/dtos/add.client.user.dto.js +5 -2
  65. package/dist/admin/dtos/add.client.user.dto.js.map +1 -1
  66. package/dist/admin/dtos/add.email.template.dto.d.ts.map +1 -1
  67. package/dist/admin/dtos/add.email.template.dto.js +9 -6
  68. package/dist/admin/dtos/add.email.template.dto.js.map +1 -1
  69. package/dist/admin/dtos/add.pdf.template.dto.d.ts.map +1 -1
  70. package/dist/admin/dtos/add.pdf.template.dto.js +9 -6
  71. package/dist/admin/dtos/add.pdf.template.dto.js.map +1 -1
  72. package/dist/admin/dtos/add.scheduled.task.dto.d.ts.map +1 -1
  73. package/dist/admin/dtos/add.scheduled.task.dto.js +16 -3
  74. package/dist/admin/dtos/add.scheduled.task.dto.js.map +1 -1
  75. package/dist/admin/dtos/add.scope.dto.d.ts +1 -1
  76. package/dist/admin/dtos/add.scope.dto.d.ts.map +1 -1
  77. package/dist/admin/dtos/add.scope.dto.js +7 -4
  78. package/dist/admin/dtos/add.scope.dto.js.map +1 -1
  79. package/dist/admin/dtos/add.system.role.dto.d.ts.map +1 -1
  80. package/dist/admin/dtos/add.system.role.dto.js +6 -4
  81. package/dist/admin/dtos/add.system.role.dto.js.map +1 -1
  82. package/dist/admin/dtos/add.tenant.dto.d.ts +1 -1
  83. package/dist/admin/dtos/add.tenant.dto.d.ts.map +1 -1
  84. package/dist/admin/dtos/add.tenant.dto.js +20 -5
  85. package/dist/admin/dtos/add.tenant.dto.js.map +1 -1
  86. package/dist/admin/dtos/base.user.dto.d.ts.map +1 -1
  87. package/dist/admin/dtos/base.user.dto.js +5 -1
  88. package/dist/admin/dtos/base.user.dto.js.map +1 -1
  89. package/dist/admin/enums/admin.default.enum.d.ts +17 -0
  90. package/dist/admin/enums/admin.default.enum.d.ts.map +1 -0
  91. package/dist/admin/enums/admin.default.enum.js +22 -0
  92. package/dist/admin/enums/admin.default.enum.js.map +1 -0
  93. package/dist/admin/libraries/admin.user.data.processor.d.ts +5 -7
  94. package/dist/admin/libraries/admin.user.data.processor.d.ts.map +1 -1
  95. package/dist/admin/libraries/admin.user.data.processor.js +112 -73
  96. package/dist/admin/libraries/admin.user.data.processor.js.map +1 -1
  97. package/dist/admin/libraries/admin.user.delete.processor.d.ts +0 -2
  98. package/dist/admin/libraries/admin.user.delete.processor.d.ts.map +1 -1
  99. package/dist/admin/libraries/admin.user.delete.processor.js +26 -39
  100. package/dist/admin/libraries/admin.user.delete.processor.js.map +1 -1
  101. package/dist/admin/libraries/api.key.data.processor.d.ts +1 -0
  102. package/dist/admin/libraries/api.key.data.processor.d.ts.map +1 -1
  103. package/dist/admin/libraries/api.key.data.processor.js +26 -3
  104. package/dist/admin/libraries/api.key.data.processor.js.map +1 -1
  105. package/dist/admin/libraries/bulk.user.data.processor.d.ts +4 -1
  106. package/dist/admin/libraries/bulk.user.data.processor.d.ts.map +1 -1
  107. package/dist/admin/libraries/bulk.user.data.processor.js +39 -3
  108. package/dist/admin/libraries/bulk.user.data.processor.js.map +1 -1
  109. package/dist/admin/libraries/catalogue.data.processor.d.ts +15 -0
  110. package/dist/admin/libraries/catalogue.data.processor.d.ts.map +1 -0
  111. package/dist/admin/libraries/catalogue.data.processor.js +42 -0
  112. package/dist/admin/libraries/catalogue.data.processor.js.map +1 -0
  113. package/dist/admin/libraries/client.membership.data.processor.d.ts +4 -1
  114. package/dist/admin/libraries/client.membership.data.processor.d.ts.map +1 -1
  115. package/dist/admin/libraries/client.membership.data.processor.js +33 -6
  116. package/dist/admin/libraries/client.membership.data.processor.js.map +1 -1
  117. package/dist/admin/libraries/client.user.data.processor.d.ts +7 -1
  118. package/dist/admin/libraries/client.user.data.processor.d.ts.map +1 -1
  119. package/dist/admin/libraries/client.user.data.processor.js +89 -30
  120. package/dist/admin/libraries/client.user.data.processor.js.map +1 -1
  121. package/dist/admin/libraries/client.user.delete.processor.d.ts.map +1 -1
  122. package/dist/admin/libraries/client.user.delete.processor.js +11 -0
  123. package/dist/admin/libraries/client.user.delete.processor.js.map +1 -1
  124. package/dist/admin/libraries/email.template.data.processor.d.ts +8 -5
  125. package/dist/admin/libraries/email.template.data.processor.d.ts.map +1 -1
  126. package/dist/admin/libraries/email.template.data.processor.js +49 -29
  127. package/dist/admin/libraries/email.template.data.processor.js.map +1 -1
  128. package/dist/admin/libraries/pdf.template.data.processor.d.ts +8 -5
  129. package/dist/admin/libraries/pdf.template.data.processor.d.ts.map +1 -1
  130. package/dist/admin/libraries/pdf.template.data.processor.js +47 -26
  131. package/dist/admin/libraries/pdf.template.data.processor.js.map +1 -1
  132. package/dist/admin/libraries/scheduled.task.data.processor.d.ts +11 -5
  133. package/dist/admin/libraries/scheduled.task.data.processor.d.ts.map +1 -1
  134. package/dist/admin/libraries/scheduled.task.data.processor.js +81 -38
  135. package/dist/admin/libraries/scheduled.task.data.processor.js.map +1 -1
  136. package/dist/admin/libraries/scheduled.task.delete.processor.d.ts.map +1 -1
  137. package/dist/admin/libraries/scheduled.task.delete.processor.js +14 -3
  138. package/dist/admin/libraries/scheduled.task.delete.processor.js.map +1 -1
  139. package/dist/admin/libraries/scope.data.processor.d.ts +9 -5
  140. package/dist/admin/libraries/scope.data.processor.d.ts.map +1 -1
  141. package/dist/admin/libraries/scope.data.processor.js +62 -27
  142. package/dist/admin/libraries/scope.data.processor.js.map +1 -1
  143. package/dist/admin/libraries/system.role.data.processor.d.ts +8 -2
  144. package/dist/admin/libraries/system.role.data.processor.d.ts.map +1 -1
  145. package/dist/admin/libraries/system.role.data.processor.js +47 -17
  146. package/dist/admin/libraries/system.role.data.processor.js.map +1 -1
  147. package/dist/admin/libraries/system.user.data.processor.d.ts +5 -0
  148. package/dist/admin/libraries/system.user.data.processor.d.ts.map +1 -1
  149. package/dist/admin/libraries/system.user.data.processor.js +52 -22
  150. package/dist/admin/libraries/system.user.data.processor.js.map +1 -1
  151. package/dist/admin/libraries/tenant.data.processor.d.ts +1 -1
  152. package/dist/admin/libraries/tenant.data.processor.d.ts.map +1 -1
  153. package/dist/admin/libraries/tenant.data.processor.js +91 -54
  154. package/dist/admin/libraries/tenant.data.processor.js.map +1 -1
  155. package/dist/admin/libraries/tenant.delete.processor.d.ts +1 -0
  156. package/dist/admin/libraries/tenant.delete.processor.d.ts.map +1 -1
  157. package/dist/admin/libraries/tenant.delete.processor.js +52 -24
  158. package/dist/admin/libraries/tenant.delete.processor.js.map +1 -1
  159. package/dist/admin/libraries/user.data.processor.d.ts +1 -0
  160. package/dist/admin/libraries/user.data.processor.d.ts.map +1 -1
  161. package/dist/admin/libraries/user.data.processor.js +10 -0
  162. package/dist/admin/libraries/user.data.processor.js.map +1 -1
  163. package/dist/admin/services/admin.access.service.d.ts +4 -2
  164. package/dist/admin/services/admin.access.service.d.ts.map +1 -1
  165. package/dist/admin/services/admin.access.service.js +15 -7
  166. package/dist/admin/services/admin.access.service.js.map +1 -1
  167. package/dist/admin/services/system.user.service.d.ts.map +1 -1
  168. package/dist/admin/services/system.user.service.js +11 -0
  169. package/dist/admin/services/system.user.service.js.map +1 -1
  170. package/dist/admin/services/template.service.d.ts +1 -0
  171. package/dist/admin/services/template.service.d.ts.map +1 -1
  172. package/dist/admin/services/template.service.js +24 -11
  173. package/dist/admin/services/template.service.js.map +1 -1
  174. package/dist/admin/types/admin.types.d.ts +27 -0
  175. package/dist/admin/types/admin.types.d.ts.map +1 -1
  176. package/dist/admin/utilities/admin.audit.d.ts +11 -0
  177. package/dist/admin/utilities/admin.audit.d.ts.map +1 -0
  178. package/dist/admin/utilities/admin.audit.js +51 -0
  179. package/dist/admin/utilities/admin.audit.js.map +1 -0
  180. package/dist/admin/utilities/admin.policy.d.ts +33 -0
  181. package/dist/admin/utilities/admin.policy.d.ts.map +1 -0
  182. package/dist/admin/utilities/admin.policy.js +91 -0
  183. package/dist/admin/utilities/admin.policy.js.map +1 -0
  184. package/dist/admin/utilities/bounded.concurrency.d.ts +4 -0
  185. package/dist/admin/utilities/bounded.concurrency.d.ts.map +1 -0
  186. package/dist/admin/utilities/bounded.concurrency.js +20 -0
  187. package/dist/admin/utilities/bounded.concurrency.js.map +1 -0
  188. package/dist/admin/utilities/scope.grants.d.ts +9 -0
  189. package/dist/admin/utilities/scope.grants.d.ts.map +1 -0
  190. package/dist/admin/utilities/scope.grants.js +28 -0
  191. package/dist/admin/utilities/scope.grants.js.map +1 -0
  192. package/dist/admin/utilities/super.admin.guard.d.ts +9 -0
  193. package/dist/admin/utilities/super.admin.guard.d.ts.map +1 -0
  194. package/dist/admin/utilities/super.admin.guard.js +32 -0
  195. package/dist/admin/utilities/super.admin.guard.js.map +1 -0
  196. package/dist/admin/utilities/tenant.role.policy.d.ts +16 -0
  197. package/dist/admin/utilities/tenant.role.policy.d.ts.map +1 -0
  198. package/dist/admin/utilities/tenant.role.policy.js +35 -0
  199. package/dist/admin/utilities/tenant.role.policy.js.map +1 -0
  200. package/dist/admin/validators/admin.patterns.d.ts +5 -0
  201. package/dist/admin/validators/admin.patterns.d.ts.map +1 -0
  202. package/dist/admin/validators/admin.patterns.js +8 -0
  203. package/dist/admin/validators/admin.patterns.js.map +1 -0
  204. package/dist/admin/validators/admin.validators.d.ts +5 -0
  205. package/dist/admin/validators/admin.validators.d.ts.map +1 -0
  206. package/dist/admin/validators/admin.validators.js +56 -0
  207. package/dist/admin/validators/admin.validators.js.map +1 -0
  208. package/dist/auth/auth.module.d.ts.map +1 -1
  209. package/dist/auth/auth.module.js +68 -14
  210. package/dist/auth/auth.module.js.map +1 -1
  211. package/dist/auth/controllers/admin.auth.controller.d.ts +7 -2
  212. package/dist/auth/controllers/admin.auth.controller.d.ts.map +1 -1
  213. package/dist/auth/controllers/admin.auth.controller.js +36 -11
  214. package/dist/auth/controllers/admin.auth.controller.js.map +1 -1
  215. package/dist/auth/controllers/auth.controller.d.ts +12 -2
  216. package/dist/auth/controllers/auth.controller.d.ts.map +1 -1
  217. package/dist/auth/controllers/auth.controller.js +83 -17
  218. package/dist/auth/controllers/auth.controller.js.map +1 -1
  219. package/dist/auth/controllers/impersonation.controller.d.ts +5 -4
  220. package/dist/auth/controllers/impersonation.controller.d.ts.map +1 -1
  221. package/dist/auth/controllers/impersonation.controller.js +12 -10
  222. package/dist/auth/controllers/impersonation.controller.js.map +1 -1
  223. package/dist/auth/controllers/tenant.invitation.controller.d.ts +6 -4
  224. package/dist/auth/controllers/tenant.invitation.controller.d.ts.map +1 -1
  225. package/dist/auth/controllers/tenant.invitation.controller.js +25 -15
  226. package/dist/auth/controllers/tenant.invitation.controller.js.map +1 -1
  227. package/dist/auth/controllers/tenant.member.controller.d.ts.map +1 -1
  228. package/dist/auth/controllers/tenant.member.controller.js +3 -4
  229. package/dist/auth/controllers/tenant.member.controller.js.map +1 -1
  230. package/dist/auth/controllers/user.invitation.controller.d.ts +2 -3
  231. package/dist/auth/controllers/user.invitation.controller.d.ts.map +1 -1
  232. package/dist/auth/controllers/user.invitation.controller.js +10 -9
  233. package/dist/auth/controllers/user.invitation.controller.js.map +1 -1
  234. package/dist/auth/controllers/user.organization.controller.d.ts +1 -2
  235. package/dist/auth/controllers/user.organization.controller.d.ts.map +1 -1
  236. package/dist/auth/controllers/user.organization.controller.js +6 -6
  237. package/dist/auth/controllers/user.organization.controller.js.map +1 -1
  238. package/dist/auth/decorators/allow.pending.password.change.decorator.d.ts +3 -0
  239. package/dist/auth/decorators/allow.pending.password.change.decorator.d.ts.map +1 -0
  240. package/dist/auth/decorators/allow.pending.password.change.decorator.js +8 -0
  241. package/dist/auth/decorators/allow.pending.password.change.decorator.js.map +1 -0
  242. package/dist/auth/decorators/api.key.scopes.decorator.d.ts +2 -0
  243. package/dist/auth/decorators/api.key.scopes.decorator.d.ts.map +1 -1
  244. package/dist/auth/decorators/api.key.scopes.decorator.js +4 -1
  245. package/dist/auth/decorators/api.key.scopes.decorator.js.map +1 -1
  246. package/dist/auth/decorators/max.bytes.decorator.d.ts +3 -0
  247. package/dist/auth/decorators/max.bytes.decorator.d.ts.map +1 -0
  248. package/dist/auth/decorators/max.bytes.decorator.js +15 -0
  249. package/dist/auth/decorators/max.bytes.decorator.js.map +1 -0
  250. package/dist/auth/decorators/normalize.email.decorator.d.ts +2 -0
  251. package/dist/auth/decorators/normalize.email.decorator.d.ts.map +1 -0
  252. package/dist/auth/decorators/normalize.email.decorator.js +7 -0
  253. package/dist/auth/decorators/normalize.email.decorator.js.map +1 -0
  254. package/dist/auth/dtos/admin.login.dto.d.ts.map +1 -1
  255. package/dist/auth/dtos/admin.login.dto.js +7 -1
  256. package/dist/auth/dtos/admin.login.dto.js.map +1 -1
  257. package/dist/auth/dtos/change.password.dto.d.ts.map +1 -1
  258. package/dist/auth/dtos/change.password.dto.js +9 -3
  259. package/dist/auth/dtos/change.password.dto.js.map +1 -1
  260. package/dist/auth/dtos/google.login.dto.d.ts.map +1 -1
  261. package/dist/auth/dtos/google.login.dto.js +1 -0
  262. package/dist/auth/dtos/google.login.dto.js.map +1 -1
  263. package/dist/auth/dtos/invite.tenant.user.dto.d.ts.map +1 -1
  264. package/dist/auth/dtos/invite.tenant.user.dto.js +7 -3
  265. package/dist/auth/dtos/invite.tenant.user.dto.js.map +1 -1
  266. package/dist/auth/dtos/login.dto.d.ts.map +1 -1
  267. package/dist/auth/dtos/login.dto.js +5 -0
  268. package/dist/auth/dtos/login.dto.js.map +1 -1
  269. package/dist/auth/dtos/member.roles.dto.d.ts.map +1 -1
  270. package/dist/auth/dtos/member.roles.dto.js +1 -0
  271. package/dist/auth/dtos/member.roles.dto.js.map +1 -1
  272. package/dist/auth/dtos/refresh.token.dto.d.ts.map +1 -1
  273. package/dist/auth/dtos/refresh.token.dto.js +1 -0
  274. package/dist/auth/dtos/refresh.token.dto.js.map +1 -1
  275. package/dist/auth/dtos/register.dto.d.ts.map +1 -1
  276. package/dist/auth/dtos/register.dto.js +11 -3
  277. package/dist/auth/dtos/register.dto.js.map +1 -1
  278. package/dist/auth/dtos/tenant.invitation.list.dto.d.ts +0 -1
  279. package/dist/auth/dtos/tenant.invitation.list.dto.d.ts.map +1 -1
  280. package/dist/auth/dtos/tenant.invitation.list.dto.js +0 -19
  281. package/dist/auth/dtos/tenant.invitation.list.dto.js.map +1 -1
  282. package/dist/auth/dtos/tenant.member.list.dto.d.ts +0 -1
  283. package/dist/auth/dtos/tenant.member.list.dto.d.ts.map +1 -1
  284. package/dist/auth/dtos/tenant.member.list.dto.js +0 -19
  285. package/dist/auth/dtos/tenant.member.list.dto.js.map +1 -1
  286. package/dist/auth/dtos/verify.email.dto.d.ts +4 -0
  287. package/dist/auth/dtos/verify.email.dto.d.ts.map +1 -0
  288. package/dist/auth/dtos/verify.email.dto.js +25 -0
  289. package/dist/auth/dtos/verify.email.dto.js.map +1 -0
  290. package/dist/auth/entities/admin.user.entity.d.ts +1 -0
  291. package/dist/auth/entities/admin.user.entity.d.ts.map +1 -1
  292. package/dist/auth/entities/admin.user.entity.js +4 -0
  293. package/dist/auth/entities/admin.user.entity.js.map +1 -1
  294. package/dist/auth/entities/api.key.entity.d.ts.map +1 -1
  295. package/dist/auth/entities/api.key.entity.js +2 -2
  296. package/dist/auth/entities/api.key.entity.js.map +1 -1
  297. package/dist/auth/entities/email.verification.token.entity.d.ts +11 -0
  298. package/dist/auth/entities/email.verification.token.entity.d.ts.map +1 -0
  299. package/dist/auth/entities/email.verification.token.entity.js +47 -0
  300. package/dist/auth/entities/email.verification.token.entity.js.map +1 -0
  301. package/dist/auth/entities/system.refresh.token.entity.d.ts +1 -0
  302. package/dist/auth/entities/system.refresh.token.entity.d.ts.map +1 -1
  303. package/dist/auth/entities/system.refresh.token.entity.js +4 -0
  304. package/dist/auth/entities/system.refresh.token.entity.js.map +1 -1
  305. package/dist/auth/entities/tenant.invitation.entity.d.ts +1 -0
  306. package/dist/auth/entities/tenant.invitation.entity.d.ts.map +1 -1
  307. package/dist/auth/entities/tenant.invitation.entity.js +5 -1
  308. package/dist/auth/entities/tenant.invitation.entity.js.map +1 -1
  309. package/dist/auth/entities/user.entity.d.ts +1 -0
  310. package/dist/auth/entities/user.entity.d.ts.map +1 -1
  311. package/dist/auth/entities/user.entity.js +5 -1
  312. package/dist/auth/entities/user.entity.js.map +1 -1
  313. package/dist/auth/enums/auth.default.enum.d.ts +26 -2
  314. package/dist/auth/enums/auth.default.enum.d.ts.map +1 -1
  315. package/dist/auth/enums/auth.default.enum.js +26 -2
  316. package/dist/auth/enums/auth.default.enum.js.map +1 -1
  317. package/dist/auth/enums/auth.message.enum.d.ts +8 -0
  318. package/dist/auth/enums/auth.message.enum.d.ts.map +1 -0
  319. package/dist/auth/enums/auth.message.enum.js +12 -0
  320. package/dist/auth/enums/auth.message.enum.js.map +1 -0
  321. package/dist/auth/enums/email.verification.default.enum.d.ts +6 -0
  322. package/dist/auth/enums/email.verification.default.enum.d.ts.map +1 -0
  323. package/dist/auth/enums/email.verification.default.enum.js +10 -0
  324. package/dist/auth/enums/email.verification.default.enum.js.map +1 -0
  325. package/dist/auth/enums/tenant.invitation.default.enum.d.ts +5 -1
  326. package/dist/auth/enums/tenant.invitation.default.enum.d.ts.map +1 -1
  327. package/dist/auth/enums/tenant.invitation.default.enum.js +4 -0
  328. package/dist/auth/enums/tenant.invitation.default.enum.js.map +1 -1
  329. package/dist/auth/es6.classes.d.ts +8 -3
  330. package/dist/auth/es6.classes.d.ts.map +1 -1
  331. package/dist/auth/es6.classes.js +10 -1
  332. package/dist/auth/es6.classes.js.map +1 -1
  333. package/dist/auth/guards/api.key.guard.d.ts +3 -2
  334. package/dist/auth/guards/api.key.guard.d.ts.map +1 -1
  335. package/dist/auth/guards/api.key.guard.js +19 -30
  336. package/dist/auth/guards/api.key.guard.js.map +1 -1
  337. package/dist/auth/guards/jwt.auth.guard.d.ts +1 -1
  338. package/dist/auth/guards/jwt.auth.guard.d.ts.map +1 -1
  339. package/dist/auth/guards/jwt.auth.guard.js +14 -7
  340. package/dist/auth/guards/jwt.auth.guard.js.map +1 -1
  341. package/dist/auth/helpers/admin.auth.d.ts.map +1 -1
  342. package/dist/auth/helpers/admin.auth.js +1 -1
  343. package/dist/auth/helpers/admin.auth.js.map +1 -1
  344. package/dist/auth/jobs/purge.expired.auth.records.job.d.ts +15 -0
  345. package/dist/auth/jobs/purge.expired.auth.records.job.d.ts.map +1 -0
  346. package/dist/auth/jobs/purge.expired.auth.records.job.js +72 -0
  347. package/dist/auth/jobs/purge.expired.auth.records.job.js.map +1 -0
  348. package/dist/auth/middlewares/admin.jwt.middleware.d.ts +3 -4
  349. package/dist/auth/middlewares/admin.jwt.middleware.d.ts.map +1 -1
  350. package/dist/auth/middlewares/admin.jwt.middleware.js +9 -28
  351. package/dist/auth/middlewares/admin.jwt.middleware.js.map +1 -1
  352. package/dist/auth/middlewares/api.key.middleware.d.ts +3 -2
  353. package/dist/auth/middlewares/api.key.middleware.d.ts.map +1 -1
  354. package/dist/auth/middlewares/api.key.middleware.js +18 -21
  355. package/dist/auth/middlewares/api.key.middleware.js.map +1 -1
  356. package/dist/auth/middlewares/jwt.middleware.d.ts +3 -4
  357. package/dist/auth/middlewares/jwt.middleware.d.ts.map +1 -1
  358. package/dist/auth/middlewares/jwt.middleware.js +15 -27
  359. package/dist/auth/middlewares/jwt.middleware.js.map +1 -1
  360. package/dist/auth/processors/change.admin.password.data.processor.d.ts +13 -0
  361. package/dist/auth/processors/change.admin.password.data.processor.d.ts.map +1 -0
  362. package/dist/auth/processors/change.admin.password.data.processor.js +61 -0
  363. package/dist/auth/processors/change.admin.password.data.processor.js.map +1 -0
  364. package/dist/auth/processors/change.password.data.processor.d.ts +2 -1
  365. package/dist/auth/processors/change.password.data.processor.d.ts.map +1 -1
  366. package/dist/auth/processors/change.password.data.processor.js +27 -4
  367. package/dist/auth/processors/change.password.data.processor.js.map +1 -1
  368. package/dist/auth/processors/google.user.data.processor.d.ts +3 -2
  369. package/dist/auth/processors/google.user.data.processor.d.ts.map +1 -1
  370. package/dist/auth/processors/google.user.data.processor.js +58 -10
  371. package/dist/auth/processors/google.user.data.processor.js.map +1 -1
  372. package/dist/auth/processors/register.user.data.processor.d.ts.map +1 -1
  373. package/dist/auth/processors/register.user.data.processor.js +7 -1
  374. package/dist/auth/processors/register.user.data.processor.js.map +1 -1
  375. package/dist/auth/processors/tenant.invitation.data.processor.d.ts +2 -0
  376. package/dist/auth/processors/tenant.invitation.data.processor.d.ts.map +1 -1
  377. package/dist/auth/processors/tenant.invitation.data.processor.js +59 -29
  378. package/dist/auth/processors/tenant.invitation.data.processor.js.map +1 -1
  379. package/dist/auth/processors/tenant.invitation.list.processor.d.ts +2 -1
  380. package/dist/auth/processors/tenant.invitation.list.processor.d.ts.map +1 -1
  381. package/dist/auth/processors/tenant.invitation.list.processor.js +6 -2
  382. package/dist/auth/processors/tenant.invitation.list.processor.js.map +1 -1
  383. package/dist/auth/processors/tenant.member.list.processor.d.ts +2 -1
  384. package/dist/auth/processors/tenant.member.list.processor.d.ts.map +1 -1
  385. package/dist/auth/processors/tenant.member.list.processor.js +6 -2
  386. package/dist/auth/processors/tenant.member.list.processor.js.map +1 -1
  387. package/dist/auth/services/admin.auth.service.d.ts +5 -8
  388. package/dist/auth/services/admin.auth.service.d.ts.map +1 -1
  389. package/dist/auth/services/admin.auth.service.js +49 -98
  390. package/dist/auth/services/admin.auth.service.js.map +1 -1
  391. package/dist/auth/services/api.key.service.d.ts +6 -2
  392. package/dist/auth/services/api.key.service.d.ts.map +1 -1
  393. package/dist/auth/services/api.key.service.js +39 -11
  394. package/dist/auth/services/api.key.service.js.map +1 -1
  395. package/dist/auth/services/auth.service.d.ts +12 -11
  396. package/dist/auth/services/auth.service.d.ts.map +1 -1
  397. package/dist/auth/services/auth.service.js +66 -117
  398. package/dist/auth/services/auth.service.js.map +1 -1
  399. package/dist/auth/services/email.verification.service.d.ts +16 -0
  400. package/dist/auth/services/email.verification.service.d.ts.map +1 -0
  401. package/dist/auth/services/email.verification.service.js +97 -0
  402. package/dist/auth/services/email.verification.service.js.map +1 -0
  403. package/dist/auth/services/google.auth.service.d.ts +1 -0
  404. package/dist/auth/services/google.auth.service.d.ts.map +1 -1
  405. package/dist/auth/services/google.auth.service.js +19 -6
  406. package/dist/auth/services/google.auth.service.js.map +1 -1
  407. package/dist/auth/services/impersonation.service.d.ts +2 -2
  408. package/dist/auth/services/impersonation.service.d.ts.map +1 -1
  409. package/dist/auth/services/impersonation.service.js +12 -3
  410. package/dist/auth/services/impersonation.service.js.map +1 -1
  411. package/dist/auth/services/login.throttle.service.d.ts +18 -0
  412. package/dist/auth/services/login.throttle.service.d.ts.map +1 -0
  413. package/dist/auth/services/login.throttle.service.js +98 -0
  414. package/dist/auth/services/login.throttle.service.js.map +1 -0
  415. package/dist/auth/services/role.service.d.ts +1 -0
  416. package/dist/auth/services/role.service.d.ts.map +1 -1
  417. package/dist/auth/services/role.service.js +16 -3
  418. package/dist/auth/services/role.service.js.map +1 -1
  419. package/dist/auth/services/scope.service.d.ts +3 -1
  420. package/dist/auth/services/scope.service.d.ts.map +1 -1
  421. package/dist/auth/services/scope.service.js +11 -8
  422. package/dist/auth/services/scope.service.js.map +1 -1
  423. package/dist/auth/services/tenant.invitation.service.d.ts +4 -2
  424. package/dist/auth/services/tenant.invitation.service.d.ts.map +1 -1
  425. package/dist/auth/services/tenant.invitation.service.js +40 -17
  426. package/dist/auth/services/tenant.invitation.service.js.map +1 -1
  427. package/dist/auth/services/tenant.membership.service.d.ts +2 -2
  428. package/dist/auth/services/tenant.membership.service.d.ts.map +1 -1
  429. package/dist/auth/services/tenant.membership.service.js +51 -50
  430. package/dist/auth/services/tenant.membership.service.js.map +1 -1
  431. package/dist/auth/services/token.service.d.ts +30 -0
  432. package/dist/auth/services/token.service.d.ts.map +1 -0
  433. package/dist/auth/services/token.service.js +211 -0
  434. package/dist/auth/services/token.service.js.map +1 -0
  435. package/dist/auth/strategy/jwt.refresh.strategy.d.ts +5 -6
  436. package/dist/auth/strategy/jwt.refresh.strategy.d.ts.map +1 -1
  437. package/dist/auth/strategy/jwt.refresh.strategy.js +31 -7
  438. package/dist/auth/strategy/jwt.refresh.strategy.js.map +1 -1
  439. package/dist/auth/strategy/jwt.strategy.d.ts +4 -3
  440. package/dist/auth/strategy/jwt.strategy.d.ts.map +1 -1
  441. package/dist/auth/strategy/jwt.strategy.js +27 -11
  442. package/dist/auth/strategy/jwt.strategy.js.map +1 -1
  443. package/dist/auth/types/api.key.types.d.ts +5 -1
  444. package/dist/auth/types/api.key.types.d.ts.map +1 -1
  445. package/dist/auth/types/auth.types.d.ts +65 -6
  446. package/dist/auth/types/auth.types.d.ts.map +1 -1
  447. package/dist/auth/types/google.auth.types.d.ts +4 -0
  448. package/dist/auth/types/google.auth.types.d.ts.map +1 -1
  449. package/dist/auth/utilities/access.revocation.d.ts +3 -1
  450. package/dist/auth/utilities/access.revocation.d.ts.map +1 -1
  451. package/dist/auth/utilities/access.revocation.js +19 -3
  452. package/dist/auth/utilities/access.revocation.js.map +1 -1
  453. package/dist/auth/utilities/auth.config.d.ts +23 -0
  454. package/dist/auth/utilities/auth.config.d.ts.map +1 -0
  455. package/dist/auth/utilities/auth.config.js +121 -0
  456. package/dist/auth/utilities/auth.config.js.map +1 -0
  457. package/dist/auth/utilities/auth.utilities.d.ts +4 -0
  458. package/dist/auth/utilities/auth.utilities.d.ts.map +1 -1
  459. package/dist/auth/utilities/auth.utilities.js +27 -17
  460. package/dist/auth/utilities/auth.utilities.js.map +1 -1
  461. package/dist/auth/utilities/duration.d.ts +6 -0
  462. package/dist/auth/utilities/duration.d.ts.map +1 -0
  463. package/dist/auth/utilities/duration.js +56 -0
  464. package/dist/auth/utilities/duration.js.map +1 -0
  465. package/dist/auth/utilities/request.credentials.d.ts +8 -0
  466. package/dist/auth/utilities/request.credentials.d.ts.map +1 -0
  467. package/dist/auth/utilities/request.credentials.js +33 -0
  468. package/dist/auth/utilities/request.credentials.js.map +1 -0
  469. package/dist/auth/utilities/scope.cascade.d.ts +12 -0
  470. package/dist/auth/utilities/scope.cascade.d.ts.map +1 -0
  471. package/dist/auth/utilities/scope.cascade.js +90 -0
  472. package/dist/auth/utilities/scope.cascade.js.map +1 -0
  473. package/dist/auth/utilities/tenant.access.d.ts +8 -2
  474. package/dist/auth/utilities/tenant.access.d.ts.map +1 -1
  475. package/dist/auth/utilities/tenant.access.js +86 -7
  476. package/dist/auth/utilities/tenant.access.js.map +1 -1
  477. package/dist/common/adapters/sentry.monitoring.adapter.d.ts +3 -1
  478. package/dist/common/adapters/sentry.monitoring.adapter.d.ts.map +1 -1
  479. package/dist/common/adapters/sentry.monitoring.adapter.js +41 -1
  480. package/dist/common/adapters/sentry.monitoring.adapter.js.map +1 -1
  481. package/dist/common/bootstrap/secure.bootstrap.d.ts +6 -0
  482. package/dist/common/bootstrap/secure.bootstrap.d.ts.map +1 -0
  483. package/dist/common/bootstrap/secure.bootstrap.js +69 -0
  484. package/dist/common/bootstrap/secure.bootstrap.js.map +1 -0
  485. package/dist/common/common.module.d.ts +1 -0
  486. package/dist/common/common.module.d.ts.map +1 -1
  487. package/dist/common/common.module.js +16 -2
  488. package/dist/common/common.module.js.map +1 -1
  489. package/dist/common/consumers/job.consumer.d.ts +2 -0
  490. package/dist/common/consumers/job.consumer.d.ts.map +1 -1
  491. package/dist/common/consumers/job.consumer.js +53 -19
  492. package/dist/common/consumers/job.consumer.js.map +1 -1
  493. package/dist/common/controllers/common.controller.d.ts.map +1 -1
  494. package/dist/common/controllers/common.controller.js +2 -0
  495. package/dist/common/controllers/common.controller.js.map +1 -1
  496. package/dist/common/dtos/common.list.filter.dto.d.ts.map +1 -1
  497. package/dist/common/dtos/common.list.filter.dto.js +11 -2
  498. package/dist/common/dtos/common.list.filter.dto.js.map +1 -1
  499. package/dist/common/dtos/common.params.dto.d.ts +0 -1
  500. package/dist/common/dtos/common.params.dto.d.ts.map +1 -1
  501. package/dist/common/dtos/common.params.dto.js +0 -6
  502. package/dist/common/dtos/common.params.dto.js.map +1 -1
  503. package/dist/common/dtos/filter.dto.d.ts.map +1 -1
  504. package/dist/common/dtos/filter.dto.js +4 -0
  505. package/dist/common/dtos/filter.dto.js.map +1 -1
  506. package/dist/common/dtos/sort.dto.d.ts.map +1 -1
  507. package/dist/common/dtos/sort.dto.js +2 -0
  508. package/dist/common/dtos/sort.dto.js.map +1 -1
  509. package/dist/common/entities/root.entity.d.ts.map +1 -1
  510. package/dist/common/entities/root.entity.js +1 -2
  511. package/dist/common/entities/root.entity.js.map +1 -1
  512. package/dist/common/enums/bootstrap.default.enum.d.ts +8 -0
  513. package/dist/common/enums/bootstrap.default.enum.d.ts.map +1 -0
  514. package/dist/common/enums/bootstrap.default.enum.js +13 -0
  515. package/dist/common/enums/bootstrap.default.enum.js.map +1 -0
  516. package/dist/common/enums/cache.default.enum.d.ts +4 -0
  517. package/dist/common/enums/cache.default.enum.d.ts.map +1 -0
  518. package/dist/common/enums/cache.default.enum.js +8 -0
  519. package/dist/common/enums/cache.default.enum.js.map +1 -0
  520. package/dist/common/enums/encryption.enum.d.ts +12 -1
  521. package/dist/common/enums/encryption.enum.d.ts.map +1 -1
  522. package/dist/common/enums/encryption.enum.js +14 -1
  523. package/dist/common/enums/encryption.enum.js.map +1 -1
  524. package/dist/common/enums/list.filter.default.enum.d.ts +9 -0
  525. package/dist/common/enums/list.filter.default.enum.d.ts.map +1 -0
  526. package/dist/common/enums/list.filter.default.enum.js +13 -0
  527. package/dist/common/enums/list.filter.default.enum.js.map +1 -0
  528. package/dist/common/enums/logging.default.enum.d.ts +4 -0
  529. package/dist/common/enums/logging.default.enum.d.ts.map +1 -0
  530. package/dist/common/enums/logging.default.enum.js +8 -0
  531. package/dist/common/enums/logging.default.enum.js.map +1 -0
  532. package/dist/common/enums/monitoring.default.enum.d.ts +3 -0
  533. package/dist/common/enums/monitoring.default.enum.d.ts.map +1 -1
  534. package/dist/common/enums/monitoring.default.enum.js +4 -1
  535. package/dist/common/enums/monitoring.default.enum.js.map +1 -1
  536. package/dist/common/enums/queue.enum.d.ts +5 -1
  537. package/dist/common/enums/queue.enum.d.ts.map +1 -1
  538. package/dist/common/enums/queue.enum.js +4 -0
  539. package/dist/common/enums/queue.enum.js.map +1 -1
  540. package/dist/common/enums/remote.request.default.enum.d.ts +6 -0
  541. package/dist/common/enums/remote.request.default.enum.d.ts.map +1 -0
  542. package/dist/common/enums/remote.request.default.enum.js +10 -0
  543. package/dist/common/enums/remote.request.default.enum.js.map +1 -0
  544. package/dist/common/enums/schedule.enum.d.ts +7 -1
  545. package/dist/common/enums/schedule.enum.d.ts.map +1 -1
  546. package/dist/common/enums/schedule.enum.js +6 -0
  547. package/dist/common/enums/schedule.enum.js.map +1 -1
  548. package/dist/common/enums/security.header.default.enum.d.ts +6 -0
  549. package/dist/common/enums/security.header.default.enum.d.ts.map +1 -0
  550. package/dist/common/enums/security.header.default.enum.js +10 -0
  551. package/dist/common/enums/security.header.default.enum.js.map +1 -0
  552. package/dist/common/enums/server.environment.enum.d.ts.map +1 -1
  553. package/dist/common/enums/server.environment.enum.js.map +1 -1
  554. package/dist/common/enums/sql.default.enum.d.ts +8 -0
  555. package/dist/common/enums/sql.default.enum.d.ts.map +1 -1
  556. package/dist/common/enums/sql.default.enum.js +14 -1
  557. package/dist/common/enums/sql.default.enum.js.map +1 -1
  558. package/dist/common/es6.classes.d.ts +4 -1
  559. package/dist/common/es6.classes.d.ts.map +1 -1
  560. package/dist/common/es6.classes.js +4 -0
  561. package/dist/common/es6.classes.js.map +1 -1
  562. package/dist/common/interceptors/logging.interceptor.d.ts.map +1 -1
  563. package/dist/common/interceptors/logging.interceptor.js +9 -3
  564. package/dist/common/interceptors/logging.interceptor.js.map +1 -1
  565. package/dist/common/interceptors/monitoring.interceptor.d.ts.map +1 -1
  566. package/dist/common/interceptors/monitoring.interceptor.js +10 -5
  567. package/dist/common/interceptors/monitoring.interceptor.js.map +1 -1
  568. package/dist/common/jobs/common.job.d.ts +2 -0
  569. package/dist/common/jobs/common.job.d.ts.map +1 -1
  570. package/dist/common/jobs/common.job.js +2 -0
  571. package/dist/common/jobs/common.job.js.map +1 -1
  572. package/dist/common/jobs/dispatch.scheduled.event.job.d.ts.map +1 -1
  573. package/dist/common/jobs/dispatch.scheduled.event.job.js +10 -3
  574. package/dist/common/jobs/dispatch.scheduled.event.job.js.map +1 -1
  575. package/dist/common/jobs/purge.failed.jobs.job.d.ts +9 -0
  576. package/dist/common/jobs/purge.failed.jobs.job.d.ts.map +1 -0
  577. package/dist/common/jobs/purge.failed.jobs.job.js +42 -0
  578. package/dist/common/jobs/purge.failed.jobs.job.js.map +1 -0
  579. package/dist/common/jobs/set.scheduled.event.job.d.ts.map +1 -1
  580. package/dist/common/jobs/set.scheduled.event.job.js +9 -3
  581. package/dist/common/jobs/set.scheduled.event.job.js.map +1 -1
  582. package/dist/common/libraries/cron.schedule.resolver.d.ts +5 -0
  583. package/dist/common/libraries/cron.schedule.resolver.d.ts.map +1 -1
  584. package/dist/common/libraries/cron.schedule.resolver.js +56 -0
  585. package/dist/common/libraries/cron.schedule.resolver.js.map +1 -1
  586. package/dist/common/libraries/filter.operator.registry.d.ts +1 -0
  587. package/dist/common/libraries/filter.operator.registry.d.ts.map +1 -1
  588. package/dist/common/libraries/filter.operator.registry.js +8 -4
  589. package/dist/common/libraries/filter.operator.registry.js.map +1 -1
  590. package/dist/common/libraries/interval.schedule.resolver.d.ts.map +1 -1
  591. package/dist/common/libraries/interval.schedule.resolver.js +10 -0
  592. package/dist/common/libraries/interval.schedule.resolver.js.map +1 -1
  593. package/dist/common/libraries/predicate.set.d.ts.map +1 -1
  594. package/dist/common/libraries/predicate.set.js +7 -0
  595. package/dist/common/libraries/predicate.set.js.map +1 -1
  596. package/dist/common/middlewares/security.headers.middleware.d.ts +4 -0
  597. package/dist/common/middlewares/security.headers.middleware.d.ts.map +1 -0
  598. package/dist/common/middlewares/security.headers.middleware.js +27 -0
  599. package/dist/common/middlewares/security.headers.middleware.js.map +1 -0
  600. package/dist/common/pipes/strict.validation.pipe.d.ts +6 -0
  601. package/dist/common/pipes/strict.validation.pipe.d.ts.map +1 -0
  602. package/dist/common/pipes/strict.validation.pipe.js +49 -0
  603. package/dist/common/pipes/strict.validation.pipe.js.map +1 -0
  604. package/dist/common/queue.module.d.ts.map +1 -1
  605. package/dist/common/queue.module.js +11 -3
  606. package/dist/common/queue.module.js.map +1 -1
  607. package/dist/common/services/audit.service.d.ts.map +1 -1
  608. package/dist/common/services/audit.service.js +1 -2
  609. package/dist/common/services/audit.service.js.map +1 -1
  610. package/dist/common/services/cache.service.d.ts +8 -2
  611. package/dist/common/services/cache.service.d.ts.map +1 -1
  612. package/dist/common/services/cache.service.js +54 -21
  613. package/dist/common/services/cache.service.js.map +1 -1
  614. package/dist/common/services/encryption.service.d.ts +21 -5
  615. package/dist/common/services/encryption.service.d.ts.map +1 -1
  616. package/dist/common/services/encryption.service.js +129 -37
  617. package/dist/common/services/encryption.service.js.map +1 -1
  618. package/dist/common/services/list.filter.service.d.ts +2 -0
  619. package/dist/common/services/list.filter.service.d.ts.map +1 -1
  620. package/dist/common/services/list.filter.service.js +68 -18
  621. package/dist/common/services/list.filter.service.js.map +1 -1
  622. package/dist/common/services/queue.service.d.ts +13 -1
  623. package/dist/common/services/queue.service.d.ts.map +1 -1
  624. package/dist/common/services/queue.service.js +80 -11
  625. package/dist/common/services/queue.service.js.map +1 -1
  626. package/dist/common/services/remote.request.service.d.ts +10 -0
  627. package/dist/common/services/remote.request.service.d.ts.map +1 -1
  628. package/dist/common/services/remote.request.service.js +190 -15
  629. package/dist/common/services/remote.request.service.js.map +1 -1
  630. package/dist/common/services/system.property.service.d.ts +4 -0
  631. package/dist/common/services/system.property.service.d.ts.map +1 -1
  632. package/dist/common/services/system.property.service.js +62 -21
  633. package/dist/common/services/system.property.service.js.map +1 -1
  634. package/dist/common/subscribers/common.subscriber.d.ts +11 -1
  635. package/dist/common/subscribers/common.subscriber.d.ts.map +1 -1
  636. package/dist/common/subscribers/common.subscriber.js +98 -16
  637. package/dist/common/subscribers/common.subscriber.js.map +1 -1
  638. package/dist/common/subscribers/system.scheduled.task.subscriber.d.ts +1 -0
  639. package/dist/common/subscribers/system.scheduled.task.subscriber.d.ts.map +1 -1
  640. package/dist/common/subscribers/system.scheduled.task.subscriber.js +1 -0
  641. package/dist/common/subscribers/system.scheduled.task.subscriber.js.map +1 -1
  642. package/dist/common/types/bootstrap.types.d.ts +6 -0
  643. package/dist/common/types/bootstrap.types.d.ts.map +1 -0
  644. package/dist/common/types/bootstrap.types.js +3 -0
  645. package/dist/common/types/bootstrap.types.js.map +1 -0
  646. package/dist/common/types/cache.types.d.ts +1 -0
  647. package/dist/common/types/cache.types.d.ts.map +1 -1
  648. package/dist/common/types/cache.types.js +7 -2
  649. package/dist/common/types/cache.types.js.map +1 -1
  650. package/dist/common/types/database.event.type.d.ts +5 -0
  651. package/dist/common/types/database.event.type.d.ts.map +1 -1
  652. package/dist/common/types/encryption.types.d.ts +10 -0
  653. package/dist/common/types/encryption.types.d.ts.map +1 -0
  654. package/dist/common/types/encryption.types.js +3 -0
  655. package/dist/common/types/encryption.types.js.map +1 -0
  656. package/dist/common/types/monitoring.types.d.ts +17 -0
  657. package/dist/common/types/monitoring.types.d.ts.map +1 -1
  658. package/dist/common/types/paginated.result.types.d.ts +4 -0
  659. package/dist/common/types/paginated.result.types.d.ts.map +1 -1
  660. package/dist/common/types/paginated.result.types.js +10 -0
  661. package/dist/common/types/paginated.result.types.js.map +1 -1
  662. package/dist/common/types/queue.types.d.ts +8 -0
  663. package/dist/common/types/queue.types.d.ts.map +1 -1
  664. package/dist/common/types/remote.request.options.d.ts +6 -0
  665. package/dist/common/types/remote.request.options.d.ts.map +1 -1
  666. package/dist/common/types/security.headers.types.d.ts +6 -0
  667. package/dist/common/types/security.headers.types.d.ts.map +1 -0
  668. package/dist/common/types/security.headers.types.js +3 -0
  669. package/dist/common/types/security.headers.types.js.map +1 -0
  670. package/dist/common/validators/schedule.validator.d.ts.map +1 -1
  671. package/dist/common/validators/schedule.validator.js +4 -2
  672. package/dist/common/validators/schedule.validator.js.map +1 -1
  673. package/dist/constants/job.constants.d.ts +1 -0
  674. package/dist/constants/job.constants.d.ts.map +1 -1
  675. package/dist/constants/job.constants.js +1 -0
  676. package/dist/constants/job.constants.js.map +1 -1
  677. package/dist/constants/job.maps.d.ts +2 -0
  678. package/dist/constants/job.maps.d.ts.map +1 -1
  679. package/dist/constants/job.maps.js +2 -0
  680. package/dist/constants/job.maps.js.map +1 -1
  681. package/dist/constants/schedule.maps.d.ts +1 -0
  682. package/dist/constants/schedule.maps.d.ts.map +1 -1
  683. package/dist/constants/schedule.maps.js +13 -0
  684. package/dist/constants/schedule.maps.js.map +1 -1
  685. package/dist/database/config/data.source.config.d.ts +4 -0
  686. package/dist/database/config/data.source.config.d.ts.map +1 -1
  687. package/dist/database/config/data.source.config.js +24 -2
  688. package/dist/database/config/data.source.config.js.map +1 -1
  689. package/dist/document/controllers/document.controller.d.ts.map +1 -1
  690. package/dist/document/controllers/document.controller.js +18 -8
  691. package/dist/document/controllers/document.controller.js.map +1 -1
  692. package/dist/document/document.module.d.ts.map +1 -1
  693. package/dist/document/document.module.js +33 -4
  694. package/dist/document/document.module.js.map +1 -1
  695. package/dist/document/document.tokens.d.ts +2 -0
  696. package/dist/document/document.tokens.d.ts.map +1 -0
  697. package/dist/document/document.tokens.js +5 -0
  698. package/dist/document/document.tokens.js.map +1 -0
  699. package/dist/document/dtos/pdf.document.options.dto.d.ts +6 -0
  700. package/dist/document/dtos/pdf.document.options.dto.d.ts.map +1 -1
  701. package/dist/document/dtos/pdf.document.options.dto.js +4 -1
  702. package/dist/document/dtos/pdf.document.options.dto.js.map +1 -1
  703. package/dist/document/entities/document.entity.d.ts +1 -0
  704. package/dist/document/entities/document.entity.d.ts.map +1 -1
  705. package/dist/document/entities/document.entity.js +4 -0
  706. package/dist/document/entities/document.entity.js.map +1 -1
  707. package/dist/document/entities/document.upload.entity.d.ts +2 -0
  708. package/dist/document/entities/document.upload.entity.d.ts.map +1 -1
  709. package/dist/document/entities/document.upload.entity.js +9 -1
  710. package/dist/document/entities/document.upload.entity.js.map +1 -1
  711. package/dist/document/enums/document.default.enum.d.ts +15 -3
  712. package/dist/document/enums/document.default.enum.d.ts.map +1 -1
  713. package/dist/document/enums/document.default.enum.js +14 -2
  714. package/dist/document/enums/document.default.enum.js.map +1 -1
  715. package/dist/document/enums/document.tenancy.enum.d.ts +2 -0
  716. package/dist/document/enums/document.tenancy.enum.d.ts.map +1 -0
  717. package/dist/document/enums/document.tenancy.enum.js +5 -0
  718. package/dist/document/enums/document.tenancy.enum.js.map +1 -0
  719. package/dist/document/enums/file.type.enum.d.ts +12 -0
  720. package/dist/document/enums/file.type.enum.d.ts.map +1 -0
  721. package/dist/document/enums/file.type.enum.js +34 -0
  722. package/dist/document/enums/file.type.enum.js.map +1 -0
  723. package/dist/document/enums/pdf.default.enum.d.ts +4 -2
  724. package/dist/document/enums/pdf.default.enum.d.ts.map +1 -1
  725. package/dist/document/enums/pdf.default.enum.js +2 -0
  726. package/dist/document/enums/pdf.default.enum.js.map +1 -1
  727. package/dist/document/es6.classes.d.ts +4 -0
  728. package/dist/document/es6.classes.d.ts.map +1 -1
  729. package/dist/document/es6.classes.js +5 -0
  730. package/dist/document/es6.classes.js.map +1 -1
  731. package/dist/document/guards/document.authenticated.guard.d.ts +5 -0
  732. package/dist/document/guards/document.authenticated.guard.d.ts.map +1 -0
  733. package/dist/document/guards/document.authenticated.guard.js +27 -0
  734. package/dist/document/guards/document.authenticated.guard.js.map +1 -0
  735. package/dist/document/interceptors/document.upload.interceptor.d.ts +8 -0
  736. package/dist/document/interceptors/document.upload.interceptor.d.ts.map +1 -0
  737. package/dist/document/interceptors/document.upload.interceptor.js +52 -0
  738. package/dist/document/interceptors/document.upload.interceptor.js.map +1 -0
  739. package/dist/document/jobs/clean.orphan.documents.job.d.ts +1 -0
  740. package/dist/document/jobs/clean.orphan.documents.job.d.ts.map +1 -1
  741. package/dist/document/jobs/clean.orphan.documents.job.js +27 -14
  742. package/dist/document/jobs/clean.orphan.documents.job.js.map +1 -1
  743. package/dist/document/libraries/process.pdf.document.d.ts.map +1 -1
  744. package/dist/document/libraries/process.pdf.document.js +21 -9
  745. package/dist/document/libraries/process.pdf.document.js.map +1 -1
  746. package/dist/document/services/document.service.d.ts +25 -10
  747. package/dist/document/services/document.service.d.ts.map +1 -1
  748. package/dist/document/services/document.service.js +262 -81
  749. package/dist/document/services/document.service.js.map +1 -1
  750. package/dist/document/services/minio.bucket.document.service.d.ts +2 -3
  751. package/dist/document/services/minio.bucket.document.service.d.ts.map +1 -1
  752. package/dist/document/services/minio.bucket.document.service.js +10 -7
  753. package/dist/document/services/minio.bucket.document.service.js.map +1 -1
  754. package/dist/document/services/pdf.service.d.ts +4 -0
  755. package/dist/document/services/pdf.service.d.ts.map +1 -1
  756. package/dist/document/services/pdf.service.js +37 -2
  757. package/dist/document/services/pdf.service.js.map +1 -1
  758. package/dist/document/services/pdf.template.service.d.ts +4 -1
  759. package/dist/document/services/pdf.template.service.d.ts.map +1 -1
  760. package/dist/document/services/pdf.template.service.js +32 -9
  761. package/dist/document/services/pdf.template.service.js.map +1 -1
  762. package/dist/document/services/s3.bucket.document.service.d.ts +2 -3
  763. package/dist/document/services/s3.bucket.document.service.d.ts.map +1 -1
  764. package/dist/document/services/s3.bucket.document.service.js +12 -7
  765. package/dist/document/services/s3.bucket.document.service.js.map +1 -1
  766. package/dist/document/types/document.types.d.ts +61 -4
  767. package/dist/document/types/document.types.d.ts.map +1 -1
  768. package/dist/document/types/pdf.types.d.ts +17 -0
  769. package/dist/document/types/pdf.types.d.ts.map +1 -1
  770. package/dist/document/utilities/document.config.d.ts +9 -0
  771. package/dist/document/utilities/document.config.d.ts.map +1 -0
  772. package/dist/document/utilities/document.config.js +74 -0
  773. package/dist/document/utilities/document.config.js.map +1 -0
  774. package/dist/document/utilities/document.tenancy.d.ts +6 -0
  775. package/dist/document/utilities/document.tenancy.d.ts.map +1 -0
  776. package/dist/document/utilities/document.tenancy.js +29 -0
  777. package/dist/document/utilities/document.tenancy.js.map +1 -0
  778. package/dist/document/utilities/file.type.utility.d.ts +7 -0
  779. package/dist/document/utilities/file.type.utility.d.ts.map +1 -0
  780. package/dist/document/utilities/file.type.utility.js +105 -0
  781. package/dist/document/utilities/file.type.utility.js.map +1 -0
  782. package/dist/document/utilities/pdf.request.policy.d.ts +3 -0
  783. package/dist/document/utilities/pdf.request.policy.d.ts.map +1 -0
  784. package/dist/document/utilities/pdf.request.policy.js +37 -0
  785. package/dist/document/utilities/pdf.request.policy.js.map +1 -0
  786. package/dist/global/enums/environment.enum.d.ts +6 -0
  787. package/dist/global/enums/environment.enum.d.ts.map +1 -0
  788. package/dist/global/enums/environment.enum.js +47 -0
  789. package/dist/global/enums/environment.enum.js.map +1 -0
  790. package/dist/global/enums/redaction.enum.d.ts +11 -0
  791. package/dist/global/enums/redaction.enum.d.ts.map +1 -0
  792. package/dist/global/enums/redaction.enum.js +31 -0
  793. package/dist/global/enums/redaction.enum.js.map +1 -0
  794. package/dist/global/filters/global.exception.filter.d.ts +4 -1
  795. package/dist/global/filters/global.exception.filter.d.ts.map +1 -1
  796. package/dist/global/filters/global.exception.filter.js +91 -25
  797. package/dist/global/filters/global.exception.filter.js.map +1 -1
  798. package/dist/global/types/environment.types.d.ts +15 -0
  799. package/dist/global/types/environment.types.d.ts.map +1 -0
  800. package/dist/global/types/environment.types.js +3 -0
  801. package/dist/global/types/environment.types.js.map +1 -0
  802. package/dist/global/types/exception.filter.types.d.ts +9 -0
  803. package/dist/global/types/exception.filter.types.d.ts.map +1 -1
  804. package/dist/global/types/migration.utility.types.d.ts +5 -0
  805. package/dist/global/types/migration.utility.types.d.ts.map +1 -1
  806. package/dist/global/types/redaction.types.d.ts +5 -0
  807. package/dist/global/types/redaction.types.d.ts.map +1 -0
  808. package/dist/global/types/redaction.types.js +3 -0
  809. package/dist/global/types/redaction.types.js.map +1 -0
  810. package/dist/global/types/seeder.utility.types.d.ts +3 -0
  811. package/dist/global/types/seeder.utility.types.d.ts.map +1 -1
  812. package/dist/global/utilities/environment.util.d.ts +12 -0
  813. package/dist/global/utilities/environment.util.d.ts.map +1 -0
  814. package/dist/global/utilities/environment.util.js +74 -0
  815. package/dist/global/utilities/environment.util.js.map +1 -0
  816. package/dist/global/utilities/hash.util.d.ts +2 -0
  817. package/dist/global/utilities/hash.util.d.ts.map +1 -1
  818. package/dist/global/utilities/hash.util.js +12 -0
  819. package/dist/global/utilities/hash.util.js.map +1 -1
  820. package/dist/global/utilities/migration.utility.d.ts +12 -7
  821. package/dist/global/utilities/migration.utility.d.ts.map +1 -1
  822. package/dist/global/utilities/migration.utility.js +49 -15
  823. package/dist/global/utilities/migration.utility.js.map +1 -1
  824. package/dist/global/utilities/redaction.util.d.ts +7 -0
  825. package/dist/global/utilities/redaction.util.d.ts.map +1 -0
  826. package/dist/global/utilities/redaction.util.js +64 -0
  827. package/dist/global/utilities/redaction.util.js.map +1 -0
  828. package/dist/global/utilities/schedule.utility.d.ts +3 -0
  829. package/dist/global/utilities/schedule.utility.d.ts.map +1 -1
  830. package/dist/global/utilities/schedule.utility.js +14 -0
  831. package/dist/global/utilities/schedule.utility.js.map +1 -1
  832. package/dist/global/utilities/seeder.utility.d.ts +3 -1
  833. package/dist/global/utilities/seeder.utility.d.ts.map +1 -1
  834. package/dist/global/utilities/seeder.utility.js +11 -8
  835. package/dist/global/utilities/seeder.utility.js.map +1 -1
  836. package/dist/index.d.ts +67 -1
  837. package/dist/index.d.ts.map +1 -1
  838. package/dist/index.js +126 -1
  839. package/dist/index.js.map +1 -1
  840. package/dist/main.js +7 -13
  841. package/dist/main.js.map +1 -1
  842. package/dist/migrations/1749600000001.CreateSysAdminUsersTable.d.ts.map +1 -1
  843. package/dist/migrations/1749600000001.CreateSysAdminUsersTable.js +3 -0
  844. package/dist/migrations/1749600000001.CreateSysAdminUsersTable.js.map +1 -1
  845. package/dist/migrations/1749600000002.CreateSysTenantsTable.d.ts.map +1 -1
  846. package/dist/migrations/1749600000002.CreateSysTenantsTable.js +2 -0
  847. package/dist/migrations/1749600000002.CreateSysTenantsTable.js.map +1 -1
  848. package/dist/migrations/1749600000003.CreateSysUsersTable.d.ts.map +1 -1
  849. package/dist/migrations/1749600000003.CreateSysUsersTable.js +3 -1
  850. package/dist/migrations/1749600000003.CreateSysUsersTable.js.map +1 -1
  851. package/dist/migrations/1749600000004.CreateSysRolesTable.d.ts.map +1 -1
  852. package/dist/migrations/1749600000004.CreateSysRolesTable.js +1 -0
  853. package/dist/migrations/1749600000004.CreateSysRolesTable.js.map +1 -1
  854. package/dist/migrations/1749600000006.CreateSysUserRolesJoinTable.d.ts.map +1 -1
  855. package/dist/migrations/1749600000006.CreateSysUserRolesJoinTable.js +1 -0
  856. package/dist/migrations/1749600000006.CreateSysUserRolesJoinTable.js.map +1 -1
  857. package/dist/migrations/1749600000010.CreateSysPropertiesTable.d.ts.map +1 -1
  858. package/dist/migrations/1749600000010.CreateSysPropertiesTable.js +1 -0
  859. package/dist/migrations/1749600000010.CreateSysPropertiesTable.js.map +1 -1
  860. package/dist/migrations/1749600000011.CreateSysNotificationsTable.d.ts.map +1 -1
  861. package/dist/migrations/1749600000011.CreateSysNotificationsTable.js +1 -0
  862. package/dist/migrations/1749600000011.CreateSysNotificationsTable.js.map +1 -1
  863. package/dist/migrations/1749600000013.CreateSysDocumentUploadsTable.d.ts.map +1 -1
  864. package/dist/migrations/1749600000013.CreateSysDocumentUploadsTable.js +12 -0
  865. package/dist/migrations/1749600000013.CreateSysDocumentUploadsTable.js.map +1 -1
  866. package/dist/migrations/1749600000014.CreateSysRefreshTokensTable.d.ts.map +1 -1
  867. package/dist/migrations/1749600000014.CreateSysRefreshTokensTable.js +5 -1
  868. package/dist/migrations/1749600000014.CreateSysRefreshTokensTable.js.map +1 -1
  869. package/dist/migrations/1749600000016.CreateSysUserDeviceTokensTable.d.ts.map +1 -1
  870. package/dist/migrations/1749600000016.CreateSysUserDeviceTokensTable.js +1 -0
  871. package/dist/migrations/1749600000016.CreateSysUserDeviceTokensTable.js.map +1 -1
  872. package/dist/migrations/1749600000017.CreateSysApiKeysTable.d.ts.map +1 -1
  873. package/dist/migrations/1749600000017.CreateSysApiKeysTable.js +1 -1
  874. package/dist/migrations/1749600000017.CreateSysApiKeysTable.js.map +1 -1
  875. package/dist/migrations/1749600000020.CreateSysEmailTemplatesTable.d.ts.map +1 -1
  876. package/dist/migrations/1749600000020.CreateSysEmailTemplatesTable.js +1 -0
  877. package/dist/migrations/1749600000020.CreateSysEmailTemplatesTable.js.map +1 -1
  878. package/dist/migrations/1749600000022.CreateSysAdminRolesTable.d.ts.map +1 -1
  879. package/dist/migrations/1749600000022.CreateSysAdminRolesTable.js +1 -0
  880. package/dist/migrations/1749600000022.CreateSysAdminRolesTable.js.map +1 -1
  881. package/dist/migrations/1749600000023.CreateSysAdminUserRolesJoinTable.d.ts.map +1 -1
  882. package/dist/migrations/1749600000023.CreateSysAdminUserRolesJoinTable.js +1 -0
  883. package/dist/migrations/1749600000023.CreateSysAdminUserRolesJoinTable.js.map +1 -1
  884. package/dist/migrations/1749600000024.CreateSysAuthSessionsTable.d.ts.map +1 -1
  885. package/dist/migrations/1749600000024.CreateSysAuthSessionsTable.js +1 -1
  886. package/dist/migrations/1749600000024.CreateSysAuthSessionsTable.js.map +1 -1
  887. package/dist/migrations/1749600000025.CreateSysScopesTable.d.ts.map +1 -1
  888. package/dist/migrations/1749600000025.CreateSysScopesTable.js +1 -0
  889. package/dist/migrations/1749600000025.CreateSysScopesTable.js.map +1 -1
  890. package/dist/migrations/1749600000026.CreateSysApiScopesTable.d.ts.map +1 -1
  891. package/dist/migrations/1749600000026.CreateSysApiScopesTable.js +1 -0
  892. package/dist/migrations/1749600000026.CreateSysApiScopesTable.js.map +1 -1
  893. package/dist/migrations/1749600000027.CreateSysTenantScopesTable.d.ts.map +1 -1
  894. package/dist/migrations/1749600000027.CreateSysTenantScopesTable.js +1 -0
  895. package/dist/migrations/1749600000027.CreateSysTenantScopesTable.js.map +1 -1
  896. package/dist/migrations/1749600000028.CreateSysDocumentsTable.d.ts.map +1 -1
  897. package/dist/migrations/1749600000028.CreateSysDocumentsTable.js +11 -1
  898. package/dist/migrations/1749600000028.CreateSysDocumentsTable.js.map +1 -1
  899. package/dist/migrations/1749600000029.CreateSysPdfTemplatesTable.d.ts.map +1 -1
  900. package/dist/migrations/1749600000029.CreateSysPdfTemplatesTable.js +1 -0
  901. package/dist/migrations/1749600000029.CreateSysPdfTemplatesTable.js.map +1 -1
  902. package/dist/migrations/1749600000030.CreateSysTenantUsersTable.d.ts.map +1 -1
  903. package/dist/migrations/1749600000030.CreateSysTenantUsersTable.js +1 -0
  904. package/dist/migrations/1749600000030.CreateSysTenantUsersTable.js.map +1 -1
  905. package/dist/migrations/1749600000031.CreateSysTenantInvitationsTable.d.ts.map +1 -1
  906. package/dist/migrations/1749600000031.CreateSysTenantInvitationsTable.js +10 -1
  907. package/dist/migrations/1749600000031.CreateSysTenantInvitationsTable.js.map +1 -1
  908. package/dist/migrations/1749600000032.CreateSysEmailVerificationTokensTable.d.ts +6 -0
  909. package/dist/migrations/1749600000032.CreateSysEmailVerificationTokensTable.d.ts.map +1 -0
  910. package/dist/migrations/1749600000032.CreateSysEmailVerificationTokensTable.js +30 -0
  911. package/dist/migrations/1749600000032.CreateSysEmailVerificationTokensTable.js.map +1 -0
  912. package/dist/notification/dtos/email.notification.options.dto.d.ts +2 -0
  913. package/dist/notification/dtos/email.notification.options.dto.d.ts.map +1 -1
  914. package/dist/notification/dtos/email.notification.options.dto.js.map +1 -1
  915. package/dist/notification/enums/email.notification.default.enum.d.ts +9 -1
  916. package/dist/notification/enums/email.notification.default.enum.d.ts.map +1 -1
  917. package/dist/notification/enums/email.notification.default.enum.js +10 -1
  918. package/dist/notification/enums/email.notification.default.enum.js.map +1 -1
  919. package/dist/notification/enums/notification.default.enum.d.ts +7 -0
  920. package/dist/notification/enums/notification.default.enum.d.ts.map +1 -0
  921. package/dist/notification/enums/notification.default.enum.js +11 -0
  922. package/dist/notification/enums/notification.default.enum.js.map +1 -0
  923. package/dist/notification/enums/template.pattern.enum.d.ts +4 -0
  924. package/dist/notification/enums/template.pattern.enum.d.ts.map +1 -0
  925. package/dist/notification/enums/template.pattern.enum.js +7 -0
  926. package/dist/notification/enums/template.pattern.enum.js.map +1 -0
  927. package/dist/notification/es6.classes.d.ts +3 -1
  928. package/dist/notification/es6.classes.d.ts.map +1 -1
  929. package/dist/notification/es6.classes.js +4 -0
  930. package/dist/notification/es6.classes.js.map +1 -1
  931. package/dist/notification/jobs/email.verification.mail.job.d.ts +14 -0
  932. package/dist/notification/jobs/email.verification.mail.job.d.ts.map +1 -0
  933. package/dist/notification/jobs/email.verification.mail.job.js +59 -0
  934. package/dist/notification/jobs/email.verification.mail.job.js.map +1 -0
  935. package/dist/notification/jobs/purge.email.logs.job.d.ts +11 -0
  936. package/dist/notification/jobs/purge.email.logs.job.d.ts.map +1 -0
  937. package/dist/notification/jobs/purge.email.logs.job.js +37 -0
  938. package/dist/notification/jobs/purge.email.logs.job.js.map +1 -0
  939. package/dist/notification/jobs/tenant.onboarded.mail.job.d.ts +1 -4
  940. package/dist/notification/jobs/tenant.onboarded.mail.job.d.ts.map +1 -1
  941. package/dist/notification/jobs/tenant.onboarded.mail.job.js +6 -17
  942. package/dist/notification/jobs/tenant.onboarded.mail.job.js.map +1 -1
  943. package/dist/notification/jobs/tenant.user.invited.mail.job.d.ts +8 -2
  944. package/dist/notification/jobs/tenant.user.invited.mail.job.d.ts.map +1 -1
  945. package/dist/notification/jobs/tenant.user.invited.mail.job.js +44 -5
  946. package/dist/notification/jobs/tenant.user.invited.mail.job.js.map +1 -1
  947. package/dist/notification/jobs/tenant.user.onboarded.mail.job.d.ts +1 -4
  948. package/dist/notification/jobs/tenant.user.onboarded.mail.job.d.ts.map +1 -1
  949. package/dist/notification/jobs/tenant.user.onboarded.mail.job.js +6 -17
  950. package/dist/notification/jobs/tenant.user.onboarded.mail.job.js.map +1 -1
  951. package/dist/notification/libraries/process.email.notification.d.ts.map +1 -1
  952. package/dist/notification/libraries/process.email.notification.js +1 -0
  953. package/dist/notification/libraries/process.email.notification.js.map +1 -1
  954. package/dist/notification/notification.module.d.ts.map +1 -1
  955. package/dist/notification/notification.module.js +11 -3
  956. package/dist/notification/notification.module.js.map +1 -1
  957. package/dist/notification/services/email.notification.service.d.ts +8 -1
  958. package/dist/notification/services/email.notification.service.d.ts.map +1 -1
  959. package/dist/notification/services/email.notification.service.js +58 -20
  960. package/dist/notification/services/email.notification.service.js.map +1 -1
  961. package/dist/notification/services/notification.service.d.ts +8 -2
  962. package/dist/notification/services/notification.service.d.ts.map +1 -1
  963. package/dist/notification/services/notification.service.js +53 -24
  964. package/dist/notification/services/notification.service.js.map +1 -1
  965. package/dist/notification/types/email.notification.types.d.ts +5 -1
  966. package/dist/notification/types/email.notification.types.d.ts.map +1 -1
  967. package/dist/notification/types/template.types.d.ts +9 -0
  968. package/dist/notification/types/template.types.d.ts.map +1 -0
  969. package/dist/notification/types/template.types.js +3 -0
  970. package/dist/notification/types/template.types.js.map +1 -0
  971. package/dist/notification/utilities/email.log.utility.d.ts +2 -0
  972. package/dist/notification/utilities/email.log.utility.d.ts.map +1 -0
  973. package/dist/notification/utilities/email.log.utility.js +12 -0
  974. package/dist/notification/utilities/email.log.utility.js.map +1 -0
  975. package/dist/notification/utilities/server.environment.utility.d.ts +2 -0
  976. package/dist/notification/utilities/server.environment.utility.d.ts.map +1 -0
  977. package/dist/notification/utilities/server.environment.utility.js +10 -0
  978. package/dist/notification/utilities/server.environment.utility.js.map +1 -0
  979. package/dist/notification/utilities/template.data.utility.d.ts +4 -0
  980. package/dist/notification/utilities/template.data.utility.d.ts.map +1 -0
  981. package/dist/notification/utilities/template.data.utility.js +48 -0
  982. package/dist/notification/utilities/template.data.utility.js.map +1 -0
  983. package/dist/notification/utilities/template.url.utility.d.ts +3 -0
  984. package/dist/notification/utilities/template.url.utility.d.ts.map +1 -0
  985. package/dist/notification/utilities/template.url.utility.js +36 -0
  986. package/dist/notification/utilities/template.url.utility.js.map +1 -0
  987. package/dist/tenant/es6.classes.d.ts +2 -1
  988. package/dist/tenant/es6.classes.d.ts.map +1 -1
  989. package/dist/tenant/es6.classes.js +2 -1
  990. package/dist/tenant/es6.classes.js.map +1 -1
  991. package/dist/tenant/helpers/tenant.job.context.d.ts +3 -0
  992. package/dist/tenant/helpers/tenant.job.context.d.ts.map +1 -0
  993. package/dist/tenant/helpers/tenant.job.context.js +16 -0
  994. package/dist/tenant/helpers/tenant.job.context.js.map +1 -0
  995. package/dist/tenant/middlewares/tenant.context.middleware.d.ts.map +1 -1
  996. package/dist/tenant/middlewares/tenant.context.middleware.js +7 -3
  997. package/dist/tenant/middlewares/tenant.context.middleware.js.map +1 -1
  998. package/dist/tenant/repositories/tenant.scoped.repository.d.ts +30 -0
  999. package/dist/tenant/repositories/tenant.scoped.repository.d.ts.map +1 -0
  1000. package/dist/tenant/repositories/tenant.scoped.repository.js +137 -0
  1001. package/dist/tenant/repositories/tenant.scoped.repository.js.map +1 -0
  1002. package/dist/tenant/services/tenant.context.service.d.ts +8 -1
  1003. package/dist/tenant/services/tenant.context.service.d.ts.map +1 -1
  1004. package/dist/tenant/services/tenant.context.service.js +31 -7
  1005. package/dist/tenant/services/tenant.context.service.js.map +1 -1
  1006. package/dist/tenant/services/tenant.service.d.ts +2 -1
  1007. package/dist/tenant/services/tenant.service.d.ts.map +1 -1
  1008. package/dist/tenant/services/tenant.service.js +13 -0
  1009. package/dist/tenant/services/tenant.service.js.map +1 -1
  1010. package/dist/tenant/subscribers/tenant.scope.subscriber.d.ts +13 -0
  1011. package/dist/tenant/subscribers/tenant.scope.subscriber.d.ts.map +1 -0
  1012. package/dist/tenant/subscribers/tenant.scope.subscriber.js +56 -0
  1013. package/dist/tenant/subscribers/tenant.scope.subscriber.js.map +1 -0
  1014. package/dist/tenant/tenant.module.d.ts +3 -2
  1015. package/dist/tenant/tenant.module.d.ts.map +1 -1
  1016. package/dist/tenant/tenant.module.js +18 -2
  1017. package/dist/tenant/tenant.module.js.map +1 -1
  1018. package/dist/tenant/types/tenant.types.d.ts +2 -0
  1019. package/dist/tenant/types/tenant.types.d.ts.map +1 -1
  1020. package/dist/tenant/utilities/tenant.revocation.d.ts +5 -0
  1021. package/dist/tenant/utilities/tenant.revocation.d.ts.map +1 -0
  1022. package/dist/tenant/utilities/tenant.revocation.js +17 -0
  1023. package/dist/tenant/utilities/tenant.revocation.js.map +1 -0
  1024. package/package.json +9 -6
@@ -18,76 +18,109 @@ const common_1 = require("@nestjs/common");
18
18
  const ioredis_1 = __importDefault(require("ioredis"));
19
19
  const encryption_service_1 = require("./encryption.service");
20
20
  const cache_types_1 = require("../types/cache.types");
21
+ const cache_default_enum_1 = require("../enums/cache.default.enum");
21
22
  let CacheService = CacheService_1 = class CacheService {
22
- constructor(encryptionService, connection) {
23
+ constructor(encryptionService, connection, keyPrefix = process.env.CACHE_KEY_PREFIX ?? '') {
23
24
  this.encryptionService = encryptionService;
24
25
  this.logger = new common_1.Logger(CacheService_1.name);
25
- this.redis = new ioredis_1.default({ lazyConnect: true, ...connection });
26
- this.redis.on('error', (err) => this.logger.error('Redis cache error', err));
26
+ const { keyPrefix: connectionPrefix, ...options } = connection;
27
+ this.prefix = keyPrefix || connectionPrefix || '';
28
+ this.redis = new ioredis_1.default({ lazyConnect: true, ...options });
29
+ this.redis.on('error', (err) => this.logger.error(`Redis cache error: ${err.message}`));
27
30
  }
28
31
  async set(key, data, options) {
29
32
  const encrypt = options?.encrypt ?? false;
30
33
  const ttlSecs = (0, cache_types_1.ttlToSeconds)(options?.ttl);
31
34
  let storedData = data;
32
35
  if (encrypt)
33
- storedData = this.encryptionService.encryptObject(data);
36
+ storedData = this.encryptionService.encryptObject(data, this.k(key));
34
37
  const envelope = {
35
38
  data: storedData,
36
39
  options: { isEncrypted: encrypt },
37
40
  };
38
- await this.redis.set(key, JSON.stringify(envelope), 'EX', ttlSecs);
41
+ await this.redis.set(this.k(key), JSON.stringify(envelope), 'EX', ttlSecs);
39
42
  }
40
43
  async get(key) {
41
- const raw = await this.redis.get(key);
44
+ const raw = await this.redis.get(this.k(key));
42
45
  if (!raw)
43
46
  return null;
44
47
  try {
45
48
  const envelope = JSON.parse(raw);
46
49
  if (envelope.options?.isEncrypted)
47
- return this.encryptionService.decryptObject(envelope.data);
50
+ return this.decryptCached(envelope.data, key);
48
51
  return envelope.data;
49
52
  }
50
- catch (err) {
51
- this.logger.error(`Failed to parse cache value for key "${key}"`, err);
53
+ catch {
54
+ this.logger.error(`Failed to read cache value for key "${key}"`);
52
55
  return null;
53
56
  }
54
57
  }
55
58
  async del(key) {
56
- await this.redis.del(key);
59
+ await this.redis.del(this.k(key));
57
60
  }
58
61
  async exists(key) {
59
- return (await this.redis.exists(key)) > 0;
62
+ return (await this.redis.exists(this.k(key))) > 0;
60
63
  }
61
64
  async ttl(key) {
62
- return this.redis.ttl(key);
65
+ return this.redis.ttl(this.k(key));
63
66
  }
64
67
  async keys(pattern) {
65
- return this.redis.keys(pattern);
68
+ const found = [];
69
+ for await (const batch of this.scan(pattern))
70
+ found.push(...batch.map((key) => key.slice(this.prefix.length)));
71
+ return found;
66
72
  }
67
73
  async flushByPattern(pattern) {
68
- const keys = await this.redis.keys(pattern);
69
- if (keys.length > 0)
70
- await this.redis.del(...keys);
74
+ if (!pattern || (/^\*+$/.test(pattern) && !this.prefix))
75
+ throw new Error('flushByPattern refuses a match-all pattern without a CACHE_KEY_PREFIX');
76
+ let removed = 0;
77
+ for await (const batch of this.scan(pattern)) {
78
+ if (batch.length)
79
+ removed += await this.redis.unlink(...batch);
80
+ }
81
+ return removed;
71
82
  }
72
83
  async setRaw(key, value, ttlSeconds) {
73
- if (ttlSeconds)
74
- await this.redis.set(key, value, 'EX', ttlSeconds);
84
+ if (ttlSeconds !== undefined)
85
+ await this.redis.set(this.k(key), value, 'EX', Math.max(1, Math.ceil(ttlSeconds) || 1));
75
86
  else
76
- await this.redis.set(key, value);
87
+ await this.redis.set(this.k(key), value);
77
88
  }
78
89
  async getRaw(key) {
79
- return this.redis.get(key);
90
+ return this.redis.get(this.k(key));
91
+ }
92
+ async increment(key, windowSeconds) {
93
+ const ttl = Math.max(1, Math.ceil(windowSeconds) || 1);
94
+ const count = await this.redis.eval("local c = redis.call('INCR', KEYS[1]) if c == 1 then redis.call('EXPIRE', KEYS[1], ARGV[1]) end return c", 1, this.k(key), ttl);
95
+ return Number(count);
80
96
  }
81
97
  getRedisClient() {
82
98
  return this.redis;
83
99
  }
100
+ getKeyPrefix() {
101
+ return this.prefix;
102
+ }
84
103
  async onModuleDestroy() {
85
104
  await this.redis.quit();
86
105
  }
106
+ k(key) {
107
+ return `${this.prefix}${key}`;
108
+ }
109
+ decryptCached(cipherText, key) {
110
+ return this.encryptionService.decryptObject(cipherText, this.k(key));
111
+ }
112
+ async *scan(pattern) {
113
+ let cursor = '0';
114
+ do {
115
+ const [next, keys] = await this.redis.scan(cursor, 'MATCH', this.k(pattern), 'COUNT', cache_default_enum_1.CacheDefault.SCAN_COUNT);
116
+ cursor = next;
117
+ yield keys;
118
+ } while (cursor !== '0');
119
+ }
87
120
  };
88
121
  exports.CacheService = CacheService;
89
122
  exports.CacheService = CacheService = CacheService_1 = __decorate([
90
123
  (0, common_1.Injectable)(),
91
- __metadata("design:paramtypes", [encryption_service_1.EncryptionService, Object])
124
+ __metadata("design:paramtypes", [encryption_service_1.EncryptionService, Object, String])
92
125
  ], CacheService);
93
126
  //# sourceMappingURL=cache.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cache.service.js","sourceRoot":"","sources":["../../../src/common/services/cache.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cache.service.js","sourceRoot":"","sources":["../../../src/common/services/cache.service.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,25 @@
1
+ import type { EncryptionOptions } from '../types/encryption.types';
2
+ export declare class EncryptionException extends Error {
3
+ constructor(message?: string);
4
+ }
1
5
  export declare class EncryptionService {
2
6
  private readonly logger;
3
- private get secret();
4
- encrypt(plainText: string): string;
5
- decrypt(cipherText: string): string;
6
- encryptObject<T>(data: T): string;
7
- decryptObject<T>(cipherText: string): T;
7
+ private readonly current;
8
+ private readonly keys;
9
+ private readonly legacyKeyCache;
10
+ constructor(options?: EncryptionOptions);
11
+ encrypt(plainText: string, aad?: string): string;
12
+ decrypt(cipherText: string, aad?: string): string;
13
+ encryptObject<T>(data: T, aad?: string): string;
14
+ decryptObject<T>(cipherText: string, aad?: string): T;
15
+ needsReencryption(cipherText: string): boolean;
16
+ reencrypt(cipherText: string, aad?: string): string;
17
+ private static deriveMaster;
18
+ private messageKey;
19
+ private decryptV1;
20
+ private decryptLegacy;
21
+ private legacyKey;
22
+ private split;
23
+ private open;
8
24
  }
9
25
  //# sourceMappingURL=encryption.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"encryption.service.d.ts","sourceRoot":"","sources":["../../../src/common/services/encryption.service.ts"],"names":[],"mappings":"AAYA,qBACa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsC;IAE7D,OAAO,KAAK,MAAM,GAKjB;IAED,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAoBlC,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IA6BnC,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,MAAM;IAIjC,aAAa,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,CAAC;CAGxC"}
1
+ {"version":3,"file":"encryption.service.d.ts","sourceRoot":"","sources":["../../../src/common/services/encryption.service.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,iBAAiB,EAAa,MAAM,2BAA2B,CAAC;AAG9E,qBAAa,mBAAoB,SAAQ,KAAK;gBAChC,OAAO,SAAgC;CAIpD;AAQD,qBACa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsC;IAC7D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAY;IACpC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAc;IAEnC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6B;gBAGlB,OAAO,CAAC,EAAE,iBAAiB;IAkBrE,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM;IA0BhD,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM;IAYjD,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM;IAI/C,aAAa,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC;IAKrD,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAO9C,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM;IAInD,OAAO,CAAC,MAAM,CAAC,YAAY;IAa3B,OAAO,CAAC,UAAU;IAYlB,OAAO,CAAC,SAAS;IASjB,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,SAAS;IAejB,OAAO,CAAC,KAAK;IAab,OAAO,CAAC,IAAI;CAkBb"}
@@ -5,73 +5,165 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
8
14
  var EncryptionService_1;
9
15
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.EncryptionService = void 0;
16
+ exports.EncryptionService = exports.EncryptionException = void 0;
11
17
  const common_1 = require("@nestjs/common");
12
18
  const crypto_1 = require("crypto");
13
19
  const encryption_enum_1 = require("../enums/encryption.enum");
20
+ class EncryptionException extends Error {
21
+ constructor(message = 'Encryption operation failed') {
22
+ super(message);
23
+ this.name = 'EncryptionException';
24
+ }
25
+ }
26
+ exports.EncryptionException = EncryptionException;
14
27
  let EncryptionService = EncryptionService_1 = class EncryptionService {
15
- constructor() {
28
+ constructor(options) {
16
29
  this.logger = new common_1.Logger(EncryptionService_1.name);
17
- }
18
- get secret() {
19
- const secret = process.env.ENCRYPTION_SECRET;
30
+ this.legacyKeyCache = new Map();
31
+ const secret = options?.secret ?? process.env.ENCRYPTION_SECRET;
32
+ const previousSecret = options?.previousSecret ?? process.env.ENCRYPTION_SECRET_PREVIOUS;
20
33
  if (!secret)
21
- throw new Error('ENCRYPTION_SECRET environment variable is not set');
22
- return secret;
34
+ throw new Error('ENCRYPTION_SECRET is not set');
35
+ if (Buffer.byteLength(secret, 'utf8') < encryption_enum_1.EncryptionConfig.MIN_SECRET_BYTES)
36
+ throw new Error(`ENCRYPTION_SECRET must be at least ${encryption_enum_1.EncryptionConfig.MIN_SECRET_BYTES} bytes`);
37
+ this.current = EncryptionService_1.deriveMaster(secret);
38
+ this.keys = [this.current];
39
+ if (previousSecret && previousSecret !== secret)
40
+ this.keys.push(EncryptionService_1.deriveMaster(previousSecret));
23
41
  }
24
- encrypt(plainText) {
42
+ encrypt(plainText, aad) {
25
43
  try {
26
44
  const salt = (0, crypto_1.randomBytes)(encryption_enum_1.EncryptionConfig.SALT_LENGTH);
27
45
  const iv = (0, crypto_1.randomBytes)(encryption_enum_1.EncryptionConfig.IV_LENGTH);
28
- const key = (0, crypto_1.scryptSync)(this.secret, salt, encryption_enum_1.EncryptionConfig.KEY_LENGTH);
46
+ const key = this.messageKey(this.current.key, salt);
29
47
  const cipher = (0, crypto_1.createCipheriv)(encryption_enum_1.EncryptionAlgorithm.AES_256_GCM, key, iv, {
30
48
  authTagLength: encryption_enum_1.EncryptionConfig.AUTH_TAG_LENGTH,
31
49
  });
50
+ if (aad !== undefined)
51
+ cipher.setAAD(Buffer.from(aad, 'utf8'));
32
52
  const encrypted = Buffer.concat([
33
53
  cipher.update(plainText, 'utf8'),
34
54
  cipher.final(),
35
55
  ]);
36
- const authTag = cipher.getAuthTag();
37
- return Buffer.concat([salt, iv, authTag, encrypted]).toString('base64');
56
+ const blob = Buffer.concat([
57
+ salt,
58
+ iv,
59
+ cipher.getAuthTag(),
60
+ encrypted,
61
+ ]).toString('base64');
62
+ return `${encryption_enum_1.EncryptionFormat.V1}:${this.current.id}:${blob}`;
38
63
  }
39
- catch (err) {
40
- this.logger.error('Encryption failed', err);
41
- throw err;
64
+ catch {
65
+ this.logger.error('Encryption failed');
66
+ throw new EncryptionException();
42
67
  }
43
68
  }
44
- decrypt(cipherText) {
69
+ decrypt(cipherText, aad) {
45
70
  try {
46
- const buf = Buffer.from(cipherText, 'base64');
47
- const s = encryption_enum_1.EncryptionConfig.SALT_LENGTH;
48
- const i = encryption_enum_1.EncryptionConfig.IV_LENGTH;
49
- const a = encryption_enum_1.EncryptionConfig.AUTH_TAG_LENGTH;
50
- const salt = buf.subarray(0, s);
51
- const iv = buf.subarray(s, s + i);
52
- const authTag = buf.subarray(s + i, s + i + a);
53
- const encrypted = buf.subarray(s + i + a);
54
- const key = (0, crypto_1.scryptSync)(this.secret, salt, encryption_enum_1.EncryptionConfig.KEY_LENGTH);
55
- const decipher = (0, crypto_1.createDecipheriv)(encryption_enum_1.EncryptionAlgorithm.AES_256_GCM, key, iv, {
56
- authTagLength: a,
57
- });
58
- decipher.setAuthTag(authTag);
59
- return (decipher.update(encrypted, undefined, 'utf8') + decipher.final('utf8'));
71
+ if (typeof cipherText !== 'string')
72
+ throw new Error('not a string');
73
+ if (cipherText.startsWith(`${encryption_enum_1.EncryptionFormat.V1}:`))
74
+ return this.decryptV1(cipherText, aad);
75
+ return this.decryptLegacy(cipherText);
76
+ }
77
+ catch {
78
+ this.logger.warn('Decryption failed');
79
+ throw new EncryptionException('Decryption failed');
80
+ }
81
+ }
82
+ encryptObject(data, aad) {
83
+ return this.encrypt(JSON.stringify(data), aad);
84
+ }
85
+ decryptObject(cipherText, aad) {
86
+ return JSON.parse(this.decrypt(cipherText, aad));
87
+ }
88
+ needsReencryption(cipherText) {
89
+ return !cipherText?.startsWith(`${encryption_enum_1.EncryptionFormat.V1}:${this.current.id}:`);
90
+ }
91
+ reencrypt(cipherText, aad) {
92
+ return this.encrypt(this.decrypt(cipherText, aad), aad);
93
+ }
94
+ static deriveMaster(secret) {
95
+ const key = (0, crypto_1.scryptSync)(secret, encryption_enum_1.EncryptionKdf.MASTER_SALT, encryption_enum_1.EncryptionConfig.KEY_LENGTH);
96
+ const id = (0, crypto_1.createHash)('sha256')
97
+ .update(key)
98
+ .digest('hex')
99
+ .slice(0, encryption_enum_1.EncryptionConfig.KEY_ID_LENGTH);
100
+ return { id, secret, key };
101
+ }
102
+ messageKey(master, salt) {
103
+ return Buffer.from((0, crypto_1.hkdfSync)('sha256', master, salt, encryption_enum_1.EncryptionKdf.HKDF_INFO, encryption_enum_1.EncryptionConfig.KEY_LENGTH));
104
+ }
105
+ decryptV1(cipherText, aad) {
106
+ const [, keyId, blob] = cipherText.split(':');
107
+ const master = this.keys.find((candidate) => candidate.id === keyId);
108
+ if (!master || !blob)
109
+ throw new Error('unknown key');
110
+ const parts = this.split(Buffer.from(blob, 'base64'));
111
+ return this.open(this.messageKey(master.key, parts.salt), parts, aad);
112
+ }
113
+ decryptLegacy(cipherText) {
114
+ const parts = this.split(Buffer.from(cipherText, 'base64'));
115
+ let lastError;
116
+ for (const master of this.keys) {
117
+ try {
118
+ return this.open(this.legacyKey(master, parts.salt), parts);
119
+ }
120
+ catch (error) {
121
+ lastError = error;
122
+ }
60
123
  }
61
- catch (err) {
62
- this.logger.error('Decryption failed', err);
63
- throw err;
124
+ throw lastError;
125
+ }
126
+ legacyKey(master, salt) {
127
+ const cacheKey = `${master.id}:${salt.toString('base64')}`;
128
+ const cached = this.legacyKeyCache.get(cacheKey);
129
+ if (cached) {
130
+ this.legacyKeyCache.delete(cacheKey);
131
+ this.legacyKeyCache.set(cacheKey, cached);
132
+ return cached;
64
133
  }
134
+ const key = (0, crypto_1.scryptSync)(master.secret, salt, encryption_enum_1.EncryptionConfig.KEY_LENGTH);
135
+ this.legacyKeyCache.set(cacheKey, key);
136
+ if (this.legacyKeyCache.size > encryption_enum_1.EncryptionConfig.LEGACY_KEY_CACHE_SIZE)
137
+ this.legacyKeyCache.delete(this.legacyKeyCache.keys().next().value);
138
+ return key;
65
139
  }
66
- encryptObject(data) {
67
- return this.encrypt(JSON.stringify(data));
140
+ split(buf) {
141
+ const s = encryption_enum_1.EncryptionConfig.SALT_LENGTH;
142
+ const i = encryption_enum_1.EncryptionConfig.IV_LENGTH;
143
+ const a = encryption_enum_1.EncryptionConfig.AUTH_TAG_LENGTH;
144
+ if (buf.length < s + i + a)
145
+ throw new Error('truncated');
146
+ return {
147
+ salt: buf.subarray(0, s),
148
+ iv: buf.subarray(s, s + i),
149
+ authTag: buf.subarray(s + i, s + i + a),
150
+ encrypted: buf.subarray(s + i + a),
151
+ };
68
152
  }
69
- decryptObject(cipherText) {
70
- return JSON.parse(this.decrypt(cipherText));
153
+ open(key, parts, aad) {
154
+ const decipher = (0, crypto_1.createDecipheriv)(encryption_enum_1.EncryptionAlgorithm.AES_256_GCM, key, parts.iv, { authTagLength: encryption_enum_1.EncryptionConfig.AUTH_TAG_LENGTH });
155
+ if (aad !== undefined)
156
+ decipher.setAAD(Buffer.from(aad, 'utf8'));
157
+ decipher.setAuthTag(parts.authTag);
158
+ return (decipher.update(parts.encrypted, undefined, 'utf8') +
159
+ decipher.final('utf8'));
71
160
  }
72
161
  };
73
162
  exports.EncryptionService = EncryptionService;
74
163
  exports.EncryptionService = EncryptionService = EncryptionService_1 = __decorate([
75
- (0, common_1.Injectable)()
164
+ (0, common_1.Injectable)(),
165
+ __param(0, (0, common_1.Optional)()),
166
+ __param(0, (0, common_1.Inject)(encryption_enum_1.ENCRYPTION_OPTIONS)),
167
+ __metadata("design:paramtypes", [Object])
76
168
  ], EncryptionService);
77
169
  //# sourceMappingURL=encryption.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"encryption.service.js","sourceRoot":"","sources":["../../../src/common/services/encryption.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"encryption.service.js","sourceRoot":"","sources":["../../../src/common/services/encryption.service.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,8 @@ export declare class ListFilterService {
7
7
  private constructFinalQuery;
8
8
  private constructOrderByStatement;
9
9
  private constructFilterConditions;
10
+ private bindParams;
11
+ private assertPayloadShape;
10
12
  private constructSoftDeleteCondition;
11
13
  private constructSearchCondition;
12
14
  private resolveColumn;
@@ -1 +1 @@
1
- {"version":3,"file":"list.filter.service.d.ts","sourceRoot":"","sources":["../../../src/common/services/list.filter.service.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAEL,gBAAgB,EAEhB,iBAAiB,EAElB,MAAM,qBAAqB,CAAC;AAiD7B,qBACa,iBAAiB;IAChB,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,UAAU;IAE7C,OAAO,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAuCpE,OAAO,CAAC,mBAAmB;IAyC3B,OAAO,CAAC,yBAAyB;IAgCjC,OAAO,CAAC,yBAAyB;IAkCjC,OAAO,CAAC,4BAA4B;IAoBpC,OAAO,CAAC,wBAAwB;IAuBhC,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,qBAAqB;IAW7B,OAAO,CAAC,oBAAoB;IA4B5B,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,eAAe;CAuDxB"}
1
+ {"version":3,"file":"list.filter.service.d.ts","sourceRoot":"","sources":["../../../src/common/services/list.filter.service.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAEL,gBAAgB,EAEhB,iBAAiB,EAElB,MAAM,qBAAqB,CAAC;AAuC7B,qBACa,iBAAiB;IAChB,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,UAAU;IAE7C,OAAO,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA6CpE,OAAO,CAAC,mBAAmB;IAyC3B,OAAO,CAAC,yBAAyB;IAgCjC,OAAO,CAAC,yBAAyB;IA+BjC,OAAO,CAAC,UAAU;IAWlB,OAAO,CAAC,kBAAkB;IA4C1B,OAAO,CAAC,4BAA4B;IAqBpC,OAAO,CAAC,wBAAwB;IAyBhC,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,qBAAqB;IAW7B,OAAO,CAAC,oBAAoB;IAgC5B,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,eAAe;CA0DxB"}
@@ -19,13 +19,7 @@ const sql_default_enum_1 = require("../enums/sql.default.enum");
19
19
  const sql_service_1 = require("./sql.service");
20
20
  const filter_operator_registry_1 = require("../libraries/filter.operator.registry");
21
21
  const filter_operator_defaults_1 = require("../libraries/filter.operator.defaults");
22
- const SEARCH_PARAM = 'search_str';
23
- const SOFT_DELETE_COLUMN = 'deleted_at';
24
- const UUID_PATTERN = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
25
- function escapeLikePattern(value) {
26
- return value.replace(/[\\%_]/g, (character) => `\\${character}`);
27
- }
28
- const CALENDAR_DATE_PATTERN = /^\d{4}-\d{2}-\d{2}$/;
22
+ const list_filter_default_enum_1 = require("../enums/list.filter.default.enum");
29
23
  function isRealCalendarDate(value) {
30
24
  const [year, month, day] = value.split('-').map(Number);
31
25
  const parsed = new Date(Date.UTC(year, month - 1, day));
@@ -38,6 +32,7 @@ let ListFilterService = class ListFilterService {
38
32
  this.sqlService = sqlService;
39
33
  }
40
34
  async execute(request) {
35
+ this.assertPayloadShape(request.payload);
41
36
  const context = {
42
37
  ...request,
43
38
  conditions: [],
@@ -48,7 +43,9 @@ let ListFilterService = class ListFilterService {
48
43
  this.constructSoftDeleteCondition(context);
49
44
  const finalQuery = this.constructFinalQuery(context);
50
45
  const page = Math.max(context.payload?.page ?? sql_default_enum_1.SqlDefault.PAGE, 1);
51
- const limit = Math.min(Math.max(context.payload?.limit ?? sql_default_enum_1.SqlDefault.LIMIT, 1), context.config.maxLimit ?? sql_default_enum_1.SqlDefault.MAX_LIMIT);
46
+ if (page > sql_default_enum_1.SqlDefault.MAX_PAGE)
47
+ throw new operation_exception_1.OperationException(`page must not exceed ${sql_default_enum_1.SqlDefault.MAX_PAGE}`);
48
+ const limit = Math.min(Math.max(context.payload?.limit ?? sql_default_enum_1.SqlDefault.LIMIT, 1), Math.min(context.config.maxLimit ?? sql_default_enum_1.SqlDefault.MAX_LIMIT, sql_default_enum_1.SqlDefault.MAX_LIMIT));
52
49
  const result = await this.sqlService.paginate(finalQuery, context.filterParams, { page, limit });
53
50
  return {
54
51
  records: result.data,
@@ -102,22 +99,68 @@ let ListFilterService = class ListFilterService {
102
99
  context.filterParams = { ...context.predicates.bindings };
103
100
  for (const [index, filter] of (context.payload?.filters ?? []).entries()) {
104
101
  const column = this.resolveColumn(context, filter.identifier);
105
- const buildClause = filter_operator_registry_1.FILTER_OPERATORS[filter.operator];
102
+ const buildClause = Object.prototype.hasOwnProperty.call(filter_operator_registry_1.FILTER_OPERATORS, filter.operator)
103
+ ? filter_operator_registry_1.FILTER_OPERATORS[filter.operator]
104
+ : undefined;
106
105
  if (!buildClause)
107
106
  throw new operation_exception_1.OperationException(`Unsupported filter operator: ${filter.operator}`);
108
107
  this.assertOperatorAllowed(column, filter.operator);
109
108
  const { clause, params } = buildClause(column.identifier, `filter_${index}`, this.transformFilterValue(filter, column));
110
109
  context.conditions.push(clause);
111
- Object.assign(context.filterParams, params);
110
+ this.bindParams(context.filterParams, params);
111
+ }
112
+ }
113
+ bindParams(target, params) {
114
+ for (const [name, value] of Object.entries(params)) {
115
+ if (Object.prototype.hasOwnProperty.call(target, name))
116
+ throw new operation_exception_1.OperationException(`Bind parameter "${name}" collides with a server predicate`);
117
+ target[name] = value;
118
+ }
119
+ }
120
+ assertPayloadShape(payload) {
121
+ if (payload == null)
122
+ return;
123
+ if (typeof payload !== 'object')
124
+ throw new operation_exception_1.OperationException('Invalid list payload');
125
+ const { page, limit, str, filters, sorts } = payload;
126
+ if (page !== undefined && page !== null && !Number.isInteger(page))
127
+ throw new operation_exception_1.OperationException('page must be an integer');
128
+ if (limit !== undefined && limit !== null && !Number.isInteger(limit))
129
+ throw new operation_exception_1.OperationException('limit must be an integer');
130
+ if (str !== undefined && str !== null) {
131
+ if (typeof str !== 'string')
132
+ throw new operation_exception_1.OperationException('str must be a string');
133
+ if (str.length > sql_default_enum_1.SqlDefault.MAX_SEARCH_LENGTH)
134
+ throw new operation_exception_1.OperationException('str is too long');
135
+ }
136
+ if (filters !== undefined && filters !== null) {
137
+ if (!Array.isArray(filters) || filters.length > sql_default_enum_1.SqlDefault.MAX_FILTERS)
138
+ throw new operation_exception_1.OperationException('Invalid filters');
139
+ for (const filter of filters)
140
+ if (!filter ||
141
+ typeof filter.identifier !== 'string' ||
142
+ typeof filter.operator !== 'string' ||
143
+ (filter.value !== undefined &&
144
+ filter.value !== null &&
145
+ typeof filter.value !== 'string') ||
146
+ (filter.value?.length ?? 0) > sql_default_enum_1.SqlDefault.MAX_FILTER_VALUE_LENGTH)
147
+ throw new operation_exception_1.OperationException('Invalid filter');
148
+ }
149
+ if (sorts !== undefined && sorts !== null) {
150
+ if (!Array.isArray(sorts) || sorts.length > sql_default_enum_1.SqlDefault.MAX_SORTS)
151
+ throw new operation_exception_1.OperationException('Invalid sorts');
152
+ for (const sort of sorts)
153
+ if (!sort || typeof sort.identifier !== 'string')
154
+ throw new operation_exception_1.OperationException('Invalid sort');
112
155
  }
113
156
  }
114
157
  constructSoftDeleteCondition(context) {
115
158
  if (context.config.includeDeleted)
116
159
  return;
117
- const column = context.config.columns.find((candidate) => candidate.identifier === SOFT_DELETE_COLUMN);
160
+ const column = context.config.columns.find((candidate) => candidate.identifier === list_filter_default_enum_1.ListFilterDefault.SOFT_DELETE_COLUMN);
118
161
  if (!column)
119
162
  return;
120
- context.conditions.push(`${SOFT_DELETE_COLUMN} IS NULL`);
163
+ context.conditions.push(`${list_filter_default_enum_1.ListFilterDefault.SOFT_DELETE_COLUMN} IS NULL`);
121
164
  }
122
165
  constructSearchCondition(context) {
123
166
  const term = context.payload?.str?.trim();
@@ -127,10 +170,12 @@ let ListFilterService = class ListFilterService {
127
170
  if (!columns.length)
128
171
  throw new operation_exception_1.OperationException('This list does not support free-text search');
129
172
  const clause = columns
130
- .map((column) => `CAST(${column.identifier} AS TEXT) ILIKE :${SEARCH_PARAM} ESCAPE '\\'`)
173
+ .map((column) => `CAST(${column.identifier} AS TEXT) ILIKE :${list_filter_default_enum_1.ListFilterDefault.SEARCH_PARAM} ESCAPE '\\'`)
131
174
  .join(' or ');
132
175
  context.conditions.push(clause);
133
- context.filterParams[SEARCH_PARAM] = `%${escapeLikePattern(term)}%`;
176
+ this.bindParams(context.filterParams, {
177
+ [list_filter_default_enum_1.ListFilterDefault.SEARCH_PARAM]: `%${(0, filter_operator_registry_1.escapeLikePattern)(term)}%`,
178
+ });
134
179
  }
135
180
  resolveColumn(context, identifier) {
136
181
  const column = context.config.columns.find((candidate) => candidate.identifier === identifier);
@@ -153,8 +198,12 @@ let ListFilterService = class ListFilterService {
153
198
  switch (filter.operator) {
154
199
  case filter_operator_enum_1.FilterOperatorEnum.IS_NULL:
155
200
  return !['false', '0', ''].includes((filter.value ?? '').trim().toLowerCase());
156
- case filter_operator_enum_1.FilterOperatorEnum.IN:
157
- return this.splitFilterValue(filter).map((part) => this.castFilterValue(part, column));
201
+ case filter_operator_enum_1.FilterOperatorEnum.IN: {
202
+ const parts = this.splitFilterValue(filter);
203
+ if (parts.length > sql_default_enum_1.SqlDefault.MAX_IN_VALUES)
204
+ throw new operation_exception_1.OperationException(`Filter on ${filter.identifier} accepts at most ${sql_default_enum_1.SqlDefault.MAX_IN_VALUES} values`);
205
+ return parts.map((part) => this.castFilterValue(part, column));
206
+ }
158
207
  case filter_operator_enum_1.FilterOperatorEnum.BETWEEN: {
159
208
  const parts = this.splitFilterValue(filter);
160
209
  if (parts.length !== 2)
@@ -178,7 +227,7 @@ let ListFilterService = class ListFilterService {
178
227
  const valueType = column.type ?? filter_value_type_enum_1.FilterValueTypeEnum.STRING;
179
228
  switch (valueType) {
180
229
  case filter_value_type_enum_1.FilterValueTypeEnum.UUID: {
181
- if (!UUID_PATTERN.test(raw?.trim() ?? ''))
230
+ if (!list_filter_default_enum_1.ListFilterPattern.UUID.test(raw?.trim() ?? ''))
182
231
  throw new operation_exception_1.OperationException(`Invalid uuid filter value on ${column.identifier}`);
183
232
  return raw.trim();
184
233
  }
@@ -192,7 +241,8 @@ let ListFilterService = class ListFilterService {
192
241
  }
193
242
  case filter_value_type_enum_1.FilterValueTypeEnum.DATE: {
194
243
  const value = raw?.trim() ?? '';
195
- if (!CALENDAR_DATE_PATTERN.test(value) || !isRealCalendarDate(value))
244
+ if (!list_filter_default_enum_1.ListFilterPattern.CALENDAR_DATE.test(value) ||
245
+ !isRealCalendarDate(value))
196
246
  throw new operation_exception_1.OperationException(`Invalid date filter value on ${column.identifier}: expected YYYY-MM-DD`);
197
247
  return value;
198
248
  }