@unchainedshop/api 2.12.2 → 3.0.0-alpha2

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 (469) hide show
  1. package/lib/api-index.d.ts +13 -4
  2. package/lib/api-index.d.ts.map +1 -1
  3. package/lib/api-index.js +4 -5
  4. package/lib/api-index.js.map +1 -1
  5. package/lib/context.d.ts +14 -1
  6. package/lib/context.d.ts.map +1 -1
  7. package/lib/context.js +10 -9
  8. package/lib/context.js.map +1 -1
  9. package/lib/createGraphQLServer.d.ts +1 -2
  10. package/lib/createGraphQLServer.d.ts.map +1 -1
  11. package/lib/createGraphQLServer.js +22 -31
  12. package/lib/createGraphQLServer.js.map +1 -1
  13. package/lib/errors.d.ts +3 -6
  14. package/lib/errors.d.ts.map +1 -1
  15. package/lib/errors.js +6 -9
  16. package/lib/errors.js.map +1 -1
  17. package/lib/events.d.ts +5 -0
  18. package/lib/events.d.ts.map +1 -0
  19. package/lib/events.js +8 -0
  20. package/lib/events.js.map +1 -0
  21. package/lib/express/createBulkImportMiddleware.d.ts +6 -1
  22. package/lib/express/createBulkImportMiddleware.d.ts.map +1 -1
  23. package/lib/express/createBulkImportMiddleware.js +2 -3
  24. package/lib/express/createBulkImportMiddleware.js.map +1 -1
  25. package/lib/express/createERCMetadataMiddleware.d.ts +4 -1
  26. package/lib/express/createERCMetadataMiddleware.d.ts.map +1 -1
  27. package/lib/express/createERCMetadataMiddleware.js +1 -3
  28. package/lib/express/createERCMetadataMiddleware.js.map +1 -1
  29. package/lib/express/index.d.ts +7 -6
  30. package/lib/express/index.d.ts.map +1 -1
  31. package/lib/express/index.js +98 -13
  32. package/lib/express/index.js.map +1 -1
  33. package/lib/express/passport/access-token-strategy.d.ts +10 -0
  34. package/lib/express/passport/access-token-strategy.d.ts.map +1 -0
  35. package/lib/express/passport/access-token-strategy.js +33 -0
  36. package/lib/express/passport/access-token-strategy.js.map +1 -0
  37. package/lib/express/passport/setup.d.ts +4 -0
  38. package/lib/express/passport/setup.d.ts.map +1 -0
  39. package/lib/express/passport/setup.js +30 -0
  40. package/lib/express/passport/setup.js.map +1 -0
  41. package/lib/loaders/index.d.ts +1 -2
  42. package/lib/loaders/index.d.ts.map +1 -1
  43. package/lib/loaders/index.js +2 -2
  44. package/lib/loaders/index.js.map +1 -1
  45. package/lib/locale-context.d.ts +7 -4
  46. package/lib/locale-context.d.ts.map +1 -1
  47. package/lib/locale-context.js +22 -23
  48. package/lib/locale-context.js.map +1 -1
  49. package/lib/resolvers/index.d.ts.map +1 -1
  50. package/lib/resolvers/index.js +0 -2
  51. package/lib/resolvers/index.js.map +1 -1
  52. package/lib/resolvers/mutations/accounts/addEmail.d.ts.map +1 -1
  53. package/lib/resolvers/mutations/accounts/addEmail.js +10 -2
  54. package/lib/resolvers/mutations/accounts/addEmail.js.map +1 -1
  55. package/lib/resolvers/mutations/accounts/addWebAuthnCredentials.js +1 -1
  56. package/lib/resolvers/mutations/accounts/addWebAuthnCredentials.js.map +1 -1
  57. package/lib/resolvers/mutations/accounts/changePassword.d.ts +2 -2
  58. package/lib/resolvers/mutations/accounts/changePassword.d.ts.map +1 -1
  59. package/lib/resolvers/mutations/accounts/changePassword.js +13 -7
  60. package/lib/resolvers/mutations/accounts/changePassword.js.map +1 -1
  61. package/lib/resolvers/mutations/accounts/createUser.d.ts +2 -3
  62. package/lib/resolvers/mutations/accounts/createUser.d.ts.map +1 -1
  63. package/lib/resolvers/mutations/accounts/createUser.js +21 -26
  64. package/lib/resolvers/mutations/accounts/createUser.js.map +1 -1
  65. package/lib/resolvers/mutations/accounts/createWebAuthnCredentialCreationOptions.d.ts +1 -1
  66. package/lib/resolvers/mutations/accounts/createWebAuthnCredentialCreationOptions.d.ts.map +1 -1
  67. package/lib/resolvers/mutations/accounts/createWebAuthnCredentialCreationOptions.js +2 -2
  68. package/lib/resolvers/mutations/accounts/createWebAuthnCredentialCreationOptions.js.map +1 -1
  69. package/lib/resolvers/mutations/accounts/createWebAuthnCredentialRequestOptions.d.ts +1 -1
  70. package/lib/resolvers/mutations/accounts/createWebAuthnCredentialRequestOptions.d.ts.map +1 -1
  71. package/lib/resolvers/mutations/accounts/createWebAuthnCredentialRequestOptions.js +3 -3
  72. package/lib/resolvers/mutations/accounts/createWebAuthnCredentialRequestOptions.js.map +1 -1
  73. package/lib/resolvers/mutations/accounts/enrollUser.d.ts +1 -1
  74. package/lib/resolvers/mutations/accounts/enrollUser.d.ts.map +1 -1
  75. package/lib/resolvers/mutations/accounts/enrollUser.js +13 -16
  76. package/lib/resolvers/mutations/accounts/enrollUser.js.map +1 -1
  77. package/lib/resolvers/mutations/accounts/forgotPassword.d.ts.map +1 -1
  78. package/lib/resolvers/mutations/accounts/forgotPassword.js +11 -8
  79. package/lib/resolvers/mutations/accounts/forgotPassword.js.map +1 -1
  80. package/lib/resolvers/mutations/accounts/loginAsGuest.d.ts +1 -2
  81. package/lib/resolvers/mutations/accounts/loginAsGuest.d.ts.map +1 -1
  82. package/lib/resolvers/mutations/accounts/loginAsGuest.js +18 -3
  83. package/lib/resolvers/mutations/accounts/loginAsGuest.js.map +1 -1
  84. package/lib/resolvers/mutations/accounts/loginWithPassword.d.ts +2 -4
  85. package/lib/resolvers/mutations/accounts/loginWithPassword.d.ts.map +1 -1
  86. package/lib/resolvers/mutations/accounts/loginWithPassword.js +23 -26
  87. package/lib/resolvers/mutations/accounts/loginWithPassword.js.map +1 -1
  88. package/lib/resolvers/mutations/accounts/loginWithWebAuthn.d.ts +1 -2
  89. package/lib/resolvers/mutations/accounts/loginWithWebAuthn.d.ts.map +1 -1
  90. package/lib/resolvers/mutations/accounts/loginWithWebAuthn.js +13 -14
  91. package/lib/resolvers/mutations/accounts/loginWithWebAuthn.js.map +1 -1
  92. package/lib/resolvers/mutations/accounts/logout.d.ts +1 -3
  93. package/lib/resolvers/mutations/accounts/logout.d.ts.map +1 -1
  94. package/lib/resolvers/mutations/accounts/logout.js +5 -18
  95. package/lib/resolvers/mutations/accounts/logout.js.map +1 -1
  96. package/lib/resolvers/mutations/accounts/removeEmail.js +1 -1
  97. package/lib/resolvers/mutations/accounts/removeEmail.js.map +1 -1
  98. package/lib/resolvers/mutations/accounts/resetPassword.d.ts +2 -3
  99. package/lib/resolvers/mutations/accounts/resetPassword.d.ts.map +1 -1
  100. package/lib/resolvers/mutations/accounts/resetPassword.js +48 -43
  101. package/lib/resolvers/mutations/accounts/resetPassword.js.map +1 -1
  102. package/lib/resolvers/mutations/accounts/sendEnrollmentEmail.d.ts.map +1 -1
  103. package/lib/resolvers/mutations/accounts/sendEnrollmentEmail.js +5 -1
  104. package/lib/resolvers/mutations/accounts/sendEnrollmentEmail.js.map +1 -1
  105. package/lib/resolvers/mutations/accounts/sendVerificationEmail.d.ts.map +1 -1
  106. package/lib/resolvers/mutations/accounts/sendVerificationEmail.js +15 -4
  107. package/lib/resolvers/mutations/accounts/sendVerificationEmail.js.map +1 -1
  108. package/lib/resolvers/mutations/accounts/setPassword.d.ts +1 -1
  109. package/lib/resolvers/mutations/accounts/setPassword.d.ts.map +1 -1
  110. package/lib/resolvers/mutations/accounts/setPassword.js +11 -3
  111. package/lib/resolvers/mutations/accounts/setPassword.js.map +1 -1
  112. package/lib/resolvers/mutations/accounts/setUsername.d.ts.map +1 -1
  113. package/lib/resolvers/mutations/accounts/setUsername.js +10 -2
  114. package/lib/resolvers/mutations/accounts/setUsername.js.map +1 -1
  115. package/lib/resolvers/mutations/accounts/verifyEmail.d.ts +1 -2
  116. package/lib/resolvers/mutations/accounts/verifyEmail.d.ts.map +1 -1
  117. package/lib/resolvers/mutations/accounts/verifyEmail.js +14 -6
  118. package/lib/resolvers/mutations/accounts/verifyEmail.js.map +1 -1
  119. package/lib/resolvers/mutations/assortments/createAssortment.d.ts +5 -7
  120. package/lib/resolvers/mutations/assortments/createAssortment.d.ts.map +1 -1
  121. package/lib/resolvers/mutations/assortments/createAssortment.js +7 -5
  122. package/lib/resolvers/mutations/assortments/createAssortment.js.map +1 -1
  123. package/lib/resolvers/mutations/countries/updateCountry.d.ts +3 -1
  124. package/lib/resolvers/mutations/countries/updateCountry.d.ts.map +1 -1
  125. package/lib/resolvers/mutations/countries/updateCountry.js +5 -1
  126. package/lib/resolvers/mutations/countries/updateCountry.js.map +1 -1
  127. package/lib/resolvers/mutations/enrollments/createEnrollment.d.ts.map +1 -1
  128. package/lib/resolvers/mutations/enrollments/createEnrollment.js +2 -1
  129. package/lib/resolvers/mutations/enrollments/createEnrollment.js.map +1 -1
  130. package/lib/resolvers/mutations/filters/createFilter.d.ts +4 -5
  131. package/lib/resolvers/mutations/filters/createFilter.d.ts.map +1 -1
  132. package/lib/resolvers/mutations/filters/createFilter.js +7 -2
  133. package/lib/resolvers/mutations/filters/createFilter.js.map +1 -1
  134. package/lib/resolvers/mutations/filters/createFilterOption.d.ts +3 -4
  135. package/lib/resolvers/mutations/filters/createFilterOption.d.ts.map +1 -1
  136. package/lib/resolvers/mutations/filters/createFilterOption.js +5 -2
  137. package/lib/resolvers/mutations/filters/createFilterOption.js.map +1 -1
  138. package/lib/resolvers/mutations/index.d.ts +0 -12
  139. package/lib/resolvers/mutations/index.d.ts.map +1 -1
  140. package/lib/resolvers/mutations/index.js +0 -24
  141. package/lib/resolvers/mutations/index.js.map +1 -1
  142. package/lib/resolvers/mutations/orders/addCartDiscount.d.ts.map +1 -1
  143. package/lib/resolvers/mutations/orders/addCartDiscount.js +3 -1
  144. package/lib/resolvers/mutations/orders/addCartDiscount.js.map +1 -1
  145. package/lib/resolvers/mutations/orders/addCartProduct.js +1 -0
  146. package/lib/resolvers/mutations/orders/addCartProduct.js.map +1 -1
  147. package/lib/resolvers/mutations/orders/addCartQuotation.d.ts.map +1 -1
  148. package/lib/resolvers/mutations/orders/addCartQuotation.js +3 -1
  149. package/lib/resolvers/mutations/orders/addCartQuotation.js.map +1 -1
  150. package/lib/resolvers/mutations/orders/addMultipleCartProducts.d.ts.map +1 -1
  151. package/lib/resolvers/mutations/orders/addMultipleCartProducts.js +3 -1
  152. package/lib/resolvers/mutations/orders/addMultipleCartProducts.js.map +1 -1
  153. package/lib/resolvers/mutations/orders/emptyCart.js +2 -2
  154. package/lib/resolvers/mutations/orders/emptyCart.js.map +1 -1
  155. package/lib/resolvers/mutations/orders/removeCartDiscount.d.ts.map +1 -1
  156. package/lib/resolvers/mutations/orders/removeCartDiscount.js +3 -1
  157. package/lib/resolvers/mutations/orders/removeCartDiscount.js.map +1 -1
  158. package/lib/resolvers/mutations/orders/removeCartItem.d.ts.map +1 -1
  159. package/lib/resolvers/mutations/orders/removeCartItem.js +3 -1
  160. package/lib/resolvers/mutations/orders/removeCartItem.js.map +1 -1
  161. package/lib/resolvers/mutations/orders/setOrderDeliveryProvider.d.ts.map +1 -1
  162. package/lib/resolvers/mutations/orders/setOrderDeliveryProvider.js +2 -2
  163. package/lib/resolvers/mutations/orders/setOrderDeliveryProvider.js.map +1 -1
  164. package/lib/resolvers/mutations/orders/setOrderPaymentProvider.d.ts.map +1 -1
  165. package/lib/resolvers/mutations/orders/setOrderPaymentProvider.js +2 -1
  166. package/lib/resolvers/mutations/orders/setOrderPaymentProvider.js.map +1 -1
  167. package/lib/resolvers/mutations/orders/updateCart.d.ts.map +1 -1
  168. package/lib/resolvers/mutations/orders/updateCart.js +5 -4
  169. package/lib/resolvers/mutations/orders/updateCart.js.map +1 -1
  170. package/lib/resolvers/mutations/orders/updateCartItem.d.ts.map +1 -1
  171. package/lib/resolvers/mutations/orders/updateCartItem.js +3 -1
  172. package/lib/resolvers/mutations/orders/updateCartItem.js.map +1 -1
  173. package/lib/resolvers/mutations/orders/updateOrderDeliveryPickUp.js +6 -2
  174. package/lib/resolvers/mutations/orders/updateOrderDeliveryPickUp.js.map +1 -1
  175. package/lib/resolvers/mutations/orders/updateOrderDeliveryShipping.d.ts.map +1 -1
  176. package/lib/resolvers/mutations/orders/updateOrderDeliveryShipping.js +8 -1
  177. package/lib/resolvers/mutations/orders/updateOrderDeliveryShipping.js.map +1 -1
  178. package/lib/resolvers/mutations/orders/updateOrderPaymentCard.d.ts.map +1 -1
  179. package/lib/resolvers/mutations/orders/updateOrderPaymentCard.js +3 -1
  180. package/lib/resolvers/mutations/orders/updateOrderPaymentCard.js.map +1 -1
  181. package/lib/resolvers/mutations/orders/updateOrderPaymentGeneric.d.ts.map +1 -1
  182. package/lib/resolvers/mutations/orders/updateOrderPaymentGeneric.js +3 -1
  183. package/lib/resolvers/mutations/orders/updateOrderPaymentGeneric.js.map +1 -1
  184. package/lib/resolvers/mutations/orders/updateOrderPaymentInvoice.d.ts.map +1 -1
  185. package/lib/resolvers/mutations/orders/updateOrderPaymentInvoice.js +3 -1
  186. package/lib/resolvers/mutations/orders/updateOrderPaymentInvoice.js.map +1 -1
  187. package/lib/resolvers/mutations/products/createProduct.d.ts +5 -6
  188. package/lib/resolvers/mutations/products/createProduct.d.ts.map +1 -1
  189. package/lib/resolvers/mutations/products/createProduct.js +6 -5
  190. package/lib/resolvers/mutations/products/createProduct.js.map +1 -1
  191. package/lib/resolvers/mutations/products/createProductVariation.d.ts +3 -3
  192. package/lib/resolvers/mutations/products/createProductVariation.d.ts.map +1 -1
  193. package/lib/resolvers/mutations/products/createProductVariation.js +7 -4
  194. package/lib/resolvers/mutations/products/createProductVariation.js.map +1 -1
  195. package/lib/resolvers/mutations/products/createProductVariationOption.d.ts +4 -5
  196. package/lib/resolvers/mutations/products/createProductVariationOption.d.ts.map +1 -1
  197. package/lib/resolvers/mutations/products/createProductVariationOption.js +8 -5
  198. package/lib/resolvers/mutations/products/createProductVariationOption.js.map +1 -1
  199. package/lib/resolvers/mutations/warehousing/exportToken.d.ts.map +1 -1
  200. package/lib/resolvers/mutations/warehousing/exportToken.js +20 -20
  201. package/lib/resolvers/mutations/warehousing/exportToken.js.map +1 -1
  202. package/lib/resolvers/queries/events/events.js +1 -1
  203. package/lib/resolvers/queries/events/events.js.map +1 -1
  204. package/lib/resolvers/queries/index.d.ts +0 -2
  205. package/lib/resolvers/queries/index.d.ts.map +1 -1
  206. package/lib/resolvers/queries/index.js +0 -2
  207. package/lib/resolvers/queries/index.js.map +1 -1
  208. package/lib/resolvers/queries/shopInfo.d.ts +0 -2
  209. package/lib/resolvers/queries/shopInfo.d.ts.map +1 -1
  210. package/lib/resolvers/queries/shopInfo.js +0 -3
  211. package/lib/resolvers/queries/shopInfo.js.map +1 -1
  212. package/lib/resolvers/queries/users/validateResetPasswordToken.js +1 -1
  213. package/lib/resolvers/queries/users/validateResetPasswordToken.js.map +1 -1
  214. package/lib/resolvers/queries/users/validateVerifyEmailToken.js +1 -1
  215. package/lib/resolvers/queries/users/validateVerifyEmailToken.js.map +1 -1
  216. package/lib/resolvers/type/assortment/assortment-types.d.ts.map +1 -1
  217. package/lib/resolvers/type/assortment/assortment-types.js +1 -0
  218. package/lib/resolvers/type/assortment/assortment-types.js.map +1 -1
  219. package/lib/resolvers/type/country-types.js +2 -2
  220. package/lib/resolvers/type/country-types.js.map +1 -1
  221. package/lib/resolvers/type/delivery-provider-types.d.ts.map +1 -1
  222. package/lib/resolvers/type/delivery-provider-types.js +2 -5
  223. package/lib/resolvers/type/delivery-provider-types.js.map +1 -1
  224. package/lib/resolvers/type/event-types.d.ts +1 -1
  225. package/lib/resolvers/type/event-types.d.ts.map +1 -1
  226. package/lib/resolvers/type/index.d.ts +4 -36
  227. package/lib/resolvers/type/index.d.ts.map +1 -1
  228. package/lib/resolvers/type/index.js +2 -6
  229. package/lib/resolvers/type/index.js.map +1 -1
  230. package/lib/resolvers/type/login-method-response-types.d.ts +3 -27
  231. package/lib/resolvers/type/login-method-response-types.d.ts.map +1 -1
  232. package/lib/resolvers/type/login-method-response-types.js +1 -6
  233. package/lib/resolvers/type/login-method-response-types.js.map +1 -1
  234. package/lib/resolvers/type/payment/payment-provider-types.d.ts.map +1 -1
  235. package/lib/resolvers/type/payment/payment-provider-types.js +2 -5
  236. package/lib/resolvers/type/payment/payment-provider-types.js.map +1 -1
  237. package/lib/resolvers/type/product/product-bundle-types.d.ts.map +1 -1
  238. package/lib/resolvers/type/product/product-configurable-types.d.ts.map +1 -1
  239. package/lib/resolvers/type/product/product-configurable-types.js +2 -8
  240. package/lib/resolvers/type/product/product-configurable-types.js.map +1 -1
  241. package/lib/resolvers/type/product/product-plan-types.d.ts.map +1 -1
  242. package/lib/resolvers/type/product/product-plan-types.js +4 -13
  243. package/lib/resolvers/type/product/product-plan-types.js.map +1 -1
  244. package/lib/resolvers/type/product/product-simple-types.d.ts.map +1 -1
  245. package/lib/resolvers/type/product/product-tokenized-types.d.ts.map +1 -1
  246. package/lib/resolvers/type/product/product-types.d.ts.map +1 -1
  247. package/lib/resolvers/type/product/product-types.js +1 -0
  248. package/lib/resolvers/type/product/product-types.js.map +1 -1
  249. package/lib/resolvers/type/user-types.d.ts +1 -3
  250. package/lib/resolvers/type/user-types.d.ts.map +1 -1
  251. package/lib/resolvers/type/user-types.js +0 -14
  252. package/lib/resolvers/type/user-types.js.map +1 -1
  253. package/lib/resolvers/type/webauthn-credentials-types.js +1 -1
  254. package/lib/resolvers/type/webauthn-credentials-types.js.map +1 -1
  255. package/lib/roles/all.d.ts.map +1 -1
  256. package/lib/roles/all.js +1 -7
  257. package/lib/roles/all.js.map +1 -1
  258. package/lib/roles/index.d.ts.map +1 -1
  259. package/lib/roles/index.js +0 -6
  260. package/lib/roles/index.js.map +1 -1
  261. package/lib/roles/loggedIn.d.ts.map +1 -1
  262. package/lib/roles/loggedIn.js +0 -4
  263. package/lib/roles/loggedIn.js.map +1 -1
  264. package/lib/schema/directives.d.ts.map +1 -1
  265. package/lib/schema/directives.js +1 -5
  266. package/lib/schema/directives.js.map +1 -1
  267. package/lib/schema/inputTypes.d.ts.map +1 -1
  268. package/lib/schema/inputTypes.js +13 -26
  269. package/lib/schema/inputTypes.js.map +1 -1
  270. package/lib/schema/mutation.d.ts.map +1 -1
  271. package/lib/schema/mutation.js +24 -83
  272. package/lib/schema/mutation.js.map +1 -1
  273. package/lib/schema/query.d.ts.map +1 -1
  274. package/lib/schema/query.js +0 -4
  275. package/lib/schema/query.js.map +1 -1
  276. package/lib/schema/scalars.d.ts.map +1 -1
  277. package/lib/schema/scalars.js +0 -1
  278. package/lib/schema/scalars.js.map +1 -1
  279. package/lib/schema/types/product/product.js +1 -1
  280. package/lib/schema/types/product/tokenized-product.js +1 -1
  281. package/lib/schema/types/shop.d.ts.map +1 -1
  282. package/lib/schema/types/shop.js +0 -1
  283. package/lib/schema/types/shop.js.map +1 -1
  284. package/lib/schema/types/user.d.ts.map +1 -1
  285. package/lib/schema/types/user.js +2 -21
  286. package/lib/schema/types/user.js.map +1 -1
  287. package/package.json +23 -17
  288. package/src/api-index.ts +19 -14
  289. package/src/context.ts +23 -10
  290. package/src/createGraphQLServer.ts +25 -36
  291. package/src/errors.ts +15 -21
  292. package/src/events.ts +8 -0
  293. package/src/express/createBulkImportMiddleware.ts +9 -4
  294. package/src/express/createERCMetadataMiddleware.ts +6 -4
  295. package/src/express/index.ts +127 -21
  296. package/src/express/passport/access-token-strategy.ts +39 -0
  297. package/src/express/passport/setup.ts +44 -0
  298. package/src/loaders/index.ts +2 -8
  299. package/src/locale-context.ts +60 -52
  300. package/src/resolvers/index.ts +0 -2
  301. package/src/resolvers/mutations/accounts/addEmail.ts +7 -2
  302. package/src/resolvers/mutations/accounts/addWebAuthnCredentials.ts +1 -1
  303. package/src/resolvers/mutations/accounts/changePassword.ts +18 -8
  304. package/src/resolvers/mutations/accounts/createUser.ts +30 -37
  305. package/src/resolvers/mutations/accounts/createWebAuthnCredentialCreationOptions.ts +3 -3
  306. package/src/resolvers/mutations/accounts/createWebAuthnCredentialRequestOptions.ts +4 -4
  307. package/src/resolvers/mutations/accounts/enrollUser.ts +18 -17
  308. package/src/resolvers/mutations/accounts/forgotPassword.ts +11 -7
  309. package/src/resolvers/mutations/accounts/loginAsGuest.ts +23 -4
  310. package/src/resolvers/mutations/accounts/loginWithPassword.ts +33 -36
  311. package/src/resolvers/mutations/accounts/loginWithWebAuthn.ts +22 -15
  312. package/src/resolvers/mutations/accounts/logout.ts +5 -21
  313. package/src/resolvers/mutations/accounts/removeEmail.ts +1 -1
  314. package/src/resolvers/mutations/accounts/resetPassword.ts +50 -53
  315. package/src/resolvers/mutations/accounts/sendEnrollmentEmail.ts +5 -1
  316. package/src/resolvers/mutations/accounts/sendVerificationEmail.ts +13 -4
  317. package/src/resolvers/mutations/accounts/setPassword.ts +9 -4
  318. package/src/resolvers/mutations/accounts/setUsername.ts +8 -2
  319. package/src/resolvers/mutations/accounts/verifyEmail.ts +15 -6
  320. package/src/resolvers/mutations/assortments/createAssortment.ts +16 -7
  321. package/src/resolvers/mutations/countries/updateCountry.ts +7 -2
  322. package/src/resolvers/mutations/enrollments/createEnrollment.ts +2 -1
  323. package/src/resolvers/mutations/filters/createFilter.ts +8 -3
  324. package/src/resolvers/mutations/filters/createFilterOption.ts +9 -7
  325. package/src/resolvers/mutations/index.ts +0 -24
  326. package/src/resolvers/mutations/orders/addCartDiscount.ts +3 -1
  327. package/src/resolvers/mutations/orders/addCartProduct.ts +1 -1
  328. package/src/resolvers/mutations/orders/addCartQuotation.ts +3 -1
  329. package/src/resolvers/mutations/orders/addMultipleCartProducts.ts +23 -19
  330. package/src/resolvers/mutations/orders/emptyCart.ts +2 -2
  331. package/src/resolvers/mutations/orders/removeCartDiscount.ts +3 -1
  332. package/src/resolvers/mutations/orders/removeCartItem.ts +3 -1
  333. package/src/resolvers/mutations/orders/setOrderDeliveryProvider.ts +2 -3
  334. package/src/resolvers/mutations/orders/setOrderPaymentProvider.ts +2 -1
  335. package/src/resolvers/mutations/orders/updateCart.ts +5 -4
  336. package/src/resolvers/mutations/orders/updateCartItem.ts +3 -1
  337. package/src/resolvers/mutations/orders/updateOrderDeliveryPickUp.ts +7 -7
  338. package/src/resolvers/mutations/orders/updateOrderDeliveryShipping.ts +8 -1
  339. package/src/resolvers/mutations/orders/updateOrderPaymentCard.ts +3 -1
  340. package/src/resolvers/mutations/orders/updateOrderPaymentGeneric.ts +3 -1
  341. package/src/resolvers/mutations/orders/updateOrderPaymentInvoice.ts +3 -1
  342. package/src/resolvers/mutations/products/createProduct.ts +9 -7
  343. package/src/resolvers/mutations/products/createProductVariation.ts +11 -6
  344. package/src/resolvers/mutations/products/createProductVariationOption.ts +13 -6
  345. package/src/resolvers/mutations/warehousing/exportToken.ts +19 -20
  346. package/src/resolvers/queries/events/events.ts +1 -1
  347. package/src/resolvers/queries/index.ts +0 -2
  348. package/src/resolvers/queries/shopInfo.ts +0 -5
  349. package/src/resolvers/queries/users/validateResetPasswordToken.ts +1 -1
  350. package/src/resolvers/queries/users/validateVerifyEmailToken.ts +1 -1
  351. package/src/resolvers/type/assortment/assortment-types.ts +1 -0
  352. package/src/resolvers/type/country-types.ts +2 -2
  353. package/src/resolvers/type/delivery-provider-types.ts +2 -10
  354. package/src/resolvers/type/event-types.ts +1 -1
  355. package/src/resolvers/type/index.ts +2 -6
  356. package/src/resolvers/type/login-method-response-types.ts +1 -12
  357. package/src/resolvers/type/payment/payment-provider-types.ts +2 -9
  358. package/src/resolvers/type/product/product-configurable-types.ts +3 -16
  359. package/src/resolvers/type/product/product-plan-types.ts +5 -25
  360. package/src/resolvers/type/product/product-types.ts +1 -0
  361. package/src/resolvers/type/user-types.ts +1 -17
  362. package/src/resolvers/type/webauthn-credentials-types.ts +1 -1
  363. package/src/roles/all.ts +1 -7
  364. package/src/roles/index.ts +0 -6
  365. package/src/roles/loggedIn.ts +0 -4
  366. package/src/schema/directives.ts +1 -5
  367. package/src/schema/inputTypes.ts +13 -26
  368. package/src/schema/mutation.ts +24 -83
  369. package/src/schema/query.ts +0 -4
  370. package/src/schema/scalars.ts +0 -1
  371. package/src/schema/types/product/product.ts +1 -1
  372. package/src/schema/types/product/tokenized-product.ts +1 -1
  373. package/src/schema/types/shop.ts +0 -1
  374. package/src/schema/types/user.ts +2 -21
  375. package/lib/express/createApolloMiddleware.d.ts +0 -4
  376. package/lib/express/createApolloMiddleware.d.ts.map +0 -1
  377. package/lib/express/createApolloMiddleware.js +0 -36
  378. package/lib/express/createApolloMiddleware.js.map +0 -1
  379. package/lib/express/createSingleSignOnMiddleware.d.ts +0 -5
  380. package/lib/express/createSingleSignOnMiddleware.d.ts.map +0 -1
  381. package/lib/express/createSingleSignOnMiddleware.js +0 -73
  382. package/lib/express/createSingleSignOnMiddleware.js.map +0 -1
  383. package/lib/hashPassword.d.ts +0 -2
  384. package/lib/hashPassword.d.ts.map +0 -1
  385. package/lib/hashPassword.js +0 -5
  386. package/lib/hashPassword.js.map +0 -1
  387. package/lib/resolvers/mutations/accounts/buildSecretTOTPAuthURL.d.ts +0 -3
  388. package/lib/resolvers/mutations/accounts/buildSecretTOTPAuthURL.d.ts.map +0 -1
  389. package/lib/resolvers/mutations/accounts/buildSecretTOTPAuthURL.js +0 -6
  390. package/lib/resolvers/mutations/accounts/buildSecretTOTPAuthURL.js.map +0 -1
  391. package/lib/resolvers/mutations/accounts/disableTOTP.d.ts +0 -6
  392. package/lib/resolvers/mutations/accounts/disableTOTP.d.ts.map +0 -1
  393. package/lib/resolvers/mutations/accounts/disableTOTP.js +0 -27
  394. package/lib/resolvers/mutations/accounts/disableTOTP.js.map +0 -1
  395. package/lib/resolvers/mutations/accounts/enableTOTP.d.ts +0 -6
  396. package/lib/resolvers/mutations/accounts/enableTOTP.d.ts.map +0 -1
  397. package/lib/resolvers/mutations/accounts/enableTOTP.js +0 -20
  398. package/lib/resolvers/mutations/accounts/enableTOTP.js.map +0 -1
  399. package/lib/resolvers/mutations/accounts/impersonate.d.ts +0 -10
  400. package/lib/resolvers/mutations/accounts/impersonate.d.ts.map +0 -1
  401. package/lib/resolvers/mutations/accounts/impersonate.js +0 -15
  402. package/lib/resolvers/mutations/accounts/impersonate.js.map +0 -1
  403. package/lib/resolvers/mutations/accounts/linkOAuthAccount.d.ts +0 -7
  404. package/lib/resolvers/mutations/accounts/linkOAuthAccount.d.ts.map +0 -1
  405. package/lib/resolvers/mutations/accounts/linkOAuthAccount.js +0 -30
  406. package/lib/resolvers/mutations/accounts/linkOAuthAccount.js.map +0 -1
  407. package/lib/resolvers/mutations/accounts/loginWithOAuth.d.ts +0 -8
  408. package/lib/resolvers/mutations/accounts/loginWithOAuth.d.ts.map +0 -1
  409. package/lib/resolvers/mutations/accounts/loginWithOAuth.js +0 -25
  410. package/lib/resolvers/mutations/accounts/loginWithOAuth.js.map +0 -1
  411. package/lib/resolvers/mutations/accounts/logoutAllSessions.d.ts +0 -5
  412. package/lib/resolvers/mutations/accounts/logoutAllSessions.d.ts.map +0 -1
  413. package/lib/resolvers/mutations/accounts/logoutAllSessions.js +0 -20
  414. package/lib/resolvers/mutations/accounts/logoutAllSessions.js.map +0 -1
  415. package/lib/resolvers/mutations/accounts/stopImpersonation.d.ts +0 -7
  416. package/lib/resolvers/mutations/accounts/stopImpersonation.d.ts.map +0 -1
  417. package/lib/resolvers/mutations/accounts/stopImpersonation.js +0 -21
  418. package/lib/resolvers/mutations/accounts/stopImpersonation.js.map +0 -1
  419. package/lib/resolvers/mutations/accounts/unlinkOAuthAccount.d.ts +0 -6
  420. package/lib/resolvers/mutations/accounts/unlinkOAuthAccount.d.ts.map +0 -1
  421. package/lib/resolvers/mutations/accounts/unlinkOAuthAccount.js +0 -13
  422. package/lib/resolvers/mutations/accounts/unlinkOAuthAccount.js.map +0 -1
  423. package/lib/resolvers/mutations/assortments/addAssortmentMedia.d.ts +0 -6
  424. package/lib/resolvers/mutations/assortments/addAssortmentMedia.d.ts.map +0 -1
  425. package/lib/resolvers/mutations/assortments/addAssortmentMedia.js +0 -18
  426. package/lib/resolvers/mutations/assortments/addAssortmentMedia.js.map +0 -1
  427. package/lib/resolvers/mutations/products/addProductMedia.d.ts +0 -6
  428. package/lib/resolvers/mutations/products/addProductMedia.d.ts.map +0 -1
  429. package/lib/resolvers/mutations/products/addProductMedia.js +0 -18
  430. package/lib/resolvers/mutations/products/addProductMedia.js.map +0 -1
  431. package/lib/resolvers/mutations/users/updateUserAvatar.d.ts +0 -6
  432. package/lib/resolvers/mutations/users/updateUserAvatar.d.ts.map +0 -1
  433. package/lib/resolvers/mutations/users/updateUserAvatar.js +0 -22
  434. package/lib/resolvers/mutations/users/updateUserAvatar.js.map +0 -1
  435. package/lib/resolvers/queries/users/impersonator.d.ts +0 -3
  436. package/lib/resolvers/queries/users/impersonator.d.ts.map +0 -1
  437. package/lib/resolvers/queries/users/impersonator.js +0 -12
  438. package/lib/resolvers/queries/users/impersonator.js.map +0 -1
  439. package/lib/resolvers/type/oauth-account.d.ts +0 -6
  440. package/lib/resolvers/type/oauth-account.d.ts.map +0 -1
  441. package/lib/resolvers/type/oauth-account.js +0 -7
  442. package/lib/resolvers/type/oauth-account.js.map +0 -1
  443. package/lib/resolvers/type/oauth-provider.d.ts +0 -6
  444. package/lib/resolvers/type/oauth-provider.d.ts.map +0 -1
  445. package/lib/resolvers/type/oauth-provider.js +0 -6
  446. package/lib/resolvers/type/oauth-provider.js.map +0 -1
  447. package/lib/user-context.d.ts +0 -7
  448. package/lib/user-context.d.ts.map +0 -1
  449. package/lib/user-context.js +0 -64
  450. package/lib/user-context.js.map +0 -1
  451. package/src/express/createApolloMiddleware.ts +0 -40
  452. package/src/express/createSingleSignOnMiddleware.ts +0 -92
  453. package/src/hashPassword.ts +0 -5
  454. package/src/resolvers/mutations/accounts/buildSecretTOTPAuthURL.ts +0 -8
  455. package/src/resolvers/mutations/accounts/disableTOTP.ts +0 -36
  456. package/src/resolvers/mutations/accounts/enableTOTP.ts +0 -23
  457. package/src/resolvers/mutations/accounts/impersonate.ts +0 -21
  458. package/src/resolvers/mutations/accounts/linkOAuthAccount.ts +0 -51
  459. package/src/resolvers/mutations/accounts/loginWithOAuth.ts +0 -38
  460. package/src/resolvers/mutations/accounts/logoutAllSessions.ts +0 -27
  461. package/src/resolvers/mutations/accounts/stopImpersonation.ts +0 -31
  462. package/src/resolvers/mutations/accounts/unlinkOAuthAccount.ts +0 -24
  463. package/src/resolvers/mutations/assortments/addAssortmentMedia.ts +0 -26
  464. package/src/resolvers/mutations/products/addProductMedia.ts +0 -24
  465. package/src/resolvers/mutations/users/updateUserAvatar.ts +0 -39
  466. package/src/resolvers/queries/users/impersonator.ts +0 -19
  467. package/src/resolvers/type/oauth-account.ts +0 -8
  468. package/src/resolvers/type/oauth-provider.ts +0 -5
  469. package/src/user-context.ts +0 -87
