@unchainedshop/api 2.0.0-beta7 → 2.0.0-beta9

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 (565) hide show
  1. package/jest.config.js +9 -0
  2. package/lib/acl.d.ts +2 -0
  3. package/lib/acl.js +2 -2
  4. package/lib/acl.js.map +1 -1
  5. package/lib/api-index.d.ts +4 -6
  6. package/lib/api-index.js +5 -13
  7. package/lib/api-index.js.map +1 -1
  8. package/lib/context.d.ts +0 -1
  9. package/lib/context.js +0 -12
  10. package/lib/context.js.map +1 -1
  11. package/lib/createGraphQLServer.d.ts +1 -1
  12. package/lib/createGraphQLServer.js +13 -50
  13. package/lib/createGraphQLServer.js.map +1 -1
  14. package/lib/errors.d.ts +20 -0
  15. package/lib/errors.js +20 -0
  16. package/lib/errors.js.map +1 -1
  17. package/lib/express/createApolloMiddleware.d.ts +4 -0
  18. package/lib/express/createApolloMiddleware.js +34 -0
  19. package/lib/express/createApolloMiddleware.js.map +1 -0
  20. package/lib/express/createBulkImportMiddleware.d.ts +2 -0
  21. package/lib/express/createBulkImportMiddleware.js +79 -0
  22. package/lib/express/createBulkImportMiddleware.js.map +1 -0
  23. package/lib/express/createERCMetadataMiddleware.d.ts +3 -0
  24. package/lib/express/createERCMetadataMiddleware.js +57 -0
  25. package/lib/express/createERCMetadataMiddleware.js.map +1 -0
  26. package/lib/express/createSingleSignOnMiddleware.d.ts +6 -0
  27. package/lib/express/createSingleSignOnMiddleware.js +71 -0
  28. package/lib/express/createSingleSignOnMiddleware.js.map +1 -0
  29. package/lib/express/index.d.ts +6 -0
  30. package/lib/express/index.js +27 -0
  31. package/lib/express/index.js.map +1 -0
  32. package/lib/loaders/index.js +5 -9
  33. package/lib/loaders/index.js.map +1 -1
  34. package/lib/resolvers/mutations/accounts/changePassword.d.ts +0 -2
  35. package/lib/resolvers/mutations/accounts/changePassword.js +14 -3
  36. package/lib/resolvers/mutations/accounts/changePassword.js.map +1 -1
  37. package/lib/resolvers/mutations/accounts/createUser.js +19 -5
  38. package/lib/resolvers/mutations/accounts/createUser.js.map +1 -1
  39. package/lib/resolvers/mutations/accounts/disableTOTP.js +15 -2
  40. package/lib/resolvers/mutations/accounts/disableTOTP.js.map +1 -1
  41. package/lib/resolvers/mutations/accounts/enableTOTP.js +12 -1
  42. package/lib/resolvers/mutations/accounts/enableTOTP.js.map +1 -1
  43. package/lib/resolvers/mutations/accounts/enrollUser.js +18 -5
  44. package/lib/resolvers/mutations/accounts/enrollUser.js.map +1 -1
  45. package/lib/resolvers/mutations/accounts/forgotPassword.js +11 -1
  46. package/lib/resolvers/mutations/accounts/forgotPassword.js.map +1 -1
  47. package/lib/resolvers/mutations/accounts/impersonate.js +1 -1
  48. package/lib/resolvers/mutations/accounts/impersonate.js.map +1 -1
  49. package/lib/resolvers/mutations/accounts/loginWithPassword.d.ts +0 -1
  50. package/lib/resolvers/mutations/accounts/loginWithPassword.js +22 -4
  51. package/lib/resolvers/mutations/accounts/loginWithPassword.js.map +1 -1
  52. package/lib/resolvers/mutations/accounts/loginWithWebAuthn.js +13 -1
  53. package/lib/resolvers/mutations/accounts/loginWithWebAuthn.js.map +1 -1
  54. package/lib/resolvers/mutations/accounts/logout.d.ts +1 -1
  55. package/lib/resolvers/mutations/accounts/logout.js +6 -2
  56. package/lib/resolvers/mutations/accounts/logout.js.map +1 -1
  57. package/lib/resolvers/mutations/accounts/logoutAllSessions.js +4 -1
  58. package/lib/resolvers/mutations/accounts/logoutAllSessions.js.map +1 -1
  59. package/lib/resolvers/mutations/accounts/resetPassword.d.ts +0 -1
  60. package/lib/resolvers/mutations/accounts/resetPassword.js +18 -3
  61. package/lib/resolvers/mutations/accounts/resetPassword.js.map +1 -1
  62. package/lib/resolvers/mutations/accounts/setPassword.d.ts +0 -1
  63. package/lib/resolvers/mutations/accounts/setPassword.js +1 -1
  64. package/lib/resolvers/mutations/accounts/setPassword.js.map +1 -1
  65. package/lib/resolvers/mutations/assortments/addAssortmentFilter.js +1 -2
  66. package/lib/resolvers/mutations/assortments/addAssortmentFilter.js.map +1 -1
  67. package/lib/resolvers/mutations/assortments/addAssortmentLink.js +16 -9
  68. package/lib/resolvers/mutations/assortments/addAssortmentLink.js.map +1 -1
  69. package/lib/resolvers/mutations/assortments/addAssortmentMedia.js +2 -3
  70. package/lib/resolvers/mutations/assortments/addAssortmentMedia.js.map +1 -1
  71. package/lib/resolvers/mutations/assortments/addAssortmentProduct.js +1 -2
  72. package/lib/resolvers/mutations/assortments/addAssortmentProduct.js.map +1 -1
  73. package/lib/resolvers/mutations/assortments/createAssortment.js +1 -2
  74. package/lib/resolvers/mutations/assortments/createAssortment.js.map +1 -1
  75. package/lib/resolvers/mutations/assortments/prepareAssortmentMediaUpload.js +0 -1
  76. package/lib/resolvers/mutations/assortments/prepareAssortmentMediaUpload.js.map +1 -1
  77. package/lib/resolvers/mutations/assortments/removeAssortment.js +1 -1
  78. package/lib/resolvers/mutations/assortments/removeAssortment.js.map +1 -1
  79. package/lib/resolvers/mutations/assortments/removeAssortmentFilter.js +1 -1
  80. package/lib/resolvers/mutations/assortments/removeAssortmentFilter.js.map +1 -1
  81. package/lib/resolvers/mutations/assortments/removeAssortmentLink.js +1 -1
  82. package/lib/resolvers/mutations/assortments/removeAssortmentLink.js.map +1 -1
  83. package/lib/resolvers/mutations/assortments/removeAssortmentMedia.js +2 -2
  84. package/lib/resolvers/mutations/assortments/removeAssortmentMedia.js.map +1 -1
  85. package/lib/resolvers/mutations/assortments/removeAssortmentProduct.js +1 -1
  86. package/lib/resolvers/mutations/assortments/removeAssortmentProduct.js.map +1 -1
  87. package/lib/resolvers/mutations/assortments/reorderAssortmentFilters.js +1 -1
  88. package/lib/resolvers/mutations/assortments/reorderAssortmentFilters.js.map +1 -1
  89. package/lib/resolvers/mutations/assortments/reorderAssortmentLinks.js +1 -1
  90. package/lib/resolvers/mutations/assortments/reorderAssortmentLinks.js.map +1 -1
  91. package/lib/resolvers/mutations/assortments/reorderAssortmentMedia.js +1 -1
  92. package/lib/resolvers/mutations/assortments/reorderAssortmentMedia.js.map +1 -1
  93. package/lib/resolvers/mutations/assortments/reorderAssortmentProducts.js +1 -1
  94. package/lib/resolvers/mutations/assortments/reorderAssortmentProducts.js.map +1 -1
  95. package/lib/resolvers/mutations/assortments/setBaseAssortment.js +1 -1
  96. package/lib/resolvers/mutations/assortments/setBaseAssortment.js.map +1 -1
  97. package/lib/resolvers/mutations/assortments/updateAssortment.js +1 -1
  98. package/lib/resolvers/mutations/assortments/updateAssortment.js.map +1 -1
  99. package/lib/resolvers/mutations/assortments/updateAssortmentMediaTexts.js +1 -1
  100. package/lib/resolvers/mutations/assortments/updateAssortmentMediaTexts.js.map +1 -1
  101. package/lib/resolvers/mutations/assortments/updateAssortmentTexts.js +1 -1
  102. package/lib/resolvers/mutations/assortments/updateAssortmentTexts.js.map +1 -1
  103. package/lib/resolvers/mutations/bookmarks/bookmark.js +2 -2
  104. package/lib/resolvers/mutations/bookmarks/bookmark.js.map +1 -1
  105. package/lib/resolvers/mutations/bookmarks/createBookmark.js +1 -1
  106. package/lib/resolvers/mutations/bookmarks/createBookmark.js.map +1 -1
  107. package/lib/resolvers/mutations/countries/createCountry.js +1 -2
  108. package/lib/resolvers/mutations/countries/createCountry.js.map +1 -1
  109. package/lib/resolvers/mutations/countries/removeCountry.js +1 -1
  110. package/lib/resolvers/mutations/countries/removeCountry.js.map +1 -1
  111. package/lib/resolvers/mutations/countries/updateCountry.js +1 -1
  112. package/lib/resolvers/mutations/countries/updateCountry.js.map +1 -1
  113. package/lib/resolvers/mutations/currencies/createCurrency.js +1 -2
  114. package/lib/resolvers/mutations/currencies/createCurrency.js.map +1 -1
  115. package/lib/resolvers/mutations/currencies/removeCurrency.js +1 -1
  116. package/lib/resolvers/mutations/currencies/removeCurrency.js.map +1 -1
  117. package/lib/resolvers/mutations/currencies/updateCurrency.js +1 -1
  118. package/lib/resolvers/mutations/currencies/updateCurrency.js.map +1 -1
  119. package/lib/resolvers/mutations/delivery/createDeliveryProvider.js +1 -2
  120. package/lib/resolvers/mutations/delivery/createDeliveryProvider.js.map +1 -1
  121. package/lib/resolvers/mutations/delivery/removeDeliveryProvider.js +1 -1
  122. package/lib/resolvers/mutations/delivery/removeDeliveryProvider.js.map +1 -1
  123. package/lib/resolvers/mutations/delivery/updateDeliveryProvider.js +1 -1
  124. package/lib/resolvers/mutations/delivery/updateDeliveryProvider.js.map +1 -1
  125. package/lib/resolvers/mutations/enrollments/activateEnrollment.js +1 -1
  126. package/lib/resolvers/mutations/enrollments/activateEnrollment.js.map +1 -1
  127. package/lib/resolvers/mutations/enrollments/terminateEnrollment.js +1 -1
  128. package/lib/resolvers/mutations/enrollments/terminateEnrollment.js.map +1 -1
  129. package/lib/resolvers/mutations/enrollments/updateEnrollment.d.ts +1 -1
  130. package/lib/resolvers/mutations/enrollments/updateEnrollment.js +5 -5
  131. package/lib/resolvers/mutations/enrollments/updateEnrollment.js.map +1 -1
  132. package/lib/resolvers/mutations/filters/createFilter.js +1 -2
  133. package/lib/resolvers/mutations/filters/createFilter.js.map +1 -1
  134. package/lib/resolvers/mutations/filters/createFilterOption.js +1 -1
  135. package/lib/resolvers/mutations/filters/createFilterOption.js.map +1 -1
  136. package/lib/resolvers/mutations/filters/removeFilter.d.ts +1 -1
  137. package/lib/resolvers/mutations/filters/removeFilter.js +4 -4
  138. package/lib/resolvers/mutations/filters/removeFilter.js.map +1 -1
  139. package/lib/resolvers/mutations/filters/updateFilter.js +1 -1
  140. package/lib/resolvers/mutations/filters/updateFilter.js.map +1 -1
  141. package/lib/resolvers/mutations/filters/updateFilterTexts.js +1 -1
  142. package/lib/resolvers/mutations/filters/updateFilterTexts.js.map +1 -1
  143. package/lib/resolvers/mutations/index.d.ts +2 -1
  144. package/lib/resolvers/mutations/index.js +2 -0
  145. package/lib/resolvers/mutations/index.js.map +1 -1
  146. package/lib/resolvers/mutations/languages/createLanguage.js +1 -2
  147. package/lib/resolvers/mutations/languages/createLanguage.js.map +1 -1
  148. package/lib/resolvers/mutations/languages/removeLanguage.js +1 -1
  149. package/lib/resolvers/mutations/languages/removeLanguage.js.map +1 -1
  150. package/lib/resolvers/mutations/languages/updateLanguage.js +1 -1
  151. package/lib/resolvers/mutations/languages/updateLanguage.js.map +1 -1
  152. package/lib/resolvers/mutations/orders/createCart.js +1 -1
  153. package/lib/resolvers/mutations/orders/createCart.js.map +1 -1
  154. package/lib/resolvers/mutations/orders/payOrder.js +1 -1
  155. package/lib/resolvers/mutations/orders/payOrder.js.map +1 -1
  156. package/lib/resolvers/mutations/orders/removeOrder.js +1 -1
  157. package/lib/resolvers/mutations/orders/removeOrder.js.map +1 -1
  158. package/lib/resolvers/mutations/pageView.d.ts +1 -1
  159. package/lib/resolvers/mutations/pageView.js +2 -2
  160. package/lib/resolvers/mutations/pageView.js.map +1 -1
  161. package/lib/resolvers/mutations/payment/createPaymentProvider.js +1 -2
  162. package/lib/resolvers/mutations/payment/createPaymentProvider.js.map +1 -1
  163. package/lib/resolvers/mutations/payment/registerPaymentCredentials.js +2 -2
  164. package/lib/resolvers/mutations/payment/registerPaymentCredentials.js.map +1 -1
  165. package/lib/resolvers/mutations/payment/removePaymentProvider.js +1 -1
  166. package/lib/resolvers/mutations/payment/removePaymentProvider.js.map +1 -1
  167. package/lib/resolvers/mutations/payment/updatePaymentProvider.js +1 -1
  168. package/lib/resolvers/mutations/payment/updatePaymentProvider.js.map +1 -1
  169. package/lib/resolvers/mutations/products/addProductAssignment.js +1 -1
  170. package/lib/resolvers/mutations/products/addProductAssignment.js.map +1 -1
  171. package/lib/resolvers/mutations/products/addProductMedia.js +1 -2
  172. package/lib/resolvers/mutations/products/addProductMedia.js.map +1 -1
  173. package/lib/resolvers/mutations/products/addProductReviewVote.js +1 -1
  174. package/lib/resolvers/mutations/products/addProductReviewVote.js.map +1 -1
  175. package/lib/resolvers/mutations/products/createProduct.js +1 -2
  176. package/lib/resolvers/mutations/products/createProduct.js.map +1 -1
  177. package/lib/resolvers/mutations/products/createProductBundleItem.js +1 -1
  178. package/lib/resolvers/mutations/products/createProductBundleItem.js.map +1 -1
  179. package/lib/resolvers/mutations/products/createProductReview.js +1 -1
  180. package/lib/resolvers/mutations/products/createProductReview.js.map +1 -1
  181. package/lib/resolvers/mutations/products/createProductVariation.js +1 -2
  182. package/lib/resolvers/mutations/products/createProductVariation.js.map +1 -1
  183. package/lib/resolvers/mutations/products/createProductVariationOption.js +4 -1
  184. package/lib/resolvers/mutations/products/createProductVariationOption.js.map +1 -1
  185. package/lib/resolvers/mutations/products/prepareProductMediaUpload.js +0 -1
  186. package/lib/resolvers/mutations/products/prepareProductMediaUpload.js.map +1 -1
  187. package/lib/resolvers/mutations/products/publishProduct.js +1 -1
  188. package/lib/resolvers/mutations/products/publishProduct.js.map +1 -1
  189. package/lib/resolvers/mutations/products/removeBundleItem.js +2 -2
  190. package/lib/resolvers/mutations/products/removeBundleItem.js.map +1 -1
  191. package/lib/resolvers/mutations/products/removeProduct.d.ts +1 -1
  192. package/lib/resolvers/mutations/products/removeProduct.js +17 -8
  193. package/lib/resolvers/mutations/products/removeProduct.js.map +1 -1
  194. package/lib/resolvers/mutations/products/removeProductAssignment.js +1 -1
  195. package/lib/resolvers/mutations/products/removeProductAssignment.js.map +1 -1
  196. package/lib/resolvers/mutations/products/removeProductMedia.js +2 -2
  197. package/lib/resolvers/mutations/products/removeProductMedia.js.map +1 -1
  198. package/lib/resolvers/mutations/products/removeProductReview.js +1 -1
  199. package/lib/resolvers/mutations/products/removeProductReview.js.map +1 -1
  200. package/lib/resolvers/mutations/products/removeProductReviewVote.js +1 -1
  201. package/lib/resolvers/mutations/products/removeProductReviewVote.js.map +1 -1
  202. package/lib/resolvers/mutations/products/removeProductVariation.js +1 -1
  203. package/lib/resolvers/mutations/products/removeProductVariation.js.map +1 -1
  204. package/lib/resolvers/mutations/products/removeProductVariationOption.js +1 -1
  205. package/lib/resolvers/mutations/products/removeProductVariationOption.js.map +1 -1
  206. package/lib/resolvers/mutations/products/reorderProductMedia.js +1 -1
  207. package/lib/resolvers/mutations/products/reorderProductMedia.js.map +1 -1
  208. package/lib/resolvers/mutations/products/unpublishProduct.js +1 -1
  209. package/lib/resolvers/mutations/products/unpublishProduct.js.map +1 -1
  210. package/lib/resolvers/mutations/products/updateProduct.js +1 -1
  211. package/lib/resolvers/mutations/products/updateProduct.js.map +1 -1
  212. package/lib/resolvers/mutations/products/updateProductCommerce.js +1 -1
  213. package/lib/resolvers/mutations/products/updateProductCommerce.js.map +1 -1
  214. package/lib/resolvers/mutations/products/updateProductMediaTexts.js +1 -1
  215. package/lib/resolvers/mutations/products/updateProductMediaTexts.js.map +1 -1
  216. package/lib/resolvers/mutations/products/updateProductPlan.js +1 -1
  217. package/lib/resolvers/mutations/products/updateProductPlan.js.map +1 -1
  218. package/lib/resolvers/mutations/products/updateProductReview.js +1 -1
  219. package/lib/resolvers/mutations/products/updateProductReview.js.map +1 -1
  220. package/lib/resolvers/mutations/products/updateProductSupply.js +1 -1
  221. package/lib/resolvers/mutations/products/updateProductSupply.js.map +1 -1
  222. package/lib/resolvers/mutations/products/updateProductTexts.js +1 -1
  223. package/lib/resolvers/mutations/products/updateProductTexts.js.map +1 -1
  224. package/lib/resolvers/mutations/products/updateProductTokenization.js +1 -1
  225. package/lib/resolvers/mutations/products/updateProductTokenization.js.map +1 -1
  226. package/lib/resolvers/mutations/products/updateProductVariationTexts.js +1 -1
  227. package/lib/resolvers/mutations/products/updateProductVariationTexts.js.map +1 -1
  228. package/lib/resolvers/mutations/products/updateProductWarehousing.js +1 -1
  229. package/lib/resolvers/mutations/products/updateProductWarehousing.js.map +1 -1
  230. package/lib/resolvers/mutations/users/prepareUserAvatarUpload.js +0 -1
  231. package/lib/resolvers/mutations/users/prepareUserAvatarUpload.js.map +1 -1
  232. package/lib/resolvers/mutations/users/removeUser.d.ts +4 -0
  233. package/lib/resolvers/mutations/users/removeUser.js +11 -0
  234. package/lib/resolvers/mutations/users/removeUser.js.map +1 -0
  235. package/lib/resolvers/mutations/users/setRoles.js +1 -1
  236. package/lib/resolvers/mutations/users/setRoles.js.map +1 -1
  237. package/lib/resolvers/mutations/users/setUserTags.js +1 -1
  238. package/lib/resolvers/mutations/users/setUserTags.js.map +1 -1
  239. package/lib/resolvers/mutations/users/updateUserAvatar.js +1 -2
  240. package/lib/resolvers/mutations/users/updateUserAvatar.js.map +1 -1
  241. package/lib/resolvers/mutations/users/updateUserProfile.js +1 -1
  242. package/lib/resolvers/mutations/users/updateUserProfile.js.map +1 -1
  243. package/lib/resolvers/mutations/utils/getOrderCart.js +1 -1
  244. package/lib/resolvers/mutations/utils/getOrderCart.js.map +1 -1
  245. package/lib/resolvers/mutations/warehousing/createWarehousingProvider.js +1 -2
  246. package/lib/resolvers/mutations/warehousing/createWarehousingProvider.js.map +1 -1
  247. package/lib/resolvers/mutations/warehousing/removeWarehousingProvider.js +1 -1
  248. package/lib/resolvers/mutations/warehousing/removeWarehousingProvider.js.map +1 -1
  249. package/lib/resolvers/mutations/warehousing/updateWarehousingProvider.js +1 -1
  250. package/lib/resolvers/mutations/warehousing/updateWarehousingProvider.js.map +1 -1
  251. package/lib/resolvers/mutations/worker/addWork.js +1 -1
  252. package/lib/resolvers/mutations/worker/addWork.js.map +1 -1
  253. package/lib/resolvers/mutations/worker/finishWork.js +1 -1
  254. package/lib/resolvers/mutations/worker/finishWork.js.map +1 -1
  255. package/lib/resolvers/mutations/worker/removeWork.js +1 -1
  256. package/lib/resolvers/mutations/worker/removeWork.js.map +1 -1
  257. package/lib/resolvers/queries/products/productCatalogPrices.js +0 -1
  258. package/lib/resolvers/queries/products/productCatalogPrices.js.map +1 -1
  259. package/lib/resolvers/queries/users/users.d.ts +2 -1
  260. package/lib/resolvers/queries/users/users.js.map +1 -1
  261. package/lib/resolvers/queries/worker/workQueue.d.ts +1 -1
  262. package/lib/resolvers/queries/worker/workQueue.js +1 -1
  263. package/lib/resolvers/queries/worker/workQueue.js.map +1 -1
  264. package/lib/resolvers/type/assortment/assortment-filter-types.d.ts +2 -2
  265. package/lib/resolvers/type/assortment/assortment-filter-types.js +0 -1
  266. package/lib/resolvers/type/assortment/assortment-filter-types.js.map +1 -1
  267. package/lib/resolvers/type/assortment/assortment-link-types.d.ts +2 -2
  268. package/lib/resolvers/type/assortment/assortment-link-types.js +0 -2
  269. package/lib/resolvers/type/assortment/assortment-link-types.js.map +1 -1
  270. package/lib/resolvers/type/assortment/assortment-media-types.d.ts +1 -1
  271. package/lib/resolvers/type/assortment/assortment-media-types.js +2 -0
  272. package/lib/resolvers/type/assortment/assortment-media-types.js.map +1 -1
  273. package/lib/resolvers/type/assortment/assortment-path-link-types.d.ts +1 -4
  274. package/lib/resolvers/type/assortment/assortment-path-link-types.js +1 -7
  275. package/lib/resolvers/type/assortment/assortment-path-link-types.js.map +1 -1
  276. package/lib/resolvers/type/assortment/assortment-product-types.d.ts +2 -2
  277. package/lib/resolvers/type/assortment/assortment-product-types.js +0 -2
  278. package/lib/resolvers/type/assortment/assortment-product-types.js.map +1 -1
  279. package/lib/resolvers/type/assortment/assortment-types.d.ts +1 -1
  280. package/lib/resolvers/type/assortment/assortment-types.js +8 -4
  281. package/lib/resolvers/type/assortment/assortment-types.js.map +1 -1
  282. package/lib/resolvers/type/bookmark-types.d.ts +1 -1
  283. package/lib/resolvers/type/bookmark-types.js +0 -1
  284. package/lib/resolvers/type/bookmark-types.js.map +1 -1
  285. package/lib/resolvers/type/country-types.d.ts +1 -1
  286. package/lib/resolvers/type/delivery-provider-types.d.ts +1 -1
  287. package/lib/resolvers/type/enrollment/enrollment-delivery-types.d.ts +2 -2
  288. package/lib/resolvers/type/enrollment/enrollment-payment-types.d.ts +2 -2
  289. package/lib/resolvers/type/enrollment/enrollment-period-types.d.ts +2 -2
  290. package/lib/resolvers/type/enrollment/enrollment-plan-tyes.d.ts +2 -2
  291. package/lib/resolvers/type/enrollment/enrollment-plan-tyes.js +0 -1
  292. package/lib/resolvers/type/enrollment/enrollment-plan-tyes.js.map +1 -1
  293. package/lib/resolvers/type/enrollment/enrollment-types.d.ts +2 -2
  294. package/lib/resolvers/type/event-types.d.ts +1 -1
  295. package/lib/resolvers/type/filter/filter-option-types.d.ts +2 -2
  296. package/lib/resolvers/type/filter/filter-types.d.ts +2 -2
  297. package/lib/resolvers/type/index.d.ts +1 -0
  298. package/lib/resolvers/type/login-method-response-types.d.ts +1 -0
  299. package/lib/resolvers/type/order/order-delivery-discount-types.d.ts +1 -1
  300. package/lib/resolvers/type/order/order-delivery-pickup-types.d.ts +1 -1
  301. package/lib/resolvers/type/order/order-delivery-shipping-types.d.ts +1 -1
  302. package/lib/resolvers/type/order/order-discount-types.d.ts +1 -1
  303. package/lib/resolvers/type/order/order-global-discount-types.d.ts +1 -1
  304. package/lib/resolvers/type/order/order-item-discount-types.d.ts +1 -1
  305. package/lib/resolvers/type/order/order-item-types.d.ts +1 -1
  306. package/lib/resolvers/type/order/order-item-types.js +0 -3
  307. package/lib/resolvers/type/order/order-item-types.js.map +1 -1
  308. package/lib/resolvers/type/order/order-payment-card-types.d.ts +1 -1
  309. package/lib/resolvers/type/order/order-payment-discount-types.d.ts +1 -1
  310. package/lib/resolvers/type/order/order-payment-generic-types.d.ts +1 -1
  311. package/lib/resolvers/type/order/order-payment-invoice-types.d.ts +1 -1
  312. package/lib/resolvers/type/order/order-types.d.ts +1 -1
  313. package/lib/resolvers/type/price-types.d.ts +1 -1
  314. package/lib/resolvers/type/product/product-assortment-path-types.js +1 -0
  315. package/lib/resolvers/type/product/product-assortment-path-types.js.map +1 -1
  316. package/lib/resolvers/type/product/product-bundle-item-types.js +0 -1
  317. package/lib/resolvers/type/product/product-bundle-item-types.js.map +1 -1
  318. package/lib/resolvers/type/product/product-configurable-types.js +1 -0
  319. package/lib/resolvers/type/product/product-configurable-types.js.map +1 -1
  320. package/lib/resolvers/type/product/product-discount.d.ts +1 -1
  321. package/lib/resolvers/type/product/product-media-types.js +2 -0
  322. package/lib/resolvers/type/product/product-media-types.js.map +1 -1
  323. package/lib/resolvers/type/product/product-plan-types.js +1 -12
  324. package/lib/resolvers/type/product/product-plan-types.js.map +1 -1
  325. package/lib/resolvers/type/product/product-review-types.d.ts +1 -1
  326. package/lib/resolvers/type/product/product-review-types.js +0 -1
  327. package/lib/resolvers/type/product/product-review-types.js.map +1 -1
  328. package/lib/resolvers/type/product/product-variation-assignment-types.js +0 -1
  329. package/lib/resolvers/type/product/product-variation-assignment-types.js.map +1 -1
  330. package/lib/resolvers/type/quotation-types.d.ts +2 -2
  331. package/lib/resolvers/type/quotation-types.js +0 -1
  332. package/lib/resolvers/type/quotation-types.js.map +1 -1
  333. package/lib/resolvers/type/shop-types.d.ts +1 -1
  334. package/lib/resolvers/type/token-types.d.ts +1 -1
  335. package/lib/resolvers/type/token-types.js +2 -1
  336. package/lib/resolvers/type/token-types.js.map +1 -1
  337. package/lib/resolvers/type/user-types.d.ts +4 -3
  338. package/lib/resolvers/type/user-types.js +10 -21
  339. package/lib/resolvers/type/user-types.js.map +1 -1
  340. package/lib/resolvers/type/webauthn-credentials-types.d.ts +1 -1
  341. package/lib/resolvers/type/work-types.d.ts +1 -1
  342. package/lib/roles/admin.js +3 -72
  343. package/lib/roles/admin.js.map +1 -1
  344. package/lib/schema/{types/log.d.ts → directives.d.ts} +0 -0
  345. package/lib/schema/directives.js +15 -0
  346. package/lib/schema/directives.js.map +1 -0
  347. package/lib/schema/index.js +2 -1
  348. package/lib/schema/index.js.map +1 -1
  349. package/lib/schema/inputTypes.js +0 -15
  350. package/lib/schema/inputTypes.js.map +1 -1
  351. package/lib/schema/mutation.js +22 -36
  352. package/lib/schema/mutation.js.map +1 -1
  353. package/lib/schema/query.js +42 -22
  354. package/lib/schema/query.js.map +1 -1
  355. package/lib/schema/types/assortment.js +10 -10
  356. package/lib/schema/types/color.js +1 -1
  357. package/lib/schema/types/country.js +1 -1
  358. package/lib/schema/types/currency.js +1 -1
  359. package/lib/schema/types/delivery.js +3 -2
  360. package/lib/schema/types/delivery.js.map +1 -1
  361. package/lib/schema/types/dimensions.js +1 -1
  362. package/lib/schema/types/discount.js +1 -1
  363. package/lib/schema/types/filter.js +5 -8
  364. package/lib/schema/types/filter.js.map +1 -1
  365. package/lib/schema/types/geo-position.js +1 -1
  366. package/lib/schema/types/language.js +1 -1
  367. package/lib/schema/types/media.js +1 -1
  368. package/lib/schema/types/payment.js +3 -3
  369. package/lib/schema/types/price.js +2 -2
  370. package/lib/schema/types/product/bundle-product.js +2 -3
  371. package/lib/schema/types/product/bundle-product.js.map +1 -1
  372. package/lib/schema/types/product/configurable-product.js +7 -7
  373. package/lib/schema/types/product/plan-product.js +3 -3
  374. package/lib/schema/types/product/product.js +11 -11
  375. package/lib/schema/types/product/simple-product.js +4 -4
  376. package/lib/schema/types/product/tokenized-product.js +3 -3
  377. package/lib/schema/types/search.js +3 -8
  378. package/lib/schema/types/search.js.map +1 -1
  379. package/lib/schema/types/shop.js +2 -2
  380. package/lib/schema/types/types.js +1 -1
  381. package/lib/schema/types/user.js +4 -3
  382. package/lib/schema/types/user.js.map +1 -1
  383. package/lib/schema/types/warehousing.js +3 -3
  384. package/package.json +26 -12
  385. package/src/acl.ts +2 -2
  386. package/src/api-index.ts +6 -27
  387. package/src/context.ts +0 -18
  388. package/src/createGraphQLServer.ts +14 -68
  389. package/src/errors.ts +85 -0
  390. package/src/express/createApolloMiddleware.ts +40 -0
  391. package/src/express/createBulkImportMiddleware.ts +87 -0
  392. package/src/express/createERCMetadataMiddleware.ts +73 -0
  393. package/src/express/createSingleSignOnMiddleware.ts +84 -0
  394. package/src/express/index.ts +48 -0
  395. package/src/loaders/index.ts +27 -35
  396. package/src/resolvers/mutations/accounts/changePassword.ts +11 -6
  397. package/src/resolvers/mutations/accounts/createUser.ts +21 -6
  398. package/src/resolvers/mutations/accounts/disableTOTP.ts +13 -3
  399. package/src/resolvers/mutations/accounts/enableTOTP.ts +9 -2
  400. package/src/resolvers/mutations/accounts/enrollUser.ts +20 -5
  401. package/src/resolvers/mutations/accounts/forgotPassword.ts +8 -1
  402. package/src/resolvers/mutations/accounts/impersonate.ts +1 -1
  403. package/src/resolvers/mutations/accounts/loginWithPassword.ts +27 -5
  404. package/src/resolvers/mutations/accounts/loginWithWebAuthn.ts +13 -2
  405. package/src/resolvers/mutations/accounts/logout.ts +9 -2
  406. package/src/resolvers/mutations/accounts/logoutAllSessions.ts +7 -1
  407. package/src/resolvers/mutations/accounts/resetPassword.ts +21 -5
  408. package/src/resolvers/mutations/accounts/setPassword.ts +2 -2
  409. package/src/resolvers/mutations/assortments/addAssortmentFilter.ts +5 -9
  410. package/src/resolvers/mutations/assortments/addAssortmentLink.ts +22 -14
  411. package/src/resolvers/mutations/assortments/addAssortmentMedia.ts +2 -6
  412. package/src/resolvers/mutations/assortments/addAssortmentProduct.ts +0 -2
  413. package/src/resolvers/mutations/assortments/createAssortment.ts +4 -8
  414. package/src/resolvers/mutations/assortments/prepareAssortmentMediaUpload.ts +0 -1
  415. package/src/resolvers/mutations/assortments/removeAssortment.ts +1 -1
  416. package/src/resolvers/mutations/assortments/removeAssortmentFilter.ts +1 -1
  417. package/src/resolvers/mutations/assortments/removeAssortmentLink.ts +1 -1
  418. package/src/resolvers/mutations/assortments/removeAssortmentMedia.ts +2 -2
  419. package/src/resolvers/mutations/assortments/removeAssortmentProduct.ts +1 -1
  420. package/src/resolvers/mutations/assortments/reorderAssortmentFilters.ts +3 -6
  421. package/src/resolvers/mutations/assortments/reorderAssortmentLinks.ts +0 -1
  422. package/src/resolvers/mutations/assortments/reorderAssortmentMedia.ts +3 -6
  423. package/src/resolvers/mutations/assortments/reorderAssortmentProducts.ts +0 -1
  424. package/src/resolvers/mutations/assortments/setBaseAssortment.ts +1 -1
  425. package/src/resolvers/mutations/assortments/updateAssortment.ts +1 -1
  426. package/src/resolvers/mutations/assortments/updateAssortmentMediaTexts.ts +1 -1
  427. package/src/resolvers/mutations/assortments/updateAssortmentTexts.ts +1 -1
  428. package/src/resolvers/mutations/bookmarks/bookmark.ts +4 -7
  429. package/src/resolvers/mutations/bookmarks/createBookmark.ts +4 -7
  430. package/src/resolvers/mutations/countries/createCountry.ts +3 -7
  431. package/src/resolvers/mutations/countries/removeCountry.ts +1 -1
  432. package/src/resolvers/mutations/countries/updateCountry.ts +1 -1
  433. package/src/resolvers/mutations/currencies/createCurrency.ts +3 -7
  434. package/src/resolvers/mutations/currencies/removeCurrency.ts +1 -1
  435. package/src/resolvers/mutations/currencies/updateCurrency.ts +1 -1
  436. package/src/resolvers/mutations/delivery/createDeliveryProvider.ts +3 -7
  437. package/src/resolvers/mutations/delivery/removeDeliveryProvider.ts +1 -1
  438. package/src/resolvers/mutations/delivery/updateDeliveryProvider.ts +1 -1
  439. package/src/resolvers/mutations/enrollments/activateEnrollment.ts +1 -1
  440. package/src/resolvers/mutations/enrollments/terminateEnrollment.ts +1 -1
  441. package/src/resolvers/mutations/enrollments/updateEnrollment.ts +5 -5
  442. package/src/resolvers/mutations/filters/createFilter.ts +0 -2
  443. package/src/resolvers/mutations/filters/createFilterOption.ts +5 -1
  444. package/src/resolvers/mutations/filters/removeFilter.ts +4 -4
  445. package/src/resolvers/mutations/filters/updateFilter.ts +1 -1
  446. package/src/resolvers/mutations/filters/updateFilterTexts.ts +1 -1
  447. package/src/resolvers/mutations/index.ts +2 -0
  448. package/src/resolvers/mutations/languages/createLanguage.ts +3 -7
  449. package/src/resolvers/mutations/languages/removeLanguage.ts +1 -1
  450. package/src/resolvers/mutations/languages/updateLanguage.ts +1 -1
  451. package/src/resolvers/mutations/orders/createCart.ts +4 -1
  452. package/src/resolvers/mutations/orders/payOrder.ts +1 -1
  453. package/src/resolvers/mutations/orders/removeOrder.ts +1 -1
  454. package/src/resolvers/mutations/pageView.ts +2 -2
  455. package/src/resolvers/mutations/payment/createPaymentProvider.ts +3 -7
  456. package/src/resolvers/mutations/payment/registerPaymentCredentials.ts +6 -2
  457. package/src/resolvers/mutations/payment/removePaymentProvider.ts +1 -1
  458. package/src/resolvers/mutations/payment/updatePaymentProvider.ts +1 -1
  459. package/src/resolvers/mutations/products/addProductAssignment.ts +4 -8
  460. package/src/resolvers/mutations/products/addProductMedia.ts +1 -2
  461. package/src/resolvers/mutations/products/addProductReviewVote.ts +1 -1
  462. package/src/resolvers/mutations/products/createProduct.ts +4 -8
  463. package/src/resolvers/mutations/products/createProductBundleItem.ts +1 -1
  464. package/src/resolvers/mutations/products/createProductReview.ts +5 -8
  465. package/src/resolvers/mutations/products/createProductVariation.ts +6 -10
  466. package/src/resolvers/mutations/products/createProductVariationOption.ts +4 -5
  467. package/src/resolvers/mutations/products/prepareProductMediaUpload.ts +0 -1
  468. package/src/resolvers/mutations/products/publishProduct.ts +1 -1
  469. package/src/resolvers/mutations/products/removeBundleItem.ts +2 -2
  470. package/src/resolvers/mutations/products/removeProduct.ts +26 -7
  471. package/src/resolvers/mutations/products/removeProductAssignment.ts +1 -1
  472. package/src/resolvers/mutations/products/removeProductMedia.ts +2 -2
  473. package/src/resolvers/mutations/products/removeProductReview.ts +1 -1
  474. package/src/resolvers/mutations/products/removeProductReviewVote.ts +1 -1
  475. package/src/resolvers/mutations/products/removeProductVariation.ts +1 -1
  476. package/src/resolvers/mutations/products/removeProductVariationOption.ts +0 -1
  477. package/src/resolvers/mutations/products/reorderProductMedia.ts +1 -1
  478. package/src/resolvers/mutations/products/unpublishProduct.ts +1 -1
  479. package/src/resolvers/mutations/products/updateProduct.ts +1 -1
  480. package/src/resolvers/mutations/products/updateProductCommerce.ts +1 -1
  481. package/src/resolvers/mutations/products/updateProductMediaTexts.ts +1 -1
  482. package/src/resolvers/mutations/products/updateProductPlan.ts +1 -1
  483. package/src/resolvers/mutations/products/updateProductReview.ts +1 -1
  484. package/src/resolvers/mutations/products/updateProductSupply.ts +1 -1
  485. package/src/resolvers/mutations/products/updateProductTexts.ts +1 -1
  486. package/src/resolvers/mutations/products/updateProductTokenization.ts +1 -1
  487. package/src/resolvers/mutations/products/updateProductVariationTexts.ts +0 -1
  488. package/src/resolvers/mutations/products/updateProductWarehousing.ts +1 -1
  489. package/src/resolvers/mutations/users/prepareUserAvatarUpload.ts +0 -1
  490. package/src/resolvers/mutations/users/removeUser.ts +19 -0
  491. package/src/resolvers/mutations/users/setRoles.ts +1 -1
  492. package/src/resolvers/mutations/users/setUserTags.ts +1 -1
  493. package/src/resolvers/mutations/users/updateUserAvatar.ts +1 -2
  494. package/src/resolvers/mutations/users/updateUserProfile.ts +1 -1
  495. package/src/resolvers/mutations/utils/getOrderCart.ts +1 -1
  496. package/src/resolvers/mutations/warehousing/createWarehousingProvider.ts +3 -7
  497. package/src/resolvers/mutations/warehousing/removeWarehousingProvider.ts +1 -1
  498. package/src/resolvers/mutations/warehousing/updateWarehousingProvider.ts +1 -1
  499. package/src/resolvers/mutations/worker/addWork.ts +1 -1
  500. package/src/resolvers/mutations/worker/finishWork.ts +8 -12
  501. package/src/resolvers/mutations/worker/removeWork.ts +1 -1
  502. package/src/resolvers/queries/products/productCatalogPrices.ts +0 -1
  503. package/src/resolvers/queries/users/users.ts +2 -1
  504. package/src/resolvers/queries/worker/workQueue.ts +1 -1
  505. package/src/resolvers/type/assortment/assortment-filter-types.ts +0 -1
  506. package/src/resolvers/type/assortment/assortment-link-types.ts +0 -2
  507. package/src/resolvers/type/assortment/assortment-media-types.ts +2 -0
  508. package/src/resolvers/type/assortment/assortment-path-link-types.ts +1 -11
  509. package/src/resolvers/type/assortment/assortment-product-types.ts +0 -2
  510. package/src/resolvers/type/assortment/assortment-types.ts +9 -4
  511. package/src/resolvers/type/bookmark-types.ts +0 -1
  512. package/src/resolvers/type/enrollment/enrollment-plan-tyes.ts +0 -1
  513. package/src/resolvers/type/order/order-item-types.ts +0 -3
  514. package/src/resolvers/type/product/product-assortment-path-types.ts +1 -0
  515. package/src/resolvers/type/product/product-bundle-item-types.ts +0 -1
  516. package/src/resolvers/type/product/product-configurable-types.ts +1 -0
  517. package/src/resolvers/type/product/product-media-types.ts +2 -0
  518. package/src/resolvers/type/product/product-plan-types.ts +2 -18
  519. package/src/resolvers/type/product/product-review-types.ts +0 -1
  520. package/src/resolvers/type/product/product-variation-assignment-types.ts +0 -1
  521. package/src/resolvers/type/quotation-types.ts +0 -1
  522. package/src/resolvers/type/token-types.ts +2 -1
  523. package/src/resolvers/type/user-types.ts +14 -25
  524. package/src/roles/admin.ts +3 -72
  525. package/src/schema/directives.js +14 -0
  526. package/src/schema/index.js +2 -1
  527. package/src/schema/inputTypes.js +0 -15
  528. package/src/schema/mutation.js +22 -36
  529. package/src/schema/query.js +42 -22
  530. package/src/schema/types/assortment.js +10 -10
  531. package/src/schema/types/color.js +1 -1
  532. package/src/schema/types/country.js +1 -1
  533. package/src/schema/types/currency.js +1 -1
  534. package/src/schema/types/delivery.js +3 -2
  535. package/src/schema/types/dimensions.js +1 -1
  536. package/src/schema/types/discount.js +1 -1
  537. package/src/schema/types/filter.js +5 -8
  538. package/src/schema/types/geo-position.js +1 -1
  539. package/src/schema/types/language.js +1 -1
  540. package/src/schema/types/media.js +1 -1
  541. package/src/schema/types/payment.js +3 -3
  542. package/src/schema/types/price.js +2 -2
  543. package/src/schema/types/product/bundle-product.js +2 -3
  544. package/src/schema/types/product/configurable-product.js +7 -7
  545. package/src/schema/types/product/plan-product.js +3 -3
  546. package/src/schema/types/product/product.js +11 -11
  547. package/src/schema/types/product/simple-product.js +4 -4
  548. package/src/schema/types/product/tokenized-product.js +3 -3
  549. package/src/schema/types/search.js +3 -8
  550. package/src/schema/types/shop.js +2 -2
  551. package/src/schema/types/types.js +1 -1
  552. package/src/schema/types/user.js +4 -3
  553. package/src/schema/types/warehousing.js +3 -3
  554. package/tests/api-index.test.ts +78 -0
  555. package/lib/createBulkImportServer.d.ts +0 -2
  556. package/lib/createBulkImportServer.js +0 -81
  557. package/lib/createBulkImportServer.js.map +0 -1
  558. package/lib/createERCMetadataServer.d.ts +0 -2
  559. package/lib/createERCMetadataServer.js +0 -59
  560. package/lib/createERCMetadataServer.js.map +0 -1
  561. package/lib/schema/types/log.js +0 -16
  562. package/lib/schema/types/log.js.map +0 -1
  563. package/src/createBulkImportServer.ts +0 -95
  564. package/src/createERCMetadataServer.ts +0 -78
  565. package/src/schema/types/log.js +0 -15
