@things-factory/integration-marketplace 7.0.1-beta.1 → 7.0.1-beta.10

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 (415) hide show
  1. package/client/pages/marketplace-store-lazada.js +7 -7
  2. package/client/pages/marketplace-store-magento.js +8 -8
  3. package/client/pages/marketplace-store-shopee.js +7 -7
  4. package/client/pages/marketplace-store-shopify.js +8 -8
  5. package/client/pages/marketplace-store-woocommerce.js +8 -8
  6. package/client/pages/marketplace-store-zalora.js +7 -7
  7. package/components/add-distributor.js +2 -2
  8. package/components/distributor-editor.js +2 -2
  9. package/dist-server/controllers/index.d.ts +8 -0
  10. package/dist-server/controllers/lazada/apis/cancel-store-order.d.ts +9 -0
  11. package/dist-server/controllers/lazada/apis/create-store-product.d.ts +15 -0
  12. package/dist-server/controllers/lazada/apis/delete-store-product.d.ts +8 -0
  13. package/dist-server/controllers/lazada/apis/echo.d.ts +12 -0
  14. package/dist-server/controllers/lazada/apis/get-store-logistics.d.ts +6 -0
  15. package/dist-server/controllers/lazada/apis/get-store-order-document.d.ts +9 -0
  16. package/dist-server/controllers/lazada/apis/get-store-order-item-transaction-details.d.ts +22 -0
  17. package/dist-server/controllers/lazada/apis/get-store-order-item-transaction-details.js.map +1 -1
  18. package/dist-server/controllers/lazada/apis/get-store-order-items.d.ts +10 -0
  19. package/dist-server/controllers/lazada/apis/get-store-order-items.js.map +1 -1
  20. package/dist-server/controllers/lazada/apis/get-store-order.d.ts +35 -0
  21. package/dist-server/controllers/lazada/apis/get-store-orders.d.ts +16 -0
  22. package/dist-server/controllers/lazada/apis/get-store-orders.js.map +1 -1
  23. package/dist-server/controllers/lazada/apis/get-store-product-brands.d.ts +10 -0
  24. package/dist-server/controllers/lazada/apis/get-store-product-categories.d.ts +6 -0
  25. package/dist-server/controllers/lazada/apis/get-store-product-category-attributes.d.ts +8 -0
  26. package/dist-server/controllers/lazada/apis/get-store-product.d.ts +6 -0
  27. package/dist-server/controllers/lazada/apis/get-store-products.d.ts +15 -0
  28. package/dist-server/controllers/lazada/apis/get-store-products.js.map +1 -1
  29. package/dist-server/controllers/lazada/apis/get-store-refund-orders.d.ts +14 -0
  30. package/dist-server/controllers/lazada/apis/get-store-refund-orders.js.map +1 -1
  31. package/dist-server/controllers/lazada/apis/index.d.ts +24 -0
  32. package/dist-server/controllers/lazada/apis/set-order-invoice-no.d.ts +12 -0
  33. package/dist-server/controllers/lazada/apis/set-store-order-status-delivered.d.ts +8 -0
  34. package/dist-server/controllers/lazada/apis/set-store-order-status-failed-delivery.d.ts +8 -0
  35. package/dist-server/controllers/lazada/apis/set-store-order-status-packed-by-marketplace.d.ts +10 -0
  36. package/dist-server/controllers/lazada/apis/set-store-order-status-packed-by-marketplace.js.map +1 -1
  37. package/dist-server/controllers/lazada/apis/set-store-order-status-ready-to-ship.d.ts +11 -0
  38. package/dist-server/controllers/lazada/apis/update-store-product-stock.d.ts +13 -0
  39. package/dist-server/controllers/lazada/apis/update-store-product-variation-stock.d.ts +13 -0
  40. package/dist-server/controllers/lazada/apis/update-store-product.d.ts +12 -0
  41. package/dist-server/controllers/lazada/client/index.d.ts +3 -0
  42. package/dist-server/controllers/lazada/client/lazada.d.ts +17 -0
  43. package/dist-server/controllers/lazada/client/lazada.js.map +1 -1
  44. package/dist-server/controllers/lazada/client/signature.d.ts +19 -0
  45. package/dist-server/controllers/lazada/client/signature.js.map +1 -1
  46. package/dist-server/controllers/lazada/client/types.d.ts +28 -0
  47. package/dist-server/controllers/lazada/client/xml.d.ts +1 -0
  48. package/dist-server/controllers/lazada/client/xml.js.map +1 -1
  49. package/dist-server/controllers/lazada/index.d.ts +1 -0
  50. package/dist-server/controllers/lazada/platform-action.d.ts +12 -0
  51. package/dist-server/controllers/lazada/platform-action.js.map +1 -1
  52. package/dist-server/controllers/magento/apis/create-order-comment.d.ts +18 -0
  53. package/dist-server/controllers/magento/apis/create-order-refund.d.ts +16 -0
  54. package/dist-server/controllers/magento/apis/create-order-ship.d.ts +15 -0
  55. package/dist-server/controllers/magento/apis/echo.d.ts +12 -0
  56. package/dist-server/controllers/magento/apis/get-store-order.d.ts +10 -0
  57. package/dist-server/controllers/magento/apis/get-store-orders.d.ts +13 -0
  58. package/dist-server/controllers/magento/apis/get-store-orders.js.map +1 -1
  59. package/dist-server/controllers/magento/apis/get-store-product-categories.d.ts +11 -0
  60. package/dist-server/controllers/magento/apis/get-store-product-categories.js.map +1 -1
  61. package/dist-server/controllers/magento/apis/get-store-product-variations.d.ts +11 -0
  62. package/dist-server/controllers/magento/apis/get-store-product.d.ts +9 -0
  63. package/dist-server/controllers/magento/apis/get-store-products.d.ts +14 -0
  64. package/dist-server/controllers/magento/apis/get-store-products.js.map +1 -1
  65. package/dist-server/controllers/magento/apis/get-store-stock-item.d.ts +8 -0
  66. package/dist-server/controllers/magento/apis/get-store-stock-item.js.map +1 -1
  67. package/dist-server/controllers/magento/apis/index.d.ts +16 -0
  68. package/dist-server/controllers/magento/apis/update-order-status.d.ts +6 -0
  69. package/dist-server/controllers/magento/apis/update-order-status.js.map +1 -1
  70. package/dist-server/controllers/magento/apis/update-store-product-price.d.ts +14 -0
  71. package/dist-server/controllers/magento/apis/update-store-product-stock.d.ts +8 -0
  72. package/dist-server/controllers/magento/apis/update-store-product-stock.js.map +1 -1
  73. package/dist-server/controllers/magento/apis/update-store-product-variation-price.d.ts +14 -0
  74. package/dist-server/controllers/magento/apis/update-store-product-variation-stock.d.ts +8 -0
  75. package/dist-server/controllers/magento/apis/update-store-product-variation-stock.js.map +1 -1
  76. package/dist-server/controllers/magento/index.d.ts +1 -0
  77. package/dist-server/controllers/magento/magento.d.ts +24 -0
  78. package/dist-server/controllers/magento/magento.js.map +1 -1
  79. package/dist-server/controllers/magento/platform-action.d.ts +6 -0
  80. package/dist-server/controllers/magento/platform-action.js.map +1 -1
  81. package/dist-server/controllers/shopee/apis/accept-store-order-cancellation.d.ts +9 -0
  82. package/dist-server/controllers/shopee/apis/cancel-store-order.d.ts +12 -0
  83. package/dist-server/controllers/shopee/apis/create-store-product-variations.d.ts +10 -0
  84. package/dist-server/controllers/shopee/apis/create-store-product.d.ts +17 -0
  85. package/dist-server/controllers/shopee/apis/delete-store-product.d.ts +11 -0
  86. package/dist-server/controllers/shopee/apis/echo.d.ts +12 -0
  87. package/dist-server/controllers/shopee/apis/get-address.d.ts +5 -0
  88. package/dist-server/controllers/shopee/apis/get-branch-list.d.ts +7 -0
  89. package/dist-server/controllers/shopee/apis/get-logistics-param.d.ts +9 -0
  90. package/dist-server/controllers/shopee/apis/get-logistics-param.js.map +1 -1
  91. package/dist-server/controllers/shopee/apis/get-store-logistics.d.ts +5 -0
  92. package/dist-server/controllers/shopee/apis/get-store-order-document.d.ts +7 -0
  93. package/dist-server/controllers/shopee/apis/get-store-order-items.d.ts +7 -0
  94. package/dist-server/controllers/shopee/apis/get-store-order-payout-dates.d.ts +14 -0
  95. package/dist-server/controllers/shopee/apis/get-store-order-transaction-details.d.ts +17 -0
  96. package/dist-server/controllers/shopee/apis/get-store-order.d.ts +9 -0
  97. package/dist-server/controllers/shopee/apis/get-store-order.js.map +1 -1
  98. package/dist-server/controllers/shopee/apis/get-store-orders.d.ts +15 -0
  99. package/dist-server/controllers/shopee/apis/get-store-orders.js.map +1 -1
  100. package/dist-server/controllers/shopee/apis/get-store-product-categories.d.ts +8 -0
  101. package/dist-server/controllers/shopee/apis/get-store-product-category-attributes.d.ts +8 -0
  102. package/dist-server/controllers/shopee/apis/get-store-product.d.ts +32 -0
  103. package/dist-server/controllers/shopee/apis/get-store-products.d.ts +13 -0
  104. package/dist-server/controllers/shopee/apis/get-store-products.js.map +1 -1
  105. package/dist-server/controllers/shopee/apis/get-store-refund-order-details.d.ts +16 -0
  106. package/dist-server/controllers/shopee/apis/get-store-refund-orders.d.ts +15 -0
  107. package/dist-server/controllers/shopee/apis/get-store-refund-orders.js.map +1 -1
  108. package/dist-server/controllers/shopee/apis/get-time-slot.d.ts +8 -0
  109. package/dist-server/controllers/shopee/apis/index.d.ts +29 -0
  110. package/dist-server/controllers/shopee/apis/init-logistics.d.ts +5 -0
  111. package/dist-server/controllers/shopee/apis/init-logistics.js.map +1 -1
  112. package/dist-server/controllers/shopee/apis/reject-store-order-cancellation.d.ts +9 -0
  113. package/dist-server/controllers/shopee/apis/split-order.d.ts +12 -0
  114. package/dist-server/controllers/shopee/apis/update-store-product-stock.d.ts +11 -0
  115. package/dist-server/controllers/shopee/apis/update-store-product-variation-stock.d.ts +7 -0
  116. package/dist-server/controllers/shopee/apis/update-store-product.d.ts +23 -0
  117. package/dist-server/controllers/shopee/apis2/create-shipping-document.d.ts +13 -0
  118. package/dist-server/controllers/shopee/apis2/echo.d.ts +12 -0
  119. package/dist-server/controllers/shopee/apis2/get-logistics-param.d.ts +8 -0
  120. package/dist-server/controllers/shopee/apis2/get-logistics-param.js.map +1 -1
  121. package/dist-server/controllers/shopee/apis2/get-shipping-document-result.d.ts +10 -0
  122. package/dist-server/controllers/shopee/apis2/get-store-logistics.d.ts +6 -0
  123. package/dist-server/controllers/shopee/apis2/get-store-order-by-batch.d.ts +11 -0
  124. package/dist-server/controllers/shopee/apis2/get-store-order-by-batch.js.map +1 -1
  125. package/dist-server/controllers/shopee/apis2/get-store-order-document.d.ts +15 -0
  126. package/dist-server/controllers/shopee/apis2/get-store-order-document.js.map +1 -1
  127. package/dist-server/controllers/shopee/apis2/get-store-order-payout-dates.d.ts +14 -0
  128. package/dist-server/controllers/shopee/apis2/get-store-order-payout-dates.js.map +1 -1
  129. package/dist-server/controllers/shopee/apis2/get-store-order-transaction-details.d.ts +16 -0
  130. package/dist-server/controllers/shopee/apis2/get-store-order.d.ts +11 -0
  131. package/dist-server/controllers/shopee/apis2/get-store-order.js.map +1 -1
  132. package/dist-server/controllers/shopee/apis2/get-store-orders.d.ts +12 -0
  133. package/dist-server/controllers/shopee/apis2/get-store-orders.js.map +1 -1
  134. package/dist-server/controllers/shopee/apis2/get-store-product-variations.d.ts +8 -0
  135. package/dist-server/controllers/shopee/apis2/get-store-product.d.ts +10 -0
  136. package/dist-server/controllers/shopee/apis2/get-store-product.js.map +1 -1
  137. package/dist-server/controllers/shopee/apis2/get-store-products.d.ts +15 -0
  138. package/dist-server/controllers/shopee/apis2/get-store-refund-order-details.d.ts +14 -0
  139. package/dist-server/controllers/shopee/apis2/get-store-refund-orders.d.ts +16 -0
  140. package/dist-server/controllers/shopee/apis2/get-store-refund-orders.js.map +1 -1
  141. package/dist-server/controllers/shopee/apis2/get-tracking-number.d.ts +8 -0
  142. package/dist-server/controllers/shopee/apis2/index.d.ts +20 -0
  143. package/dist-server/controllers/shopee/apis2/init-logistics.d.ts +6 -0
  144. package/dist-server/controllers/shopee/apis2/init-logistics.js.map +1 -1
  145. package/dist-server/controllers/shopee/apis2/update-store-product-stock.d.ts +13 -0
  146. package/dist-server/controllers/shopee/apis2/update-store-product-variation-stock.d.ts +14 -0
  147. package/dist-server/controllers/shopee/index.d.ts +1 -0
  148. package/dist-server/controllers/shopee/index.js.map +1 -1
  149. package/dist-server/controllers/shopee/platform-action.d.ts +11 -0
  150. package/dist-server/controllers/shopee/platform-action.js.map +1 -1
  151. package/dist-server/controllers/shopee/refresh-access-token.d.ts +6 -0
  152. package/dist-server/controllers/shopee/refresh-access-token.js +1 -1
  153. package/dist-server/controllers/shopee/refresh-access-token.js.map +1 -1
  154. package/dist-server/controllers/shopee/shopee.d.ts +22 -0
  155. package/dist-server/controllers/shopee/shopee.js.map +1 -1
  156. package/dist-server/controllers/shopify/apis/echo.d.ts +12 -0
  157. package/dist-server/controllers/shopify/apis/get-airway-bill.d.ts +11 -0
  158. package/dist-server/controllers/shopify/apis/get-inventory-level.d.ts +10 -0
  159. package/dist-server/controllers/shopify/apis/get-store-order.d.ts +10 -0
  160. package/dist-server/controllers/shopify/apis/get-store-order.js.map +1 -1
  161. package/dist-server/controllers/shopify/apis/get-store-orders.d.ts +14 -0
  162. package/dist-server/controllers/shopify/apis/get-store-orders.js.map +1 -1
  163. package/dist-server/controllers/shopify/apis/get-store-product-categories.d.ts +8 -0
  164. package/dist-server/controllers/shopify/apis/get-store-product-category-attributes.d.ts +8 -0
  165. package/dist-server/controllers/shopify/apis/get-store-product-variation-stock.d.ts +10 -0
  166. package/dist-server/controllers/shopify/apis/get-store-products-count.d.ts +8 -0
  167. package/dist-server/controllers/shopify/apis/get-store-products.d.ts +14 -0
  168. package/dist-server/controllers/shopify/apis/get-store-products.js.map +1 -1
  169. package/dist-server/controllers/shopify/apis/index.d.ts +13 -0
  170. package/dist-server/controllers/shopify/apis/set-store-order-status-ready-to-ship.d.ts +19 -0
  171. package/dist-server/controllers/shopify/apis/update-order-status.d.ts +18 -0
  172. package/dist-server/controllers/shopify/apis/update-order-status.js.map +1 -1
  173. package/dist-server/controllers/shopify/apis/update-store-product-price.d.ts +16 -0
  174. package/dist-server/controllers/shopify/apis/update-store-product-stock.d.ts +12 -0
  175. package/dist-server/controllers/shopify/apis/update-store-product-variation-price.d.ts +16 -0
  176. package/dist-server/controllers/shopify/apis/update-store-product-variation-stock.d.ts +12 -0
  177. package/dist-server/controllers/shopify/index.d.ts +1 -0
  178. package/dist-server/controllers/shopify/platform-action.d.ts +6 -0
  179. package/dist-server/controllers/shopify/platform-action.js.map +1 -1
  180. package/dist-server/controllers/shopify/shopify.d.ts +17 -0
  181. package/dist-server/controllers/store-api/decorators.d.ts +1 -0
  182. package/dist-server/controllers/store-api/decorators.js.map +1 -1
  183. package/dist-server/controllers/store-api/index.d.ts +66 -0
  184. package/dist-server/controllers/store-api/index.js +1 -1
  185. package/dist-server/controllers/store-api/index.js.map +1 -1
  186. package/dist-server/controllers/store-api/types.d.ts +0 -0
  187. package/dist-server/controllers/tiktok/apis/echo.d.ts +12 -0
  188. package/dist-server/controllers/tiktok/apis/get-store-order-document.d.ts +11 -0
  189. package/dist-server/controllers/tiktok/apis/get-store-order-package.d.ts +10 -0
  190. package/dist-server/controllers/tiktok/apis/get-store-order-packages.d.ts +19 -0
  191. package/dist-server/controllers/tiktok/apis/get-store-order-packages.js.map +1 -1
  192. package/dist-server/controllers/tiktok/apis/get-store-order.d.ts +12 -0
  193. package/dist-server/controllers/tiktok/apis/get-store-order.js.map +1 -1
  194. package/dist-server/controllers/tiktok/apis/get-store-orders.d.ts +14 -0
  195. package/dist-server/controllers/tiktok/apis/get-store-orders.js.map +1 -1
  196. package/dist-server/controllers/tiktok/apis/get-store-product-attributes.d.ts +10 -0
  197. package/dist-server/controllers/tiktok/apis/get-store-product-categories.d.ts +11 -0
  198. package/dist-server/controllers/tiktok/apis/get-store-product.d.ts +18 -0
  199. package/dist-server/controllers/tiktok/apis/get-store-product.js.map +1 -1
  200. package/dist-server/controllers/tiktok/apis/get-store-products.d.ts +14 -0
  201. package/dist-server/controllers/tiktok/apis/get-store-products.js.map +1 -1
  202. package/dist-server/controllers/tiktok/apis/index.d.ts +13 -0
  203. package/dist-server/controllers/tiktok/apis/update-order-status.d.ts +18 -0
  204. package/dist-server/controllers/tiktok/apis/update-order-status.js.map +1 -1
  205. package/dist-server/controllers/tiktok/apis/update-store-product-variation-price.d.ts +14 -0
  206. package/dist-server/controllers/tiktok/apis/update-store-product-variation-stock.d.ts +16 -0
  207. package/dist-server/controllers/tiktok/client/index.d.ts +2 -0
  208. package/dist-server/controllers/tiktok/client/signature.d.ts +19 -0
  209. package/dist-server/controllers/tiktok/client/signature.js.map +1 -1
  210. package/dist-server/controllers/tiktok/client/tiktok.d.ts +20 -0
  211. package/dist-server/controllers/tiktok/client/tiktok.js.map +1 -1
  212. package/dist-server/controllers/tiktok/client/types.d.ts +19 -0
  213. package/dist-server/controllers/tiktok/index.d.ts +1 -0
  214. package/dist-server/controllers/tiktok/platform-action.d.ts +15 -0
  215. package/dist-server/controllers/tiktok/platform-action.js.map +1 -1
  216. package/dist-server/controllers/woocommerce/apis/create-order-note.d.ts +14 -0
  217. package/dist-server/controllers/woocommerce/apis/echo.d.ts +12 -0
  218. package/dist-server/controllers/woocommerce/apis/get-customer-info.d.ts +10 -0
  219. package/dist-server/controllers/woocommerce/apis/get-store-order.d.ts +35 -0
  220. package/dist-server/controllers/woocommerce/apis/get-store-orders.d.ts +19 -0
  221. package/dist-server/controllers/woocommerce/apis/get-store-orders.js.map +1 -1
  222. package/dist-server/controllers/woocommerce/apis/get-store-product-categories.d.ts +15 -0
  223. package/dist-server/controllers/woocommerce/apis/get-store-product-variations.d.ts +10 -0
  224. package/dist-server/controllers/woocommerce/apis/get-store-products.d.ts +13 -0
  225. package/dist-server/controllers/woocommerce/apis/get-store-products.js.map +1 -1
  226. package/dist-server/controllers/woocommerce/apis/index.d.ts +19 -0
  227. package/dist-server/controllers/woocommerce/apis/set-store-order-status-ready-to-ship.d.ts +14 -0
  228. package/dist-server/controllers/woocommerce/apis/update-order-status.d.ts +15 -0
  229. package/dist-server/controllers/woocommerce/apis/update-product-attribute.d.ts +14 -0
  230. package/dist-server/controllers/woocommerce/apis/update-store-product-price.d.ts +14 -0
  231. package/dist-server/controllers/woocommerce/apis/update-store-product-stock.d.ts +14 -0
  232. package/dist-server/controllers/woocommerce/apis/update-store-product-variant-price.d.ts +15 -0
  233. package/dist-server/controllers/woocommerce/apis/update-store-product-variant-stock.d.ts +15 -0
  234. package/dist-server/controllers/woocommerce/apis/update-store-product-variation-price.d.ts +16 -0
  235. package/dist-server/controllers/woocommerce/apis/update-store-product-variation-stock.d.ts +15 -0
  236. package/dist-server/controllers/woocommerce/index.d.ts +1 -0
  237. package/dist-server/controllers/woocommerce/platform-action.d.ts +15 -0
  238. package/dist-server/controllers/woocommerce/platform-action.js.map +1 -1
  239. package/dist-server/controllers/woocommerce/woocommerce.d.ts +18 -0
  240. package/dist-server/controllers/zalora/apis/echo.d.ts +12 -0
  241. package/dist-server/controllers/zalora/apis/get-airway-bill.d.ts +11 -0
  242. package/dist-server/controllers/zalora/apis/get-store-order-items.d.ts +10 -0
  243. package/dist-server/controllers/zalora/apis/get-store-order.d.ts +10 -0
  244. package/dist-server/controllers/zalora/apis/get-store-orders.d.ts +12 -0
  245. package/dist-server/controllers/zalora/apis/get-store-product-categories.d.ts +11 -0
  246. package/dist-server/controllers/zalora/apis/get-store-product-category-attributes.d.ts +10 -0
  247. package/dist-server/controllers/zalora/apis/get-store-products.d.ts +11 -0
  248. package/dist-server/controllers/zalora/apis/index.d.ts +8 -0
  249. package/dist-server/controllers/zalora/index.d.ts +1 -0
  250. package/dist-server/controllers/zalora/platform-action.d.ts +6 -0
  251. package/dist-server/controllers/zalora/platform-action.js.map +1 -1
  252. package/dist-server/controllers/zalora/zalora/index.d.ts +12 -0
  253. package/dist-server/controllers/zalora/zalora/signature.d.ts +6 -0
  254. package/dist-server/controllers/zalora/zalora/xml.d.ts +1 -0
  255. package/dist-server/controllers/zalora/zalora/xml.js.map +1 -1
  256. package/dist-server/engine/connector/index.d.ts +3 -0
  257. package/dist-server/engine/connector/lazada-connector.d.ts +8 -0
  258. package/dist-server/engine/connector/marketplace-connector.d.ts +8 -0
  259. package/dist-server/engine/connector/shopee-connector.d.ts +8 -0
  260. package/dist-server/engine/index.d.ts +2 -0
  261. package/dist-server/engine/task/index.d.ts +4 -0
  262. package/dist-server/engine/task/lazada-get.d.ts +1 -0
  263. package/dist-server/engine/task/lazada-get.js.map +1 -1
  264. package/dist-server/engine/task/lazada-post.d.ts +1 -0
  265. package/dist-server/engine/task/lazada-post.js.map +1 -1
  266. package/dist-server/engine/task/marketplace-api.d.ts +1 -0
  267. package/dist-server/engine/task/marketplace-api.js.map +1 -1
  268. package/dist-server/engine/task/shopee-post.d.ts +1 -0
  269. package/dist-server/engine/task/shopee-post.js.map +1 -1
  270. package/dist-server/entities/index.d.ts +6 -0
  271. package/dist-server/entities/marketplace-distributor.d.ts +15 -0
  272. package/dist-server/entities/marketplace-distributor.js +2 -2
  273. package/dist-server/entities/marketplace-distributor.js.map +1 -1
  274. package/dist-server/entities/marketplace-setting.d.ts +16 -0
  275. package/dist-server/entities/marketplace-setting.js +2 -2
  276. package/dist-server/entities/marketplace-setting.js.map +1 -1
  277. package/dist-server/entities/marketplace-store.d.ts +32 -0
  278. package/dist-server/entities/marketplace-store.js +2 -2
  279. package/dist-server/entities/marketplace-store.js.map +1 -1
  280. package/dist-server/entities/marketplace-transporter.d.ts +17 -0
  281. package/dist-server/entities/marketplace-transporter.js +4 -5
  282. package/dist-server/entities/marketplace-transporter.js.map +1 -1
  283. package/dist-server/graphql/constants/index.d.ts +1 -0
  284. package/dist-server/graphql/constants/store.d.ts +5 -0
  285. package/dist-server/graphql/index.d.ts +5 -0
  286. package/dist-server/graphql/resolvers/index.d.ts +6 -0
  287. package/dist-server/graphql/resolvers/marketplace-distributor/create-marketplace-distributor.d.ts +6 -0
  288. package/dist-server/graphql/resolvers/marketplace-distributor/delete-marketplace-distributor.d.ts +5 -0
  289. package/dist-server/graphql/resolvers/marketplace-distributor/delete-marketplace-distributors.d.ts +5 -0
  290. package/dist-server/graphql/resolvers/marketplace-distributor/index.d.ts +34 -0
  291. package/dist-server/graphql/resolvers/marketplace-distributor/marketplace-distributor-query.d.ts +16 -0
  292. package/dist-server/graphql/resolvers/marketplace-distributor/update-marketplace-distributor.d.ts +5 -0
  293. package/dist-server/graphql/resolvers/marketplace-distributor/update-multiple-marketplace-distributor.d.ts +5 -0
  294. package/dist-server/graphql/resolvers/marketplace-distributor/update-multiple-marketplace-distributor.js.map +1 -1
  295. package/dist-server/graphql/resolvers/marketplace-setting/create-marketplace-setting.d.ts +5 -0
  296. package/dist-server/graphql/resolvers/marketplace-setting/delete-marketplace-setting.d.ts +5 -0
  297. package/dist-server/graphql/resolvers/marketplace-setting/delete-marketplace-settings.d.ts +5 -0
  298. package/dist-server/graphql/resolvers/marketplace-setting/index.d.ts +33 -0
  299. package/dist-server/graphql/resolvers/marketplace-setting/marketplace-setting-query.d.ts +16 -0
  300. package/dist-server/graphql/resolvers/marketplace-setting/update-marketplace-setting.d.ts +5 -0
  301. package/dist-server/graphql/resolvers/marketplace-setting/update-multiple-marketplace-setting.d.ts +5 -0
  302. package/dist-server/graphql/resolvers/marketplace-setting/update-multiple-marketplace-setting.js.map +1 -1
  303. package/dist-server/graphql/resolvers/marketplace-store/create-marketplace-store.d.ts +5 -0
  304. package/dist-server/graphql/resolvers/marketplace-store/delete-marketplace-store.d.ts +5 -0
  305. package/dist-server/graphql/resolvers/marketplace-store/delete-marketplace-stores.d.ts +5 -0
  306. package/dist-server/graphql/resolvers/marketplace-store/index.d.ts +114 -0
  307. package/dist-server/graphql/resolvers/marketplace-store/lazada/deactivate-lazada-store.d.ts +5 -0
  308. package/dist-server/graphql/resolvers/marketplace-store/lazada/generate-lazada-access-token.d.ts +6 -0
  309. package/dist-server/graphql/resolvers/marketplace-store/lazada/generate-lazada-access-token.js.map +1 -1
  310. package/dist-server/graphql/resolvers/marketplace-store/lazada/get-lazada-auth-url.d.ts +5 -0
  311. package/dist-server/graphql/resolvers/marketplace-store/lazada/index.d.ts +14 -0
  312. package/dist-server/graphql/resolvers/marketplace-store/magento/activate-magento-store.d.ts +8 -0
  313. package/dist-server/graphql/resolvers/marketplace-store/magento/activate-magento-store.js.map +1 -1
  314. package/dist-server/graphql/resolvers/marketplace-store/magento/deactivate-magento-store.d.ts +5 -0
  315. package/dist-server/graphql/resolvers/marketplace-store/magento/get-magento-auth-url.d.ts +5 -0
  316. package/dist-server/graphql/resolvers/marketplace-store/magento/index.d.ts +15 -0
  317. package/dist-server/graphql/resolvers/marketplace-store/marketplace-store.d.ts +6 -0
  318. package/dist-server/graphql/resolvers/marketplace-store/marketplace-stores.d.ts +8 -0
  319. package/dist-server/graphql/resolvers/marketplace-store/shopee/deactivate-shopee-store.d.ts +5 -0
  320. package/dist-server/graphql/resolvers/marketplace-store/shopee/generate-shopee-access-token.d.ts +36 -0
  321. package/dist-server/graphql/resolvers/marketplace-store/shopee/generate-shopee-access-token.js.map +1 -1
  322. package/dist-server/graphql/resolvers/marketplace-store/shopee/get-shopee-auth-url.d.ts +6 -0
  323. package/dist-server/graphql/resolvers/marketplace-store/shopee/index.d.ts +44 -0
  324. package/dist-server/graphql/resolvers/marketplace-store/shopify/deactivate-shopify-store.d.ts +5 -0
  325. package/dist-server/graphql/resolvers/marketplace-store/shopify/get-shopify-auth-url.d.ts +7 -0
  326. package/dist-server/graphql/resolvers/marketplace-store/shopify/index.d.ts +12 -0
  327. package/dist-server/graphql/resolvers/marketplace-store/update-marketplace-store.d.ts +6 -0
  328. package/dist-server/graphql/resolvers/marketplace-store/update-multiple-marketplace-store.d.ts +5 -0
  329. package/dist-server/graphql/resolvers/marketplace-store/update-multiple-marketplace-store.js.map +1 -1
  330. package/dist-server/graphql/resolvers/marketplace-store/woocommerce/deactivate-woocommerce-store.d.ts +6 -0
  331. package/dist-server/graphql/resolvers/marketplace-store/woocommerce/get-woocommerce-auth-url.d.ts +6 -0
  332. package/dist-server/graphql/resolvers/marketplace-store/woocommerce/index.d.ts +11 -0
  333. package/dist-server/graphql/resolvers/marketplace-store/zalora/deactivate-zalora-store.d.ts +5 -0
  334. package/dist-server/graphql/resolvers/marketplace-store/zalora/generate-zalora-access-token.d.ts +8 -0
  335. package/dist-server/graphql/resolvers/marketplace-store/zalora/generate-zalora-access-token.js.map +1 -1
  336. package/dist-server/graphql/resolvers/marketplace-store/zalora/index.d.ts +12 -0
  337. package/dist-server/graphql/resolvers/marketplace-transporter/create-marketplace-transporter.d.ts +16 -0
  338. package/dist-server/graphql/resolvers/marketplace-transporter/delete-marketplace-transporter.d.ts +5 -0
  339. package/dist-server/graphql/resolvers/marketplace-transporter/delete-marketplace-transporters.d.ts +5 -0
  340. package/dist-server/graphql/resolvers/marketplace-transporter/index.d.ts +55 -0
  341. package/dist-server/graphql/resolvers/marketplace-transporter/marketplace-transporter-query.d.ts +16 -0
  342. package/dist-server/graphql/resolvers/marketplace-transporter/update-marketplace-transporter.d.ts +20 -0
  343. package/dist-server/graphql/resolvers/marketplace-transporter/update-multiple-marketplace-transporter.d.ts +5 -0
  344. package/dist-server/graphql/resolvers/marketplace-transporter/update-multiple-marketplace-transporter.js.map +1 -1
  345. package/dist-server/graphql/resolvers/store-order/accept-store-order-cancellation.d.ts +6 -0
  346. package/dist-server/graphql/resolvers/store-order/cancel-store-order.d.ts +6 -0
  347. package/dist-server/graphql/resolvers/store-order/get-store-order-document.d.ts +7 -0
  348. package/dist-server/graphql/resolvers/store-order/get-store-order-items.d.ts +6 -0
  349. package/dist-server/graphql/resolvers/store-order/get-store-order.d.ts +6 -0
  350. package/dist-server/graphql/resolvers/store-order/get-store-orders.d.ts +5 -0
  351. package/dist-server/graphql/resolvers/store-order/index.d.ts +38 -0
  352. package/dist-server/graphql/resolvers/store-order/reject-store-order-cancellation.d.ts +6 -0
  353. package/dist-server/graphql/resolvers/store-order/set-store-order-status-packed-by-marketplace.d.ts +6 -0
  354. package/dist-server/graphql/resolvers/store-order/set-store-order-status-ready-to-ship.d.ts +6 -0
  355. package/dist-server/graphql/resolvers/store-product/create-store-product-variations.d.ts +7 -0
  356. package/dist-server/graphql/resolvers/store-product/create-store-product.d.ts +6 -0
  357. package/dist-server/graphql/resolvers/store-product/delete-store-product.d.ts +6 -0
  358. package/dist-server/graphql/resolvers/store-product/get-store-product-brands.d.ts +5 -0
  359. package/dist-server/graphql/resolvers/store-product/get-store-product-categories.d.ts +5 -0
  360. package/dist-server/graphql/resolvers/store-product/get-store-product-category-attributes.d.ts +7 -0
  361. package/dist-server/graphql/resolvers/store-product/get-store-product.d.ts +6 -0
  362. package/dist-server/graphql/resolvers/store-product/get-store-products.d.ts +5 -0
  363. package/dist-server/graphql/resolvers/store-product/index.d.ts +41 -0
  364. package/dist-server/graphql/resolvers/store-product/update-store-product.d.ts +6 -0
  365. package/dist-server/graphql/types/index.d.ts +6 -0
  366. package/dist-server/graphql/types/marketplace-distributor/index.d.ts +5 -0
  367. package/dist-server/graphql/types/marketplace-distributor/marketplace-distributor-list.d.ts +1 -0
  368. package/dist-server/graphql/types/marketplace-distributor/marketplace-distributor-patch.d.ts +1 -0
  369. package/dist-server/graphql/types/marketplace-distributor/marketplace-distributor.d.ts +1 -0
  370. package/dist-server/graphql/types/marketplace-distributor/new-marketplace-distributor.d.ts +1 -0
  371. package/dist-server/graphql/types/marketplace-setting/index.d.ts +5 -0
  372. package/dist-server/graphql/types/marketplace-setting/marketplace-setting-list.d.ts +1 -0
  373. package/dist-server/graphql/types/marketplace-setting/marketplace-setting-patch.d.ts +1 -0
  374. package/dist-server/graphql/types/marketplace-setting/marketplace-setting.d.ts +1 -0
  375. package/dist-server/graphql/types/marketplace-setting/new-marketplace-setting.d.ts +1 -0
  376. package/dist-server/graphql/types/marketplace-store/index.d.ts +5 -0
  377. package/dist-server/graphql/types/marketplace-store/marketplace-store-list.d.ts +1 -0
  378. package/dist-server/graphql/types/marketplace-store/marketplace-store-patch.d.ts +1 -0
  379. package/dist-server/graphql/types/marketplace-store/marketplace-store.d.ts +1 -0
  380. package/dist-server/graphql/types/marketplace-store/new-marketplace-store.d.ts +1 -0
  381. package/dist-server/graphql/types/marketplace-transporter/index.d.ts +5 -0
  382. package/dist-server/graphql/types/marketplace-transporter/marketplace-transporter-list.d.ts +1 -0
  383. package/dist-server/graphql/types/marketplace-transporter/marketplace-transporter-patch.d.ts +1 -0
  384. package/dist-server/graphql/types/marketplace-transporter/marketplace-transporter.d.ts +1 -0
  385. package/dist-server/graphql/types/marketplace-transporter/new-marketplace-transporter.d.ts +1 -0
  386. package/dist-server/graphql/types/store-order/index.d.ts +5 -0
  387. package/dist-server/graphql/types/store-order/new-store-order.d.ts +1 -0
  388. package/dist-server/graphql/types/store-order/store-order-list.d.ts +1 -0
  389. package/dist-server/graphql/types/store-order/store-order-patch.d.ts +1 -0
  390. package/dist-server/graphql/types/store-order/store-order.d.ts +1 -0
  391. package/dist-server/graphql/types/store-product/index.d.ts +5 -0
  392. package/dist-server/graphql/types/store-product/new-store-product.d.ts +1 -0
  393. package/dist-server/graphql/types/store-product/store-product-list.d.ts +1 -0
  394. package/dist-server/graphql/types/store-product/store-product-patch.d.ts +1 -0
  395. package/dist-server/graphql/types/store-product/store-product.d.ts +1 -0
  396. package/dist-server/index.d.ts +6 -0
  397. package/dist-server/migrations/index.d.ts +1 -0
  398. package/dist-server/routers/magento-private-router.d.ts +8 -0
  399. package/dist-server/routers/magento-private-router.js.map +1 -1
  400. package/dist-server/routers/magento-public-router.d.ts +8 -0
  401. package/dist-server/routers/magento-public-router.js.map +1 -1
  402. package/dist-server/routers/shopify-install-private-router.d.ts +1 -0
  403. package/dist-server/routers/shopify-install-private-router.js.map +1 -1
  404. package/dist-server/routers/shopify-install-public-router.d.ts +1 -0
  405. package/dist-server/routers/shopify-install-public-router.js.map +1 -1
  406. package/dist-server/routers/shopify-private-router.d.ts +1 -0
  407. package/dist-server/routers/shopify-private-router.js.map +1 -1
  408. package/dist-server/routers/shopify-public-router.d.ts +1 -0
  409. package/dist-server/routers/shopify-public-router.js.map +1 -1
  410. package/dist-server/routers/woocommerce-router.d.ts +13 -0
  411. package/dist-server/routers/woocommerce-router.js.map +1 -1
  412. package/dist-server/routes.d.ts +1 -0
  413. package/dist-server/tsconfig.tsbuildinfo +1 -1
  414. package/package.json +13 -13
  415. package/server/controllers/shopee/shopee.ts +2 -2
