itlab-internal-services 2.15.7 → 2.16.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (371) hide show
  1. package/README.md +1 -187
  2. package/dist/classes/document-merger.class.js +2 -3
  3. package/dist/classes/index.d.ts +4 -1
  4. package/dist/classes/index.js +7 -3
  5. package/dist/classes/report-category.class.d.ts +55 -0
  6. package/dist/classes/report-category.class.js +120 -0
  7. package/dist/classes/schema-builder.class.d.ts +75 -0
  8. package/dist/classes/schema-builder.class.js +109 -0
  9. package/dist/classes/task-manager.class.d.ts +71 -0
  10. package/dist/classes/task-manager.class.js +99 -0
  11. package/dist/decorators/{account.decorator.d.ts → authenticated-account.decorator.d.ts} +4 -4
  12. package/dist/decorators/{account.decorator.js → authenticated-account.decorator.js} +8 -10
  13. package/dist/decorators/index.d.ts +1 -1
  14. package/dist/decorators/index.js +1 -1
  15. package/dist/exceptions/authenticated-user-required.exception.d.ts +34 -0
  16. package/dist/exceptions/authenticated-user-required.exception.js +51 -0
  17. package/dist/exceptions/bad-body.exception.d.ts +19 -8
  18. package/dist/exceptions/bad-body.exception.js +26 -10
  19. package/dist/exceptions/bad-parameter.exception.d.ts +23 -8
  20. package/dist/exceptions/bad-parameter.exception.js +41 -18
  21. package/dist/exceptions/duplicate.exception.d.ts +20 -8
  22. package/dist/exceptions/duplicate.exception.js +27 -10
  23. package/dist/exceptions/index.d.ts +1 -0
  24. package/dist/exceptions/index.js +1 -0
  25. package/dist/functions/add-views-likes-virtuals.function.d.ts +15 -0
  26. package/dist/functions/add-views-likes-virtuals.function.js +43 -0
  27. package/dist/functions/create-internal-axios-client.function.js +2 -2
  28. package/dist/functions/index.d.ts +1 -0
  29. package/dist/functions/index.js +3 -1
  30. package/dist/index.d.ts +5 -5
  31. package/dist/index.js +5 -5
  32. package/dist/interceptors/attribute-sanitizer.interceptor.d.ts +68 -0
  33. package/dist/interceptors/attribute-sanitizer.interceptor.js +154 -0
  34. package/dist/interceptors/index.d.ts +1 -0
  35. package/dist/interceptors/index.js +17 -0
  36. package/dist/middleware/http-logging.middleware.d.ts +19 -0
  37. package/dist/middleware/http-logging.middleware.js +50 -0
  38. package/dist/middleware/index.d.ts +1 -0
  39. package/dist/middleware/index.js +17 -0
  40. package/dist/models/account.model.d.ts +23 -0
  41. package/dist/models/account.model.js +59 -0
  42. package/dist/models/index.d.ts +3 -1
  43. package/dist/models/index.js +7 -3
  44. package/dist/{modules/search/models → models}/search-document.model.d.ts +1 -1
  45. package/dist/{modules/search/models → models}/search-document.model.js +1 -1
  46. package/dist/models/{account-entity.model.d.ts → user.model.d.ts} +8 -21
  47. package/dist/models/{account-entity.model.js → user.model.js} +11 -25
  48. package/dist/modules/authentication/authentication-module-options.interface.d.ts +2 -8
  49. package/dist/modules/authentication/authentication-options.parameter.d.ts +4 -0
  50. package/dist/modules/authentication/{inject-auth-options.decorator.js → authentication-options.parameter.js} +5 -2
  51. package/dist/modules/authentication/authentication.module.d.ts +23 -0
  52. package/dist/modules/authentication/authentication.module.js +24 -1
  53. package/dist/modules/authentication/guards/index.d.ts +2 -2
  54. package/dist/modules/authentication/guards/index.js +7 -7
  55. package/dist/modules/authentication/guards/jwt-auth.guard.d.ts +17 -0
  56. package/dist/modules/authentication/guards/jwt-auth.guard.js +67 -0
  57. package/dist/modules/authentication/guards/permissions.guard.d.ts +5 -27
  58. package/dist/modules/authentication/guards/permissions.guard.js +27 -59
  59. package/dist/modules/authentication/guards/public.guard.d.ts +7 -13
  60. package/dist/modules/authentication/guards/public.guard.js +10 -24
  61. package/dist/modules/authentication/guards/service-auth.guard.d.ts +22 -0
  62. package/dist/modules/authentication/guards/service-auth.guard.js +65 -0
  63. package/dist/modules/authentication/index.d.ts +3 -3
  64. package/dist/modules/authentication/index.js +3 -5
  65. package/dist/modules/cache/cache-response.interceptor.d.ts +2 -2
  66. package/dist/modules/cache/cache-response.interceptor.js +2 -2
  67. package/dist/modules/cache/index.d.ts +1 -0
  68. package/dist/modules/cache/index.js +1 -0
  69. package/dist/modules/comment/comment-module-options.interface.d.ts +38 -0
  70. package/dist/modules/comment/comment.controller.d.ts +24 -30
  71. package/dist/modules/comment/comment.controller.js +59 -61
  72. package/dist/modules/comment/comment.module-definition.d.ts +1 -42
  73. package/dist/modules/comment/comment.module-definition.js +1 -2
  74. package/dist/modules/comment/comment.module.d.ts +13 -13
  75. package/dist/modules/comment/comment.module.js +15 -42
  76. package/dist/modules/comment/comment.service.d.ts +27 -37
  77. package/dist/modules/comment/comment.service.js +50 -84
  78. package/dist/modules/comment/index.d.ts +2 -3
  79. package/dist/modules/comment/index.js +16 -7
  80. package/dist/modules/database/database.module.js +2 -5
  81. package/dist/modules/database/index.d.ts +2 -5
  82. package/dist/modules/database/index.js +17 -9
  83. package/dist/modules/index.d.ts +2 -6
  84. package/dist/modules/index.js +2 -6
  85. package/dist/modules/like/index.d.ts +2 -1
  86. package/dist/modules/like/index.js +16 -3
  87. package/dist/modules/like/like-module-options.interface.d.ts +21 -0
  88. package/dist/modules/like/like.controller.d.ts +45 -37
  89. package/dist/modules/like/like.controller.js +117 -102
  90. package/dist/modules/like/like.module-definition.d.ts +1 -17
  91. package/dist/modules/like/like.module-definition.js +1 -2
  92. package/dist/modules/like/like.module.d.ts +12 -12
  93. package/dist/modules/like/like.module.js +14 -37
  94. package/dist/modules/like/like.service.d.ts +31 -27
  95. package/dist/modules/like/like.service.js +42 -35
  96. package/dist/modules/merge/index.d.ts +3 -0
  97. package/dist/modules/merge/index.js +19 -0
  98. package/dist/modules/merge/merge-module-options.interface.d.ts +21 -0
  99. package/dist/modules/merge/merge.controller.d.ts +30 -0
  100. package/dist/modules/merge/merge.controller.js +76 -0
  101. package/dist/modules/merge/merge.module.d.ts +18 -0
  102. package/dist/modules/merge/merge.module.js +41 -0
  103. package/dist/modules/merge/merge.service.interface.d.ts +17 -0
  104. package/dist/modules/services/base-http.service.d.ts +83 -0
  105. package/dist/modules/services/base-http.service.js +124 -0
  106. package/dist/modules/services/base-urls.d.ts +22 -0
  107. package/dist/modules/services/base-urls.js +121 -0
  108. package/dist/modules/services/index.d.ts +4 -0
  109. package/dist/modules/services/index.js +20 -0
  110. package/dist/modules/services/providers/accounts.service.d.ts +52 -0
  111. package/dist/modules/services/providers/accounts.service.js +84 -0
  112. package/dist/modules/services/providers/books.service.d.ts +29 -0
  113. package/dist/modules/services/providers/books.service.js +55 -0
  114. package/dist/modules/services/providers/changelog.service.d.ts +18 -0
  115. package/dist/modules/services/providers/changelog.service.js +43 -0
  116. package/dist/modules/services/providers/comments/comments.service-definition.d.ts +1 -0
  117. package/dist/modules/services/providers/comments/comments.service-definition.js +4 -0
  118. package/dist/modules/services/providers/comments/comments.service.d.ts +60 -0
  119. package/dist/modules/services/providers/comments/comments.service.js +139 -0
  120. package/dist/modules/services/providers/comments/index.d.ts +1 -0
  121. package/dist/{factories → modules/services/providers/comments}/index.js +1 -1
  122. package/dist/modules/services/providers/content/content-return-types.d.ts +19 -0
  123. package/dist/modules/services/providers/content/content-return-types.js +7 -0
  124. package/dist/modules/services/providers/content/content.service-definition.d.ts +1 -0
  125. package/dist/modules/services/providers/content/content.service-definition.js +4 -0
  126. package/dist/modules/services/providers/content/content.service.d.ts +96 -0
  127. package/dist/modules/services/providers/content/content.service.js +231 -0
  128. package/dist/modules/services/providers/content/index.d.ts +2 -0
  129. package/dist/modules/{search/models → services/providers/content}/index.js +1 -1
  130. package/dist/modules/services/providers/demo-hive.service.d.ts +29 -0
  131. package/dist/modules/services/providers/demo-hive.service.js +55 -0
  132. package/dist/modules/services/providers/events.service.d.ts +29 -0
  133. package/dist/modules/services/providers/events.service.js +55 -0
  134. package/dist/modules/services/providers/hackschool.service.d.ts +49 -0
  135. package/dist/modules/services/providers/hackschool.service.js +79 -0
  136. package/dist/modules/services/providers/ideas.service.d.ts +18 -0
  137. package/dist/modules/services/providers/ideas.service.js +43 -0
  138. package/dist/modules/services/providers/index.d.ts +19 -0
  139. package/dist/modules/services/providers/index.js +35 -0
  140. package/dist/modules/services/providers/lunch-roulette.service.d.ts +18 -0
  141. package/dist/modules/services/providers/lunch-roulette.service.js +43 -0
  142. package/dist/modules/services/providers/mail/index.d.ts +3 -0
  143. package/dist/modules/services/providers/mail/index.js +19 -0
  144. package/dist/modules/services/providers/mail/mail-types.d.ts +30 -0
  145. package/dist/modules/services/providers/mail/mail-types.js +22 -0
  146. package/dist/modules/services/providers/mail/mail.service.d.ts +99 -0
  147. package/dist/modules/{mail → services/providers/mail}/mail.service.js +55 -92
  148. package/dist/modules/services/providers/newletter.service.d.ts +29 -0
  149. package/dist/modules/services/providers/newletter.service.js +55 -0
  150. package/dist/modules/services/providers/newsroom.service.d.ts +47 -0
  151. package/dist/modules/services/providers/newsroom.service.js +73 -0
  152. package/dist/modules/services/providers/notification/dtos/schedule-notification.dto.js +2 -0
  153. package/dist/modules/services/providers/notification/index.d.ts +2 -0
  154. package/dist/modules/services/providers/notification/index.js +18 -0
  155. package/dist/modules/services/providers/notification/notification.service-definition.d.ts +1 -0
  156. package/dist/modules/services/providers/notification/notification.service-definition.js +4 -0
  157. package/dist/modules/services/providers/notification/notification.service.d.ts +50 -0
  158. package/dist/modules/services/providers/notification/notification.service.js +130 -0
  159. package/dist/modules/services/providers/pass/dtos/create-guild-member-pass.dto.js +2 -0
  160. package/dist/modules/services/providers/pass/dtos/create-team-member-pass.dto.js +2 -0
  161. package/dist/modules/services/providers/pass/index.d.ts +2 -0
  162. package/dist/modules/services/providers/pass/index.js +18 -0
  163. package/dist/modules/services/providers/pass/pass-types.d.ts +18 -0
  164. package/dist/modules/services/providers/pass/pass-types.js +7 -0
  165. package/dist/modules/{pass → services/providers/pass}/pass.service.d.ts +15 -39
  166. package/dist/modules/{pass → services/providers/pass}/pass.service.js +46 -61
  167. package/dist/modules/services/providers/podcasts.service.d.ts +29 -0
  168. package/dist/modules/services/providers/podcasts.service.js +55 -0
  169. package/dist/modules/services/providers/search/dtos/index-search-document.dto.js +2 -0
  170. package/dist/modules/services/providers/search/index.d.ts +2 -0
  171. package/dist/modules/services/providers/search/index.js +18 -0
  172. package/dist/modules/services/providers/search/search.service-definition.d.ts +1 -0
  173. package/dist/modules/services/providers/search/search.service-definition.js +4 -0
  174. package/dist/modules/services/providers/search/search.service.d.ts +66 -0
  175. package/dist/modules/services/providers/search/search.service.js +171 -0
  176. package/dist/modules/services/providers/team.service.d.ts +29 -0
  177. package/dist/modules/services/providers/team.service.js +55 -0
  178. package/dist/modules/services/providers/tech-radar.service.d.ts +39 -0
  179. package/dist/modules/services/providers/tech-radar.service.js +67 -0
  180. package/dist/modules/services/services-module-options.interface.d.ts +4 -0
  181. package/dist/modules/services/services-module-options.interface.js +2 -0
  182. package/dist/modules/services/services-options.parameter.d.ts +1 -0
  183. package/dist/modules/services/services-options.parameter.js +8 -0
  184. package/dist/modules/services/services.module-definition.d.ts +16 -0
  185. package/dist/modules/services/services.module-definition.js +21 -0
  186. package/dist/modules/services/services.module.d.ts +17 -0
  187. package/dist/modules/services/services.module.js +63 -0
  188. package/dist/pipes/index.d.ts +2 -3
  189. package/dist/pipes/index.js +2 -3
  190. package/dist/pipes/params/hub-id.pipe.d.ts +22 -0
  191. package/dist/pipes/{hub-id.pipe.js → params/hub-id.pipe.js} +14 -17
  192. package/dist/pipes/params/hub-resource.pipe.d.ts +22 -0
  193. package/dist/pipes/{hub-resource.pipe.js → params/hub-resource.pipe.js} +19 -20
  194. package/dist/pipes/params/index.d.ts +3 -0
  195. package/dist/pipes/params/index.js +19 -0
  196. package/dist/pipes/params/mongo-id.pipe.d.ts +15 -0
  197. package/dist/pipes/params/mongo-id.pipe.js +52 -0
  198. package/dist/pipes/queries/index.d.ts +3 -0
  199. package/dist/pipes/queries/index.js +19 -0
  200. package/dist/pipes/queries/mongo-ids.pipe.d.ts +22 -0
  201. package/dist/pipes/queries/mongo-ids.pipe.js +60 -0
  202. package/dist/pipes/queries/optional-boolean.pipe.d.ts +29 -0
  203. package/dist/pipes/queries/optional-boolean.pipe.js +72 -0
  204. package/dist/pipes/queries/optional-include-drafts.pipe.d.ts +28 -0
  205. package/dist/pipes/queries/optional-include-drafts.pipe.js +38 -0
  206. package/dist/properties/content-return-type.property.d.ts +7 -0
  207. package/dist/properties/content-return-type.property.js +22 -0
  208. package/dist/properties/index.d.ts +4 -0
  209. package/dist/properties/index.js +11 -0
  210. package/dist/properties/likeable.properties.d.ts +1 -0
  211. package/dist/properties/likeable.properties.js +66 -0
  212. package/dist/properties/viewable.properties.d.ts +1 -0
  213. package/dist/properties/viewable.properties.js +66 -0
  214. package/dist/swagger/index.d.ts +1 -0
  215. package/dist/swagger/index.js +5 -0
  216. package/dist/swagger/remove-public-route-auth.plugin.d.ts +9 -0
  217. package/dist/swagger/remove-public-route-auth.plugin.js +25 -0
  218. package/dist/swagger/swagger-options.interface.d.ts +14 -0
  219. package/dist/swagger/swagger-options.interface.js +2 -0
  220. package/dist/swagger/swagger.function.d.ts +11 -0
  221. package/dist/swagger/swagger.function.js +47 -0
  222. package/dist/transform/boolean.transform.js +3 -3
  223. package/dist/types/index.d.ts +2 -0
  224. package/dist/types/index.js +18 -0
  225. package/dist/types/likeable.type.d.ts +15 -0
  226. package/dist/types/likeable.type.js +2 -0
  227. package/dist/types/viewable.type.d.ts +15 -0
  228. package/dist/types/viewable.type.js +2 -0
  229. package/package.json +2 -2
  230. package/dist/classes/document-updater.class.d.ts +0 -39
  231. package/dist/classes/document-updater.class.js +0 -57
  232. package/dist/factories/index.d.ts +0 -1
  233. package/dist/factories/virtuals.factory.d.ts +0 -79
  234. package/dist/factories/virtuals.factory.js +0 -171
  235. package/dist/http-logger.middleware.d.ts +0 -12
  236. package/dist/http-logger.middleware.js +0 -43
  237. package/dist/likeable.interface.d.ts +0 -41
  238. package/dist/likeable.interface.js +0 -48
  239. package/dist/modules/authentication/guards/auth.guard.d.ts +0 -36
  240. package/dist/modules/authentication/guards/auth.guard.js +0 -107
  241. package/dist/modules/authentication/guards/internal.guard.d.ts +0 -33
  242. package/dist/modules/authentication/guards/internal.guard.js +0 -72
  243. package/dist/modules/authentication/inject-auth-options.decorator.d.ts +0 -1
  244. package/dist/modules/comment/comment.model.d.ts +0 -29
  245. package/dist/modules/comment/comment.model.js +0 -43
  246. package/dist/modules/content/content.module-definition.d.ts +0 -5
  247. package/dist/modules/content/content.module-definition.js +0 -8
  248. package/dist/modules/content/content.module.d.ts +0 -31
  249. package/dist/modules/content/content.module.js +0 -60
  250. package/dist/modules/content/content.service.d.ts +0 -50
  251. package/dist/modules/content/content.service.js +0 -145
  252. package/dist/modules/content/index.d.ts +0 -3
  253. package/dist/modules/content/index.js +0 -9
  254. package/dist/modules/database/model-service/dbs/hub-account.db.d.ts +0 -28
  255. package/dist/modules/database/model-service/dbs/hub-account.db.js +0 -44
  256. package/dist/modules/database/model-service/dbs/hub-books.db.d.ts +0 -23
  257. package/dist/modules/database/model-service/dbs/hub-books.db.js +0 -45
  258. package/dist/modules/database/model-service/dbs/hub-comments.db.d.ts +0 -29
  259. package/dist/modules/database/model-service/dbs/hub-comments.db.js +0 -68
  260. package/dist/modules/database/model-service/dbs/hub-content.db.d.ts +0 -24
  261. package/dist/modules/database/model-service/dbs/hub-content.db.js +0 -49
  262. package/dist/modules/database/model-service/dbs/hub-demo-hive.db.d.ts +0 -23
  263. package/dist/modules/database/model-service/dbs/hub-demo-hive.db.js +0 -45
  264. package/dist/modules/database/model-service/dbs/hub-events.db.d.ts +0 -24
  265. package/dist/modules/database/model-service/dbs/hub-events.db.js +0 -49
  266. package/dist/modules/database/model-service/dbs/hub-hackschool.db.d.ts +0 -60
  267. package/dist/modules/database/model-service/dbs/hub-hackschool.db.js +0 -106
  268. package/dist/modules/database/model-service/dbs/hub-newsroom.db.d.ts +0 -25
  269. package/dist/modules/database/model-service/dbs/hub-newsroom.db.js +0 -53
  270. package/dist/modules/database/model-service/dbs/hub-podcasts.db.d.ts +0 -23
  271. package/dist/modules/database/model-service/dbs/hub-podcasts.db.js +0 -45
  272. package/dist/modules/database/model-service/dbs/hub-team.db.d.ts +0 -22
  273. package/dist/modules/database/model-service/dbs/hub-team.db.js +0 -41
  274. package/dist/modules/database/model-service/dbs/hub-tech-radar.db.d.ts +0 -42
  275. package/dist/modules/database/model-service/dbs/hub-tech-radar.db.js +0 -81
  276. package/dist/modules/database/model-service/model.service.d.ts +0 -6407
  277. package/dist/modules/database/model-service/model.service.js +0 -136
  278. package/dist/modules/database/populate-service/populate.service.d.ts +0 -73
  279. package/dist/modules/database/populate-service/populate.service.js +0 -163
  280. package/dist/modules/database/service-mapper-service/service-mapper.service.d.ts +0 -32
  281. package/dist/modules/database/service-mapper-service/service-mapper.service.js +0 -73
  282. package/dist/modules/fetch/fetch.module.d.ts +0 -31
  283. package/dist/modules/fetch/fetch.module.js +0 -60
  284. package/dist/modules/fetch/fetch.service.d.ts +0 -153
  285. package/dist/modules/fetch/fetch.service.js +0 -274
  286. package/dist/modules/fetch/index.d.ts +0 -2
  287. package/dist/modules/fetch/index.js +0 -7
  288. package/dist/modules/mail/index.d.ts +0 -4
  289. package/dist/modules/mail/index.js +0 -23
  290. package/dist/modules/mail/mail.module.d.ts +0 -31
  291. package/dist/modules/mail/mail.module.js +0 -60
  292. package/dist/modules/mail/mail.service.d.ts +0 -136
  293. package/dist/modules/notification/index.d.ts +0 -3
  294. package/dist/modules/notification/index.js +0 -22
  295. package/dist/modules/notification/notification.module-definition.d.ts +0 -5
  296. package/dist/modules/notification/notification.module-definition.js +0 -8
  297. package/dist/modules/notification/notification.module.d.ts +0 -34
  298. package/dist/modules/notification/notification.module.js +0 -63
  299. package/dist/modules/notification/notification.service.d.ts +0 -42
  300. package/dist/modules/notification/notification.service.js +0 -100
  301. package/dist/modules/pass/index.d.ts +0 -3
  302. package/dist/modules/pass/index.js +0 -22
  303. package/dist/modules/pass/pass.module.d.ts +0 -32
  304. package/dist/modules/pass/pass.module.js +0 -61
  305. package/dist/modules/search/index.d.ts +0 -4
  306. package/dist/modules/search/index.js +0 -23
  307. package/dist/modules/search/models/index.d.ts +0 -1
  308. package/dist/modules/search/search.module-definition.d.ts +0 -5
  309. package/dist/modules/search/search.module-definition.js +0 -8
  310. package/dist/modules/search/search.module.d.ts +0 -33
  311. package/dist/modules/search/search.module.js +0 -62
  312. package/dist/modules/search/search.service.d.ts +0 -49
  313. package/dist/modules/search/search.service.js +0 -120
  314. package/dist/pipes/hub-id.pipe.d.ts +0 -22
  315. package/dist/pipes/hub-resource.pipe.d.ts +0 -22
  316. package/dist/pipes/mongo-id.pipe.d.ts +0 -14
  317. package/dist/pipes/mongo-id.pipe.js +0 -52
  318. package/dist/swagger.config.d.ts +0 -36
  319. package/dist/swagger.config.js +0 -76
  320. package/dist/viewable.interface.d.ts +0 -41
  321. package/dist/viewable.interface.js +0 -48
  322. /package/dist/modules/{mail/dtos/auth-login-token-mail.dto.js → comment/comment-module-options.interface.js} +0 -0
  323. /package/dist/modules/{mail/dtos/auth-password-reset-mail.dto.js → like/like-module-options.interface.js} +0 -0
  324. /package/dist/modules/{mail/dtos/event-cancel-mail.dto.js → merge/merge-module-options.interface.js} +0 -0
  325. /package/dist/modules/{mail/dtos/event-invite-mail.dto.js → merge/merge.service.interface.js} +0 -0
  326. /package/dist/modules/{mail → services/providers/mail}/dtos/auth-login-token-mail.dto.d.ts +0 -0
  327. /package/dist/modules/{mail/dtos/idea-status-updated-mail.dto.js → services/providers/mail/dtos/auth-login-token-mail.dto.js} +0 -0
  328. /package/dist/modules/{mail → services/providers/mail}/dtos/auth-password-reset-mail.dto.d.ts +0 -0
  329. /package/dist/modules/{mail/dtos/idea-submitted-mail.dto.js → services/providers/mail/dtos/auth-password-reset-mail.dto.js} +0 -0
  330. /package/dist/modules/{mail → services/providers/mail}/dtos/event-cancel-mail.dto.d.ts +0 -0
  331. /package/dist/modules/{mail/dtos/lunch-roulette-cancel-mail.dto.js → services/providers/mail/dtos/event-cancel-mail.dto.js} +0 -0
  332. /package/dist/modules/{mail → services/providers/mail}/dtos/event-invite-mail.dto.d.ts +0 -0
  333. /package/dist/modules/{mail/dtos/lunch-roulette-matched-mail.dto.js → services/providers/mail/dtos/event-invite-mail.dto.js} +0 -0
  334. /package/dist/modules/{mail → services/providers/mail}/dtos/idea-status-updated-mail.dto.d.ts +0 -0
  335. /package/dist/modules/{mail/dtos/lunch-roulette-submitted-mail.dto.js → services/providers/mail/dtos/idea-status-updated-mail.dto.js} +0 -0
  336. /package/dist/modules/{mail → services/providers/mail}/dtos/idea-submitted-mail.dto.d.ts +0 -0
  337. /package/dist/modules/{mail/dtos/lunch-roulette-unmatched-mail.dto.js → services/providers/mail/dtos/idea-submitted-mail.dto.js} +0 -0
  338. /package/dist/modules/{mail → services/providers/mail}/dtos/index.d.ts +0 -0
  339. /package/dist/modules/{mail → services/providers/mail}/dtos/index.js +0 -0
  340. /package/dist/modules/{mail → services/providers/mail}/dtos/lunch-roulette-cancel-mail.dto.d.ts +0 -0
  341. /package/dist/modules/{mail/dtos/newsletter-issue-mail.dto.js → services/providers/mail/dtos/lunch-roulette-cancel-mail.dto.js} +0 -0
  342. /package/dist/modules/{mail → services/providers/mail}/dtos/lunch-roulette-matched-mail.dto.d.ts +0 -0
  343. /package/dist/modules/{mail/dtos/newsletter-subscribed-mail.dto.js → services/providers/mail/dtos/lunch-roulette-matched-mail.dto.js} +0 -0
  344. /package/dist/modules/{mail → services/providers/mail}/dtos/lunch-roulette-submitted-mail.dto.d.ts +0 -0
  345. /package/dist/modules/{mail/dtos/newsletter-unsubscribed-mail.dto.js → services/providers/mail/dtos/lunch-roulette-submitted-mail.dto.js} +0 -0
  346. /package/dist/modules/{mail → services/providers/mail}/dtos/lunch-roulette-unmatched-mail.dto.d.ts +0 -0
  347. /package/dist/modules/{mail/dtos/notification-mail.dto.js → services/providers/mail/dtos/lunch-roulette-unmatched-mail.dto.js} +0 -0
  348. /package/dist/modules/{mail → services/providers/mail}/dtos/newsletter-issue-mail.dto.d.ts +0 -0
  349. /package/dist/modules/{notification/dtos/schedule-notification.dto.js → services/providers/mail/dtos/newsletter-issue-mail.dto.js} +0 -0
  350. /package/dist/modules/{mail → services/providers/mail}/dtos/newsletter-subscribed-mail.dto.d.ts +0 -0
  351. /package/dist/modules/{pass/dtos/create-guild-member-pass.dto.js → services/providers/mail/dtos/newsletter-subscribed-mail.dto.js} +0 -0
  352. /package/dist/modules/{mail → services/providers/mail}/dtos/newsletter-unsubscribed-mail.dto.d.ts +0 -0
  353. /package/dist/modules/{pass/dtos/create-team-member-pass.dto.js → services/providers/mail/dtos/newsletter-unsubscribed-mail.dto.js} +0 -0
  354. /package/dist/modules/{mail → services/providers/mail}/dtos/notification-mail.dto.d.ts +0 -0
  355. /package/dist/modules/{search/dtos/index-search-document.dto.js → services/providers/mail/dtos/notification-mail.dto.js} +0 -0
  356. /package/dist/modules/{mail → services/providers/mail}/models/index.d.ts +0 -0
  357. /package/dist/modules/{mail → services/providers/mail}/models/index.js +0 -0
  358. /package/dist/modules/{mail → services/providers/mail}/models/mail-recipient.model.d.ts +0 -0
  359. /package/dist/modules/{mail → services/providers/mail}/models/mail-recipient.model.js +0 -0
  360. /package/dist/modules/{notification → services/providers/notification}/dtos/index.d.ts +0 -0
  361. /package/dist/modules/{notification → services/providers/notification}/dtos/index.js +0 -0
  362. /package/dist/modules/{notification → services/providers/notification}/dtos/schedule-notification.dto.d.ts +0 -0
  363. /package/dist/modules/{pass → services/providers/pass}/dtos/create-guild-member-pass.dto.d.ts +0 -0
  364. /package/dist/modules/{pass → services/providers/pass}/dtos/create-team-member-pass.dto.d.ts +0 -0
  365. /package/dist/modules/{pass → services/providers/pass}/dtos/index.d.ts +0 -0
  366. /package/dist/modules/{pass → services/providers/pass}/dtos/index.js +0 -0
  367. /package/dist/modules/{search → services/providers/search}/dtos/index-search-document.dto.d.ts +0 -0
  368. /package/dist/modules/{search → services/providers/search}/dtos/index.d.ts +0 -0
  369. /package/dist/modules/{search → services/providers/search}/dtos/index.js +0 -0
  370. /package/dist/{modules/content → properties}/content.property.d.ts +0 -0
  371. /package/dist/{modules/content → properties}/content.property.js +0 -0
