@lenne.tech/nest-server 10.2.7 → 10.2.9

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 (323) hide show
  1. package/dist/config.env.js +75 -75
  2. package/dist/config.env.js.map +1 -1
  3. package/dist/core/common/args/filter.args.js +1 -1
  4. package/dist/core/common/args/filter.args.js.map +1 -1
  5. package/dist/core/common/args/pagination.args.js.map +1 -1
  6. package/dist/core/common/decorators/current-user.decorator.js.map +1 -1
  7. package/dist/core/common/decorators/graphql-populate.decorator.js.map +1 -1
  8. package/dist/core/common/decorators/graphql-service-options.decorator.js.map +1 -1
  9. package/dist/core/common/decorators/restricted.decorator.d.ts +4 -4
  10. package/dist/core/common/decorators/restricted.decorator.js +2 -2
  11. package/dist/core/common/decorators/restricted.decorator.js.map +1 -1
  12. package/dist/core/common/enums/comparison-operator.enum.js +1 -1
  13. package/dist/core/common/enums/comparison-operator.enum.js.map +1 -1
  14. package/dist/core/common/enums/logical-operator.enum.js +1 -1
  15. package/dist/core/common/enums/logical-operator.enum.js.map +1 -1
  16. package/dist/core/common/enums/role.enum.d.ts +3 -3
  17. package/dist/core/common/enums/role.enum.js +2 -2
  18. package/dist/core/common/enums/role.enum.js.map +1 -1
  19. package/dist/core/common/enums/sort-order.emum.js +1 -1
  20. package/dist/core/common/enums/sort-order.emum.js.map +1 -1
  21. package/dist/core/common/filters/http-exception-log.filter.js.map +1 -1
  22. package/dist/core/common/helpers/config.helper.js.map +1 -1
  23. package/dist/core/common/helpers/context.helper.js +1 -1
  24. package/dist/core/common/helpers/context.helper.js.map +1 -1
  25. package/dist/core/common/helpers/db.helper.d.ts +28 -4
  26. package/dist/core/common/helpers/db.helper.js +4 -4
  27. package/dist/core/common/helpers/db.helper.js.map +1 -1
  28. package/dist/core/common/helpers/decorator.helper.d.ts +24 -0
  29. package/dist/core/common/helpers/decorator.helper.js.map +1 -1
  30. package/dist/core/common/helpers/file.helper.js +1 -1
  31. package/dist/core/common/helpers/file.helper.js.map +1 -1
  32. package/dist/core/common/helpers/filter.helper.d.ts +26 -2
  33. package/dist/core/common/helpers/filter.helper.js +3 -3
  34. package/dist/core/common/helpers/filter.helper.js.map +1 -1
  35. package/dist/core/common/helpers/graphql.helper.d.ts +2 -2
  36. package/dist/core/common/helpers/graphql.helper.js +1 -1
  37. package/dist/core/common/helpers/graphql.helper.js.map +1 -1
  38. package/dist/core/common/helpers/input.helper.d.ts +3 -3
  39. package/dist/core/common/helpers/input.helper.js +5 -5
  40. package/dist/core/common/helpers/input.helper.js.map +1 -1
  41. package/dist/core/common/helpers/model.helper.d.ts +2 -2
  42. package/dist/core/common/helpers/model.helper.js +3 -3
  43. package/dist/core/common/helpers/model.helper.js.map +1 -1
  44. package/dist/core/common/helpers/service.helper.d.ts +6 -6
  45. package/dist/core/common/helpers/service.helper.js +5 -5
  46. package/dist/core/common/helpers/service.helper.js.map +1 -1
  47. package/dist/core/common/helpers/table.helper.d.ts +3 -3
  48. package/dist/core/common/helpers/table.helper.js +7 -7
  49. package/dist/core/common/helpers/table.helper.js.map +1 -1
  50. package/dist/core/common/inputs/combined-filter.input.js.map +1 -1
  51. package/dist/core/common/inputs/filter.input.js.map +1 -1
  52. package/dist/core/common/inputs/single-filter.input.js.map +1 -1
  53. package/dist/core/common/inputs/sort.input.js.map +1 -1
  54. package/dist/core/common/interceptors/check-response.interceptor.js.map +1 -1
  55. package/dist/core/common/interceptors/check-security.interceptor.js.map +1 -1
  56. package/dist/core/common/interfaces/core-persistence-model.interface.d.ts +3 -3
  57. package/dist/core/common/interfaces/mailjet-options.interface.d.ts +1 -1
  58. package/dist/core/common/interfaces/prepare-input-options.interface.d.ts +1 -1
  59. package/dist/core/common/interfaces/server-options.interface.d.ts +12 -8
  60. package/dist/core/common/interfaces/service-options.interface.d.ts +31 -5
  61. package/dist/core/common/models/core-model.model.js.map +1 -1
  62. package/dist/core/common/models/core-persistence.model.d.ts +24 -0
  63. package/dist/core/common/models/core-persistence.model.js.map +1 -1
  64. package/dist/core/common/pipes/check-input.pipe.js.map +1 -1
  65. package/dist/core/common/pipes/map-and-validate.pipe.js.map +1 -1
  66. package/dist/core/common/plugins/complexity.plugin.js +4 -4
  67. package/dist/core/common/plugins/complexity.plugin.js.map +1 -1
  68. package/dist/core/common/plugins/mongoose-id.plugin.js.map +1 -1
  69. package/dist/core/common/scalars/any.scalar.js.map +1 -1
  70. package/dist/core/common/scalars/date-timestamp.scalar.js.map +1 -1
  71. package/dist/core/common/scalars/date.scalar.js.map +1 -1
  72. package/dist/core/common/scalars/json.scalar.js.map +1 -1
  73. package/dist/core/common/services/brevo.service.d.ts +4 -0
  74. package/dist/core/common/services/brevo.service.js +28 -5
  75. package/dist/core/common/services/brevo.service.js.map +1 -1
  76. package/dist/core/common/services/config.service.js +1 -1
  77. package/dist/core/common/services/config.service.js.map +1 -1
  78. package/dist/core/common/services/core-cron-jobs.service.d.ts +2 -2
  79. package/dist/core/common/services/core-cron-jobs.service.js.map +1 -1
  80. package/dist/core/common/services/crud.service.d.ts +58 -32
  81. package/dist/core/common/services/crud.service.js +40 -23
  82. package/dist/core/common/services/crud.service.js.map +1 -1
  83. package/dist/core/common/services/email.service.js +5 -5
  84. package/dist/core/common/services/email.service.js.map +1 -1
  85. package/dist/core/common/services/mailjet.service.d.ts +4 -4
  86. package/dist/core/common/services/mailjet.service.js +8 -8
  87. package/dist/core/common/services/mailjet.service.js.map +1 -1
  88. package/dist/core/common/services/model-doc.service.d.ts +24 -0
  89. package/dist/core/common/services/model-doc.service.js +1 -1
  90. package/dist/core/common/services/model-doc.service.js.map +1 -1
  91. package/dist/core/common/services/module.service.d.ts +28 -4
  92. package/dist/core/common/services/module.service.js +8 -4
  93. package/dist/core/common/services/module.service.js.map +1 -1
  94. package/dist/core/common/services/template.service.js +3 -3
  95. package/dist/core/common/services/template.service.js.map +1 -1
  96. package/dist/core/common/types/core-model-constructor.type.d.ts +1 -1
  97. package/dist/core/common/types/falsy.type.d.ts +1 -1
  98. package/dist/core/common/types/field-selection.type.d.ts +25 -1
  99. package/dist/core/common/types/ids.type.d.ts +31 -7
  100. package/dist/core/common/types/maybe-promise.type.d.ts +1 -1
  101. package/dist/core/common/types/plain-input.type.d.ts +1 -1
  102. package/dist/core/common/types/populate-config.type.d.ts +25 -1
  103. package/dist/core/common/types/string-or-object-id.type.d.ts +25 -1
  104. package/dist/core/modules/auth/core-auth.controller.js +1 -1
  105. package/dist/core/modules/auth/core-auth.controller.js.map +1 -1
  106. package/dist/core/modules/auth/core-auth.model.js.map +1 -1
  107. package/dist/core/modules/auth/core-auth.module.d.ts +5 -5
  108. package/dist/core/modules/auth/core-auth.module.js +5 -5
  109. package/dist/core/modules/auth/core-auth.module.js.map +1 -1
  110. package/dist/core/modules/auth/core-auth.resolver.js +1 -1
  111. package/dist/core/modules/auth/core-auth.resolver.js.map +1 -1
  112. package/dist/core/modules/auth/guards/auth.guard.d.ts +1 -1
  113. package/dist/core/modules/auth/guards/auth.guard.js +1 -1
  114. package/dist/core/modules/auth/guards/auth.guard.js.map +1 -1
  115. package/dist/core/modules/auth/guards/refresh-token.guard.js.map +1 -1
  116. package/dist/core/modules/auth/guards/roles.guard.js.map +1 -1
  117. package/dist/core/modules/auth/inputs/core-auth-sign-in.input.js.map +1 -1
  118. package/dist/core/modules/auth/inputs/core-auth-sign-up.input.js.map +1 -1
  119. package/dist/core/modules/auth/interfaces/core-auth-user.interface.d.ts +1 -1
  120. package/dist/core/modules/auth/interfaces/core-token-data.interface.d.ts +1 -1
  121. package/dist/core/modules/auth/interfaces/jwt-payload.interface.d.ts +1 -1
  122. package/dist/core/modules/auth/services/core-auth.service.d.ts +1 -1
  123. package/dist/core/modules/auth/services/core-auth.service.js +10 -10
  124. package/dist/core/modules/auth/services/core-auth.service.js.map +1 -1
  125. package/dist/core/modules/auth/strategies/jwt-refresh.strategy.js +1 -1
  126. package/dist/core/modules/auth/strategies/jwt-refresh.strategy.js.map +1 -1
  127. package/dist/core/modules/auth/strategies/jwt.strategy.js.map +1 -1
  128. package/dist/core/modules/auth/tokens.decorator.js +1 -1
  129. package/dist/core/modules/auth/tokens.decorator.js.map +1 -1
  130. package/dist/core/modules/file/core-file-info.model.d.ts +24 -0
  131. package/dist/core/modules/file/core-file-info.model.js +5 -5
  132. package/dist/core/modules/file/core-file-info.model.js.map +1 -1
  133. package/dist/core/modules/file/core-file.controller.js.map +1 -1
  134. package/dist/core/modules/file/core-file.resolver.js +1 -1
  135. package/dist/core/modules/file/core-file.resolver.js.map +1 -1
  136. package/dist/core/modules/file/core-file.service.d.ts +30 -6
  137. package/dist/core/modules/file/core-file.service.js +3 -3
  138. package/dist/core/modules/file/core-file.service.js.map +1 -1
  139. package/dist/core/modules/file/interfaces/file-service-options.interface.d.ts +1 -1
  140. package/dist/core/modules/file/interfaces/file-upload.interface.d.ts +2 -2
  141. package/dist/core/modules/health-check/core-health-check-result.model.js.map +1 -1
  142. package/dist/core/modules/health-check/core-health-check.controller.js.map +1 -1
  143. package/dist/core/modules/health-check/core-health-check.module.js +1 -1
  144. package/dist/core/modules/health-check/core-health-check.module.js.map +1 -1
  145. package/dist/core/modules/health-check/core-health-check.resolver.js +2 -2
  146. package/dist/core/modules/health-check/core-health-check.resolver.js.map +1 -1
  147. package/dist/core/modules/health-check/core-health-check.service.js +1 -1
  148. package/dist/core/modules/health-check/core-health-check.service.js.map +1 -1
  149. package/dist/core/modules/user/core-user.model.d.ts +24 -0
  150. package/dist/core/modules/user/core-user.model.js +1 -1
  151. package/dist/core/modules/user/core-user.model.js.map +1 -1
  152. package/dist/core/modules/user/core-user.service.d.ts +25 -1
  153. package/dist/core/modules/user/core-user.service.js +3 -3
  154. package/dist/core/modules/user/core-user.service.js.map +1 -1
  155. package/dist/core/modules/user/inputs/core-user-create.input.js +1 -1
  156. package/dist/core/modules/user/inputs/core-user-create.input.js.map +1 -1
  157. package/dist/core/modules/user/inputs/core-user.input.js +1 -1
  158. package/dist/core/modules/user/inputs/core-user.input.js.map +1 -1
  159. package/dist/core.module.js +20 -20
  160. package/dist/core.module.js.map +1 -1
  161. package/dist/main.js +3 -3
  162. package/dist/main.js.map +1 -1
  163. package/dist/server/common/models/persistence.model.d.ts +24 -0
  164. package/dist/server/common/models/persistence.model.js +4 -4
  165. package/dist/server/common/models/persistence.model.js.map +1 -1
  166. package/dist/server/common/services/cron-jobs.service.js.map +1 -1
  167. package/dist/server/modules/auth/auth.controller.js.map +1 -1
  168. package/dist/server/modules/auth/auth.model.js.map +1 -1
  169. package/dist/server/modules/auth/auth.module.js +2 -2
  170. package/dist/server/modules/auth/auth.module.js.map +1 -1
  171. package/dist/server/modules/auth/auth.resolver.js.map +1 -1
  172. package/dist/server/modules/auth/auth.service.js +1 -1
  173. package/dist/server/modules/auth/auth.service.js.map +1 -1
  174. package/dist/server/modules/auth/inputs/auth-sign-in.input.js.map +1 -1
  175. package/dist/server/modules/auth/inputs/auth-sign-up.input.js.map +1 -1
  176. package/dist/server/modules/file/file-info.model.js.map +1 -1
  177. package/dist/server/modules/file/file.controller.js.map +1 -1
  178. package/dist/server/modules/file/file.module.js +2 -2
  179. package/dist/server/modules/file/file.module.js.map +1 -1
  180. package/dist/server/modules/file/file.resolver.js +5 -5
  181. package/dist/server/modules/file/file.resolver.js.map +1 -1
  182. package/dist/server/modules/file/file.service.d.ts +24 -0
  183. package/dist/server/modules/file/file.service.js.map +1 -1
  184. package/dist/server/modules/file/multer-config.service.js +2 -2
  185. package/dist/server/modules/file/multer-config.service.js.map +1 -1
  186. package/dist/server/modules/user/avatar.controller.js.map +1 -1
  187. package/dist/server/modules/user/inputs/user-create.input.js.map +1 -1
  188. package/dist/server/modules/user/inputs/user.input.js.map +1 -1
  189. package/dist/server/modules/user/outputs/find-and-count-users-result.output.js.map +1 -1
  190. package/dist/server/modules/user/user.model.js +2 -2
  191. package/dist/server/modules/user/user.model.js.map +1 -1
  192. package/dist/server/modules/user/user.module.js +2 -2
  193. package/dist/server/modules/user/user.module.js.map +1 -1
  194. package/dist/server/modules/user/user.resolver.d.ts +1 -1
  195. package/dist/server/modules/user/user.resolver.js +1 -1
  196. package/dist/server/modules/user/user.resolver.js.map +1 -1
  197. package/dist/server/modules/user/user.service.d.ts +25 -1
  198. package/dist/server/modules/user/user.service.js +2 -2
  199. package/dist/server/modules/user/user.service.js.map +1 -1
  200. package/dist/server/server.controller.js.map +1 -1
  201. package/dist/server/server.module.js +2 -2
  202. package/dist/server/server.module.js.map +1 -1
  203. package/dist/test/test.helper.d.ts +13 -13
  204. package/dist/test/test.helper.js +15 -15
  205. package/dist/test/test.helper.js.map +1 -1
  206. package/dist/tsconfig.build.tsbuildinfo +1 -1
  207. package/package.json +35 -35
  208. package/src/config.env.ts +79 -78
  209. package/src/core/common/args/filter.args.ts +2 -1
  210. package/src/core/common/args/pagination.args.ts +1 -0
  211. package/src/core/common/decorators/current-user.decorator.ts +1 -0
  212. package/src/core/common/decorators/graphql-populate.decorator.ts +1 -0
  213. package/src/core/common/decorators/graphql-service-options.decorator.ts +1 -0
  214. package/src/core/common/decorators/restricted.decorator.ts +7 -5
  215. package/src/core/common/enums/comparison-operator.enum.ts +1 -1
  216. package/src/core/common/enums/logical-operator.enum.ts +1 -1
  217. package/src/core/common/enums/role.enum.ts +6 -6
  218. package/src/core/common/enums/sort-order.emum.ts +1 -1
  219. package/src/core/common/helpers/context.helper.ts +1 -1
  220. package/src/core/common/helpers/db.helper.ts +14 -12
  221. package/src/core/common/helpers/decorator.helper.ts +1 -0
  222. package/src/core/common/helpers/file.helper.ts +1 -1
  223. package/src/core/common/helpers/filter.helper.ts +6 -5
  224. package/src/core/common/helpers/graphql.helper.ts +7 -6
  225. package/src/core/common/helpers/input.helper.ts +10 -8
  226. package/src/core/common/helpers/model.helper.ts +6 -5
  227. package/src/core/common/helpers/service.helper.ts +13 -11
  228. package/src/core/common/helpers/table.helper.ts +12 -10
  229. package/src/core/common/inputs/combined-filter.input.ts +1 -0
  230. package/src/core/common/inputs/filter.input.ts +1 -0
  231. package/src/core/common/inputs/single-filter.input.ts +1 -0
  232. package/src/core/common/inputs/sort.input.ts +1 -0
  233. package/src/core/common/interceptors/check-response.interceptor.ts +1 -0
  234. package/src/core/common/interceptors/check-security.interceptor.ts +1 -0
  235. package/src/core/common/interfaces/core-persistence-model.interface.ts +3 -3
  236. package/src/core/common/interfaces/cron-job-config-with-time-zone.interface.ts +1 -0
  237. package/src/core/common/interfaces/cron-job-config-with-utc-offset.interface.ts +1 -0
  238. package/src/core/common/interfaces/mailjet-options.interface.ts +1 -1
  239. package/src/core/common/interfaces/prepare-input-options.interface.ts +1 -1
  240. package/src/core/common/interfaces/server-options.interface.ts +33 -24
  241. package/src/core/common/interfaces/service-options.interface.ts +31 -16
  242. package/src/core/common/models/core-persistence.model.ts +1 -0
  243. package/src/core/common/pipes/check-input.pipe.ts +1 -0
  244. package/src/core/common/pipes/map-and-validate.pipe.ts +1 -0
  245. package/src/core/common/plugins/complexity.plugin.ts +5 -4
  246. package/src/core/common/scalars/date-timestamp.scalar.ts +1 -0
  247. package/src/core/common/scalars/date.scalar.ts +1 -0
  248. package/src/core/common/services/brevo.service.ts +51 -6
  249. package/src/core/common/services/config.service.ts +3 -1
  250. package/src/core/common/services/core-cron-jobs.service.ts +3 -2
  251. package/src/core/common/services/crud.service.ts +70 -43
  252. package/src/core/common/services/email.service.ts +7 -5
  253. package/src/core/common/services/mailjet.service.ts +14 -13
  254. package/src/core/common/services/model-doc.service.ts +2 -1
  255. package/src/core/common/services/module.service.ts +18 -10
  256. package/src/core/common/services/template.service.ts +5 -3
  257. package/src/core/common/types/core-model-constructor.type.ts +1 -1
  258. package/src/core/common/types/falsy.type.ts +1 -1
  259. package/src/core/common/types/field-selection.type.ts +4 -3
  260. package/src/core/common/types/ids.type.ts +3 -3
  261. package/src/core/common/types/maybe-promise.type.ts +1 -1
  262. package/src/core/common/types/plain-input.type.ts +1 -1
  263. package/src/core/common/types/populate-config.type.ts +1 -1
  264. package/src/core/common/types/string-or-object-id.type.ts +1 -1
  265. package/src/core/modules/auth/core-auth.controller.ts +2 -1
  266. package/src/core/modules/auth/core-auth.model.ts +1 -0
  267. package/src/core/modules/auth/core-auth.module.ts +8 -7
  268. package/src/core/modules/auth/core-auth.resolver.ts +2 -1
  269. package/src/core/modules/auth/guards/auth.guard.ts +4 -2
  270. package/src/core/modules/auth/guards/refresh-token.guard.ts +1 -0
  271. package/src/core/modules/auth/guards/roles.guard.ts +1 -0
  272. package/src/core/modules/auth/inputs/core-auth-sign-in.input.ts +1 -0
  273. package/src/core/modules/auth/inputs/core-auth-sign-up.input.ts +1 -0
  274. package/src/core/modules/auth/interfaces/core-auth-user.interface.ts +4 -4
  275. package/src/core/modules/auth/interfaces/core-token-data.interface.ts +4 -4
  276. package/src/core/modules/auth/interfaces/jwt-payload.interface.ts +1 -1
  277. package/src/core/modules/auth/services/core-auth.service.ts +13 -11
  278. package/src/core/modules/auth/strategies/jwt-refresh.strategy.ts +3 -2
  279. package/src/core/modules/auth/strategies/jwt.strategy.ts +3 -2
  280. package/src/core/modules/auth/tokens.decorator.ts +4 -3
  281. package/src/core/modules/file/core-file-info.model.ts +6 -5
  282. package/src/core/modules/file/core-file.controller.ts +1 -0
  283. package/src/core/modules/file/core-file.resolver.ts +2 -1
  284. package/src/core/modules/file/core-file.service.ts +9 -8
  285. package/src/core/modules/file/interfaces/file-service-options.interface.ts +1 -1
  286. package/src/core/modules/file/interfaces/file-upload.interface.ts +2 -2
  287. package/src/core/modules/health-check/core-health-check-result.model.ts +1 -0
  288. package/src/core/modules/health-check/core-health-check.controller.ts +1 -0
  289. package/src/core/modules/health-check/core-health-check.module.ts +2 -1
  290. package/src/core/modules/health-check/core-health-check.resolver.ts +3 -2
  291. package/src/core/modules/health-check/core-health-check.service.ts +2 -1
  292. package/src/core/modules/user/core-user.model.ts +2 -1
  293. package/src/core/modules/user/core-user.service.ts +6 -4
  294. package/src/core/modules/user/inputs/core-user-create.input.ts +2 -1
  295. package/src/core/modules/user/inputs/core-user.input.ts +2 -1
  296. package/src/core.module.ts +24 -22
  297. package/src/main.ts +5 -3
  298. package/src/server/common/models/persistence.model.ts +7 -5
  299. package/src/server/common/services/cron-jobs.service.ts +1 -0
  300. package/src/server/modules/auth/auth.controller.ts +1 -0
  301. package/src/server/modules/auth/auth.model.ts +1 -0
  302. package/src/server/modules/auth/auth.module.ts +3 -2
  303. package/src/server/modules/auth/auth.resolver.ts +1 -0
  304. package/src/server/modules/auth/auth.service.ts +2 -1
  305. package/src/server/modules/auth/inputs/auth-sign-in.input.ts +1 -0
  306. package/src/server/modules/auth/inputs/auth-sign-up.input.ts +1 -0
  307. package/src/server/modules/file/file-info.model.ts +1 -0
  308. package/src/server/modules/file/file.controller.ts +1 -0
  309. package/src/server/modules/file/file.module.ts +3 -2
  310. package/src/server/modules/file/file.resolver.ts +7 -5
  311. package/src/server/modules/file/file.service.ts +1 -0
  312. package/src/server/modules/file/multer-config.service.ts +3 -2
  313. package/src/server/modules/user/avatar.controller.ts +1 -0
  314. package/src/server/modules/user/inputs/user-create.input.ts +1 -0
  315. package/src/server/modules/user/inputs/user.input.ts +1 -0
  316. package/src/server/modules/user/outputs/find-and-count-users-result.output.ts +1 -0
  317. package/src/server/modules/user/user.model.ts +3 -2
  318. package/src/server/modules/user/user.module.ts +3 -2
  319. package/src/server/modules/user/user.resolver.ts +2 -1
  320. package/src/server/modules/user/user.service.ts +5 -3
  321. package/src/server/server.controller.ts +1 -0
  322. package/src/server/server.module.ts +7 -6
  323. package/src/test/test.helper.ts +28 -26
