@neohm/nestend 6.3.0 → 6.5.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 (453) hide show
  1. package/README.md +45 -3
  2. package/dist/admin/admin.module.d.ts.map +1 -1
  3. package/dist/admin/admin.module.js +3 -0
  4. package/dist/admin/admin.module.js.map +1 -1
  5. package/dist/admin/controllers/admin.payment.controller.d.ts +12 -0
  6. package/dist/admin/controllers/admin.payment.controller.d.ts.map +1 -0
  7. package/dist/admin/controllers/admin.payment.controller.js +77 -0
  8. package/dist/admin/controllers/admin.payment.controller.js.map +1 -0
  9. package/dist/admin/controllers/admin.report.controller.d.ts +25 -0
  10. package/dist/admin/controllers/admin.report.controller.d.ts.map +1 -0
  11. package/dist/admin/controllers/admin.report.controller.js +145 -0
  12. package/dist/admin/controllers/admin.report.controller.js.map +1 -0
  13. package/dist/admin/controllers/admin.tenant.report.controller.d.ts +20 -0
  14. package/dist/admin/controllers/admin.tenant.report.controller.d.ts.map +1 -0
  15. package/dist/admin/controllers/admin.tenant.report.controller.js +92 -0
  16. package/dist/admin/controllers/admin.tenant.report.controller.js.map +1 -0
  17. package/dist/admin/controllers/admin.webhook.event.controller.d.ts +16 -0
  18. package/dist/admin/controllers/admin.webhook.event.controller.d.ts.map +1 -0
  19. package/dist/admin/controllers/admin.webhook.event.controller.js +117 -0
  20. package/dist/admin/controllers/admin.webhook.event.controller.js.map +1 -0
  21. package/dist/admin/dtos/add.plan.dto.d.ts +4 -0
  22. package/dist/admin/dtos/add.plan.dto.d.ts.map +1 -1
  23. package/dist/admin/dtos/add.plan.dto.js +36 -0
  24. package/dist/admin/dtos/add.plan.dto.js.map +1 -1
  25. package/dist/admin/dtos/add.report.dto.d.ts +35 -0
  26. package/dist/admin/dtos/add.report.dto.d.ts.map +1 -0
  27. package/dist/admin/dtos/add.report.dto.js +216 -0
  28. package/dist/admin/dtos/add.report.dto.js.map +1 -0
  29. package/dist/admin/dtos/assign.tenant.report.dto.d.ts +9 -0
  30. package/dist/admin/dtos/assign.tenant.report.dto.d.ts.map +1 -0
  31. package/dist/admin/dtos/assign.tenant.report.dto.js +57 -0
  32. package/dist/admin/dtos/assign.tenant.report.dto.js.map +1 -0
  33. package/dist/admin/dtos/payment.list.dto.d.ts +4 -0
  34. package/dist/admin/dtos/payment.list.dto.d.ts.map +1 -0
  35. package/dist/admin/dtos/payment.list.dto.js +8 -0
  36. package/dist/admin/dtos/payment.list.dto.js.map +1 -0
  37. package/dist/admin/dtos/report.catalogue.list.dto.d.ts +4 -0
  38. package/dist/admin/dtos/report.catalogue.list.dto.d.ts.map +1 -0
  39. package/dist/admin/dtos/report.catalogue.list.dto.js +8 -0
  40. package/dist/admin/dtos/report.catalogue.list.dto.js.map +1 -0
  41. package/dist/admin/dtos/set.report.script.dto.d.ts +6 -0
  42. package/dist/admin/dtos/set.report.script.dto.d.ts.map +1 -0
  43. package/dist/admin/dtos/set.report.script.dto.js +43 -0
  44. package/dist/admin/dtos/set.report.script.dto.js.map +1 -0
  45. package/dist/admin/dtos/tenant.report.list.dto.d.ts +6 -0
  46. package/dist/admin/dtos/tenant.report.list.dto.d.ts.map +1 -0
  47. package/dist/admin/dtos/tenant.report.list.dto.js +34 -0
  48. package/dist/admin/dtos/tenant.report.list.dto.js.map +1 -0
  49. package/dist/admin/dtos/webhook.event.list.dto.d.ts +4 -0
  50. package/dist/admin/dtos/webhook.event.list.dto.d.ts.map +1 -0
  51. package/dist/admin/dtos/webhook.event.list.dto.js +8 -0
  52. package/dist/admin/dtos/webhook.event.list.dto.js.map +1 -0
  53. package/dist/admin/es6.classes.d.ts +20 -5
  54. package/dist/admin/es6.classes.d.ts.map +1 -1
  55. package/dist/admin/es6.classes.js +45 -1
  56. package/dist/admin/es6.classes.js.map +1 -1
  57. package/dist/admin/libraries/payment.list.processor.d.ts +11 -0
  58. package/dist/admin/libraries/payment.list.processor.d.ts.map +1 -0
  59. package/dist/admin/libraries/payment.list.processor.js +68 -0
  60. package/dist/admin/libraries/payment.list.processor.js.map +1 -0
  61. package/dist/admin/libraries/plan.data.processor.d.ts +2 -0
  62. package/dist/admin/libraries/plan.data.processor.d.ts.map +1 -1
  63. package/dist/admin/libraries/plan.data.processor.js +24 -0
  64. package/dist/admin/libraries/plan.data.processor.js.map +1 -1
  65. package/dist/admin/libraries/plan.list.processor.d.ts.map +1 -1
  66. package/dist/admin/libraries/plan.list.processor.js +7 -0
  67. package/dist/admin/libraries/plan.list.processor.js.map +1 -1
  68. package/dist/admin/libraries/report.catalogue.list.processor.d.ts +11 -0
  69. package/dist/admin/libraries/report.catalogue.list.processor.d.ts.map +1 -0
  70. package/dist/admin/libraries/report.catalogue.list.processor.js +82 -0
  71. package/dist/admin/libraries/report.catalogue.list.processor.js.map +1 -0
  72. package/dist/admin/libraries/report.data.processor.d.ts +20 -0
  73. package/dist/admin/libraries/report.data.processor.d.ts.map +1 -0
  74. package/dist/admin/libraries/report.data.processor.js +203 -0
  75. package/dist/admin/libraries/report.data.processor.js.map +1 -0
  76. package/dist/admin/libraries/report.script.data.processor.d.ts +20 -0
  77. package/dist/admin/libraries/report.script.data.processor.d.ts.map +1 -0
  78. package/dist/admin/libraries/report.script.data.processor.js +109 -0
  79. package/dist/admin/libraries/report.script.data.processor.js.map +1 -0
  80. package/dist/admin/libraries/tenant.report.data.processor.d.ts +20 -0
  81. package/dist/admin/libraries/tenant.report.data.processor.d.ts.map +1 -0
  82. package/dist/admin/libraries/tenant.report.data.processor.js +134 -0
  83. package/dist/admin/libraries/tenant.report.data.processor.js.map +1 -0
  84. package/dist/admin/libraries/tenant.report.list.processor.d.ts +13 -0
  85. package/dist/admin/libraries/tenant.report.list.processor.d.ts.map +1 -0
  86. package/dist/admin/libraries/tenant.report.list.processor.js +68 -0
  87. package/dist/admin/libraries/tenant.report.list.processor.js.map +1 -0
  88. package/dist/admin/libraries/webhook.event.list.processor.d.ts +11 -0
  89. package/dist/admin/libraries/webhook.event.list.processor.d.ts.map +1 -0
  90. package/dist/admin/libraries/webhook.event.list.processor.js +46 -0
  91. package/dist/admin/libraries/webhook.event.list.processor.js.map +1 -0
  92. package/dist/admin/services/admin.report.service.d.ts +9 -0
  93. package/dist/admin/services/admin.report.service.d.ts.map +1 -0
  94. package/dist/admin/services/admin.report.service.js +75 -0
  95. package/dist/admin/services/admin.report.service.js.map +1 -0
  96. package/dist/app.module.d.ts.map +1 -1
  97. package/dist/app.module.js +2 -0
  98. package/dist/app.module.js.map +1 -1
  99. package/dist/auth/auth.module.d.ts.map +1 -1
  100. package/dist/auth/auth.module.js +7 -1
  101. package/dist/auth/auth.module.js.map +1 -1
  102. package/dist/auth/controllers/auth.controller.d.ts +12 -2
  103. package/dist/auth/controllers/auth.controller.d.ts.map +1 -1
  104. package/dist/auth/controllers/auth.controller.js +43 -6
  105. package/dist/auth/controllers/auth.controller.js.map +1 -1
  106. package/dist/auth/controllers/tenant.payment.controller.d.ts +10 -0
  107. package/dist/auth/controllers/tenant.payment.controller.d.ts.map +1 -0
  108. package/dist/auth/controllers/tenant.payment.controller.js +52 -0
  109. package/dist/auth/controllers/tenant.payment.controller.js.map +1 -0
  110. package/dist/auth/controllers/tenant.plan.controller.d.ts +8 -1
  111. package/dist/auth/controllers/tenant.plan.controller.d.ts.map +1 -1
  112. package/dist/auth/controllers/tenant.plan.controller.js +57 -7
  113. package/dist/auth/controllers/tenant.plan.controller.js.map +1 -1
  114. package/dist/auth/dtos/change.password.dto.d.ts +1 -0
  115. package/dist/auth/dtos/change.password.dto.d.ts.map +1 -1
  116. package/dist/auth/dtos/change.password.dto.js +10 -0
  117. package/dist/auth/dtos/change.password.dto.js.map +1 -1
  118. package/dist/auth/dtos/checkout.plan.dto.d.ts +5 -0
  119. package/dist/auth/dtos/checkout.plan.dto.d.ts.map +1 -0
  120. package/dist/auth/dtos/checkout.plan.dto.js +43 -0
  121. package/dist/auth/dtos/checkout.plan.dto.js.map +1 -0
  122. package/dist/auth/dtos/request.password.change.dto.d.ts +4 -0
  123. package/dist/auth/dtos/request.password.change.dto.d.ts.map +1 -0
  124. package/dist/auth/dtos/request.password.change.dto.js +26 -0
  125. package/dist/auth/dtos/request.password.change.dto.js.map +1 -0
  126. package/dist/auth/entities/payment.entity.d.ts +17 -0
  127. package/dist/auth/entities/payment.entity.d.ts.map +1 -0
  128. package/dist/auth/entities/payment.entity.js +74 -0
  129. package/dist/auth/entities/payment.entity.js.map +1 -0
  130. package/dist/auth/entities/plan.entity.d.ts +4 -0
  131. package/dist/auth/entities/plan.entity.d.ts.map +1 -1
  132. package/dist/auth/entities/plan.entity.js +20 -0
  133. package/dist/auth/entities/plan.entity.js.map +1 -1
  134. package/dist/auth/enums/password.change.default.enum.d.ts +6 -0
  135. package/dist/auth/enums/password.change.default.enum.d.ts.map +1 -0
  136. package/dist/auth/enums/password.change.default.enum.js +10 -0
  137. package/dist/auth/enums/password.change.default.enum.js.map +1 -0
  138. package/dist/auth/enums/payment.enum.d.ts +42 -0
  139. package/dist/auth/enums/payment.enum.d.ts.map +1 -0
  140. package/dist/auth/enums/payment.enum.js +49 -0
  141. package/dist/auth/enums/payment.enum.js.map +1 -0
  142. package/dist/auth/enums/tenant.plan.enum.d.ts +6 -1
  143. package/dist/auth/enums/tenant.plan.enum.d.ts.map +1 -1
  144. package/dist/auth/enums/tenant.plan.enum.js +7 -1
  145. package/dist/auth/enums/tenant.plan.enum.js.map +1 -1
  146. package/dist/auth/es6.classes.d.ts +6 -3
  147. package/dist/auth/es6.classes.d.ts.map +1 -1
  148. package/dist/auth/es6.classes.js +6 -0
  149. package/dist/auth/es6.classes.js.map +1 -1
  150. package/dist/auth/processors/change.password.data.processor.d.ts +4 -1
  151. package/dist/auth/processors/change.password.data.processor.d.ts.map +1 -1
  152. package/dist/auth/processors/change.password.data.processor.js +26 -1
  153. package/dist/auth/processors/change.password.data.processor.js.map +1 -1
  154. package/dist/auth/processors/request.password.change.data.processor.d.ts +18 -0
  155. package/dist/auth/processors/request.password.change.data.processor.d.ts.map +1 -0
  156. package/dist/auth/processors/request.password.change.data.processor.js +56 -0
  157. package/dist/auth/processors/request.password.change.data.processor.js.map +1 -0
  158. package/dist/auth/services/payment.service.d.ts +40 -0
  159. package/dist/auth/services/payment.service.d.ts.map +1 -0
  160. package/dist/auth/services/payment.service.js +334 -0
  161. package/dist/auth/services/payment.service.js.map +1 -0
  162. package/dist/auth/services/tenant.plan.service.d.ts.map +1 -1
  163. package/dist/auth/services/tenant.plan.service.js +3 -0
  164. package/dist/auth/services/tenant.plan.service.js.map +1 -1
  165. package/dist/auth/types/auth.types.d.ts +7 -1
  166. package/dist/auth/types/auth.types.d.ts.map +1 -1
  167. package/dist/auth/types/payment.types.d.ts +45 -0
  168. package/dist/auth/types/payment.types.d.ts.map +1 -0
  169. package/dist/auth/types/payment.types.js +3 -0
  170. package/dist/auth/types/payment.types.js.map +1 -0
  171. package/dist/auth/types/tenant.plan.types.d.ts +5 -1
  172. package/dist/auth/types/tenant.plan.types.d.ts.map +1 -1
  173. package/dist/auth/utilities/tenant.plans.js +1 -1
  174. package/dist/auth/utilities/tenant.plans.js.map +1 -1
  175. package/dist/common/common.module.d.ts.map +1 -1
  176. package/dist/common/common.module.js +3 -0
  177. package/dist/common/common.module.js.map +1 -1
  178. package/dist/common/dtos/otp.generation.dto.d.ts +9 -0
  179. package/dist/common/dtos/otp.generation.dto.d.ts.map +1 -0
  180. package/dist/common/dtos/otp.generation.dto.js +55 -0
  181. package/dist/common/dtos/otp.generation.dto.js.map +1 -0
  182. package/dist/common/dtos/otp.verification.dto.d.ts +5 -0
  183. package/dist/common/dtos/otp.verification.dto.d.ts.map +1 -0
  184. package/dist/common/dtos/otp.verification.dto.js +25 -0
  185. package/dist/common/dtos/otp.verification.dto.js.map +1 -0
  186. package/dist/common/entities/system.otp.entity.d.ts +13 -0
  187. package/dist/common/entities/system.otp.entity.d.ts.map +1 -0
  188. package/dist/common/entities/system.otp.entity.js +55 -0
  189. package/dist/common/entities/system.otp.entity.js.map +1 -0
  190. package/dist/common/enums/encryption.enum.d.ts +2 -1
  191. package/dist/common/enums/encryption.enum.d.ts.map +1 -1
  192. package/dist/common/enums/encryption.enum.js +1 -0
  193. package/dist/common/enums/encryption.enum.js.map +1 -1
  194. package/dist/common/enums/otp.enum.d.ts +21 -0
  195. package/dist/common/enums/otp.enum.d.ts.map +1 -0
  196. package/dist/common/enums/otp.enum.js +29 -0
  197. package/dist/common/enums/otp.enum.js.map +1 -0
  198. package/dist/common/es6.classes.d.ts +4 -2
  199. package/dist/common/es6.classes.d.ts.map +1 -1
  200. package/dist/common/es6.classes.js +7 -0
  201. package/dist/common/es6.classes.js.map +1 -1
  202. package/dist/common/services/encryption.service.d.ts +1 -0
  203. package/dist/common/services/encryption.service.d.ts.map +1 -1
  204. package/dist/common/services/encryption.service.js +4 -0
  205. package/dist/common/services/encryption.service.js.map +1 -1
  206. package/dist/common/services/list.filter.service.d.ts.map +1 -1
  207. package/dist/common/services/list.filter.service.js +1 -1
  208. package/dist/common/services/list.filter.service.js.map +1 -1
  209. package/dist/common/services/otp.service.d.ts +16 -0
  210. package/dist/common/services/otp.service.d.ts.map +1 -0
  211. package/dist/common/services/otp.service.js +107 -0
  212. package/dist/common/services/otp.service.js.map +1 -0
  213. package/dist/common/subscribers/common.subscriber.d.ts +1 -0
  214. package/dist/common/subscribers/common.subscriber.d.ts.map +1 -1
  215. package/dist/common/subscribers/common.subscriber.js +4 -1
  216. package/dist/common/subscribers/common.subscriber.js.map +1 -1
  217. package/dist/common/validators/otp.patterns.d.ts +2 -0
  218. package/dist/common/validators/otp.patterns.d.ts.map +1 -0
  219. package/dist/common/validators/otp.patterns.js +5 -0
  220. package/dist/common/validators/otp.patterns.js.map +1 -0
  221. package/dist/constants/entity.constants.d.ts +8 -0
  222. package/dist/constants/entity.constants.d.ts.map +1 -1
  223. package/dist/constants/entity.constants.js +8 -0
  224. package/dist/constants/entity.constants.js.map +1 -1
  225. package/dist/constants/entity.maps.d.ts +16 -0
  226. package/dist/constants/entity.maps.d.ts.map +1 -1
  227. package/dist/constants/entity.maps.js +16 -0
  228. package/dist/constants/entity.maps.js.map +1 -1
  229. package/dist/document/services/document.service.d.ts.map +1 -1
  230. package/dist/document/services/document.service.js +6 -1
  231. package/dist/document/services/document.service.js.map +1 -1
  232. package/dist/global/utilities/environment.util.d.ts +1 -0
  233. package/dist/global/utilities/environment.util.d.ts.map +1 -1
  234. package/dist/global/utilities/environment.util.js +5 -0
  235. package/dist/global/utilities/environment.util.js.map +1 -1
  236. package/dist/global/utilities/migration.utility.d.ts +1 -0
  237. package/dist/global/utilities/migration.utility.d.ts.map +1 -1
  238. package/dist/global/utilities/migration.utility.js +8 -2
  239. package/dist/global/utilities/migration.utility.js.map +1 -1
  240. package/dist/global/utilities/seeder.utility.d.ts.map +1 -1
  241. package/dist/global/utilities/seeder.utility.js +1 -1
  242. package/dist/global/utilities/seeder.utility.js.map +1 -1
  243. package/dist/index.d.ts +26 -1
  244. package/dist/index.d.ts.map +1 -1
  245. package/dist/index.js +56 -5
  246. package/dist/index.js.map +1 -1
  247. package/dist/migrations/1749600000041.CreateSysPlansTable.d.ts.map +1 -1
  248. package/dist/migrations/1749600000041.CreateSysPlansTable.js +10 -0
  249. package/dist/migrations/1749600000041.CreateSysPlansTable.js.map +1 -1
  250. package/dist/migrations/1749600000045.CreateSysPaymentsTable.d.ts +6 -0
  251. package/dist/migrations/1749600000045.CreateSysPaymentsTable.d.ts.map +1 -0
  252. package/dist/migrations/1749600000045.CreateSysPaymentsTable.js +44 -0
  253. package/dist/migrations/1749600000045.CreateSysPaymentsTable.js.map +1 -0
  254. package/dist/migrations/1749600000046.CreateSysWebhookEventsTable.d.ts +6 -0
  255. package/dist/migrations/1749600000046.CreateSysWebhookEventsTable.d.ts.map +1 -0
  256. package/dist/migrations/1749600000046.CreateSysWebhookEventsTable.js +32 -0
  257. package/dist/migrations/1749600000046.CreateSysWebhookEventsTable.js.map +1 -0
  258. package/dist/migrations/1749600000047.CreateSysOtpsTable.d.ts +6 -0
  259. package/dist/migrations/1749600000047.CreateSysOtpsTable.d.ts.map +1 -0
  260. package/dist/migrations/1749600000047.CreateSysOtpsTable.js +36 -0
  261. package/dist/migrations/1749600000047.CreateSysOtpsTable.js.map +1 -0
  262. package/dist/migrations/1749600000048.SeedOtpActivityConstants.d.ts +6 -0
  263. package/dist/migrations/1749600000048.SeedOtpActivityConstants.d.ts.map +1 -0
  264. package/dist/migrations/1749600000048.SeedOtpActivityConstants.js +30 -0
  265. package/dist/migrations/1749600000048.SeedOtpActivityConstants.js.map +1 -0
  266. package/dist/migrations/1749600000049.CreateSysScriptsTable.d.ts +6 -0
  267. package/dist/migrations/1749600000049.CreateSysScriptsTable.d.ts.map +1 -0
  268. package/dist/migrations/1749600000049.CreateSysScriptsTable.js +22 -0
  269. package/dist/migrations/1749600000049.CreateSysScriptsTable.js.map +1 -0
  270. package/dist/migrations/1749600000050.CreateSysReportDetailsTable.d.ts +6 -0
  271. package/dist/migrations/1749600000050.CreateSysReportDetailsTable.d.ts.map +1 -0
  272. package/dist/migrations/1749600000050.CreateSysReportDetailsTable.js +49 -0
  273. package/dist/migrations/1749600000050.CreateSysReportDetailsTable.js.map +1 -0
  274. package/dist/migrations/1749600000051.CreateSysReportSheetsTable.d.ts +6 -0
  275. package/dist/migrations/1749600000051.CreateSysReportSheetsTable.d.ts.map +1 -0
  276. package/dist/migrations/1749600000051.CreateSysReportSheetsTable.js +38 -0
  277. package/dist/migrations/1749600000051.CreateSysReportSheetsTable.js.map +1 -0
  278. package/dist/migrations/1749600000052.CreateTnReportDetailsTable.d.ts +6 -0
  279. package/dist/migrations/1749600000052.CreateTnReportDetailsTable.d.ts.map +1 -0
  280. package/dist/migrations/1749600000052.CreateTnReportDetailsTable.js +32 -0
  281. package/dist/migrations/1749600000052.CreateTnReportDetailsTable.js.map +1 -0
  282. package/dist/migrations/1749600000053.CreateTnTenantReportsTable.d.ts +6 -0
  283. package/dist/migrations/1749600000053.CreateTnTenantReportsTable.d.ts.map +1 -0
  284. package/dist/migrations/1749600000053.CreateTnTenantReportsTable.js +38 -0
  285. package/dist/migrations/1749600000053.CreateTnTenantReportsTable.js.map +1 -0
  286. package/dist/notification/es6.classes.d.ts +2 -1
  287. package/dist/notification/es6.classes.d.ts.map +1 -1
  288. package/dist/notification/es6.classes.js +2 -0
  289. package/dist/notification/es6.classes.js.map +1 -1
  290. package/dist/notification/jobs/password.change.otp.mail.job.d.ts +13 -0
  291. package/dist/notification/jobs/password.change.otp.mail.job.d.ts.map +1 -0
  292. package/dist/notification/jobs/password.change.otp.mail.job.js +49 -0
  293. package/dist/notification/jobs/password.change.otp.mail.job.js.map +1 -0
  294. package/dist/notification/notification.module.d.ts.map +1 -1
  295. package/dist/notification/notification.module.js +3 -1
  296. package/dist/notification/notification.module.js.map +1 -1
  297. package/dist/report/controllers/report.controller.d.ts +22 -0
  298. package/dist/report/controllers/report.controller.d.ts.map +1 -0
  299. package/dist/report/controllers/report.controller.js +123 -0
  300. package/dist/report/controllers/report.controller.js.map +1 -0
  301. package/dist/report/controllers/tenant.report.controller.d.ts +15 -0
  302. package/dist/report/controllers/tenant.report.controller.d.ts.map +1 -0
  303. package/dist/report/controllers/tenant.report.controller.js +71 -0
  304. package/dist/report/controllers/tenant.report.controller.js.map +1 -0
  305. package/dist/report/dtos/generated.report.list.dto.d.ts +4 -0
  306. package/dist/report/dtos/generated.report.list.dto.d.ts.map +1 -0
  307. package/dist/report/dtos/generated.report.list.dto.js +8 -0
  308. package/dist/report/dtos/generated.report.list.dto.js.map +1 -0
  309. package/dist/report/dtos/report.drilldown.dto.d.ts +5 -0
  310. package/dist/report/dtos/report.drilldown.dto.d.ts.map +1 -0
  311. package/dist/report/dtos/report.drilldown.dto.js +33 -0
  312. package/dist/report/dtos/report.drilldown.dto.js.map +1 -0
  313. package/dist/report/dtos/report.list.dto.d.ts +4 -0
  314. package/dist/report/dtos/report.list.dto.d.ts.map +1 -0
  315. package/dist/report/dtos/report.list.dto.js +8 -0
  316. package/dist/report/dtos/report.list.dto.js.map +1 -0
  317. package/dist/report/dtos/report.run.dto.d.ts +4 -0
  318. package/dist/report/dtos/report.run.dto.d.ts.map +1 -0
  319. package/dist/report/dtos/report.run.dto.js +30 -0
  320. package/dist/report/dtos/report.run.dto.js.map +1 -0
  321. package/dist/report/entities/report.detail.entity.d.ts +25 -0
  322. package/dist/report/entities/report.detail.entity.d.ts.map +1 -0
  323. package/dist/report/entities/report.detail.entity.js +92 -0
  324. package/dist/report/entities/report.detail.entity.js.map +1 -0
  325. package/dist/report/entities/report.sheet.entity.d.ts +13 -0
  326. package/dist/report/entities/report.sheet.entity.d.ts.map +1 -0
  327. package/dist/report/entities/report.sheet.entity.js +53 -0
  328. package/dist/report/entities/report.sheet.entity.js.map +1 -0
  329. package/dist/report/entities/script.entity.d.ts +9 -0
  330. package/dist/report/entities/script.entity.d.ts.map +1 -0
  331. package/dist/report/entities/script.entity.js +41 -0
  332. package/dist/report/entities/script.entity.js.map +1 -0
  333. package/dist/report/entities/tenant.report.detail.entity.d.ts +14 -0
  334. package/dist/report/entities/tenant.report.detail.entity.d.ts.map +1 -0
  335. package/dist/report/entities/tenant.report.detail.entity.js +53 -0
  336. package/dist/report/entities/tenant.report.detail.entity.js.map +1 -0
  337. package/dist/report/entities/tenant.report.entity.d.ts +16 -0
  338. package/dist/report/entities/tenant.report.entity.d.ts.map +1 -0
  339. package/dist/report/entities/tenant.report.entity.js +61 -0
  340. package/dist/report/entities/tenant.report.entity.js.map +1 -0
  341. package/dist/report/enums/report.default.enum.d.ts +49 -0
  342. package/dist/report/enums/report.default.enum.d.ts.map +1 -0
  343. package/dist/report/enums/report.default.enum.js +66 -0
  344. package/dist/report/enums/report.default.enum.js.map +1 -0
  345. package/dist/report/es6.classes.d.ts +20 -0
  346. package/dist/report/es6.classes.d.ts.map +1 -0
  347. package/dist/report/es6.classes.js +32 -0
  348. package/dist/report/es6.classes.js.map +1 -0
  349. package/dist/report/jobs/generate.tenant.report.job.d.ts +21 -0
  350. package/dist/report/jobs/generate.tenant.report.job.d.ts.map +1 -0
  351. package/dist/report/jobs/generate.tenant.report.job.js +120 -0
  352. package/dist/report/jobs/generate.tenant.report.job.js.map +1 -0
  353. package/dist/report/jobs/link.tenant.report.document.job.d.ts +12 -0
  354. package/dist/report/jobs/link.tenant.report.document.job.d.ts.map +1 -0
  355. package/dist/report/jobs/link.tenant.report.document.job.js +58 -0
  356. package/dist/report/jobs/link.tenant.report.document.job.js.map +1 -0
  357. package/dist/report/libraries/generated.report.list.processor.d.ts +14 -0
  358. package/dist/report/libraries/generated.report.list.processor.d.ts.map +1 -0
  359. package/dist/report/libraries/generated.report.list.processor.js +70 -0
  360. package/dist/report/libraries/generated.report.list.processor.js.map +1 -0
  361. package/dist/report/libraries/report.access.predicates.d.ts +6 -0
  362. package/dist/report/libraries/report.access.predicates.d.ts.map +1 -0
  363. package/dist/report/libraries/report.access.predicates.js +12 -0
  364. package/dist/report/libraries/report.access.predicates.js.map +1 -0
  365. package/dist/report/libraries/report.drilldown.list.processor.d.ts +13 -0
  366. package/dist/report/libraries/report.drilldown.list.processor.d.ts.map +1 -0
  367. package/dist/report/libraries/report.drilldown.list.processor.js +37 -0
  368. package/dist/report/libraries/report.drilldown.list.processor.js.map +1 -0
  369. package/dist/report/libraries/tenant.report.list.processor.d.ts +14 -0
  370. package/dist/report/libraries/tenant.report.list.processor.d.ts.map +1 -0
  371. package/dist/report/libraries/tenant.report.list.processor.js +59 -0
  372. package/dist/report/libraries/tenant.report.list.processor.js.map +1 -0
  373. package/dist/report/report.module.d.ts +7 -0
  374. package/dist/report/report.module.d.ts.map +1 -0
  375. package/dist/report/report.module.js +90 -0
  376. package/dist/report/report.module.js.map +1 -0
  377. package/dist/report/services/report.service.d.ts +35 -0
  378. package/dist/report/services/report.service.d.ts.map +1 -0
  379. package/dist/report/services/report.service.js +177 -0
  380. package/dist/report/services/report.service.js.map +1 -0
  381. package/dist/report/subscribers/tenant.report.document.subscriber.d.ts +14 -0
  382. package/dist/report/subscribers/tenant.report.document.subscriber.d.ts.map +1 -0
  383. package/dist/report/subscribers/tenant.report.document.subscriber.js +43 -0
  384. package/dist/report/subscribers/tenant.report.document.subscriber.js.map +1 -0
  385. package/dist/report/subscribers/tenant.report.subscriber.d.ts +13 -0
  386. package/dist/report/subscribers/tenant.report.subscriber.d.ts.map +1 -0
  387. package/dist/report/subscribers/tenant.report.subscriber.js +37 -0
  388. package/dist/report/subscribers/tenant.report.subscriber.js.map +1 -0
  389. package/dist/report/types/report.types.d.ts +71 -0
  390. package/dist/report/types/report.types.d.ts.map +1 -0
  391. package/dist/report/types/report.types.js +3 -0
  392. package/dist/report/types/report.types.js.map +1 -0
  393. package/dist/report/utilities/report.catalogue.d.ts +6 -0
  394. package/dist/report/utilities/report.catalogue.d.ts.map +1 -0
  395. package/dist/report/utilities/report.catalogue.js +29 -0
  396. package/dist/report/utilities/report.catalogue.js.map +1 -0
  397. package/dist/report/utilities/report.run.parameters.d.ts +7 -0
  398. package/dist/report/utilities/report.run.parameters.d.ts.map +1 -0
  399. package/dist/report/utilities/report.run.parameters.js +78 -0
  400. package/dist/report/utilities/report.run.parameters.js.map +1 -0
  401. package/dist/report/utilities/report.script.d.ts +11 -0
  402. package/dist/report/utilities/report.script.d.ts.map +1 -0
  403. package/dist/report/utilities/report.script.js +31 -0
  404. package/dist/report/utilities/report.script.js.map +1 -0
  405. package/dist/report/utilities/report.workbook.d.ts +8 -0
  406. package/dist/report/utilities/report.workbook.d.ts.map +1 -0
  407. package/dist/report/utilities/report.workbook.js +52 -0
  408. package/dist/report/utilities/report.workbook.js.map +1 -0
  409. package/dist/report/validators/report.patterns.d.ts +5 -0
  410. package/dist/report/validators/report.patterns.d.ts.map +1 -0
  411. package/dist/report/validators/report.patterns.js +110 -0
  412. package/dist/report/validators/report.patterns.js.map +1 -0
  413. package/dist/webhook/controllers/webhook.controller.d.ts +10 -0
  414. package/dist/webhook/controllers/webhook.controller.d.ts.map +1 -0
  415. package/dist/webhook/controllers/webhook.controller.js +55 -0
  416. package/dist/webhook/controllers/webhook.controller.js.map +1 -0
  417. package/dist/webhook/entities/webhook.event.entity.d.ts +13 -0
  418. package/dist/webhook/entities/webhook.event.entity.d.ts.map +1 -0
  419. package/dist/webhook/entities/webhook.event.entity.js +54 -0
  420. package/dist/webhook/entities/webhook.event.entity.js.map +1 -0
  421. package/dist/webhook/enums/webhook.enum.d.ts +38 -0
  422. package/dist/webhook/enums/webhook.enum.d.ts.map +1 -0
  423. package/dist/webhook/enums/webhook.enum.js +46 -0
  424. package/dist/webhook/enums/webhook.enum.js.map +1 -0
  425. package/dist/webhook/es6.classes.d.ts +13 -0
  426. package/dist/webhook/es6.classes.d.ts.map +1 -0
  427. package/dist/webhook/es6.classes.js +16 -0
  428. package/dist/webhook/es6.classes.js.map +1 -0
  429. package/dist/webhook/jobs/process.webhook.event.job.d.ts +11 -0
  430. package/dist/webhook/jobs/process.webhook.event.job.d.ts.map +1 -0
  431. package/dist/webhook/jobs/process.webhook.event.job.js +34 -0
  432. package/dist/webhook/jobs/process.webhook.event.job.js.map +1 -0
  433. package/dist/webhook/jobs/purge.webhook.events.job.d.ts +11 -0
  434. package/dist/webhook/jobs/purge.webhook.events.job.d.ts.map +1 -0
  435. package/dist/webhook/jobs/purge.webhook.events.job.js +37 -0
  436. package/dist/webhook/jobs/purge.webhook.events.job.js.map +1 -0
  437. package/dist/webhook/services/webhook.service.d.ts +26 -0
  438. package/dist/webhook/services/webhook.service.d.ts.map +1 -0
  439. package/dist/webhook/services/webhook.service.js +217 -0
  440. package/dist/webhook/services/webhook.service.js.map +1 -0
  441. package/dist/webhook/types/webhook.types.d.ts +39 -0
  442. package/dist/webhook/types/webhook.types.d.ts.map +1 -0
  443. package/dist/webhook/types/webhook.types.js +3 -0
  444. package/dist/webhook/types/webhook.types.js.map +1 -0
  445. package/dist/webhook/utilities/webhook.signature.d.ts +6 -0
  446. package/dist/webhook/utilities/webhook.signature.d.ts.map +1 -0
  447. package/dist/webhook/utilities/webhook.signature.js +30 -0
  448. package/dist/webhook/utilities/webhook.signature.js.map +1 -0
  449. package/dist/webhook/webhook.module.d.ts +7 -0
  450. package/dist/webhook/webhook.module.d.ts.map +1 -0
  451. package/dist/webhook/webhook.module.js +61 -0
  452. package/dist/webhook/webhook.module.js.map +1 -0
  453. package/package.json +6 -1