@@ -1,62 +0,0 @@
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 SearchModule_1;
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.SearchModule = void 0;
11
- const common_1 = require("@nestjs/common");
12
- const search_module_definition_1 = require("./search.module-definition");
13
- const search_service_1 = require("./search.service");
14
- /**
15
- * SearchModule
16
- *
17
- * Provides search functionality through indexing, deletion, and similarity search.
18
- * Connects to an external Meilisearch-based service.
19
- */
20
- let SearchModule = SearchModule_1 = class SearchModule {
21
- /**
22
- * Internal utility to generate the module configuration.
23
- *
24
- * @param {boolean} isGlobal - Whether the module should be globally scoped.
25
- * @param {HubResource} resource - The resource associated with the module.
26
- * @returns {DynamicModule} - Configured dynamic module.
27
- */
28
- static createModule(isGlobal, resource) {
29
- return {
30
- global: isGlobal,
31
- module: SearchModule_1,
32
- providers: [search_service_1.SearchService, { provide: search_module_definition_1.SEARCH_MODULE_RESOURCE_TOKEN, useValue: resource }],
33
- exports: [search_service_1.SearchService],
34
- };
35
- }
36
- /**
37
- * Registers the module globally, making SearchService accessible application-wide.
38
- *
39
- * @param {HubResource} resource - The resource associated with the module.
40
- * @returns {DynamicModule} - Global dynamic module instance.
41
- */
42
- static forRoot(resource) {
43
- return this.createModule(true, resource);
44
- }
45
- /**
46
- * Registers the module locally (non-global), restricting SearchService
47
- * to the importing module's scope.
48
- *
49
- * @param {HubResource} resource - The resource associated with the module.
50
- * @returns {DynamicModule} - Local dynamic module instance.
51
- */
52
- static register(resource) {
53
- return this.createModule(false, resource);
54
- }
55
- };
56
- exports.SearchModule = SearchModule;
57
- exports.SearchModule = SearchModule = SearchModule_1 = __decorate([
58
- (0, common_1.Module)({
59
- providers: [search_service_1.SearchService],
60
- exports: [search_service_1.SearchService],
61
- })
62
- ], SearchModule);
@@ -1,49 +0,0 @@
1
- import { ConfigService } from '@nestjs/config';
2
- import { HubResource } from '../../hub-resource.enum';
3
- import { AuthenticationModuleOptions } from '../authentication';
4
- import { IndexSearchDocumentDto } from './dtos';
5
- import { SearchDocument } from './models';
6
- /**
7
- * SearchService
8
- *
9
- * Handles indexing, deindexing, and similarity search for specified resource types.
10
- * Acts as a bridge to an internal search microservice (e.g., Meilisearch).
11
- */
12
- export declare class SearchService {
13
- private readonly resource;
14
- private readonly authOptions;
15
- private readonly configService;
16
- private readonly logger;
17
- private readonly axiosInstance;
18
- /**
19
- * Initializes the SearchService with appropriate API client and settings.
20
- *
21
- * @param {HubResource} resource - Resource type injected via DI
22
- * @param {AuthenticationModuleOptions} authOptions - Contains Kubernetes service account token
23
- * @param {ConfigService} configService - Configuration service for environment checks
24
- */
25
- constructor(resource: HubResource, authOptions: AuthenticationModuleOptions, configService: ConfigService);
26
- /**
27
- * Indexes or updates a searchable document in the search index.
28
- * Useful for ensuring resource changes are discoverable via search.
29
- *
30
- * @param {string} resourceId - Unique identifier of the resource.
31
- * @param {IndexSearchDocumentDto} document - Document containing searchable content.
32
- */
33
- indexDocument(resourceId: string, document: IndexSearchDocumentDto): void;
34
- /**
35
- * Removes a resource from the search index.
36
- * Ideal when the resource is deleted or should no longer be discoverable.
37
- *
38
- * @param {string} resourceId - Identifier of the resource to be deindexed.
39
- */
40
- removeDocumentFromIndex(resourceId: string): void;
41
- /**
42
- * Retrieves documents similar to the provided resource from the search index.
43
- * Helps with content discovery and recommendations.
44
- *
45
- * @param {string} resourceId - Identifier of the base resource for similarity matching.
46
- * @returns {Promise<SearchDocument[]>} - Array of documents similar to the given resource.
47
- */
48
- findSimilarDocuments(resourceId: string): Promise<SearchDocument[]>;
49
- }
@@ -1,120 +0,0 @@
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
- var SearchService_1;
15
- Object.defineProperty(exports, "__esModule", { value: true });
16
- exports.SearchService = void 0;
17
- const common_1 = require("@nestjs/common");
18
- const config_1 = require("@nestjs/config");
19
- const create_internal_axios_client_function_1 = require("../../functions/create-internal-axios-client.function");
20
- const hub_resource_enum_1 = require("../../hub-resource.enum");
21
- const authentication_1 = require("../authentication");
22
- const search_module_definition_1 = require("./search.module-definition");
23
- /**
24
- * SearchService
25
- *
26
- * Handles indexing, deindexing, and similarity search for specified resource types.
27
- * Acts as a bridge to an internal search microservice (e.g., Meilisearch).
28
- */
29
- let SearchService = SearchService_1 = class SearchService {
30
- /**
31
- * Initializes the SearchService with appropriate API client and settings.
32
- *
33
- * @param {HubResource} resource - Resource type injected via DI
34
- * @param {AuthenticationModuleOptions} authOptions - Contains Kubernetes service account token
35
- * @param {ConfigService} configService - Configuration service for environment checks
36
- */
37
- constructor(resource, authOptions, configService) {
38
- this.resource = resource;
39
- this.authOptions = authOptions;
40
- this.configService = configService;
41
- this.logger = new common_1.Logger(SearchService_1.name);
42
- const isProduction = this.configService.get('NODE_ENV') === 'production';
43
- // Construct base URL conditionally based on environment.
44
- const baseUrl = isProduction
45
- ? 'http://organisation-hub-search-service.organisation-hub-services.svc.cluster.local:3000/internal/'
46
- : 'https://services.svi-itlab.com/search/internal/';
47
- // Initialize axios instance with k8s token and appropriate URL.
48
- this.axiosInstance = (0, create_internal_axios_client_function_1.createInternalAxiosClient)({
49
- k8sToken: this.authOptions.k8sToken,
50
- baseUrl: `${baseUrl}${this.resource}/`,
51
- });
52
- }
53
- // ─────────────────────────────────────────────
54
- // Indexing Operations
55
- // ─────────────────────────────────────────────
56
- /**
57
- * Indexes or updates a searchable document in the search index.
58
- * Useful for ensuring resource changes are discoverable via search.
59
- *
60
- * @param {string} resourceId - Unique identifier of the resource.
61
- * @param {IndexSearchDocumentDto} document - Document containing searchable content.
62
- */
63
- indexDocument(resourceId, document) {
64
- this.logger.log(`Indexing resource "${this.resource}" with ID: ${resourceId}`);
65
- this.axiosInstance
66
- .post(`${resourceId}`, document)
67
- .then(() => {
68
- this.logger.log(`Indexed ${this.resource} (${resourceId}) successfully.`);
69
- })
70
- .catch(({ response }) => {
71
- this.logger.error(`Failed to index ${this.resource} (${resourceId}): ${JSON.stringify(response === null || response === void 0 ? void 0 : response.data)}`);
72
- });
73
- }
74
- /**
75
- * Removes a resource from the search index.
76
- * Ideal when the resource is deleted or should no longer be discoverable.
77
- *
78
- * @param {string} resourceId - Identifier of the resource to be deindexed.
79
- */
80
- removeDocumentFromIndex(resourceId) {
81
- this.logger.log(`Deindexing resource "${this.resource}" with ID: ${resourceId}`);
82
- this.axiosInstance
83
- .delete(`${resourceId}`)
84
- .then(() => {
85
- this.logger.log(`Removed ${this.resource} (${resourceId}) from index.`);
86
- })
87
- .catch(({ response }) => {
88
- this.logger.error(`Failed to remove ${this.resource} (${resourceId}) from index: ${JSON.stringify(response === null || response === void 0 ? void 0 : response.data)}`);
89
- });
90
- }
91
- // ─────────────────────────────────────────────
92
- // Similarity Search
93
- // ─────────────────────────────────────────────
94
- /**
95
- * Retrieves documents similar to the provided resource from the search index.
96
- * Helps with content discovery and recommendations.
97
- *
98
- * @param {string} resourceId - Identifier of the base resource for similarity matching.
99
- * @returns {Promise<SearchDocument[]>} - Array of documents similar to the given resource.
100
- */
101
- async findSimilarDocuments(resourceId) {
102
- this.logger.log(`Searching for documents similar to "${this.resource}" with ID: ${resourceId}`);
103
- try {
104
- const response = await this.axiosInstance.get(`${resourceId}/similar`);
105
- this.logger.log(`Similar documents retrieved for ${this.resource} (${resourceId})`);
106
- return response.data;
107
- }
108
- catch (error) {
109
- this.logger.error(`Error retrieving similar documents for ${this.resource} (${resourceId}): ${error.message}`);
110
- throw error;
111
- }
112
- }
113
- };
114
- exports.SearchService = SearchService;
115
- exports.SearchService = SearchService = SearchService_1 = __decorate([
116
- (0, common_1.Injectable)(),
117
- __param(0, (0, common_1.Inject)(search_module_definition_1.SEARCH_MODULE_RESOURCE_TOKEN)),
118
- __param(1, (0, authentication_1.InjectAuthOptions)()),
119
- __metadata("design:paramtypes", [String, Object, config_1.ConfigService])
120
- ], SearchService);
@@ -1,22 +0,0 @@
1
- import { ValidationOptions } from 'class-validator';
2
- /**
3
- * Creates a parameter decorator that validates a route parameter as a HubId.
4
- *
5
- * @param {string} parameterName - Name of the parameter to validate.
6
- * @returns {ParameterDecorator}
7
- */
8
- export declare function HubIdParam(parameterName: string): ParameterDecorator;
9
- /**
10
- * Combines Swagger metadata and error response for HubId parameters.
11
- *
12
- * @param {string} parameterName - Name of the parameter for docs/errors.
13
- * @returns {MethodDecorator}
14
- */
15
- export declare function ApiHubId(parameterName: string): MethodDecorator;
16
- /**
17
- * Decorator for validating DTO properties as HubId using class-validator.
18
- *
19
- * @param {ValidationOptions} [options] - Optional validation settings.
20
- * @returns {PropertyDecorator}
21
- */
22
- export declare function IsHubId(options?: ValidationOptions): PropertyDecorator;
@@ -1,22 +0,0 @@
1
- import { HubResource } from '../hub-resource.enum';
2
- /**
3
- * Decorator to validate and transform a route parameter as a HubResource.
4
- *
5
- * @param {string} parameterName - Name of the parameter to validate.
6
- * @returns {ParameterDecorator}
7
- */
8
- export declare function HubResourceParam(parameterName: string): ParameterDecorator;
9
- /**
10
- * Adds Swagger metadata and error documentation for HubResource parameters.
11
- *
12
- * @param {string} parameterName - Parameter name for docs/errors.
13
- * @returns {MethodDecorator & ClassDecorator}
14
- */
15
- export declare function ApiHubResource(parameterName: string): MethodDecorator & ClassDecorator;
16
- /**
17
- * Determines if a value is a valid HubResource.
18
- *
19
- * @param {unknown} value - value to validate.
20
- * @returns {boolean} - True if valid.
21
- */
22
- export declare function isHubResource(value: unknown): value is HubResource;
@@ -1,14 +0,0 @@
1
- /**
2
- * Decorator to validate and transform a parameter as a MongoId.
3
- *
4
- * @param {string} parameterName - Parameter name to validate.
5
- * @returns {ParameterDecorator}
6
- */
7
- export declare function MongoIdParam(parameterName: string): ParameterDecorator;
8
- /**
9
- * Applies Swagger metadata and error handling for MongoId parameters.
10
- *
11
- * @param {string} parameterName - Parameter name for docs/errors.
12
- * @returns {MethodDecorator & ClassDecorator}
13
- */
14
- export declare function ApiMongoId(parameterName: string): MethodDecorator & ClassDecorator;
@@ -1,52 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MongoIdParam = MongoIdParam;
4
- exports.ApiMongoId = ApiMongoId;
5
- const common_1 = require("@nestjs/common");
6
- const swagger_1 = require("@nestjs/swagger");
7
- const class_validator_1 = require("class-validator");
8
- const exceptions_1 = require("../exceptions");
9
- /**
10
- * @class ParseMongoIdPipe
11
- *
12
- * Pipe to validate and transform a parameter into a valid MongoDB ObjectId string.
13
- * Throws a `BadParameterException` if the value is invalid.
14
- */
15
- class ParseMongoIdPipe {
16
- constructor(parameterName) {
17
- this.parameterName = parameterName;
18
- }
19
- /**
20
- * @param {unknown} value - Route parameter value.
21
- * @returns {string} - Validated Mongo ObjectId string.
22
- * @throws {BadParameterException} - If not a valid Mongo ID.
23
- */
24
- transform(value) {
25
- if ((0, class_validator_1.isMongoId)(value)) {
26
- return String(value);
27
- }
28
- throw new exceptions_1.BadParameterException(this.parameterName);
29
- }
30
- }
31
- /**
32
- * Decorator to validate and transform a parameter as a MongoId.
33
- *
34
- * @param {string} parameterName - Parameter name to validate.
35
- * @returns {ParameterDecorator}
36
- */
37
- function MongoIdParam(parameterName) {
38
- return (0, common_1.Param)(parameterName, new ParseMongoIdPipe(parameterName));
39
- }
40
- /**
41
- * Applies Swagger metadata and error handling for MongoId parameters.
42
- *
43
- * @param {string} parameterName - Parameter name for docs/errors.
44
- * @returns {MethodDecorator & ClassDecorator}
45
- */
46
- function ApiMongoId(parameterName) {
47
- return (0, common_1.applyDecorators)((0, swagger_1.ApiParam)({
48
- name: parameterName,
49
- example: '507f1f77bcf86cd799439011',
50
- description: `A valid MongoDB ObjectId for the "${parameterName}" parameter.`,
51
- }), (0, exceptions_1.ApiBadParameterResponse)(parameterName));
52
- }
@@ -1,36 +0,0 @@
1
- import { INestApplication } from '@nestjs/common';
2
- /**
3
- * @class SwaggerOptions
4
- * @description
5
- * Defines configurable options for setting up Swagger API documentation.
6
- * This includes optional authentication mechanisms like JWT or Kubernetes API keys.
7
- */
8
- export declare class SwaggerOptions {
9
- /**
10
- * Title of the API documentation displayed in Swagger UI
11
- */
12
- title: string;
13
- /**
14
- * Short description of the API's purpose or scope
15
- */
16
- description: string;
17
- /**
18
- * Enables JWT-based authentication documentation if true
19
- */
20
- jwt?: boolean;
21
- /**
22
- * Enables internal Kubernetes API key authentication if true
23
- */
24
- k8s?: boolean;
25
- }
26
- /**
27
- * @function initializeSwagger
28
- * @description
29
- * Initializes and mounts the Swagger UI on the NestJS application.
30
- * The UI is exposed at the `/api` route and configured based on the provided options.
31
- *
32
- * @param {INestApplication} app - The NestJS application instance.
33
- * @param {SwaggerOptions} [options] - Optional configuration to customize Swagger behavior.
34
- * @returns {void}
35
- */
36
- export declare function initializeSwagger(app: INestApplication, options?: SwaggerOptions): void;
@@ -1,76 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SwaggerOptions = void 0;
4
- exports.initializeSwagger = initializeSwagger;
5
- const swagger_1 = require("@nestjs/swagger");
6
- const internal_guard_1 = require("./modules/authentication/guards/internal.guard");
7
- /**
8
- * @class SwaggerOptions
9
- * @description
10
- * Defines configurable options for setting up Swagger API documentation.
11
- * This includes optional authentication mechanisms like JWT or Kubernetes API keys.
12
- */
13
- class SwaggerOptions {
14
- }
15
- exports.SwaggerOptions = SwaggerOptions;
16
- /**
17
- * @function getSwaggerConfig
18
- * @description
19
- * Generates the base configuration for Swagger using provided options.
20
- * Excludes API paths to allow separation of path building logic.
21
- *
22
- * @param {SwaggerOptions} [options] - Optional configuration to customize Swagger.
23
- * @returns {SwaggerConfig} - The core Swagger configuration without paths.
24
- */
25
- function getSwaggerConfig(options) {
26
- return buildSwaggerDocument(options).build();
27
- }
28
- /**
29
- * @function buildSwaggerDocument
30
- * @description
31
- * Creates and configures a `DocumentBuilder` for Swagger based on the provided options.
32
- *
33
- * @param {SwaggerOptions} options - User-defined options controlling Swagger behavior.
34
- * @returns {DocumentBuilder} - A configured Swagger `DocumentBuilder` instance.
35
- */
36
- function buildSwaggerDocument(options) {
37
- const builder = new swagger_1.DocumentBuilder()
38
- .setContact('Timo Scheuermann', '', 'timo.scheuermann@sv-informatik.de')
39
- .setTitle(options.title)
40
- .setDescription(options.description)
41
- .addServer(process.env.SWAGGER_BASE_PATH || 'http://localhost:3000');
42
- // Conditionally add JWT Bearer authentication schema
43
- if (options.jwt) {
44
- builder.addBearerAuth({
45
- type: 'http',
46
- in: 'header',
47
- bearerFormat: 'JWT',
48
- description: 'Gesicherter Login Token',
49
- });
50
- }
51
- // Conditionally add Kubernetes internal API key authentication schema
52
- if (options.k8s) {
53
- builder.addApiKey({
54
- type: 'apiKey',
55
- in: 'header',
56
- description: 'Token zur Authentifizierung interner Anrufe',
57
- }, internal_guard_1.INTERNAL_HEADER_KEY);
58
- }
59
- return builder;
60
- }
61
- /**
62
- * @function initializeSwagger
63
- * @description
64
- * Initializes and mounts the Swagger UI on the NestJS application.
65
- * The UI is exposed at the `/api` route and configured based on the provided options.
66
- *
67
- * @param {INestApplication} app - The NestJS application instance.
68
- * @param {SwaggerOptions} [options] - Optional configuration to customize Swagger behavior.
69
- * @returns {void}
70
- */
71
- function initializeSwagger(app, options) {
72
- const config = getSwaggerConfig(options);
73
- const document = swagger_1.SwaggerModule.createDocument(app, config);
74
- // Serve Swagger UI at '/api' endpoint
75
- swagger_1.SwaggerModule.setup('api', app, document);
76
- }
@@ -1,41 +0,0 @@
1
- /**
2
- * Interface for entities that track user views. This allows the system to monitor
3
- * which accounts have viewed an item and how many total views it has received.
4
- *
5
- * Used to enable features such as view analytics, popularity ranking, or recommendation systems.
6
- */
7
- export interface Viewable {
8
- /**
9
- * List of account IDs who have viewed this entity.
10
- */
11
- _viewedBy: string[];
12
- /**
13
- * Count of total views.
14
- */
15
- views: number;
16
- }
17
- /**
18
- * Mongoose schema decorator for the `_viewedBy` field, which tracks unique viewer IDs.
19
- * Initialized as an empty array to ensure a consistent schema across documents.
20
- *
21
- * @returns {PropertyDecorator} - Mongoose configuration for tracking viewers.
22
- */
23
- export declare function PropertyViewedBy(): PropertyDecorator;
24
- /**
25
- * Swagger schema decorator for the `_viewedBy` field. Used in OpenAPI documentation
26
- * to describe which users have viewed the entity.
27
- *
28
- * It enhances API clarity for clients consuming entities that support view tracking.
29
- *
30
- * @returns {PropertyDecorator} - Swagger metadata for the `viewedBy` field.
31
- */
32
- export declare function ApiViewedBy(): PropertyDecorator;
33
- /**
34
- * Swagger schema decorator for the `views` field. Communicates to API consumers
35
- * the meaning and default value of the view count.
36
- *
37
- * Helps visualize popularity or engagement metrics in API tooling.
38
- *
39
- * @returns {PropertyDecorator} - Swagger metadata for the `views` field.
40
- */
41
- export declare function ApiViews(): PropertyDecorator;
@@ -1,48 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PropertyViewedBy = PropertyViewedBy;
4
- exports.ApiViewedBy = ApiViewedBy;
5
- exports.ApiViews = ApiViews;
6
- const mongoose_1 = require("@nestjs/mongoose");
7
- const swagger_1 = require("@nestjs/swagger");
8
- const models_1 = require("./models");
9
- /**
10
- * Mongoose schema decorator for the `_viewedBy` field, which tracks unique viewer IDs.
11
- * Initialized as an empty array to ensure a consistent schema across documents.
12
- *
13
- * @returns {PropertyDecorator} - Mongoose configuration for tracking viewers.
14
- */
15
- function PropertyViewedBy() {
16
- return (0, mongoose_1.Prop)({ required: true, default: () => [] });
17
- }
18
- /**
19
- * Swagger schema decorator for the `_viewedBy` field. Used in OpenAPI documentation
20
- * to describe which users have viewed the entity.
21
- *
22
- * It enhances API clarity for clients consuming entities that support view tracking.
23
- *
24
- * @returns {PropertyDecorator} - Swagger metadata for the `viewedBy` field.
25
- */
26
- function ApiViewedBy() {
27
- return (0, swagger_1.ApiProperty)({
28
- name: 'viewedBy',
29
- type: [models_1.AccountEntity],
30
- default: [],
31
- description: 'Accounts that have viewed this entity.',
32
- });
33
- }
34
- /**
35
- * Swagger schema decorator for the `views` field. Communicates to API consumers
36
- * the meaning and default value of the view count.
37
- *
38
- * Helps visualize popularity or engagement metrics in API tooling.
39
- *
40
- * @returns {PropertyDecorator} - Swagger metadata for the `views` field.
41
- */
42
- function ApiViews() {
43
- return (0, swagger_1.ApiProperty)({
44
- type: Number,
45
- default: 0,
46
- description: 'Total number of views this entity has received.',
47
- });
48
- }