@ptc-org/nestjs-query-graphql 0.30.1 → 1.0.0-alpha.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 (452) hide show
  1. package/CHANGELOG.md +149 -149
  2. package/README.md +4 -4
  3. package/package.json +7 -6
  4. package/src/auth/authorizer.d.ts +26 -0
  5. package/src/auth/authorizer.js +12 -0
  6. package/src/auth/authorizer.js.map +1 -0
  7. package/src/auth/default-crud.authorizer.d.ts +6 -0
  8. package/src/auth/default-crud.authorizer.js +74 -0
  9. package/src/auth/default-crud.authorizer.js.map +1 -0
  10. package/src/auth/index.d.ts +3 -0
  11. package/src/auth/index.js +7 -0
  12. package/src/auth/index.js.map +1 -0
  13. package/src/auth/tokens.d.ts +3 -0
  14. package/src/auth/tokens.js +8 -0
  15. package/src/auth/tokens.js.map +1 -0
  16. package/src/common/dto.utils.d.ts +15 -0
  17. package/src/common/dto.utils.js +32 -0
  18. package/src/common/dto.utils.js.map +1 -0
  19. package/src/common/external.utils.d.ts +10 -0
  20. package/src/common/external.utils.js +33 -0
  21. package/src/common/external.utils.js.map +1 -0
  22. package/src/common/index.d.ts +4 -0
  23. package/src/common/index.js +11 -0
  24. package/src/common/index.js.map +1 -0
  25. package/src/common/object.utils.d.ts +1 -0
  26. package/src/common/object.utils.js +14 -0
  27. package/src/common/object.utils.js.map +1 -0
  28. package/src/common/resolver.utils.d.ts +2 -0
  29. package/src/common/resolver.utils.js +19 -0
  30. package/src/common/resolver.utils.js.map +1 -0
  31. package/src/decorators/aggregate-query-param.decorator.d.ts +1 -0
  32. package/src/decorators/aggregate-query-param.decorator.js +21 -0
  33. package/src/decorators/aggregate-query-param.decorator.js.map +1 -0
  34. package/src/decorators/authorize-filter.decorator.d.ts +6 -0
  35. package/src/decorators/authorize-filter.decorator.js +67 -0
  36. package/src/decorators/authorize-filter.decorator.js.map +1 -0
  37. package/src/decorators/authorizer.decorator.d.ts +5 -0
  38. package/src/decorators/authorizer.decorator.js +24 -0
  39. package/src/decorators/authorizer.decorator.js.map +1 -0
  40. package/src/decorators/constants.d.ts +8 -0
  41. package/src/decorators/constants.js +12 -0
  42. package/src/decorators/constants.js.map +1 -0
  43. package/src/decorators/decorator.utils.d.ts +3 -0
  44. package/src/decorators/decorator.utils.js +21 -0
  45. package/src/decorators/decorator.utils.js.map +1 -0
  46. package/src/decorators/filterable-field.decorator.d.ts +47 -0
  47. package/src/decorators/filterable-field.decorator.js +53 -0
  48. package/src/decorators/filterable-field.decorator.js.map +1 -0
  49. package/src/decorators/hook-args.decorator.d.ts +3 -0
  50. package/src/decorators/hook-args.decorator.js +43 -0
  51. package/src/decorators/hook-args.decorator.js.map +1 -0
  52. package/src/decorators/hook.decorator.d.ts +13 -0
  53. package/src/decorators/hook.decorator.js +31 -0
  54. package/src/decorators/hook.decorator.js.map +1 -0
  55. package/src/decorators/id-field.decorator.d.ts +32 -0
  56. package/src/decorators/id-field.decorator.js +48 -0
  57. package/src/decorators/id-field.decorator.js.map +1 -0
  58. package/src/decorators/index.d.ts +21 -0
  59. package/src/decorators/index.js +39 -0
  60. package/src/decorators/index.js.map +1 -0
  61. package/src/decorators/inject-authorizer.decorator.d.ts +2 -0
  62. package/src/decorators/inject-authorizer.decorator.js +8 -0
  63. package/src/decorators/inject-authorizer.decorator.js.map +1 -0
  64. package/src/decorators/inject-custom-authorizer.decorator.d.ts +2 -0
  65. package/src/decorators/inject-custom-authorizer.decorator.js +8 -0
  66. package/src/decorators/inject-custom-authorizer.decorator.js.map +1 -0
  67. package/src/decorators/inject-pub-sub.decorator.d.ts +1 -0
  68. package/src/decorators/inject-pub-sub.decorator.js +8 -0
  69. package/src/decorators/inject-pub-sub.decorator.js.map +1 -0
  70. package/src/decorators/key-set.decorator.d.ts +3 -0
  71. package/src/decorators/key-set.decorator.js +13 -0
  72. package/src/decorators/key-set.decorator.js.map +1 -0
  73. package/src/decorators/query-options.decorator.d.ts +5 -0
  74. package/src/decorators/query-options.decorator.js +16 -0
  75. package/src/decorators/query-options.decorator.js.map +1 -0
  76. package/src/decorators/reference.decorator.d.ts +8 -0
  77. package/src/decorators/reference.decorator.js +36 -0
  78. package/src/decorators/reference.decorator.js.map +1 -0
  79. package/src/decorators/relation.decorator.d.ts +16 -0
  80. package/src/decorators/relation.decorator.js +53 -0
  81. package/src/decorators/relation.decorator.js.map +1 -0
  82. package/src/decorators/resolver-field.decorator.d.ts +11 -0
  83. package/src/decorators/resolver-field.decorator.js +22 -0
  84. package/src/decorators/resolver-field.decorator.js.map +1 -0
  85. package/src/decorators/resolver-method.decorator.d.ts +34 -0
  86. package/src/decorators/resolver-method.decorator.js +35 -0
  87. package/src/decorators/resolver-method.decorator.js.map +1 -0
  88. package/src/decorators/resolver-mutation.decorator.d.ts +10 -0
  89. package/src/decorators/resolver-mutation.decorator.js +21 -0
  90. package/src/decorators/resolver-mutation.decorator.js.map +1 -0
  91. package/src/decorators/resolver-query.decorator.d.ts +13 -0
  92. package/src/decorators/resolver-query.decorator.js +21 -0
  93. package/src/decorators/resolver-query.decorator.js.map +1 -0
  94. package/src/decorators/resolver-subscription.decorator.d.ts +7 -0
  95. package/src/decorators/resolver-subscription.decorator.js +18 -0
  96. package/src/decorators/resolver-subscription.decorator.js.map +1 -0
  97. package/src/decorators/skip-if.decorator.d.ts +8 -0
  98. package/src/decorators/skip-if.decorator.js +18 -0
  99. package/src/decorators/skip-if.decorator.js.map +1 -0
  100. package/src/federation/index.d.ts +1 -0
  101. package/src/federation/index.js +3 -0
  102. package/src/federation/index.js.map +1 -0
  103. package/src/federation/representation.type.d.ts +3 -0
  104. package/src/federation/representation.type.js +3 -0
  105. package/src/federation/representation.type.js.map +1 -0
  106. package/src/hooks/default.hook.d.ts +3 -0
  107. package/src/hooks/default.hook.js +13 -0
  108. package/src/hooks/default.hook.js.map +1 -0
  109. package/src/hooks/hooks.d.ts +14 -0
  110. package/src/hooks/hooks.js +8 -0
  111. package/src/hooks/hooks.js.map +1 -0
  112. package/src/hooks/index.d.ts +4 -0
  113. package/src/hooks/index.js +10 -0
  114. package/src/hooks/index.js.map +1 -0
  115. package/src/hooks/tokens.d.ts +3 -0
  116. package/src/hooks/tokens.js +6 -0
  117. package/src/hooks/tokens.js.map +1 -0
  118. package/src/hooks/types.d.ts +10 -0
  119. package/src/hooks/types.js +15 -0
  120. package/src/hooks/types.js.map +1 -0
  121. package/src/index.d.ts +11 -0
  122. package/src/index.js.map +1 -0
  123. package/src/interceptors/authorizer.interceptor.d.ts +7 -0
  124. package/src/interceptors/authorizer.interceptor.js +33 -0
  125. package/src/interceptors/authorizer.interceptor.js.map +1 -0
  126. package/src/interceptors/hook.interceptor.d.ts +7 -0
  127. package/src/interceptors/hook.interceptor.js +44 -0
  128. package/src/interceptors/hook.interceptor.js.map +1 -0
  129. package/src/interceptors/index.d.ts +2 -0
  130. package/src/interceptors/index.js +6 -0
  131. package/src/interceptors/index.js.map +1 -0
  132. package/src/loader/aggregate-relations.loader.d.ts +16 -0
  133. package/src/loader/aggregate-relations.loader.js +43 -0
  134. package/src/loader/aggregate-relations.loader.js.map +1 -0
  135. package/src/loader/count-relations.loader.d.ts +15 -0
  136. package/src/loader/count-relations.loader.js +42 -0
  137. package/src/loader/count-relations.loader.js.map +1 -0
  138. package/src/loader/dataloader.factory.d.ts +9 -0
  139. package/src/loader/dataloader.factory.js +27 -0
  140. package/src/loader/dataloader.factory.js.map +1 -0
  141. package/src/loader/find-relations.loader.d.ts +14 -0
  142. package/src/loader/find-relations.loader.js +42 -0
  143. package/src/loader/find-relations.loader.js.map +1 -0
  144. package/src/loader/index.d.ts +5 -0
  145. package/src/loader/index.js +9 -0
  146. package/src/loader/index.js.map +1 -0
  147. package/src/loader/query-relations.loader.d.ts +15 -0
  148. package/src/loader/query-relations.loader.js +43 -0
  149. package/src/loader/query-relations.loader.js.map +1 -0
  150. package/src/loader/relations.loader.d.ts +4 -0
  151. package/src/loader/relations.loader.js +3 -0
  152. package/src/loader/relations.loader.js.map +1 -0
  153. package/src/module.d.ts +31 -0
  154. package/src/module.js +55 -0
  155. package/src/module.js.map +1 -0
  156. package/src/providers/authorizer.provider.d.ts +3 -0
  157. package/src/providers/authorizer.provider.js +31 -0
  158. package/src/providers/authorizer.provider.js.map +1 -0
  159. package/src/providers/hook.provider.d.ts +5 -0
  160. package/src/providers/hook.provider.js +33 -0
  161. package/src/providers/hook.provider.js.map +1 -0
  162. package/src/providers/index.d.ts +3 -0
  163. package/src/providers/index.js +7 -0
  164. package/src/providers/index.js.map +1 -0
  165. package/src/providers/resolver.provider.d.ts +26 -0
  166. package/src/providers/resolver.provider.js +112 -0
  167. package/src/providers/resolver.provider.js.map +1 -0
  168. package/src/resolvers/aggregate.resolver.d.ts +16 -0
  169. package/src/resolvers/aggregate.resolver.js +56 -0
  170. package/src/resolvers/aggregate.resolver.js.map +1 -0
  171. package/src/resolvers/create.resolver.d.ts +57 -0
  172. package/src/resolvers/create.resolver.js +190 -0
  173. package/src/resolvers/create.resolver.js.map +1 -0
  174. package/src/resolvers/crud.resolver.d.ts +52 -0
  175. package/src/resolvers/crud.resolver.js +68 -0
  176. package/src/resolvers/crud.resolver.js.map +1 -0
  177. package/src/resolvers/delete.resolver.d.ts +32 -0
  178. package/src/resolvers/delete.resolver.js +186 -0
  179. package/src/resolvers/delete.resolver.js.map +1 -0
  180. package/src/resolvers/federation/federation.resolver.d.ts +4 -0
  181. package/src/resolvers/federation/federation.resolver.js +8 -0
  182. package/src/resolvers/federation/federation.resolver.js.map +1 -0
  183. package/src/resolvers/federation/index.d.ts +1 -0
  184. package/src/resolvers/federation/index.js +6 -0
  185. package/src/resolvers/federation/index.js.map +1 -0
  186. package/src/resolvers/helpers.d.ts +6 -0
  187. package/src/resolvers/helpers.js +38 -0
  188. package/src/resolvers/helpers.js.map +1 -0
  189. package/src/resolvers/index.d.ts +9 -0
  190. package/src/resolvers/index.js +20 -0
  191. package/src/resolvers/index.js.map +1 -0
  192. package/src/resolvers/read.resolver.d.ts +18 -0
  193. package/src/resolvers/read.resolver.js +75 -0
  194. package/src/resolvers/read.resolver.js.map +1 -0
  195. package/src/resolvers/reference.resolver.d.ts +11 -0
  196. package/src/resolvers/reference.resolver.js +41 -0
  197. package/src/resolvers/reference.resolver.js.map +1 -0
  198. package/src/resolvers/relations/aggregate-relations.resolver.d.ts +11 -0
  199. package/src/resolvers/relations/aggregate-relations.resolver.js +76 -0
  200. package/src/resolvers/relations/aggregate-relations.resolver.js.map +1 -0
  201. package/src/resolvers/relations/helpers.d.ts +4 -0
  202. package/src/resolvers/relations/helpers.js +10 -0
  203. package/src/resolvers/relations/helpers.js.map +1 -0
  204. package/src/resolvers/relations/index.d.ts +7 -0
  205. package/src/resolvers/relations/index.js +16 -0
  206. package/src/resolvers/relations/index.js.map +1 -0
  207. package/src/resolvers/relations/read-relations.resolver.d.ts +8 -0
  208. package/src/resolvers/relations/read-relations.resolver.js +114 -0
  209. package/src/resolvers/relations/read-relations.resolver.js.map +1 -0
  210. package/src/resolvers/relations/references-relation.resolver.d.ts +5 -0
  211. package/src/resolvers/relations/references-relation.resolver.js +55 -0
  212. package/src/resolvers/relations/references-relation.resolver.js.map +1 -0
  213. package/src/resolvers/relations/relations.interface.d.ts +78 -0
  214. package/src/resolvers/relations/relations.interface.js +3 -0
  215. package/src/resolvers/relations/relations.interface.js.map +1 -0
  216. package/src/resolvers/relations/relations.resolver.d.ts +8 -0
  217. package/src/resolvers/relations/relations.resolver.js +22 -0
  218. package/src/resolvers/relations/relations.resolver.js.map +1 -0
  219. package/src/resolvers/relations/remove-relations.resolver.d.ts +5 -0
  220. package/src/resolvers/relations/remove-relations.resolver.js +107 -0
  221. package/src/resolvers/relations/remove-relations.resolver.js.map +1 -0
  222. package/src/resolvers/relations/update-relations.resolver.d.ts +5 -0
  223. package/src/resolvers/relations/update-relations.resolver.js +138 -0
  224. package/src/resolvers/relations/update-relations.resolver.js.map +1 -0
  225. package/src/resolvers/resolver.interface.d.ts +47 -0
  226. package/src/resolvers/resolver.interface.js +14 -0
  227. package/src/resolvers/resolver.interface.js.map +1 -0
  228. package/src/resolvers/update.resolver.d.ts +23 -0
  229. package/src/resolvers/update.resolver.js +198 -0
  230. package/src/resolvers/update.resolver.js.map +1 -0
  231. package/src/subscription/index.d.ts +14 -0
  232. package/src/subscription/index.js +32 -0
  233. package/src/subscription/index.js.map +1 -0
  234. package/src/subscription/pub-sub.interface.d.ts +6 -0
  235. package/src/subscription/pub-sub.interface.js +3 -0
  236. package/src/subscription/pub-sub.interface.js.map +1 -0
  237. package/src/types/aggregate/aggregate-args.type.d.ts +9 -0
  238. package/src/types/aggregate/aggregate-args.type.js +30 -0
  239. package/src/types/aggregate/aggregate-args.type.js.map +1 -0
  240. package/src/types/aggregate/aggregate-response.type.d.ts +5 -0
  241. package/src/types/aggregate/aggregate-response.type.js +96 -0
  242. package/src/types/aggregate/aggregate-response.type.js.map +1 -0
  243. package/src/types/aggregate/index.d.ts +2 -0
  244. package/src/types/aggregate/index.js +8 -0
  245. package/src/types/aggregate/index.js.map +1 -0
  246. package/src/types/connection/array-connection.type.d.ts +4 -0
  247. package/src/types/connection/array-connection.type.js +20 -0
  248. package/src/types/connection/array-connection.type.js.map +1 -0
  249. package/src/types/connection/cursor/cursor-connection.type.d.ts +4 -0
  250. package/src/types/connection/cursor/cursor-connection.type.js +72 -0
  251. package/src/types/connection/cursor/cursor-connection.type.js.map +1 -0
  252. package/src/types/connection/cursor/edge.type.d.ts +7 -0
  253. package/src/types/connection/cursor/edge.type.js +36 -0
  254. package/src/types/connection/cursor/edge.type.js.map +1 -0
  255. package/src/types/connection/cursor/index.d.ts +1 -0
  256. package/src/types/connection/cursor/index.js +5 -0
  257. package/src/types/connection/cursor/index.js.map +1 -0
  258. package/src/types/connection/cursor/page-info.type.d.ts +6 -0
  259. package/src/types/connection/cursor/page-info.type.js +49 -0
  260. package/src/types/connection/cursor/page-info.type.js.map +1 -0
  261. package/src/types/connection/cursor/pager/index.d.ts +7 -0
  262. package/src/types/connection/cursor/pager/index.js +16 -0
  263. package/src/types/connection/cursor/pager/index.js.map +1 -0
  264. package/src/types/connection/cursor/pager/interfaces.d.ts +12 -0
  265. package/src/types/connection/cursor/pager/interfaces.js +3 -0
  266. package/src/types/connection/cursor/pager/interfaces.js.map +1 -0
  267. package/src/types/connection/cursor/pager/pager.d.ts +15 -0
  268. package/src/types/connection/cursor/pager/pager.js +83 -0
  269. package/src/types/connection/cursor/pager/pager.js.map +1 -0
  270. package/src/types/connection/cursor/pager/strategies/helpers.d.ts +6 -0
  271. package/src/types/connection/cursor/pager/strategies/helpers.js +24 -0
  272. package/src/types/connection/cursor/pager/strategies/helpers.js.map +1 -0
  273. package/src/types/connection/cursor/pager/strategies/index.d.ts +4 -0
  274. package/src/types/connection/cursor/pager/strategies/index.js +8 -0
  275. package/src/types/connection/cursor/pager/strategies/index.js.map +1 -0
  276. package/src/types/connection/cursor/pager/strategies/keyset.pager-strategy.d.ts +19 -0
  277. package/src/types/connection/cursor/pager/strategies/keyset.pager-strategy.js +123 -0
  278. package/src/types/connection/cursor/pager/strategies/keyset.pager-strategy.js.map +1 -0
  279. package/src/types/connection/cursor/pager/strategies/limit-offset.pager-strategy.d.ts +15 -0
  280. package/src/types/connection/cursor/pager/strategies/limit-offset.pager-strategy.js +88 -0
  281. package/src/types/connection/cursor/pager/strategies/limit-offset.pager-strategy.js.map +1 -0
  282. package/src/types/connection/cursor/pager/strategies/pager-strategy.d.ts +33 -0
  283. package/src/types/connection/cursor/pager/strategies/pager-strategy.js +3 -0
  284. package/src/types/connection/cursor/pager/strategies/pager-strategy.js.map +1 -0
  285. package/src/types/connection/index.d.ts +4 -0
  286. package/src/types/connection/index.js +10 -0
  287. package/src/types/connection/index.js.map +1 -0
  288. package/src/types/connection/interfaces.d.ts +60 -0
  289. package/src/types/connection/interfaces.js +3 -0
  290. package/src/types/connection/interfaces.js.map +1 -0
  291. package/src/types/connection/offset/index.d.ts +2 -0
  292. package/src/types/connection/offset/index.js +6 -0
  293. package/src/types/connection/offset/index.js.map +1 -0
  294. package/src/types/connection/offset/offset-connection.type.d.ts +4 -0
  295. package/src/types/connection/offset/offset-connection.type.js +68 -0
  296. package/src/types/connection/offset/offset-connection.type.js.map +1 -0
  297. package/src/types/connection/offset/offset-page-info.type.d.ts +5 -0
  298. package/src/types/connection/offset/offset-page-info.type.js +35 -0
  299. package/src/types/connection/offset/offset-page-info.type.js.map +1 -0
  300. package/src/types/connection/offset/pager/index.d.ts +4 -0
  301. package/src/types/connection/offset/pager/index.js +8 -0
  302. package/src/types/connection/offset/pager/index.js.map +1 -0
  303. package/src/types/connection/offset/pager/interfaces.d.ts +12 -0
  304. package/src/types/connection/offset/pager/interfaces.js +3 -0
  305. package/src/types/connection/offset/pager/interfaces.js.map +1 -0
  306. package/src/types/connection/offset/pager/pager.d.ts +12 -0
  307. package/src/types/connection/offset/pager/pager.js +62 -0
  308. package/src/types/connection/offset/pager/pager.js.map +1 -0
  309. package/src/types/create-many-input.type.d.ts +10 -0
  310. package/src/types/create-many-input.type.js +42 -0
  311. package/src/types/create-many-input.type.js.map +1 -0
  312. package/src/types/create-one-input.type.d.ts +11 -0
  313. package/src/types/create-one-input.type.js +42 -0
  314. package/src/types/create-one-input.type.js.map +1 -0
  315. package/src/types/cursor.scalar.d.ts +3 -0
  316. package/src/types/cursor.scalar.js +21 -0
  317. package/src/types/cursor.scalar.js.map +1 -0
  318. package/src/types/delete-many-input.type.d.ts +9 -0
  319. package/src/types/delete-many-input.type.js +31 -0
  320. package/src/types/delete-many-input.type.js.map +1 -0
  321. package/src/types/delete-many-reponse.type.d.ts +2 -0
  322. package/src/types/delete-many-reponse.type.js +25 -0
  323. package/src/types/delete-many-reponse.type.js.map +1 -0
  324. package/src/types/delete-one-input.type.d.ts +8 -0
  325. package/src/types/delete-one-input.type.js +27 -0
  326. package/src/types/delete-one-input.type.js.map +1 -0
  327. package/src/types/find-one-args.type.d.ts +8 -0
  328. package/src/types/find-one-args.type.js +27 -0
  329. package/src/types/find-one-args.type.js.map +1 -0
  330. package/src/types/index.d.ts +18 -0
  331. package/src/types/index.js +44 -0
  332. package/src/types/index.js.map +1 -0
  333. package/src/types/mutation-args.type.d.ts +5 -0
  334. package/src/types/mutation-args.type.js +24 -0
  335. package/src/types/mutation-args.type.js.map +1 -0
  336. package/src/types/query/field-comparison/boolean-field-comparison.type.d.ts +3 -0
  337. package/src/types/query/field-comparison/boolean-field-comparison.type.js +35 -0
  338. package/src/types/query/field-comparison/boolean-field-comparison.type.js.map +1 -0
  339. package/src/types/query/field-comparison/date-field-comparison.type.d.ts +3 -0
  340. package/src/types/query/field-comparison/date-field-comparison.type.js +112 -0
  341. package/src/types/query/field-comparison/date-field-comparison.type.js.map +1 -0
  342. package/src/types/query/field-comparison/field-comparison.factory.d.ts +11 -0
  343. package/src/types/query/field-comparison/field-comparison.factory.js +166 -0
  344. package/src/types/query/field-comparison/field-comparison.factory.js.map +1 -0
  345. package/src/types/query/field-comparison/float-field-comparison.type.d.ts +3 -0
  346. package/src/types/query/field-comparison/float-field-comparison.type.js +112 -0
  347. package/src/types/query/field-comparison/float-field-comparison.type.js.map +1 -0
  348. package/src/types/query/field-comparison/index.d.ts +8 -0
  349. package/src/types/query/field-comparison/index.js +12 -0
  350. package/src/types/query/field-comparison/index.js.map +1 -0
  351. package/src/types/query/field-comparison/int-field-comparison.type.d.ts +3 -0
  352. package/src/types/query/field-comparison/int-field-comparison.type.js +112 -0
  353. package/src/types/query/field-comparison/int-field-comparison.type.js.map +1 -0
  354. package/src/types/query/field-comparison/number-field-comparison.type.d.ts +3 -0
  355. package/src/types/query/field-comparison/number-field-comparison.type.js +112 -0
  356. package/src/types/query/field-comparison/number-field-comparison.type.js.map +1 -0
  357. package/src/types/query/field-comparison/string-field-comparison.type.d.ts +3 -0
  358. package/src/types/query/field-comparison/string-field-comparison.type.js +108 -0
  359. package/src/types/query/field-comparison/string-field-comparison.type.js.map +1 -0
  360. package/src/types/query/field-comparison/timestamp-field-comparison.type.d.ts +3 -0
  361. package/src/types/query/field-comparison/timestamp-field-comparison.type.js +112 -0
  362. package/src/types/query/field-comparison/timestamp-field-comparison.type.js.map +1 -0
  363. package/src/types/query/filter.type.d.ts +14 -0
  364. package/src/types/query/filter.type.js +103 -0
  365. package/src/types/query/filter.type.js.map +1 -0
  366. package/src/types/query/helpers.d.ts +1 -0
  367. package/src/types/query/helpers.js +6 -0
  368. package/src/types/query/helpers.js.map +1 -0
  369. package/src/types/query/index.d.ts +4 -0
  370. package/src/types/query/index.js +14 -0
  371. package/src/types/query/index.js.map +1 -0
  372. package/src/types/query/paging/constants.d.ts +5 -0
  373. package/src/types/query/paging/constants.js +10 -0
  374. package/src/types/query/paging/constants.js.map +1 -0
  375. package/src/types/query/paging/cursor-paging.type.d.ts +3 -0
  376. package/src/types/query/paging/cursor-paging.type.js +69 -0
  377. package/src/types/query/paging/cursor-paging.type.js.map +1 -0
  378. package/src/types/query/paging/index.d.ts +5 -0
  379. package/src/types/query/paging/index.js +12 -0
  380. package/src/types/query/paging/index.js.map +1 -0
  381. package/src/types/query/paging/interfaces.d.ts +13 -0
  382. package/src/types/query/paging/interfaces.js +3 -0
  383. package/src/types/query/paging/interfaces.js.map +1 -0
  384. package/src/types/query/paging/none-paging.type.d.ts +3 -0
  385. package/src/types/query/paging/none-paging.type.js +18 -0
  386. package/src/types/query/paging/none-paging.type.js.map +1 -0
  387. package/src/types/query/paging/offset-paging.type.d.ts +3 -0
  388. package/src/types/query/paging/offset-paging.type.js +43 -0
  389. package/src/types/query/paging/offset-paging.type.js.map +1 -0
  390. package/src/types/query/query-args/constants.d.ts +6 -0
  391. package/src/types/query/query-args/constants.js +10 -0
  392. package/src/types/query/query-args/constants.js.map +1 -0
  393. package/src/types/query/query-args/cursor-query-args.type.d.ts +5 -0
  394. package/src/types/query/query-args/cursor-query-args.type.js +61 -0
  395. package/src/types/query/query-args/cursor-query-args.type.js.map +1 -0
  396. package/src/types/query/query-args/index.d.ts +5 -0
  397. package/src/types/query/query-args/index.js +9 -0
  398. package/src/types/query/query-args/index.js.map +1 -0
  399. package/src/types/query/query-args/interfaces.d.ts +45 -0
  400. package/src/types/query/query-args/interfaces.js +3 -0
  401. package/src/types/query/query-args/interfaces.js.map +1 -0
  402. package/src/types/query/query-args/none-paging-query-args.type.d.ts +5 -0
  403. package/src/types/query/query-args/none-paging-query-args.type.js +49 -0
  404. package/src/types/query/query-args/none-paging-query-args.type.js.map +1 -0
  405. package/src/types/query/query-args/offset-query-args.type.d.ts +5 -0
  406. package/src/types/query/query-args/offset-query-args.type.js +60 -0
  407. package/src/types/query/query-args/offset-query-args.type.js.map +1 -0
  408. package/src/types/query/query-args.type.d.ts +8 -0
  409. package/src/types/query/query-args.type.js +33 -0
  410. package/src/types/query/query-args.type.js.map +1 -0
  411. package/src/types/query/sorting.type.d.ts +2 -0
  412. package/src/types/query/sorting.type.js +55 -0
  413. package/src/types/query/sorting.type.js.map +1 -0
  414. package/src/types/relation-input.type.d.ts +6 -0
  415. package/src/types/relation-input.type.js +30 -0
  416. package/src/types/relation-input.type.js.map +1 -0
  417. package/src/types/relations-input.type.d.ts +6 -0
  418. package/src/types/relations-input.type.js +31 -0
  419. package/src/types/relations-input.type.js.map +1 -0
  420. package/src/types/subscription-args.type.d.ts +5 -0
  421. package/src/types/subscription-args.type.js +24 -0
  422. package/src/types/subscription-args.type.js.map +1 -0
  423. package/src/types/subscription-filter-input.type.d.ts +9 -0
  424. package/src/types/subscription-filter-input.type.js +32 -0
  425. package/src/types/subscription-filter-input.type.js.map +1 -0
  426. package/src/types/type.errors.d.ts +5 -0
  427. package/src/types/type.errors.js +11 -0
  428. package/src/types/type.errors.js.map +1 -0
  429. package/src/types/update-many-input.type.d.ts +11 -0
  430. package/src/types/update-many-input.type.js +38 -0
  431. package/src/types/update-many-input.type.js.map +1 -0
  432. package/src/types/update-many-response.type.d.ts +2 -0
  433. package/src/types/update-many-response.type.js +25 -0
  434. package/src/types/update-many-response.type.js.map +1 -0
  435. package/src/types/update-one-input.type.d.ts +11 -0
  436. package/src/types/update-one-input.type.js +36 -0
  437. package/src/types/update-one-input.type.js.map +1 -0
  438. package/src/types/validators/cannot-use-with.validator.d.ts +6 -0
  439. package/src/types/validators/cannot-use-with.validator.js +21 -0
  440. package/src/types/validators/cannot-use-with.validator.js.map +1 -0
  441. package/src/types/validators/cannot-use-without.validator.d.ts +6 -0
  442. package/src/types/validators/cannot-use-without.validator.js +22 -0
  443. package/src/types/validators/cannot-use-without.validator.js.map +1 -0
  444. package/src/types/validators/index.d.ts +3 -0
  445. package/src/types/validators/index.js +7 -0
  446. package/src/types/validators/index.js.map +1 -0
  447. package/src/types/validators/is-undefined.validator.d.ts +3 -0
  448. package/src/types/validators/is-undefined.validator.js +11 -0
  449. package/src/types/validators/is-undefined.validator.js.map +1 -0
  450. package/src/types/validators/property-max.validator.d.ts +6 -0
  451. package/src/types/validators/property-max.validator.js +30 -0
  452. package/src/types/validators/property-max.validator.js.map +1 -0
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AggregateRelationsResolver = exports.ReferencesRelationsResolver = exports.RemoveRelationsResolver = exports.UpdateRelationsResolver = exports.ReadRelationsResolver = exports.Relatable = void 0;
4
+ var relations_resolver_1 = require("./relations.resolver");
5
+ Object.defineProperty(exports, "Relatable", { enumerable: true, get: function () { return relations_resolver_1.Relatable; } });
6
+ var read_relations_resolver_1 = require("./read-relations.resolver");
7
+ Object.defineProperty(exports, "ReadRelationsResolver", { enumerable: true, get: function () { return read_relations_resolver_1.ReadRelationsResolver; } });
8
+ var update_relations_resolver_1 = require("./update-relations.resolver");
9
+ Object.defineProperty(exports, "UpdateRelationsResolver", { enumerable: true, get: function () { return update_relations_resolver_1.UpdateRelationsResolver; } });
10
+ var remove_relations_resolver_1 = require("./remove-relations.resolver");
11
+ Object.defineProperty(exports, "RemoveRelationsResolver", { enumerable: true, get: function () { return remove_relations_resolver_1.RemoveRelationsResolver; } });
12
+ var references_relation_resolver_1 = require("./references-relation.resolver");
13
+ Object.defineProperty(exports, "ReferencesRelationsResolver", { enumerable: true, get: function () { return references_relation_resolver_1.ReferencesRelationsResolver; } });
14
+ var aggregate_relations_resolver_1 = require("./aggregate-relations.resolver");
15
+ Object.defineProperty(exports, "AggregateRelationsResolver", { enumerable: true, get: function () { return aggregate_relations_resolver_1.AggregateRelationsResolver; } });
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/query-graphql/src/resolvers/relations/index.ts"],"names":[],"mappings":";;;AAAA,2DAAiD;AAAxC,+GAAA,SAAS,OAAA;AAClB,qEAAkE;AAAzD,gIAAA,qBAAqB,OAAA;AAC9B,yEAAsE;AAA7D,oIAAA,uBAAuB,OAAA;AAChC,yEAAsE;AAA7D,oIAAA,uBAAuB,OAAA;AAChC,+EAA6E;AAApE,2IAAA,2BAA2B,OAAA;AACpC,+EAA4E;AAAnE,0IAAA,0BAA0B,OAAA"}
@@ -0,0 +1,8 @@
1
+ import { Class, QueryService } from '@ptc-org/nestjs-query-core';
2
+ import { ServiceResolver } from '../resolver.interface';
3
+ import { RelationsOpts } from './relations.interface';
4
+ export interface ReadRelationsResolverOpts extends RelationsOpts {
5
+ enableTotalCount?: boolean;
6
+ }
7
+ export declare const ReadRelationsMixin: <DTO>(DTOClass: Class<DTO>, relations: ReadRelationsResolverOpts) => <B extends Class<ServiceResolver<DTO, QueryService<DTO, unknown, unknown>>>>(Base: B) => B;
8
+ export declare const ReadRelationsResolver: <DTO, QS extends QueryService<DTO, unknown, unknown> = QueryService<DTO, unknown, unknown>>(DTOClass: Class<DTO>, relations: ReadRelationsResolverOpts) => Class<ServiceResolver<DTO, QS>>;
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ReadRelationsResolver = exports.ReadRelationsMixin = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const nestjs_query_core_1 = require("@ptc-org/nestjs-query-core");
6
+ const graphql_1 = require("@nestjs/graphql");
7
+ const auth_1 = require("../../auth");
8
+ const common_1 = require("../../common");
9
+ const decorators_1 = require("../../decorators");
10
+ const interceptors_1 = require("../../interceptors");
11
+ const loader_1 = require("../../loader");
12
+ const types_1 = require("../../types");
13
+ const helpers_1 = require("../helpers");
14
+ const resolver_interface_1 = require("../resolver.interface");
15
+ const helpers_2 = require("./helpers");
16
+ const ReadOneRelationMixin = (DTOClass, relation) => (Base) => {
17
+ var _a;
18
+ if (relation.disableRead) {
19
+ return Base;
20
+ }
21
+ const commonResolverOpts = (0, helpers_2.removeRelationOpts)(relation);
22
+ const relationDTO = relation.DTO;
23
+ const { baseNameLower, baseName } = (0, common_1.getDTONames)(relationDTO, { dtoName: relation.dtoName });
24
+ const relationName = relation.relationName ?? baseNameLower;
25
+ const loaderName = `load${baseName}For${DTOClass.name}`;
26
+ const findLoader = new loader_1.FindRelationsLoader(relationDTO, relationName);
27
+ let ReadOneMixin = class ReadOneMixin extends Base {
28
+ async [_a = `find${baseName}`](dto, context, authFilter) {
29
+ return loader_1.DataLoaderFactory.getOrCreateLoader(context, loaderName, findLoader.createLoader(this.service)).load({
30
+ dto,
31
+ filter: authFilter,
32
+ });
33
+ }
34
+ };
35
+ (0, tslib_1.__decorate)([
36
+ (0, decorators_1.ResolverField)(baseNameLower, () => relationDTO, { nullable: relation.nullable, complexity: relation.complexity, description: relation?.description }, commonResolverOpts, { interceptors: [(0, interceptors_1.AuthorizerInterceptor)(DTOClass)] }),
37
+ (0, tslib_1.__param)(0, (0, graphql_1.Parent)()),
38
+ (0, tslib_1.__param)(1, (0, graphql_1.Context)()),
39
+ (0, tslib_1.__param)(2, (0, decorators_1.RelationAuthorizerFilter)(baseNameLower, {
40
+ operationGroup: auth_1.OperationGroup.READ,
41
+ many: false,
42
+ })),
43
+ (0, tslib_1.__metadata)("design:type", Function),
44
+ (0, tslib_1.__metadata)("design:paramtypes", [Object, Object, Object]),
45
+ (0, tslib_1.__metadata)("design:returntype", Promise)
46
+ ], ReadOneMixin.prototype, _a, null);
47
+ ReadOneMixin = (0, tslib_1.__decorate)([
48
+ (0, graphql_1.Resolver)(() => DTOClass, { isAbstract: true })
49
+ ], ReadOneMixin);
50
+ return ReadOneMixin;
51
+ };
52
+ const ReadManyRelationMixin = (DTOClass, relation) => (Base) => {
53
+ var _a;
54
+ if (relation.disableRead) {
55
+ return Base;
56
+ }
57
+ const commonResolverOpts = (0, helpers_2.removeRelationOpts)(relation);
58
+ const relationDTO = relation.DTO;
59
+ const dtoName = (0, common_1.getDTONames)(DTOClass).baseName;
60
+ const { pluralBaseNameLower, pluralBaseName } = (0, common_1.getDTONames)(relationDTO, { dtoName: relation.dtoName });
61
+ const relationName = relation.relationName ?? pluralBaseNameLower;
62
+ const relationLoaderName = `load${pluralBaseName}For${DTOClass.name}`;
63
+ const countRelationLoaderName = `count${pluralBaseName}For${DTOClass.name}`;
64
+ const queryLoader = new loader_1.QueryRelationsLoader(relationDTO, relationName);
65
+ const countLoader = new loader_1.CountRelationsLoader(relationDTO, relationName);
66
+ const connectionName = `${dtoName}${pluralBaseName}Connection`;
67
+ let RelationQA = class RelationQA extends (0, types_1.QueryArgsType)(relationDTO, {
68
+ ...relation,
69
+ connectionName,
70
+ disableKeySetPagination: true,
71
+ }) {
72
+ };
73
+ RelationQA = (0, tslib_1.__decorate)([
74
+ (0, graphql_1.ArgsType)()
75
+ ], RelationQA);
76
+ // disable keyset pagination for relations otherwise recursive paging will not work
77
+ const { ConnectionType: CT } = RelationQA;
78
+ let ReadManyMixin = class ReadManyMixin extends Base {
79
+ async [_a = `query${pluralBaseName}`](dto, q, context, relationFilter) {
80
+ const qa = await (0, helpers_1.transformAndValidate)(RelationQA, q);
81
+ const relationLoader = loader_1.DataLoaderFactory.getOrCreateLoader(context, relationLoaderName, queryLoader.createLoader(this.service));
82
+ const relationCountLoader = loader_1.DataLoaderFactory.getOrCreateLoader(context, countRelationLoaderName, countLoader.createLoader(this.service));
83
+ return CT.createFromPromise((query) => relationLoader.load({ dto, query }), (0, nestjs_query_core_1.mergeQuery)(qa, { filter: relationFilter }), (filter) => relationCountLoader.load({ dto, filter }));
84
+ }
85
+ };
86
+ (0, tslib_1.__decorate)([
87
+ (0, decorators_1.ResolverField)(pluralBaseNameLower, () => CT.resolveType, { nullable: relation.nullable, complexity: relation.complexity, description: relation?.description }, commonResolverOpts, { interceptors: [(0, interceptors_1.AuthorizerInterceptor)(DTOClass)] }),
88
+ (0, tslib_1.__param)(0, (0, graphql_1.Parent)()),
89
+ (0, tslib_1.__param)(1, (0, graphql_1.Args)()),
90
+ (0, tslib_1.__param)(2, (0, graphql_1.Context)()),
91
+ (0, tslib_1.__param)(3, (0, decorators_1.RelationAuthorizerFilter)(pluralBaseNameLower, {
92
+ operationGroup: auth_1.OperationGroup.READ,
93
+ many: true,
94
+ })),
95
+ (0, tslib_1.__metadata)("design:type", Function),
96
+ (0, tslib_1.__metadata)("design:paramtypes", [Object, RelationQA, Object, Object]),
97
+ (0, tslib_1.__metadata)("design:returntype", Promise)
98
+ ], ReadManyMixin.prototype, _a, null);
99
+ ReadManyMixin = (0, tslib_1.__decorate)([
100
+ (0, graphql_1.Resolver)(() => DTOClass, { isAbstract: true })
101
+ ], ReadManyMixin);
102
+ return ReadManyMixin;
103
+ };
104
+ const ReadRelationsMixin = (DTOClass, relations) => (Base) => {
105
+ const { many, one, enableTotalCount } = relations;
106
+ const manyRelations = (0, helpers_2.flattenRelations)(many ?? {});
107
+ const oneRelations = (0, helpers_2.flattenRelations)(one ?? {});
108
+ const WithMany = manyRelations.reduce((RB, a) => ReadManyRelationMixin(DTOClass, { enableTotalCount, ...a })(RB), Base);
109
+ return oneRelations.reduce((RB, a) => ReadOneRelationMixin(DTOClass, a)(RB), WithMany);
110
+ };
111
+ exports.ReadRelationsMixin = ReadRelationsMixin;
112
+ const ReadRelationsResolver = (DTOClass, relations) => (0, exports.ReadRelationsMixin)(DTOClass, relations)(resolver_interface_1.BaseServiceResolver);
113
+ exports.ReadRelationsResolver = ReadRelationsResolver;
114
+ //# sourceMappingURL=read-relations.resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-relations.resolver.js","sourceRoot":"","sources":["../../../../../../packages/query-graphql/src/resolvers/relations/read-relations.resolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { Class, QueryService } from '@ptc-org/nestjs-query-core';
2
+ import { ServiceResolver } from '../resolver.interface';
3
+ import { ReferencesOpts } from './relations.interface';
4
+ export declare const ReferencesRelationMixin: <DTO>(DTOClass: Class<DTO>, references: ReferencesOpts<DTO>) => <B extends Class<ServiceResolver<DTO, QueryService<DTO, unknown, unknown>>>>(Base: B) => B;
5
+ export declare const ReferencesRelationsResolver: <DTO, QS extends QueryService<DTO, unknown, unknown> = QueryService<DTO, unknown, unknown>>(DTOClass: Class<DTO>, references: ReferencesOpts<DTO>) => Class<ServiceResolver<DTO, QS>>;
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ReferencesRelationsResolver = exports.ReferencesRelationMixin = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const graphql_1 = require("@nestjs/graphql");
6
+ const common_1 = require("../../common");
7
+ const decorators_1 = require("../../decorators");
8
+ const resolver_interface_1 = require("../resolver.interface");
9
+ const helpers_1 = require("./helpers");
10
+ const pluckFields = (dto, fieldMap) => {
11
+ const partial = {};
12
+ Object.keys(fieldMap).forEach((relationField) => {
13
+ const dtoField = fieldMap[relationField];
14
+ partial[relationField] = dto[dtoField];
15
+ });
16
+ return partial;
17
+ };
18
+ const allFieldsAreNull = (fields) => {
19
+ return Object.values(fields).reduce((previousNull, value) => previousNull && (value === null || value === undefined), true);
20
+ };
21
+ const ReferencesMixin = (DTOClass, reference) => (Base) => {
22
+ var _a;
23
+ const commonResolverOpts = (0, helpers_1.removeRelationOpts)(reference);
24
+ const relationDTO = reference.DTO;
25
+ const { baseNameLower, baseName } = (0, common_1.getDTONames)(relationDTO, { dtoName: reference.dtoName });
26
+ let ReadOneMixin = class ReadOneMixin extends Base {
27
+ [_a = `${baseNameLower}Reference`](dto) {
28
+ const fields = pluckFields(dto, reference.keys);
29
+ if (allFieldsAreNull(fields)) {
30
+ return null;
31
+ }
32
+ // eslint-disable-next-line @typescript-eslint/naming-convention
33
+ return { __typename: baseName, ...fields };
34
+ }
35
+ };
36
+ (0, tslib_1.__decorate)([
37
+ (0, decorators_1.ResolverField)(baseNameLower, () => relationDTO, { nullable: reference.nullable, complexity: reference.complexity }, commonResolverOpts),
38
+ (0, tslib_1.__param)(0, (0, graphql_1.Parent)()),
39
+ (0, tslib_1.__metadata)("design:type", Function),
40
+ (0, tslib_1.__metadata)("design:paramtypes", [Object]),
41
+ (0, tslib_1.__metadata)("design:returntype", Object)
42
+ ], ReadOneMixin.prototype, _a, null);
43
+ ReadOneMixin = (0, tslib_1.__decorate)([
44
+ (0, graphql_1.Resolver)(() => DTOClass, { isAbstract: true })
45
+ ], ReadOneMixin);
46
+ return ReadOneMixin;
47
+ };
48
+ const ReferencesRelationMixin = (DTOClass, references) => (Base) => {
49
+ const flattened = (0, helpers_1.flattenRelations)(references);
50
+ return flattened.reduce((RB, a) => ReferencesMixin(DTOClass, a)(RB), Base);
51
+ };
52
+ exports.ReferencesRelationMixin = ReferencesRelationMixin;
53
+ const ReferencesRelationsResolver = (DTOClass, references) => (0, exports.ReferencesRelationMixin)(DTOClass, references)(resolver_interface_1.BaseServiceResolver);
54
+ exports.ReferencesRelationsResolver = ReferencesRelationsResolver;
55
+ //# sourceMappingURL=references-relation.resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"references-relation.resolver.js","sourceRoot":"","sources":["../../../../../../packages/query-graphql/src/resolvers/relations/references-relation.resolver.ts"],"names":[],"mappings":";;;;AACA,6CAAmD;AACnD,yCAA2C;AAC3C,iDAAiD;AAEjD,8DAA6E;AAC7E,uCAAiE;AAGjE,MAAM,WAAW,GAAG,CAAgB,GAAQ,EAAE,QAAuC,EAAqB,EAAE;IAC1G,MAAM,OAAO,GAA4B,EAAE,CAAC;IAC5C,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,EAAE;QAC9C,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAA+B,CAAC,CAAC;QAC3D,OAAO,CAAC,aAAa,CAAC,GAAG,GAAG,CAAC,QAAqB,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IACH,OAAO,OAA4B,CAAC;AACtC,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAW,MAAyB,EAAW,EAAE;IACxE,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CACjC,CAAC,YAAY,EAAE,KAAK,EAAE,EAAE,CAAC,YAAY,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC,EAChF,IAAI,CACL,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,eAAe,GACnB,CAAgB,QAAoB,EAAE,SAAmD,EAAE,EAAE,CAC7F,CAA6E,IAAO,EAAK,EAAE;;IACzF,MAAM,kBAAkB,GAAG,IAAA,4BAAkB,EAAC,SAAS,CAAC,CAAC;IACzD,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC;IAClC,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,IAAA,oBAAW,EAAC,WAAW,EAAE,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;IAG7F,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,IAAI;QAO7B,MAAC,GAAG,aAAa,WAAW,CAAC,CAAW,GAAQ;YAC9C,MAAM,MAAM,GAAG,WAAW,CAAgB,GAAG,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;YAE/D,IAAI,gBAAgB,CAAC,MAAM,CAAC,EAAE;gBAC5B,OAAO,IAAI,CAAC;aACb;YAED,gEAAgE;YAChE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,MAAM,EAAE,CAAC;QAC7C,CAAC;KACF,CAAA;IAVC;QANC,IAAA,0BAAa,EACZ,aAAa,EACb,GAAG,EAAE,CAAC,WAAW,EACjB,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE,UAAU,EAAE,SAAS,CAAC,UAAU,EAAE,EAClE,kBAAkB,CACnB;QAC8B,wBAAA,IAAA,gBAAM,GAAE,CAAA;;;;wCAStC;IAhBG,YAAY;QADjB,IAAA,kBAAQ,EAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;OACzC,YAAY,CAiBjB;IACD,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AAEG,MAAM,uBAAuB,GAClC,CAAM,QAAoB,EAAE,UAA+B,EAAE,EAAE,CAC/D,CAA6E,IAAO,EAAK,EAAE;IACzF,MAAM,SAAS,GAAG,IAAA,0BAAgB,EAAC,UAAU,CAAC,CAAC;IAC/C,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;AAC7E,CAAC,CAAC;AALS,QAAA,uBAAuB,2BAKhC;AAEG,MAAM,2BAA2B,GAAG,CAIzC,QAAoB,EACpB,UAA+B,EACE,EAAE,CAAC,IAAA,+BAAuB,EAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,wCAAmB,CAAC,CAAC;AAN5F,QAAA,2BAA2B,+BAMiE"}
@@ -0,0 +1,78 @@
1
+ import { Class } from '@ptc-org/nestjs-query-core';
2
+ import { Complexity } from '@nestjs/graphql';
3
+ import { DTONamesOpts } from '../../common';
4
+ import { ResolverMethodOpts } from '../../decorators';
5
+ import { QueryArgsTypeOpts, ConnectionOptions } from '../../types';
6
+ import { AuthorizerOptions } from '../../auth';
7
+ export declare type ReferencesKeys<DTO, Reference> = {
8
+ [F in keyof Reference]?: keyof DTO;
9
+ };
10
+ export interface ResolverRelationReference<DTO, Reference> extends DTONamesOpts, ResolverMethodOpts {
11
+ /**
12
+ * The class type of the relation.
13
+ */
14
+ DTO: Class<Reference>;
15
+ /**
16
+ * Keys
17
+ */
18
+ keys: ReferencesKeys<DTO, Reference>;
19
+ /**
20
+ * Set to true if the relation is nullable
21
+ */
22
+ nullable?: boolean;
23
+ complexity?: Complexity;
24
+ }
25
+ export declare type ResolverRelation<Relation> = {
26
+ /**
27
+ * The class type of the relation.
28
+ */
29
+ DTO: Class<Relation>;
30
+ /**
31
+ * The name of the relation to use when fetching from the QueryService
32
+ */
33
+ relationName?: string;
34
+ /**
35
+ * Set to true if the relation is nullable
36
+ */
37
+ nullable?: boolean;
38
+ /**
39
+ * Disable read relation graphql endpoints
40
+ */
41
+ disableRead?: boolean;
42
+ /**
43
+ * Disable update relation graphql endpoints
44
+ */
45
+ disableUpdate?: boolean;
46
+ /**
47
+ * Disable remove relation graphql endpoints
48
+ */
49
+ disableRemove?: boolean;
50
+ /**
51
+ * Enable aggregation queries.
52
+ */
53
+ enableAggregate?: boolean;
54
+ /**
55
+ * Set to true if you should be able to filter on this relation.
56
+ *
57
+ * This will only work with relations defined through an ORM (typeorm or sequelize).
58
+ */
59
+ allowFiltering?: boolean;
60
+ /**
61
+ * Description of the relation.
62
+ */
63
+ description?: string;
64
+ complexity?: Complexity;
65
+ auth?: AuthorizerOptions<Relation>;
66
+ } & DTONamesOpts & ResolverMethodOpts & QueryArgsTypeOpts<Relation> & Pick<ConnectionOptions, 'enableTotalCount'>;
67
+ export declare type RelationTypeMap<RT> = Record<string, RT>;
68
+ export declare type RelationsOpts = {
69
+ /**
70
+ * All relations that are a single record
71
+ */
72
+ one?: RelationTypeMap<ResolverRelation<unknown>>;
73
+ /**
74
+ * All relations that have multiple records
75
+ */
76
+ many?: RelationTypeMap<ResolverRelation<unknown>>;
77
+ };
78
+ export declare type ReferencesOpts<DTO> = RelationTypeMap<ResolverRelationReference<DTO, any>>;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=relations.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relations.interface.js","sourceRoot":"","sources":["../../../../../../packages/query-graphql/src/resolvers/relations/relations.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ import { Class, QueryService } from '@ptc-org/nestjs-query-core';
2
+ import { ServiceResolver } from '../resolver.interface';
3
+ import { BaseResolverOptions } from '../../decorators/resolver-method.decorator';
4
+ export interface RelatableOpts extends BaseResolverOptions {
5
+ enableTotalCount?: boolean;
6
+ enableAggregate?: boolean;
7
+ }
8
+ export declare const Relatable: <DTO, QS extends QueryService<DTO, unknown, unknown> = QueryService<DTO, unknown, unknown>>(DTOClass: Class<DTO>, opts: RelatableOpts) => <B extends Class<ServiceResolver<DTO, QS>>>(Base: B) => B;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Relatable = void 0;
4
+ const aggregate_relations_resolver_1 = require("./aggregate-relations.resolver");
5
+ const read_relations_resolver_1 = require("./read-relations.resolver");
6
+ const references_relation_resolver_1 = require("./references-relation.resolver");
7
+ const remove_relations_resolver_1 = require("./remove-relations.resolver");
8
+ const update_relations_resolver_1 = require("./update-relations.resolver");
9
+ const decorators_1 = require("../../decorators");
10
+ const reference_decorator_1 = require("../../decorators/reference.decorator");
11
+ const Relatable = (DTOClass, opts) => (Base) => {
12
+ const { enableTotalCount, enableAggregate } = opts;
13
+ const relations = (0, decorators_1.getRelations)(DTOClass, opts);
14
+ const references = (0, reference_decorator_1.getReferences)(DTOClass, opts);
15
+ const referencesMixin = (0, references_relation_resolver_1.ReferencesRelationMixin)(DTOClass, references);
16
+ const aggregateRelationsMixin = (0, aggregate_relations_resolver_1.AggregateRelationsMixin)(DTOClass, { ...relations, enableAggregate });
17
+ const readRelationsMixin = (0, read_relations_resolver_1.ReadRelationsMixin)(DTOClass, { ...relations, enableTotalCount });
18
+ const updateRelationsMixin = (0, update_relations_resolver_1.UpdateRelationsMixin)(DTOClass, relations);
19
+ return referencesMixin(aggregateRelationsMixin(readRelationsMixin(updateRelationsMixin((0, remove_relations_resolver_1.RemoveRelationsMixin)(DTOClass, relations)(Base)))));
20
+ };
21
+ exports.Relatable = Relatable;
22
+ //# sourceMappingURL=relations.resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relations.resolver.js","sourceRoot":"","sources":["../../../../../../packages/query-graphql/src/resolvers/relations/relations.resolver.ts"],"names":[],"mappings":";;;AAEA,iFAAyE;AACzE,uEAA+D;AAC/D,iFAAyE;AACzE,2EAAmE;AACnE,2EAAmE;AACnE,iDAAgD;AAChD,8EAAqE;AAQ9D,MAAM,SAAS,GACpB,CACE,QAAoB,EACpB,IAAmB,EACnB,EAAE,CACJ,CAA4C,IAAO,EAAK,EAAE;IACxD,MAAM,EAAE,gBAAgB,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC;IACnD,MAAM,SAAS,GAAG,IAAA,yBAAY,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,IAAA,mCAAa,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAEjD,MAAM,eAAe,GAAG,IAAA,sDAAuB,EAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACtE,MAAM,uBAAuB,GAAG,IAAA,sDAAuB,EAAC,QAAQ,EAAE,EAAE,GAAG,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC;IACrG,MAAM,kBAAkB,GAAG,IAAA,4CAAkB,EAAC,QAAQ,EAAE,EAAE,GAAG,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC;IAC5F,MAAM,oBAAoB,GAAG,IAAA,gDAAoB,EAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAEvE,OAAO,eAAe,CACpB,uBAAuB,CACrB,kBAAkB,CAAC,oBAAoB,CAAC,IAAA,gDAAoB,EAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAC1F,CACF,CAAC;AACJ,CAAC,CAAC;AApBS,QAAA,SAAS,aAoBlB"}
@@ -0,0 +1,5 @@
1
+ import { Class, QueryService } from '@ptc-org/nestjs-query-core';
2
+ import { ServiceResolver } from '../resolver.interface';
3
+ import { RelationsOpts } from './relations.interface';
4
+ export declare const RemoveRelationsMixin: <DTO>(DTOClass: Class<DTO>, relations: RelationsOpts) => <B extends Class<ServiceResolver<DTO, QueryService<DTO, unknown, unknown>>>>(Base: B) => B;
5
+ export declare const RemoveRelationsResolver: <DTO, QS extends QueryService<DTO, unknown, unknown> = QueryService<DTO, unknown, unknown>>(DTOClass: Class<DTO>, relations: RelationsOpts) => Class<ServiceResolver<DTO, QS>>;
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RemoveRelationsResolver = exports.RemoveRelationsMixin = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const graphql_1 = require("@nestjs/graphql");
6
+ const auth_1 = require("../../auth");
7
+ const common_1 = require("../../common");
8
+ const decorators_1 = require("../../decorators");
9
+ const interceptors_1 = require("../../interceptors");
10
+ const types_1 = require("../../types");
11
+ const helpers_1 = require("../helpers");
12
+ const resolver_interface_1 = require("../resolver.interface");
13
+ const helpers_2 = require("./helpers");
14
+ const RemoveOneRelationMixin = (DTOClass, relation) => (Base) => {
15
+ var _a;
16
+ if (relation.disableRemove) {
17
+ return Base;
18
+ }
19
+ const commonResolverOpts = (0, helpers_2.removeRelationOpts)(relation);
20
+ const relationDTO = relation.DTO;
21
+ const dtoNames = (0, common_1.getDTONames)(DTOClass);
22
+ const { baseNameLower, baseName } = (0, common_1.getDTONames)(relationDTO, { dtoName: relation.dtoName });
23
+ const relationName = relation.relationName ?? baseNameLower;
24
+ let RIT = class RIT extends (0, types_1.RelationInputType)(DTOClass, relationDTO) {
25
+ };
26
+ RIT = (0, tslib_1.__decorate)([
27
+ (0, graphql_1.InputType)(`Remove${baseName}From${dtoNames.baseName}Input`)
28
+ ], RIT);
29
+ let SetArgs = class SetArgs extends (0, types_1.MutationArgsType)(RIT) {
30
+ };
31
+ SetArgs = (0, tslib_1.__decorate)([
32
+ (0, graphql_1.ArgsType)()
33
+ ], SetArgs);
34
+ let RemoveOneMixin = class RemoveOneMixin extends Base {
35
+ async [_a = `remove${baseName}From${dtoNames.baseName}`](setArgs, modifyRelationsFilter) {
36
+ const { input } = await (0, helpers_1.transformAndValidate)(SetArgs, setArgs);
37
+ return this.service.removeRelation(relationName, input.id, input.relationId, modifyRelationsFilter);
38
+ }
39
+ };
40
+ (0, tslib_1.__decorate)([
41
+ (0, decorators_1.ResolverMutation)(() => DTOClass, {}, commonResolverOpts, { interceptors: [(0, interceptors_1.AuthorizerInterceptor)(DTOClass)] }),
42
+ (0, tslib_1.__param)(0, (0, graphql_1.Args)()),
43
+ (0, tslib_1.__param)(1, (0, decorators_1.ModifyRelationAuthorizerFilter)(baseNameLower, {
44
+ operationGroup: auth_1.OperationGroup.UPDATE,
45
+ many: false,
46
+ })),
47
+ (0, tslib_1.__metadata)("design:type", Function),
48
+ (0, tslib_1.__metadata)("design:paramtypes", [SetArgs, Object]),
49
+ (0, tslib_1.__metadata)("design:returntype", Promise)
50
+ ], RemoveOneMixin.prototype, _a, null);
51
+ RemoveOneMixin = (0, tslib_1.__decorate)([
52
+ (0, graphql_1.Resolver)(() => DTOClass, { isAbstract: true })
53
+ ], RemoveOneMixin);
54
+ return RemoveOneMixin;
55
+ };
56
+ const RemoveManyRelationsMixin = (DTOClass, relation) => (Base) => {
57
+ var _a;
58
+ if (relation.disableRemove) {
59
+ return Base;
60
+ }
61
+ const commonResolverOpts = (0, helpers_2.removeRelationOpts)(relation);
62
+ const relationDTO = relation.DTO;
63
+ const dtoNames = (0, common_1.getDTONames)(DTOClass);
64
+ const { pluralBaseNameLower, pluralBaseName } = (0, common_1.getDTONames)(relationDTO, { dtoName: relation.dtoName });
65
+ const relationName = relation.relationName ?? pluralBaseNameLower;
66
+ let RIT = class RIT extends (0, types_1.RelationsInputType)(DTOClass, relationDTO) {
67
+ };
68
+ RIT = (0, tslib_1.__decorate)([
69
+ (0, graphql_1.InputType)(`Remove${pluralBaseName}From${dtoNames.baseName}Input`)
70
+ ], RIT);
71
+ let AddArgs = class AddArgs extends (0, types_1.MutationArgsType)(RIT) {
72
+ };
73
+ AddArgs = (0, tslib_1.__decorate)([
74
+ (0, graphql_1.ArgsType)()
75
+ ], AddArgs);
76
+ let Mixin = class Mixin extends Base {
77
+ async [_a = `remove${pluralBaseName}From${dtoNames.baseName}`](addArgs, modifyRelationsFilter) {
78
+ const { input } = await (0, helpers_1.transformAndValidate)(AddArgs, addArgs);
79
+ return this.service.removeRelations(relationName, input.id, input.relationIds, modifyRelationsFilter);
80
+ }
81
+ };
82
+ (0, tslib_1.__decorate)([
83
+ (0, decorators_1.ResolverMutation)(() => DTOClass, {}, commonResolverOpts, { interceptors: [(0, interceptors_1.AuthorizerInterceptor)(DTOClass)] }),
84
+ (0, tslib_1.__param)(0, (0, graphql_1.Args)()),
85
+ (0, tslib_1.__param)(1, (0, decorators_1.ModifyRelationAuthorizerFilter)(pluralBaseNameLower, {
86
+ operationGroup: auth_1.OperationGroup.UPDATE,
87
+ many: true,
88
+ })),
89
+ (0, tslib_1.__metadata)("design:type", Function),
90
+ (0, tslib_1.__metadata)("design:paramtypes", [AddArgs, Object]),
91
+ (0, tslib_1.__metadata)("design:returntype", Promise)
92
+ ], Mixin.prototype, _a, null);
93
+ Mixin = (0, tslib_1.__decorate)([
94
+ (0, graphql_1.Resolver)(() => DTOClass, { isAbstract: true })
95
+ ], Mixin);
96
+ return Mixin;
97
+ };
98
+ const RemoveRelationsMixin = (DTOClass, relations) => (Base) => {
99
+ const manyRelations = (0, helpers_2.flattenRelations)(relations.many ?? {});
100
+ const oneRelations = (0, helpers_2.flattenRelations)(relations.one ?? {});
101
+ const WithMany = manyRelations.reduce((RB, a) => RemoveManyRelationsMixin(DTOClass, a)(RB), Base);
102
+ return oneRelations.reduce((RB, a) => RemoveOneRelationMixin(DTOClass, a)(RB), WithMany);
103
+ };
104
+ exports.RemoveRelationsMixin = RemoveRelationsMixin;
105
+ const RemoveRelationsResolver = (DTOClass, relations) => (0, exports.RemoveRelationsMixin)(DTOClass, relations)(resolver_interface_1.BaseServiceResolver);
106
+ exports.RemoveRelationsResolver = RemoveRelationsResolver;
107
+ //# sourceMappingURL=remove-relations.resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove-relations.resolver.js","sourceRoot":"","sources":["../../../../../../packages/query-graphql/src/resolvers/relations/remove-relations.resolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { Class, QueryService } from '@ptc-org/nestjs-query-core';
2
+ import { ServiceResolver } from '../resolver.interface';
3
+ import { RelationsOpts } from './relations.interface';
4
+ export declare const UpdateRelationsMixin: <DTO>(DTOClass: Class<DTO>, relations: RelationsOpts) => <B extends Class<ServiceResolver<DTO, QueryService<DTO, unknown, unknown>>>>(Base: B) => B;
5
+ export declare const UpdateRelationsResolver: <DTO, QS extends QueryService<DTO, unknown, unknown> = QueryService<DTO, unknown, unknown>>(DTOClass: Class<DTO>, relations: RelationsOpts) => Class<ServiceResolver<DTO, QS>>;
@@ -0,0 +1,138 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UpdateRelationsResolver = exports.UpdateRelationsMixin = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const graphql_1 = require("@nestjs/graphql");
6
+ const interceptors_1 = require("../../interceptors");
7
+ const common_1 = require("../../common");
8
+ const decorators_1 = require("../../decorators");
9
+ const types_1 = require("../../types");
10
+ const helpers_1 = require("../helpers");
11
+ const resolver_interface_1 = require("../resolver.interface");
12
+ const helpers_2 = require("./helpers");
13
+ const auth_1 = require("../../auth");
14
+ const UpdateOneRelationMixin = (DTOClass, relation) => (Base) => {
15
+ var _a;
16
+ if (relation.disableUpdate) {
17
+ return Base;
18
+ }
19
+ const commonResolverOpts = (0, helpers_2.removeRelationOpts)(relation);
20
+ const relationDTO = relation.DTO;
21
+ const dtoNames = (0, common_1.getDTONames)(DTOClass);
22
+ const { baseNameLower, baseName } = (0, common_1.getDTONames)(relationDTO, { dtoName: relation.dtoName });
23
+ const relationName = relation.relationName ?? baseNameLower;
24
+ let RIT = class RIT extends (0, types_1.RelationInputType)(DTOClass, relationDTO) {
25
+ };
26
+ RIT = (0, tslib_1.__decorate)([
27
+ (0, graphql_1.InputType)(`Set${baseName}On${dtoNames.baseName}Input`)
28
+ ], RIT);
29
+ let SetArgs = class SetArgs extends (0, types_1.MutationArgsType)(RIT) {
30
+ };
31
+ SetArgs = (0, tslib_1.__decorate)([
32
+ (0, graphql_1.ArgsType)()
33
+ ], SetArgs);
34
+ let UpdateOneMixin = class UpdateOneMixin extends Base {
35
+ async [_a = `set${baseName}On${dtoNames.baseName}`](setArgs, modifyRelationsFilter) {
36
+ const { input } = await (0, helpers_1.transformAndValidate)(SetArgs, setArgs);
37
+ return this.service.setRelation(relationName, input.id, input.relationId, modifyRelationsFilter);
38
+ }
39
+ };
40
+ (0, tslib_1.__decorate)([
41
+ (0, decorators_1.ResolverMutation)(() => DTOClass, {}, commonResolverOpts, {
42
+ interceptors: [(0, interceptors_1.AuthorizerInterceptor)(DTOClass)],
43
+ }),
44
+ (0, tslib_1.__param)(0, (0, graphql_1.Args)()),
45
+ (0, tslib_1.__param)(1, (0, decorators_1.ModifyRelationAuthorizerFilter)(baseNameLower, {
46
+ operationGroup: auth_1.OperationGroup.UPDATE,
47
+ many: false,
48
+ })),
49
+ (0, tslib_1.__metadata)("design:type", Function),
50
+ (0, tslib_1.__metadata)("design:paramtypes", [SetArgs, Object]),
51
+ (0, tslib_1.__metadata)("design:returntype", Promise)
52
+ ], UpdateOneMixin.prototype, _a, null);
53
+ UpdateOneMixin = (0, tslib_1.__decorate)([
54
+ (0, graphql_1.Resolver)(() => DTOClass, { isAbstract: true })
55
+ ], UpdateOneMixin);
56
+ return UpdateOneMixin;
57
+ };
58
+ const UpdateManyRelationMixin = (DTOClass, relation) => (Base) => {
59
+ var _a, _b;
60
+ if (relation.disableUpdate) {
61
+ return Base;
62
+ }
63
+ const commonResolverOpts = (0, helpers_2.removeRelationOpts)(relation);
64
+ const relationDTO = relation.DTO;
65
+ const dtoNames = (0, common_1.getDTONames)(DTOClass);
66
+ const { pluralBaseNameLower, pluralBaseName } = (0, common_1.getDTONames)(relationDTO, { dtoName: relation.dtoName });
67
+ const relationName = relation.relationName ?? pluralBaseNameLower;
68
+ let AddRelationInput = class AddRelationInput extends (0, types_1.RelationsInputType)(DTOClass, relationDTO) {
69
+ };
70
+ AddRelationInput = (0, tslib_1.__decorate)([
71
+ (0, graphql_1.InputType)(`Add${pluralBaseName}To${dtoNames.baseName}Input`)
72
+ ], AddRelationInput);
73
+ let AddArgs = class AddArgs extends (0, types_1.MutationArgsType)(AddRelationInput) {
74
+ };
75
+ AddArgs = (0, tslib_1.__decorate)([
76
+ (0, graphql_1.ArgsType)()
77
+ ], AddArgs);
78
+ let SetRelationInput = class SetRelationInput extends (0, types_1.RelationsInputType)(DTOClass, relationDTO) {
79
+ };
80
+ SetRelationInput = (0, tslib_1.__decorate)([
81
+ (0, graphql_1.InputType)(`Set${pluralBaseName}On${dtoNames.baseName}Input`)
82
+ ], SetRelationInput);
83
+ let SetArgs = class SetArgs extends (0, types_1.MutationArgsType)(SetRelationInput) {
84
+ };
85
+ SetArgs = (0, tslib_1.__decorate)([
86
+ (0, graphql_1.ArgsType)()
87
+ ], SetArgs);
88
+ let UpdateManyMixin = class UpdateManyMixin extends Base {
89
+ async [_a = `add${pluralBaseName}To${dtoNames.baseName}`](addArgs, modifyRelationsFilter) {
90
+ const { input } = await (0, helpers_1.transformAndValidate)(AddArgs, addArgs);
91
+ return this.service.addRelations(relationName, input.id, input.relationIds, modifyRelationsFilter);
92
+ }
93
+ async [_b = `set${pluralBaseName}On${dtoNames.baseName}`](addArgs, modifyRelationsFilter) {
94
+ const { input } = await (0, helpers_1.transformAndValidate)(AddArgs, addArgs);
95
+ return this.service.setRelations(relationName, input.id, input.relationIds, modifyRelationsFilter);
96
+ }
97
+ };
98
+ (0, tslib_1.__decorate)([
99
+ (0, decorators_1.ResolverMutation)(() => DTOClass, {}, commonResolverOpts, {
100
+ interceptors: [(0, interceptors_1.AuthorizerInterceptor)(DTOClass)],
101
+ }),
102
+ (0, tslib_1.__param)(0, (0, graphql_1.Args)()),
103
+ (0, tslib_1.__param)(1, (0, decorators_1.ModifyRelationAuthorizerFilter)(pluralBaseNameLower, {
104
+ operationGroup: auth_1.OperationGroup.UPDATE,
105
+ many: true,
106
+ })),
107
+ (0, tslib_1.__metadata)("design:type", Function),
108
+ (0, tslib_1.__metadata)("design:paramtypes", [AddArgs, Object]),
109
+ (0, tslib_1.__metadata)("design:returntype", Promise)
110
+ ], UpdateManyMixin.prototype, _a, null);
111
+ (0, tslib_1.__decorate)([
112
+ (0, decorators_1.ResolverMutation)(() => DTOClass, {}, commonResolverOpts, {
113
+ interceptors: [(0, interceptors_1.AuthorizerInterceptor)(DTOClass)],
114
+ }),
115
+ (0, tslib_1.__param)(0, (0, graphql_1.Args)()),
116
+ (0, tslib_1.__param)(1, (0, decorators_1.ModifyRelationAuthorizerFilter)(pluralBaseNameLower, {
117
+ operationGroup: auth_1.OperationGroup.UPDATE,
118
+ many: true,
119
+ })),
120
+ (0, tslib_1.__metadata)("design:type", Function),
121
+ (0, tslib_1.__metadata)("design:paramtypes", [SetArgs, Object]),
122
+ (0, tslib_1.__metadata)("design:returntype", Promise)
123
+ ], UpdateManyMixin.prototype, _b, null);
124
+ UpdateManyMixin = (0, tslib_1.__decorate)([
125
+ (0, graphql_1.Resolver)(() => DTOClass, { isAbstract: true })
126
+ ], UpdateManyMixin);
127
+ return UpdateManyMixin;
128
+ };
129
+ const UpdateRelationsMixin = (DTOClass, relations) => (Base) => {
130
+ const manyRelations = (0, helpers_2.flattenRelations)(relations.many ?? {});
131
+ const oneRelations = (0, helpers_2.flattenRelations)(relations.one ?? {});
132
+ const WithMany = manyRelations.reduce((RB, a) => UpdateManyRelationMixin(DTOClass, a)(RB), Base);
133
+ return oneRelations.reduce((RB, a) => UpdateOneRelationMixin(DTOClass, a)(RB), WithMany);
134
+ };
135
+ exports.UpdateRelationsMixin = UpdateRelationsMixin;
136
+ const UpdateRelationsResolver = (DTOClass, relations) => (0, exports.UpdateRelationsMixin)(DTOClass, relations)(resolver_interface_1.BaseServiceResolver);
137
+ exports.UpdateRelationsResolver = UpdateRelationsResolver;
138
+ //# sourceMappingURL=update-relations.resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-relations.resolver.js","sourceRoot":"","sources":["../../../../../../packages/query-graphql/src/resolvers/relations/update-relations.resolver.ts"],"names":[],"mappings":"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"}