package/README.md CHANGED
@@ -115,9 +115,11 @@ these are free to change without a breaking release.
115
115
  | Audit | `AuditService` | `saveAuditLog(old, new)` with changed-value diffing into `sys_audit_logs` |
116
116
  | Cache | `CacheService` | Redis, TTL objects (`{days, hours, min}`), transparent encryption |
117
117
  | Encryption | `EncryptionService` | AES-256-GCM, scrypt-derived keys |
118
+ | One-time codes | `OtpService`, `OtpActivity`, `SystemOtpEntity` | 6-digit codes per activity on one row (`sys_otps`, activities are `sys_constants` rows); keyed digest only, single use, expiry, 5 guesses; always `000000` when `SERVER_ENV` is set and not `production` |
118
119
  | System properties | `SystemPropertyModule`, `SystemPropertyService` | cached + optionally encrypted key/value settings in `sys_properties` |
119
120
  | Documents | `DocumentModule`, `DocumentService`, `S3BucketDocumentService`, `MinioBucketDocumentService` | `POST /api/documents/upload` (multipart) or `uploadDocument(multerFiles) → links[]`; driver chosen via `DOCUMENT_STORAGE_DRIVER`; `sys_document_uploads` is the file, `sys_documents` the link to one of your records (`system_generated` marks the ones the backend produced itself) |