@@ -0,0 +1,71 @@
1
+ /// <reference lib="dom" />
2
+ import { createLogger } from '@unchainedshop/logger';
3
+ import cookie from 'cookie';
4
+ const { ROOT_URL, NODE_ENV, UNCHAINED_CLOUD_ENDPOINT } = process.env;
5
+ const logger = createLogger('unchained:unchained-cloud-sso');
6
+ const loginWithSingleSignOn = async (remoteToken, context) => {
7
+ const domain = process.env.UNCHAINED_COOKIE_DOMAIN || new URL(ROOT_URL).hostname || 'localhost';
8
+ const result = await fetch(UNCHAINED_CLOUD_ENDPOINT, {
9
+ method: 'POST',
10
+ headers: {
11
+ 'content-type': 'application/json',
12
+ },
13
+ body: JSON.stringify({
14
+ operationName: 'consume',
15
+ variables: {
16
+ token: remoteToken,
17
+ },
18
+ query: 'mutation consume($token: ID!) { controlConsumeSingleSignOnToken(token: $token) { domain } }',
19
+ }),
20
+ });
21
+ const json = await result.json();
22
+ if (json?.errors?.length > 0) {
23
+ throw new Error(json.errors[0].message);
24
+ }
25
+ if (domain === 'localhost' || domain === json?.data?.controlConsumeSingleSignOnToken?.domain) {
26
+ // create sso user if not exist and login
27
+ const ssoUserId = (await context.modules.users.findUser({ username: 'sso' }))?._id ||
28
+ (await context.modules.accounts.createUser({
29
+ username: 'sso',
30
+ roles: ['admin'],
31
+ email: 'sso@unchained.local',
32
+ password: null,
33
+ guest: false,
34
+ }, { skipMessaging: true }));
35
+ const { tokenExpires, token } = await context.modules.accounts.createLoginToken(ssoUserId, context);
36
+ const expires = new Date(tokenExpires || new Date().getTime() + 100000);
37
+ const authCookie = cookie.serialize(process.env.UNCHAINED_COOKIE_NAME, token, {
38
+ domain,
39
+ httpOnly: true,
40
+ expires,
41
+ path: '/',
42
+ sameSite: 'strict',
43
+ secure: NODE_ENV === 'production',
44
+ });
45
+ return authCookie;
46
+ }
47
+ throw new Error('Invalid token/domain pair');
48
+ };
49
+ export default function singleSignOnMiddleware(contextResolver) {
50
+ return async (req, res, next) => {
51
+ try {
52
+ if (req.query?.token) {
53
+ const context = await contextResolver({ req, res });
54
+ const authCookie = await loginWithSingleSignOn(req.query.token, context);
55
+ if (authCookie) {
56
+ res.writeHead(303, {
57
+ 'Set-Cookie': authCookie,
58
+ Location: '/',
59
+ });
60
+ res.end();
61
+ return;
62
+ }
63
+ }
64
+ }
65
+ catch (e) {
66
+ logger.error(e.message);
67
+ }
68
+ next();
69
+ };
70
+ }
71
+ //# sourceMappingURL=createSingleSignOnMiddleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createSingleSignOnMiddleware.js","sourceRoot":"","sources":["../../src/express/createSingleSignOnMiddleware.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGrD,OAAO,MAAM,MAAM,QAAQ,CAAC;AAG5B,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,wBAAwB,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;AAErE,MAAM,MAAM,GAAG,YAAY,CAAC,+BAA+B,CAAC,CAAC;AAE7D,MAAM,qBAAqB,GAAG,KAAK,EAAE,WAAW,EAAE,OAAsB,EAAE,EAAE;IAC1E,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,QAAQ,IAAI,WAAW,CAAC;IAChG,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,wBAAwB,EAAE;QACnD,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,aAAa,EAAE,SAAS;YACxB,SAAS,EAAE;gBACT,KAAK,EAAE,WAAW;aACnB;YACD,KAAK,EACH,6FAA6F;SAChG,CAAC;KACH,CAAC,CAAC;IACH,MAAM,IAAI,GAAQ,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;IACtC,IAAI,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC,EAAE;QAC5B,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;KACzC;IAED,IAAI,MAAM,KAAK,WAAW,IAAI,MAAM,KAAK,IAAI,EAAE,IAAI,EAAE,+BAA+B,EAAE,MAAM,EAAE;QAC5F,yCAAyC;QACzC,MAAM,SAAS,GACb,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,GAAG;YAChE,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CACxC;gBACE,QAAQ,EAAE,KAAK;gBACf,KAAK,EAAE,CAAC,OAAO,CAAC;gBAChB,KAAK,EAAE,qBAAqB;gBAC5B,QAAQ,EAAE,IAAI;gBACd,KAAK,EAAE,KAAK;aACb,EACD,EAAE,aAAa,EAAE,IAAI,EAAE,CACxB,CAAC,CAAC;QACL,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACpG,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,CAAC;QACxE,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,KAAK,EAAE;YAC5E,MAAM;YACN,QAAQ,EAAE,IAAI;YACd,OAAO;YACP,IAAI,EAAE,GAAG;YACT,QAAQ,EAAE,QAAQ;YAClB,MAAM,EAAE,QAAQ,KAAK,YAAY;SAClC,CAAC,CAAC;QAEH,OAAO,UAAU,CAAC;KACnB;IACD,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;AAC/C,CAAC,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAC,eAAyC;IACtF,OAAO,KAAK,EAAE,GAAsC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACjE,IAAI;YACF,IAAI,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE;gBACpB,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;gBACpD,MAAM,UAAU,GAAG,MAAM,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;gBAEzE,IAAI,UAAU,EAAE;oBACd,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE;wBACjB,YAAY,EAAE,UAAU;wBACxB,QAAQ,EAAE,GAAG;qBACd,CAAC,CAAC;oBACH,GAAG,CAAC,GAAG,EAAE,CAAC;oBACV,OAAO;iBACR;aACF;SACF;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;SACzB;QACD,IAAI,EAAE,CAAC;IACT,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { ApolloServer } from '@apollo/server';
2
+ import type e from 'express';
3
+ export declare const useMiddlewareWithCurrentContext: (expressApp: any, path: any, ...middleware: any[]) => void;
4
+ export declare const connect: (expressApp: e.Express, { apolloGraphQLServer }: {
5
+ apolloGraphQLServer: ApolloServer;
6
+ }) => void;
@@ -0,0 +1,27 @@
1
+ import { getCurrentContextResolver } from '../context';
2
+ import createBulkImportMiddleware from './createBulkImportMiddleware';
3
+ import createERCMetadataMiddleware from './createERCMetadataMiddleware';
4
+ import createApolloMiddleware from './createApolloMiddleware';
5
+ import createSingleSignOnMiddleware from './createSingleSignOnMiddleware';
6
+ const { BULK_IMPORT_API_PATH = '/bulk-import', ERC_METADATA_API_PATH = '/erc-metadata', GRAPHQL_API_PATH = '/graphql', } = process.env;
7
+ export const useMiddlewareWithCurrentContext = (expressApp, path, ...middleware) => {
8
+ const context = getCurrentContextResolver();
9
+ const addContext = async function middlewareWithContext(req, res, next) {
10
+ try {
11
+ req.unchainedContext = await context({ req, res });
12
+ next();
13
+ }
14
+ catch (error) {
15
+ next(error);
16
+ }
17
+ };
18
+ expressApp.use(path, addContext, ...middleware);
19
+ };
20
+ export const connect = (expressApp, { apolloGraphQLServer }) => {
21
+ const contextResolver = getCurrentContextResolver();
22
+ expressApp.use(GRAPHQL_API_PATH, createApolloMiddleware(contextResolver, { apolloGraphQLServer }));
23
+ expressApp.use(ERC_METADATA_API_PATH, createERCMetadataMiddleware(contextResolver));
24
+ expressApp.use(BULK_IMPORT_API_PATH, createBulkImportMiddleware(contextResolver));
25
+ expressApp.use(['/', '/.well-known/unchained/cloud-sso'], createSingleSignOnMiddleware(contextResolver));
26
+ };
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/express/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,0BAA0B,MAAM,8BAA8B,CAAC;AACtE,OAAO,2BAA2B,MAAM,+BAA+B,CAAC;AACxE,OAAO,sBAAsB,MAAM,0BAA0B,CAAC;AAC9D,OAAO,4BAA4B,MAAM,gCAAgC,CAAC;AAE1E,MAAM,EACJ,oBAAoB,GAAG,cAAc,EACrC,qBAAqB,GAAG,eAAe,EACvC,gBAAgB,GAAG,UAAU,GAC9B,GAAG,OAAO,CAAC,GAAG,CAAC;AAEhB,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,GAAG,UAAU,EAAE,EAAE;IACjF,MAAM,OAAO,GAAG,yBAAyB,EAAE,CAAC;IAC5C,MAAM,UAAU,GAAG,KAAK,UAAU,qBAAqB,CACrD,GAA0D,EAC1D,GAAoB,EACpB,IAAI;QAEJ,IAAI;YACF,GAAG,CAAC,gBAAgB,GAAG,MAAM,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;YACnD,IAAI,EAAE,CAAC;SACR;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,CAAC,KAAK,CAAC,CAAC;SACb;IACH,CAAC,CAAC;IAEF,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC,CAAC;AAClD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,CACrB,UAAqB,EACrB,EAAE,mBAAmB,EAAyC,EAC9D,EAAE;IACF,MAAM,eAAe,GAAG,yBAAyB,EAAE,CAAC;IAEpD,UAAU,CAAC,GAAG,CAAC,gBAAgB,EAAE,sBAAsB,CAAC,eAAe,EAAE,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC;IACnG,UAAU,CAAC,GAAG,CAAC,qBAAqB,EAAE,2BAA2B,CAAC,eAAe,CAAC,CAAC,CAAC;IACpF,UAAU,CAAC,GAAG,CAAC,oBAAoB,EAAE,0BAA0B,CAAC,eAAe,CAAC,CAAC,CAAC;IAClF,UAAU,CAAC,GAAG,CACZ,CAAC,GAAG,EAAE,kCAAkC,CAAC,EACzC,4BAA4B,CAAC,eAAe,CAAC,CAC9C,CAAC;AACJ,CAAC,CAAC"}
@@ -12,13 +12,10 @@ export default async (req, res, unchainedAPI) => {
12
12
  includeInactive: true,
13
13
  includeLeaves: true,
14
14
  });
