@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
package/README.md CHANGED
@@ -2,12 +2,12 @@
2
2
  <a href="https://doug-martin.github.io/nestjs-query" target="blank"><img src="https://doug-martin.github.io/nestjs-query/img/logo.svg" width="120" alt="Nestjs-query Logo" /></a>
3
3
  </p>
4
4
 
5
- [![npm version](https://img.shields.io/npm/v/@nestjs-query/query-graphql.svg)](https://www.npmjs.org/package/@nestjs-query/query-graphql)
6
- [![Test](https://github.com/doug-martin/nestjs-query/workflows/Test/badge.svg?branch=master)](https://github.com/doug-martin/nestjs-query/actions?query=workflow%3ATest+and+branch%3Amaster+)
5
+ [![npm version](https://img.shields.io/npm/v/@ptc-org/nestjs-query-graphql.svg)](https://www.npmjs.org/package/@ptc-org/nestjs-query-graphql)
6
+ [![Test](https://github.com/tripss/nestjs-query/workflows/Test/badge.svg?branch=master)](https://github.com/tripss/nestjs-query/actions?query=workflow%3ATest+and+branch%3Amaster+)
7
7
  [![Coverage Status](https://coveralls.io/repos/github/doug-martin/nestjs-query/badge.svg?branch=master)](https://coveralls.io/github/doug-martin/nestjs-query?branch=master)
8
8
  [![Known Vulnerabilities](https://snyk.io/test/github/doug-martin/nestjs-query/badge.svg?targetFile=packages/query-graphql/package.json)](https://snyk.io/test/github/doug-martin/nestjs-query?targetFile=packages/query-graphql/package.json)
9
9
 
10
- # `@nestjs-query/query-graphql`
10
+ # `@ptc-org/nestjs-query-graphql`
11
11
 
12
12
  This package provides a code first implementation of graphql CRUD endpoints. It is built on top of of [nestjs](https://nestjs.com/).
13
13
 
@@ -17,6 +17,6 @@ This package provides a code first implementation of graphql CRUD endpoints. It
17
17
 
18
18
  ## Getting Started
19
19
 
20
- The get started with the `@nestjs-query/query-graphql` package checkout the [Getting Started](https://doug-martin.github.io/nestjs-query/docs/graphql/getting-started) docs.
20
+ The get started with the `@ptc-org/nestjs-query-graphql` package checkout the [Getting Started](https://doug-martin.github.io/nestjs-query/docs/graphql/getting-started) docs.
21
21
 
22
22
 
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@ptc-org/nestjs-query-graphql",
3
- "version": "0.30.1",
3
+ "version": "1.0.0-alpha.1",
4
4
  "description": "Nestjs graphql query adapter",
5
5
  "author": "doug-martin <doug@dougamartin.com>",
6
- "homepage": "https://github.com/doug-martin/nestjs-query#readme",
6
+ "homepage": "https://github.com/tripss/nestjs-query#readme",
7
7
  "keywords": [
8
8
  "graphql",
9
9
  "crud",
@@ -18,18 +18,18 @@
18
18
  "test": "__tests__"
19
19
  },
20
20
  "files": [
21
- "dist/src/**"
21
+ "src/**"
22
22
  ],
23
23
  "publishConfig": {
24
24
  "access": "public"
25
25
  },
26
26
  "repository": {
27
27
  "type": "git",
28
- "url": "git+https://github.com/doug-martin/nestjs-query.git",
28
+ "url": "git+https://github.com/tripss/nestjs-query.git",
29
29
  "directory": "packages/query-graphql"
30
30
  },
31
31
  "bugs": {
32
- "url": "https://github.com/doug-martin/nestjs-query/issues"
32
+ "url": "https://github.com/tripss/nestjs-query/issues"
33
33
  },
34
34
  "dependencies": {
35
35
  "graphql-fields": "^2.0.3",
@@ -38,7 +38,8 @@
38
38
  "pluralize": "^8.0.0",
39
39
  "tslib": "^2.1.0",
40
40
  "upper-case-first": "^2.0.1",
41
- "@ptc-org/nestjs-query-core": "0.30.1"
41
+ "@ptc-org/nestjs-query-core": "1.0.0-alpha.1",
42
+ "reflect-metadata": "^0.1.13"
42
43
  },
43
44
  "peerDependencies": {
44
45
  "@apollo/gateway": "^0.41.0 || ^0.42.0",
@@ -0,0 +1,26 @@
1
+ import { Filter } from '@ptc-org/nestjs-query-core';
2
+ export declare enum OperationGroup {
3
+ READ = "read",
4
+ AGGREGATE = "aggregate",
5
+ CREATE = "create",
6
+ UPDATE = "update",
7
+ DELETE = "delete"
8
+ }
9
+ export interface AuthorizationContext {
10
+ /** The name of the method that uses the @AuthorizeFilter decorator */
11
+ readonly operationName: string;
12
+ /** The group this operation belongs to */
13
+ readonly operationGroup: OperationGroup;
14
+ /** If the operation does not modify any entities */
15
+ readonly readonly: boolean;
16
+ /** If the operation can affect multiple entities */
17
+ readonly many: boolean;
18
+ }
19
+ export interface CustomAuthorizer<DTO> {
20
+ authorize(context: any, authorizerContext: AuthorizationContext): Promise<Filter<DTO>>;
21
+ authorizeRelation?(relationName: string, context: any, authorizerContext: AuthorizationContext): Promise<Filter<unknown> | undefined>;
22
+ }
23
+ export interface Authorizer<DTO> extends CustomAuthorizer<DTO> {
24
+ authorize(context: any, authorizerContext: AuthorizationContext): Promise<Filter<DTO>>;
25
+ authorizeRelation(relationName: string, context: any, authorizerContext: AuthorizationContext): Promise<Filter<unknown | undefined>>;
26
+ }
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OperationGroup = void 0;
4
+ var OperationGroup;
5
+ (function (OperationGroup) {
6
+ OperationGroup["READ"] = "read";
7
+ OperationGroup["AGGREGATE"] = "aggregate";
8
+ OperationGroup["CREATE"] = "create";
9
+ OperationGroup["UPDATE"] = "update";
10
+ OperationGroup["DELETE"] = "delete";
11
+ })(OperationGroup = exports.OperationGroup || (exports.OperationGroup = {}));
12
+ //# sourceMappingURL=authorizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authorizer.js","sourceRoot":"","sources":["../../../../../packages/query-graphql/src/auth/authorizer.ts"],"names":[],"mappings":";;;AAEA,IAAY,cAMX;AAND,WAAY,cAAc;IACxB,+BAAa,CAAA;IACb,yCAAuB,CAAA;IACvB,mCAAiB,CAAA;IACjB,mCAAiB,CAAA;IACjB,mCAAiB,CAAA;AACnB,CAAC,EANW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAMzB"}
@@ -0,0 +1,6 @@
1
+ import { Class, Filter } from '@ptc-org/nestjs-query-core';
2
+ import { Authorizer, AuthorizationContext, CustomAuthorizer } from './authorizer';
3
+ export interface AuthorizerOptions<DTO> {
4
+ authorize: (context: any, authorizationContext: AuthorizationContext) => Filter<DTO> | Promise<Filter<DTO>>;
5
+ }
6
+ export declare function createDefaultAuthorizer<DTO>(DTOClass: Class<DTO>, opts?: CustomAuthorizer<DTO> | AuthorizerOptions<DTO>): Class<Authorizer<DTO>>;
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createDefaultAuthorizer = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const core_1 = require("@nestjs/core");
6
+ const common_1 = require("@nestjs/common");
7
+ const decorators_1 = require("../decorators");
8
+ const tokens_1 = require("./tokens");
9
+ const createRelationAuthorizer = (opts) => ({
10
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
11
+ async authorize(context, authorizationContext) {
12
+ return opts.authorize(context, authorizationContext) ?? {};
13
+ },
14
+ authorizeRelation() {
15
+ return Promise.reject(new Error('Not implemented'));
16
+ },
17
+ });
18
+ function createDefaultAuthorizer(DTOClass, opts) {
19
+ let DefaultAuthorizer = class DefaultAuthorizer {
20
+ constructor(moduleRef, customAuthorizer) {
21
+ this.moduleRef = moduleRef;
22
+ this.customAuthorizer = customAuthorizer;
23
+ this.authOptions = opts;
24
+ this.relationsAuthorizers = new Map();
25
+ this.relations = this.getRelations();
26
+ }
27
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
28
+ async authorize(context, authorizationContext) {
29
+ return (this.customAuthorizer?.authorize(context, authorizationContext) ??
30
+ this.authOptions?.authorize(context, authorizationContext) ??
31
+ {});
32
+ }
33
+ async authorizeRelation(relationName,
34
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
35
+ context, authorizationContext) {
36
+ if (this.customAuthorizer && typeof this.customAuthorizer.authorizeRelation === 'function') {
37
+ const filterFromCustomAuthorizer = await this.customAuthorizer.authorizeRelation(relationName, context, authorizationContext);
38
+ if (filterFromCustomAuthorizer)
39
+ return filterFromCustomAuthorizer;
40
+ }
41
+ this.addRelationAuthorizerIfNotExist(relationName);
42
+ return this.relationsAuthorizers.get(relationName)?.authorize(context, authorizationContext) ?? {};
43
+ }
44
+ addRelationAuthorizerIfNotExist(relationName) {
45
+ if (!this.relationsAuthorizers.has(relationName)) {
46
+ const relation = this.relations.get(relationName);
47
+ if (!relation)
48
+ return;
49
+ if (relation.auth) {
50
+ this.relationsAuthorizers.set(relationName, createRelationAuthorizer(relation.auth));
51
+ }
52
+ else if ((0, decorators_1.getAuthorizer)(relation.DTO)) {
53
+ this.relationsAuthorizers.set(relationName, this.moduleRef.get((0, tokens_1.getAuthorizerToken)(relation.DTO), { strict: false }));
54
+ }
55
+ }
56
+ }
57
+ getRelations() {
58
+ const { many = {}, one = {} } = (0, decorators_1.getRelations)(DTOClass);
59
+ const relationsMap = new Map();
60
+ Object.keys(many).forEach((relation) => relationsMap.set(relation, many[relation]));
61
+ Object.keys(one).forEach((relation) => relationsMap.set(relation, one[relation]));
62
+ return relationsMap;
63
+ }
64
+ };
65
+ DefaultAuthorizer = (0, tslib_1.__decorate)([
66
+ (0, common_1.Injectable)(),
67
+ (0, tslib_1.__param)(1, (0, common_1.Optional)()),
68
+ (0, tslib_1.__param)(1, (0, common_1.Inject)((0, tokens_1.getCustomAuthorizerToken)(DTOClass))),
69
+ (0, tslib_1.__metadata)("design:paramtypes", [core_1.ModuleRef, Object])
70
+ ], DefaultAuthorizer);
71
+ return DefaultAuthorizer;
72
+ }
73
+ exports.createDefaultAuthorizer = createDefaultAuthorizer;
74
+ //# sourceMappingURL=default-crud.authorizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-crud.authorizer.js","sourceRoot":"","sources":["../../../../../packages/query-graphql/src/auth/default-crud.authorizer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from './authorizer';
2
+ export * from './default-crud.authorizer';
3
+ export * from './tokens';
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ (0, tslib_1.__exportStar)(require("./authorizer"), exports);
5
+ (0, tslib_1.__exportStar)(require("./default-crud.authorizer"), exports);
6
+ (0, tslib_1.__exportStar)(require("./tokens"), exports);
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/query-graphql/src/auth/index.ts"],"names":[],"mappings":";;;AAAA,4DAA6B;AAC7B,yEAA0C;AAC1C,wDAAyB"}
@@ -0,0 +1,3 @@
1
+ import { Class } from '@ptc-org/nestjs-query-core';
2
+ export declare const getAuthorizerToken: <DTO>(DTOClass: Class<DTO>) => string;
3
+ export declare const getCustomAuthorizerToken: <DTO>(DTOClass: Class<DTO>) => string;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getCustomAuthorizerToken = exports.getAuthorizerToken = void 0;
4
+ const getAuthorizerToken = (DTOClass) => `${DTOClass.name}Authorizer`;
5
+ exports.getAuthorizerToken = getAuthorizerToken;
6
+ const getCustomAuthorizerToken = (DTOClass) => `${DTOClass.name}CustomAuthorizer`;
7
+ exports.getCustomAuthorizerToken = getCustomAuthorizerToken;
8
+ //# sourceMappingURL=tokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../../../../packages/query-graphql/src/auth/tokens.ts"],"names":[],"mappings":";;;AAEO,MAAM,kBAAkB,GAAG,CAAM,QAAoB,EAAU,EAAE,CAAC,GAAG,QAAQ,CAAC,IAAI,YAAY,CAAC;AAAzF,QAAA,kBAAkB,sBAAuE;AAC/F,MAAM,wBAAwB,GAAG,CAAM,QAAoB,EAAU,EAAE,CAAC,GAAG,QAAQ,CAAC,IAAI,kBAAkB,CAAC;AAArG,QAAA,wBAAwB,4BAA6E"}
@@ -0,0 +1,15 @@
1
+ import { Class } from '@ptc-org/nestjs-query-core';
2
+ import { ReturnTypeFuncValue } from '@nestjs/graphql';
3
+ export interface DTONamesOpts {
4
+ dtoName?: string;
5
+ }
6
+ /** @internal */
7
+ export interface DTONames {
8
+ baseName: string;
9
+ baseNameLower: string;
10
+ pluralBaseName: string;
11
+ pluralBaseNameLower: string;
12
+ }
13
+ /** @internal */
14
+ export declare const getDTONames: <DTO>(DTOClass: Class<DTO>, opts?: DTONamesOpts) => DTONames;
15
+ export declare const getDTOIdTypeOrDefault: (DTOS: Class<unknown>[], defaultType?: ReturnTypeFuncValue) => ReturnTypeFuncValue;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getDTOIdTypeOrDefault = exports.getDTONames = void 0;
4
+ const pluralize_1 = require("pluralize");
5
+ const upper_case_first_1 = require("upper-case-first");
6
+ const lower_case_first_1 = require("lower-case-first");
7
+ const graphql_1 = require("@nestjs/graphql");
8
+ const external_utils_1 = require("./external.utils");
9
+ const decorators_1 = require("../decorators");
10
+ /** @internal */
11
+ const getDTONames = (DTOClass, opts) => {
12
+ const baseName = (0, upper_case_first_1.upperCaseFirst)(opts?.dtoName ?? (0, external_utils_1.findGraphqlObjectMetadata)(DTOClass)?.name ?? DTOClass.name);
13
+ const pluralBaseName = (0, pluralize_1.plural)(baseName);
14
+ const baseNameLower = (0, lower_case_first_1.lowerCaseFirst)(baseName);
15
+ const pluralBaseNameLower = (0, pluralize_1.plural)(baseNameLower);
16
+ return {
17
+ baseName,
18
+ baseNameLower,
19
+ pluralBaseName,
20
+ pluralBaseNameLower,
21
+ };
22
+ };
23
+ exports.getDTONames = getDTONames;
24
+ const getDTOIdTypeOrDefault = (DTOS, defaultType = graphql_1.ID) => {
25
+ const dtoWithIDField = DTOS.find((dto) => !!(0, decorators_1.getIDField)(dto));
26
+ if (dtoWithIDField) {
27
+ return (0, decorators_1.getIDField)(dtoWithIDField)?.returnTypeFunc() ?? defaultType;
28
+ }
29
+ return defaultType;
30
+ };
31
+ exports.getDTOIdTypeOrDefault = getDTOIdTypeOrDefault;
32
+ //# sourceMappingURL=dto.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dto.utils.js","sourceRoot":"","sources":["../../../../../packages/query-graphql/src/common/dto.utils.ts"],"names":[],"mappings":";;;AACA,yCAAmC;AACnC,uDAAkD;AAClD,uDAAkD;AAClD,6CAA0D;AAC1D,qDAA6D;AAC7D,8CAA2C;AAc3C,gBAAgB;AACT,MAAM,WAAW,GAAG,CAAM,QAAoB,EAAE,IAAmB,EAAY,EAAE;IACtF,MAAM,QAAQ,GAAG,IAAA,iCAAc,EAAC,IAAI,EAAE,OAAO,IAAI,IAAA,0CAAyB,EAAC,QAAQ,CAAC,EAAE,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7G,MAAM,cAAc,GAAG,IAAA,kBAAM,EAAC,QAAQ,CAAC,CAAC;IACxC,MAAM,aAAa,GAAG,IAAA,iCAAc,EAAC,QAAQ,CAAC,CAAC;IAC/C,MAAM,mBAAmB,GAAG,IAAA,kBAAM,EAAC,aAAa,CAAC,CAAC;IAClD,OAAO;QACL,QAAQ;QACR,aAAa;QACb,cAAc;QACd,mBAAmB;KACpB,CAAC;AACJ,CAAC,CAAC;AAXW,QAAA,WAAW,eAWtB;AAEK,MAAM,qBAAqB,GAAG,CACnC,IAAsB,EACtB,cAAmC,YAAE,EAChB,EAAE;IACvB,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,IAAA,uBAAU,EAAC,GAAG,CAAC,CAAC,CAAC;IAC7D,IAAI,cAAc,EAAE;QAClB,OAAO,IAAA,uBAAU,EAAC,cAAc,CAAC,EAAE,cAAc,EAAE,IAAI,WAAW,CAAC;KACpE;IACD,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC;AATW,QAAA,qBAAqB,yBAShC"}
@@ -0,0 +1,10 @@
1
+ import { ObjectTypeMetadata } from '@nestjs/graphql/dist/schema-builder/metadata/object-type.metadata';
2
+ import { EnumMetadata } from '@nestjs/graphql/dist/schema-builder/metadata';
3
+ import { Class } from '@ptc-org/nestjs-query-core';
4
+ /**
5
+ * @internal
6
+ */
7
+ export declare function findGraphqlObjectMetadata<T>(objType: Class<T>): ObjectTypeMetadata | undefined;
8
+ export declare function getGraphqlObjectMetadata<T>(objType: Class<T>, notFoundMsg: string): ObjectTypeMetadata;
9
+ export declare function getGraphqlObjectName<DTO>(DTOClass: Class<DTO>, notFoundMsg: string): string;
10
+ export declare function getGraphqlEnumMetadata(objType: object): EnumMetadata | undefined;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getGraphqlEnumMetadata = exports.getGraphqlObjectName = exports.getGraphqlObjectMetadata = exports.findGraphqlObjectMetadata = void 0;
4
+ const lazy_metadata_storage_1 = require("@nestjs/graphql/dist/schema-builder/storages/lazy-metadata.storage");
5
+ const graphql_1 = require("@nestjs/graphql");
6
+ const type_errors_1 = require("../types/type.errors");
7
+ /**
8
+ * @internal
9
+ */
10
+ function findGraphqlObjectMetadata(objType) {
11
+ return graphql_1.TypeMetadataStorage.getObjectTypesMetadata().find((o) => o.target === objType);
12
+ }
13
+ exports.findGraphqlObjectMetadata = findGraphqlObjectMetadata;
14
+ function getGraphqlObjectMetadata(objType, notFoundMsg) {
15
+ const metadata = findGraphqlObjectMetadata(objType);
16
+ if (!metadata) {
17
+ throw new type_errors_1.UnregisteredObjectType(objType, notFoundMsg);
18
+ }
19
+ return metadata;
20
+ }
21
+ exports.getGraphqlObjectMetadata = getGraphqlObjectMetadata;
22
+ function getGraphqlObjectName(DTOClass, notFoundMsg) {
23
+ return getGraphqlObjectMetadata(DTOClass, notFoundMsg).name;
24
+ }
25
+ exports.getGraphqlObjectName = getGraphqlObjectName;
26
+ // eslint-disable-next-line @typescript-eslint/ban-types
27
+ function getGraphqlEnumMetadata(objType) {
28
+ // hack to get enums loaded it may break in the future :(
29
+ lazy_metadata_storage_1.LazyMetadataStorage.load();
30
+ return graphql_1.TypeMetadataStorage.getEnumsMetadata().find((o) => o.ref === objType);
31
+ }
32
+ exports.getGraphqlEnumMetadata = getGraphqlEnumMetadata;
33
+ //# sourceMappingURL=external.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"external.utils.js","sourceRoot":"","sources":["../../../../../packages/query-graphql/src/common/external.utils.ts"],"names":[],"mappings":";;;AAAA,8GAAyG;AAIzG,6CAAsD;AACtD,sDAA8D;AAE9D;;GAEG;AACH,SAAgB,yBAAyB,CAAI,OAAiB;IAC5D,OAAO,6BAAmB,CAAC,sBAAsB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC;AACxF,CAAC;AAFD,8DAEC;AAED,SAAgB,wBAAwB,CAAI,OAAiB,EAAE,WAAmB;IAChF,MAAM,QAAQ,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;IACpD,IAAI,CAAC,QAAQ,EAAE;QACb,MAAM,IAAI,oCAAsB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;KACxD;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAND,4DAMC;AAED,SAAgB,oBAAoB,CAAM,QAAoB,EAAE,WAAmB;IACjF,OAAO,wBAAwB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC;AAC9D,CAAC;AAFD,oDAEC;AAED,wDAAwD;AACxD,SAAgB,sBAAsB,CAAC,OAAe;IACpD,yDAAyD;IACzD,2CAAmB,CAAC,IAAI,EAAE,CAAC;IAC3B,OAAO,6BAAmB,CAAC,gBAAgB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,OAAO,CAAC,CAAC;AAC/E,CAAC;AAJD,wDAIC"}
@@ -0,0 +1,4 @@
1
+ export { DTONamesOpts, getDTONames, DTONames, getDTOIdTypeOrDefault } from './dto.utils';
2
+ export * from './external.utils';
3
+ export * from './resolver.utils';
4
+ export * from './object.utils';
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getDTOIdTypeOrDefault = exports.getDTONames = void 0;
4
+ const tslib_1 = require("tslib");
5
+ var dto_utils_1 = require("./dto.utils");
6
+ Object.defineProperty(exports, "getDTONames", { enumerable: true, get: function () { return dto_utils_1.getDTONames; } });
7
+ Object.defineProperty(exports, "getDTOIdTypeOrDefault", { enumerable: true, get: function () { return dto_utils_1.getDTOIdTypeOrDefault; } });
8
+ (0, tslib_1.__exportStar)(require("./external.utils"), exports);
9
+ (0, tslib_1.__exportStar)(require("./resolver.utils"), exports);
10
+ (0, tslib_1.__exportStar)(require("./object.utils"), exports);
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/query-graphql/src/common/index.ts"],"names":[],"mappings":";;;;AAAA,yCAAyF;AAAlE,wGAAA,WAAW,OAAA;AAAY,kHAAA,qBAAqB,OAAA;AACnE,gEAAiC;AACjC,gEAAiC;AACjC,8DAA+B"}
@@ -0,0 +1 @@
1
+ export declare const removeUndefinedValues: <T>(obj: T) => T;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.removeUndefinedValues = void 0;
4
+ const removeUndefinedValues = (obj) => {
5
+ const keys = Object.keys(obj);
6
+ return keys.reduce((cleansed, key) => {
7
+ if (obj[key] === undefined) {
8
+ return cleansed;
9
+ }
10
+ return { ...cleansed, [key]: obj[key] };
11
+ }, {});
12
+ };
13
+ exports.removeUndefinedValues = removeUndefinedValues;
14
+ //# sourceMappingURL=object.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object.utils.js","sourceRoot":"","sources":["../../../../../packages/query-graphql/src/common/object.utils.ts"],"names":[],"mappings":";;;AAAO,MAAM,qBAAqB,GAAG,CAAI,GAAM,EAAK,EAAE;IACpD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAgB,CAAC;IAC7C,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,QAAW,EAAE,GAAG,EAAE,EAAE;QACtC,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE;YAC1B,OAAO,QAAQ,CAAC;SACjB;QACD,OAAO,EAAE,GAAG,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;IAC1C,CAAC,EAAE,EAAO,CAAC,CAAC;AACd,CAAC,CAAC;AARW,QAAA,qBAAqB,yBAQhC"}
@@ -0,0 +1,2 @@
1
+ import { BaseResolverOptions } from '../decorators/resolver-method.decorator';
2
+ export declare const mergeBaseResolverOpts: <Into extends BaseResolverOptions>(into: Into, from: BaseResolverOptions) => Into;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mergeBaseResolverOpts = void 0;
4
+ const mergeArrays = (arr1, arr2) => {
5
+ if (arr1 || arr2) {
6
+ return [...(arr1 ?? []), ...(arr2 ?? [])];
7
+ }
8
+ return undefined;
9
+ };
10
+ const mergeBaseResolverOpts = (into, from) => {
11
+ const guards = mergeArrays(from.guards, into.guards);
12
+ const interceptors = mergeArrays(from.interceptors, into.interceptors);
13
+ const pipes = mergeArrays(from.pipes, into.pipes);
14
+ const filters = mergeArrays(from.filters, into.filters);
15
+ const decorators = mergeArrays(from.decorators, into.decorators);
16
+ return { ...into, guards, interceptors, pipes, filters, decorators };
17
+ };
18
+ exports.mergeBaseResolverOpts = mergeBaseResolverOpts;
19
+ //# sourceMappingURL=resolver.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolver.utils.js","sourceRoot":"","sources":["../../../../../packages/query-graphql/src/common/resolver.utils.ts"],"names":[],"mappings":";;;AAEA,MAAM,WAAW,GAAG,CAAI,IAAU,EAAE,IAAU,EAAmB,EAAE;IACjE,IAAI,IAAI,IAAI,IAAI,EAAE;QAChB,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;KAC3C;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEK,MAAM,qBAAqB,GAAG,CACnC,IAAU,EACV,IAAyB,EACnB,EAAE;IACR,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACrD,MAAM,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACvE,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACxD,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACjE,OAAO,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;AACvE,CAAC,CAAC;AAVW,QAAA,qBAAqB,yBAUhC"}
@@ -0,0 +1 @@
1
+ export declare const AggregateQueryParam: <DTO>(...dataOrPipes: unknown[]) => ParameterDecorator;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AggregateQueryParam = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const graphql_1 = require("@nestjs/graphql");
6
+ const common_1 = require("@nestjs/common");
7
+ const graphql_fields_1 = (0, tslib_1.__importDefault)(require("graphql-fields"));
8
+ const EXCLUDED_FIELDS = ['__typename'];
9
+ const QUERY_OPERATORS = ['groupBy', 'count', 'avg', 'sum', 'min', 'max'];
10
+ exports.AggregateQueryParam = (0, common_1.createParamDecorator)((data, ctx) => {
11
+ const info = graphql_1.GqlExecutionContext.create(ctx).getInfo();
12
+ const fields = (0, graphql_fields_1.default)(info, {}, { excludedFields: EXCLUDED_FIELDS });
13
+ return QUERY_OPERATORS.filter((operator) => !!fields[operator]).reduce((query, operator) => {
14
+ const queryFields = Object.keys(fields[operator]);
15
+ if (queryFields && queryFields.length) {
16
+ return { ...query, [operator]: queryFields };
17
+ }
18
+ return query;
19
+ }, {});
20
+ });
21
+ //# sourceMappingURL=aggregate-query-param.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aggregate-query-param.decorator.js","sourceRoot":"","sources":["../../../../../packages/query-graphql/src/decorators/aggregate-query-param.decorator.ts"],"names":[],"mappings":";;;;AAEA,6CAAsD;AACtD,2CAAwE;AACxE,iFAA2C;AAE3C,MAAM,eAAe,GAAG,CAAC,YAAY,CAAC,CAAC;AACvC,MAAM,eAAe,GAAsC,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAC/F,QAAA,mBAAmB,GAAG,IAAA,6BAAoB,EAAC,CAAM,IAAa,EAAE,GAAqB,EAAE,EAAE;IACpG,MAAM,IAAI,GAAG,6BAAmB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAsB,CAAC;IAC3E,MAAM,MAAM,GAAG,IAAA,wBAAa,EAAC,IAAI,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE,eAAe,EAAE,CAGzE,CAAC;IACF,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;QACzF,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAkB,CAAC;QACnE,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,EAAE;YACrC,OAAO,EAAE,GAAG,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;SAC9C;QACD,OAAO,KAAK,CAAC;IACf,CAAC,EAAE,EAAyB,CAAC,CAAC;AAChC,CAAC,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { AuthorizationContext } from '../auth';
2
+ declare type PartialAuthorizationContext = Partial<AuthorizationContext> & Pick<AuthorizationContext, 'operationGroup' | 'many'>;
3
+ export declare function AuthorizerFilter<DTO>(partialAuthContext?: PartialAuthorizationContext): ParameterDecorator;
4
+ export declare function RelationAuthorizerFilter<DTO>(relationName: string, partialAuthContext?: PartialAuthorizationContext): ParameterDecorator;
5
+ export declare function ModifyRelationAuthorizerFilter<DTO>(relationName: string, partialAuthContext?: PartialAuthorizationContext): ParameterDecorator;
6
+ export {};
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ModifyRelationAuthorizerFilter = exports.RelationAuthorizerFilter = exports.AuthorizerFilter = void 0;
4
+ const common_1 = require("@nestjs/common");
5
+ const graphql_1 = require("@nestjs/graphql");
6
+ const auth_1 = require("../auth");
7
+ function getContext(executionContext) {
8
+ const gqlExecutionContext = graphql_1.GqlExecutionContext.create(executionContext);
9
+ return gqlExecutionContext.getContext();
10
+ }
11
+ function getAuthorizerFilter(context, authorizationContext) {
12
+ if (!context.authorizer) {
13
+ return undefined;
14
+ }
15
+ return context.authorizer.authorize(context, authorizationContext);
16
+ }
17
+ function getRelationAuthFilter(context, relationName, authorizationContext) {
18
+ if (!context.authorizer) {
19
+ return undefined;
20
+ }
21
+ return context.authorizer.authorizeRelation(relationName, context, authorizationContext);
22
+ }
23
+ function getAuthorizationContext(methodName, partialAuthContext) {
24
+ if (!partialAuthContext)
25
+ return new Proxy({}, {
26
+ get: () => {
27
+ throw new Error(`No AuthorizationContext available for method ${methodName.toString()}! Make sure that you provide an AuthorizationContext to your custom methods as argument of the @AuthorizerFilter decorator.`);
28
+ },
29
+ });
30
+ return {
31
+ operationName: methodName.toString(),
32
+ readonly: partialAuthContext.operationGroup === auth_1.OperationGroup.READ ||
33
+ partialAuthContext.operationGroup === auth_1.OperationGroup.AGGREGATE,
34
+ ...partialAuthContext,
35
+ };
36
+ }
37
+ function AuthorizerFilter(partialAuthContext) {
38
+ // eslint-disable-next-line @typescript-eslint/ban-types
39
+ return (target, propertyKey, parameterIndex) => {
40
+ const authorizationContext = getAuthorizationContext(propertyKey, partialAuthContext);
41
+ return (0, common_1.createParamDecorator)((data, executionContext) => getAuthorizerFilter(getContext(executionContext), authorizationContext))()(target, propertyKey, parameterIndex);
42
+ };
43
+ }
44
+ exports.AuthorizerFilter = AuthorizerFilter;
45
+ function RelationAuthorizerFilter(relationName, partialAuthContext) {
46
+ // eslint-disable-next-line @typescript-eslint/ban-types
47
+ return (target, propertyKey, parameterIndex) => {
48
+ const authorizationContext = getAuthorizationContext(propertyKey, partialAuthContext);
49
+ return (0, common_1.createParamDecorator)((data, executionContext) => getRelationAuthFilter(getContext(executionContext), relationName, authorizationContext))()(target, propertyKey, parameterIndex);
50
+ };
51
+ }
52
+ exports.RelationAuthorizerFilter = RelationAuthorizerFilter;
53
+ function ModifyRelationAuthorizerFilter(relationName, partialAuthContext) {
54
+ // eslint-disable-next-line @typescript-eslint/ban-types
55
+ return (target, propertyKey, parameterIndex) => {
56
+ const authorizationContext = getAuthorizationContext(propertyKey, partialAuthContext);
57
+ return (0, common_1.createParamDecorator)(async (data, executionContext) => {
58
+ const context = getContext(executionContext);
59
+ return {
60
+ filter: await getAuthorizerFilter(context, authorizationContext),
61
+ relationFilter: await getRelationAuthFilter(context, relationName, authorizationContext),
62
+ };
63
+ })()(target, propertyKey, parameterIndex);
64
+ };
65
+ }
66
+ exports.ModifyRelationAuthorizerFilter = ModifyRelationAuthorizerFilter;
67
+ //# sourceMappingURL=authorize-filter.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authorize-filter.decorator.js","sourceRoot":"","sources":["../../../../../packages/query-graphql/src/decorators/authorize-filter.decorator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { Class, MetaValue } from '@ptc-org/nestjs-query-core';
2
+ import { AuthorizerOptions, Authorizer, CustomAuthorizer } from '../auth';
3
+ export declare function Authorize<DTO>(optsOrAuthorizerOrClass: Class<CustomAuthorizer<DTO>> | CustomAuthorizer<DTO> | AuthorizerOptions<DTO>): (DTOClass: Class<DTO>) => void;
4
+ export declare const getAuthorizer: <DTO>(DTOClass: Class<DTO>) => Class<Authorizer<DTO>>;
5
+ export declare const getCustomAuthorizer: <DTO>(DTOClass: Class<DTO>) => Class<CustomAuthorizer<DTO>>;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getCustomAuthorizer = exports.getAuthorizer = exports.Authorize = void 0;
4
+ const nestjs_query_core_1 = require("@ptc-org/nestjs-query-core");
5
+ const auth_1 = require("../auth");
6
+ const constants_1 = require("./constants");
7
+ const reflector = new nestjs_query_core_1.ValueReflector(constants_1.AUTHORIZER_KEY);
8
+ const customAuthorizerReflector = new nestjs_query_core_1.ValueReflector(constants_1.CUSTOM_AUTHORIZER_KEY);
9
+ function Authorize(optsOrAuthorizerOrClass) {
10
+ return (DTOClass) => {
11
+ if (!('authorize' in optsOrAuthorizerOrClass)) {
12
+ // If the user provided a class, provide the custom authorizer and create a default authorizer that injects the custom authorizer
13
+ customAuthorizerReflector.set(DTOClass, optsOrAuthorizerOrClass);
14
+ return reflector.set(DTOClass, (0, auth_1.createDefaultAuthorizer)(DTOClass));
15
+ }
16
+ return reflector.set(DTOClass, (0, auth_1.createDefaultAuthorizer)(DTOClass, optsOrAuthorizerOrClass));
17
+ };
18
+ }
19
+ exports.Authorize = Authorize;
20
+ const getAuthorizer = (DTOClass) => reflector.get(DTOClass);
21
+ exports.getAuthorizer = getAuthorizer;
22
+ const getCustomAuthorizer = (DTOClass) => customAuthorizerReflector.get(DTOClass);
23
+ exports.getCustomAuthorizer = getCustomAuthorizer;
24
+ //# sourceMappingURL=authorizer.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authorizer.decorator.js","sourceRoot":"","sources":["../../../../../packages/query-graphql/src/decorators/authorizer.decorator.ts"],"names":[],"mappings":";;;AAAA,kEAA8E;AAC9E,kCAAmG;AACnG,2CAAoE;AAEpE,MAAM,SAAS,GAAG,IAAI,kCAAc,CAAC,0BAAc,CAAC,CAAC;AACrD,MAAM,yBAAyB,GAAG,IAAI,kCAAc,CAAC,iCAAqB,CAAC,CAAC;AAC5E,SAAgB,SAAS,CACvB,uBAAsG;IAEtG,OAAO,CAAC,QAAoB,EAAQ,EAAE;QACpC,IAAI,CAAC,CAAC,WAAW,IAAI,uBAAuB,CAAC,EAAE;YAC7C,iIAAiI;YACjI,yBAAyB,CAAC,GAAG,CAAC,QAAQ,EAAE,uBAAuB,CAAC,CAAC;YACjE,OAAO,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAA,8BAAuB,EAAC,QAAQ,CAAC,CAAC,CAAC;SACnE;QACD,OAAO,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAA,8BAAuB,EAAC,QAAQ,EAAE,uBAAuB,CAAC,CAAC,CAAC;IAC7F,CAAC,CAAC;AACJ,CAAC;AAXD,8BAWC;AAEM,MAAM,aAAa,GAAG,CAAM,QAAoB,EAAqC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAA1G,QAAA,aAAa,iBAA6F;AAChH,MAAM,mBAAmB,GAAG,CAAM,QAAoB,EAA2C,EAAE,CACxG,yBAAyB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAD7B,QAAA,mBAAmB,uBACU"}
@@ -0,0 +1,8 @@
1
+ export declare const FILTERABLE_FIELD_KEY = "nestjs-query:filterable-field";
2
+ export declare const ID_FIELD_KEY = "nestjs-query:id-field";
3
+ export declare const RELATION_KEY = "nestjs-query:relation";
4
+ export declare const REFERENCE_KEY = "nestjs-query:reference";
5
+ export declare const AUTHORIZER_KEY = "nestjs-query:authorizer";
6
+ export declare const CUSTOM_AUTHORIZER_KEY = "nestjs-query:custom-authorizer";
7
+ export declare const KEY_SET_KEY = "nestjs-query:key-set";
8
+ export declare const QUERY_OPTIONS_KEY = "nestjs-query:query-options";
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.QUERY_OPTIONS_KEY = exports.KEY_SET_KEY = exports.CUSTOM_AUTHORIZER_KEY = exports.AUTHORIZER_KEY = exports.REFERENCE_KEY = exports.RELATION_KEY = exports.ID_FIELD_KEY = exports.FILTERABLE_FIELD_KEY = void 0;
4
+ exports.FILTERABLE_FIELD_KEY = 'nestjs-query:filterable-field';
5
+ exports.ID_FIELD_KEY = 'nestjs-query:id-field';
6
+ exports.RELATION_KEY = 'nestjs-query:relation';
7
+ exports.REFERENCE_KEY = 'nestjs-query:reference';
8
+ exports.AUTHORIZER_KEY = 'nestjs-query:authorizer';
9
+ exports.CUSTOM_AUTHORIZER_KEY = 'nestjs-query:custom-authorizer';
10
+ exports.KEY_SET_KEY = 'nestjs-query:key-set';
11
+ exports.QUERY_OPTIONS_KEY = 'nestjs-query:query-options';
12
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../packages/query-graphql/src/decorators/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,oBAAoB,GAAG,+BAA+B,CAAC;AACvD,QAAA,YAAY,GAAG,uBAAuB,CAAC;AACvC,QAAA,YAAY,GAAG,uBAAuB,CAAC;AACvC,QAAA,aAAa,GAAG,wBAAwB,CAAC;AAEzC,QAAA,cAAc,GAAG,yBAAyB,CAAC;AAC3C,QAAA,qBAAqB,GAAG,gCAAgC,CAAC;AAEzD,QAAA,WAAW,GAAG,sBAAsB,CAAC;AAErC,QAAA,iBAAiB,GAAG,4BAA4B,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare type ComposableDecorator = MethodDecorator | PropertyDecorator | ClassDecorator | ParameterDecorator;
2
+ export declare type ComposedDecorator = MethodDecorator & PropertyDecorator & ClassDecorator & ParameterDecorator;
3
+ export declare function composeDecorators(...decorators: ComposableDecorator[]): ComposedDecorator;