@@ -1 +0,0 @@
1
- {"version":3,"file":"addAssortmentMedia.d.ts","sourceRoot":"","sources":["../../../../src/resolvers/mutations/assortments/addAssortmentMedia.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAG5D,wBAA8B,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE;;;CAAA,EAAE,OAAO,EAAE,OAAO,gFAqBrG"}
@@ -1,18 +0,0 @@
1
- import { log } from '@unchainedshop/logger';
2
- import { AssortmentNotFoundError, InvalidIdError } from '../../../errors.js';
3
- export default async function addAssortmentMedia(root, { media, assortmentId }, context) {
4
- const { modules, services, userId } = context;
5
- log(`mutation addAssortmentMedia ${assortmentId}`, { userId });
6
- if (!assortmentId)
7
- throw new InvalidIdError({ assortmentId });
8
- if (!(await modules.assortments.assortmentExists({ assortmentId })))
9
- throw new AssortmentNotFoundError({ assortmentId });
10
- const file = await services.files.uploadFileFromStream({
11
- directoryName: 'assortment-media',
12
- rawFile: media,
13
- meta: {},
14
- }, context);
15
- const assortmentMedia = await modules.assortments.media.create({ assortmentId, mediaId: file._id });
16
- return assortmentMedia;
17
- }
18
- //# sourceMappingURL=addAssortmentMedia.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"addAssortmentMedia.js","sourceRoot":"","sources":["../../../../src/resolvers/mutations/assortments/addAssortmentMedia.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAE7E,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAAU,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,OAAgB;IACpG,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAC9C,GAAG,CAAC,+BAA+B,YAAY,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAE/D,IAAI,CAAC,YAAY;QAAE,MAAM,IAAI,cAAc,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;IAE9D,IAAI,CAAC,CAAC,MAAM,OAAO,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;QACjE,MAAM,IAAI,uBAAuB,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;IAEtD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,oBAAoB,CACpD;QACE,aAAa,EAAE,kBAAkB;QACjC,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,EAAE;KACT,EACD,OAAO,CACR,CAAC;IAEF,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAEpG,OAAO,eAAe,CAAC;AACzB,CAAC"}
@@ -1,6 +0,0 @@
1
- import { Context, Root } from '@unchainedshop/types/api.js';
2
- export default function addProductMedia(root: Root, { media, productId }: {
3
- media: any;
4
- productId: any;
5
- }, context: Context): Promise<import("@unchainedshop/types/products.media.js").ProductMedia>;
6
- //# sourceMappingURL=addProductMedia.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"addProductMedia.d.ts","sourceRoot":"","sources":["../../../../src/resolvers/mutations/products/addProductMedia.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAG5D,wBAA8B,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;;;CAAA,EAAE,OAAO,EAAE,OAAO,0EAmB/F"}
@@ -1,18 +0,0 @@
1
- import { log } from '@unchainedshop/logger';
2
- import { ProductNotFoundError, InvalidIdError } from '../../../errors.js';
3
- export default async function addProductMedia(root, { media, productId }, context) {
4
- const { modules, services, userId } = context;
5
- log(`mutation addProductMedia ${productId}`, { userId });
6
- if (!productId)
7
- throw new InvalidIdError({ productId });
8
- const product = await modules.products.findProduct({ productId });
9
- if (!product)
10
- throw new ProductNotFoundError({ productId });
11
- const file = await services.files.uploadFileFromStream({
12
- directoryName: 'product-media',
13
- rawFile: media,
14
- meta: { productId },
15
- }, context);
16
- return modules.products.media.create({ productId, mediaId: file._id });
17
- }
18
- //# sourceMappingURL=addProductMedia.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"addProductMedia.js","sourceRoot":"","sources":["../../../../src/resolvers/mutations/products/addProductMedia.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAE1E,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,eAAe,CAAC,IAAU,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,OAAgB;IAC9F,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAC9C,GAAG,CAAC,4BAA4B,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAEzD,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,cAAc,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;IAExD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;IAClE,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,oBAAoB,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;IAE5D,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,oBAAoB,CACpD;QACE,aAAa,EAAE,eAAe;QAC9B,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,EAAE,SAAS,EAAE;KACpB,EACD,OAAO,CACR,CAAC;IAEF,OAAO,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;AACzE,CAAC"}
@@ -1,6 +0,0 @@
1
- import { Context, Root } from '@unchainedshop/types/api.js';
2
- export default function updateUserAvatar(root: Root, params: {
3
- avatar: any;
4
- userId: string;
5
- }, context: Context): Promise<import("@unchainedshop/types/user.js").User>;
6
- //# sourceMappingURL=updateUserAvatar.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"updateUserAvatar.d.ts","sourceRoot":"","sources":["../../../../src/resolvers/mutations/users/updateUserAvatar.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAG5D,wBAA8B,gBAAgB,CAC5C,IAAI,EAAE,IAAI,EACV,MAAM,EAAE;IAAE,MAAM,EAAE,GAAG,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EACvC,OAAO,EAAE,OAAO,wDA+BjB"}
@@ -1,22 +0,0 @@
1
- import { log } from '@unchainedshop/logger';
2
- import { UserNotFoundError } from '../../../errors.js';
3
- export default async function updateUserAvatar(root, params, context) {
4
- const { modules, services, userId } = context;
5
- const normalizedUserId = params.userId || userId;
6
- log(`mutation updateUserAvatar ${normalizedUserId}`, { userId });
7
- if (!(await modules.users.userExists({ userId: normalizedUserId })))
8
- throw new UserNotFoundError({ userId: normalizedUserId });
9
- const user = await modules.users.findUserById(normalizedUserId);
10
- const file = await services.files.uploadFileFromStream({
11
- directoryName: 'user-avatars',
12
- rawFile: params.avatar,
13
- meta: { userId: normalizedUserId },
14
- }, context);
15
- if (user?.avatarId) {
16
- await services.files.removeFiles({
17
- fileIds: [user.avatarId],
18
- }, context);
19
- }
20
- return modules.users.updateAvatar(normalizedUserId, file._id);
21
- }
22
- //# sourceMappingURL=updateUserAvatar.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"updateUserAvatar.js","sourceRoot":"","sources":["../../../../src/resolvers/mutations/users/updateUserAvatar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,gBAAgB,CAC5C,IAAU,EACV,MAAuC,EACvC,OAAgB;IAEhB,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAC9C,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC;IAEjD,GAAG,CAAC,6BAA6B,gBAAgB,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAEjE,IAAI,CAAC,CAAC,MAAM,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;QACjE,MAAM,IAAI,iBAAiB,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;IAE5D,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;IAEhE,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,oBAAoB,CACpD;QACE,aAAa,EAAE,cAAc;QAC7B,OAAO,EAAE,MAAM,CAAC,MAAM;QACtB,IAAI,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE;KACnC,EACD,OAAO,CACR,CAAC;IAEF,IAAI,IAAI,EAAE,QAAQ,EAAE,CAAC;QACnB,MAAM,QAAQ,CAAC,KAAK,CAAC,WAAW,CAC9B;YACE,OAAO,EAAE,CAAC,IAAI,CAAC,QAAkB,CAAC;SACnC,EACD,OAAO,CACR,CAAC;IACJ,CAAC;IAED,OAAO,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,gBAAgB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AAChE,CAAC"}
@@ -1,3 +0,0 @@
1
- import { Context, Root } from '@unchainedshop/types/api.js';
2
- export default function impersonator(root: Root, params: any, { userId, user, remoteAddress, modules, loginToken }: Context): Promise<import("@unchainedshop/types/user.js").User>;
3
- //# sourceMappingURL=impersonator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"impersonator.d.ts","sourceRoot":"","sources":["../../../../src/resolvers/queries/users/impersonator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAE5D,wBAA8B,YAAY,CACxC,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,GAAG,EACX,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,OAAO,wDAY9D"}
@@ -1,12 +0,0 @@
1
- import { log } from '@unchainedshop/logger';
2
- export default async function impersonator(root, params, { userId, user, remoteAddress, modules, loginToken }) {
3
- log(`query impersonator ${remoteAddress}`, { userId });
4
- if (!user?.services || !user?.services?.resume || !user?.services?.resume?.loginTokens)
5
- return null;
6
- const { loginTokens } = user.services.resume;
7
- const impersonatedSession = loginTokens.find(({ hashedToken, impersonatorId }) => hashedToken === modules.accounts.createHashLoginToken(loginToken) && impersonatorId);
8
- if (!impersonatedSession)
9
- return null;
10
- return modules.users.findUserById(impersonatedSession.impersonatorId);
11
- }
12
- //# sourceMappingURL=impersonator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"impersonator.js","sourceRoot":"","sources":["../../../../src/resolvers/queries/users/impersonator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAG5C,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,YAAY,CACxC,IAAU,EACV,MAAW,EACX,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,UAAU,EAAW;IAE7D,GAAG,CAAC,sBAAsB,aAAa,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IACvD,IAAI,CAAC,IAAI,EAAE,QAAQ,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW;QAAE,OAAO,IAAI,CAAC;IAEpG,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC7C,MAAM,mBAAmB,GAAG,WAAW,CAAC,IAAI,CAC1C,CAAC,EAAE,WAAW,EAAE,cAAc,EAAE,EAAE,EAAE,CAClC,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,UAAU,CAAC,IAAI,cAAc,CACtF,CAAC;IACF,IAAI,CAAC,mBAAmB;QAAE,OAAO,IAAI,CAAC;IACtC,OAAO,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC;AACxE,CAAC"}
@@ -1,6 +0,0 @@
1
- import { Context } from '@unchainedshop/types/api.js';
2
- export declare const OAuthAccount: {
3
- _id: (account: any) => any;
4
- provider: (account: any, _: never, { modules }: Context) => Promise<import("@unchainedshop/types/accounts.js").IOAuth2Adapter>;
5
- };
6
- //# sourceMappingURL=oauth-account.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"oauth-account.d.ts","sourceRoot":"","sources":["../../../src/resolvers/type/oauth-account.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAEtD,eAAO,MAAM,YAAY;;gCAEM,KAAK,eAAe,OAAO;CAGzD,CAAC"}
@@ -1,7 +0,0 @@
1
- export const OAuthAccount = {
2
- _id: (account) => account.id,
3
- provider: async (account, _, { modules }) => {
4
- return modules.accounts.oAuth2.getProvider(account.provider);
5
- },
6
- };
7
- //# sourceMappingURL=oauth-account.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"oauth-account.js","sourceRoot":"","sources":["../../../src/resolvers/type/oauth-account.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE;IAC5B,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAQ,EAAE,EAAE,OAAO,EAAW,EAAE,EAAE;QAC1D,OAAO,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC/D,CAAC;CACF,CAAC"}
@@ -1,6 +0,0 @@
1
- export declare const OAuthProvider: {
2
- _id: (adapter: any) => any;
3
- clientId: (adapter: any) => any;
4
- scopes: (adapter: any) => any;
5
- };
6
- //# sourceMappingURL=oauth-provider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"oauth-provider.d.ts","sourceRoot":"","sources":["../../../src/resolvers/type/oauth-provider.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa;;;;CAIzB,CAAC"}
@@ -1,6 +0,0 @@
1
- export const OAuthProvider = {
2
- _id: (adapter) => adapter.provider,
3
- clientId: (adapter) => adapter.config?.clientId,
4
- scopes: (adapter) => adapter.config?.scopes || [],
5
- };
6
- //# sourceMappingURL=oauth-provider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"oauth-provider.js","sourceRoot":"","sources":["../../../src/resolvers/type/oauth-provider.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ;IAClC,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ;IAC/C,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,IAAI,EAAE;CAClD,CAAC"}
@@ -1,7 +0,0 @@
1
- import { IncomingMessage, OutgoingMessage } from 'http';
2
- import { UnchainedUserContext } from '@unchainedshop/types/api.js';
3
- import { UnchainedCore } from '@unchainedshop/types/core.js';
4
- export declare const getUserContext: (req: IncomingMessage & {
5
- cookies?: any;
6
- }, res: OutgoingMessage, unchainedAPI: UnchainedCore) => Promise<UnchainedUserContext>;
7
- //# sourceMappingURL=user-context.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"user-context.d.ts","sourceRoot":"","sources":["../src/user-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAc7D,eAAO,MAAM,cAAc,QACpB,eAAe,GAAG;IAAE,OAAO,CAAC,EAAE,GAAG,CAAA;CAAE,OACnC,eAAe,gBACN,aAAa,KAC1B,OAAO,CAAC,oBAAoB,CAkE9B,CAAC"}
@@ -1,64 +0,0 @@
1
- import cookie from 'cookie';
2
- function isString(input) {
3
- return typeof input === 'string' && Object.prototype.toString.call(input) === '[object String]';
4
- }
5
- const { UNCHAINED_COOKIE_NAME = 'unchained_token', UNCHAINED_COOKIE_PATH = '/', UNCHAINED_COOKIE_DOMAIN, NODE_ENV, } = process.env;
6
- export const getUserContext = async (req, res, unchainedAPI) => {
7
- // there is a possible current user connected!
8
- const cookieName = UNCHAINED_COOKIE_NAME;
9
- const domain = UNCHAINED_COOKIE_DOMAIN;
10
- const path = UNCHAINED_COOKIE_PATH;
11
- let loginToken = req.cookies?.[cookieName];
12
- function setLoginToken(token, expires) {
13
- if (!domain)
14
- return;
15
- const authCookie = cookie.serialize(cookieName, token || null, {
16
- domain,
17
- httpOnly: true,
18
- path,
19
- expires: token ? expires : undefined,
20
- maxAge: token ? undefined : -1,
21
- sameSite: 'lax',
22
- secure: NODE_ENV === 'production',
23
- });
24
- res.setHeader('Set-Cookie', authCookie);
25
- }
26
- if (req.headers.authorization) {
27
- const [type, token] = req.headers.authorization.split(' ');
28
- if (type === 'Bearer') {
29
- loginToken = token;
30
- }
31
- }
32
- if (loginToken) {
33
- // throw an error if the token is not a string
34
- if (!isString(loginToken))
35
- throw new Error('Access Token is not a string');
36
- // the hashed token is the key to find the possible current user in the db
37
- const hashedToken = unchainedAPI.modules.accounts.createHashLoginToken(loginToken);
38
- const currentUser = await unchainedAPI.modules.users.findUserByToken({
39
- hashedToken,
40
- });
41
- // the current user exists
42
- if (currentUser) {
43
- // find the right login token corresponding, the current user may have
44
- // several sessions logged on different browsers / computers
45
- const tokenInformation = currentUser.services.resume.loginTokens.find((tokenInfo) => tokenInfo.hashedToken === hashedToken); // eslint-disable-line
46
- // true if the token is expired
47
- const isExpired = new Date(tokenInformation.when) < new Date();
48
- // if the token is still valid, give access to the current user
49
- // information in the resolvers context
50
- if (!isExpired) {
51
- // return a new context object with the current user & her id
52
- return {
53
- user: currentUser,
54
- userId: currentUser._id,
55
- loginToken: loginToken,
56
- setLoginToken,
57
- };
58
- }
59
- }
60
- return { loginToken: loginToken, setLoginToken };
61
- }
62
- return { setLoginToken };
63
- };
64
- //# sourceMappingURL=user-context.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"user-context.js","sourceRoot":"","sources":["../src/user-context.ts"],"names":[],"mappings":"AAGA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,SAAS,QAAQ,CAAC,KAAK;IACrB,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,iBAAiB,CAAC;AAClG,CAAC;AAED,MAAM,EACJ,qBAAqB,GAAG,iBAAiB,EACzC,qBAAqB,GAAG,GAAG,EAC3B,uBAAuB,EACvB,QAAQ,GACT,GAAG,OAAO,CAAC,GAAG,CAAC;AAEhB,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EACjC,GAAwC,EACxC,GAAoB,EACpB,YAA2B,EACI,EAAE;IACjC,8CAA8C;IAC9C,MAAM,UAAU,GAAG,qBAAqB,CAAC;IACzC,MAAM,MAAM,GAAG,uBAAuB,CAAC;IACvC,MAAM,IAAI,GAAG,qBAAqB,CAAC;IAEnC,IAAI,UAAU,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,CAAC;IAE3C,SAAS,aAAa,CAAC,KAAa,EAAE,OAAa;QACjD,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,KAAK,IAAI,IAAI,EAAE;YAC7D,MAAM;YACN,QAAQ,EAAE,IAAI;YACd,IAAI;YACJ,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;YACpC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9B,QAAQ,EAAE,KAAK;YACf,MAAM,EAAE,QAAQ,KAAK,YAAY;SAClC,CAAC,CAAC;QACH,GAAG,CAAC,SAAS,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;QAC9B,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC3D,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,UAAU,GAAG,KAAK,CAAC;QACrB,CAAC;IACH,CAAC;IACD,IAAI,UAAU,EAAE,CAAC;QACf,8CAA8C;QAC9C,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAE3E,0EAA0E;QAC1E,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,UAAoB,CAAC,CAAC;QAE7F,MAAM,WAAW,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC;YACnE,WAAW;SACZ,CAAC,CAAC;QAEH,0BAA0B;QAC1B,IAAI,WAAW,EAAE,CAAC;YAChB,sEAAsE;YACtE,4DAA4D;YAC5D,MAAM,gBAAgB,GAAG,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CACnE,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,WAAW,KAAK,WAAW,CACrD,CAAC,CAAC,sBAAsB;YAEzB,+BAA+B;YAC/B,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;YAE/D,+DAA+D;YAC/D,uCAAuC;YACvC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,6DAA6D;gBAC7D,OAAO;oBACL,IAAI,EAAE,WAAW;oBACjB,MAAM,EAAE,WAAW,CAAC,GAAG;oBACvB,UAAU,EAAE,UAAoB;oBAChC,aAAa;iBACd,CAAC;YACJ,CAAC;QACH,CAAC;QACD,OAAO,EAAE,UAAU,EAAE,UAAoB,EAAE,aAAa,EAAE,CAAC;IAC7D,CAAC;IAED,OAAO,EAAE,aAAa,EAAE,CAAC;AAC3B,CAAC,CAAC"}
@@ -1,40 +0,0 @@
1
- import cors from 'cors';
2
- import { expressMiddleware } from '@apollo/server/express4';
3
- import graphqlUploadExpress from 'graphql-upload/graphqlUploadExpress.mjs';
4
- import e from 'express';
5
- import { getCurrentContextResolver } from '../context.js';
6
-
7
- export default function createApolloMiddleware(apolloGraphQLServer, { corsOrigins = undefined } = {}) {
8
- const contextResolver = getCurrentContextResolver();
9
-
10
- const originFn =
11
- corsOrigins && Array.isArray(corsOrigins)
12
- ? (origin, callback) => {
13
- if (corsOrigins.length === 0 || !origin) {
14
- callback(null, true);
15
- return;
16
- }
17
- if (corsOrigins.indexOf(origin) !== -1) {
18
- callback(null, true);
19
- } else {
20
- callback(new Error('Not allowed by CORS'));
21
- }
22
- }
23
- : corsOrigins;
24
-
25
- return [
26
- cors(
27
- !originFn
28
- ? undefined
29
- : {
30
- origin: originFn,
31
- credentials: true,
32
- },
33
- ),
34
- e.json(),
35
- graphqlUploadExpress({ maxFileSize: 10000000, maxFiles: 10 }),
36
- expressMiddleware(apolloGraphQLServer, {
37
- context: contextResolver,
38
- }),
39
- ];
40
- }
@@ -1,92 +0,0 @@
1
- /// <reference lib="dom" />
2
- import { IncomingMessage } from 'http';
3
- import { createLogger } from '@unchainedshop/logger';
4
- import { UnchainedCore } from '@unchainedshop/types/core.js';
5
- import cookie from 'cookie';
6
- import { getCurrentContextResolver } from '../context.js';
7
-
8
- const {
9
- ROOT_URL,
10
- NODE_ENV,
11
- UNCHAINED_CLOUD_ENDPOINT,
12
- UNCHAINED_COOKIE_NAME = 'unchained_token',
13
- UNCHAINED_COOKIE_DOMAIN,
14
- } = process.env;
15
-
16
- const logger = createLogger('unchained:unchained-cloud-sso');
17
-
18
- const loginWithSingleSignOn = async (remoteToken, context: UnchainedCore) => {
19
- const domain = UNCHAINED_COOKIE_DOMAIN || new URL(ROOT_URL).hostname || 'localhost';
20
- const result = await fetch(UNCHAINED_CLOUD_ENDPOINT, {
21
- method: 'POST',
22
- headers: {
23
- 'content-type': 'application/json',
24
- },
25
- // eslint-disable-next-line
26
- // @ts-ignore
27
- duplex: 'half',
28
- body: JSON.stringify({
29
- operationName: 'consume',
30
- variables: {
31
- token: remoteToken,
32
- },
33
- query:
34
- 'mutation consume($token: ID!) { controlConsumeSingleSignOnToken(token: $token) { domain } }',
35
- }),
36
- });
37
- const json: any = await result.json();
38
- if (json?.errors?.length > 0) {
39
- throw new Error(json.errors[0].message);
40
- }
41
-
42
- if (domain === 'localhost' || domain === json?.data?.controlConsumeSingleSignOnToken?.domain) {
43
- // create sso user if not exist and login
44
- const ssoUserId =
45
- (await context.modules.users.findUser({ username: 'sso' }))?._id ||
46
- (await context.modules.accounts.createUser(
47
- {
48
- username: 'sso',
49
- roles: ['admin'],
50
- email: 'sso@unchained.local',
51
- password: null,
52
- guest: false,
53
- },
54
- { skipMessaging: true },
55
- ));
56
- const { tokenExpires, token } = await context.modules.accounts.createLoginToken(ssoUserId, context);
57
- const expires = new Date(tokenExpires || new Date().getTime() + 100000);
58
- const authCookie = cookie.serialize(UNCHAINED_COOKIE_NAME, token, {
59
- domain,
60
- httpOnly: true,
61
- expires,
62
- path: '/',
63
- sameSite: 'strict',
64
- secure: NODE_ENV === 'production',
65
- });
66
-
67
- return authCookie;
68
- }
69
- throw new Error('Invalid token/domain pair');
70
- };
71
-
72
- export default async function singleSignOnMiddleware(req: IncomingMessage & { query?: any }, res, next) {
73
- try {
74
- if (req.query?.token && UNCHAINED_CLOUD_ENDPOINT) {
75
- const contextResolver = getCurrentContextResolver();
76
- const context = await contextResolver({ req, res });
77
- const authCookie = await loginWithSingleSignOn(req.query.token, context);
78
-
79
- if (authCookie) {
80
- res.writeHead(303, {
81
- 'Set-Cookie': authCookie,
82
- Location: '/',
83
- });
84
- res.end();
85
- return;
86
- }
87
- }
88
- } catch (e) {
89
- logger.error(e.message);
90
- }
91
- next();
92
- }
@@ -1,5 +0,0 @@
1
- import crypto from 'crypto';
2
-
3
- export const hashPassword = (password: string): string => {
4
- return crypto.createHash('sha256').update(password).digest('hex');
5
- };
@@ -1,8 +0,0 @@
1
- import { log } from '@unchainedshop/logger';
2
- import { Context, Root } from '@unchainedshop/types/api.js';
3
-
4
- export default async function buildTOTPSecret(root: Root, _: any, { modules, userId }: Context) {
5
- log('mutation buildTOTPSecret', { userId });
6
-
7
- return modules.accounts.buildTOTPSecret();
8
- }
@@ -1,36 +0,0 @@
1
- import { log } from '@unchainedshop/logger';
2
- import { Context, Root } from '@unchainedshop/types/api.js';
3
- import {
4
- TwoFactorCodeDidNotMatchError,
5
- TwoFactorNotSetError,
6
- UserNotFoundError,
7
- } from '../../../errors.js';
8
-
9
- export default async function disableTOTP(
10
- root: Root,
11
- params: { code: string; userId: string },
12
- { modules, userId }: Context,
13
- ) {
14
- const normalizedUserId = params.userId || userId;
15
-
16
- log(`mutation disableTOTP ${params.code} ${normalizedUserId}`, {
17
- userId,
18
- });
19
-
20
- const user = await modules.users.findUserById(normalizedUserId);
21
- if (!user) throw new UserNotFoundError({ userId: normalizedUserId });
22
- try {
23
- await modules.accounts.disableTOTP(normalizedUserId, params.code);
24
- } catch (e) {
25
- if (e?.message?.includes("2FA code didn't match"))
26
- throw new TwoFactorCodeDidNotMatchError({
27
- submittedCode: params.code,
28
- userId: params?.userId || userId,
29
- });
30
- else if (e?.message?.includes('2FA not set'))
31
- throw new TwoFactorNotSetError({ userId: params?.userId || userId });
32
- else throw e;
33
- }
34
-
35
- return user;
36
- }
@@ -1,23 +0,0 @@
1
- import { log } from '@unchainedshop/logger';
2
- import { Context, Root } from '@unchainedshop/types/api.js';
3
- import { TwoFactorAlreadySetError, TwoFactorCodeDidNotMatchError } from '../../../errors.js';
4
-
5
- export default async function enableTOTP(
6
- root: Root,
7
- params: { code: string; secretBase32: string },
8
- { modules, userId }: Context,
9
- ) {
10
- log(`mutation enableTOTP ${params.code}`, {
11
- userId,
12
- });
13
- try {
14
- await modules.accounts.enableTOTP(userId, params.secretBase32, params.code);
15
- } catch (e) {
16
- if (e?.message?.includes("2FA code didn't match"))
17
- throw new TwoFactorCodeDidNotMatchError({ submittedCode: params.code, userId });
18
- else if (e?.message?.includes('2FA already set')) throw new TwoFactorAlreadySetError({ userId });
19
- else throw e;
20
- }
21
-
22
- return modules.users.findUserById(userId);
23
- }
@@ -1,21 +0,0 @@
1
- import { log } from '@unchainedshop/logger';
2
- import { Context } from '@unchainedshop/types/api.js';
3
- import { ImpersonatingAdminUserError, UserNotFoundError } from '../../../errors.js';
4
-
5
- const impersonate = async (root, { userId }, context: Context) => {
6
- log(`mutation impersonate ${userId}`, { userId: context.userId });
7
-
8
- const userToImpersonate = await context.modules.users.findUserById(userId);
9
-
10
- if (!userToImpersonate) {
11
- throw new UserNotFoundError({ userId });
12
- }
13
-
14
- if ((userToImpersonate.roles || []).includes('admin')) {
15
- throw new ImpersonatingAdminUserError({ impersonatedUserId: userId, userId: context.userId });
16
- }
17
-
18
- return context.modules.accounts.createImpersonationToken(userToImpersonate._id, context);
19
- };
20
-
21
- export default impersonate;
@@ -1,51 +0,0 @@
1
- import { log } from '@unchainedshop/logger';
2
- import { Context, Root } from '@unchainedshop/types/api.js';
3
- import { AuthOperationFailedError } from '../../../errors.js';
4
-
5
- export default async function linkOAuthAccount(
6
- root: Root,
7
- {
8
- provider,
9
- redirectUrl,
10
- authorizationCode,
11
- }: { provider: string; redirectUrl: string; authorizationCode: string },
12
- context: Context,
13
- ) {
14
- const { userId, user } = context;
15
-
16
- log(`mutation linkOAuthAccount ${user.username}`, {
17
- userId,
18
- });
19
- try {
20
- const { modules } = context;
21
-
22
- const authorizationToken = await modules.accounts.oAuth2.getAuthorizationToken(
23
- provider,
24
- authorizationCode,
25
- redirectUrl,
26
- );
27
-
28
- if (!authorizationToken) throw new Error('Unable to authorize user');
29
-
30
- const { id, ...data } = await modules.accounts.oAuth2.getAccountData(provider, authorizationToken);
31
-
32
- await modules.users.updateUser(
33
- { _id: userId },
34
- {
35
- $push: {
36
- [`services.oauth.${provider}`]: {
37
- id,
38
- authorizationToken,
39
- authorizationCode,
40
- data,
41
- },
42
- },
43
- },
44
- { upsert: true },
45
- );
46
-
47
- return true;
48
- } catch (e) {
49
- throw new AuthOperationFailedError({});
50
- }
51
- }
@@ -1,38 +0,0 @@
1
- import { Context } from '@unchainedshop/types/api.js';
2
- import { log } from '@unchainedshop/logger';
3
- import {
4
- AuthOperationFailedError,
5
- EmailAlreadyExistsError,
6
- UsernameAlreadyExistsError,
7
- UsernameOrEmailRequiredError,
8
- } from '../../../errors.js';
9
-
10
- const loginWithOAuth = async (
11
- _,
12
- {
13
- provider,
14
- authorizationCode,
15
- redirectUrl,
16
- }: { provider: string; authorizationCode: string; redirectUrl: string },
17
- context: Context,
18
- ): Promise<any | null> => {
19
- log(`mutation loginWithOAuth ${provider} ${authorizationCode}`);
20
- try {
21
- return context.modules.accounts.loginWithService(
22
- {
23
- service: 'oauth2',
24
- authorizationCode,
25
- provider,
26
- redirectUrl,
27
- },
28
- context,
29
- );
30
- } catch (e) {
31
- if (e.code === 'EmailAlreadyExists') throw new EmailAlreadyExistsError({});
32
- else if (e.code === 'UsernameAlreadyExists') throw new UsernameAlreadyExistsError({});
33
- else if (e.code === 'UsernameOrEmailRequired') throw new UsernameOrEmailRequiredError({});
34
- else throw new AuthOperationFailedError({});
35
- }
36
- };
37
-
38
- export default loginWithOAuth;
@@ -1,27 +0,0 @@
1
- import { Context, Root } from '@unchainedshop/types/api.js';
2
- import { log, LogLevel } from '@unchainedshop/logger';
3
-
4
- export default async function logoutAllSessions(root: Root, _: any, context: Context) {
5
- const { modules, userId, setLoginToken } = context;
6
-
7
- log('mutation logoutAllSessions', { userId });
8
-
9
- const loggedOut = await modules.accounts.logout(
10
- {
11
- loginToken: context.loginToken,
12
- userId: context.userId,
13
- },
14
- context,
15
- );
16
-
17
- if (loggedOut.error) {
18
- log('Error while logging out', {
19
- logLevel: LogLevel.Error,
20
- ...loggedOut.error,
21
- });
22
- } else {
23
- setLoginToken(null);
24
- }
25
-
26
- return { success: loggedOut.success };
27
- }