15
- return queries.map(({ assortmentId, includeInactive }) => {
15
+ return queries.map(({ assortmentId }) => {
16
16
  return assortments.find((assortment) => {
17
17
  if (assortment._id !== assortmentId)
18
18
  return false;
19
- if (!includeInactive) {
20
- return assortment.isActive === true;
21
- }
22
19
  return true;
23
20
  });
24
21
  });
@@ -85,15 +82,14 @@ export default async (req, res, unchainedAPI) => {
85
82
  const productIds = [...new Set(queries.map((q) => q.productId).filter(Boolean))];
86
83
  const products = await unchainedAPI.modules.products.findProducts({
87
84
  productIds,
88
- includeDrafts: true,
85
+ productSelector: {
86
+ status: { $in: [null, ProductStatus.ACTIVE, ProductStatus.DELETED] },
87
+ },
89
88
  });
90
- return queries.map(({ productId, includeDrafts }) => {
89
+ return queries.map(({ productId }) => {
91
90
  return products.find((product) => {
92
91
  if (product._id !== productId)
93
92
  return false;
94
- if (!includeDrafts) {
95
- return product.status === ProductStatus.ACTIVE;
96
- }
97
93
  return true;
98
94
  });
99
95
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/loaders/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/loaders/index.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,6 @@
1
1
  import { Context, Root } from '@unchainedshop/types/api';
2
2
  export default function changePassword(root: Root, params: {
3
- oldPassword?: string;
4
3
  oldPlainPassword?: string;
5
- newPassword?: string;
6
4
  newPlainPassword?: string;
7
5
  }, { modules, userId }: Context): Promise<{
8
6
  success: boolean;
@@ -1,13 +1,24 @@
1
1
  import { log } from '@unchainedshop/logger';
2
+ import { AuthOperationFailedError, InvalidCredentialsError } from '../../../errors';
2
3
  export default async function changePassword(root, params, { modules, userId }) {
3
4
  log('mutation changePassword', { userId });
4
- if (!params.newPassword && !params.newPlainPassword) {
5
+ if (!params.newPlainPassword) {
5
6
  throw new Error('New password is required');
6
7
  }
7
- if (!params.oldPassword && !params.oldPlainPassword) {
8
+ if (!params.oldPlainPassword) {
8
9
  throw new Error('Old password is required');
9
10
  }
10
- const success = await modules.accounts.changePassword(userId, params);
11
+ let success = false;
12
+ try {
13
+ success = await modules.accounts.changePassword(userId, params);
14
+ }
15
+ catch (e) {
16
+ success = false;
17
+ if (e.code === 'InvalidCredentials')
18
+ throw new InvalidCredentialsError({});
19
+ else
20
+ throw new AuthOperationFailedError({});
21
+ }
11
22
  return { success };
12
23
  }
13
24
  //# sourceMappingURL=changePassword.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"changePassword.js","sourceRoot":"","sources":["../../../../src/resolvers/mutations/accounts/changePassword.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAG5C,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,cAAc,CAC1C,IAAU,EACV,MAKC,EACD,EAAE,OAAO,EAAE,MAAM,EAAW;IAE5B,GAAG,CAAC,yBAAyB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAE3C,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE;QACnD,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;KAC7C;IACD,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE;QACnD,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;KAC7C;IAED,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEtE,OAAO,EAAE,OAAO,EAAE,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"changePassword.js","sourceRoot":"","sources":["../../../../src/resolvers/mutations/accounts/changePassword.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAEpF,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,cAAc,CAC1C,IAAU,EACV,MAGC,EACD,EAAE,OAAO,EAAE,MAAM,EAAW;IAE5B,GAAG,CAAC,yBAAyB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAE3C,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE;QAC5B,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;KAC7C;IACD,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE;QAC5B,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;KAC7C;IACD,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI;QACF,OAAO,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACjE;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,GAAG,KAAK,CAAC;QAChB,IAAI,CAAC,CAAC,IAAI,KAAK,oBAAoB;YAAE,MAAM,IAAI,uBAAuB,CAAC,EAAE,CAAC,CAAC;;YACtE,MAAM,IAAI,wBAAwB,CAAC,EAAE,CAAC,CAAC;KAC7C;IAED,OAAO,EAAE,OAAO,EAAE,CAAC;AACrB,CAAC"}
@@ -1,22 +1,36 @@
1
1
  import { log } from '@unchainedshop/logger';
2
2
  import { hashPassword } from '../../../hashPassword';
3
+ import { AuthOperationFailedError, EmailAlreadyExistsError, UsernameAlreadyExistsError, UsernameOrEmailRequiredError, } from '../../../errors';
3
4
  export default async function createUser(root, params, context) {
4
5
  const { modules, userId } = context;
5
6
  log('mutation createUser', { email: params.email, username: params.username, userId });
6
- if (!params.password && !params.plainPassword && !params.webAuthnPublicKeyCredentials) {
7
+ if (!params.plainPassword && !params.webAuthnPublicKeyCredentials) {
7
8
  throw new Error('Password or Public Key is required');
8
9
  }
9
10
  const mappedUser = { ...params };
10
- if (!mappedUser.password && mappedUser.plainPassword) {
11
+ if (mappedUser.plainPassword) {
11
12
  mappedUser.password = hashPassword(mappedUser.plainPassword);
12
13
  }
13
14
  delete mappedUser.plainPassword;
14
15
  delete mappedUser.webAuthnPublicKeyCredentials;
15
16
  const webAuthnService = params.webAuthnPublicKeyCredentials &&
16
17
  (await modules.accounts.webAuthn.verifyCredentialCreation(params.username, params.webAuthnPublicKeyCredentials));
17
- const newUserId = await modules.accounts.createUser(mappedUser, {
18
- skipPasswordEnrollment: !!webAuthnService,
19
- });
18
+ let newUserId;
19
+ try {
20
+ newUserId = await modules.accounts.createUser(mappedUser, {
21
+ skipPasswordEnrollment: !!webAuthnService,
22
+ });
23
+ }
24
+ catch (e) {
25
+ if (e.code === 'EmailAlreadyExists')
26
+ throw new EmailAlreadyExistsError({ email: params?.email });
27
+ else if (e.code === 'UsernameAlreadyExists')
28
+ throw new UsernameAlreadyExistsError({ username: params?.username });
29
+ else if (e.code === 'UsernameOrEmailRequired')
30
+ throw new UsernameOrEmailRequiredError({ username: params?.username });
31
+ else
32
+ throw new AuthOperationFailedError({ username: params?.username, email: params.email });
33
+ }
20
34
  if (newUserId && webAuthnService) {
21
35
  await modules.users.updateUser({ _id: newUserId }, {
22
36
  $push: {
@@ -1 +1 @@
1
- {"version":3,"file":"createUser.js","sourceRoot":"","sources":["../../../../src/resolvers/mutations/accounts/createUser.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,UAAU,CAAC,IAAU,EAAE,MAAgB,EAAE,OAAgB;IACrF,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAEpC,GAAG,CAAC,qBAAqB,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IAEvF,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,CAAC,MAAM,CAAC,4BAA4B,EAAE;QACrF,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;KACvD;IAED,MAAM,UAAU,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;IACjC,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,UAAU,CAAC,aAAa,EAAE;QACpD,UAAU,CAAC,QAAQ,GAAG,YAAY,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;KAC9D;IACD,OAAO,UAAU,CAAC,aAAa,CAAC;IAChC,OAAO,UAAU,CAAC,4BAA4B,CAAC;IAE/C,MAAM,eAAe,GACnB,MAAM,CAAC,4BAA4B;QACnC,CAAC,MAAM,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,wBAAwB,CACvD,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,4BAA4B,CACpC,CAAC,CAAC;IAEL,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE;QAC9D,sBAAsB,EAAE,CAAC,CAAC,eAAe;KAC1C,CAAC,CAAC;IAEH,IAAI,SAAS,IAAI,eAAe,EAAE;QAChC,MAAM,OAAO,CAAC,KAAK,CAAC,UAAU,CAC5B,EAAE,GAAG,EAAE,SAAS,EAAE,EAClB;YACE,KAAK,EAAE;gBACL,mBAAmB,EAAE,eAAe;aACrC;SACF,EACD,EAAE,CACH,CAAC;KACH;IAED,OAAO,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AAC/D,CAAC"}
1
+ {"version":3,"file":"createUser.js","sourceRoot":"","sources":["../../../../src/resolvers/mutations/accounts/createUser.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EACvB,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,iBAAiB,CAAC;AAEzB,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,UAAU,CAAC,IAAU,EAAE,MAAgB,EAAE,OAAgB;IACrF,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAEpC,GAAG,CAAC,qBAAqB,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IAEvF,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,CAAC,MAAM,CAAC,4BAA4B,EAAE;QACjE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;KACvD;IAED,MAAM,UAAU,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;IACjC,IAAI,UAAU,CAAC,aAAa,EAAE;QAC5B,UAAU,CAAC,QAAQ,GAAG,YAAY,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;KAC9D;IACD,OAAO,UAAU,CAAC,aAAa,CAAC;IAChC,OAAO,UAAU,CAAC,4BAA4B,CAAC;IAE/C,MAAM,eAAe,GACnB,MAAM,CAAC,4BAA4B;QACnC,CAAC,MAAM,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,wBAAwB,CACvD,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,4BAA4B,CACpC,CAAC,CAAC;IACL,IAAI,SAAS,CAAC;IACd,IAAI;QACF,SAAS,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE;YACxD,sBAAsB,EAAE,CAAC,CAAC,eAAe;SAC1C,CAAC,CAAC;KACJ;IAAC,OAAO,CAAC,EAAE;QACV,IAAI,CAAC,CAAC,IAAI,KAAK,oBAAoB;YAAE,MAAM,IAAI,uBAAuB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;aAC5F,IAAI,CAAC,CAAC,IAAI,KAAK,uBAAuB;YACzC,MAAM,IAAI,0BAA0B,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;aAClE,IAAI,CAAC,CAAC,IAAI,KAAK,yBAAyB;YAC3C,MAAM,IAAI,4BAA4B,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;;YACpE,MAAM,IAAI,wBAAwB,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;KAC9F;IAED,IAAI,SAAS,IAAI,eAAe,EAAE;QAChC,MAAM,OAAO,CAAC,KAAK,CAAC,UAAU,CAC5B,EAAE,GAAG,EAAE,SAAS,EAAE,EAClB;YACE,KAAK,EAAE;gBACL,mBAAmB,EAAE,eAAe;aACrC;SACF,EACD,EAAE,CACH,CAAC;KACH;IAED,OAAO,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AAC/D,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { log } from '@unchainedshop/logger';
2
- import { UserNotFoundError } from '../../../errors';
2
+ import { TwoFactorCodeDidNotMatchError, TwoFactorNotSetError, UserNotFoundError } from '../../../errors';
3
3
  export default async function disableTOTP(root, params, { modules, userId }) {
4
4
  const normalizedUserId = params.userId || userId;
5
5
  log(`mutation disableTOTP ${params.code} ${normalizedUserId}`, {
@@ -8,7 +8,20 @@ export default async function disableTOTP(root, params, { modules, userId }) {
8
8
  const user = await modules.users.findUserById(normalizedUserId);
9
9
  if (!user)
10
10
  throw new UserNotFoundError({ userId: normalizedUserId });
11
- await modules.accounts.disableTOTP(normalizedUserId, params.code);
11
+ try {
12
+ await modules.accounts.disableTOTP(normalizedUserId, params.code);
13
+ }
14
+ catch (e) {
15
+ if (e?.message?.includes("2FA code didn't match"))
16
+ throw new TwoFactorCodeDidNotMatchError({
17
+ submittedCode: params.code,
18
+ userId: params?.userId || userId,
19
+ });
20
+ else if (e?.message?.includes('2FA not set'))
21
+ throw new TwoFactorNotSetError({ userId: params?.userId || userId });
22
+ else
23
+ throw e;
24
+ }
12
25
  return user;
13
26
  }
14
27
  //# sourceMappingURL=disableTOTP.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"disableTOTP.js","sourceRoot":"","sources":["../../../../src/resolvers/mutations/accounts/disableTOTP.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,WAAW,CACvC,IAAU,EACV,MAAwC,EACxC,EAAE,OAAO,EAAE,MAAM,EAAW;IAE5B,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC;IAEjD,GAAG,CAAC,wBAAwB,MAAM,CAAC,IAAI,IAAI,gBAAgB,EAAE,EAAE;QAC7D,MAAM;KACP,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;IAChE,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,iBAAiB,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;IAErE,MAAM,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAElE,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"disableTOTP.js","sourceRoot":"","sources":["../../../../src/resolvers/mutations/accounts/disableTOTP.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,6BAA6B,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEzG,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,WAAW,CACvC,IAAU,EACV,MAAwC,EACxC,EAAE,OAAO,EAAE,MAAM,EAAW;IAE5B,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC;IAEjD,GAAG,CAAC,wBAAwB,MAAM,CAAC,IAAI,IAAI,gBAAgB,EAAE,EAAE;QAC7D,MAAM;KACP,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;IAChE,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,iBAAiB,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;IACrE,IAAI;QACF,MAAM,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;KACnE;IAAC,OAAO,CAAC,EAAE;QACV,IAAI,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,uBAAuB,CAAC;YAC/C,MAAM,IAAI,6BAA6B,CAAC;gBACtC,aAAa,EAAE,MAAM,CAAC,IAAI;gBAC1B,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,MAAM;aACjC,CAAC,CAAC;aACA,IAAI,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC;YAC1C,MAAM,IAAI,oBAAoB,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,MAAM,EAAE,CAAC,CAAC;;YAClE,MAAM,CAAC,CAAC;KACd;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1,9 +1,20 @@
1
1
  import { log } from '@unchainedshop/logger';
2
+ import { TwoFactorAlreadySetError, TwoFactorCodeDidNotMatchError } from '../../../errors';
2
3
  export default async function enableTOTP(root, params, { modules, userId }) {
3
4
  log(`mutation enableTOTP ${params.code}`, {
4
5
  userId,
5
6
  });
6
- await modules.accounts.enableTOTP(userId, params.secretBase32, params.code);
7
+ try {
8
+ await modules.accounts.enableTOTP(userId, params.secretBase32, params.code);
9
+ }
10
+ catch (e) {
11
+ if (e?.message?.includes("2FA code didn't match"))
12
+ throw new TwoFactorCodeDidNotMatchError({ submittedCode: params.code, userId });
13
+ else if (e?.message?.includes('2FA already set'))
14
+ throw new TwoFactorAlreadySetError({ userId });
15
+ else
16
+ throw e;
17
+ }
7
18
  return modules.users.findUserById(userId);
8
19
  }
9
20
  //# sourceMappingURL=enableTOTP.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"enableTOTP.js","sourceRoot":"","sources":["../../../../src/resolvers/mutations/accounts/enableTOTP.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAG5C,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,UAAU,CACtC,IAAU,EACV,MAA8C,EAC9C,EAAE,OAAO,EAAE,MAAM,EAAW;IAE5B,GAAG,CAAC,uBAAuB,MAAM,CAAC,IAAI,EAAE,EAAE;QACxC,MAAM;KACP,CAAC,CAAC;IAEH,MAAM,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAE5E,OAAO,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;AAC5C,CAAC"}
1
+ {"version":3,"file":"enableTOTP.js","sourceRoot":"","sources":["../../../../src/resolvers/mutations/accounts/enableTOTP.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,wBAAwB,EAAE,6BAA6B,EAAE,MAAM,iBAAiB,CAAC;AAE1F,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,UAAU,CACtC,IAAU,EACV,MAA8C,EAC9C,EAAE,OAAO,EAAE,MAAM,EAAW;IAE5B,GAAG,CAAC,uBAAuB,MAAM,CAAC,IAAI,EAAE,EAAE;QACxC,MAAM;KACP,CAAC,CAAC;IACH,IAAI;QACF,MAAM,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;KAC7E;IAAC,OAAO,CAAC,EAAE;QACV,IAAI,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,uBAAuB,CAAC;YAC/C,MAAM,IAAI,6BAA6B,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;aAC7E,IAAI,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,iBAAiB,CAAC;YAAE,MAAM,IAAI,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;;YAC5F,MAAM,CAAC,CAAC;KACd;IAED,OAAO,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;AAC5C,CAAC"}
@@ -1,19 +1,32 @@
1
1
  import { log } from '@unchainedshop/logger';
2
2
  import { hashPassword } from '../../../hashPassword';
3
+ import { AuthOperationFailedError, EmailAlreadyExistsError, UsernameAlreadyExistsError, UsernameOrEmailRequiredError, } from '../../../errors';
3
4
  export default async function enrollUser(root, params, context) {
4
5
  const { modules } = context;
5
6
  log('mutation enrollUser', { email: params.email, userId: context.userId });
6
7
  const mappedUserData = params;
7
8
  mappedUserData.initialPassword = true;
8
- if (!mappedUserData.password && mappedUserData.plainPassword) {
9
+ if (mappedUserData.plainPassword) {
9
10
  mappedUserData.password = hashPassword(mappedUserData.plainPassword);
10
11
  }
11
12
  delete mappedUserData.plainPassword;
12
13
  // Skip Messaging when password is set so we
13
14
  // don't send a verification e-mail after enrollment
14
- const userId = await modules.accounts.createUser(mappedUserData, {
15
- skipMessaging: !!mappedUserData.password,
16
- });
17
- return modules.users.findUserById(userId);
15
+ try {
16
+ const userId = await modules.accounts.createUser(mappedUserData, {
17
+ skipMessaging: !!mappedUserData.password,
18
+ });
19
+ return modules.users.findUserById(userId);
20
+ }
21
+ catch (e) {
22
+ if (e.code === 'EmailAlreadyExists')
23
+ throw new EmailAlreadyExistsError({ email: params?.email });
24
+ else if (e.code === 'UsernameAlreadyExists')
25
+ throw new UsernameAlreadyExistsError({ username: params?.username, email: params.email });
26
+ else if (e.code === 'UsernameOrEmailRequired')
27
+ throw new UsernameOrEmailRequiredError({ username: params?.username, email: params.email });
28
+ else
29
+ throw new AuthOperationFailedError({ username: params?.username, email: params.email });
30
+ }
18
31
  }
19
32
  //# sourceMappingURL=enrollUser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"enrollUser.js","sourceRoot":"","sources":["../../../../src/resolvers/mutations/accounts/enrollUser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAG5C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,UAAU,CAAC,IAAU,EAAE,MAAgB,EAAE,OAAgB;IACrF,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAE5B,GAAG,CAAC,qBAAqB,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAE5E,MAAM,cAAc,GAAG,MAAM,CAAC;IAC9B,cAAc,CAAC,eAAe,GAAG,IAAI,CAAC;IACtC,IAAI,CAAC,cAAc,CAAC,QAAQ,IAAI,cAAc,CAAC,aAAa,EAAE;QAC5D,cAAc,CAAC,QAAQ,GAAG,YAAY,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;KACtE;IACD,OAAO,cAAc,CAAC,aAAa,CAAC;IAEpC,4CAA4C;IAC5C,oDAAoD;IACpD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,cAAc,EAAE;QAC/D,aAAa,EAAE,CAAC,CAAC,cAAc,CAAC,QAAQ;KACzC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;AAC5C,CAAC"}
1
+ {"version":3,"file":"enrollUser.js","sourceRoot":"","sources":["../../../../src/resolvers/mutations/accounts/enrollUser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAG5C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EACvB,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,iBAAiB,CAAC;AAEzB,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,UAAU,CAAC,IAAU,EAAE,MAAgB,EAAE,OAAgB;IACrF,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAE5B,GAAG,CAAC,qBAAqB,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAE5E,MAAM,cAAc,GAAG,MAAM,CAAC;IAC9B,cAAc,CAAC,eAAe,GAAG,IAAI,CAAC;IACtC,IAAI,cAAc,CAAC,aAAa,EAAE;QAChC,cAAc,CAAC,QAAQ,GAAG,YAAY,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;KACtE;IACD,OAAO,cAAc,CAAC,aAAa,CAAC;IAEpC,4CAA4C;IAC5C,oDAAoD;IACpD,IAAI;QACF,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,cAAc,EAAE;YAC/D,aAAa,EAAE,CAAC,CAAC,cAAc,CAAC,QAAQ;SACzC,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;KAC3C;IAAC,OAAO,CAAC,EAAE;QACV,IAAI,CAAC,CAAC,IAAI,KAAK,oBAAoB;YAAE,MAAM,IAAI,uBAAuB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;aAC5F,IAAI,CAAC,CAAC,IAAI,KAAK,uBAAuB;YACzC,MAAM,IAAI,0BAA0B,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;aACvF,IAAI,CAAC,CAAC,IAAI,KAAK,yBAAyB;YAC3C,MAAM,IAAI,4BAA4B,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;;YACzF,MAAM,IAAI,wBAAwB,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;KAC9F;AACH,CAAC"}
@@ -1,7 +1,17 @@
1
1
  import { log } from '@unchainedshop/logger';
2
+ import { AuthOperationFailedError, UserNotFoundError } from '../../../errors';
2
3
  export default async function forgotPassword(root, { email }, { modules, userId }) {
3
4
  log('mutation forgotPassword', { email, userId });
4
- const success = await modules.accounts.sendResetPasswordEmail(email);
5
+ let success = false;
6
+ try {
7
+ success = await modules.accounts.sendResetPasswordEmail(email);
8
+ }
9
+ catch (e) {
10
+ if (e.code === 'UserNotFound')
11
+ throw new UserNotFoundError({ email });
12
+ else
13
+ throw new AuthOperationFailedError({ email });
14
+ }
5
15
  return { success };
6
16
  }
7
17
  //# sourceMappingURL=forgotPassword.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"forgotPassword.js","sourceRoot":"","sources":["../../../../src/resolvers/mutations/accounts/forgotPassword.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAG5C,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,cAAc,CAC1C,IAAU,EACV,EAAE,KAAK,EAAqB,EAC5B,EAAE,OAAO,EAAE,MAAM,EAAW;IAE5B,GAAG,CAAC,yBAAyB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAElD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAErE,OAAO,EAAE,OAAO,EAAE,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"forgotPassword.js","sourceRoot":"","sources":["../../../../src/resolvers/mutations/accounts/forgotPassword.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAE9E,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,cAAc,CAC1C,IAAU,EACV,EAAE,KAAK,EAAqB,EAC5B,EAAE,OAAO,EAAE,MAAM,EAAW;IAE5B,GAAG,CAAC,yBAAyB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAElD,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI;QACF,OAAO,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;KAChE;IAAC,OAAO,CAAC,EAAE;QACV,IAAI,CAAC,CAAC,IAAI,KAAK,cAAc;YAAE,MAAM,IAAI,iBAAiB,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;;YACjE,MAAM,IAAI,wBAAwB,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;KACpD;IAED,OAAO,EAAE,OAAO,EAAE,CAAC;AACrB,CAAC"}
@@ -4,7 +4,7 @@ const impersonate = async (root, { userId }, context) => {
4
4
  log(`mutation impersonate ${userId}`);
5
5
  const userToImpersonate = await context.modules.users.findUserById(userId);
6
6
  if (!userToImpersonate) {
7
- throw new UserNotFoundError(`No user with id ${userId}`);
7
+ throw new UserNotFoundError({ userId });
8
8
  }
9
9
  if ((userToImpersonate.roles || []).includes('admin')) {
10
10
  throw new NoPermissionError("Cannot impersonate users with role 'admin'");
@@ -1 +1 @@
1
- {"version":3,"file":"impersonate.js","sourceRoot":"","sources":["../../../../src/resolvers/mutations/accounts/impersonate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEvE,MAAM,WAAW,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,OAAgB,EAAE,EAAE;IAC/D,GAAG,CAAC,wBAAwB,MAAM,EAAE,CAAC,CAAC;IAEtC,MAAM,iBAAiB,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAE3E,IAAI,CAAC,iBAAiB,EAAE;QACtB,MAAM,IAAI,iBAAiB,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAC;KAC1D;IAED,IAAI,CAAC,iBAAiB,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;QACrD,MAAM,IAAI,iBAAiB,CAAC,4CAA4C,CAAC,CAAC;KAC3E;IAED,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAC,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AAC3F,CAAC,CAAC;AAEF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"impersonate.js","sourceRoot":"","sources":["../../../../src/resolvers/mutations/accounts/impersonate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEvE,MAAM,WAAW,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,OAAgB,EAAE,EAAE;IAC/D,GAAG,CAAC,wBAAwB,MAAM,EAAE,CAAC,CAAC;IAEtC,MAAM,iBAAiB,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAE3E,IAAI,CAAC,iBAAiB,EAAE;QACtB,MAAM,IAAI,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;KACzC;IAED,IAAI,CAAC,iBAAiB,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;QACrD,MAAM,IAAI,iBAAiB,CAAC,4CAA4C,CAAC,CAAC;KAC3E;IAED,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAC,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AAC3F,CAAC,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -2,7 +2,6 @@ import { Context, Root } from '@unchainedshop/types/api';
2
2
  export default function loginWithPassword(root: Root, params: {
3
3
  username?: string;
4
4
  email?: string;
5
- password?: string;
6
5
  plainPassword?: string;
7
6
  totpCode?: string;
8
7
  }, context: Context): Promise<{
@@ -1,17 +1,35 @@
1
1
  import { log } from '@unchainedshop/logger';
2
+ import { AuthenticationFailedError, AuthOperationFailedError, InvalidCredentialsError, TwoFactorCodeDidNotMatchError, TwoFactorCodeRequiredError, UserDeactivatedError, } from '../../../errors';
2
3
  import { hashPassword } from '../../../hashPassword';
3
4
  export default async function loginWithPassword(root, params, context) {
4
5
  const { modules } = context;
5
- const { username, email, password: hashedPassword, plainPassword, totpCode } = params;
6
+ const { username, email, plainPassword, totpCode } = params;
6
7
  log('mutation loginWithPassword', { username, email });
7
- if (!hashedPassword && !plainPassword) {
8
+ if (!plainPassword) {
8
9
  throw new Error('Password is required');
9
10
  }
10
11
  const mappedUserLoginParams = {
11
12
  user: email ? { email } : { username },
12
- password: hashedPassword || hashPassword(plainPassword),
13
+ password: hashPassword(plainPassword),
13
14
  code: totpCode,
14
15
  };
15
- return modules.accounts.loginWithService({ service: 'password', ...mappedUserLoginParams }, context);
16
+ try {
17
+ const result = await modules.accounts.loginWithService({ service: 'password', ...mappedUserLoginParams }, context);
18
+ return result;
19
+ }
20
+ catch (e) {
21
+ if (e.code === 'AuthenticationFailed')
22
+ throw new AuthenticationFailedError({ username, email });
23
+ else if (e.code === 'UserDeactivated')
24
+ throw new UserDeactivatedError({ username, email });
25
+ else if (e.code === 'InvalidCredentials')
26
+ throw new InvalidCredentialsError({ username, email });
27
+ else if (e?.message?.includes('2FA code required'))
28
+ throw new TwoFactorCodeRequiredError({ username, email });
29
+ else if (e?.message?.includes("2FA code didn't match"))
30
+ throw new TwoFactorCodeDidNotMatchError({ submittedCode: params.totpCode, username, email });
31
+ else
32
+ throw new AuthOperationFailedError({ submittedCode: params.totpCode, username, email });
33
+ }
16
34
  }
17
35
  //# sourceMappingURL=loginWithPassword.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"loginWithPassword.js","sourceRoot":"","sources":["../../../../src/resolvers/mutations/accounts/loginWithPassword.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,iBAAiB,CAC7C,IAAU,EACV,MAMC,EACD,OAAgB;IAEhB,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAC5B,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IAEtF,GAAG,CAAC,4BAA4B,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IAEvD,IAAI,CAAC,cAAc,IAAI,CAAC,aAAa,EAAE;QACrC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;KACzC;IAED,MAAM,qBAAqB,GAAG;QAC5B,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE;QACtC,QAAQ,EAAE,cAAc,IAAI,YAAY,CAAC,aAAa,CAAC;QACvD,IAAI,EAAE,QAAQ;KACf,CAAC;IAEF,OAAO,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,qBAAqB,EAAE,EAAE,OAAO,CAAC,CAAC;AACvG,CAAC"}
1
+ {"version":3,"file":"loginWithPassword.js","sourceRoot":"","sources":["../../../../src/resolvers/mutations/accounts/loginWithPassword.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EACL,yBAAyB,EACzB,wBAAwB,EACxB,uBAAuB,EACvB,6BAA6B,EAC7B,0BAA0B,EAC1B,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,iBAAiB,CAC7C,IAAU,EACV,MAKC,EACD,OAAgB;IAEhB,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAC5B,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IAE5D,GAAG,CAAC,4BAA4B,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IAEvD,IAAI,CAAC,aAAa,EAAE;QAClB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;KACzC;IAED,MAAM,qBAAqB,GAAG;QAC5B,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE;QACtC,QAAQ,EAAE,YAAY,CAAC,aAAa,CAAC;QACrC,IAAI,EAAE,QAAQ;KACf,CAAC;IAEF,IAAI;QACF,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CACpD,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,qBAAqB,EAAE,EACjD,OAAO,CACR,CAAC;QACF,OAAO,MAAM,CAAC;KACf;IAAC,OAAO,CAAC,EAAE;QACV,IAAI,CAAC,CAAC,IAAI,KAAK,sBAAsB;YAAE,MAAM,IAAI,yBAAyB,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;aAC3F,IAAI,CAAC,CAAC,IAAI,KAAK,iBAAiB;YAAE,MAAM,IAAI,oBAAoB,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;aACtF,IAAI,CAAC,CAAC,IAAI,KAAK,oBAAoB;YAAE,MAAM,IAAI,uBAAuB,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;aAC5F,IAAI,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,mBAAmB,CAAC;YAChD,MAAM,IAAI,0BAA0B,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;aACvD,IAAI,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,uBAAuB,CAAC;YACpD,MAAM,IAAI,6BAA6B,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;;YAC1F,MAAM,IAAI,wBAAwB,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;KAC9F;AACH,CAAC"}
@@ -1,7 +1,19 @@
1
1
  import { log } from '@unchainedshop/logger';
2
+ import { AuthenticationFailedError, AuthOperationFailedError, UserDeactivatedError, } from '../../../errors';
2
3
  export default async function loginWithWebAuthn(root, params, context) {
3
4
  const { modules } = context;
4
5
  log('mutation loginWithWebAuthn');
5
- return modules.accounts.loginWithService({ service: 'webAuthn', ...params }, context);
6
+ try {
7
+ const result = await modules.accounts.loginWithService({ service: 'webAuthn', ...params }, context);
8
+ return result;
9
+ }
10
+ catch (e) {
11
+ if (e.code === 'AuthenticationFailed')
12
+ throw new AuthenticationFailedError({});
13
+ else if (e.code === 'UserDeactivated')
14
+ throw new UserDeactivatedError({});
15
+ else
16
+ throw new AuthOperationFailedError({});
17
+ }
6
18
  }
7
19
  //# sourceMappingURL=loginWithWebAuthn.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"loginWithWebAuthn.js","sourceRoot":"","sources":["../../../../src/resolvers/mutations/accounts/loginWithWebAuthn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAG5C,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,iBAAiB,CAC7C,IAAU,EACV,MAEC,EACD,OAAgB;IAEhB,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAE5B,GAAG,CAAC,4BAA4B,CAAC,CAAC;IAElC,OAAO,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,MAAM,EAAE,EAAE,OAAO,CAAC,CAAC;AACxF,CAAC"}
1
+ {"version":3,"file":"loginWithWebAuthn.js","sourceRoot":"","sources":["../../../../src/resolvers/mutations/accounts/loginWithWebAuthn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EACL,yBAAyB,EACzB,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,iBAAiB,CAC7C,IAAU,EACV,MAEC,EACD,OAAgB;IAEhB,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAE5B,GAAG,CAAC,4BAA4B,CAAC,CAAC;IAClC,IAAI;QACF,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,MAAM,EAAE,EAAE,OAAO,CAAC,CAAC;QACpG,OAAO,MAAM,CAAC;KACf;IAAC,OAAO,CAAC,EAAE;QACV,IAAI,CAAC,CAAC,IAAI,KAAK,sBAAsB;YAAE,MAAM,IAAI,yBAAyB,CAAC,EAAE,CAAC,CAAC;aAC1E,IAAI,CAAC,CAAC,IAAI,KAAK,iBAAiB;YAAE,MAAM,IAAI,oBAAoB,CAAC,EAAE,CAAC,CAAC;;YACrE,MAAM,IAAI,wBAAwB,CAAC,EAAE,CAAC,CAAC;KAC7C;AACH,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { Context, Root } from '@unchainedshop/types/api';
2
- export default function logout(root: Root, params: {
2
+ export default function logout(root: Root, { token }: {
3
3
  token: string;
4
4
  }, context: Context): Promise<{
5
5
  success: boolean;
@@ -1,8 +1,12 @@
1
1
  import { log, LogLevel } from '@unchainedshop/logger';
2
- export default async function logout(root, params, context) {
2
+ export default async function logout(root, { token }, context) {
3
3
  const { modules, userId, setLoginToken } = context;
4
4
  log('mutation logout', { userId });
5
- const loggedOut = await modules.accounts.logout(params, context);
5
+ const loggedOut = await modules.accounts.logout({
6
+ token,
7
+ loginToken: context.loginToken,
8
+ userId: context.userId,
9
+ }, context);
6
10
  if (loggedOut.error) {
7
11
  log('Error while logging out', {
8
12
  logLevel: LogLevel.Error,
@@ -1 +1 @@
1
- {"version":3,"file":"logout.js","sourceRoot":"","sources":["../../../../src/resolvers/mutations/accounts/logout.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtD,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,MAAM,CAAC,IAAU,EAAE,MAAyB,EAAE,OAAgB;IAC1F,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;IAEnD,GAAG,CAAC,iBAAiB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAEnC,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEjE,IAAI,SAAS,CAAC,KAAK,EAAE;QACnB,GAAG,CAAC,yBAAyB,EAAE;YAC7B,QAAQ,EAAE,QAAQ,CAAC,KAAK;YACxB,GAAG,SAAS,CAAC,KAAK;SACnB,CAAC,CAAC;KACJ;SAAM;QACL,aAAa,CAAC,IAAI,CAAC,CAAC;KACrB;IAED,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC;AACxC,CAAC"}
1
+ {"version":3,"file":"logout.js","sourceRoot":"","sources":["../../../../src/resolvers/mutations/accounts/logout.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtD,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,MAAM,CAAC,IAAU,EAAE,EAAE,KAAK,EAAqB,EAAE,OAAgB;IAC7F,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;IAEnD,GAAG,CAAC,iBAAiB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAEnC,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,MAAM,CAC7C;QACE,KAAK;QACL,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,EACD,OAAO,CACR,CAAC;IAEF,IAAI,SAAS,CAAC,KAAK,EAAE;QACnB,GAAG,CAAC,yBAAyB,EAAE;YAC7B,QAAQ,EAAE,QAAQ,CAAC,KAAK;YACxB,GAAG,SAAS,CAAC,KAAK;SACnB,CAAC,CAAC;KACJ;SAAM;QACL,aAAa,CAAC,IAAI,CAAC,CAAC;KACrB;IAED,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC;AACxC,CAAC"}
@@ -2,7 +2,10 @@ import { log, LogLevel } from '@unchainedshop/logger';
2
2
  export default async function logoutAllSessions(root, _, context) {
3
3
  const { modules, userId, setLoginToken } = context;
4
4
  log('mutation logoutAllSessions', { userId });
5
- const loggedOut = await modules.accounts.logout({}, context);
5
+ const loggedOut = await modules.accounts.logout({
6
+ loginToken: context.loginToken,
7
+ userId: context.userId,
8
+ }, context);
6
9
  if (loggedOut.error) {
7
10
  log('Error while logging out', {
8
11
  logLevel: LogLevel.Error,
@@ -1 +1 @@
1
- {"version":3,"file":"logoutAllSessions.js","sourceRoot":"","sources":["../../../../src/resolvers/mutations/accounts/logoutAllSessions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtD,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAU,EAAE,CAAM,EAAE,OAAgB;IAClF,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;IAEnD,GAAG,CAAC,4BAA4B,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAE9C,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAE7D,IAAI,SAAS,CAAC,KAAK,EAAE;QACnB,GAAG,CAAC,yBAAyB,EAAE;YAC7B,QAAQ,EAAE,QAAQ,CAAC,KAAK;YACxB,GAAG,SAAS,CAAC,KAAK;SACnB,CAAC,CAAC;KACJ;SAAM;QACL,aAAa,CAAC,IAAI,CAAC,CAAC;KACrB;IAED,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC;AACxC,CAAC"}
1
+ {"version":3,"file":"logoutAllSessions.js","sourceRoot":"","sources":["../../../../src/resolvers/mutations/accounts/logoutAllSessions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtD,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAU,EAAE,CAAM,EAAE,OAAgB;IAClF,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;IAEnD,GAAG,CAAC,4BAA4B,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAE9C,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,MAAM,CAC7C;QACE,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,EACD,OAAO,CACR,CAAC;IAEF,IAAI,SAAS,CAAC,KAAK,EAAE;QACnB,GAAG,CAAC,yBAAyB,EAAE;YAC7B,QAAQ,EAAE,QAAQ,CAAC,KAAK;YACxB,GAAG,SAAS,CAAC,KAAK;SACnB,CAAC,CAAC;KACJ;SAAM;QACL,aAAa,CAAC,IAAI,CAAC,CAAC;KACrB;IAED,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC;AACxC,CAAC"}
@@ -1,6 +1,5 @@
1
1
  import { Context, Root } from '@unchainedshop/types/api';
2
2
  export default function resetPassword(root: Root, params: {
3
- newPassword?: string;
4
3
  newPlainPassword?: string;
5
4
  token: string;
6
5
  }, context: Context): Promise<{