120
121
  | PDF documents | `PdfService`, `PdfTemplateService`, `ProcessPdfDocument`, `PdfTemplateEntity`, `PdfRenderOptions` | templates in `sys_pdf_templates` rendered to HTML by a remote service, rasterized by headless Chromium (`renderHtmlToPdf(html) → Buffer`, honours the document's own `@page` rules and paginates to any length), then stored — `ProcessPdfDocument` writes both rows and flags the `sys_documents` one `system_generated`; optional peer dep `puppeteer` |
122
+ | Reports | `ReportModule`, `ReportService`, `ReportDetailEntity`, `TenantReportEntity`, `GenerateTenantReportJob` | SQL reports per tenant, gated by scope (plan) and permission: live `summary` / `drilldown`, or generative Excel workbooks stored as documents; optional peer dep `exceljs` — see [Reports](#reports) |
121
123
  | HTTP | `CommonController`, `GlobalExceptionFilter`, common DTOs | health endpoint base controller, uniform error envelope |
122
124
  | Raw SQL | `SqlService`, `SqlTarget` | named `:key` placeholders always bound as driver params, `:...key` array expansion; runs on the read replica (`DB_READ_*`) with transparent primary fallback; `fetchOne`/`fetchScalar`/`exists`/`count`/`paginate` helpers |
123
125
  | List endpoints | `CommonListProcessor`, `CommonListFilterDto`, `FilterDto`, `CommonListFilterConfig` | allowlisted columns, parameterised operators (`eq`…`isNull`), typed value casting (`str`/`num`/`date`/`bool`/`null`), multi-sort + paginated on the read replica |
@@ -135,7 +137,7 @@ unless marked **required**.
135
137
 
136
138
  | Variable | Default | Description |
137
139
  | ------------ | ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
138
- | `SERVER_ENV` | `development` | Runtime environment (`development` / `staging` / `production` / `test`). Swagger docs at `/docs` are mounted in every value **except** `production`. |
140
+ | `SERVER_ENV` | `development` | Runtime environment (`development` / `staging` / `production` / `test`). Swagger docs at `/docs` are mounted in every value **except** `production`. Set and not `production` → every OTP is `000000`. |
139
141
  | `PORT` | `8000` | HTTP port the server listens on |
140
142
 
141
143
  ### Database (PostgreSQL)
@@ -229,8 +231,12 @@ const { user } = await this.authService.validateAccess(
229
231
 
230
232
  `AuthController` (mounted at `/auth`) exposes the ready-made flows: `POST
231
233
  /auth/login`, `/auth/google`, `/auth/register`, `/auth/refresh`, `/auth/logout`,
232
- `/auth/change-password`, and `GET /auth/me` (user, roles in the session's
233
- organization, `organizations` to switch to, pending `invitations`). Passwords are hashed/verified via
234
+ `/auth/change-password/request` + `/auth/change-password`, and `GET /auth/me` (user, roles in the session's
235
+ organization, `organizations` to switch to, pending `invitations`). A password change is
236
+ confirmed by a mailed code: `/request` checks `current_password` and mails a 6-digit OTP
237
+ (template `password-change-otp` — seed it), then `/change-password` takes
238
+ `current_password`, `new_password` and `otp`. Replacing the initial one-time password
239
+ needs no `otp`. Passwords are hashed/verified via
234
240
  `AuthUtility` (bcrypt); the write flows use the processor lifecycle. Credential
235
241
  misses spend the same bcrypt work as a wrong password
236
242
  (`AuthUtility.compareAgainstDummy()`), so response timing does not reveal
@@ -1076,6 +1082,38 @@ comma-separated values and cast each part; `isNull` reads its value truthily
1076
1082
  Invalid identifiers, operators, or values raise `OperationException` before any
1077
1083
  SQL runs. Results come back as `{ records, total, page, limit, total_pages }`.
1078
1084
 
1085
+ ## Reports
1086
+
1087
+ `ReportModule` serves SQL reports to tenant members at `api/reports`, and their generated workbooks at `api/tenant-reports`;
1088
+ the back office manages them through `AdminModule`.
1089
+
1090
+ ```ts
1091
+ imports: [DocumentModule, ReportModule] // generation stores workbooks as documents
1092
+ ```
1093
+
1094
+ - **Catalogue** (`sys_report_details`): `is_generative`, a script (`sys_scripts`),
1095
+ `scope_id` (the tenant must hold it — through its plan or a grant), `permission_id`
1096
+ (the member must hold it), drilldown `columns`, and for generative reports
1097
+ `sys_report_sheets` (one workbook sheet each, optionally with its own script).
1098
+ - **Per tenant** (`tn_report_details`): which reports a tenant gets, with `parameters`
1099
+ bound into the scripts.
1100
+ - **Scripts** are one SELECT that must use `:tenant_id` (always the session tenant,
1101
+ never overridable); they run on the read replica wrapped in a subquery.
1102
+ - **Run-time parameters** (custom predicates such as a date range): a report declares
1103
+ them (`name`, `type` — `date`, `datetime`, `number`, `string`, `boolean` —,
1104
+ `required`, `default`), its scripts use them as `:from_date` / `:to_date`, and
1105
+ `summary`, `drilldown` and `generate` take `parameters: { from_date, to_date }`.
1106
+ Values are type-checked and bound; neither `tenant_id` nor the tenant's back-office
1107
+ parameters can be overridden. A generation keeps the values it used.
1108
+ - **Live reports**: `POST :id/summary` (≤ 1000 rows) and `POST :id/drilldown`
1109
+ (paged/filtered/sorted over the declared columns).
1110
+ - **Generative reports**: `POST :id/generate` inserts a `tn_tenant_reports` row; its
1111
+ subscriber queues `GenerateTenantReportJob`, which builds the `.xlsx` (needs
1112
+ `yarn add exceljs`) and stores it privately attached to the row. The new
1113
+ `sys_documents` row queues `LinkTenantReportDocumentJob`, which sets
1114
+ `document_id` / `is_generated`. `GET /api/tenant-reports/:id` returns a short-lived
1115
+ `download_url`.
1116
+
1079
1117
  ## Admin Module
1080
1118
 
1081
1119
  `AdminModule` is the back-office surface — tenant onboarding, client/admin user
@@ -1122,6 +1160,9 @@ pass the actor to a processor.
1122
1160
  | `POST /admin/tenant-users/:id/memberships/:tenantId/deactivate` · `/reactivate` | admin | `TenantMembershipService.setMemberActive` |
1123
1161
  | `POST /admin/system-users` | super admin | `SystemUserDataProcessor` (upsert — send `id` to update) |
1124
1162
  | `POST /admin/system-users/list` | content reader | `SystemUserListProcessor` (scoped to `user_type = system.user`) |
1163
+ | `POST /admin/reports` · `/list` · `GET`/`DELETE /:id` | super admin / content reader | `ReportDataProcessor` (sheets replace), `ReportCatalogueListProcessor` |
1164
+ | `POST /admin/reports/:id/script` · `/:id/sheets/:sheetId/script` | super admin | `ReportScriptDataProcessor` — add or edit; needs `:tenant_id`, dry-run on save |
1165
+ | `POST /admin/tenant-reports` · `/list` · `DELETE /:id` | admin / content reader | `TenantReportDataProcessor` — enable a report for a tenant with its `parameters` |
1125
1166
  | `GET /admin/system-users/:id` | content reader | the row |
1126
1167
  | `DELETE /admin/system-users/:id` | super admin | `SystemUserService.delete` (revokes live sessions) |
1127
1168
  | `POST /admin/users` | super admin | `AdminUserDataProcessor` |
@@ -1319,6 +1360,7 @@ its remediation status live outside the package (`security-audit/`).
1319
1360
  `GET /api/admin/scheduled-tasks/jobs`), ≥ 60 s period, 5-field cron.
1320
1361
  - `sendMail` throws when `AWS_SES_FROM_ADDRESS` is unset outside development/test.
1321
1362
  - Impersonation login returns no refresh token; OTP accounts are limited to change-password until it is replaced.
1363
+ - `POST /auth/change-password` needs `otp` from `POST /auth/change-password/request` (except when replacing a one-time password).
1322
1364
 
1323
1365
  ## License
1324
1366
 
@@ -1 +1 @@
1
- {"version":3,"file":"admin.module.d.ts","sourceRoot":"","sources":["../../src/admin/admin.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAU,MAAM,gBAAgB,CAAC;AAIvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAI9D,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAa9D,qBAYa,WAAW;IACtB,MAAM,CAAC,QAAQ,CAAC,OAAO,GAAE,kBAAuB,GAAG,aAAa;CAgBjE"}
1
+ {"version":3,"file":"admin.module.d.ts","sourceRoot":"","sources":["../../src/admin/admin.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAU,MAAM,gBAAgB,CAAC;AAIvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAK9D,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAa9D,qBAaa,WAAW;IACtB,MAAM,CAAC,QAAQ,CAAC,OAAO,GAAE,kBAAuB,GAAG,aAAa;CAiBjE"}
@@ -15,6 +15,7 @@ const es6_classes_1 = require("./es6.classes");
15
15
  const notification_module_1 = require("../notification/notification.module");
16
16
  const system_property_module_1 = require("../common/system.property.module");
17
17
  const queue_module_1 = require("../common/queue.module");
18
+ const webhook_module_1 = require("../webhook/webhook.module");
18
19
  let AdminModule = AdminModule_1 = class AdminModule {
19
20
  static register(options = {}) {
20
21
  return {
@@ -25,6 +26,7 @@ let AdminModule = AdminModule_1 = class AdminModule {
25
26
  notification_module_1.NotificationModule.register(options),
26
27
  system_property_module_1.SystemPropertyModule.register(options),
27
28
  queue_module_1.QueueModule,
29
+ webhook_module_1.WebhookModule.register(options),
28
30
  ],
29
31
  controllers: [...es6_classes_1.es6Classes.controllers],
30
32
  providers: [...es6_classes_1.es6Classes.services],
@@ -41,6 +43,7 @@ exports.AdminModule = AdminModule = AdminModule_1 = __decorate([
41
43
  notification_module_1.NotificationModule,
42
44
  system_property_module_1.SystemPropertyModule,
43
45
  queue_module_1.QueueModule,
46
+ webhook_module_1.WebhookModule,
44
47
  ],
45
48
  controllers: [...es6_classes_1.es6Classes.controllers],
46
49
  providers: [...es6_classes_1.es6Classes.services],
@@ -1 +1 @@
1
- {"version":3,"file":"admin.module.js","sourceRoot":"","sources":["../../src/admin/admin.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAuD;AACvD,qDAAiD;AACjD,2DAAuD;AACvD,+CAA2C;AAE3C,6EAAyE;AACzE,6EAAwE;AACxE,yDAAqD;AA0B9C,IAAM,WAAW,mBAAjB,MAAM,WAAW;IACtB,MAAM,CAAC,QAAQ,CAAC,UAA8B,EAAE;QAC9C,OAAO;YACL,MAAM,EAAE,aAAW;YACnB,OAAO,EAAE;gBACP,wBAAU,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAC5B,4BAAY,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAC9B,wCAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC;gBACpC,6CAAoB,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAEtC,0BAAW;aACZ;YACD,WAAW,EAAE,CAAC,GAAG,wBAAU,CAAC,WAAW,CAAC;YACxC,SAAS,EAAE,CAAC,GAAG,wBAAU,CAAC,QAAQ,CAAC;YACnC,OAAO,EAAE,CAAC,GAAG,wBAAU,CAAC,QAAQ,CAAC;SAClC,CAAC;IACJ,CAAC;CACF,CAAA;AAjBY,kCAAW;sBAAX,WAAW;IAZvB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,wBAAU;YACV,4BAAY;YACZ,wCAAkB;YAClB,6CAAoB;YACpB,0BAAW;SACZ;QACD,WAAW,EAAE,CAAC,GAAG,wBAAU,CAAC,WAAW,CAAC;QACxC,SAAS,EAAE,CAAC,GAAG,wBAAU,CAAC,QAAQ,CAAC;QACnC,OAAO,EAAE,CAAC,GAAG,wBAAU,CAAC,QAAQ,CAAC;KAClC,CAAC;GACW,WAAW,CAiBvB"}
1
+ {"version":3,"file":"admin.module.js","sourceRoot":"","sources":["../../src/admin/admin.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAuD;AACvD,qDAAiD;AACjD,2DAAuD;AACvD,+CAA2C;AAE3C,6EAAyE;AACzE,6EAAwE;AACxE,yDAAqD;AACrD,8DAA0D;AA2BnD,IAAM,WAAW,mBAAjB,MAAM,WAAW;IACtB,MAAM,CAAC,QAAQ,CAAC,UAA8B,EAAE;QAC9C,OAAO;YACL,MAAM,EAAE,aAAW;YACnB,OAAO,EAAE;gBACP,wBAAU,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAC5B,4BAAY,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAC9B,wCAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC;gBACpC,6CAAoB,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAEtC,0BAAW;gBACX,8BAAa,CAAC,QAAQ,CAAC,OAAO,CAAC;aAChC;YACD,WAAW,EAAE,CAAC,GAAG,wBAAU,CAAC,WAAW,CAAC;YACxC,SAAS,EAAE,CAAC,GAAG,wBAAU,CAAC,QAAQ,CAAC;YACnC,OAAO,EAAE,CAAC,GAAG,wBAAU,CAAC,QAAQ,CAAC;SAClC,CAAC;IACJ,CAAC;CACF,CAAA;AAlBY,kCAAW;sBAAX,WAAW;IAbvB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,wBAAU;YACV,4BAAY;YACZ,wCAAkB;YAClB,6CAAoB;YACpB,0BAAW;YACX,8BAAa;SACd;QACD,WAAW,EAAE,CAAC,GAAG,wBAAU,CAAC,WAAW,CAAC;QACxC,SAAS,EAAE,CAAC,GAAG,wBAAU,CAAC,QAAQ,CAAC;QACnC,OAAO,EAAE,CAAC,GAAG,wBAAU,CAAC,QAAQ,CAAC;KAClC,CAAC;GACW,WAAW,CAkBvB"}
@@ -0,0 +1,12 @@
1
+ import { ListFilterService } from '../../common/services/list.filter.service';
2
+ import { PaymentEntity } from '../../auth/entities/payment.entity';
3
+ import { AdminAccessService } from '../services/admin.access.service';
4
+ import { PaymentListDto } from '../dtos/payment.list.dto';
5
+ export declare class AdminPaymentController {
6
+ private readonly adminAccessService;
7
+ private readonly listFilterService;
8
+ constructor(adminAccessService: AdminAccessService, listFilterService: ListFilterService);
9
+ list(dto: PaymentListDto): Promise<import("../..").CommonListResult>;
10
+ detail(id: string): Promise<PaymentEntity>;
11
+ }
12
+ //# sourceMappingURL=admin.payment.controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin.payment.controller.d.ts","sourceRoot":"","sources":["../../../src/admin/controllers/admin.payment.controller.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAG9E,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAEnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAEtE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAM1D,qBAIa,sBAAsB;IAE/B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;gBADjB,kBAAkB,EAAE,kBAAkB,EACtC,iBAAiB,EAAE,iBAAiB;IASjD,IAAI,CAAS,GAAG,EAAE,cAAc;IAWhC,MAAM,CAA6B,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;CAS7E"}
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
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
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
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
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.AdminPaymentController = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const swagger_1 = require("@nestjs/swagger");
18
+ const list_filter_service_1 = require("../../common/services/list.filter.service");
19
+ const strict_validation_pipe_1 = require("../../common/pipes/strict.validation.pipe");
20
+ const not_found_exception_1 = require("../../global/exceptions/not.found.exception");
21
+ const payment_entity_1 = require("../../auth/entities/payment.entity");
22
+ const payment_enum_1 = require("../../auth/enums/payment.enum");
23
+ const admin_access_service_1 = require("../services/admin.access.service");
24
+ const payment_list_processor_1 = require("../libraries/payment.list.processor");
25
+ const payment_list_dto_1 = require("../dtos/payment.list.dto");
26
+ let AdminPaymentController = class AdminPaymentController {
27
+ constructor(adminAccessService, listFilterService) {
28
+ this.adminAccessService = adminAccessService;
29
+ this.listFilterService = listFilterService;
30
+ }
31
+ async list(dto) {
32
+ await this.adminAccessService.validateContentReader();
33
+ return new payment_list_processor_1.PaymentListProcessor(this.listFilterService).process(dto);
34
+ }
35
+ async detail(id) {
36
+ await this.adminAccessService.validateContentReader();
37
+ const payment = await payment_entity_1.PaymentEntity.findOne({
38
+ where: { id },
39
+ relations: { tenant: true },
40
+ });
41
+ if (!payment)
42
+ throw new not_found_exception_1.NotFoundException(payment_enum_1.PaymentMessage.ID_NOT_FOUND);
43
+ return payment;
44
+ }
45
+ };
46
+ exports.AdminPaymentController = AdminPaymentController;
47
+ __decorate([
48
+ (0, common_1.Post)('list'),
49
+ (0, swagger_1.ApiOperation)({
50
+ summary: 'List, search and filter payments.',
51
+ description: 'Every tenant, newest first, with `tenant_name`; filter by `tenant_id`, `status`, `gateway`, `source_type`. Requires at least the global content reader role.',
52
+ }),
53
+ __param(0, (0, common_1.Body)()),
54
+ __metadata("design:type", Function),
55
+ __metadata("design:paramtypes", [payment_list_dto_1.PaymentListDto]),
56
+ __metadata("design:returntype", Promise)
57
+ ], AdminPaymentController.prototype, "list", null);
58
+ __decorate([
59
+ (0, common_1.Get)(':id'),
60
+ (0, swagger_1.ApiOperation)({
61
+ summary: 'One payment.',
62
+ description: 'Without the gateway payload. Requires at least the global content reader role.',
63
+ }),
64
+ __param(0, (0, common_1.Param)('id', common_1.ParseUUIDPipe)),
65
+ __metadata("design:type", Function),
66
+ __metadata("design:paramtypes", [String]),
67
+ __metadata("design:returntype", Promise)
68
+ ], AdminPaymentController.prototype, "detail", null);
69
+ exports.AdminPaymentController = AdminPaymentController = __decorate([
70
+ (0, swagger_1.ApiTags)('Admin - Payments'),
71
+ (0, swagger_1.ApiBearerAuth)(),
72
+ (0, common_1.UsePipes)(strict_validation_pipe_1.StrictValidationPipe),
73
+ (0, common_1.Controller)('api/admin/payments'),
74
+ __metadata("design:paramtypes", [admin_access_service_1.AdminAccessService,
75
+ list_filter_service_1.ListFilterService])
76
+ ], AdminPaymentController);
77
+ //# sourceMappingURL=admin.payment.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin.payment.controller.js","sourceRoot":"","sources":["../../../src/admin/controllers/admin.payment.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAQwB;AACxB,6CAAuE;AACvE,mFAA8E;AAC9E,sFAAiF;AACjF,qFAAgF;AAChF,uEAAmE;AACnE,gEAA+D;AAC/D,2EAAsE;AACtE,gFAA2E;AAC3E,+DAA0D;AAUnD,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IACjC,YACmB,kBAAsC,EACtC,iBAAoC;QADpC,uBAAkB,GAAlB,kBAAkB,CAAoB;QACtC,sBAAiB,GAAjB,iBAAiB,CAAmB;IACpD,CAAC;IAQE,AAAN,KAAK,CAAC,IAAI,CAAS,GAAmB;QACpC,MAAM,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,EAAE,CAAC;QACtD,OAAO,IAAI,6CAAoB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACvE,CAAC;IAQK,AAAN,KAAK,CAAC,MAAM,CAA6B,EAAU;QACjD,MAAM,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,EAAE,CAAC;QACtD,MAAM,OAAO,GAAG,MAAM,8BAAa,CAAC,OAAO,CAAC;YAC1C,KAAK,EAAE,EAAE,EAAE,EAAE;YACb,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;SAC5B,CAAC,CAAC;QACH,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,uCAAiB,CAAC,6BAAc,CAAC,YAAY,CAAC,CAAC;QACvE,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAA;AAhCY,wDAAsB;AAY3B;IANL,IAAA,aAAI,EAAC,MAAM,CAAC;IACZ,IAAA,sBAAY,EAAC;QACZ,OAAO,EAAE,mCAAmC;QAC5C,WAAW,EACT,8JAA8J;KACjK,CAAC;IACU,WAAA,IAAA,aAAI,GAAE,CAAA;;qCAAM,iCAAc;;kDAGrC;AAQK;IANL,IAAA,YAAG,EAAC,KAAK,CAAC;IACV,IAAA,sBAAY,EAAC;QACZ,OAAO,EAAE,cAAc;QACvB,WAAW,EACT,gFAAgF;KACnF,CAAC;IACY,WAAA,IAAA,cAAK,EAAC,IAAI,EAAE,sBAAa,CAAC,CAAA;;;;oDAQvC;iCA/BU,sBAAsB;IAJlC,IAAA,iBAAO,EAAC,kBAAkB,CAAC;IAC3B,IAAA,uBAAa,GAAE;IACf,IAAA,iBAAQ,EAAC,6CAAoB,CAAC;IAC9B,IAAA,mBAAU,EAAC,oBAAoB,CAAC;qCAGQ,yCAAkB;QACnB,uCAAiB;GAH5C,sBAAsB,CAgClC"}
@@ -0,0 +1,25 @@
1
+ import { ListFilterService } from '../../common/services/list.filter.service';
2
+ import { SqlService } from '../../common/services/sql.service';
3
+ import { ScriptEntity } from '../../report/entities/script.entity';
4
+ import type { ReportDetail } from '../../report/types/report.types';
5
+ import { AddReportDto } from '../dtos/add.report.dto';
6
+ import { ReportCatalogueListDto } from '../dtos/report.catalogue.list.dto';
7
+ import { SetReportScriptDto } from '../dtos/set.report.script.dto';
8
+ import { AdminAccessService } from '../services/admin.access.service';
9
+ import { AdminReportService } from '../services/admin.report.service';
10
+ export declare class AdminReportController {
11
+ private readonly adminAccessService;
12
+ private readonly listFilterService;
13
+ private readonly sqlService;
14
+ private readonly adminReportService;
15
+ constructor(adminAccessService: AdminAccessService, listFilterService: ListFilterService, sqlService: SqlService, adminReportService: AdminReportService);
16
+ save(dto: AddReportDto): Promise<ReportDetail>;
17
+ list(dto: ReportCatalogueListDto): Promise<import("../..").CommonListResult>;
18
+ detail(id: string): Promise<ReportDetail>;
19
+ setScript(id: string, dto: SetReportScriptDto): Promise<ScriptEntity>;
20
+ setSheetScript(id: string, sheetId: string, dto: SetReportScriptDto): Promise<ScriptEntity>;
21
+ remove(id: string): Promise<{
22
+ success: boolean;
23
+ }>;
24
+ }
25
+ //# sourceMappingURL=admin.report.controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin.report.controller.d.ts","sourceRoot":"","sources":["../../../src/admin/controllers/admin.report.controller.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAE/D,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAInE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAOtE,qBAIa,qBAAqB;IAE9B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;gBAHlB,kBAAkB,EAAE,kBAAkB,EACtC,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,UAAU,EACtB,kBAAkB,EAAE,kBAAkB;IASnD,IAAI,CAAS,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IAetD,IAAI,CAAS,GAAG,EAAE,sBAAsB;IAaxC,MAAM,CAA6B,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAcrE,SAAS,CACe,EAAE,EAAE,MAAM,EAC9B,GAAG,EAAE,kBAAkB,GAC9B,OAAO,CAAC,YAAY,CAAC;IAelB,cAAc,CACU,EAAE,EAAE,MAAM,EACL,OAAO,EAAE,MAAM,EACxC,GAAG,EAAE,kBAAkB,GAC9B,OAAO,CAAC,YAAY,CAAC;IAelB,MAAM,CAA6B,EAAE,EAAE,MAAM;;;CAKpD"}
@@ -0,0 +1,145 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
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
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
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
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.AdminReportController = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const swagger_1 = require("@nestjs/swagger");
18
+ const strict_validation_pipe_1 = require("../../common/pipes/strict.validation.pipe");
19
+ const list_filter_service_1 = require("../../common/services/list.filter.service");
20
+ const sql_service_1 = require("../../common/services/sql.service");
21
+ const report_detail_entity_1 = require("../../report/entities/report.detail.entity");
22
+ const report_catalogue_1 = require("../../report/utilities/report.catalogue");
23
+ const add_report_dto_1 = require("../dtos/add.report.dto");
24
+ const report_catalogue_list_dto_1 = require("../dtos/report.catalogue.list.dto");
25
+ const set_report_script_dto_1 = require("../dtos/set.report.script.dto");
26
+ const report_catalogue_list_processor_1 = require("../libraries/report.catalogue.list.processor");
27
+ const report_data_processor_1 = require("../libraries/report.data.processor");
28
+ const report_script_data_processor_1 = require("../libraries/report.script.data.processor");
29
+ const admin_access_service_1 = require("../services/admin.access.service");
30
+ const admin_report_service_1 = require("../services/admin.report.service");
31
+ let AdminReportController = class AdminReportController {
32
+ constructor(adminAccessService, listFilterService, sqlService, adminReportService) {
33
+ this.adminAccessService = adminAccessService;
34
+ this.listFilterService = listFilterService;
35
+ this.sqlService = sqlService;
36
+ this.adminReportService = adminReportService;
37
+ }
38
+ async save(dto) {
39
+ const access = await this.adminAccessService.validateSuperAdmin();
40
+ const report = await new report_data_processor_1.ReportDataProcessor(access).process(dto);
41
+ return report_catalogue_1.ReportCatalogue.detail(report_detail_entity_1.ReportDetailEntity.getRepository().manager, report.id);
42
+ }
43
+ async list(dto) {
44
+ await this.adminAccessService.validateContentReader();
45
+ return new report_catalogue_list_processor_1.ReportCatalogueListProcessor(this.listFilterService).process(dto);
46
+ }
47
+ async detail(id) {
48
+ await this.adminAccessService.validateContentReader();
49
+ return report_catalogue_1.ReportCatalogue.detail(report_detail_entity_1.ReportDetailEntity.getRepository().manager, id);
50
+ }
51
+ async setScript(id, dto) {
52
+ const access = await this.adminAccessService.validateSuperAdmin();
53
+ return new report_script_data_processor_1.ReportScriptDataProcessor(access, this.sqlService).process(id, null, dto);
54
+ }
55
+ async setSheetScript(id, sheetId, dto) {
56
+ const access = await this.adminAccessService.validateSuperAdmin();
57
+ return new report_script_data_processor_1.ReportScriptDataProcessor(access, this.sqlService).process(id, sheetId, dto);
58
+ }
59
+ async remove(id) {
60
+ const { user } = await this.adminAccessService.validateSuperAdmin();
61
+ await this.adminReportService.deleteReport(id, user);
62
+ return { success: true };
63
+ }
64
+ };
65
+ exports.AdminReportController = AdminReportController;
66
+ __decorate([
67
+ (0, common_1.Post)(),
68
+ (0, swagger_1.ApiOperation)({
69
+ summary: 'Define a report, or update an existing one.',
70
+ description: "Send an `id` to edit; omit it to define one. `identifier` is fixed once created. `sheets`, when sent, replace the report's sheets (send a sheet's `id` to keep it and its script). Scripts are set through `POST :id/script`. Requires the global super admin role.",
71
+ }),
72
+ __param(0, (0, common_1.Body)()),
73
+ __metadata("design:type", Function),
74
+ __metadata("design:paramtypes", [add_report_dto_1.AddReportDto]),
75
+ __metadata("design:returntype", Promise)
76
+ ], AdminReportController.prototype, "save", null);
77
+ __decorate([
78
+ (0, common_1.Post)('list'),
79
+ (0, swagger_1.ApiOperation)({
80
+ summary: 'List, search and filter reports.',
81
+ description: 'Rows carry `has_script`, `sheets` and `tenants` (tenants it is enabled for). Requires at least the global content reader role.',
82
+ }),
83
+ __param(0, (0, common_1.Body)()),
84
+ __metadata("design:type", Function),
85
+ __metadata("design:paramtypes", [report_catalogue_list_dto_1.ReportCatalogueListDto]),
86
+ __metadata("design:returntype", Promise)
87
+ ], AdminReportController.prototype, "list", null);
88
+ __decorate([
89
+ (0, common_1.Get)(':id'),
90
+ (0, swagger_1.ApiOperation)({
91
+ summary: 'One report, in full.',
92
+ description: "With its `script`, `scope`, `permission`, `sheets` (each with its own `script`, null = the report's) and `tenant_count`. Requires at least the global content reader role.",
93
+ }),
94
+ __param(0, (0, common_1.Param)('id', common_1.ParseUUIDPipe)),
95
+ __metadata("design:type", Function),
96
+ __metadata("design:paramtypes", [String]),
97
+ __metadata("design:returntype", Promise)
98
+ ], AdminReportController.prototype, "detail", null);
99
+ __decorate([
100
+ (0, common_1.Post)(':id/script'),
101
+ (0, swagger_1.ApiOperation)({
102
+ summary: "Add the report's script, or edit it.",
103
+ description: "One SELECT that narrows by `:tenant_id`; other `:name` placeholders take the tenant's parameters. It is dry-run on save, so syntax and column errors come back on `script`. Requires the global super admin role.",
104
+ }),
105
+ __param(0, (0, common_1.Param)('id', common_1.ParseUUIDPipe)),
106
+ __param(1, (0, common_1.Body)()),
107
+ __metadata("design:type", Function),
108
+ __metadata("design:paramtypes", [String, set_report_script_dto_1.SetReportScriptDto]),
109
+ __metadata("design:returntype", Promise)
110
+ ], AdminReportController.prototype, "setScript", null);
111
+ __decorate([
112
+ (0, common_1.Post)(':id/sheets/:sheetId/script'),
113
+ (0, swagger_1.ApiOperation)({
114
+ summary: "Add a sheet's own script, or edit it.",
115
+ description: "Same rules as the report's script. A sheet without one runs the report's. Requires the global super admin role.",
116
+ }),
117
+ __param(0, (0, common_1.Param)('id', common_1.ParseUUIDPipe)),
118
+ __param(1, (0, common_1.Param)('sheetId', common_1.ParseUUIDPipe)),
119
+ __param(2, (0, common_1.Body)()),
120
+ __metadata("design:type", Function),
121
+ __metadata("design:paramtypes", [String, String, set_report_script_dto_1.SetReportScriptDto]),
122
+ __metadata("design:returntype", Promise)
123
+ ], AdminReportController.prototype, "setSheetScript", null);
124
+ __decorate([
125
+ (0, common_1.Delete)(':id'),
126
+ (0, swagger_1.ApiOperation)({
127
+ summary: 'Delete a report.',
128
+ description: 'Soft delete, with its sheets. Refused while any tenant has it enabled — remove those first. Requires the global super admin role.',
129
+ }),
130
+ __param(0, (0, common_1.Param)('id', common_1.ParseUUIDPipe)),
131
+ __metadata("design:type", Function),
132
+ __metadata("design:paramtypes", [String]),
133
+ __metadata("design:returntype", Promise)
134
+ ], AdminReportController.prototype, "remove", null);
135
+ exports.AdminReportController = AdminReportController = __decorate([
136
+ (0, swagger_1.ApiTags)('Admin - Reports'),
137
+ (0, swagger_1.ApiBearerAuth)(),
138
+ (0, common_1.UsePipes)(strict_validation_pipe_1.StrictValidationPipe),
139
+ (0, common_1.Controller)('api/admin/reports'),
140
+ __metadata("design:paramtypes", [admin_access_service_1.AdminAccessService,
141
+ list_filter_service_1.ListFilterService,
142
+ sql_service_1.SqlService,
143
+ admin_report_service_1.AdminReportService])
144
+ ], AdminReportController);
145
+ //# sourceMappingURL=admin.report.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin.report.controller.js","sourceRoot":"","sources":["../../../src/admin/controllers/admin.report.controller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { ListFilterService } from '../../common/services/list.filter.service';
2
+ import { SqlService } from '../../common/services/sql.service';
3
+ import { TenantReportDetailEntity } from '../../report/entities/tenant.report.detail.entity';
4
+ import { AssignTenantReportDto } from '../dtos/assign.tenant.report.dto';
5
+ import { TenantReportListDto } from '../dtos/tenant.report.list.dto';
6
+ import { AdminAccessService } from '../services/admin.access.service';
7
+ import { AdminReportService } from '../services/admin.report.service';
8
+ export declare class AdminTenantReportController {
9
+ private readonly adminAccessService;
10
+ private readonly listFilterService;
11
+ private readonly sqlService;
12
+ private readonly adminReportService;
13
+ constructor(adminAccessService: AdminAccessService, listFilterService: ListFilterService, sqlService: SqlService, adminReportService: AdminReportService);
14
+ save(dto: AssignTenantReportDto): Promise<TenantReportDetailEntity>;
15
+ list(dto: TenantReportListDto): Promise<import("../..").CommonListResult>;
16
+ remove(id: string): Promise<{
17
+ success: boolean;
18
+ }>;
19
+ }
20
+ //# sourceMappingURL=admin.tenant.report.controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin.tenant.report.controller.d.ts","sourceRoot":"","sources":["../../../src/admin/controllers/admin.tenant.report.controller.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,mDAAmD,CAAC;AAC7F,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAGrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAMtE,qBAIa,2BAA2B;IAEpC,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;gBAHlB,kBAAkB,EAAE,kBAAkB,EACtC,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,UAAU,EACtB,kBAAkB,EAAE,kBAAkB;IASnD,IAAI,CACA,GAAG,EAAE,qBAAqB,GACjC,OAAO,CAAC,wBAAwB,CAAC;IAW9B,IAAI,CAAS,GAAG,EAAE,mBAAmB;IAarC,MAAM,CAA6B,EAAE,EAAE,MAAM;;;CAKpD"}
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
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
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
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
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.AdminTenantReportController = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const swagger_1 = require("@nestjs/swagger");
18
+ const strict_validation_pipe_1 = require("../../common/pipes/strict.validation.pipe");
19
+ const list_filter_service_1 = require("../../common/services/list.filter.service");
20
+ const sql_service_1 = require("../../common/services/sql.service");
21
+ const assign_tenant_report_dto_1 = require("../dtos/assign.tenant.report.dto");
22
+ const tenant_report_list_dto_1 = require("../dtos/tenant.report.list.dto");
23
+ const tenant_report_data_processor_1 = require("../libraries/tenant.report.data.processor");
24
+ const tenant_report_list_processor_1 = require("../libraries/tenant.report.list.processor");
25
+ const admin_access_service_1 = require("../services/admin.access.service");
26
+ const admin_report_service_1 = require("../services/admin.report.service");
27
+ let AdminTenantReportController = class AdminTenantReportController {
28
+ constructor(adminAccessService, listFilterService, sqlService, adminReportService) {
29
+ this.adminAccessService = adminAccessService;
30
+ this.listFilterService = listFilterService;
31
+ this.sqlService = sqlService;
32
+ this.adminReportService = adminReportService;
33
+ }
34
+ async save(dto) {
35
+ const access = await this.adminAccessService.validateAdmin();
36
+ return new tenant_report_data_processor_1.TenantReportDataProcessor(access, this.sqlService).process(dto);
37
+ }
38
+ async list(dto) {
39
+ await this.adminAccessService.validateContentReader();
40
+ return new tenant_report_list_processor_1.AdminTenantReportListProcessor(this.listFilterService).process(dto);
41
+ }
42
+ async remove(id) {
43
+ const { user } = await this.adminAccessService.validateAdmin();
44
+ await this.adminReportService.disableTenantReport(id, user);
45
+ return { success: true };
46
+ }
47
+ };
48
+ exports.AdminTenantReportController = AdminTenantReportController;
49
+ __decorate([
50
+ (0, common_1.Post)(),
51
+ (0, swagger_1.ApiOperation)({
52
+ summary: 'Enable a report for a tenant, or edit that enablement.',
53
+ description: "Send an `id` to edit; `tenant_id` and `report_id` are fixed once created, and a report is enabled at most once per tenant. `parameters` must bind every placeholder of the report's scripts besides `:tenant_id`. Members still need the report's scope and permission. Requires the global admin role.",
54
+ }),
55
+ __param(0, (0, common_1.Body)()),
56
+ __metadata("design:type", Function),
57
+ __metadata("design:paramtypes", [assign_tenant_report_dto_1.AssignTenantReportDto]),
58
+ __metadata("design:returntype", Promise)
59
+ ], AdminTenantReportController.prototype, "save", null);
60
+ __decorate([
61
+ (0, common_1.Post)('list'),
62
+ (0, swagger_1.ApiOperation)({
63
+ summary: 'List reports enabled per tenant.',
64
+ description: 'Send `tenant_id` or `report_id` to narrow to one tenant or one report. Requires at least the global content reader role.',
65
+ }),
66
+ __param(0, (0, common_1.Body)()),
67
+ __metadata("design:type", Function),
68
+ __metadata("design:paramtypes", [tenant_report_list_dto_1.TenantReportListDto]),
69
+ __metadata("design:returntype", Promise)
70
+ ], AdminTenantReportController.prototype, "list", null);
71
+ __decorate([
72
+ (0, common_1.Delete)(':id'),
73
+ (0, swagger_1.ApiOperation)({
74
+ summary: 'Disable a report for a tenant.',
75
+ description: 'Soft delete; its generated workbooks stay stored but can no longer be opened. Requires the global admin role.',
76
+ }),
77
+ __param(0, (0, common_1.Param)('id', common_1.ParseUUIDPipe)),
78
+ __metadata("design:type", Function),
79
+ __metadata("design:paramtypes", [String]),
80
+ __metadata("design:returntype", Promise)
81
+ ], AdminTenantReportController.prototype, "remove", null);
82
+ exports.AdminTenantReportController = AdminTenantReportController = __decorate([
83
+ (0, swagger_1.ApiTags)('Admin - Tenant Reports'),
84
+ (0, swagger_1.ApiBearerAuth)(),
85
+ (0, common_1.UsePipes)(strict_validation_pipe_1.StrictValidationPipe),
86
+ (0, common_1.Controller)('api/admin/tenant-reports'),
87
+ __metadata("design:paramtypes", [admin_access_service_1.AdminAccessService,
88
+ list_filter_service_1.ListFilterService,
89
+ sql_service_1.SqlService,
90
+ admin_report_service_1.AdminReportService])
91
+ ], AdminTenantReportController);
92
+ //# sourceMappingURL=admin.tenant.report.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin.tenant.report.controller.js","sourceRoot":"","sources":["../../../src/admin/controllers/admin.tenant.report.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAQwB;AACxB,6CAAuE;AACvE,sFAAiF;AACjF,mFAA8E;AAC9E,mEAA+D;AAE/D,+EAAyE;AACzE,2EAAqE;AACrE,4FAAsF;AACtF,4FAA2F;AAC3F,2EAAsE;AACtE,2EAAsE;AAU/D,IAAM,2BAA2B,GAAjC,MAAM,2BAA2B;IACtC,YACmB,kBAAsC,EACtC,iBAAoC,EACpC,UAAsB,EACtB,kBAAsC;QAHtC,uBAAkB,GAAlB,kBAAkB,CAAoB;QACtC,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,eAAU,GAAV,UAAU,CAAY;QACtB,uBAAkB,GAAlB,kBAAkB,CAAoB;IACtD,CAAC;IAQE,AAAN,KAAK,CAAC,IAAI,CACA,GAA0B;QAElC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,CAAC;QAC7D,OAAO,IAAI,wDAAyB,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7E,CAAC;IAQK,AAAN,KAAK,CAAC,IAAI,CAAS,GAAwB;QACzC,MAAM,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,EAAE,CAAC;QACtD,OAAO,IAAI,6DAA8B,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,OAAO,CACvE,GAAG,CACJ,CAAC;IACJ,CAAC;IAQK,AAAN,KAAK,CAAC,MAAM,CAA6B,EAAU;QACjD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,CAAC;QAC/D,MAAM,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC5D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;CACF,CAAA;AA7CY,kEAA2B;AAchC;IANL,IAAA,aAAI,GAAE;IACN,IAAA,sBAAY,EAAC;QACZ,OAAO,EAAE,wDAAwD;QACjE,WAAW,EACT,ySAAyS;KAC5S,CAAC;IAEC,WAAA,IAAA,aAAI,GAAE,CAAA;;qCAAM,gDAAqB;;uDAInC;AAQK;IANL,IAAA,aAAI,EAAC,MAAM,CAAC;IACZ,IAAA,sBAAY,EAAC;QACZ,OAAO,EAAE,kCAAkC;QAC3C,WAAW,EACT,0HAA0H;KAC7H,CAAC;IACU,WAAA,IAAA,aAAI,GAAE,CAAA;;qCAAM,4CAAmB;;uDAK1C;AAQK;IANL,IAAA,eAAM,EAAC,KAAK,CAAC;IACb,IAAA,sBAAY,EAAC;QACZ,OAAO,EAAE,gCAAgC;QACzC,WAAW,EACT,+GAA+G;KAClH,CAAC;IACY,WAAA,IAAA,cAAK,EAAC,IAAI,EAAE,sBAAa,CAAC,CAAA;;;;yDAIvC;sCA5CU,2BAA2B;IAJvC,IAAA,iBAAO,EAAC,wBAAwB,CAAC;IACjC,IAAA,uBAAa,GAAE;IACf,IAAA,iBAAQ,EAAC,6CAAoB,CAAC;IAC9B,IAAA,mBAAU,EAAC,0BAA0B,CAAC;qCAGE,yCAAkB;QACnB,uCAAiB;QACxB,wBAAU;QACF,yCAAkB;GAL9C,2BAA2B,CA6CvC"}
@@ -0,0 +1,16 @@
1
+ import { ListFilterService } from '../../common/services/list.filter.service';
2
+ import { WebhookEventEntity } from '../../webhook/entities/webhook.event.entity';
3
+ import { WebhookService } from '../../webhook/services/webhook.service';
4
+ import { AdminAccessService } from '../services/admin.access.service';
5
+ import { WebhookEventListDto } from '../dtos/webhook.event.list.dto';
6
+ export declare class AdminWebhookEventController {
7
+ private readonly adminAccessService;
8
+ private readonly webhookService;
9
+ private readonly listFilterService;
10
+ constructor(adminAccessService: AdminAccessService, webhookService: WebhookService, listFilterService: ListFilterService);
11
+ providers(): Promise<string[]>;
12
+ list(dto: WebhookEventListDto): Promise<import("../..").CommonListResult>;
13
+ detail(id: string): Promise<WebhookEventEntity>;
14
+ replay(id: string): Promise<WebhookEventEntity>;
15
+ }
16
+ //# sourceMappingURL=admin.webhook.event.controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin.webhook.event.controller.d.ts","sourceRoot":"","sources":["../../../src/admin/controllers/admin.webhook.event.controller.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAI9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAGtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAOrE,qBAIa,2BAA2B;IAEpC,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;gBAFjB,kBAAkB,EAAE,kBAAkB,EACtC,cAAc,EAAE,cAAc,EAC9B,iBAAiB,EAAE,iBAAiB;IAQjD,SAAS,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAW9B,IAAI,CAAS,GAAG,EAAE,mBAAmB;IAUrC,MAAM,CACkB,EAAE,EAAE,MAAM,GACrC,OAAO,CAAC,kBAAkB,CAAC;IAWxB,MAAM,CACkB,EAAE,EAAE,MAAM,GACrC,OAAO,CAAC,kBAAkB,CAAC;CAiB/B"}