@@ -1,6 +1,6 @@
1
1
  import { FieldNode, GraphQLResolveInfo, SelectionNode } from 'graphql';
2
- import _ = require('lodash');
3
2
  import { Document, Model, PopulateOptions, Query, Types } from 'mongoose';
3
+
4
4
  import { ResolveSelector } from '../interfaces/resolve-selector.interface';
5
5
  import { CoreModel } from '../models/core-model.model';
6
6
  import { FieldSelection } from '../types/field-selection.type';
@@ -8,6 +8,8 @@ import { IdsType } from '../types/ids.type';
8
8
  import { StringOrObjectId } from '../types/string-or-object-id.type';
9
9
  import { removePropertiesDeep } from './input.helper';
10
10
 
11
+ import _ = require('lodash');
12
+
11
13
  // =====================================================================================================================
12
14
  // Export functions
13
15
  // =====================================================================================================================
@@ -27,7 +29,7 @@ import { removePropertiesDeep } from './input.helper';
27
29
  export function addIds(
28
30
  target: any,
29
31
  ids: StringOrObjectId | StringOrObjectId[],
30
- convert: 'string' | 'object' | 'auto' | false = 'auto',
32
+ convert: 'auto' | 'object' | 'string' | false = 'auto',
31
33
  options?: { unique?: boolean },
32
34
  ): any[] {
33
35
  // Set config
@@ -67,7 +69,7 @@ export function addIds(
67
69
  }
68
70
 
69
71
  // Convert array
70
- if (['string', 'object'].includes(convert as string)) {
72
+ if (['object', 'string'].includes(convert as string)) {
71
73
  for (let i = 0; i < result.length; i++) {
72
74
  result[i] = convert === 'string' ? getStringId(result[i]) : getObjectIds(result[i]);
73
75
  }
@@ -120,8 +122,8 @@ export function getIncludedIds(includes: IdsType, ids: IdsType, convert?: 'strin
120
122
  export function getIncludedIds(includes: IdsType, ids: IdsType, convert?: 'object'): Types.ObjectId[];
121
123
  export function getIncludedIds<T = IdsType>(
122
124
  includes: IdsType,
123
- ids: T | IdsType,
124
- convert?: 'string' | 'object',
125
+ ids: IdsType | T,
126
+ convert?: 'object' | 'string',
125
127
  ): T[] | null | undefined {
126
128
  if (!includes || !ids) {
127
129
  return undefined;
@@ -420,7 +422,7 @@ export function objectIdsToStrings(element: any, prepared: WeakMap<any, any> = n
420
422
  */
421
423
  export function removeUnresolvedReferences<T = any>(
422
424
  populated: T,
423
- populatedOptions: string | PopulateOptions | PopulateOptions[] | (string | PopulateOptions)[],
425
+ populatedOptions: (PopulateOptions | string)[] | PopulateOptions | PopulateOptions[] | string,
424
426
  ignoreFirst = true,
425
427
  ): T {
426
428
  // Check parameter
@@ -446,7 +448,7 @@ export function removeUnresolvedReferences<T = any>(
446
448
 
447
449
  // populatedOptions is a string
448
450
  if (typeof populatedOptions === 'string') {
449
- if (!['id', '_id'].includes(populatedOptions) && populated[populatedOptions] instanceof Types.ObjectId) {
451
+ if (!['_id', 'id'].includes(populatedOptions) && populated[populatedOptions] instanceof Types.ObjectId) {
450
452
  populated[populatedOptions] = null;
451
453
  }
452
454
  return populated;
@@ -455,7 +457,7 @@ export function removeUnresolvedReferences<T = any>(
455
457
  // populatedOptions is an PopulateOptions object
456
458
  if (populatedOptions.path) {
457
459
  const key = populatedOptions.path;
458
- if (!['id', '_id'].includes(key) && populated[key] instanceof Types.ObjectId) {
460
+ if (!['_id', 'id'].includes(key) && populated[key] instanceof Types.ObjectId) {
459
461
  populated[key] = null;
460
462
  } else if (populatedOptions.populate) {
461
463
  removeUnresolvedReferences(populated[key], populatedOptions.populate, false);
@@ -471,7 +473,7 @@ export function removeUnresolvedReferences<T = any>(
471
473
  * Set populates, execute and map result
472
474
  */
473
475
  export async function popAndMap<T extends CoreModel>(
474
- queryOrDocument: Query<any, any> | Document | Document[],
476
+ queryOrDocument: Document | Document[] | Query<any, any>,
475
477
  populate: FieldSelection,
476
478
  modelClass: new (...args: any[]) => T,
477
479
  mongooseModel?: Model<any>,
@@ -572,9 +574,9 @@ export function removeIds(source: any[], ids: StringOrObjectId | StringOrObjectI
572
574
  /**
573
575
  * Set populates via populates options array
574
576
  */
575
- export async function setPopulates<T = Query<any, any> | Document>(
577
+ export async function setPopulates<T = Document | Query<any, any>>(
576
578
  queryOrDocument: T,
577
- populateOptions: string[] | PopulateOptions[] | (string | PopulateOptions)[],
579
+ populateOptions: (PopulateOptions | string)[] | PopulateOptions[] | string[],
578
580
  mongooseModel: Model<any>,
579
581
  options?: { ignoreSelections: boolean },
580
582
  ): Promise<T> {
@@ -585,7 +587,7 @@ export async function setPopulates<T = Query<any, any> | Document>(
585
587
 
586
588
  // Filter populate options via model schema paths
587
589
  if (mongooseModel?.schema?.paths) {
588
- populateOptions = populateOptions.filter((option: string | PopulateOptions) => {
590
+ populateOptions = populateOptions.filter((option: PopulateOptions | string) => {
589
591
  let key: string = option as string;
590
592
  if ((option as PopulateOptions)?.path) {
591
593
  key = (option as PopulateOptions)?.path;
@@ -1,6 +1,7 @@
1
1
  import { ExecutionContext } from '@nestjs/common';
2
2
  import { GqlContextType, GqlExecutionContext } from '@nestjs/graphql';
3
3
  import { PopulateOptions } from 'mongoose';
4
+
4
5
  import { getPopulateOptions } from './db.helper';
5
6
  import { removePropertiesDeep } from './input.helper';
6
7
 
@@ -1,6 +1,6 @@
1
- import { extname } from 'path';
2
1
  import { MulterOptions } from '@nestjs/platform-express/multer/interfaces/multer-options.interface';
3
2
  import { diskStorage } from 'multer';
3
+ import { extname } from 'path';
4
4
 
5
5
  /**
6
6
  * Helper class for inputs
@@ -1,4 +1,5 @@
1
1
  import { FilterQuery, QueryOptions } from 'mongoose';
2
+
2
3
  import { FilterArgs } from '../args/filter.args';
3
4
  import { ComparisonOperatorEnum } from '../enums/comparison-operator.enum';
4
5
  import { LogicalOperatorEnum } from '../enums/logical-operator.enum';
@@ -45,7 +46,7 @@ export function findFilter(options?: {
45
46
  filterOptions?: FilterQuery<any>;
46
47
  id?: any;
47
48
  ids?: any[];
48
- type?: '$and' | '$or' | '$nor';
49
+ type?: '$and' | '$nor' | '$or';
49
50
  }): FilterQuery<any> {
50
51
  const config = {
51
52
  type: '$and',
@@ -152,7 +153,7 @@ export function generateFilterQuery<T = any>(
152
153
  // Process single filter
153
154
  if (filter.singleFilter) {
154
155
  // Init variables
155
- const { not, options, convertToObjectId, isReference } = filter.singleFilter;
156
+ const { convertToObjectId, isReference, not, options } = filter.singleFilter;
156
157
  let field = filter.singleFilter.field;
157
158
  let value = filter.singleFilter.value;
158
159
 
@@ -207,11 +208,11 @@ export function generateFilterQuery<T = any>(
207
208
  result[field] = not
208
209
  ? {
209
210
  $not: {
210
- $regex: new RegExp(value),
211
211
  $options: options || '',
212
+ $regex: new RegExp(value),
212
213
  },
213
214
  }
214
- : { $regex: new RegExp(value), $options: options || '' };
215
+ : { $options: options || '', $regex: new RegExp(value) };
215
216
  break;
216
217
  }
217
218
  }
@@ -273,7 +274,7 @@ export function filterMerge<T = unknown>(
273
274
  filterArgs: Partial<FilterArgs>,
274
275
  filterQuery: Partial<FilterQuery<T>>,
275
276
  options?: {
276
- operator?: '$and' | '$or' | '$nor';
277
+ operator?: '$and' | '$nor' | '$or';
277
278
  queryOptions?: Partial<QueryOptions>;
278
279
  samples?: number;
279
280
  },
@@ -12,26 +12,27 @@ import {
12
12
  ValueNode,
13
13
  VariableNode,
14
14
  } from 'graphql';
15
+
15
16
  import _ = require('lodash');
16
17
 
17
18
  /**
18
19
  * Interface for GraphQLFieldsConfig
19
20
  */
20
21
  export interface GraphQLFieldsConfig {
21
- processArguments: boolean;
22
22
  excludedFields: string[];
23
+ processArguments: boolean;
23
24
  }
24
25
 
25
26
  /**
26
27
  * Type ValueNodeWithValueField
27
28
  */
28
29
  export type ValueNodeWithValueField =
29
- | VariableNode
30
- | IntValueNode
30
+ | BooleanValueNode
31
+ | EnumValueNode
31
32
  | FloatValueNode
33
+ | IntValueNode
32
34
  | StringValueNode
33
- | BooleanValueNode
34
- | EnumValueNode;
35
+ | VariableNode;
35
36
 
36
37
  /**
37
38
  * GraphQLHelper
@@ -256,8 +257,8 @@ export function flattenAST(
256
257
  // Process configuration
257
258
  config = Object.assign(
258
259
  {
259
- processArguments: false,
260
260
  excludedFields: [],
261
+ processArguments: false,
261
262
  },
262
263
  config,
263
264
  );
@@ -1,18 +1,20 @@
1
- import * as inspector from 'inspector';
2
- import * as util from 'util';
3
1
  import { BadRequestException, UnauthorizedException } from '@nestjs/common';
4
2
  import { plainToInstance } from 'class-transformer';
5
3
  import { validate } from 'class-validator';
6
4
  import { ValidatorOptions } from 'class-validator/types/validation/ValidatorOptions';
7
5
  import { Kind } from 'graphql/index';
8
- import _ = require('lodash');
9
- import rfdc = require('rfdc');
6
+ import * as inspector from 'inspector';
7
+ import * as util from 'util';
8
+
10
9
  import { checkRestricted } from '../decorators/restricted.decorator';
11
10
  import { ProcessType } from '../enums/process-type.enum';
12
11
  import { RoleEnum } from '../enums/role.enum';
13
12
  import { merge } from './config.helper';
14
13
  import { equalIds } from './db.helper';
15
14
 
15
+ import _ = require('lodash');
16
+ import rfdc = require('rfdc');
17
+
16
18
  /**
17
19
  * Helper class for inputs
18
20
  * @deprecated use functions directly
@@ -23,7 +25,7 @@ export default class InputHelper {
23
25
  */
24
26
  public static async check(
25
27
  value: any,
26
- user: { id: any; hasRole: (roles: string[]) => boolean },
28
+ user: { hasRole: (roles: string[]) => boolean; id: any },
27
29
  options?: {
28
30
  dbObject?: any;
29
31
  metatype?: any;
@@ -208,7 +210,7 @@ export function assignPlain(target: Record<any, any>, ...args: Record<any, any>[
208
210
  */
209
211
  export async function check(
210
212
  value: any,
211
- user: { id: any; hasRole: (roles: string[]) => boolean },
213
+ user: { hasRole: (roles: string[]) => boolean; id: any },
212
214
  options?: {
213
215
  dbObject?: any;
214
216
  metatype?: any;
@@ -650,14 +652,14 @@ export function mapClass<T>(
650
652
  values: Partial<T>,
651
653
  ctor: new () => T,
652
654
  options?: {
653
- cloneDeep?: boolean;
654
655
  circle?: boolean;
656
+ cloneDeep?: boolean;
655
657
  proto?: boolean;
656
658
  },
657
659
  ): T {
658
660
  const config = {
659
- cloneDeep: true,
660
661
  circles: false,
662
+ cloneDeep: true,
661
663
  proto: false,
662
664
  ...options,
663
665
  };
@@ -1,5 +1,6 @@
1
1
  import { plainToInstance } from 'class-transformer';
2
2
  import { Types } from 'mongoose';
3
+
3
4
  import { clone } from './input.helper';
4
5
 
5
6
  /**
@@ -56,8 +57,8 @@ export function prepareMap<T = Record<string, any>>(
56
57
  source: Partial<T> | Record<string, any>,
57
58
  target: T,
58
59
  options: {
59
- cloneDeep?: boolean;
60
60
  circles?: boolean;
61
+ cloneDeep?: boolean;
61
62
  funcAllowed?: boolean;
62
63
  mapId?: boolean;
63
64
  proto?: boolean;
@@ -65,8 +66,8 @@ export function prepareMap<T = Record<string, any>>(
65
66
  ): Partial<T> | Record<string, any> {
66
67
  // Set config
67
68
  const config = {
68
- cloneDeep: true,
69
69
  circles: true,
70
+ cloneDeep: true,
70
71
  funcAllowed: false,
71
72
  mapId: false,
72
73
  proto: false,
@@ -79,7 +80,7 @@ export function prepareMap<T = Record<string, any>>(
79
80
  // Update properties
80
81
  for (const key of Object.keys(target)) {
81
82
  if (
82
- (!['id', '_id'].includes(key) || config.mapId)
83
+ (!['_id', 'id'].includes(key) || config.mapId)
83
84
  && source[key] !== undefined
84
85
  && (config.funcAllowed || typeof (source[key] !== 'function'))
85
86
  ) {
@@ -102,8 +103,8 @@ export function map<T = Record<string, any>>(
102
103
  source: Partial<T> | Record<string, any>,
103
104
  target: T,
104
105
  options: {
105
- cloneDeep?: boolean;
106
106
  circles?: boolean;
107
+ cloneDeep?: boolean;
107
108
  funcAllowed?: boolean;
108
109
  mapId?: boolean;
109
110
  proto?: boolean;
@@ -111,8 +112,8 @@ export function map<T = Record<string, any>>(
111
112
  ): T {
112
113
  // Set config
113
114
  const config = {
114
- cloneDeep: true,
115
115
  circles: false,
116
+ cloneDeep: true,
116
117
  funcAllowed: false,
117
118
  mapId: false,
118
119
  proto: false,
@@ -1,9 +1,8 @@
1
1
  import { UnauthorizedException } from '@nestjs/common';
2
- import bcrypt = require('bcrypt');
3
2
  import { plainToInstance } from 'class-transformer';
4
3
  import { sha256 } from 'js-sha256';
5
- import _ = require('lodash');
6
4
  import { Types } from 'mongoose';
5
+
7
6
  import { RoleEnum } from '../enums/role.enum';
8
7
  import { PrepareInputOptions } from '../interfaces/prepare-input-options.interface';
9
8
  import { PrepareOutputOptions } from '../interfaces/prepare-output-options.interface';
@@ -13,6 +12,9 @@ import { ConfigService } from '../services/config.service';
13
12
  import { getStringIds } from './db.helper';
14
13
  import { clone, processDeep } from './input.helper';
15
14
 
15
+ import bcrypt = require('bcrypt');
16
+ import _ = require('lodash');
17
+
16
18
  /**
17
19
  * Helper class for services
18
20
  * @deprecated use functions directly
@@ -27,8 +29,8 @@ export default class ServiceHelper {
27
29
  options: {
28
30
  [key: string]: any;
29
31
  checkRoles?: boolean;
30
- create?: boolean;
31
32
  clone?: boolean;
33
+ create?: boolean;
32
34
  getNewArray?: boolean;
33
35
  removeUndefined?: boolean;
34
36
  sha256?: boolean;
@@ -67,9 +69,9 @@ export async function prepareInput<T = any>(
67
69
  [key: string]: any;
68
70
  checkRoles?: boolean;
69
71
  circles?: boolean;
72
+ clone?: boolean;
70
73
  convertObjectIdsToString?: boolean;
71
74
  create?: boolean;
72
- clone?: boolean;
73
75
  getNewArray?: boolean;
74
76
  proto?: boolean;
75
77
  removeUndefined?: boolean;
@@ -80,8 +82,8 @@ export async function prepareInput<T = any>(
80
82
  // Configuration
81
83
  const config = {
82
84
  checkRoles: false,
83
- clone: false,
84
85
  circles: false,
86
+ clone: false,
85
87
  convertObjectIdsToString: true,
86
88
  create: false,
87
89
  getNewArray: false,
@@ -182,8 +184,8 @@ export async function prepareOutput<T = { [key: string]: any; map: (...args: any
182
184
  output: any,
183
185
  options: {
184
186
  [key: string]: any;
185
- clone?: boolean;
186
187
  circles?: boolean;
188
+ clone?: boolean;
187
189
  getNewArray?: boolean;
188
190
  objectIdsToStrings?: boolean;
189
191
  proto?: boolean;
@@ -194,8 +196,8 @@ export async function prepareOutput<T = { [key: string]: any; map: (...args: any
194
196
  ): Promise<T | T[] | any> {
195
197
  // Configuration
196
198
  const config = {
197
- clone: false,
198
199
  circles: false,
200
+ clone: false,
199
201
  getNewArray: false,
200
202
  objectIdsToStrings: true,
201
203
  proto: false,
@@ -281,20 +283,20 @@ export async function prepareOutput<T = { [key: string]: any; map: (...args: any
281
283
  export function prepareServiceOptions(
282
284
  serviceOptions: ServiceOptions,
283
285
  options?: {
284
- clone?: boolean;
285
286
  circles?: boolean;
287
+ clone?: boolean;
286
288
  inputType?: any;
287
289
  outputType?: any;
288
- subFieldSelection?: string;
289
- proto?: boolean;
290
290
  prepareInput?: PrepareInputOptions;
291
291
  prepareOutput?: PrepareOutputOptions;
292
+ proto?: boolean;
293
+ subFieldSelection?: string;
292
294
  },
293
295
  ): ServiceOptions {
294
296
  // Set default values
295
297
  const config = {
296
- clone: false,
297
298
  circles: true,
299
+ clone: false,
298
300
  proto: false,
299
301
  ...options,
300
302
  };
@@ -3,30 +3,32 @@ export function htmlTable(
3
3
  rows: string[][],
4
4
  options?: {
5
5
  tableStyle?: string;
6
+ tbodyStyle?: string;
7
+ tdStyle?: string;
8
+ thStyle?: string;
6
9
  theadStyle?: string;
7
10
  trHeadStyle?: string;
8
- thStyle?: string;
9
- tbodyStyle?: string;
10
11
  trStyle?: string;
11
- tdStyle?: string;
12
12
  },
13
13
  ): string {
14
14
  const config = {
15
15
  tableStyle: 'width: 100%; border: 1px solid #000; border-collapse: collapse;',
16
- trHeadStyle: 'background-color: #f0f0f0;',
16
+ tdStyle: 'border: 1px solid #000; padding: 10px;',
17
17
  thStyle: 'border: 1px solid #000; padding: 10px;',
18
- tcStyle: 'border: 1px solid #000; padding: 10px;',
18
+ trHeadStyle: 'background-color: #f0f0f0;',
19
19
  ...options,
20
20
  };
21
- let table = `<table style="${config.tableStyle}"><thead style="${config.theadStyle}"><tr style="${config.trHeadStyle}">`;
21
+ let table = `<table${config.tableStyle ? ` style="${config.tableStyle}"` : ''}><thead${
22
+ config.theadStyle ? ` style="${config.theadStyle}"` : ''
23
+ }><tr${config.trHeadStyle ? ` style="${config.trHeadStyle}"` : ''}>`;
22
24
  for (const head of header) {
23
- table += `<th style="${config.thStyle}">${head}</th>`;
25
+ table += `<th${config.thStyle ? ` style="${config.thStyle}"` : ''}>${head}</th>`;
24
26
  }
25
- table += '</tr></thead><tbody style="${config.tbodyStyle}">';
27
+ table += `</tr></thead><tbody${config.tbodyStyle ? ` style="${config.tbodyStyle}"` : ''}>`;
26
28
  for (const row of rows) {
27
- table += `<tr style="${config.trStyle}">`;
29
+ table += `<tr${config.trStyle ? ` style="${config.trStyle}"` : ''}>`;
28
30
  for (const cell of row) {
29
- table += `<td style="${config.tdStyle}">${cell}</td>`;
31
+ table += `<td${config.tdStyle ? ` style="${config.tdStyle}"` : ''}>${cell}</td>`;
30
32
  }
31
33
  table += '</tr>';
32
34
  }
@@ -1,4 +1,5 @@
1
1
  import { Field, InputType } from '@nestjs/graphql';
2
+
2
3
  import { LogicalOperatorEnum } from '../enums/logical-operator.enum';
3
4
  import { maps } from '../helpers/model.helper';
4
5
  import { CoreInput } from './core-input.input';
@@ -1,4 +1,5 @@
1
1
  import { Field, InputType } from '@nestjs/graphql';
2
+
2
3
  import { CombinedFilterInput } from './combined-filter.input';
3
4
  import { CoreInput } from './core-input.input';
4
5
  import { SingleFilterInput } from './single-filter.input';
@@ -1,4 +1,5 @@
1
1
  import { Field, InputType } from '@nestjs/graphql';
2
+
2
3
  import { ComparisonOperatorEnum } from '../enums/comparison-operator.enum';
3
4
  import { JSON } from '../scalars/json.scalar';
4
5
  import { CoreInput } from './core-input.input';
@@ -1,4 +1,5 @@
1
1
  import { Field, InputType } from '@nestjs/graphql';
2
+
2
3
  import { SortOrderEnum } from '../enums/sort-order.emum';
3
4
  import { CoreInput } from './core-input.input';
4
5
 
@@ -1,6 +1,7 @@
1
1
  import { CallHandler, ExecutionContext, Injectable, NestInterceptor } from '@nestjs/common';
2
2
  import { Observable } from 'rxjs';
3
3
  import { map } from 'rxjs/operators';
4
+
4
5
  import { checkRestricted } from '../decorators/restricted.decorator';
5
6
  import { getContextData } from '../helpers/context.helper';
6
7
 
@@ -1,6 +1,7 @@
1
1
  import { CallHandler, ExecutionContext, Injectable, NestInterceptor } from '@nestjs/common';
2
2
  import { Observable } from 'rxjs';
3
3
  import { map } from 'rxjs/operators';
4
+
4
5
  import { getContextData } from '../helpers/context.helper';
5
6
  import { getStringIds } from '../helpers/db.helper';
6
7
  import { processDeep } from '../helpers/input.helper';
@@ -1,7 +1,8 @@
1
1
  import { CorePersistenceModel } from '../../..';
2
2
 
3
3
  export interface ICorePersistenceModel<T extends CorePersistenceModel = any> {
4
- new (): T;
4
+ [key: string]: any;
5
+ init(this: new (...args: any[]) => T, ...args: any[]): any;
5
6
  map(
6
7
  this: new (...args: any[]) => T,
7
8
  data: Partial<T> | Record<string, any>,
@@ -12,6 +13,5 @@ export interface ICorePersistenceModel<T extends CorePersistenceModel = any> {
12
13
  merge?: boolean;
13
14
  }
14
15
  ): any;
15
- init(this: new (...args: any[]) => T, ...args: any[]): any;
16
- [key: string]: any;
16
+ new (): T;
17
17
  }
@@ -1,4 +1,5 @@
1
1
  import { CronJobParams, CronOnCompleteCommand } from 'cron';
2
+
2
3
  import { CronJobConfig } from './cron-job-config.interface';
3
4
 
4
5
  /**
@@ -1,4 +1,5 @@
1
1
  import { CronJobParams, CronOnCompleteCommand } from 'cron';
2
+
2
3
  import { CronJobConfig } from './cron-job-config.interface';
3
4
 
4
5
  /**
@@ -1,4 +1,4 @@
1
1
  export interface MailjetOptions {
2
- api_key_public: string;
3
2
  api_key_private: string;
3
+ api_key_public: string;
4
4
  }
@@ -4,9 +4,9 @@
4
4
  export interface PrepareInputOptions {
5
5
  [key: string]: any;
6
6
  checkRoles?: boolean;
7
+ clone?: boolean;
7
8
  convertObjectIdsToString?: boolean;
8
9
  create?: boolean;
9
- clone?: boolean;
10
10
  getNewArray?: boolean;
11
11
  removeUndefined?: boolean;
12
12
  targetModel?: new (...args: any[]) => any;