@vendure/core 2.0.0-next.2 → 2.0.0-next.5

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 (319) hide show
  1. package/dist/api/common/configurable-operation-codec.js +2 -2
  2. package/dist/api/common/configurable-operation-codec.js.map +1 -1
  3. package/dist/api/config/generate-permissions.js +29 -4
  4. package/dist/api/config/generate-permissions.js.map +1 -1
  5. package/dist/api/decorators/relations.decorator.d.ts +102 -0
  6. package/dist/api/decorators/relations.decorator.js +185 -0
  7. package/dist/api/decorators/relations.decorator.js.map +1 -0
  8. package/dist/api/decorators/request-context.decorator.js +9 -2
  9. package/dist/api/decorators/request-context.decorator.js.map +1 -1
  10. package/dist/api/index.d.ts +1 -0
  11. package/dist/api/index.js +1 -0
  12. package/dist/api/index.js.map +1 -1
  13. package/dist/api/middleware/transaction-interceptor.d.ts +9 -0
  14. package/dist/api/middleware/transaction-interceptor.js +16 -1
  15. package/dist/api/middleware/transaction-interceptor.js.map +1 -1
  16. package/dist/api/resolvers/admin/administrator.resolver.d.ts +3 -2
  17. package/dist/api/resolvers/admin/administrator.resolver.js +10 -6
  18. package/dist/api/resolvers/admin/administrator.resolver.js.map +1 -1
  19. package/dist/api/resolvers/admin/asset.resolver.d.ts +3 -2
  20. package/dist/api/resolvers/admin/asset.resolver.js +10 -6
  21. package/dist/api/resolvers/admin/asset.resolver.js.map +1 -1
  22. package/dist/api/resolvers/admin/collection.resolver.d.ts +5 -3
  23. package/dist/api/resolvers/admin/collection.resolver.js +25 -7
  24. package/dist/api/resolvers/admin/collection.resolver.js.map +1 -1
  25. package/dist/api/resolvers/admin/country.resolver.d.ts +3 -2
  26. package/dist/api/resolvers/admin/country.resolver.js +10 -6
  27. package/dist/api/resolvers/admin/country.resolver.js.map +1 -1
  28. package/dist/api/resolvers/admin/customer-group.resolver.d.ts +3 -2
  29. package/dist/api/resolvers/admin/customer-group.resolver.js +8 -4
  30. package/dist/api/resolvers/admin/customer-group.resolver.js.map +1 -1
  31. package/dist/api/resolvers/admin/customer.resolver.d.ts +3 -2
  32. package/dist/api/resolvers/admin/customer.resolver.js +10 -6
  33. package/dist/api/resolvers/admin/customer.resolver.js.map +1 -1
  34. package/dist/api/resolvers/admin/facet.resolver.d.ts +3 -2
  35. package/dist/api/resolvers/admin/facet.resolver.js +10 -6
  36. package/dist/api/resolvers/admin/facet.resolver.js.map +1 -1
  37. package/dist/api/resolvers/admin/order.resolver.d.ts +6 -5
  38. package/dist/api/resolvers/admin/order.resolver.js +24 -11
  39. package/dist/api/resolvers/admin/order.resolver.js.map +1 -1
  40. package/dist/api/resolvers/admin/payment-method.resolver.d.ts +3 -2
  41. package/dist/api/resolvers/admin/payment-method.resolver.js +10 -6
  42. package/dist/api/resolvers/admin/payment-method.resolver.js.map +1 -1
  43. package/dist/api/resolvers/admin/product-option.resolver.d.ts +3 -2
  44. package/dist/api/resolvers/admin/product-option.resolver.js +8 -4
  45. package/dist/api/resolvers/admin/product-option.resolver.js.map +1 -1
  46. package/dist/api/resolvers/admin/product.resolver.d.ts +4 -3
  47. package/dist/api/resolvers/admin/product.resolver.js +16 -10
  48. package/dist/api/resolvers/admin/product.resolver.js.map +1 -1
  49. package/dist/api/resolvers/admin/promotion.resolver.d.ts +3 -2
  50. package/dist/api/resolvers/admin/promotion.resolver.js +9 -6
  51. package/dist/api/resolvers/admin/promotion.resolver.js.map +1 -1
  52. package/dist/api/resolvers/admin/role.resolver.d.ts +3 -2
  53. package/dist/api/resolvers/admin/role.resolver.js +10 -6
  54. package/dist/api/resolvers/admin/role.resolver.js.map +1 -1
  55. package/dist/api/resolvers/admin/shipping-method.resolver.d.ts +3 -2
  56. package/dist/api/resolvers/admin/shipping-method.resolver.js +10 -6
  57. package/dist/api/resolvers/admin/shipping-method.resolver.js.map +1 -1
  58. package/dist/api/resolvers/admin/tax-rate.resolver.d.ts +3 -2
  59. package/dist/api/resolvers/admin/tax-rate.resolver.js +10 -6
  60. package/dist/api/resolvers/admin/tax-rate.resolver.js.map +1 -1
  61. package/dist/api/resolvers/entity/collection-entity.resolver.d.ts +2 -1
  62. package/dist/api/resolvers/entity/collection-entity.resolver.js +5 -3
  63. package/dist/api/resolvers/entity/collection-entity.resolver.js.map +1 -1
  64. package/dist/api/resolvers/entity/customer-entity.resolver.d.ts +2 -1
  65. package/dist/api/resolvers/entity/customer-entity.resolver.js +5 -3
  66. package/dist/api/resolvers/entity/customer-entity.resolver.js.map +1 -1
  67. package/dist/api/resolvers/entity/order-line-entity.resolver.d.ts +6 -3
  68. package/dist/api/resolvers/entity/order-line-entity.resolver.js +19 -2
  69. package/dist/api/resolvers/entity/order-line-entity.resolver.js.map +1 -1
  70. package/dist/api/resolvers/entity/product-entity.resolver.d.ts +3 -2
  71. package/dist/api/resolvers/entity/product-entity.resolver.js +10 -6
  72. package/dist/api/resolvers/entity/product-entity.resolver.js.map +1 -1
  73. package/dist/api/resolvers/shop/shop-order.resolver.d.ts +4 -3
  74. package/dist/api/resolvers/shop/shop-order.resolver.js +16 -8
  75. package/dist/api/resolvers/shop/shop-order.resolver.js.map +1 -1
  76. package/dist/api/resolvers/shop/shop-products.resolver.d.ts +8 -8
  77. package/dist/api/resolvers/shop/shop-products.resolver.js +32 -21
  78. package/dist/api/resolvers/shop/shop-products.resolver.js.map +1 -1
  79. package/dist/api/schema/admin-api/collection.api.graphql +7 -0
  80. package/dist/bootstrap.js +8 -3
  81. package/dist/bootstrap.js.map +1 -1
  82. package/dist/common/calculated-decorator.d.ts +16 -3
  83. package/dist/common/calculated-decorator.js +3 -0
  84. package/dist/common/calculated-decorator.js.map +1 -1
  85. package/dist/common/constants.d.ts +1 -0
  86. package/dist/common/constants.js +2 -1
  87. package/dist/common/constants.js.map +1 -1
  88. package/dist/common/types/entity-relation-paths.d.ts +1 -1
  89. package/dist/config/catalog/collection-filter.d.ts +32 -0
  90. package/dist/config/catalog/collection-filter.js +32 -0
  91. package/dist/config/catalog/collection-filter.js.map +1 -1
  92. package/dist/config/catalog/default-collection-filters.d.ts +100 -0
  93. package/dist/config/catalog/default-collection-filters.js +154 -21
  94. package/dist/config/catalog/default-collection-filters.js.map +1 -1
  95. package/dist/config/config.module.js +2 -0
  96. package/dist/config/config.module.js.map +1 -1
  97. package/dist/config/config.service.d.ts +2 -1
  98. package/dist/config/config.service.js +3 -0
  99. package/dist/config/config.service.js.map +1 -1
  100. package/dist/config/custom-field/custom-field-types.d.ts +3 -0
  101. package/dist/config/default-config.js +5 -0
  102. package/dist/config/default-config.js.map +1 -1
  103. package/dist/config/entity-metadata/add-foreign-key-indices.d.ts +12 -0
  104. package/dist/config/entity-metadata/add-foreign-key-indices.js +33 -0
  105. package/dist/config/entity-metadata/add-foreign-key-indices.js.map +1 -0
  106. package/dist/config/entity-metadata/entity-metadata-modifier.d.ts +55 -0
  107. package/dist/config/entity-metadata/entity-metadata-modifier.js +3 -0
  108. package/dist/config/entity-metadata/entity-metadata-modifier.js.map +1 -0
  109. package/dist/config/index.d.ts +3 -0
  110. package/dist/config/index.js +3 -0
  111. package/dist/config/index.js.map +1 -1
  112. package/dist/config/shipping-method/shipping-calculator.d.ts +3 -3
  113. package/dist/config/shipping-method/shipping-calculator.js +2 -2
  114. package/dist/config/shipping-method/shipping-calculator.js.map +1 -1
  115. package/dist/config/shipping-method/shipping-eligibility-checker.d.ts +4 -4
  116. package/dist/config/shipping-method/shipping-eligibility-checker.js +5 -5
  117. package/dist/config/shipping-method/shipping-eligibility-checker.js.map +1 -1
  118. package/dist/config/system/health-check-strategy.d.ts +47 -0
  119. package/dist/config/system/health-check-strategy.js +3 -0
  120. package/dist/config/system/health-check-strategy.js.map +1 -0
  121. package/dist/config/vendure-config.d.ts +39 -0
  122. package/dist/connection/transaction-wrapper.d.ts +5 -1
  123. package/dist/connection/transaction-wrapper.js +9 -3
  124. package/dist/connection/transaction-wrapper.js.map +1 -1
  125. package/dist/connection/transactional-connection.d.ts +7 -3
  126. package/dist/connection/transactional-connection.js +8 -3
  127. package/dist/connection/transactional-connection.js.map +1 -1
  128. package/dist/data-import/providers/importer/importer.d.ts +3 -2
  129. package/dist/data-import/providers/importer/importer.js +13 -7
  130. package/dist/data-import/providers/importer/importer.js.map +1 -1
  131. package/dist/entity/address/address.entity.js +2 -0
  132. package/dist/entity/address/address.entity.js.map +1 -1
  133. package/dist/entity/asset/orderable-asset.entity.js +1 -0
  134. package/dist/entity/asset/orderable-asset.entity.js.map +1 -1
  135. package/dist/entity/authentication-method/authentication-method.entity.js +1 -0
  136. package/dist/entity/authentication-method/authentication-method.entity.js.map +1 -1
  137. package/dist/entity/channel/channel.entity.js +2 -0
  138. package/dist/entity/channel/channel.entity.js.map +1 -1
  139. package/dist/entity/collection/collection-translation.entity.js +1 -0
  140. package/dist/entity/collection/collection-translation.entity.js.map +1 -1
  141. package/dist/entity/collection/collection.entity.js +1 -0
  142. package/dist/entity/collection/collection.entity.js.map +1 -1
  143. package/dist/entity/country/country-translation.entity.js +1 -0
  144. package/dist/entity/country/country-translation.entity.js.map +1 -1
  145. package/dist/entity/facet/facet-translation.entity.js +1 -0
  146. package/dist/entity/facet/facet-translation.entity.js.map +1 -1
  147. package/dist/entity/facet-value/facet-value-translation.entity.js +1 -0
  148. package/dist/entity/facet-value/facet-value-translation.entity.js.map +1 -1
  149. package/dist/entity/facet-value/facet-value.entity.js +1 -0
  150. package/dist/entity/facet-value/facet-value.entity.js.map +1 -1
  151. package/dist/entity/history-entry/customer-history-entry.entity.js +1 -0
  152. package/dist/entity/history-entry/customer-history-entry.entity.js.map +1 -1
  153. package/dist/entity/history-entry/history-entry.entity.js +1 -0
  154. package/dist/entity/history-entry/history-entry.entity.js.map +1 -1
  155. package/dist/entity/history-entry/order-history-entry.entity.js +1 -0
  156. package/dist/entity/history-entry/order-history-entry.entity.js.map +1 -1
  157. package/dist/entity/order/order.entity.js +5 -2
  158. package/dist/entity/order/order.entity.js.map +1 -1
  159. package/dist/entity/order-item/order-item.entity.js +2 -0
  160. package/dist/entity/order-item/order-item.entity.js.map +1 -1
  161. package/dist/entity/order-line/order-line.entity.js +26 -22
  162. package/dist/entity/order-line/order-line.entity.js.map +1 -1
  163. package/dist/entity/order-modification/order-modification.entity.js +1 -0
  164. package/dist/entity/order-modification/order-modification.entity.js.map +1 -1
  165. package/dist/entity/payment/payment.entity.js +1 -0
  166. package/dist/entity/payment/payment.entity.js.map +1 -1
  167. package/dist/entity/product/product-translation.entity.js +1 -0
  168. package/dist/entity/product/product-translation.entity.js.map +1 -1
  169. package/dist/entity/product/product.entity.js +1 -0
  170. package/dist/entity/product/product.entity.js.map +1 -1
  171. package/dist/entity/product-option/product-option-translation.entity.js +1 -0
  172. package/dist/entity/product-option/product-option-translation.entity.js.map +1 -1
  173. package/dist/entity/product-option/product-option.entity.js +1 -0
  174. package/dist/entity/product-option/product-option.entity.js.map +1 -1
  175. package/dist/entity/product-option-group/product-option-group-translation.entity.js +1 -0
  176. package/dist/entity/product-option-group/product-option-group-translation.entity.js.map +1 -1
  177. package/dist/entity/product-option-group/product-option-group.entity.js +1 -0
  178. package/dist/entity/product-option-group/product-option-group.entity.js.map +1 -1
  179. package/dist/entity/product-variant/product-variant-price.entity.js +1 -0
  180. package/dist/entity/product-variant/product-variant-price.entity.js.map +1 -1
  181. package/dist/entity/product-variant/product-variant-translation.entity.js +1 -0
  182. package/dist/entity/product-variant/product-variant-translation.entity.js.map +1 -1
  183. package/dist/entity/product-variant/product-variant.entity.js +3 -0
  184. package/dist/entity/product-variant/product-variant.entity.js.map +1 -1
  185. package/dist/entity/refund/refund.entity.js +1 -0
  186. package/dist/entity/refund/refund.entity.js.map +1 -1
  187. package/dist/entity/register-custom-entity-fields.js +8 -0
  188. package/dist/entity/register-custom-entity-fields.js.map +1 -1
  189. package/dist/entity/run-entity-metadata-modifiers.d.ts +2 -0
  190. package/dist/entity/run-entity-metadata-modifiers.js +15 -0
  191. package/dist/entity/run-entity-metadata-modifiers.js.map +1 -0
  192. package/dist/entity/session/authenticated-session.entity.js +1 -0
  193. package/dist/entity/session/authenticated-session.entity.js.map +1 -1
  194. package/dist/entity/session/session.entity.js +2 -0
  195. package/dist/entity/session/session.entity.js.map +1 -1
  196. package/dist/entity/shipping-line/shipping-line.entity.js +2 -0
  197. package/dist/entity/shipping-line/shipping-line.entity.js.map +1 -1
  198. package/dist/entity/shipping-method/shipping-method-translation.entity.js +1 -0
  199. package/dist/entity/shipping-method/shipping-method-translation.entity.js.map +1 -1
  200. package/dist/entity/shipping-method/shipping-method.entity.js +2 -2
  201. package/dist/entity/shipping-method/shipping-method.entity.js.map +1 -1
  202. package/dist/entity/stock-movement/allocation.entity.js +1 -0
  203. package/dist/entity/stock-movement/allocation.entity.js.map +1 -1
  204. package/dist/entity/stock-movement/cancellation.entity.js.map +1 -1
  205. package/dist/entity/stock-movement/release.entity.js +1 -0
  206. package/dist/entity/stock-movement/release.entity.js.map +1 -1
  207. package/dist/entity/stock-movement/sale.entity.js.map +1 -1
  208. package/dist/entity/stock-movement/stock-movement.entity.js +1 -0
  209. package/dist/entity/stock-movement/stock-movement.entity.js.map +1 -1
  210. package/dist/entity/surcharge/surcharge.entity.js +2 -0
  211. package/dist/entity/surcharge/surcharge.entity.js.map +1 -1
  212. package/dist/entity/tax-rate/tax-rate.entity.js +3 -0
  213. package/dist/entity/tax-rate/tax-rate.entity.js.map +1 -1
  214. package/dist/event-bus/event-bus.js +12 -3
  215. package/dist/event-bus/event-bus.js.map +1 -1
  216. package/dist/health-check/health-check-registry.service.d.ts +7 -1
  217. package/dist/health-check/health-check-registry.service.js +7 -1
  218. package/dist/health-check/health-check-registry.service.js.map +1 -1
  219. package/dist/health-check/health-check.module.d.ts +1 -3
  220. package/dist/health-check/health-check.module.js +6 -5
  221. package/dist/health-check/health-check.module.js.map +1 -1
  222. package/dist/health-check/http-health-check-strategy.d.ts +36 -0
  223. package/dist/health-check/http-health-check-strategy.js +41 -0
  224. package/dist/health-check/http-health-check-strategy.js.map +1 -0
  225. package/dist/health-check/index.d.ts +2 -0
  226. package/dist/health-check/index.js +2 -0
  227. package/dist/health-check/index.js.map +1 -1
  228. package/dist/health-check/typeorm-health-check-strategy.d.ts +36 -0
  229. package/dist/health-check/typeorm-health-check-strategy.js +44 -0
  230. package/dist/health-check/typeorm-health-check-strategy.js.map +1 -0
  231. package/dist/plugin/default-search-plugin/default-search-plugin.d.ts +9 -3
  232. package/dist/plugin/default-search-plugin/default-search-plugin.js +25 -2
  233. package/dist/plugin/default-search-plugin/default-search-plugin.js.map +1 -1
  234. package/dist/plugin/default-search-plugin/fulltext-search.service.d.ts +3 -1
  235. package/dist/plugin/default-search-plugin/fulltext-search.service.js +27 -19
  236. package/dist/plugin/default-search-plugin/fulltext-search.service.js.map +1 -1
  237. package/dist/plugin/default-search-plugin/search-strategy/mysql-search-strategy.d.ts +4 -4
  238. package/dist/plugin/default-search-plugin/search-strategy/mysql-search-strategy.js +7 -3
  239. package/dist/plugin/default-search-plugin/search-strategy/mysql-search-strategy.js.map +1 -1
  240. package/dist/plugin/default-search-plugin/search-strategy/postgres-search-strategy.d.ts +4 -4
  241. package/dist/plugin/default-search-plugin/search-strategy/postgres-search-strategy.js +7 -3
  242. package/dist/plugin/default-search-plugin/search-strategy/postgres-search-strategy.js.map +1 -1
  243. package/dist/plugin/default-search-plugin/search-strategy/search-strategy.d.ts +2 -1
  244. package/dist/plugin/default-search-plugin/search-strategy/sqlite-search-strategy.d.ts +4 -4
  245. package/dist/plugin/default-search-plugin/search-strategy/sqlite-search-strategy.js +7 -3
  246. package/dist/plugin/default-search-plugin/search-strategy/sqlite-search-strategy.js.map +1 -1
  247. package/dist/plugin/default-search-plugin/types.d.ts +84 -0
  248. package/dist/service/helpers/list-query-builder/list-query-builder.d.ts +29 -1
  249. package/dist/service/helpers/list-query-builder/list-query-builder.js +116 -17
  250. package/dist/service/helpers/list-query-builder/list-query-builder.js.map +1 -1
  251. package/dist/service/helpers/list-query-builder/parse-channel-param.d.ts +1 -1
  252. package/dist/service/helpers/list-query-builder/parse-channel-param.js +2 -2
  253. package/dist/service/helpers/list-query-builder/parse-channel-param.js.map +1 -1
  254. package/dist/service/helpers/list-query-builder/parse-filter-params.d.ts +1 -1
  255. package/dist/service/helpers/list-query-builder/parse-filter-params.js +3 -2
  256. package/dist/service/helpers/list-query-builder/parse-filter-params.js.map +1 -1
  257. package/dist/service/helpers/list-query-builder/parse-sort-params.d.ts +1 -1
  258. package/dist/service/helpers/list-query-builder/parse-sort-params.js +4 -3
  259. package/dist/service/helpers/list-query-builder/parse-sort-params.js.map +1 -1
  260. package/dist/service/helpers/order-calculator/prorate.js +1 -1
  261. package/dist/service/helpers/order-calculator/prorate.js.map +1 -1
  262. package/dist/service/helpers/order-modifier/order-modifier.js +2 -1
  263. package/dist/service/helpers/order-modifier/order-modifier.js.map +1 -1
  264. package/dist/service/helpers/slug-validator/slug-validator.js +15 -6
  265. package/dist/service/helpers/slug-validator/slug-validator.js.map +1 -1
  266. package/dist/service/helpers/utils/translate-entity.js +1 -2
  267. package/dist/service/helpers/utils/translate-entity.js.map +1 -1
  268. package/dist/service/services/administrator.service.d.ts +4 -3
  269. package/dist/service/services/administrator.service.js +6 -5
  270. package/dist/service/services/administrator.service.js.map +1 -1
  271. package/dist/service/services/asset.service.d.ts +3 -2
  272. package/dist/service/services/asset.service.js +6 -4
  273. package/dist/service/services/asset.service.js.map +1 -1
  274. package/dist/service/services/collection.service.d.ts +8 -5
  275. package/dist/service/services/collection.service.js +42 -12
  276. package/dist/service/services/collection.service.js.map +1 -1
  277. package/dist/service/services/country.service.d.ts +3 -2
  278. package/dist/service/services/country.service.js +4 -4
  279. package/dist/service/services/country.service.js.map +1 -1
  280. package/dist/service/services/customer-group.service.d.ts +6 -3
  281. package/dist/service/services/customer-group.service.js +12 -7
  282. package/dist/service/services/customer-group.service.js.map +1 -1
  283. package/dist/service/services/customer.service.d.ts +3 -2
  284. package/dist/service/services/customer.service.js +3 -3
  285. package/dist/service/services/customer.service.js.map +1 -1
  286. package/dist/service/services/facet.service.d.ts +3 -2
  287. package/dist/service/services/facet.service.js +10 -6
  288. package/dist/service/services/facet.service.js.map +1 -1
  289. package/dist/service/services/order.service.d.ts +15 -7
  290. package/dist/service/services/order.service.js +63 -53
  291. package/dist/service/services/order.service.js.map +1 -1
  292. package/dist/service/services/payment-method.service.d.ts +3 -2
  293. package/dist/service/services/payment-method.service.js +6 -4
  294. package/dist/service/services/payment-method.service.js.map +1 -1
  295. package/dist/service/services/product-option-group.service.d.ts +3 -2
  296. package/dist/service/services/product-option-group.service.js +4 -4
  297. package/dist/service/services/product-option-group.service.js.map +1 -1
  298. package/dist/service/services/product-variant.service.d.ts +11 -3
  299. package/dist/service/services/product-variant.service.js +53 -40
  300. package/dist/service/services/product-variant.service.js.map +1 -1
  301. package/dist/service/services/product.service.d.ts +5 -4
  302. package/dist/service/services/product.service.js +18 -8
  303. package/dist/service/services/product.service.js.map +1 -1
  304. package/dist/service/services/promotion.service.d.ts +3 -2
  305. package/dist/service/services/promotion.service.js +6 -4
  306. package/dist/service/services/promotion.service.js.map +1 -1
  307. package/dist/service/services/role.service.d.ts +3 -2
  308. package/dist/service/services/role.service.js +4 -4
  309. package/dist/service/services/role.service.js.map +1 -1
  310. package/dist/service/services/shipping-method.service.d.ts +3 -2
  311. package/dist/service/services/shipping-method.service.js +4 -4
  312. package/dist/service/services/shipping-method.service.js.map +1 -1
  313. package/dist/service/services/tax-rate.service.d.ts +3 -2
  314. package/dist/service/services/tax-rate.service.js +4 -4
  315. package/dist/service/services/tax-rate.service.js.map +1 -1
  316. package/dist/service/services/zone.service.d.ts +2 -2
  317. package/dist/service/services/zone.service.js +2 -2
  318. package/dist/service/services/zone.service.js.map +1 -1
  319. package/package.json +4 -3