@@ -0,0 +1,6 @@
1
+ export declare const getStoreProduct: {
2
+ getStoreProduct(_: any, { storeId, itemId }: {
3
+ storeId: any;
4
+ itemId: any;
5
+ }, context: ResolverContext): Promise<any>;
6
+ };
@@ -0,0 +1,5 @@
1
+ export declare const getStoreProducts: {
2
+ getStoreProducts(_: any, { storeId }: {
3
+ storeId: any;
4
+ }, context: ResolverContext): Promise<any>;
5
+ };
@@ -0,0 +1,41 @@
1
+ export declare const StoreProductResolver: {
2
+ Query: {
3
+ getStoreProductBrands(_: any, { storeId }: {
4
+ storeId: any;
5
+ }, context: ResolverContext): Promise<any>;
6
+ getStoreProductCategoryAttributes(_: any, { storeId, categoryId, isCrossBorder }: {
7
+ storeId: any;
8
+ categoryId: any;
9
+ isCrossBorder: any;
10
+ }, context: ResolverContext): Promise<any>;
11
+ getStoreProductCategories(_: any, { storeId }: {
12
+ storeId: any;
13
+ }, context: ResolverContext): Promise<any>;
14
+ getStoreProducts(_: any, { storeId }: {
15
+ storeId: any;
16
+ }, context: ResolverContext): Promise<any>;
17
+ getStoreProduct(_: any, { storeId, itemId }: {
18
+ storeId: any;
19
+ itemId: any;
20
+ }, context: ResolverContext): Promise<any>;
21
+ };
22
+ Mutation: {
23
+ updateStoreProduct(_: any, { storeId, productInformation }: {
24
+ storeId: any;
25
+ productInformation: any;
26
+ }, context: ResolverContext): Promise<any>;
27
+ deleteStoreProduct(_: any, { storeId, itemList }: {
28
+ storeId: any;
29
+ itemList: any;
30
+ }, context: ResolverContext): Promise<any>;
31
+ createStoreProductVariations(_: any, { storeId, itemId, variations }: {
32
+ storeId: any;
33
+ itemId: any;
34
+ variations: any;
35
+ }, context: ResolverContext): Promise<any>;
36
+ createStoreProduct(_: any, { storeId, productInformation }: {
37
+ storeId: any;
38
+ productInformation: any;
39
+ }, context: ResolverContext): Promise<any>;
40
+ };
41
+ };
@@ -0,0 +1,6 @@
1
+ export declare const updateStoreProduct: {
2
+ updateStoreProduct(_: any, { storeId, productInformation }: {
3
+ storeId: any;
4
+ productInformation: any;
5
+ }, context: ResolverContext): Promise<any>;
6
+ };
@@ -0,0 +1,6 @@
1
+ export * from './marketplace-transporter';
2
+ export * from './marketplace-store';
3
+ export * from './marketplace-setting';
4
+ export * from './marketplace-distributor';
5
+ export * from './store-order';
6
+ export * from './store-product';
@@ -0,0 +1,5 @@
1
+ export * from './marketplace-distributor';
2
+ export * from './new-marketplace-distributor';
3
+ export * from './marketplace-distributor-patch';
4
+ export * from './marketplace-distributor-list';
5
+ export declare const MarketplaceDistributorResolver: import("graphql").DocumentNode;
@@ -0,0 +1 @@
1
+ export declare const MarketplaceDistributorList: import("graphql").DocumentNode;
@@ -0,0 +1 @@
1
+ export declare const MarketplaceDistributorPatch: import("graphql").DocumentNode;
@@ -0,0 +1 @@
1
+ export declare const MarketplaceDistributor: import("graphql").DocumentNode;
@@ -0,0 +1 @@
1
+ export declare const NewMarketplaceDistributor: import("graphql").DocumentNode;
@@ -0,0 +1,5 @@
1
+ export * from './marketplace-setting';
2
+ export * from './new-marketplace-setting';
3
+ export * from './marketplace-setting-patch';
4
+ export * from './marketplace-setting-list';
5
+ export declare const MarketplaceSettingResolver: import("graphql").DocumentNode;
@@ -0,0 +1 @@
1
+ export declare const MarketplaceSettingList: import("graphql").DocumentNode;
@@ -0,0 +1 @@
1
+ export declare const MarketplaceSettingPatch: import("graphql").DocumentNode;
@@ -0,0 +1 @@
1
+ export declare const MarketplaceSetting: import("graphql").DocumentNode;
@@ -0,0 +1 @@
1
+ export declare const NewMarketplaceSetting: import("graphql").DocumentNode;
@@ -0,0 +1,5 @@
1
+ export * from './marketplace-store';
2
+ export * from './new-marketplace-store';
3
+ export * from './marketplace-store-patch';
4
+ export * from './marketplace-store-list';
5
+ export declare const MarketplaceStoreResolver: import("graphql").DocumentNode;
@@ -0,0 +1 @@
1
+ export declare const MarketplaceStoreList: import("graphql").DocumentNode;
@@ -0,0 +1 @@
1
+ export declare const MarketplaceStorePatch: import("graphql").DocumentNode;
@@ -0,0 +1 @@
1
+ export declare const MarketplaceStore: import("graphql").DocumentNode;
@@ -0,0 +1 @@
1
+ export declare const NewMarketplaceStore: import("graphql").DocumentNode;
@@ -0,0 +1,5 @@
1
+ export * from './marketplace-transporter';
2
+ export * from './new-marketplace-transporter';
3
+ export * from './marketplace-transporter-patch';
4
+ export * from './marketplace-transporter-list';
5
+ export declare const MarketplaceTransporterResolver: import("graphql").DocumentNode;
@@ -0,0 +1 @@
1
+ export declare const MarketplaceTransporterList: import("graphql").DocumentNode;
@@ -0,0 +1 @@
1
+ export declare const MarketplaceTransporterPatch: import("graphql").DocumentNode;
@@ -0,0 +1 @@
1
+ export declare const MarketplaceTransporter: import("graphql").DocumentNode;
@@ -0,0 +1 @@
1
+ export declare const NewMarketplaceTransporter: import("graphql").DocumentNode;
@@ -0,0 +1,5 @@
1
+ export * from './store-order';
2
+ export * from './new-store-order';
3
+ export * from './store-order-patch';
4
+ export * from './store-order-list';
5
+ export declare const StoreOrderResolver: import("graphql").DocumentNode;
@@ -0,0 +1 @@
1
+ export declare const NewStoreOrder: import("graphql").DocumentNode;
@@ -0,0 +1 @@
1
+ export declare const StoreOrderList: import("graphql").DocumentNode;
@@ -0,0 +1 @@
1
+ export declare const StoreOrderPatch: import("graphql").DocumentNode;
@@ -0,0 +1 @@
1
+ export declare const StoreOrder: import("graphql").DocumentNode;
@@ -0,0 +1,5 @@
1
+ export * from './store-product';
2
+ export * from './new-store-product';
3
+ export * from './store-product-patch';
4
+ export * from './store-product-list';
5
+ export declare const StoreProductResolver: import("graphql").DocumentNode;
@@ -0,0 +1 @@
1
+ export declare const NewStoreProduct: import("graphql").DocumentNode;
@@ -0,0 +1 @@
1
+ export declare const StoreProductList: import("graphql").DocumentNode;
@@ -0,0 +1 @@
1
+ export declare const StoreProductPatch: import("graphql").DocumentNode;
@@ -0,0 +1 @@
1
+ export declare const StoreProduct: import("graphql").DocumentNode;
@@ -0,0 +1,6 @@
1
+ export * from './entities';
2
+ export * from './migrations';
3
+ export * from './graphql';
4
+ export * from './controllers';
5
+ import './routes';
6
+ import './engine';
@@ -0,0 +1 @@
1
+ export declare var migrations: any[];
@@ -0,0 +1,8 @@
1
+ export declare const magentoPrivateRouter: any;
2
+ export type MagentoAccessInfo = {
3
+ store_base_url: string;
4
+ oauth_verifier: string;
5
+ oauth_consumer_key: string;
6
+ oauth_consumer_secret: string;
7
+ oauth_token?: string;
8
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"magento-private-router.js","sourceRoot":"","sources":["../../server/routers/magento-private-router.ts"],"names":[],"mappings":"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","sourcesContent":["import Router from 'koa-router'\nimport fetch from 'node-fetch'\nimport { v4 as uuidv4 } from 'uuid'\n\nimport { config } from '@things-factory/env'\nimport { getRedirectSubdomainPath, getRepository } from '@things-factory/shell'\n\nimport { Magento } from '../controllers/magento'\nimport { MarketplaceSetting, MarketplaceStore } from '../entities'\nimport { STORE_STATUS } from '../graphql/constants'\n\nconst debug = require('debug')('things-factory:integration-marketplace:magento-private-router')\n\nconst isPathBaseDomain = !config.get('subdomain') && !config.get('useVirtualHostBasedDomain')\n\nexport const magentoPrivateRouter = new Router()\n\nexport type MagentoAccessInfo = {\n store_base_url: string\n oauth_verifier: string\n oauth_consumer_key: string\n oauth_consumer_secret: string\n oauth_token?: string\n}\n\nmagentoPrivateRouter.get(\n `${isPathBaseDomain ? '/domain/:domain' : ''}/callback-magento-pre-install`,\n async (context, next) => {\n const { domain, user } = context.state\n\n const {\n store_base_url: storeURL,\n oauth_verifier: oauthVerifier,\n oauth_consumer_key: accessKey,\n oauth_consumer_secret: accessSecret\n } = process['MagentoInstallSessions']\n\n // const {\n // store_base_url: storeURL,\n // oauth_verifier: oauthVerifier,\n // oauth_consumer_key: accessKey,\n // oauth_consumer_secret: accessSecret\n // } = JSON.parse(accessInfoCookies)\n\n // const accessInfoCookies = context.cookies.get('magento-access-info')\n // const {\n // store_base_url: storeURL,\n // oauth_verifier: oauthVerifier,\n // oauth_consumer_key: accessKey,\n // oauth_consumer_secret: accessSecret\n // } = JSON.parse(accessInfoCookies)\n\n const magento = new Magento({ oauthConsumerKey: accessKey, oauthConsumerSecret: accessSecret, shop: storeURL })\n const requestURL: string = `${storeURL}oauth/token/request`\n const requestAuthorizationHeader: string = magento.makeRequestAuthorizationHeader(\n requestURL,\n 'POST',\n accessKey,\n accessSecret\n )\n\n const requestTokenResponse = await fetch(`${requestURL}`, {\n method: 'post',\n headers: {\n Authorization: requestAuthorizationHeader,\n 'Content-Type': 'application/json'\n }\n })\n\n if (!requestTokenResponse.ok) {\n const message = `failed to request token from magento : ${\n requestTokenResponse.status\n }, ${await requestTokenResponse.text()}`\n debug(message)\n context.throw(500, message)\n }\n\n // const requestTokenResponse = new URLSearchParams(\n // 'oauth_token=4cqw0r7vo0s5goyyqnjb72sqj3vxwr0h&oauth_token_secret=rig3x3j5a9z5j6d4ubjwyf9f1l21itrr'\n // )\n\n var requestBody: any = requestTokenResponse.json()\n if (!requestBody.oauth_token) {\n const message = `failed to get oauth-token from magento : ${JSON.stringify(requestBody, null, 2)}`\n debug(message)\n context.throw(500, message)\n }\n\n const accessURL: string = `${storeURL}oauth/token/access`\n const accessAuthorizationHeader: string = magento.makeAccessAuthorizationHeader(\n accessURL,\n 'POST',\n accessKey,\n requestBody.oauth_token,\n oauthVerifier\n )\n const accessTokenResponse = await fetch(`${accessURL}`, {\n method: 'post',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: accessAuthorizationHeader\n },\n body: JSON.stringify({\n oauth_consumer_key: accessKey,\n oauth_consumer_secret: accessSecret\n })\n })\n\n if (!accessTokenResponse.ok) {\n const message = `failed to access token from magento : ${\n accessTokenResponse.status\n }, ${await accessTokenResponse.text()}`\n debug(message)\n context.throw(500, message)\n }\n\n // const accessTokenResponse = new URLSearchParams(\n // 'oauth_token=0lnuajnuzeei2o8xcddii5us77xnb6v0&oauth_token_secret=1c6d2hycnir5ygf39fycs6zhtaagx8pd'\n // )\n\n var accessBody: any = accessTokenResponse.json()\n if (!accessBody.oauth_token) {\n const message = `failed to get access token from magento : ${JSON.stringify(accessBody, null, 2)}`\n debug(message)\n context.throw(500, message)\n }\n\n // need to get or save marketplace-store here\n var marketplaceStore = await getRepository(MarketplaceStore).findOne({\n where: {\n domain: { id: domain.id },\n storeId: oauthVerifier,\n platform: 'magento'\n }\n })\n\n if (!marketplaceStore) {\n marketplaceStore = await getRepository(MarketplaceStore).save({\n domain,\n platform: 'magento',\n name: 'magento-' + oauthVerifier,\n storeId: oauthVerifier,\n countryCode: '',\n accessToken: accessBody.outh_token,\n refreshToken: '',\n accessInfo: accessBody,\n status: STORE_STATUS.ACTIVE,\n creator: user,\n updater: user\n })\n } else {\n var patch = {\n accessToken: accessBody.outh_token,\n refreshToken: '',\n accessInfo: accessBody,\n status: STORE_STATUS.ACTIVE,\n updater: user\n }\n\n marketplaceStore = await getRepository(MarketplaceStore).save({\n ...marketplaceStore,\n ...patch\n })\n }\n\n const marketplaceSettingCategories: any[] = ['stock_allocation', 'marketplace_order_max_weight']\n\n marketplaceSettingCategories.forEach(async category => {\n const foundMarketplaceSetting: MarketplaceSetting = await getRepository(MarketplaceSetting).findOne({\n where: { marketplaceStore: { id: marketplaceStore.id }, domain: { id: domain.id }, category }\n })\n\n if (!foundMarketplaceSetting) {\n const marketplaceSetting = new MarketplaceSetting()\n marketplaceSetting.name = uuidv4()\n marketplaceSetting.marketplaceStore = marketplaceStore\n marketplaceSetting.value = '100'\n marketplaceSetting.category = category\n marketplaceSetting.domain = domain\n marketplaceSetting.creator = user\n await getRepository(MarketplaceSetting).save(marketplaceSetting)\n }\n })\n\n var message = 'success to activate'\n context.redirect(\n `${getRedirectSubdomainPath(context, domain.subdomain)}marketplace-store-magento/${\n marketplaceStore.id\n }/connect-callback?status=${marketplaceStore.status}&message=${message}`\n )\n }\n)\n"]}
1
+ {"version":3,"file":"magento-private-router.js","sourceRoot":"","sources":["../../server/routers/magento-private-router.ts"],"names":[],"mappings":"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","sourcesContent":["import Router from 'koa-router'\nimport fetch from 'node-fetch'\nimport { v4 as uuidv4 } from 'uuid'\n\nimport { config } from '@things-factory/env'\nimport { getRedirectSubdomainPath, getRepository } from '@things-factory/shell'\n\nimport { Magento } from '../controllers/magento'\nimport { MarketplaceSetting, MarketplaceStore } from '../entities'\nimport { STORE_STATUS } from '../graphql/constants'\n\nconst debug = require('debug')('things-factory:integration-marketplace:magento-private-router')\n\nconst isPathBaseDomain = !config.get('subdomain') && !config.get('useVirtualHostBasedDomain')\n\nexport const magentoPrivateRouter = new Router()\n\nexport type MagentoAccessInfo = {\n store_base_url: string\n oauth_verifier: string\n oauth_consumer_key: string\n oauth_consumer_secret: string\n oauth_token?: string\n}\n\nmagentoPrivateRouter.get(\n `${isPathBaseDomain ? '/domain/:domain' : ''}/callback-magento-pre-install`,\n async (context, next) => {\n const { domain, user } = context.state\n\n const {\n store_base_url: storeURL,\n oauth_verifier: oauthVerifier,\n oauth_consumer_key: accessKey,\n oauth_consumer_secret: accessSecret\n } = process['MagentoInstallSessions']\n\n // const {\n // store_base_url: storeURL,\n // oauth_verifier: oauthVerifier,\n // oauth_consumer_key: accessKey,\n // oauth_consumer_secret: accessSecret\n // } = JSON.parse(accessInfoCookies)\n\n // const accessInfoCookies = context.cookies.get('magento-access-info')\n // const {\n // store_base_url: storeURL,\n // oauth_verifier: oauthVerifier,\n // oauth_consumer_key: accessKey,\n // oauth_consumer_secret: accessSecret\n // } = JSON.parse(accessInfoCookies)\n\n const magento = new Magento({ oauthConsumerKey: accessKey, oauthConsumerSecret: accessSecret, shop: storeURL })\n const requestURL: string = `${storeURL}oauth/token/request`\n const requestAuthorizationHeader: string = magento.makeRequestAuthorizationHeader(\n requestURL,\n 'POST',\n accessKey,\n accessSecret\n )\n\n const requestTokenResponse = await fetch(`${requestURL}`, {\n method: 'post',\n headers: {\n Authorization: requestAuthorizationHeader,\n 'Content-Type': 'application/json'\n }\n })\n\n if (!requestTokenResponse.ok) {\n const message = `failed to request token from magento : ${\n requestTokenResponse.status\n }, ${await requestTokenResponse.text()}`\n debug(message)\n context.throw(500, message)\n }\n\n // const requestTokenResponse = new URLSearchParams(\n // 'oauth_token=4cqw0r7vo0s5goyyqnjb72sqj3vxwr0h&oauth_token_secret=rig3x3j5a9z5j6d4ubjwyf9f1l21itrr'\n // )\n\n var requestBody: any = requestTokenResponse.json()\n if (!requestBody.oauth_token) {\n const message = `failed to get oauth-token from magento : ${JSON.stringify(requestBody, null, 2)}`\n debug(message)\n context.throw(500, message)\n }\n\n const accessURL: string = `${storeURL}oauth/token/access`\n const accessAuthorizationHeader: string = magento.makeAccessAuthorizationHeader(\n accessURL,\n 'POST',\n accessKey,\n requestBody.oauth_token,\n oauthVerifier\n )\n const accessTokenResponse = await fetch(`${accessURL}`, {\n method: 'post',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: accessAuthorizationHeader\n },\n body: JSON.stringify({\n oauth_consumer_key: accessKey,\n oauth_consumer_secret: accessSecret\n })\n })\n\n if (!accessTokenResponse.ok) {\n const message = `failed to access token from magento : ${\n accessTokenResponse.status\n }, ${await accessTokenResponse.text()}`\n debug(message)\n context.throw(500, message)\n }\n\n // const accessTokenResponse = new URLSearchParams(\n // 'oauth_token=0lnuajnuzeei2o8xcddii5us77xnb6v0&oauth_token_secret=1c6d2hycnir5ygf39fycs6zhtaagx8pd'\n // )\n\n var accessBody: any = accessTokenResponse.json()\n if (!accessBody.oauth_token) {\n const message = `failed to get access token from magento : ${JSON.stringify(accessBody, null, 2)}`\n debug(message)\n context.throw(500, message)\n }\n\n // need to get or save marketplace-store here\n var marketplaceStore = await getRepository(MarketplaceStore).findOne({\n where: {\n domain: { id: domain.id },\n storeId: oauthVerifier,\n platform: 'magento'\n }\n })\n\n if (!marketplaceStore) {\n marketplaceStore = await getRepository(MarketplaceStore).save({\n domain,\n platform: 'magento',\n name: 'magento-' + oauthVerifier,\n storeId: oauthVerifier,\n countryCode: '',\n accessToken: accessBody.outh_token,\n refreshToken: '',\n accessInfo: accessBody,\n status: STORE_STATUS.ACTIVE,\n creator: user,\n updater: user\n })\n } else {\n var patch = {\n accessToken: accessBody.outh_token,\n refreshToken: '',\n accessInfo: accessBody,\n status: STORE_STATUS.ACTIVE,\n updater: user\n }\n\n marketplaceStore = await getRepository(MarketplaceStore).save({\n ...marketplaceStore,\n ...patch\n })\n }\n\n const marketplaceSettingCategories: any[] = ['stock_allocation', 'marketplace_order_max_weight']\n\n marketplaceSettingCategories.forEach(async category => {\n const foundMarketplaceSetting: MarketplaceSetting = await getRepository(MarketplaceSetting).findOne({\n where: { marketplaceStore: { id: marketplaceStore.id }, domain: { id: domain.id }, category }\n })\n\n if (!foundMarketplaceSetting) {\n const marketplaceSetting = new MarketplaceSetting()\n marketplaceSetting.name = uuidv4()\n marketplaceSetting.marketplaceStore = marketplaceStore\n marketplaceSetting.value = '100'\n marketplaceSetting.category = category\n marketplaceSetting.domain = domain\n marketplaceSetting.creator = user\n await getRepository(MarketplaceSetting).save(marketplaceSetting)\n }\n })\n\n var message = 'success to activate'\n context.redirect(\n `${getRedirectSubdomainPath(context, domain.subdomain)}marketplace-store-magento/${\n marketplaceStore.id\n }/connect-callback?status=${marketplaceStore.status}&message=${message}`\n )\n }\n)\n"]}
@@ -0,0 +1,8 @@
1
+ export declare const magentoPublicRouter: any;
2
+ export type MagentoAccessInfo = {
3
+ store_base_url: string;
4
+ oauth_verifier: string;
5
+ oauth_consumer_key: string;
6
+ oauth_consumer_secret: string;
7
+ oauth_token?: string;
8
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"magento-public-router.js","sourceRoot":"","sources":["../../server/routers/magento-public-router.ts"],"names":[],"mappings":";;;;AAAA,oEAA+B;AAC/B,iDAAyD;AAEzD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,8DAA8D,CAAC,CAAA;AAEjF,QAAA,mBAAmB,GAAG,IAAI,oBAAM,EAAE,CAAA;AAU/C,2BAAmB,CAAC,IAAI,CAAC,2BAA2B,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IAC5E,IAAI;QACF,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;QAC1B,MAAM,UAAU,GAAsB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAA;QAE1D,aAAa;QACb,wDAAwD;QACxD,2DAA2D;QAC3D,oDAAoD;QACpD,mDAAmD;QAEnD,kHAAkH;QAClH,OAAO,CAAC,wBAAwB,CAAC,GAAG,UAAU,CAAA;QAE9C,MAAM,IAAI,EAAE,CAAA;KACb;IAAC,OAAO,CAAC,EAAE;QACV,MAAM,CAAC,CAAA;KACR;AACH,CAAC,CAAC,CAAA;AAEF,2BAAmB,CAAC,GAAG,CAAC,kBAAkB,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IAClE,OAAO,CAAC,QAAQ,CAAC,IAAA,yBAAiB,EAAC,OAAO,EAAE,+BAA+B,CAAC,CAAC,CAAA;AAC/E,CAAC,CAAC,CAAA","sourcesContent":["import Router from 'koa-router'\nimport { getUrlFromContext } from '@things-factory/shell'\n\nconst debug = require('debug')('things-factory:integration-marketplace:magento-public-router')\n\nexport const magentoPublicRouter = new Router()\n\nexport type MagentoAccessInfo = {\n store_base_url: string\n oauth_verifier: string\n oauth_consumer_key: string\n oauth_consumer_secret: string\n oauth_token?: string\n}\n\nmagentoPublicRouter.post('/callback-magento-install', async (context, next) => {\n try {\n const { secure } = context\n const accessInfo: MagentoAccessInfo = context.request.body\n\n // accessInfo\n // oauth_consumer_key:'4hbw9dfzedieixdnj86l3i17phkwgytk'\n // oauth_consumer_secret:'bnlr4ji8ycag60tgqv6g6nk45jsbw07a'\n // oauth_verifier:'uskg5gdr6vov9tx4wcbosodm27phtfat'\n // store_base_url:'https://fnlife.appscentral.net/'\n\n // context.cookies.set('magento-access-info', JSON.stringify({ ...accessInfo }), { secure: true, httpOnly: true })\n process['MagentoInstallSessions'] = accessInfo\n\n await next()\n } catch (e) {\n throw e\n }\n})\n\nmagentoPublicRouter.get('/install-magento', async (context, next) => {\n context.redirect(getUrlFromContext(context, '/callback-magento-pre-install'))\n})\n"]}
1
+ {"version":3,"file":"magento-public-router.js","sourceRoot":"","sources":["../../server/routers/magento-public-router.ts"],"names":[],"mappings":";;;;AAAA,oEAA+B;AAC/B,iDAAyD;AAEzD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,8DAA8D,CAAC,CAAA;AAEjF,QAAA,mBAAmB,GAAG,IAAI,oBAAM,EAAE,CAAA;AAU/C,2BAAmB,CAAC,IAAI,CAAC,2BAA2B,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IAC5E,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;QAC1B,MAAM,UAAU,GAAsB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAA;QAE1D,aAAa;QACb,wDAAwD;QACxD,2DAA2D;QAC3D,oDAAoD;QACpD,mDAAmD;QAEnD,kHAAkH;QAClH,OAAO,CAAC,wBAAwB,CAAC,GAAG,UAAU,CAAA;QAE9C,MAAM,IAAI,EAAE,CAAA;IACd,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,CAAC,CAAA;IACT,CAAC;AACH,CAAC,CAAC,CAAA;AAEF,2BAAmB,CAAC,GAAG,CAAC,kBAAkB,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IAClE,OAAO,CAAC,QAAQ,CAAC,IAAA,yBAAiB,EAAC,OAAO,EAAE,+BAA+B,CAAC,CAAC,CAAA;AAC/E,CAAC,CAAC,CAAA","sourcesContent":["import Router from 'koa-router'\nimport { getUrlFromContext } from '@things-factory/shell'\n\nconst debug = require('debug')('things-factory:integration-marketplace:magento-public-router')\n\nexport const magentoPublicRouter = new Router()\n\nexport type MagentoAccessInfo = {\n store_base_url: string\n oauth_verifier: string\n oauth_consumer_key: string\n oauth_consumer_secret: string\n oauth_token?: string\n}\n\nmagentoPublicRouter.post('/callback-magento-install', async (context, next) => {\n try {\n const { secure } = context\n const accessInfo: MagentoAccessInfo = context.request.body\n\n // accessInfo\n // oauth_consumer_key:'4hbw9dfzedieixdnj86l3i17phkwgytk'\n // oauth_consumer_secret:'bnlr4ji8ycag60tgqv6g6nk45jsbw07a'\n // oauth_verifier:'uskg5gdr6vov9tx4wcbosodm27phtfat'\n // store_base_url:'https://fnlife.appscentral.net/'\n\n // context.cookies.set('magento-access-info', JSON.stringify({ ...accessInfo }), { secure: true, httpOnly: true })\n process['MagentoInstallSessions'] = accessInfo\n\n await next()\n } catch (e) {\n throw e\n }\n})\n\nmagentoPublicRouter.get('/install-magento', async (context, next) => {\n context.redirect(getUrlFromContext(context, '/callback-magento-pre-install'))\n})\n"]}
@@ -0,0 +1 @@
1
+ export declare const shopifyInstallPrivateRouter: any;
@@ -1 +1 @@
1
- {"version":3,"file":"shopify-install-private-router.js","sourceRoot":"","sources":["../../server/routers/shopify-install-private-router.ts"],"names":[],"mappings":"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","sourcesContent":["import Router from 'koa-router'\nimport { v4 as uuidv4 } from 'uuid'\n\nimport { config } from '@things-factory/env'\nimport { getRedirectSubdomainPath, getRepository } from '@things-factory/shell'\n\nimport { MarketplaceSetting, MarketplaceStore } from '../entities'\nimport { STORE_STATUS } from '../graphql/constants'\n\nconst isPathBaseDomain = !config.get('subdomain') && !config.get('useVirtualHostBasedDomain')\n\nconst debug = require('debug')('things-factory:integration-marketplace:shopify-install-private-router')\n\nexport const shopifyInstallPrivateRouter = new Router()\n\nshopifyInstallPrivateRouter.get(\n `${isPathBaseDomain ? '/domain/:domain' : ''}/callback-shopify-post-install`,\n async (context, next) => {\n const { secure } = context\n const { domain, user } = context.state\n\n const shopifyCookie = context.cookies.get('shopify-access-token')\n const { access_token: accessToken, shop: shopUrl } = JSON.parse(shopifyCookie)\n const shop = shopUrl.replace('.myshopify.com', '')\n\n context.cookies.set('shopify-access-token', '', {\n secure,\n httpOnly: true\n })\n\n // need to get or save marketplace-store here\n var marketplaceStore = await getRepository(MarketplaceStore).findOne({\n where: {\n domain: { id: domain.id },\n storeId: shop,\n platform: 'shopify'\n }\n })\n\n if (!marketplaceStore) {\n marketplaceStore = await getRepository(MarketplaceStore).save({\n domain: { id: domain.id },\n platform: 'shopify',\n name: 'shopify-' + shop,\n storeId: shop,\n countryCode: '',\n accessToken,\n refreshToken: '',\n accessInfo: shopifyCookie,\n status: STORE_STATUS.ACTIVE,\n creator: user,\n updater: user\n })\n } else {\n var patch = {\n accessToken,\n refreshToken: '',\n accessInfo: shopifyCookie,\n status: STORE_STATUS.ACTIVE,\n updater: user\n }\n\n marketplaceStore = await getRepository(MarketplaceStore).save({\n ...marketplaceStore,\n ...patch\n })\n }\n\n const marketplaceSettingCategories: any[] = ['stock_allocation', 'marketplace_order_max_weight']\n\n marketplaceSettingCategories.forEach(async category => {\n const foundMarketplaceSetting: MarketplaceSetting = await getRepository(MarketplaceSetting).findOne({\n where: { marketplaceStore: { id: marketplaceStore.id }, domain: { id: domain.id }, category }\n })\n\n if (!foundMarketplaceSetting) {\n const marketplaceSetting = new MarketplaceSetting()\n marketplaceSetting.name = uuidv4()\n marketplaceSetting.marketplaceStore = marketplaceStore\n marketplaceSetting.value = '100'\n marketplaceSetting.category = category\n marketplaceSetting.domain = domain\n marketplaceSetting.creator = user\n await getRepository(MarketplaceSetting).save(marketplaceSetting)\n }\n })\n\n var message = 'success to activate'\n context.redirect(\n `${getRedirectSubdomainPath(context, domain.subdomain)}marketplace-store-shopify/${\n marketplaceStore.id\n }/connect-callback?status=${marketplaceStore.status}&message=${message}`\n )\n }\n)\n"]}
1
+ {"version":3,"file":"shopify-install-private-router.js","sourceRoot":"","sources":["../../server/routers/shopify-install-private-router.ts"],"names":[],"mappings":"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","sourcesContent":["import Router from 'koa-router'\nimport { v4 as uuidv4 } from 'uuid'\n\nimport { config } from '@things-factory/env'\nimport { getRedirectSubdomainPath, getRepository } from '@things-factory/shell'\n\nimport { MarketplaceSetting, MarketplaceStore } from '../entities'\nimport { STORE_STATUS } from '../graphql/constants'\n\nconst isPathBaseDomain = !config.get('subdomain') && !config.get('useVirtualHostBasedDomain')\n\nconst debug = require('debug')('things-factory:integration-marketplace:shopify-install-private-router')\n\nexport const shopifyInstallPrivateRouter = new Router()\n\nshopifyInstallPrivateRouter.get(\n `${isPathBaseDomain ? '/domain/:domain' : ''}/callback-shopify-post-install`,\n async (context, next) => {\n const { secure } = context\n const { domain, user } = context.state\n\n const shopifyCookie = context.cookies.get('shopify-access-token')\n const { access_token: accessToken, shop: shopUrl } = JSON.parse(shopifyCookie)\n const shop = shopUrl.replace('.myshopify.com', '')\n\n context.cookies.set('shopify-access-token', '', {\n secure,\n httpOnly: true\n })\n\n // need to get or save marketplace-store here\n var marketplaceStore = await getRepository(MarketplaceStore).findOne({\n where: {\n domain: { id: domain.id },\n storeId: shop,\n platform: 'shopify'\n }\n })\n\n if (!marketplaceStore) {\n marketplaceStore = await getRepository(MarketplaceStore).save({\n domain: { id: domain.id },\n platform: 'shopify',\n name: 'shopify-' + shop,\n storeId: shop,\n countryCode: '',\n accessToken,\n refreshToken: '',\n accessInfo: shopifyCookie,\n status: STORE_STATUS.ACTIVE,\n creator: user,\n updater: user\n })\n } else {\n var patch = {\n accessToken,\n refreshToken: '',\n accessInfo: shopifyCookie,\n status: STORE_STATUS.ACTIVE,\n updater: user\n }\n\n marketplaceStore = await getRepository(MarketplaceStore).save({\n ...marketplaceStore,\n ...patch\n })\n }\n\n const marketplaceSettingCategories: any[] = ['stock_allocation', 'marketplace_order_max_weight']\n\n marketplaceSettingCategories.forEach(async category => {\n const foundMarketplaceSetting: MarketplaceSetting = await getRepository(MarketplaceSetting).findOne({\n where: { marketplaceStore: { id: marketplaceStore.id }, domain: { id: domain.id }, category }\n })\n\n if (!foundMarketplaceSetting) {\n const marketplaceSetting = new MarketplaceSetting()\n marketplaceSetting.name = uuidv4()\n marketplaceSetting.marketplaceStore = marketplaceStore\n marketplaceSetting.value = '100'\n marketplaceSetting.category = category\n marketplaceSetting.domain = domain\n marketplaceSetting.creator = user\n await getRepository(MarketplaceSetting).save(marketplaceSetting)\n }\n })\n\n var message = 'success to activate'\n context.redirect(\n `${getRedirectSubdomainPath(context, domain.subdomain)}marketplace-store-shopify/${\n marketplaceStore.id\n }/connect-callback?status=${marketplaceStore.status}&message=${message}`\n )\n }\n)\n"]}
@@ -0,0 +1 @@
1
+ export declare const shopifyInstallPublicRouter: any;
@@ -1 +1 @@
1
- {"version":3,"file":"shopify-install-public-router.js","sourceRoot":"","sources":["../../server/routers/shopify-install-public-router.ts"],"names":[],"mappings":"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","sourcesContent":["import Router from 'koa-router'\nimport fetch from 'node-fetch'\n\nimport { config } from '@things-factory/env'\nimport { getRepository, getUrlFromContext } from '@things-factory/shell'\n\nimport { Shopify } from '../controllers/shopify'\nimport { MarketplaceStore } from '../entities'\n\nconst debug = require('debug')('things-factory:integration-marketplace:shopify-install-public-router')\n\nexport const shopifyInstallPublicRouter = new Router()\n\nshopifyInstallPublicRouter.get('/install-shopify', async (context, next) => {\n const shopifyConfig = config.get('marketplaceIntegrationShopify', {})\n const { apiKey, apiSecret } = shopifyConfig\n\n const { secure } = context\n const { shop: shopUrl } = context.query\n\n if (!shopUrl) {\n context.throw(400, 'shop not found from the request')\n }\n const shop = shopUrl.replace('.myshopify.com', '')\n\n const shopify = new Shopify({ apiKey, apiSecret, shop })\n if (!shopify.isValidSignature(context.query)) {\n context.throw(400, 'HMAC validation failed')\n }\n const redirectUrl = getUrlFromContext(context, '/callback-shopify-install')\n const state = shopify.makeVerificationTokenForNonce()\n\n const authUrl = shopify.buildAuthURL(redirectUrl, state)\n\n context.cookies.set('shopify-install-state', state, {\n secure,\n httpOnly: true\n })\n\n context.redirect(authUrl)\n})\n\nshopifyInstallPublicRouter.get('/callback-shopify-install', async (context, next) => {\n const shopifyConfig = config.get('marketplaceIntegrationShopify', {})\n const { apiKey, apiSecret } = shopifyConfig\n\n const { secure } = context\n const { shop: shopUrl, code, state } = context.query\n const stateCookie = context.cookies.get('shopify-install-state')\n\n if (state !== stateCookie) {\n context.throw(403, 'shopify install state could not be verified')\n }\n\n context.cookies.set('shopify-install-state', '', {\n secure,\n httpOnly: true\n })\n\n const shop = shopUrl.replace('.myshopify.com', '')\n\n const shopify = new Shopify({ apiKey, apiSecret, shop })\n if (!shopify.isValidSignature(context.query)) {\n context.throw(400, 'HMAC validation failed')\n }\n\n const response = await fetch(`https://${shop}.myshopify.com/admin/oauth/access_token`, {\n method: 'post',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n client_id: apiKey,\n client_secret: apiSecret,\n code\n })\n })\n\n if (!response.ok) {\n const message = `failed to get access-token from shopify : ${response.status}, ${await response.text()}`\n debug(message)\n context.throw(500, message)\n }\n\n var body = await response.json()\n if (!body.access_token) {\n const message = `failed to get access-token from shopify : ${JSON.stringify(body, null, 2)}`\n debug(message)\n context.throw(500, message)\n }\n\n /* body should be like this\n {\n \"access_token\": \"f85632530bf277ec9ac6f649fc327f17\",\n \"scope\": \"write_orders,read_customers\",\n \"expires_in\": 86399,\n \"associated_user_scope\": \"write_orders\",\n \"associated_user\": {\n \"id\": 902541635,\n \"first_name\": \"John\",\n \"last_name\": \"Smith\",\n \"email\": \"john@example.com\",\n \"email_verified\": true,\n \"account_owner\": true,\n \"locale\": \"en\",\n \"collaborator\": false\n }\n }\n */\n\n context.cookies.set(\n 'shopify-access-token',\n JSON.stringify({\n shop,\n ...body\n }),\n {\n secure,\n httpOnly: true\n }\n )\n\n context.redirect(getUrlFromContext(context, '/callback-shopify-post-install'))\n})\n\nshopifyInstallPublicRouter.get('/install-shopify-private', async (context, next) => {\n const { secure } = context\n const { shop: shopUrl } = context.query\n debug('shop', shopUrl)\n if (!shopUrl) {\n context.throw(400, 'shop not found from the request')\n }\n const marketplaceStore: MarketplaceStore = await getRepository(MarketplaceStore).findOne({\n where: { storeURL: shopUrl }\n })\n\n if (!marketplaceStore) context.throw(400, 'marketplace store not found')\n\n const { accessKey: apiKey, accessSecret: apiSecret } = marketplaceStore\n const shop = shopUrl.replace('.myshopify.com', '')\n\n const shopify = new Shopify({ apiKey, apiSecret, shop })\n const redirectUrl = getUrlFromContext(context, '/callback-shopify-install-private')\n const state = shopify.makeVerificationTokenForNonce()\n\n const authUrl = shopify.buildAuthURL(redirectUrl, state)\n\n context.cookies.set('shopify-install-state', state, {\n secure,\n httpOnly: true\n })\n\n context.redirect(authUrl)\n})\n\nshopifyInstallPublicRouter.get('/callback-shopify-install-private', async (context, next) => {\n const { secure } = context\n const { shop: shopUrl, code, state } = context.query\n const stateCookie = context.cookies.get('shopify-install-state')\n\n if (state !== stateCookie) {\n context.throw(403, 'shopify install state could not be verified')\n }\n\n context.cookies.set('shopify-install-state', '', {\n secure,\n httpOnly: true\n })\n\n const marketplaceStore: MarketplaceStore = await getRepository(MarketplaceStore).findOne({\n where: { storeURL: shopUrl }\n })\n\n if (!marketplaceStore) context.throw(400, 'marketplace store not found')\n\n const { accessKey: apiKey, accessSecret: apiSecret } = marketplaceStore\n const shop = shopUrl.replace('.myshopify.com', '')\n\n const shopify = new Shopify({ apiKey, apiSecret, shop })\n if (!shopify.isValidSignature(context.query)) {\n context.throw(400, 'HMAC validation failed')\n }\n\n const response = await fetch(`https://${shop}.myshopify.com/admin/oauth/access_token`, {\n method: 'post',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n client_id: apiKey,\n client_secret: apiSecret,\n code\n })\n })\n\n if (!response.ok) {\n const message = `failed to get access-token from shopify : ${response.status}, ${await response.text()}`\n debug(message)\n context.throw(500, message)\n }\n\n var body = await response.json()\n if (!body.access_token) {\n const message = `failed to get access-token from shopify : ${JSON.stringify(body, null, 2)}`\n debug(message)\n context.throw(500, message)\n }\n\n /* body should be like this\n {\n \"access_token\": \"f85632530bf277ec9ac6f649fc327f17\",\n \"scope\": \"write_orders,read_customers\",\n \"expires_in\": 86399,\n \"associated_user_scope\": \"write_orders\",\n \"associated_user\": {\n \"id\": 902541635,\n \"first_name\": \"John\",\n \"last_name\": \"Smith\",\n \"email\": \"john@example.com\",\n \"email_verified\": true,\n \"account_owner\": true,\n \"locale\": \"en\",\n \"collaborator\": false\n }\n }\n */\n\n context.cookies.set(\n 'shopify-access-token',\n JSON.stringify({\n shop,\n ...body\n }),\n {\n secure,\n httpOnly: true\n }\n )\n\n context.redirect(getUrlFromContext(context, '/callback-shopify-post-install'))\n})\n"]}
1
+ {"version":3,"file":"shopify-install-public-router.js","sourceRoot":"","sources":["../../server/routers/shopify-install-public-router.ts"],"names":[],"mappings":"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","sourcesContent":["import Router from 'koa-router'\nimport fetch from 'node-fetch'\n\nimport { config } from '@things-factory/env'\nimport { getRepository, getUrlFromContext } from '@things-factory/shell'\n\nimport { Shopify } from '../controllers/shopify'\nimport { MarketplaceStore } from '../entities'\n\nconst debug = require('debug')('things-factory:integration-marketplace:shopify-install-public-router')\n\nexport const shopifyInstallPublicRouter = new Router()\n\nshopifyInstallPublicRouter.get('/install-shopify', async (context, next) => {\n const shopifyConfig = config.get('marketplaceIntegrationShopify', {})\n const { apiKey, apiSecret } = shopifyConfig\n\n const { secure } = context\n const { shop: shopUrl } = context.query\n\n if (!shopUrl) {\n context.throw(400, 'shop not found from the request')\n }\n const shop = shopUrl.replace('.myshopify.com', '')\n\n const shopify = new Shopify({ apiKey, apiSecret, shop })\n if (!shopify.isValidSignature(context.query)) {\n context.throw(400, 'HMAC validation failed')\n }\n const redirectUrl = getUrlFromContext(context, '/callback-shopify-install')\n const state = shopify.makeVerificationTokenForNonce()\n\n const authUrl = shopify.buildAuthURL(redirectUrl, state)\n\n context.cookies.set('shopify-install-state', state, {\n secure,\n httpOnly: true\n })\n\n context.redirect(authUrl)\n})\n\nshopifyInstallPublicRouter.get('/callback-shopify-install', async (context, next) => {\n const shopifyConfig = config.get('marketplaceIntegrationShopify', {})\n const { apiKey, apiSecret } = shopifyConfig\n\n const { secure } = context\n const { shop: shopUrl, code, state } = context.query\n const stateCookie = context.cookies.get('shopify-install-state')\n\n if (state !== stateCookie) {\n context.throw(403, 'shopify install state could not be verified')\n }\n\n context.cookies.set('shopify-install-state', '', {\n secure,\n httpOnly: true\n })\n\n const shop = shopUrl.replace('.myshopify.com', '')\n\n const shopify = new Shopify({ apiKey, apiSecret, shop })\n if (!shopify.isValidSignature(context.query)) {\n context.throw(400, 'HMAC validation failed')\n }\n\n const response = await fetch(`https://${shop}.myshopify.com/admin/oauth/access_token`, {\n method: 'post',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n client_id: apiKey,\n client_secret: apiSecret,\n code\n })\n })\n\n if (!response.ok) {\n const message = `failed to get access-token from shopify : ${response.status}, ${await response.text()}`\n debug(message)\n context.throw(500, message)\n }\n\n var body = await response.json()\n if (!body.access_token) {\n const message = `failed to get access-token from shopify : ${JSON.stringify(body, null, 2)}`\n debug(message)\n context.throw(500, message)\n }\n\n /* body should be like this\n {\n \"access_token\": \"f85632530bf277ec9ac6f649fc327f17\",\n \"scope\": \"write_orders,read_customers\",\n \"expires_in\": 86399,\n \"associated_user_scope\": \"write_orders\",\n \"associated_user\": {\n \"id\": 902541635,\n \"first_name\": \"John\",\n \"last_name\": \"Smith\",\n \"email\": \"john@example.com\",\n \"email_verified\": true,\n \"account_owner\": true,\n \"locale\": \"en\",\n \"collaborator\": false\n }\n }\n */\n\n context.cookies.set(\n 'shopify-access-token',\n JSON.stringify({\n shop,\n ...body\n }),\n {\n secure,\n httpOnly: true\n }\n )\n\n context.redirect(getUrlFromContext(context, '/callback-shopify-post-install'))\n})\n\nshopifyInstallPublicRouter.get('/install-shopify-private', async (context, next) => {\n const { secure } = context\n const { shop: shopUrl } = context.query\n debug('shop', shopUrl)\n if (!shopUrl) {\n context.throw(400, 'shop not found from the request')\n }\n const marketplaceStore: MarketplaceStore = await getRepository(MarketplaceStore).findOne({\n where: { storeURL: shopUrl }\n })\n\n if (!marketplaceStore) context.throw(400, 'marketplace store not found')\n\n const { accessKey: apiKey, accessSecret: apiSecret } = marketplaceStore\n const shop = shopUrl.replace('.myshopify.com', '')\n\n const shopify = new Shopify({ apiKey, apiSecret, shop })\n const redirectUrl = getUrlFromContext(context, '/callback-shopify-install-private')\n const state = shopify.makeVerificationTokenForNonce()\n\n const authUrl = shopify.buildAuthURL(redirectUrl, state)\n\n context.cookies.set('shopify-install-state', state, {\n secure,\n httpOnly: true\n })\n\n context.redirect(authUrl)\n})\n\nshopifyInstallPublicRouter.get('/callback-shopify-install-private', async (context, next) => {\n const { secure } = context\n const { shop: shopUrl, code, state } = context.query\n const stateCookie = context.cookies.get('shopify-install-state')\n\n if (state !== stateCookie) {\n context.throw(403, 'shopify install state could not be verified')\n }\n\n context.cookies.set('shopify-install-state', '', {\n secure,\n httpOnly: true\n })\n\n const marketplaceStore: MarketplaceStore = await getRepository(MarketplaceStore).findOne({\n where: { storeURL: shopUrl }\n })\n\n if (!marketplaceStore) context.throw(400, 'marketplace store not found')\n\n const { accessKey: apiKey, accessSecret: apiSecret } = marketplaceStore\n const shop = shopUrl.replace('.myshopify.com', '')\n\n const shopify = new Shopify({ apiKey, apiSecret, shop })\n if (!shopify.isValidSignature(context.query)) {\n context.throw(400, 'HMAC validation failed')\n }\n\n const response = await fetch(`https://${shop}.myshopify.com/admin/oauth/access_token`, {\n method: 'post',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n client_id: apiKey,\n client_secret: apiSecret,\n code\n })\n })\n\n if (!response.ok) {\n const message = `failed to get access-token from shopify : ${response.status}, ${await response.text()}`\n debug(message)\n context.throw(500, message)\n }\n\n var body = await response.json()\n if (!body.access_token) {\n const message = `failed to get access-token from shopify : ${JSON.stringify(body, null, 2)}`\n debug(message)\n context.throw(500, message)\n }\n\n /* body should be like this\n {\n \"access_token\": \"f85632530bf277ec9ac6f649fc327f17\",\n \"scope\": \"write_orders,read_customers\",\n \"expires_in\": 86399,\n \"associated_user_scope\": \"write_orders\",\n \"associated_user\": {\n \"id\": 902541635,\n \"first_name\": \"John\",\n \"last_name\": \"Smith\",\n \"email\": \"john@example.com\",\n \"email_verified\": true,\n \"account_owner\": true,\n \"locale\": \"en\",\n \"collaborator\": false\n }\n }\n */\n\n context.cookies.set(\n 'shopify-access-token',\n JSON.stringify({\n shop,\n ...body\n }),\n {\n secure,\n httpOnly: true\n }\n )\n\n context.redirect(getUrlFromContext(context, '/callback-shopify-post-install'))\n})\n"]}
@@ -0,0 +1 @@
1
+ export declare const shopifyPrivateRouter: any;
@@ -1 +1 @@
1
- {"version":3,"file":"shopify-private-router.js","sourceRoot":"","sources":["../../server/routers/shopify-private-router.ts"],"names":[],"mappings":"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","sourcesContent":["import Router from 'koa-router'\nimport { v4 as uuidv4 } from 'uuid'\n\nimport { VerificationToken, VerificationTokenType } from '@things-factory/auth-base'\nimport { config } from '@things-factory/env'\nimport { getRepository, getUrlFromContext } from '@things-factory/shell'\n\nimport { Shopify } from '../controllers/shopify'\nimport { MarketplaceSetting, MarketplaceStore } from '../entities'\nimport { STORE_STATUS } from '../graphql/constants'\n\nconst shopifyConfig = config.get('marketplaceIntegrationShopify', {})\nconst { apiKey, apiSecret } = shopifyConfig\nconst isPathBaseDomain = !config.get('subdomain') && !config.get('useVirtualHostBasedDomain')\n\nconst debug = require('debug')('things-factory:integration-marketplace:shopify-private-router')\n\nexport const shopifyPrivateRouter = new Router()\n\nshopifyPrivateRouter.get(\n `${isPathBaseDomain ? '/domain/:domain' : ''}/callback-shopify-install`,\n async (context, next) => {\n // https://example.org/callback-shopify-install?shop={shop}&hmac=da9d83c171400a41f8db91a950508985&timestamp=1409617544\n const { hmac, timestamp } = context.query\n const { domain, user } = context.state\n\n let shop: any = context.query.shop\n shop = shop.replace('.myshopify.com', '')\n\n const shopify = new Shopify({ apiKey, apiSecret, shop })\n\n // need to get or save marketplace-store here\n var marketplaceStore = await getRepository(MarketplaceStore).findOne({\n where: {\n domain: { id: domain.id },\n storeId: shop,\n platform: 'shopify'\n }\n })\n\n if (!marketplaceStore) {\n marketplaceStore = await getRepository(MarketplaceStore).save({\n domain,\n platform: 'shopify',\n name: shop,\n storeId: shop,\n countryCode: '',\n status: STORE_STATUS.INACTIVE,\n creator: user,\n updater: user\n })\n }\n\n const marketplaceSetting = new MarketplaceSetting()\n marketplaceSetting.name = uuidv4()\n marketplaceSetting.marketplaceStore = marketplaceStore\n marketplaceSetting.value = '100'\n marketplaceSetting.category = 'stock_allocation'\n marketplaceSetting.domain = marketplaceStore.domain\n marketplaceSetting.creator = marketplaceStore.creator\n await getRepository(MarketplaceSetting).save(marketplaceSetting)\n\n /* generate verification-token as a nonce */\n const nonce = shopify.makeVerificationTokenForNonce()\n await getRepository(VerificationToken).save({\n userId: user.id,\n token: nonce,\n type: VerificationTokenType.REQUEST_ACCESS_TOKEN,\n suppliment: marketplaceStore.id\n })\n\n const redirectUrl = getUrlFromContext(context, '/callback-shopify')\n const redirectTo = shopify.buildAuthURL(redirectUrl, nonce)\n\n debug('get:/callback-shopify-install', redirectTo)\n context.redirect(redirectTo)\n }\n)\n"]}
1
+ {"version":3,"file":"shopify-private-router.js","sourceRoot":"","sources":["../../server/routers/shopify-private-router.ts"],"names":[],"mappings":"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","sourcesContent":["import Router from 'koa-router'\nimport { v4 as uuidv4 } from 'uuid'\n\nimport { VerificationToken, VerificationTokenType } from '@things-factory/auth-base'\nimport { config } from '@things-factory/env'\nimport { getRepository, getUrlFromContext } from '@things-factory/shell'\n\nimport { Shopify } from '../controllers/shopify'\nimport { MarketplaceSetting, MarketplaceStore } from '../entities'\nimport { STORE_STATUS } from '../graphql/constants'\n\nconst shopifyConfig = config.get('marketplaceIntegrationShopify', {})\nconst { apiKey, apiSecret } = shopifyConfig\nconst isPathBaseDomain = !config.get('subdomain') && !config.get('useVirtualHostBasedDomain')\n\nconst debug = require('debug')('things-factory:integration-marketplace:shopify-private-router')\n\nexport const shopifyPrivateRouter = new Router()\n\nshopifyPrivateRouter.get(\n `${isPathBaseDomain ? '/domain/:domain' : ''}/callback-shopify-install`,\n async (context, next) => {\n // https://example.org/callback-shopify-install?shop={shop}&hmac=da9d83c171400a41f8db91a950508985&timestamp=1409617544\n const { hmac, timestamp } = context.query\n const { domain, user } = context.state\n\n let shop: any = context.query.shop\n shop = shop.replace('.myshopify.com', '')\n\n const shopify = new Shopify({ apiKey, apiSecret, shop })\n\n // need to get or save marketplace-store here\n var marketplaceStore = await getRepository(MarketplaceStore).findOne({\n where: {\n domain: { id: domain.id },\n storeId: shop,\n platform: 'shopify'\n }\n })\n\n if (!marketplaceStore) {\n marketplaceStore = await getRepository(MarketplaceStore).save({\n domain,\n platform: 'shopify',\n name: shop,\n storeId: shop,\n countryCode: '',\n status: STORE_STATUS.INACTIVE,\n creator: user,\n updater: user\n })\n }\n\n const marketplaceSetting = new MarketplaceSetting()\n marketplaceSetting.name = uuidv4()\n marketplaceSetting.marketplaceStore = marketplaceStore\n marketplaceSetting.value = '100'\n marketplaceSetting.category = 'stock_allocation'\n marketplaceSetting.domain = marketplaceStore.domain\n marketplaceSetting.creator = marketplaceStore.creator\n await getRepository(MarketplaceSetting).save(marketplaceSetting)\n\n /* generate verification-token as a nonce */\n const nonce = shopify.makeVerificationTokenForNonce()\n await getRepository(VerificationToken).save({\n userId: user.id,\n token: nonce,\n type: VerificationTokenType.REQUEST_ACCESS_TOKEN,\n suppliment: marketplaceStore.id\n })\n\n const redirectUrl = getUrlFromContext(context, '/callback-shopify')\n const redirectTo = shopify.buildAuthURL(redirectUrl, nonce)\n\n debug('get:/callback-shopify-install', redirectTo)\n context.redirect(redirectTo)\n }\n)\n"]}
@@ -0,0 +1 @@
1
+ export declare const shopifyPublicRouter: any;
@@ -1 +1 @@
1
- {"version":3,"file":"shopify-public-router.js","sourceRoot":"","sources":["../../server/routers/shopify-public-router.ts"],"names":[],"mappings":"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","sourcesContent":["import Router from 'koa-router'\nimport fetch from 'node-fetch'\nimport { v4 as uuidv4 } from 'uuid'\n\nimport { User, VerificationToken, VerificationTokenType } from '@things-factory/auth-base'\nimport { config } from '@things-factory/env'\nimport { getRedirectSubdomainPath, getRepository } from '@things-factory/shell'\n\nimport { StoreAPI } from '../controllers/store-api'\nimport { MarketplaceSetting, MarketplaceStore } from '../entities'\nimport { STORE_STATUS } from '../graphql/constants'\n\nconst shopifyConfig = config.get('marketplaceIntegrationShopify', {})\nconst { apiKey, apiSecret } = shopifyConfig\n\nconst debug = require('debug')('things-factory:integration-marketplace:shopify-public-router')\n\nexport const shopifyPublicRouter = new Router()\n\nshopifyPublicRouter.get('/callback-shopify', async (context, next) => {\n try {\n // https://example.org/some/redirect/uri?code={authorization_code}&hmac=da9d83c171400a41f8db91a950508985&timestamp=1409617544&state={nonce}&shop={hostname}\n const { code, hmac, timestamp, state: nonce, shop: hostname } = context.query\n\n const verificationTokenRepository = getRepository(VerificationToken)\n\n var verification: VerificationToken = await verificationTokenRepository.findOne({\n where: {\n token: nonce,\n type: VerificationTokenType.REQUEST_ACCESS_TOKEN\n }\n })\n\n const { userId, suppliment: marketplaceStoreId } = verification\n\n await verificationTokenRepository.delete({\n userId,\n token: nonce,\n type: VerificationTokenType.REQUEST_ACCESS_TOKEN\n })\n\n var store = await StoreAPI.getMarketplaceStore(marketplaceStoreId)\n const storeId = store.storeId\n\n const response = await fetch(`https://${storeId}.myshopify.com/admin/oauth/access_token`, {\n method: 'post',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n client_id: apiKey,\n client_secret: apiSecret,\n code\n })\n })\n\n if (response.ok) {\n var body = await response.json()\n var { access_token } = body\n if (!access_token) {\n const message = `failed to get access-token from shopify : ${JSON.stringify(body, null, 2)}`\n debug(message)\n throw new Error(message)\n }\n } else {\n const message = `failed to get access-token from shopify : ${response.status}, ${await response.text()}`\n debug(message)\n throw new Error(message)\n }\n\n var patch = {\n accessToken: access_token,\n refreshToken: '',\n accessInfo: JSON.stringify(body, null, 2),\n storeId: storeId,\n status: STORE_STATUS.ACTIVE\n }\n\n var user = await getRepository(User).findOneBy({ id: userId })\n\n store = await getRepository(MarketplaceStore).save({\n ...store,\n ...patch,\n updater: user\n })\n\n const marketplaceSetting = new MarketplaceSetting()\n marketplaceSetting.name = uuidv4()\n marketplaceSetting.marketplaceStore = store\n marketplaceSetting.value = '100'\n marketplaceSetting.category = 'stock_allocation'\n marketplaceSetting.domain = store.domain\n marketplaceSetting.creator = store.creator\n await getRepository(MarketplaceSetting).save(marketplaceSetting)\n\n var message = 'success to activate'\n context.redirect(\n `${getRedirectSubdomainPath(context, store.domain.subdomain)}marketplace-store-shopify/${\n store.id\n }/connect-callback?status=${store.status}&message=${message}`\n )\n } catch (err) {\n var message: string = err.message\n\n if (store) {\n context.redirect(\n `${getRedirectSubdomainPath(context, store.domain.subdomain)}marketplace-store-shopify/${\n store.id\n }/connect-callback?status=${store.status}&message=${message}`\n )\n return\n }\n\n throw err\n }\n})\n\nshopifyPublicRouter.post('/webhook-shopify/customers/redact', async (context, next) => {\n // When a store owner requests deletion of data on behalf of a customer,\n // Shopify sends a payload on the customers/redact topic to the apps installed on that store.\n // If the customer hasn't placed an order in the past six months,\n // then Shopify sends the payload 10 days after their request.\n // Otherwise, the the request will be withheld until 6 months have passed.\n // If your app has been granted access to the store's customers or orders,\n // then you receive a redaction request webhook with the resource IDs that you need to redact or delete.\n // In some cases, a customer record contains only the customer's email address.\n //\n // https://shopify.dev/tutorials/add-gdpr-webhooks-to-your-app\n // {\n // \"shop_id\": 954889,\n // \"shop_domain\": \"snowdevil.myshopify.com\",\n // \"customer\": {\n // \"id\": 191167,\n // \"email\": \"john@email.com\",\n // \"phone\": \"555-625-1199\"\n // },\n // \"orders_to_redact\": [299938, 280263, 220458]\n // }\n\n context.status = 200\n})\n\nshopifyPublicRouter.post('/webhook-shopify/shop/redact', async (context, next) => {\n // 48 hours after a store owner uninstalls your app,\n // Shopify sends you a shop/redact webhook.\n // This webhook provides the store's shop_id and shop_domain so that you can erase the customer information\n // for that store from your database.\n //\n // https://shopify.dev/tutorials/add-gdpr-webhooks-to-your-app\n // {\n // \"shop_id\": 954889,\n // \"shop_domain\": \"snowdevil.myshopify.com\"\n // }\n\n context.status = 200\n})\n\nshopifyPublicRouter.post('/webhook-shopify/customers/data_request', async (context, next) => {\n // When a customer requests their data from a store owner,\n // Shopify sends a payload on the customers/data_request topic to the apps installed on that store.\n // If your app has been granted access to customers or orders,\n // then you receive a data request webhook with the resource IDs of the data that you need to provide to the store owner.\n // It's your responsibility to provide this data to the store owner directly.\n // In some cases, a customer record contains only the customer's email address.\n //\n // https://shopify.dev/tutorials/add-gdpr-webhooks-to-your-app\n // {\n // \"shop_id\": 954889,\n // \"shop_domain\": \"snowdevil.myshopify.com\",\n // \"orders_requested\": [299938, 280263, 220458],\n // \"customer\": {\n // \"id\": 191167,\n // \"email\": \"john@email.com\",\n // \"phone\": \"555-625-1199\"\n // },\n // \"data_request\": {\n // \"id\": 9999\n // }\n // }\n\n context.status = 200\n})\n"]}
1
+ {"version":3,"file":"shopify-public-router.js","sourceRoot":"","sources":["../../server/routers/shopify-public-router.ts"],"names":[],"mappings":"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","sourcesContent":["import Router from 'koa-router'\nimport fetch from 'node-fetch'\nimport { v4 as uuidv4 } from 'uuid'\n\nimport { User, VerificationToken, VerificationTokenType } from '@things-factory/auth-base'\nimport { config } from '@things-factory/env'\nimport { getRedirectSubdomainPath, getRepository } from '@things-factory/shell'\n\nimport { StoreAPI } from '../controllers/store-api'\nimport { MarketplaceSetting, MarketplaceStore } from '../entities'\nimport { STORE_STATUS } from '../graphql/constants'\n\nconst shopifyConfig = config.get('marketplaceIntegrationShopify', {})\nconst { apiKey, apiSecret } = shopifyConfig\n\nconst debug = require('debug')('things-factory:integration-marketplace:shopify-public-router')\n\nexport const shopifyPublicRouter = new Router()\n\nshopifyPublicRouter.get('/callback-shopify', async (context, next) => {\n try {\n // https://example.org/some/redirect/uri?code={authorization_code}&hmac=da9d83c171400a41f8db91a950508985&timestamp=1409617544&state={nonce}&shop={hostname}\n const { code, hmac, timestamp, state: nonce, shop: hostname } = context.query\n\n const verificationTokenRepository = getRepository(VerificationToken)\n\n var verification: VerificationToken = await verificationTokenRepository.findOne({\n where: {\n token: nonce,\n type: VerificationTokenType.REQUEST_ACCESS_TOKEN\n }\n })\n\n const { userId, suppliment: marketplaceStoreId } = verification\n\n await verificationTokenRepository.delete({\n userId,\n token: nonce,\n type: VerificationTokenType.REQUEST_ACCESS_TOKEN\n })\n\n var store = await StoreAPI.getMarketplaceStore(marketplaceStoreId)\n const storeId = store.storeId\n\n const response = await fetch(`https://${storeId}.myshopify.com/admin/oauth/access_token`, {\n method: 'post',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n client_id: apiKey,\n client_secret: apiSecret,\n code\n })\n })\n\n if (response.ok) {\n var body = await response.json()\n var { access_token } = body\n if (!access_token) {\n const message = `failed to get access-token from shopify : ${JSON.stringify(body, null, 2)}`\n debug(message)\n throw new Error(message)\n }\n } else {\n const message = `failed to get access-token from shopify : ${response.status}, ${await response.text()}`\n debug(message)\n throw new Error(message)\n }\n\n var patch = {\n accessToken: access_token,\n refreshToken: '',\n accessInfo: JSON.stringify(body, null, 2),\n storeId: storeId,\n status: STORE_STATUS.ACTIVE\n }\n\n var user = await getRepository(User).findOneBy({ id: userId })\n\n store = await getRepository(MarketplaceStore).save({\n ...store,\n ...patch,\n updater: user\n })\n\n const marketplaceSetting = new MarketplaceSetting()\n marketplaceSetting.name = uuidv4()\n marketplaceSetting.marketplaceStore = store\n marketplaceSetting.value = '100'\n marketplaceSetting.category = 'stock_allocation'\n marketplaceSetting.domain = store.domain\n marketplaceSetting.creator = store.creator\n await getRepository(MarketplaceSetting).save(marketplaceSetting)\n\n var message = 'success to activate'\n context.redirect(\n `${getRedirectSubdomainPath(context, store.domain.subdomain)}marketplace-store-shopify/${\n store.id\n }/connect-callback?status=${store.status}&message=${message}`\n )\n } catch (err) {\n var message: string = err.message\n\n if (store) {\n context.redirect(\n `${getRedirectSubdomainPath(context, store.domain.subdomain)}marketplace-store-shopify/${\n store.id\n }/connect-callback?status=${store.status}&message=${message}`\n )\n return\n }\n\n throw err\n }\n})\n\nshopifyPublicRouter.post('/webhook-shopify/customers/redact', async (context, next) => {\n // When a store owner requests deletion of data on behalf of a customer,\n // Shopify sends a payload on the customers/redact topic to the apps installed on that store.\n // If the customer hasn't placed an order in the past six months,\n // then Shopify sends the payload 10 days after their request.\n // Otherwise, the the request will be withheld until 6 months have passed.\n // If your app has been granted access to the store's customers or orders,\n // then you receive a redaction request webhook with the resource IDs that you need to redact or delete.\n // In some cases, a customer record contains only the customer's email address.\n //\n // https://shopify.dev/tutorials/add-gdpr-webhooks-to-your-app\n // {\n // \"shop_id\": 954889,\n // \"shop_domain\": \"snowdevil.myshopify.com\",\n // \"customer\": {\n // \"id\": 191167,\n // \"email\": \"john@email.com\",\n // \"phone\": \"555-625-1199\"\n // },\n // \"orders_to_redact\": [299938, 280263, 220458]\n // }\n\n context.status = 200\n})\n\nshopifyPublicRouter.post('/webhook-shopify/shop/redact', async (context, next) => {\n // 48 hours after a store owner uninstalls your app,\n // Shopify sends you a shop/redact webhook.\n // This webhook provides the store's shop_id and shop_domain so that you can erase the customer information\n // for that store from your database.\n //\n // https://shopify.dev/tutorials/add-gdpr-webhooks-to-your-app\n // {\n // \"shop_id\": 954889,\n // \"shop_domain\": \"snowdevil.myshopify.com\"\n // }\n\n context.status = 200\n})\n\nshopifyPublicRouter.post('/webhook-shopify/customers/data_request', async (context, next) => {\n // When a customer requests their data from a store owner,\n // Shopify sends a payload on the customers/data_request topic to the apps installed on that store.\n // If your app has been granted access to customers or orders,\n // then you receive a data request webhook with the resource IDs of the data that you need to provide to the store owner.\n // It's your responsibility to provide this data to the store owner directly.\n // In some cases, a customer record contains only the customer's email address.\n //\n // https://shopify.dev/tutorials/add-gdpr-webhooks-to-your-app\n // {\n // \"shop_id\": 954889,\n // \"shop_domain\": \"snowdevil.myshopify.com\",\n // \"orders_requested\": [299938, 280263, 220458],\n // \"customer\": {\n // \"id\": 191167,\n // \"email\": \"john@email.com\",\n // \"phone\": \"555-625-1199\"\n // },\n // \"data_request\": {\n // \"id\": 9999\n // }\n // }\n\n context.status = 200\n})\n"]}
@@ -0,0 +1,13 @@
1
+ export declare const woocommerceRouter: any;
2
+ /**
3
+ * @summary Callback After Authentication
4
+ * @description When the callback is triggered, we will receive key_id, user_id, consumer_key and consumer_secret
5
+ * from Woocommerce. We store them into database for easy retrieval.
6
+ */
7
+ export type WoocommerAccessInfo = {
8
+ key_id: number;
9
+ user_id: string;
10
+ consumer_key: string;
11
+ consumer_secret: string;
12
+ key_permission: 'read' | 'write' | 'read_write';
13
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"woocommerce-router.js","sourceRoot":"","sources":["../../server/routers/woocommerce-router.ts"],"names":[],"mappings":";;;;AAAA,oEAA+B;AAC/B,+BAAmC;AAEnC,iDAAqD;AAErD,0CAAkE;AAClE,oDAAmD;AAEtC,QAAA,iBAAiB,GAAG,IAAI,oBAAM,EAAE,CAAA;AAe7C,yBAAiB,CAAC,IAAI,CAAC,uBAAuB,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IACtE,IAAI;QACF,MAAM,UAAU,GAAwB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAA;QAC5D,MAAM,yBAAyB,CAAC,UAAU,CAAC,CAAA;QAC3C,OAAO,CAAC,MAAM,GAAG,GAAG,CAAA;QACpB,IAAI,EAAE,CAAA;KACP;IAAC,OAAO,CAAC,EAAE;QACV,MAAM,CAAC,CAAA;KACR;AACH,CAAC,CAAC,CAAA;AAEF,KAAK,UAAU,yBAAyB,CAAC,UAA+B;IACtE,MAAM,EACJ,MAAM,EAAE,OAAO,EACf,OAAO,EAAE,kBAAkB,EAC3B,YAAY,EAAE,SAAS,EACvB,eAAe,EAAE,YAAY,EAC9B,GAAG,UAAU,CAAA;IAEd,IAAI,gBAAgB,GAAqB,MAAM,IAAA,qBAAa,EAAC,2BAAgB,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,kBAAkB,EAAE,CAAC,CAAA;IACpH,gBAAgB,CAAC,SAAS,GAAG,SAAS,CAAA;IACtC,gBAAgB,CAAC,YAAY,GAAG,YAAY,CAAA;IAC5C,gBAAgB,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;IACjE,gBAAgB,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;IAC1C,gBAAgB,CAAC,MAAM,GAAG,wBAAY,CAAC,MAAM,CAAA;IAE7C,MAAM,4BAA4B,GAAU,CAAC,kBAAkB,EAAE,8BAA8B,CAAC,CAAA;IAEhG,4BAA4B,CAAC,OAAO,CAAC,KAAK,EAAC,QAAQ,EAAC,EAAE;QACpD,MAAM,uBAAuB,GAAuB,MAAM,IAAA,qBAAa,EAAC,6BAAkB,CAAC,CAAC,OAAO,CAAC;YAClG,KAAK,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,EAAE,gBAAgB,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,gBAAgB,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE;SAC/G,CAAC,CAAA;QAEF,IAAI,CAAC,uBAAuB,EAAE;YAC5B,MAAM,kBAAkB,GAAG,IAAI,6BAAkB,EAAE,CAAA;YACnD,kBAAkB,CAAC,IAAI,GAAG,IAAA,SAAM,GAAE,CAAA;YAClC,kBAAkB,CAAC,gBAAgB,GAAG,gBAAgB,CAAA;YACtD,kBAAkB,CAAC,KAAK,GAAG,KAAK,CAAA;YAChC,kBAAkB,CAAC,QAAQ,GAAG,QAAQ,CAAA;YACtC,kBAAkB,CAAC,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAA;YACnD,kBAAkB,CAAC,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAA;YACrD,MAAM,IAAA,qBAAa,EAAC,6BAAkB,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;SACjE;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,MAAM,IAAA,qBAAa,EAAC,2BAAgB,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;AACrE,CAAC","sourcesContent":["import Router from 'koa-router'\nimport { v4 as uuidv4 } from 'uuid'\n\nimport { getRepository } from '@things-factory/shell'\n\nimport { MarketplaceSetting, MarketplaceStore } from '../entities'\nimport { STORE_STATUS } from '../graphql/constants'\n\nexport const woocommerceRouter = new Router()\n\n/**\n * @summary Callback After Authentication\n * @description When the callback is triggered, we will receive key_id, user_id, consumer_key and consumer_secret\n * from Woocommerce. We store them into database for easy retrieval.\n */\nexport type WoocommerAccessInfo = {\n key_id: number\n user_id: string\n consumer_key: string\n consumer_secret: string\n key_permission: 'read' | 'write' | 'read_write'\n}\n\nwoocommerceRouter.post('/callback-woocommerce', async (context, next) => {\n try {\n const accessInfo: WoocommerAccessInfo = context.request.body\n await saveWoocommerceAccessInfo(accessInfo)\n context.status = 200\n next()\n } catch (e) {\n throw e\n }\n})\n\nasync function saveWoocommerceAccessInfo(accessInfo: WoocommerAccessInfo): Promise<MarketplaceStore> {\n const {\n key_id: storeId,\n user_id: marketplaceStoreId,\n consumer_key: accessKey,\n consumer_secret: accessSecret\n } = accessInfo\n\n let marketplaceStore: MarketplaceStore = await getRepository(MarketplaceStore).findOneBy({ id: marketplaceStoreId })\n marketplaceStore.accessKey = accessKey\n marketplaceStore.accessSecret = accessSecret\n marketplaceStore.accessInfo = JSON.stringify(accessInfo, null, 2)\n marketplaceStore.storeId = String(storeId)\n marketplaceStore.status = STORE_STATUS.ACTIVE\n\n const marketplaceSettingCategories: any[] = ['stock_allocation', 'marketplace_order_max_weight']\n\n marketplaceSettingCategories.forEach(async category => {\n const foundMarketplaceSetting: MarketplaceSetting = await getRepository(MarketplaceSetting).findOne({\n where: { marketplaceStore: { id: marketplaceStore.id }, domain: { id: marketplaceStore.domain.id }, category }\n })\n\n if (!foundMarketplaceSetting) {\n const marketplaceSetting = new MarketplaceSetting()\n marketplaceSetting.name = uuidv4()\n marketplaceSetting.marketplaceStore = marketplaceStore\n marketplaceSetting.value = '100'\n marketplaceSetting.category = category\n marketplaceSetting.domain = marketplaceStore.domain\n marketplaceSetting.creator = marketplaceStore.creator\n await getRepository(MarketplaceSetting).save(marketplaceSetting)\n }\n })\n\n return await getRepository(MarketplaceStore).save(marketplaceStore)\n}\n"]}
1
+ {"version":3,"file":"woocommerce-router.js","sourceRoot":"","sources":["../../server/routers/woocommerce-router.ts"],"names":[],"mappings":";;;;AAAA,oEAA+B;AAC/B,+BAAmC;AAEnC,iDAAqD;AAErD,0CAAkE;AAClE,oDAAmD;AAEtC,QAAA,iBAAiB,GAAG,IAAI,oBAAM,EAAE,CAAA;AAe7C,yBAAiB,CAAC,IAAI,CAAC,uBAAuB,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IACtE,IAAI,CAAC;QACH,MAAM,UAAU,GAAwB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAA;QAC5D,MAAM,yBAAyB,CAAC,UAAU,CAAC,CAAA;QAC3C,OAAO,CAAC,MAAM,GAAG,GAAG,CAAA;QACpB,IAAI,EAAE,CAAA;IACR,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,CAAC,CAAA;IACT,CAAC;AACH,CAAC,CAAC,CAAA;AAEF,KAAK,UAAU,yBAAyB,CAAC,UAA+B;IACtE,MAAM,EACJ,MAAM,EAAE,OAAO,EACf,OAAO,EAAE,kBAAkB,EAC3B,YAAY,EAAE,SAAS,EACvB,eAAe,EAAE,YAAY,EAC9B,GAAG,UAAU,CAAA;IAEd,IAAI,gBAAgB,GAAqB,MAAM,IAAA,qBAAa,EAAC,2BAAgB,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,kBAAkB,EAAE,CAAC,CAAA;IACpH,gBAAgB,CAAC,SAAS,GAAG,SAAS,CAAA;IACtC,gBAAgB,CAAC,YAAY,GAAG,YAAY,CAAA;IAC5C,gBAAgB,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;IACjE,gBAAgB,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;IAC1C,gBAAgB,CAAC,MAAM,GAAG,wBAAY,CAAC,MAAM,CAAA;IAE7C,MAAM,4BAA4B,GAAU,CAAC,kBAAkB,EAAE,8BAA8B,CAAC,CAAA;IAEhG,4BAA4B,CAAC,OAAO,CAAC,KAAK,EAAC,QAAQ,EAAC,EAAE;QACpD,MAAM,uBAAuB,GAAuB,MAAM,IAAA,qBAAa,EAAC,6BAAkB,CAAC,CAAC,OAAO,CAAC;YAClG,KAAK,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,EAAE,gBAAgB,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,gBAAgB,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE;SAC/G,CAAC,CAAA;QAEF,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC7B,MAAM,kBAAkB,GAAG,IAAI,6BAAkB,EAAE,CAAA;YACnD,kBAAkB,CAAC,IAAI,GAAG,IAAA,SAAM,GAAE,CAAA;YAClC,kBAAkB,CAAC,gBAAgB,GAAG,gBAAgB,CAAA;YACtD,kBAAkB,CAAC,KAAK,GAAG,KAAK,CAAA;YAChC,kBAAkB,CAAC,QAAQ,GAAG,QAAQ,CAAA;YACtC,kBAAkB,CAAC,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAA;YACnD,kBAAkB,CAAC,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAA;YACrD,MAAM,IAAA,qBAAa,EAAC,6BAAkB,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;QAClE,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,MAAM,IAAA,qBAAa,EAAC,2BAAgB,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;AACrE,CAAC","sourcesContent":["import Router from 'koa-router'\nimport { v4 as uuidv4 } from 'uuid'\n\nimport { getRepository } from '@things-factory/shell'\n\nimport { MarketplaceSetting, MarketplaceStore } from '../entities'\nimport { STORE_STATUS } from '../graphql/constants'\n\nexport const woocommerceRouter = new Router()\n\n/**\n * @summary Callback After Authentication\n * @description When the callback is triggered, we will receive key_id, user_id, consumer_key and consumer_secret\n * from Woocommerce. We store them into database for easy retrieval.\n */\nexport type WoocommerAccessInfo = {\n key_id: number\n user_id: string\n consumer_key: string\n consumer_secret: string\n key_permission: 'read' | 'write' | 'read_write'\n}\n\nwoocommerceRouter.post('/callback-woocommerce', async (context, next) => {\n try {\n const accessInfo: WoocommerAccessInfo = context.request.body\n await saveWoocommerceAccessInfo(accessInfo)\n context.status = 200\n next()\n } catch (e) {\n throw e\n }\n})\n\nasync function saveWoocommerceAccessInfo(accessInfo: WoocommerAccessInfo): Promise<MarketplaceStore> {\n const {\n key_id: storeId,\n user_id: marketplaceStoreId,\n consumer_key: accessKey,\n consumer_secret: accessSecret\n } = accessInfo\n\n let marketplaceStore: MarketplaceStore = await getRepository(MarketplaceStore).findOneBy({ id: marketplaceStoreId })\n marketplaceStore.accessKey = accessKey\n marketplaceStore.accessSecret = accessSecret\n marketplaceStore.accessInfo = JSON.stringify(accessInfo, null, 2)\n marketplaceStore.storeId = String(storeId)\n marketplaceStore.status = STORE_STATUS.ACTIVE\n\n const marketplaceSettingCategories: any[] = ['stock_allocation', 'marketplace_order_max_weight']\n\n marketplaceSettingCategories.forEach(async category => {\n const foundMarketplaceSetting: MarketplaceSetting = await getRepository(MarketplaceSetting).findOne({\n where: { marketplaceStore: { id: marketplaceStore.id }, domain: { id: marketplaceStore.domain.id }, category }\n })\n\n if (!foundMarketplaceSetting) {\n const marketplaceSetting = new MarketplaceSetting()\n marketplaceSetting.name = uuidv4()\n marketplaceSetting.marketplaceStore = marketplaceStore\n marketplaceSetting.value = '100'\n marketplaceSetting.category = category\n marketplaceSetting.domain = marketplaceStore.domain\n marketplaceSetting.creator = marketplaceStore.creator\n await getRepository(MarketplaceSetting).save(marketplaceSetting)\n }\n })\n\n return await getRepository(MarketplaceStore).save(marketplaceStore)\n}\n"]}
@@ -0,0 +1 @@
1
+ export {};