@@ -35,7 +35,7 @@ let ConfigurableOperationCodec = class ConfigurableOperationCodec {
35
35
  }
36
36
  for (const arg of operationInput.arguments) {
37
37
  const argDef = def.args[arg.name];
38
- if (argDef.type === 'ID' && arg.value) {
38
+ if (argDef && argDef.type === 'ID' && arg.value) {
39
39
  if (argDef.list === true) {
40
40
  const ids = JSON.parse(arg.value);
41
41
  const decodedIds = ids.map(id => this.idCodecService.decode(id));
@@ -62,7 +62,7 @@ let ConfigurableOperationCodec = class ConfigurableOperationCodec {
62
62
  }
63
63
  for (const arg of operationInput.args) {
64
64
  const argDef = def.args[arg.name];
65
- if (argDef.type === 'ID' && arg.value) {
65
+ if (argDef && argDef.type === 'ID' && arg.value) {
66
66
  if (argDef.list === true) {
67
67
  const ids = JSON.parse(arg.value);
68
68
  const encodedIds = ids.map(id => this.idCodecService.encode(id));
@@ -1 +1 @@
1
- {"version":3,"file":"configurable-operation-codec.js","sourceRoot":"","sources":["../../../src/api/common/configurable-operation-codec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"configurable-operation-codec.js","sourceRoot":"","sources":["../../../src/api/common/configurable-operation-codec.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAK5C,sDAAgE;AAChE,yCAMsB;AACtB,8EAA0E;AAC1E,gEAA4D;AAC5D,gHAA0G;AAC1G,wFAAmF;AAEnF,yDAAoD;AAGpD,IAAa,0BAA0B,GAAvC,MAAa,0BAA0B;IACnC,YAAoB,aAA4B,EAAU,cAA8B;QAApE,kBAAa,GAAb,aAAa,CAAe;QAAU,mBAAc,GAAd,cAAc,CAAgB;IAAG,CAAC;IAE5F;;OAEG;IACH,8BAA8B,CAC1B,OAA4C,EAC5C,KAAmC;QAEnC,MAAM,aAAa,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAC3D,KAAK,MAAM,cAAc,IAAI,KAAK,EAAE;YAChC,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,IAAI,CAAC,CAAC;YACpE,IAAI,CAAC,GAAG,EAAE;gBACN,SAAS;aACZ;YACD,KAAK,MAAM,GAAG,IAAI,cAAc,CAAC,SAAS,EAAE;gBACxC,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAClC,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE;oBAC7C,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE;wBACtB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAa,CAAC;wBAC9C,MAAM,UAAU,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;wBACjE,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;qBAC1C;yBAAM;wBACH,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;wBACxD,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;qBACzC;iBACJ;aACJ;SACJ;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,8BAA8B,CAC1B,OAA4C,EAC5C,KAA8B;QAE9B,MAAM,aAAa,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAC3D,KAAK,MAAM,cAAc,IAAI,KAAK,EAAE;YAChC,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,IAAI,CAAC,CAAC;YACpE,IAAI,CAAC,GAAG,EAAE;gBACN,SAAS;aACZ;YACD,KAAK,MAAM,GAAG,IAAI,cAAc,CAAC,IAAI,EAAE;gBACnC,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAClC,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE;oBAC7C,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE;wBACtB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAa,CAAC;wBAC9C,MAAM,UAAU,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;wBACjE,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;qBAC1C;yBAAM;wBACH,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;wBACxD,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;qBACzC;iBACJ;aACJ;SACJ;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,sBAAsB,CAAC,OAAuC;QAC1D,QAAQ,OAAO,EAAE;YACb,KAAK,oCAAgB;gBACjB,OAAO,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,iBAAiB,CAAC;YAC/D,KAAK,6CAAoB;gBACrB,OAAO,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,qBAAqB,CAAC;YACnE,KAAK,oEAA+B;gBAChC,OAAO,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,gCAAgC,IAAI,EAAE,CAAC;YACpF,KAAK,4BAAmB,CAAC;YACzB,KAAK,6BAAoB;gBACrB,OAAO,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,gBAAgB,IAAI,EAAE,CAAC;YACtE,KAAK,2BAAkB;gBACnB,OAAO,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,mBAAmB,IAAI,EAAE,CAAC;YACzE,KAAK,mCAA0B;gBAC3B,OAAO,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,2BAA2B,IAAI,EAAE,CAAC;YAChF,KAAK,2BAAkB;gBACnB,OAAO,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,mBAAmB,IAAI,EAAE,CAAC;YACxE;gBACI,MAAM,IAAI,4BAAmB,CAAC,iDAAiD,EAAE;oBAC7E,IAAI,EAAE,OAAO,CAAC,IAAI;iBACrB,CAAC,CAAC;SACV;IACL,CAAC;CACJ,CAAA;AAtFY,0BAA0B;IADtC,IAAA,mBAAU,GAAE;qCAE0B,8BAAa,EAA0B,iCAAc;GAD/E,0BAA0B,CAsFtC;AAtFY,gEAA0B"}
@@ -4,10 +4,35 @@ exports.generatePermissionEnum = void 0;
4
4
  const stitch_1 = require("@graphql-tools/stitch");
5
5
  const graphql_1 = require("graphql");
6
6
  const constants_1 = require("../../common/constants");
7
- const PERMISSION_DESCRIPTION = `@description
8
- Permissions for administrators and customers. Used to control access to
9
- GraphQL resolvers via the {@link Allow} decorator.
10
-
7
+ const PERMISSION_DESCRIPTION = `@description
8
+ Permissions for administrators and customers. Used to control access to
9
+ GraphQL resolvers via the {@link Allow} decorator.
10
+
11
+ ## Understanding Permission.Owner
12
+
13
+ \`Permission.Owner\` is a special permission which is used in some of the Vendure resolvers to indicate that that resolver should only
14
+ be accessible to the "owner" of that resource.
15
+
16
+ For example, the Shop API \`activeCustomer\` query resolver should only return the Customer object for the "owner" of that Customer, i.e.
17
+ based on the activeUserId of the current session. As a result, the resolver code looks like this:
18
+
19
+ @example
20
+ \`\`\`TypeScript
21
+ \\@Query()
22
+ \\@Allow(Permission.Owner)
23
+ async activeCustomer(\\@Ctx() ctx: RequestContext): Promise<Customer | undefined> {
24
+ const userId = ctx.activeUserId;
25
+ if (userId) {
26
+ return this.customerService.findOneByUserId(ctx, userId);
27
+ }
28
+ }
29
+ \`\`\`
30
+
31
+ Here we can see that the "ownership" must be enforced by custom logic inside the resolver. Since "ownership" cannot be defined generally
32
+ nor statically encoded at build-time, any resolvers using \`Permission.Owner\` **must** include logic to enforce that only the owner
33
+ of the resource has access. If not, then it is the equivalent of using \`Permission.Public\`.
34
+
35
+
11
36
  @docsCategory common`;
12
37
  /**
13
38
  * Generates the `Permission` GraphQL enum based on the default & custom permission definitions.
@@ -1 +1 @@
1
- {"version":3,"file":"generate-permissions.js","sourceRoot":"","sources":["../../../src/api/config/generate-permissions.ts"],"names":[],"mappings":";;;AAAA,kDAAuE;AACvE,qCAAyD;AAGzD,sDAAmE;AAGnE,MAAM,sBAAsB,GAAG;;;;qBAIV,CAAC;AAEtB;;GAEG;AACH,SAAgB,sBAAsB,CAClC,MAAqB,EACrB,iBAAyC;IAEzC,MAAM,sBAAsB,GAAG,IAAA,qCAAyB,EAAC,iBAAiB,CAAC,CAAC;IAC5E,MAAM,MAAM,GAA8B,EAAE,CAAC;IAC7C,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,KAAK,MAAM,KAAK,IAAI,sBAAsB,EAAE;QACxC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG;YACjB,KAAK,EAAE,CAAC;YACR,WAAW,EAAE,KAAK,CAAC,WAAW;SACjC,CAAC;QACF,CAAC,EAAE,CAAC;KACP;IAED,MAAM,eAAe,GAAG,IAAI,yBAAe,CAAC;QACxC,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,sBAAsB;QACnC,MAAM;KACT,CAAC,CAAC;IAEH,OAAO,IAAA,sBAAa,EAAC;QACjB,UAAU,EAAE,CAAC,MAAM,CAAC;QACpB,KAAK,EAAE,CAAC,eAAe,CAAC;QACxB,kBAAkB,EAAE,EAAE,kBAAkB,EAAE,EAAE,eAAe,EAAE,wBAAe,CAAC,GAAG,EAAE,EAAE;KACvF,CAAC,CAAC;AACP,CAAC;AA1BD,wDA0BC"}
1
+ {"version":3,"file":"generate-permissions.js","sourceRoot":"","sources":["../../../src/api/config/generate-permissions.ts"],"names":[],"mappings":";;;AAAA,kDAAuE;AACvE,qCAAyD;AAGzD,sDAAmE;AAGnE,MAAM,sBAAsB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBA6BV,CAAC;AAEtB;;GAEG;AACH,SAAgB,sBAAsB,CAClC,MAAqB,EACrB,iBAAyC;IAEzC,MAAM,sBAAsB,GAAG,IAAA,qCAAyB,EAAC,iBAAiB,CAAC,CAAC;IAC5E,MAAM,MAAM,GAA8B,EAAE,CAAC;IAC7C,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,KAAK,MAAM,KAAK,IAAI,sBAAsB,EAAE;QACxC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG;YACjB,KAAK,EAAE,CAAC;YACR,WAAW,EAAE,KAAK,CAAC,WAAW;SACjC,CAAC;QACF,CAAC,EAAE,CAAC;KACP;IAED,MAAM,eAAe,GAAG,IAAI,yBAAe,CAAC;QACxC,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,sBAAsB;QACnC,MAAM;KACT,CAAC,CAAC;IAEH,OAAO,IAAA,sBAAa,EAAC;QACjB,UAAU,EAAE,CAAC,MAAM,CAAC;QACpB,KAAK,EAAE,CAAC,eAAe,CAAC;QACxB,kBAAkB,EAAE,EAAE,kBAAkB,EAAE,EAAE,eAAe,EAAE,wBAAe,CAAC,GAAG,EAAE,EAAE;KACvF,CAAC,CAAC;AACP,CAAC;AA1BD,wDA0BC"}
@@ -0,0 +1,102 @@
1
+ import { Type } from '@vendure/common/lib/shared-types';
2
+ import { EntityRelationPaths } from '../../common/index';
3
+ import { VendureEntity } from '../../entity/index';
4
+ export declare type RelationPaths<T extends VendureEntity> = Array<EntityRelationPaths<T>>;
5
+ export declare type FieldsDecoratorConfig = Type<VendureEntity> | {
6
+ entity: Type<VendureEntity>;
7
+ depth: number;
8
+ };
9
+ /**
10
+ * @description
11
+ * Resolver param decorator which returns an array of relation paths which can be passed through
12
+ * to the TypeORM data layer in order to join only the required relations. This works by inspecting
13
+ * the GraphQL `info` object, examining the field selection, and then comparing this with information
14
+ * about the return type's relations.
15
+ *
16
+ * In addition to analyzing the field selection, this decorator also checks for any `@Calculated()`
17
+ * properties on the entity, and additionally includes relations from the `relations` array of the calculated
18
+ * metadata, if defined.
19
+ *
20
+ * So if, for example, the query only selects the `id` field of an Order, then no other relations need
21
+ * be joined in the resulting SQL query. This can massively speed up execution time for queries which do
22
+ * not include many deep nested relations.
23
+ *
24
+ * @example
25
+ * ```TypeScript
26
+ * \@Query()
27
+ * \@Allow(Permission.ReadOrder)
28
+ * orders(
29
+ * \@Ctx() ctx: RequestContext,
30
+ * \@Args() args: QueryOrdersArgs,
31
+ * \@Relations(Order) relations: RelationPaths<Order>,
32
+ * ): Promise<PaginatedList<Order>> {
33
+ * return this.orderService.findAll(ctx, args.options || undefined, relations);
34
+ * }
35
+ * ```
36
+ *
37
+ * In the above example, given the following query:
38
+ *
39
+ * @example
40
+ * ```GraphQL
41
+ * {
42
+ * orders(options: { take: 10 }) {
43
+ * items {
44
+ * id
45
+ * customer {
46
+ * id
47
+ * firstName
48
+ * lastName
49
+ * }
50
+ * totalQuantity
51
+ * totalWithTax
52
+ * }
53
+ * }
54
+ * }
55
+ * ```
56
+ * then the value of `relations` will be
57
+ *
58
+ * ```
59
+ * ['customer', 'lines', 'lines.items']
60
+ * ```
61
+ * The `'customer'` comes from the fact that the query is nesting the "customer" object, and the `'lines'` & `'lines.items'` are taken
62
+ * from the `Order` entity's `totalQuantity` property, which uses {@link Calculated} decorator and defines those relations as dependencies
63
+ * for deriving the calculated value.
64
+ *
65
+ * ## Depth
66
+ *
67
+ * By default, when inspecting the GraphQL query, the Relations decorator will look 3 levels deep in any nested fields. So, e.g. if
68
+ * the above `orders` query were changed to:
69
+ *
70
+ * @example
71
+ * ```GraphQL
72
+ * {
73
+ * orders(options: { take: 10 }) {
74
+ * items {
75
+ * id
76
+ * lines {
77
+ * productVariant {
78
+ * product {
79
+ * featuredAsset {
80
+ * preview
81
+ * }
82
+ * }
83
+ * }
84
+ * }
85
+ * }
86
+ * }
87
+ * }
88
+ * ```
89
+ * then the `relations` array would include `'lines'`, `'lines.productVariant'`, & `'lines.productVariant.product'` - 3 levels deep - but it would
90
+ * _not_ include `'lines.productVariant.product.featuredAsset'` since that exceeds the default depth. To specify a custom depth, you would
91
+ * use the decorator like this:
92
+ *
93
+ * @example
94
+ * ```TypeScript
95
+ * \@Relations({ entity: Order, depth: 2 }) relations: RelationPaths<Order>,
96
+ * ```
97
+ *
98
+ * @docsCategory request
99
+ * @docsPage Api Decorator
100
+ * @since 1.6.0
101
+ */
102
+ export declare const Relations: (...dataOrPipes: (FieldsDecoratorConfig | import("@nestjs/common").PipeTransform<any, any> | import("@nestjs/common").Type<import("@nestjs/common").PipeTransform<any, any>>)[]) => ParameterDecorator;
@@ -0,0 +1,185 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Relations = void 0;
4
+ const common_1 = require("@nestjs/common");
5
+ const unique_1 = require("@vendure/common/lib/unique");
6
+ const graphql_1 = require("graphql");
7
+ const typeorm_1 = require("typeorm");
8
+ const calculated_decorator_1 = require("../../common/calculated-decorator");
9
+ const index_1 = require("../../common/index");
10
+ // tslint:disable-next-line:no-var-requires
11
+ const graphqlFields = require('graphql-fields');
12
+ const DEFAULT_DEPTH = 3;
13
+ const cache = new index_1.TtlCache({ cacheSize: 500, ttl: 5 * 60 * 1000 });
14
+ /**
15
+ * @description
16
+ * Resolver param decorator which returns an array of relation paths which can be passed through
17
+ * to the TypeORM data layer in order to join only the required relations. This works by inspecting
18
+ * the GraphQL `info` object, examining the field selection, and then comparing this with information
19
+ * about the return type's relations.
20
+ *
21
+ * In addition to analyzing the field selection, this decorator also checks for any `@Calculated()`
22
+ * properties on the entity, and additionally includes relations from the `relations` array of the calculated
23
+ * metadata, if defined.
24
+ *
25
+ * So if, for example, the query only selects the `id` field of an Order, then no other relations need
26
+ * be joined in the resulting SQL query. This can massively speed up execution time for queries which do
27
+ * not include many deep nested relations.
28
+ *
29
+ * @example
30
+ * ```TypeScript
31
+ * \@Query()
32
+ * \@Allow(Permission.ReadOrder)
33
+ * orders(
34
+ * \@Ctx() ctx: RequestContext,
35
+ * \@Args() args: QueryOrdersArgs,
36
+ * \@Relations(Order) relations: RelationPaths<Order>,
37
+ * ): Promise<PaginatedList<Order>> {
38
+ * return this.orderService.findAll(ctx, args.options || undefined, relations);
39
+ * }
40
+ * ```
41
+ *
42
+ * In the above example, given the following query:
43
+ *
44
+ * @example
45
+ * ```GraphQL
46
+ * {
47
+ * orders(options: { take: 10 }) {
48
+ * items {
49
+ * id
50
+ * customer {
51
+ * id
52
+ * firstName
53
+ * lastName
54
+ * }
55
+ * totalQuantity
56
+ * totalWithTax
57
+ * }
58
+ * }
59
+ * }
60
+ * ```
61
+ * then the value of `relations` will be
62
+ *
63
+ * ```
64
+ * ['customer', 'lines', 'lines.items']
65
+ * ```
66
+ * The `'customer'` comes from the fact that the query is nesting the "customer" object, and the `'lines'` & `'lines.items'` are taken
67
+ * from the `Order` entity's `totalQuantity` property, which uses {@link Calculated} decorator and defines those relations as dependencies
68
+ * for deriving the calculated value.
69
+ *
70
+ * ## Depth
71
+ *
72
+ * By default, when inspecting the GraphQL query, the Relations decorator will look 3 levels deep in any nested fields. So, e.g. if
73
+ * the above `orders` query were changed to:
74
+ *
75
+ * @example
76
+ * ```GraphQL
77
+ * {
78
+ * orders(options: { take: 10 }) {
79
+ * items {
80
+ * id
81
+ * lines {
82
+ * productVariant {
83
+ * product {
84
+ * featuredAsset {
85
+ * preview
86
+ * }
87
+ * }
88
+ * }
89
+ * }
90
+ * }
91
+ * }
92
+ * }
93
+ * ```
94
+ * then the `relations` array would include `'lines'`, `'lines.productVariant'`, & `'lines.productVariant.product'` - 3 levels deep - but it would
95
+ * _not_ include `'lines.productVariant.product.featuredAsset'` since that exceeds the default depth. To specify a custom depth, you would
96
+ * use the decorator like this:
97
+ *
98
+ * @example
99
+ * ```TypeScript
100
+ * \@Relations({ entity: Order, depth: 2 }) relations: RelationPaths<Order>,
101
+ * ```
102
+ *
103
+ * @docsCategory request
104
+ * @docsPage Api Decorator
105
+ * @since 1.6.0
106
+ */
107
+ exports.Relations = (0, common_1.createParamDecorator)((data, ctx) => {
108
+ var _a;
109
+ const info = ctx.getArgByIndex(3);
110
+ if (data == null) {
111
+ throw new index_1.InternalServerError(`The @Relations() decorator requires an entity type argument`);
112
+ }
113
+ if (!isGraphQLResolveInfo(info)) {
114
+ return [];
115
+ }
116
+ const cacheKey = info.fieldName + '__' + ctx.getArgByIndex(2).req.body.query;
117
+ const cachedResult = cache.get(cacheKey);
118
+ if (cachedResult) {
119
+ return cachedResult;
120
+ }
121
+ const fields = graphqlFields(info);
122
+ const targetFields = isPaginatedListQuery(info) ? (_a = fields.items) !== null && _a !== void 0 ? _a : {} : fields;
123
+ const entity = typeof data === 'function' ? data : data.entity;
124
+ const maxDepth = typeof data === 'function' ? DEFAULT_DEPTH : data.depth;
125
+ const relationFields = getRelationPaths(targetFields, entity, maxDepth);
126
+ const result = (0, unique_1.unique)(relationFields);
127
+ cache.set(cacheKey, result);
128
+ return result;
129
+ });
130
+ function getRelationPaths(fields, entity, maxDepth, depth = 1) {
131
+ var _a, _b;
132
+ const relations = (0, typeorm_1.getMetadataArgsStorage)().filterRelations(entity);
133
+ const metadata = (0, typeorm_1.getMetadataArgsStorage)();
134
+ const relationPaths = [];
135
+ for (const [property, value] of Object.entries(fields)) {
136
+ if (property === 'customFields') {
137
+ const customFieldEntity = (_a = metadata
138
+ .filterEmbeddeds(entity)
139
+ .find(e => e.propertyName === 'customFields')) === null || _a === void 0 ? void 0 : _a.type();
140
+ if (customFieldEntity) {
141
+ if (depth < maxDepth) {
142
+ depth++;
143
+ const subPaths = getRelationPaths(value, customFieldEntity, maxDepth, depth);
144
+ depth--;
145
+ for (const subPath of subPaths) {
146
+ relationPaths.push([property, subPath].join('.'));
147
+ }
148
+ }
149
+ }
150
+ }
151
+ else {
152
+ const relationMetadata = relations.find(r => r.propertyName === property);
153
+ if (relationMetadata) {
154
+ relationPaths.push(property);
155
+ const relatedEntity = typeof relationMetadata.type === 'function'
156
+ ? relationMetadata.type()
157
+ : relationMetadata.type;
158
+ if (depth < maxDepth) {
159
+ depth++;
160
+ const subPaths = getRelationPaths(value, relatedEntity, maxDepth, depth);
161
+ depth--;
162
+ for (const subPath of subPaths) {
163
+ relationPaths.push([property, subPath].join('.'));
164
+ }
165
+ }
166
+ }
167
+ const calculatedProperties = (_b = Object.getPrototypeOf(new entity())[calculated_decorator_1.CALCULATED_PROPERTIES]) !== null && _b !== void 0 ? _b : [];
168
+ const selectedFields = new Set(Object.keys(fields));
169
+ const dependencyRelations = calculatedProperties
170
+ .filter(p => { var _a, _b; return selectedFields.has(p.name) && ((_b = (_a = p.listQuery) === null || _a === void 0 ? void 0 : _a.relations) === null || _b === void 0 ? void 0 : _b.length); })
171
+ .map(p => { var _a, _b; return (_b = (_a = p.listQuery) === null || _a === void 0 ? void 0 : _a.relations) !== null && _b !== void 0 ? _b : []; })
172
+ .flat();
173
+ relationPaths.push(...dependencyRelations);
174
+ }
175
+ }
176
+ return relationPaths;
177
+ }
178
+ function isGraphQLResolveInfo(input) {
179
+ return !!(input && typeof input === 'object' && input.schema instanceof graphql_1.GraphQLSchema);
180
+ }
181
+ function isPaginatedListQuery(info) {
182
+ const returnType = (0, graphql_1.getNamedType)(info.returnType);
183
+ return (0, graphql_1.isObjectType)(returnType) && !!returnType.getInterfaces().find(i => i.name === 'PaginatedList');
184
+ }
185
+ //# sourceMappingURL=relations.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relations.decorator.js","sourceRoot":"","sources":["../../../src/api/decorators/relations.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAAwE;AAExE,uDAAoD;AACpD,qCAAwF;AACxF,qCAAiD;AAEjD,4EAAsG;AACtG,8CAAwF;AAGxF,2CAA2C;AAC3C,MAAM,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAWhD,MAAM,aAAa,GAAG,CAAC,CAAC;AAExB,MAAM,KAAK,GAAG,IAAI,gBAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;AAEnE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4FG;AACU,QAAA,SAAS,GAAG,IAAA,6BAAoB,EAAwB,CAAC,IAAI,EAAE,GAAqB,EAAE,EAAE;;IACjG,MAAM,IAAI,GAAG,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAClC,IAAI,IAAI,IAAI,IAAI,EAAE;QACd,MAAM,IAAI,2BAAmB,CAAC,6DAA6D,CAAC,CAAC;KAChG;IACD,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE;QAC7B,OAAO,EAAE,CAAC;KACb;IACD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;IAC7E,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACzC,IAAI,YAAY,EAAE;QACd,OAAO,YAAY,CAAC;KACvB;IACD,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,YAAY,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAA,MAAM,CAAC,KAAK,mCAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;IAC9E,MAAM,MAAM,GAAG,OAAO,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;IAC/D,MAAM,QAAQ,GAAG,OAAO,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;IACzE,MAAM,cAAc,GAAG,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IACxE,MAAM,MAAM,GAAG,IAAA,eAAM,EAAC,cAAc,CAAC,CAAC;IACtC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC5B,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,SAAS,gBAAgB,CACrB,MAA2C,EAC3C,MAA2B,EAC3B,QAAgB,EAChB,KAAK,GAAG,CAAC;;IAET,MAAM,SAAS,GAAG,IAAA,gCAAsB,GAAE,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IACnE,MAAM,QAAQ,GAAG,IAAA,gCAAsB,GAAE,CAAC;IAC1C,MAAM,aAAa,GAAa,EAAE,CAAC;IACnC,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QACpD,IAAI,QAAQ,KAAK,cAAc,EAAE;YAC7B,MAAM,iBAAiB,GAAG,MAAA,QAAQ;iBAC7B,eAAe,CAAC,MAAM,CAAC;iBACvB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,cAAc,CAAC,0CAC3C,IAAI,EAAE,CAAC;YACb,IAAI,iBAAiB,EAAE;gBACnB,IAAI,KAAK,GAAG,QAAQ,EAAE;oBAClB,KAAK,EAAE,CAAC;oBACR,MAAM,QAAQ,GAAG,gBAAgB,CAC7B,KAAK,EACL,iBAAwC,EACxC,QAAQ,EACR,KAAK,CACR,CAAC;oBACF,KAAK,EAAE,CAAC;oBACR,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;wBAC5B,aAAa,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;qBACrD;iBACJ;aACJ;SACJ;aAAM;YACH,MAAM,gBAAgB,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC;YAC1E,IAAI,gBAAgB,EAAE;gBAClB,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC7B,MAAM,aAAa,GACf,OAAO,gBAAgB,CAAC,IAAI,KAAK,UAAU;oBACvC,CAAC,CAAC,gBAAgB,CAAC,IAAI,EAAE;oBACzB,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC;gBAChC,IAAI,KAAK,GAAG,QAAQ,EAAE;oBAClB,KAAK,EAAE,CAAC;oBACR,MAAM,QAAQ,GAAG,gBAAgB,CAC7B,KAAK,EACL,aAAoC,EACpC,QAAQ,EACR,KAAK,CACR,CAAC;oBACF,KAAK,EAAE,CAAC;oBACR,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;wBAC5B,aAAa,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;qBACrD;iBACJ;aACJ;YACD,MAAM,oBAAoB,GACtB,MAAA,MAAM,CAAC,cAAc,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,4CAAqB,CAAC,mCAAI,EAAE,CAAC;YACrE,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YACpD,MAAM,mBAAmB,GAAG,oBAAoB;iBAC3C,MAAM,CAAC,CAAC,CAAC,EAAE,eAAC,OAAA,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,IAAc,CAAC,KAAI,MAAA,MAAA,CAAC,CAAC,SAAS,0CAAE,SAAS,0CAAE,MAAM,CAAA,CAAA,EAAA,CAAC;iBACnF,GAAG,CAAC,CAAC,CAAC,EAAE,eAAC,OAAA,MAAA,MAAA,CAAC,CAAC,SAAS,0CAAE,SAAS,mCAAI,EAAE,CAAA,EAAA,CAAC;iBACtC,IAAI,EAAE,CAAC;YACZ,aAAa,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,CAAC;SAC9C;KACJ;IACD,OAAO,aAAa,CAAC;AACzB,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAc;IACxC,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAK,KAAa,CAAC,MAAM,YAAY,uBAAa,CAAC,CAAC;AACpG,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAwB;IAClD,MAAM,UAAU,GAAG,IAAA,sBAAY,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACjD,OAAO,IAAA,sBAAY,EAAC,UAAU,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC;AAC1G,CAAC"}
@@ -20,13 +20,20 @@ const constants_1 = require("../../common/constants");
20
20
  * @docsPage Ctx Decorator
21
21
  */
22
22
  exports.Ctx = (0, common_1.createParamDecorator)((data, ctx) => {
23
+ const getContext = (req) => {
24
+ const map = req[constants_1.REQUEST_CONTEXT_MAP_KEY];
25
+ // If a map contains associated transactional context with this handler
26
+ // we have to use it. It means that this handler was wrapped with @Transaction decorator.
27
+ // Otherwise use default context.
28
+ return (map === null || map === void 0 ? void 0 : map.get(ctx.getHandler())) || req[constants_1.REQUEST_CONTEXT_KEY];
29
+ };
23
30
  if (ctx.getType() === 'graphql') {
24
31
  // GraphQL request
25
- return ctx.getArgByIndex(2).req[constants_1.REQUEST_CONTEXT_KEY];
32
+ return getContext(ctx.getArgByIndex(2).req);
26
33
  }
27
34
  else {
28
35
  // REST request
29
- return ctx.switchToHttp().getRequest()[constants_1.REQUEST_CONTEXT_KEY];
36
+ return getContext(ctx.switchToHttp().getRequest());
30
37
  }
31
38
  });
32
39
  //# sourceMappingURL=request-context.decorator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"request-context.decorator.js","sourceRoot":"","sources":["../../../src/api/decorators/request-context.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAAqF;AAErF,sDAA6D;AAE7D;;;;;;;;;;;;;;;GAeG;AACU,QAAA,GAAG,GAAG,IAAA,6BAAoB,EAAC,CAAC,IAAI,EAAE,GAAqB,EAAE,EAAE;IACpE,IAAI,GAAG,CAAC,OAAO,EAA2B,KAAK,SAAS,EAAE;QACtD,kBAAkB;QAClB,OAAO,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,+BAAmB,CAAC,CAAC;KACxD;SAAM;QACH,eAAe;QACf,OAAO,GAAG,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC,+BAAmB,CAAC,CAAC;KAC/D;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"request-context.decorator.js","sourceRoot":"","sources":["../../../src/api/decorators/request-context.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAAqF;AAErF,sDAAsF;AAEtF;;;;;;;;;;;;;;;GAeG;AACU,QAAA,GAAG,GAAG,IAAA,6BAAoB,EAAC,CAAC,IAAI,EAAE,GAAqB,EAAE,EAAE;IACpE,MAAM,UAAU,GAAG,CAAC,GAAQ,EAAE,EAAE;QAC5B,MAAM,GAAG,GAAmC,GAAG,CAAC,mCAAuB,CAAC,CAAC;QAEzE,uEAAuE;QACvE,yFAAyF;QACzF,iCAAiC;QACjC,OAAO,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,KAAI,GAAG,CAAC,+BAAmB,CAAC,CAAC;IAClE,CAAC,CAAA;IAED,IAAI,GAAG,CAAC,OAAO,EAA2B,KAAK,SAAS,EAAE;QACtD,kBAAkB;QAClB,OAAO,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;KAC/C;SAAM;QACH,eAAe;QACf,OAAO,UAAU,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC;KACtD;AACL,CAAC,CAAC,CAAC"}
@@ -4,6 +4,7 @@ export * from './common/extract-session-token';
4
4
  export * from './decorators/allow.decorator';
5
5
  export * from './decorators/transaction.decorator';
6
6
  export * from './decorators/api.decorator';
7
+ export * from './decorators/relations.decorator';
7
8
  export * from './decorators/request-context.decorator';
8
9
  export * from './resolvers/admin/search.resolver';
9
10
  export * from './middleware/auth-guard';
package/dist/api/index.js CHANGED
@@ -15,6 +15,7 @@ __exportStar(require("./common/extract-session-token"), exports);
15
15
  __exportStar(require("./decorators/allow.decorator"), exports);
16
16
  __exportStar(require("./decorators/transaction.decorator"), exports);
17
17
  __exportStar(require("./decorators/api.decorator"), exports);
18
+ __exportStar(require("./decorators/relations.decorator"), exports);
18
19
  __exportStar(require("./decorators/request-context.decorator"), exports);
19
20
  __exportStar(require("./resolvers/admin/search.resolver"), exports);
20
21
  __exportStar(require("./middleware/auth-guard"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,2DAAyC;AACzC,iEAA+C;AAC/C,+DAA6C;AAC7C,qEAAmD;AACnD,6DAA2C;AAC3C,yEAAuD;AACvD,oEAAkD;AAClD,0DAAwC;AACxC,uEAAqD;AACrD,8DAA4C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,2DAAyC;AACzC,iEAA+C;AAC/C,+DAA6C;AAC7C,qEAAmD;AACnD,6DAA2C;AAC3C,mEAAiD;AACjD,yEAAuD;AACvD,oEAAkD;AAClD,0DAAwC;AACxC,uEAAqD;AACrD,8DAA4C"}
@@ -1,6 +1,7 @@
1
1
  import { CallHandler, ExecutionContext, NestInterceptor } from '@nestjs/common';
2
2
  import { Reflector } from '@nestjs/core';
3
3
  import { Observable } from 'rxjs';
4
+ import { RequestContext } from '..';
4
5
  import { TransactionWrapper } from '../../connection/transaction-wrapper';
5
6
  import { TransactionalConnection } from '../../connection/transactional-connection';
6
7
  /**
@@ -14,4 +15,12 @@ export declare class TransactionInterceptor implements NestInterceptor {
14
15
  private reflector;
15
16
  constructor(connection: TransactionalConnection, transactionWrapper: TransactionWrapper, reflector: Reflector);
16
17
  intercept(context: ExecutionContext, next: CallHandler): Observable<any>;
18
+ /**
19
+ * Registers transactional request context associated with execution handler function
20
+ *
21
+ * @param ctx transactional request context
22
+ * @param handler handler function from ExecutionContext
23
+ * @param req Request object
24
+ */
25
+ registerTransactionalContext(ctx: RequestContext, handler: Function, req: any): void;
17
26
  }
@@ -34,12 +34,27 @@ let TransactionInterceptor = class TransactionInterceptor {
34
34
  const ctx = req[constants_1.REQUEST_CONTEXT_KEY];
35
35
  if (ctx) {
36
36
  const transactionMode = this.reflector.get(transaction_decorator_1.TRANSACTION_MODE_METADATA_KEY, context.getHandler());
37
- return (0, rxjs_1.of)(this.transactionWrapper.executeInTransaction(ctx, () => next.handle(), transactionMode, this.connection.rawConnection));
37
+ return (0, rxjs_1.of)(this.transactionWrapper.executeInTransaction(ctx, (ctx) => {
38
+ this.registerTransactionalContext(ctx, context.getHandler(), req);
39
+ return next.handle();
40
+ }, transactionMode, this.connection.rawConnection));
38
41
  }
39
42
  else {
40
43
  return next.handle();
41
44
  }
42
45
  }
46
+ /**
47
+ * Registers transactional request context associated with execution handler function
48
+ *
49
+ * @param ctx transactional request context
50
+ * @param handler handler function from ExecutionContext
51
+ * @param req Request object
52
+ */
53
+ registerTransactionalContext(ctx, handler, req) {
54
+ const map = req[constants_1.REQUEST_CONTEXT_MAP_KEY] || new Map();
55
+ map.set(handler, ctx);
56
+ req[constants_1.REQUEST_CONTEXT_MAP_KEY] = map;
57
+ }
43
58
  };
44
59
  TransactionInterceptor = __decorate([
45
60
  (0, common_1.Injectable)(),
@@ -1 +1 @@
1
- {"version":3,"file":"transaction-interceptor.js","sourceRoot":"","sources":["../../../src/api/middleware/transaction-interceptor.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4F;AAC5F,uCAAyC;AACzC,+BAAsC;AAEtC,sDAA6D;AAC7D,8EAA0E;AAC1E,wFAAoF;AACpF,2DAAuD;AACvD,+EAAqG;AAErG;;;;GAIG;AAEH,IAAa,sBAAsB,GAAnC,MAAa,sBAAsB;IAC/B,YACY,UAAmC,EACnC,kBAAsC,EACtC,SAAoB;QAFpB,eAAU,GAAV,UAAU,CAAyB;QACnC,uBAAkB,GAAlB,kBAAkB,CAAoB;QACtC,cAAS,GAAT,SAAS,CAAW;IAC7B,CAAC;IACJ,SAAS,CAAC,OAAyB,EAAE,IAAiB;QAClD,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,IAAA,4BAAY,EAAC,OAAO,CAAC,CAAC;QACjD,MAAM,GAAG,GAAI,GAAW,CAAC,+BAAmB,CAAC,CAAC;QAC9C,IAAI,GAAG,EAAE;YACL,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CACtC,qDAA6B,EAC7B,OAAO,CAAC,UAAU,EAAE,CACvB,CAAC;YACF,OAAO,IAAA,SAAE,EACL,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CACxC,GAAG,EACH,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,EACnB,eAAe,EACf,IAAI,CAAC,UAAU,CAAC,aAAa,CAChC,CACJ,CAAC;SACL;aAAM;YACH,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;SACxB;IACL,CAAC;CACJ,CAAA;AA1BY,sBAAsB;IADlC,IAAA,mBAAU,GAAE;qCAGe,kDAAuB;QACf,wCAAkB;QAC3B,gBAAS;GAJvB,sBAAsB,CA0BlC;AA1BY,wDAAsB"}
1
+ {"version":3,"file":"transaction-interceptor.js","sourceRoot":"","sources":["../../../src/api/middleware/transaction-interceptor.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4F;AAC5F,uCAAyC;AACzC,+BAAsC;AAGtC,sDAAsF;AACtF,8EAA0E;AAC1E,wFAAoF;AACpF,2DAAuD;AACvD,+EAAqG;AAErG;;;;GAIG;AAEH,IAAa,sBAAsB,GAAnC,MAAa,sBAAsB;IAC/B,YACY,UAAmC,EACnC,kBAAsC,EACtC,SAAoB;QAFpB,eAAU,GAAV,UAAU,CAAyB;QACnC,uBAAkB,GAAlB,kBAAkB,CAAoB;QACtC,cAAS,GAAT,SAAS,CAAW;IAC7B,CAAC;IAEJ,SAAS,CAAC,OAAyB,EAAE,IAAiB;QAClD,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,IAAA,4BAAY,EAAC,OAAO,CAAC,CAAC;QACjD,MAAM,GAAG,GAAgC,GAAW,CAAC,+BAAmB,CAAC,CAAC;QAE1E,IAAI,GAAG,EAAE;YACL,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CACtC,qDAA6B,EAC7B,OAAO,CAAC,UAAU,EAAE,CACvB,CAAC;YAEF,OAAO,IAAA,SAAE,EACL,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CACxC,GAAG,EACH,CAAC,GAAG,EAAE,EAAE;gBACJ,IAAI,CAAC,4BAA4B,CAAC,GAAG,EAAE,OAAO,CAAC,UAAU,EAAE,EAAE,GAAG,CAAC,CAAC;gBAElE,OAAO,IAAI,CAAC,MAAM,EAAE,CAAA;YACxB,CAAC,EACD,eAAe,EACf,IAAI,CAAC,UAAU,CAAC,aAAa,CAChC,CACJ,CAAC;SACL;aAAM;YACH,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;SACxB;IACL,CAAC;IAED;;;;;;OAMG;IACH,4BAA4B,CAAC,GAAmB,EAAE,OAAiB,EAAE,GAAQ;QACzE,MAAM,GAAG,GAAkC,GAAG,CAAC,mCAAuB,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC;QACrF,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAEtB,GAAG,CAAC,mCAAuB,CAAC,GAAG,GAAG,CAAC;IACvC,CAAC;CACJ,CAAA;AA/CY,sBAAsB;IADlC,IAAA,mBAAU,GAAE;qCAGe,kDAAuB;QACf,wCAAkB;QAC3B,gBAAS;GAJvB,sBAAsB,CA+ClC;AA/CY,wDAAsB"}
@@ -3,11 +3,12 @@ import { PaginatedList } from '@vendure/common/lib/shared-types';
3
3
  import { Administrator } from '../../../entity/administrator/administrator.entity';
4
4
  import { AdministratorService } from '../../../service/services/administrator.service';
5
5
  import { RequestContext } from '../../common/request-context';
6
+ import { RelationPaths } from '../../decorators/relations.decorator';
6
7
  export declare class AdministratorResolver {
7
8
  private administratorService;
8
9
  constructor(administratorService: AdministratorService);
9
- administrators(ctx: RequestContext, args: QueryAdministratorsArgs): Promise<PaginatedList<Administrator>>;
10
- administrator(ctx: RequestContext, args: QueryAdministratorArgs): Promise<Administrator | undefined>;
10
+ administrators(ctx: RequestContext, args: QueryAdministratorsArgs, relations: RelationPaths<Administrator>): Promise<PaginatedList<Administrator>>;
11
+ administrator(ctx: RequestContext, args: QueryAdministratorArgs, relations: RelationPaths<Administrator>): Promise<Administrator | undefined>;
11
12
  activeAdministrator(ctx: RequestContext): Promise<Administrator | undefined>;
12
13
  createAdministrator(ctx: RequestContext, args: MutationCreateAdministratorArgs): Promise<Administrator>;
13
14
  updateAdministrator(ctx: RequestContext, args: MutationUpdateAdministratorArgs): Promise<Administrator>;
@@ -15,20 +15,22 @@ Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.AdministratorResolver = void 0;
16
16
  const graphql_1 = require("@nestjs/graphql");
17
17
  const generated_types_1 = require("@vendure/common/lib/generated-types");
18
+ const administrator_entity_1 = require("../../../entity/administrator/administrator.entity");
18
19
  const administrator_service_1 = require("../../../service/services/administrator.service");
19
20
  const request_context_1 = require("../../common/request-context");
20
21
  const allow_decorator_1 = require("../../decorators/allow.decorator");
22
+ const relations_decorator_1 = require("../../decorators/relations.decorator");
21
23
  const request_context_decorator_1 = require("../../decorators/request-context.decorator");
22
24
  const transaction_decorator_1 = require("../../decorators/transaction.decorator");
23
25
  let AdministratorResolver = class AdministratorResolver {
24
26
  constructor(administratorService) {
25
27
  this.administratorService = administratorService;
26
28
  }
27
- administrators(ctx, args) {
28
- return this.administratorService.findAll(ctx, args.options || undefined);
29
+ administrators(ctx, args, relations) {
30
+ return this.administratorService.findAll(ctx, args.options || undefined, relations);
29
31
  }
30
- administrator(ctx, args) {
31
- return this.administratorService.findOne(ctx, args.id);
32
+ administrator(ctx, args, relations) {
33
+ return this.administratorService.findOne(ctx, args.id, relations);
32
34
  }
33
35
  async activeAdministrator(ctx) {
34
36
  if (ctx.activeUserId) {
@@ -65,8 +67,9 @@ __decorate([
65
67
  (0, allow_decorator_1.Allow)(generated_types_1.Permission.ReadAdministrator),
66
68
  __param(0, (0, request_context_decorator_1.Ctx)()),
67
69
  __param(1, (0, graphql_1.Args)()),
70
+ __param(2, (0, relations_decorator_1.Relations)(administrator_entity_1.Administrator)),
68
71
  __metadata("design:type", Function),
69
- __metadata("design:paramtypes", [request_context_1.RequestContext, Object]),
72
+ __metadata("design:paramtypes", [request_context_1.RequestContext, Object, Array]),
70
73
  __metadata("design:returntype", Promise)
71
74
  ], AdministratorResolver.prototype, "administrators", null);
72
75
  __decorate([
@@ -74,8 +77,9 @@ __decorate([
74
77
  (0, allow_decorator_1.Allow)(generated_types_1.Permission.ReadAdministrator),
75
78
  __param(0, (0, request_context_decorator_1.Ctx)()),
76
79
  __param(1, (0, graphql_1.Args)()),
80
+ __param(2, (0, relations_decorator_1.Relations)(administrator_entity_1.Administrator)),
77
81
  __metadata("design:type", Function),
78
- __metadata("design:paramtypes", [request_context_1.RequestContext, Object]),
82
+ __metadata("design:paramtypes", [request_context_1.RequestContext, Object, Array]),
79
83
  __metadata("design:returntype", Promise)
80
84
  ], AdministratorResolver.prototype, "administrator", null);
81
85
  __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"administrator.resolver.js","sourceRoot":"","sources":["../../../../src/api/resolvers/admin/administrator.resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"administrator.resolver.js","sourceRoot":"","sources":["../../../../src/api/resolvers/admin/administrator.resolver.ts"],"names":[],"mappings":"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"}
@@ -3,11 +3,12 @@ import { PaginatedList } from '@vendure/common/lib/shared-types';
3
3
  import { Asset } from '../../../entity/asset/asset.entity';
4
4
  import { AssetService } from '../../../service/services/asset.service';
5
5
  import { RequestContext } from '../../common/request-context';
6
+ import { RelationPaths } from '../../decorators/relations.decorator';
6
7
  export declare class AssetResolver {
7
8
  private assetService;
8
9
  constructor(assetService: AssetService);
9
- asset(ctx: RequestContext, args: QueryAssetArgs): Promise<Asset | undefined>;
10
- assets(ctx: RequestContext, args: QueryAssetsArgs): Promise<PaginatedList<Asset>>;
10
+ asset(ctx: RequestContext, args: QueryAssetArgs, relations: RelationPaths<Asset>): Promise<Asset | undefined>;
11
+ assets(ctx: RequestContext, args: QueryAssetsArgs, relations: RelationPaths<Asset>): Promise<PaginatedList<Asset>>;
11
12
  createAssets(ctx: RequestContext, args: MutationCreateAssetsArgs): Promise<CreateAssetResult[]>;
12
13
  updateAsset(ctx: RequestContext, { input }: MutationUpdateAssetArgs): Promise<Asset>;
13
14
  deleteAsset(ctx: RequestContext, { input: { assetId, force, deleteFromAllChannels } }: MutationDeleteAssetArgs): Promise<import("@vendure/common/lib/generated-types").DeletionResponse>;