@unchainedshop/plugins 1.1.9 → 1.2.2

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 (307) hide show
  1. package/jest.config.js +5 -0
  2. package/package.json +15 -9
  3. package/src/files/gridfs/gridfs-adapter.ts +1 -1
  4. package/src/files/gridfs/{gridfs-webhook.js → gridfs-webhook.ts} +4 -3
  5. package/src/files/gridfs/{index.js → index.ts} +0 -0
  6. package/src/files/gridfs/{promisePipe.js → promisePipe.ts} +0 -0
  7. package/src/files/gridfs/{sign.js → sign.ts} +0 -0
  8. package/src/files/minio/minio-adapter.ts +1 -2
  9. package/src/payment/apple-iap/adapter.ts +2 -2
  10. package/src/payment/bity/adapter.ts +3 -3
  11. package/src/payment/braintree.ts +2 -2
  12. package/src/payment/cryptopay.ts +1 -1
  13. package/src/payment/datatrans-v2/middleware.ts +1 -1
  14. package/src/payment/postfinance-checkout/middleware.ts +1 -1
  15. package/src/payment/stripe.ts +2 -2
  16. package/src/payment/worldline-saferpay/worldline-saferpay-client/index.ts +3 -3
  17. package/src/pricing/product-discount.ts +1 -1
  18. package/src/pricing/product-price-ECB-interbank-exchange.ts +1 -1
  19. package/src/pricing/product-price-cryptopay.ts +1 -1
  20. package/src/worker/email.ts +1 -0
  21. package/tsconfig.json +26 -5
  22. package/lib/delivery/pick-mup.d.ts +0 -1
  23. package/lib/delivery/pick-mup.js +0 -98
  24. package/lib/delivery/pick-mup.js.map +0 -1
  25. package/lib/delivery/post.d.ts +0 -1
  26. package/lib/delivery/post.js +0 -23
  27. package/lib/delivery/post.js.map +0 -1
  28. package/lib/delivery/send-message.d.ts +0 -1
  29. package/lib/delivery/send-message.js +0 -41
  30. package/lib/delivery/send-message.js.map +0 -1
  31. package/lib/delivery/stores.d.ts +0 -1
  32. package/lib/delivery/stores.js +0 -39
  33. package/lib/delivery/stores.js.map +0 -1
  34. package/lib/enrollments/licensed.d.ts +0 -1
  35. package/lib/enrollments/licensed.js +0 -40
  36. package/lib/enrollments/licensed.js.map +0 -1
  37. package/lib/events/node-event-emitter.d.ts +0 -1
  38. package/lib/events/node-event-emitter.js +0 -16
  39. package/lib/events/node-event-emitter.js.map +0 -1
  40. package/lib/events/redis.d.ts +0 -1
  41. package/lib/events/redis.js +0 -24
  42. package/lib/events/redis.js.map +0 -1
  43. package/lib/files/gridfs/gridfs-adapter.d.ts +0 -2
  44. package/lib/files/gridfs/gridfs-adapter.js +0 -106
  45. package/lib/files/gridfs/gridfs-adapter.js.map +0 -1
  46. package/lib/files/gridfs/gridfs-webhook.d.ts +0 -2
  47. package/lib/files/gridfs/gridfs-webhook.js +0 -54
  48. package/lib/files/gridfs/gridfs-webhook.js.map +0 -1
  49. package/lib/files/gridfs/index.d.ts +0 -8
  50. package/lib/files/gridfs/index.js +0 -21
  51. package/lib/files/gridfs/index.js.map +0 -1
  52. package/lib/files/gridfs/promisePipe.d.ts +0 -2
  53. package/lib/files/gridfs/promisePipe.js +0 -21
  54. package/lib/files/gridfs/promisePipe.js.map +0 -1
  55. package/lib/files/gridfs/sign.d.ts +0 -2
  56. package/lib/files/gridfs/sign.js +0 -12
  57. package/lib/files/gridfs/sign.js.map +0 -1
  58. package/lib/files/minio/minio-adapter.d.ts +0 -4
  59. package/lib/files/minio/minio-adapter.js +0 -166
  60. package/lib/files/minio/minio-adapter.js.map +0 -1
  61. package/lib/files/minio/minio-webhook.d.ts +0 -2
  62. package/lib/files/minio/minio-webhook.js +0 -47
  63. package/lib/files/minio/minio-webhook.js.map +0 -1
  64. package/lib/filters/local-search.d.ts +0 -3
  65. package/lib/filters/local-search.js +0 -84
  66. package/lib/filters/local-search.js.map +0 -1
  67. package/lib/filters/strict-equal.d.ts +0 -1
  68. package/lib/filters/strict-equal.js +0 -25
  69. package/lib/filters/strict-equal.js.map +0 -1
  70. package/lib/payment/apple-iap/adapter.d.ts +0 -2
  71. package/lib/payment/apple-iap/adapter.js +0 -286
  72. package/lib/payment/apple-iap/adapter.js.map +0 -1
  73. package/lib/payment/apple-iap/db/AppleTransactionsCollection.d.ts +0 -7
  74. package/lib/payment/apple-iap/db/AppleTransactionsCollection.js +0 -5
  75. package/lib/payment/apple-iap/db/AppleTransactionsCollection.js.map +0 -1
  76. package/lib/payment/apple-iap/index.d.ts +0 -3
  77. package/lib/payment/apple-iap/index.js +0 -4
  78. package/lib/payment/apple-iap/index.js.map +0 -1
  79. package/lib/payment/apple-iap/module/configureAppleTransactionsModule.d.ts +0 -9
  80. package/lib/payment/apple-iap/module/configureAppleTransactionsModule.js +0 -18
  81. package/lib/payment/apple-iap/module/configureAppleTransactionsModule.js.map +0 -1
  82. package/lib/payment/bity/adapter.d.ts +0 -2
  83. package/lib/payment/bity/adapter.js +0 -318
  84. package/lib/payment/bity/adapter.js.map +0 -1
  85. package/lib/payment/bity/db/BityCredentialsCollection.d.ts +0 -11
  86. package/lib/payment/bity/db/BityCredentialsCollection.js +0 -5
  87. package/lib/payment/bity/db/BityCredentialsCollection.js.map +0 -1
  88. package/lib/payment/bity/index.d.ts +0 -3
  89. package/lib/payment/bity/index.js +0 -4
  90. package/lib/payment/bity/index.js.map +0 -1
  91. package/lib/payment/bity/module/configureBityModule.d.ts +0 -11
  92. package/lib/payment/bity/module/configureBityModule.js +0 -33
  93. package/lib/payment/bity/module/configureBityModule.js.map +0 -1
  94. package/lib/payment/braintree.d.ts +0 -1
  95. package/lib/payment/braintree.js +0 -129
  96. package/lib/payment/braintree.js.map +0 -1
  97. package/lib/payment/cryptopay.d.ts +0 -2
  98. package/lib/payment/cryptopay.js +0 -161
  99. package/lib/payment/cryptopay.js.map +0 -1
  100. package/lib/payment/datatrans-v2/api/authorize.d.ts +0 -2
  101. package/lib/payment/datatrans-v2/api/authorize.js +0 -12
  102. package/lib/payment/datatrans-v2/api/authorize.js.map +0 -1
  103. package/lib/payment/datatrans-v2/api/authorizeAuthenticated.d.ts +0 -2
  104. package/lib/payment/datatrans-v2/api/authorizeAuthenticated.js +0 -11
  105. package/lib/payment/datatrans-v2/api/authorizeAuthenticated.js.map +0 -1
  106. package/lib/payment/datatrans-v2/api/cancel.d.ts +0 -2
  107. package/lib/payment/datatrans-v2/api/cancel.js +0 -10
  108. package/lib/payment/datatrans-v2/api/cancel.js.map +0 -1
  109. package/lib/payment/datatrans-v2/api/index.d.ts +0 -19
  110. package/lib/payment/datatrans-v2/api/index.js +0 -24
  111. package/lib/payment/datatrans-v2/api/index.js.map +0 -1
  112. package/lib/payment/datatrans-v2/api/init.d.ts +0 -2
  113. package/lib/payment/datatrans-v2/api/init.js +0 -31
  114. package/lib/payment/datatrans-v2/api/init.js.map +0 -1
  115. package/lib/payment/datatrans-v2/api/makeFetcher.d.ts +0 -2
  116. package/lib/payment/datatrans-v2/api/makeFetcher.js +0 -41
  117. package/lib/payment/datatrans-v2/api/makeFetcher.js.map +0 -1
  118. package/lib/payment/datatrans-v2/api/secureFields.d.ts +0 -2
  119. package/lib/payment/datatrans-v2/api/secureFields.js +0 -14
  120. package/lib/payment/datatrans-v2/api/secureFields.js.map +0 -1
  121. package/lib/payment/datatrans-v2/api/settle.d.ts +0 -2
  122. package/lib/payment/datatrans-v2/api/settle.js +0 -10
  123. package/lib/payment/datatrans-v2/api/settle.js.map +0 -1
  124. package/lib/payment/datatrans-v2/api/status.d.ts +0 -2
  125. package/lib/payment/datatrans-v2/api/status.js +0 -7
  126. package/lib/payment/datatrans-v2/api/status.js.map +0 -1
  127. package/lib/payment/datatrans-v2/api/validate.d.ts +0 -2
  128. package/lib/payment/datatrans-v2/api/validate.js +0 -10
  129. package/lib/payment/datatrans-v2/api/validate.js.map +0 -1
  130. package/lib/payment/datatrans-v2/generateSignature.d.ts +0 -10
  131. package/lib/payment/datatrans-v2/generateSignature.js +0 -19
  132. package/lib/payment/datatrans-v2/generateSignature.js.map +0 -1
  133. package/lib/payment/datatrans-v2/getPaths.d.ts +0 -9
  134. package/lib/payment/datatrans-v2/getPaths.js +0 -9
  135. package/lib/payment/datatrans-v2/getPaths.js.map +0 -1
  136. package/lib/payment/datatrans-v2/index.d.ts +0 -2
  137. package/lib/payment/datatrans-v2/index.js +0 -385
  138. package/lib/payment/datatrans-v2/index.js.map +0 -1
  139. package/lib/payment/datatrans-v2/middleware.d.ts +0 -2
  140. package/lib/payment/datatrans-v2/middleware.js +0 -113
  141. package/lib/payment/datatrans-v2/middleware.js.map +0 -1
  142. package/lib/payment/datatrans-v2/parseRegistrationData.d.ts +0 -11
  143. package/lib/payment/datatrans-v2/parseRegistrationData.js +0 -26
  144. package/lib/payment/datatrans-v2/parseRegistrationData.js.map +0 -1
  145. package/lib/payment/datatrans-v2/roundedAmountFromOrder.d.ts +0 -5
  146. package/lib/payment/datatrans-v2/roundedAmountFromOrder.js +0 -10
  147. package/lib/payment/datatrans-v2/roundedAmountFromOrder.js.map +0 -1
  148. package/lib/payment/datatrans-v2/splitProperties.d.ts +0 -8
  149. package/lib/payment/datatrans-v2/splitProperties.js +0 -58
  150. package/lib/payment/datatrans-v2/splitProperties.js.map +0 -1
  151. package/lib/payment/invoice-prepaid.d.ts +0 -1
  152. package/lib/payment/invoice-prepaid.js +0 -30
  153. package/lib/payment/invoice-prepaid.js.map +0 -1
  154. package/lib/payment/invoice.d.ts +0 -1
  155. package/lib/payment/invoice.js +0 -27
  156. package/lib/payment/invoice.js.map +0 -1
  157. package/lib/payment/paypal-checkout.d.ts +0 -1
  158. package/lib/payment/paypal-checkout.js +0 -82
  159. package/lib/payment/paypal-checkout.js.map +0 -1
  160. package/lib/payment/postfinance-checkout/api.d.ts +0 -11
  161. package/lib/payment/postfinance-checkout/api.js +0 -109
  162. package/lib/payment/postfinance-checkout/api.js.map +0 -1
  163. package/lib/payment/postfinance-checkout/index.d.ts +0 -2
  164. package/lib/payment/postfinance-checkout/index.js +0 -187
  165. package/lib/payment/postfinance-checkout/index.js.map +0 -1
  166. package/lib/payment/postfinance-checkout/middleware.d.ts +0 -2
  167. package/lib/payment/postfinance-checkout/middleware.js +0 -44
  168. package/lib/payment/postfinance-checkout/middleware.js.map +0 -1
  169. package/lib/payment/postfinance-checkout/types.d.ts +0 -23
  170. package/lib/payment/postfinance-checkout/types.js +0 -12
  171. package/lib/payment/postfinance-checkout/types.js.map +0 -1
  172. package/lib/payment/postfinance-checkout/utils.d.ts +0 -3
  173. package/lib/payment/postfinance-checkout/utils.js +0 -20
  174. package/lib/payment/postfinance-checkout/utils.js.map +0 -1
  175. package/lib/payment/stripe.d.ts +0 -2
  176. package/lib/payment/stripe.js +0 -217
  177. package/lib/payment/stripe.js.map +0 -1
  178. package/lib/payment/worldline-saferpay/index.d.ts +0 -1
  179. package/lib/payment/worldline-saferpay/index.js +0 -112
  180. package/lib/payment/worldline-saferpay/index.js.map +0 -1
  181. package/lib/payment/worldline-saferpay/worldline-saferpay-client/api/SaferpayClient.d.ts +0 -14
  182. package/lib/payment/worldline-saferpay/worldline-saferpay-client/api/SaferpayClient.js +0 -29
  183. package/lib/payment/worldline-saferpay/worldline-saferpay-client/api/SaferpayClient.js.map +0 -1
  184. package/lib/payment/worldline-saferpay/worldline-saferpay-client/api/SaferpayConnection.d.ts +0 -9
  185. package/lib/payment/worldline-saferpay/worldline-saferpay-client/api/SaferpayConnection.js +0 -28
  186. package/lib/payment/worldline-saferpay/worldline-saferpay-client/api/SaferpayConnection.js.map +0 -1
  187. package/lib/payment/worldline-saferpay/worldline-saferpay-client/index.d.ts +0 -4
  188. package/lib/payment/worldline-saferpay/worldline-saferpay-client/index.js +0 -2
  189. package/lib/payment/worldline-saferpay/worldline-saferpay-client/index.js.map +0 -1
  190. package/lib/payment/worldline-saferpay/worldline-saferpay-client/models/PaymentMethods.d.ts +0 -1
  191. package/lib/payment/worldline-saferpay/worldline-saferpay-client/models/PaymentMethods.js +0 -2
  192. package/lib/payment/worldline-saferpay/worldline-saferpay-client/models/PaymentMethods.js.map +0 -1
  193. package/lib/payment/worldline-saferpay/worldline-saferpay-client/models/PaymentPageAssert.d.ts +0 -73
  194. package/lib/payment/worldline-saferpay/worldline-saferpay-client/models/PaymentPageAssert.js +0 -2
  195. package/lib/payment/worldline-saferpay/worldline-saferpay-client/models/PaymentPageAssert.js.map +0 -1
  196. package/lib/payment/worldline-saferpay/worldline-saferpay-client/models/PaymentPageInitialize.d.ts +0 -53
  197. package/lib/payment/worldline-saferpay/worldline-saferpay-client/models/PaymentPageInitialize.js +0 -2
  198. package/lib/payment/worldline-saferpay/worldline-saferpay-client/models/PaymentPageInitialize.js.map +0 -1
  199. package/lib/payment/worldline-saferpay/worldline-saferpay-client/models/Request.d.ts +0 -13
  200. package/lib/payment/worldline-saferpay/worldline-saferpay-client/models/Request.js +0 -2
  201. package/lib/payment/worldline-saferpay/worldline-saferpay-client/models/Request.js.map +0 -1
  202. package/lib/payment/worldline-saferpay/worldline-saferpay-client/models/Response.d.ts +0 -9
  203. package/lib/payment/worldline-saferpay/worldline-saferpay-client/models/Response.js +0 -2
  204. package/lib/payment/worldline-saferpay/worldline-saferpay-client/models/Response.js.map +0 -1
  205. package/lib/payment/worldline-saferpay/worldline-saferpay-client/models/Transaction.d.ts +0 -5
  206. package/lib/payment/worldline-saferpay/worldline-saferpay-client/models/Transaction.js +0 -2
  207. package/lib/payment/worldline-saferpay/worldline-saferpay-client/models/Transaction.js.map +0 -1
  208. package/lib/payment/worldline-saferpay/worldline-saferpay-client/models/TransactionCancel.d.ts +0 -13
  209. package/lib/payment/worldline-saferpay/worldline-saferpay-client/models/TransactionCancel.js +0 -2
  210. package/lib/payment/worldline-saferpay/worldline-saferpay-client/models/TransactionCancel.js.map +0 -1
  211. package/lib/pricing/delivery-swiss-tax.d.ts +0 -15
  212. package/lib/pricing/delivery-swiss-tax.js +0 -98
  213. package/lib/pricing/delivery-swiss-tax.js.map +0 -1
  214. package/lib/pricing/discount-100-off.d.ts +0 -1
  215. package/lib/pricing/discount-100-off.js +0 -34
  216. package/lib/pricing/discount-100-off.js.map +0 -1
  217. package/lib/pricing/discount-half-price-manual.d.ts +0 -1
  218. package/lib/pricing/discount-half-price-manual.js +0 -34
  219. package/lib/pricing/discount-half-price-manual.js.map +0 -1
  220. package/lib/pricing/discount-half-price.d.ts +0 -1
  221. package/lib/pricing/discount-half-price.js +0 -37
  222. package/lib/pricing/discount-half-price.js.map +0 -1
  223. package/lib/pricing/free-delivery.d.ts +0 -2
  224. package/lib/pricing/free-delivery.js +0 -26
  225. package/lib/pricing/free-delivery.js.map +0 -1
  226. package/lib/pricing/free-payment.d.ts +0 -2
  227. package/lib/pricing/free-payment.js +0 -26
  228. package/lib/pricing/free-payment.js.map +0 -1
  229. package/lib/pricing/order-delivery.d.ts +0 -1
  230. package/lib/pricing/order-delivery.js +0 -33
  231. package/lib/pricing/order-delivery.js.map +0 -1
  232. package/lib/pricing/order-discount.d.ts +0 -1
  233. package/lib/pricing/order-discount.js +0 -110
  234. package/lib/pricing/order-discount.js.map +0 -1
  235. package/lib/pricing/order-items-discount.d.ts +0 -1
  236. package/lib/pricing/order-items-discount.js +0 -88
  237. package/lib/pricing/order-items-discount.js.map +0 -1
  238. package/lib/pricing/order-items.d.ts +0 -1
  239. package/lib/pricing/order-items.js +0 -44
  240. package/lib/pricing/order-items.js.map +0 -1
  241. package/lib/pricing/order-payment.d.ts +0 -1
  242. package/lib/pricing/order-payment.js +0 -33
  243. package/lib/pricing/order-payment.js.map +0 -1
  244. package/lib/pricing/product-catalog-price.d.ts +0 -1
  245. package/lib/pricing/product-catalog-price.js +0 -37
  246. package/lib/pricing/product-catalog-price.js.map +0 -1
  247. package/lib/pricing/product-discount.d.ts +0 -1
  248. package/lib/pricing/product-discount.js +0 -55
  249. package/lib/pricing/product-discount.js.map +0 -1
  250. package/lib/pricing/product-price-ECB-interbank-exchange.d.ts +0 -1
  251. package/lib/pricing/product-price-ECB-interbank-exchange.js +0 -90
  252. package/lib/pricing/product-price-ECB-interbank-exchange.js.map +0 -1
  253. package/lib/pricing/product-price-coinbase-exchange.d.ts +0 -1
  254. package/lib/pricing/product-price-coinbase-exchange.js +0 -60
  255. package/lib/pricing/product-price-coinbase-exchange.js.map +0 -1
  256. package/lib/pricing/product-price-cryptopay.d.ts +0 -2
  257. package/lib/pricing/product-price-cryptopay.js +0 -23
  258. package/lib/pricing/product-price-cryptopay.js.map +0 -1
  259. package/lib/pricing/product-price-rateconversion.d.ts +0 -1
  260. package/lib/pricing/product-price-rateconversion.js +0 -51
  261. package/lib/pricing/product-price-rateconversion.js.map +0 -1
  262. package/lib/pricing/product-price-round.d.ts +0 -11
  263. package/lib/pricing/product-price-round.js +0 -54
  264. package/lib/pricing/product-price-round.js.map +0 -1
  265. package/lib/pricing/product-swiss-tax.d.ts +0 -13
  266. package/lib/pricing/product-swiss-tax.js +0 -102
  267. package/lib/pricing/product-swiss-tax.js.map +0 -1
  268. package/lib/pricing/utils/cache.d.ts +0 -8
  269. package/lib/pricing/utils/cache.js +0 -28
  270. package/lib/pricing/utils/cache.js.map +0 -1
  271. package/lib/quotations/manual.d.ts +0 -1
  272. package/lib/quotations/manual.js +0 -21
  273. package/lib/quotations/manual.js.map +0 -1
  274. package/lib/warehousing/google-sheets.d.ts +0 -1
  275. package/lib/warehousing/google-sheets.js +0 -153
  276. package/lib/warehousing/google-sheets.js.map +0 -1
  277. package/lib/warehousing/store.d.ts +0 -1
  278. package/lib/warehousing/store.js +0 -33
  279. package/lib/warehousing/store.js.map +0 -1
  280. package/lib/worker/BulkImportWorker.d.ts +0 -2
  281. package/lib/worker/BulkImportWorker.js +0 -91
  282. package/lib/worker/BulkImportWorker.js.map +0 -1
  283. package/lib/worker/GenerateOrderWorker.d.ts +0 -1
  284. package/lib/worker/GenerateOrderWorker.js +0 -110
  285. package/lib/worker/GenerateOrderWorker.js.map +0 -1
  286. package/lib/worker/MessageWorker.js +0 -45
  287. package/lib/worker/MessageWorker.js.map +0 -1
  288. package/lib/worker/ZombieKillerWorker.d.ts +0 -7
  289. package/lib/worker/ZombieKillerWorker.js +0 -88
  290. package/lib/worker/ZombieKillerWorker.js.map +0 -1
  291. package/lib/worker/email.d.ts +0 -1
  292. package/lib/worker/email.js +0 -96
  293. package/lib/worker/email.js.map +0 -1
  294. package/lib/worker/external.d.ts +0 -2
  295. package/lib/worker/external.js +0 -13
  296. package/lib/worker/external.js.map +0 -1
  297. package/lib/worker/heartbeat.d.ts +0 -1
  298. package/lib/worker/heartbeat.js +0 -32
  299. package/lib/worker/heartbeat.js.map +0 -1
  300. package/lib/worker/http-request.d.ts +0 -8
  301. package/lib/worker/http-request.js +0 -61
  302. package/lib/worker/http-request.js.map +0 -1
  303. package/lib/worker/sms.d.ts +0 -1
  304. package/lib/worker/sms.js +0 -69
  305. package/lib/worker/sms.js.map +0 -1
  306. package/license +0 -274
  307. package/tsconfig.build.json +0 -34
@@ -1 +0,0 @@
1
- {"version":3,"file":"node-event-emitter.js","sourceRoot":"","sources":["../../src/events/node-event-emitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,MAAM,gBAAgB,GAAG,GAAgB,EAAE;IACzC,MAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;IAExC,OAAO;QACL,OAAO,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE;YAC9B,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACxC,CAAC;QAED,SAAS,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE;YACjC,OAAO,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC9C,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;AACnC,cAAc,CAAC,OAAO,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,24 +0,0 @@
1
- import redis from 'redis';
2
- import { setEmitAdapter } from '@unchainedshop/events';
3
- const { REDIS_PORT = 6379, REDIS_HOST = '127.0.0.1' } = process.env;
4
- const subscribedEvents = new Set();
5
- const RedisEventEmitter = () => {
6
- const redisPublisher = redis.createClient({
7
- url: `redis://${REDIS_HOST}:${REDIS_PORT}`,
8
- });
9
- const redisSubscriber = redis.createClient({
10
- url: `redis://${REDIS_HOST}:${REDIS_PORT}`,
11
- });
12
- return {
13
- publish: (eventName, payload) => redisPublisher.publish(eventName, JSON.stringify(payload)),
14
- subscribe: (eventName, callback) => {
15
- redisSubscriber.on('message', (_channelName, payload) => callback(payload));
16
- if (!subscribedEvents.has(eventName)) {
17
- redisSubscriber.subscribe(eventName);
18
- subscribedEvents.add(eventName);
19
- }
20
- },
21
- };
22
- };
23
- setEmitAdapter(RedisEventEmitter());
24
- //# sourceMappingURL=redis.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"redis.js","sourceRoot":"","sources":["../../src/events/redis.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,MAAM,EAAE,UAAU,GAAG,IAAI,EAAE,UAAU,GAAG,WAAW,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;AAEpE,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAE,CAAC;AAEnC,MAAM,iBAAiB,GAAG,GAAgB,EAAE;IAC1C,MAAM,cAAc,GAAG,KAAK,CAAC,YAAY,CAAC;QACxC,GAAG,EAAE,WAAW,UAAU,IAAI,UAAU,EAAE;KAC3C,CAAC,CAAC;IAEH,MAAM,eAAe,GAAG,KAAK,CAAC,YAAY,CAAC;QACzC,GAAG,EAAE,WAAW,UAAU,IAAI,UAAU,EAAE;KAC3C,CAAC,CAAC;IAEH,OAAO;QACL,OAAO,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC3F,SAAS,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE;YACjC,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,YAAY,EAAE,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;YAC5E,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;gBACpC,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;gBACrC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;aACjC;QACH,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,cAAc,CAAC,iBAAiB,EAAE,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- import { IFileAdapter } from '@unchainedshop/types/files';
2
- export declare const GridFSAdapter: IFileAdapter;
@@ -1,106 +0,0 @@
1
- import { FileAdapter, FileDirector } from '@unchainedshop/file-upload';
2
- import https from 'https';
3
- import http from 'http';
4
- import mimeType from 'mime-types';
5
- import { URL } from 'url';
6
- import { Readable } from 'stream';
7
- import buildHashedFilename from '@unchainedshop/file-upload/lib/buildHashedFilename';
8
- import sign from './sign';
9
- import promisePipe from './promisePipe';
10
- const { UNCHAINED_PUT_URL_EXPIRY, ROOT_URL } = process.env;
11
- const getExpiryDate = () => new Date(new Date().getTime() + (parseInt(UNCHAINED_PUT_URL_EXPIRY, 10) || 24 * 60 * 60 * 1000));
12
- const bufferToStream = (buffer) => {
13
- const stream = new Readable();
14
- stream.push(buffer);
15
- stream.push(null);
16
- return stream;
17
- };
18
- const createDownloadStream = (fileUrl, headers) => {
19
- const { href, protocol } = new URL(fileUrl);
20
- return new Promise((resolve, reject) => {
21
- try {
22
- if (protocol === 'http:') {
23
- http.get(href, { headers }, resolve);
24
- }
25
- else {
26
- https.get(href, { headers }, resolve);
27
- }
28
- }
29
- catch (e) {
30
- reject(e);
31
- }
32
- });
33
- };
34
- export const GridFSAdapter = {
35
- key: 'shop.unchained.file-upload-plugin.gridfs',
36
- label: 'Uploads files to Database using GridFS',
37
- version: '1.0',
38
- ...FileAdapter,
39
- async createSignedURL(directoryName, fileName) {
40
- const expiryDate = getExpiryDate();
41
- const _id = buildHashedFilename(directoryName, fileName, expiryDate);
42
- const signature = sign(directoryName, _id, expiryDate.getTime());
43
- const putURL = new URL(`/gridfs/${directoryName}/${encodeURIComponent(fileName)}?e=${expiryDate.getTime()}&s=${signature}`, ROOT_URL).href;
44
- const url = `/gridfs/${directoryName}/${_id}`;
45
- return {
46
- _id,
47
- directoryName,
48
- expiryDate,
49
- fileName,
50
- type: mimeType.lookup(fileName),
51
- putURL,
52
- url,
53
- };
54
- },
55
- async uploadFileFromStream(directoryName, rawFile, { modules }) {
56
- let stream;
57
- let fileName;
58
- if (rawFile instanceof Promise) {
59
- const { filename: f, createReadStream } = await rawFile;
60
- fileName = f;
61
- stream = createReadStream();
62
- }
63
- else {
64
- fileName = rawFile.filename;
65
- stream = bufferToStream(Buffer.from(rawFile.buffer, 'base64'));
66
- }
67
- const expiryDate = getExpiryDate();
68
- const _id = buildHashedFilename(directoryName, fileName, expiryDate);
69
- const writeStream = await modules.gridfsFileUploads.createWriteStream(directoryName, _id, fileName);
70
- const file = await promisePipe(stream, writeStream);
71
- const url = `/gridfs/${directoryName}/${_id}`;
72
- return {
73
- _id,
74
- directoryName,
75
- expiryDate: null,
76
- fileName,
77
- size: file.length,
78
- type: mimeType.lookup(fileName) || (await Promise.resolve(rawFile)).mimetype,
79
- url,
80
- };
81
- },
82
- async uploadFileFromURL(directoryName, { fileLink, fileName: fname, headers }, { modules }) {
83
- const { href } = new URL(fileLink);
84
- const fileName = fname || href.split('/').pop();
85
- const expiryDate = getExpiryDate();
86
- const _id = buildHashedFilename(directoryName, fileName, expiryDate);
87
- const downloadStream = await createDownloadStream(href, headers);
88
- const writeStream = await modules.gridfsFileUploads.createWriteStream(directoryName, _id, fileName);
89
- const file = await promisePipe(downloadStream, writeStream);
90
- const url = `/gridfs/${directoryName}/${_id}`;
91
- return {
92
- _id,
93
- directoryName,
94
- expiryDate: null,
95
- fileName,
96
- size: file.length,
97
- type: mimeType.lookup(fileName),
98
- url,
99
- };
100
- },
101
- async removeFiles(files, { modules }) {
102
- await Promise.all(files.map(async ({ _id, path }) => modules.gridfsFileUploads.removeFileFromBucket(path, _id)));
103
- },
104
- };
105
- FileDirector.registerAdapter(GridFSAdapter);
106
- //# sourceMappingURL=gridfs-adapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gridfs-adapter.js","sourceRoot":"","sources":["../../../src/files/gridfs/gridfs-adapter.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- declare function _default(app: any): void;
2
- export default _default;
@@ -1,54 +0,0 @@
1
- import { useMiddlewareWithCurrentContext } from '@unchainedshop/api';
2
- import { log, LogLevel } from '@unchainedshop/logger';
3
- import buildHashedFilename from '@unchainedshop/file-upload/lib/buildHashedFilename';
4
- import sign from './sign';
5
- import promisePipe from './promisePipe';
6
- const { ROOT_URL } = process.env;
7
- /*
8
- curl -vvv -X PUT -T /Users/pozylon/Downloads/grafik.png http://localhost:4010/gridfs/user-avatars/hans.png?e=1653059591506&s=df8626a1c9b9006249d7f1928fd530579fed57216f1bdcb83c28a8322cdc90b1
9
- */
10
- export default (app) => useMiddlewareWithCurrentContext(app, '/gridfs', async (req, res) => {
11
- try {
12
- const { services, modules } = req.unchainedContext;
13
- const url = new URL(req.url, ROOT_URL);
14
- const [, directoryName, fileName] = url.pathname.split('/');
15
- if (req.method === 'PUT') {
16
- const { s: signature, e: expiryTimestamp } = req.query;
17
- const expiryDate = new Date(parseInt(expiryTimestamp, 10));
18
- const fileId = buildHashedFilename(directoryName, fileName, expiryDate);
19
- if (sign(directoryName, fileId, expiryDate.getTime()) === signature) {
20
- const file = await modules.files.findFile({ fileId });
21
- if (file.expires === null) {
22
- res.writeHead(503);
23
- res.end('File already linked');
24
- }
25
- const writeStream = await modules.gridfsFileUploads.createWriteStream(directoryName, fileId, fileName);
26
- const { length } = await promisePipe(req, writeStream);
27
- await services.files.linkFile({ fileId, size: length }, req.unchainedContext);
28
- res.writeHead(200);
29
- res.end();
30
- return;
31
- }
32
- res.writeHead(403);
33
- res.end();
34
- return;
35
- }
36
- if (req.method === 'GET') {
37
- const fileId = fileName;
38
- const readStream = await modules.gridfsFileUploads.createReadStream(directoryName, fileId);
39
- await promisePipe(readStream, res);
40
- res.writeHead(200);
41
- res.end();
42
- return;
43
- }
44
- res.writeHead(404);
45
- res.end();
46
- return;
47
- }
48
- catch (e) {
49
- log(e.message, { level: LogLevel.Error });
50
- res.writeHead(503);
51
- res.end(JSON.stringify(e));
52
- }
53
- });
54
- //# sourceMappingURL=gridfs-webhook.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gridfs-webhook.js","sourceRoot":"","sources":["../../../src/files/gridfs/gridfs-webhook.js"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- export function configureGridFSFileUploadModule({ db }: {
2
- db: any;
3
- }): {
4
- createWriteStream: (directoryName: any, fileId: any, fileName: any) => Promise<mongodb.GridFSBucketWriteStream>;
5
- createReadStream: (directoryName: any, fileId: any) => Promise<mongodb.GridFSBucketReadStream>;
6
- removeFileFromBucket: (directoryName: any, fileId: any) => Promise<void>;
7
- };
8
- import mongodb from "mongodb";
@@ -1,21 +0,0 @@
1
- import mongodb from 'mongodb';
2
- export const configureGridFSFileUploadModule = ({ db }) => {
3
- return {
4
- createWriteStream: async (directoryName, fileId, fileName) => {
5
- const options = { bucketName: `file_uploads_${directoryName}`, chunkSizeBytes: 5 * 1024 * 1024 };
6
- const bucket = new mongodb.GridFSBucket(db, options);
7
- return bucket.openUploadStreamWithId(fileId, fileName);
8
- },
9
- createReadStream: async (directoryName, fileId) => {
10
- const options = { bucketName: `file_uploads_${directoryName}`, chunkSizeBytes: 5 * 1024 * 1024 };
11
- const bucket = new mongodb.GridFSBucket(db, options);
12
- return bucket.openDownloadStream(fileId);
13
- },
14
- removeFileFromBucket: async (directoryName, fileId) => {
15
- const options = { bucketName: `file_uploads_${directoryName}`, chunkSizeBytes: 5 * 1024 * 1024 };
16
- const bucket = new mongodb.GridFSBucket(db, options);
17
- return bucket.delete(fileId);
18
- },
19
- };
20
- };
21
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/files/gridfs/index.js"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;IACxD,OAAO;QACL,iBAAiB,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE;YAC3D,MAAM,OAAO,GAAG,EAAE,UAAU,EAAE,gBAAgB,aAAa,EAAE,EAAE,cAAc,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC;YACjG,MAAM,MAAM,GAAG,IAAI,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YACrD,OAAO,MAAM,CAAC,sBAAsB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACzD,CAAC;QACD,gBAAgB,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE;YAChD,MAAM,OAAO,GAAG,EAAE,UAAU,EAAE,gBAAgB,aAAa,EAAE,EAAE,cAAc,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC;YACjG,MAAM,MAAM,GAAG,IAAI,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YACrD,OAAO,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC3C,CAAC;QACD,oBAAoB,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE;YACpD,MAAM,OAAO,GAAG,EAAE,UAAU,EAAE,gBAAgB,aAAa,EAAE,EAAE,cAAc,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC;YACjG,MAAM,MAAM,GAAG,IAAI,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YACrD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC/B,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- declare function _default(readStream: any, writeStream: any): Promise<any>;
2
- export default _default;
@@ -1,21 +0,0 @@
1
- export default async (readStream, writeStream) => {
2
- return new Promise((resolve, reject) => {
3
- try {
4
- readStream
5
- .on('error', (e) => {
6
- reject(e);
7
- })
8
- .pipe(writeStream)
9
- .on('error', (e) => {
10
- reject(e);
11
- })
12
- .on('finish', async (file) => {
13
- resolve(file);
14
- });
15
- }
16
- catch (e) {
17
- reject(e);
18
- }
19
- });
20
- };
21
- //# sourceMappingURL=promisePipe.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"promisePipe.js","sourceRoot":"","sources":["../../../src/files/gridfs/promisePipe.js"],"names":[],"mappings":"AAAA,eAAe,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,EAAE;IAC/C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,IAAI;YACF,UAAU;iBACP,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;gBACjB,MAAM,CAAC,CAAC,CAAC,CAAC;YACZ,CAAC,CAAC;iBACD,IAAI,CAAC,WAAW,CAAC;iBACjB,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;gBACjB,MAAM,CAAC,CAAC,CAAC,CAAC;YACZ,CAAC,CAAC;iBACD,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;gBAC3B,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;SACN;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,CAAC,CAAC,CAAC,CAAC;SACX;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export default sign;
2
- declare function sign(directoryName: any, hash: any, expiryTimestamp: any): string;
@@ -1,12 +0,0 @@
1
- import crypto from 'crypto';
2
- const { UNCHAINED_GRIDFS_PUT_UPLOAD_SECRET } = process.env;
3
- const sign = (directoryName, hash, expiryTimestamp) => {
4
- if (!UNCHAINED_GRIDFS_PUT_UPLOAD_SECRET)
5
- throw new Error('To enable PUT based uploads you have to provide a random UNCHAINED_GRIDFS_PUT_UPLOAD_SECRET environment variable');
6
- const hmac = crypto.createHmac('sha256', UNCHAINED_GRIDFS_PUT_UPLOAD_SECRET);
7
- const signature = [directoryName, hash, expiryTimestamp].join(':');
8
- hmac.update(signature);
9
- return hmac.digest('hex');
10
- };
11
- export default sign;
12
- //# sourceMappingURL=sign.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sign.js","sourceRoot":"","sources":["../../../src/files/gridfs/sign.js"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,MAAM,EAAE,kCAAkC,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;AAE3D,MAAM,IAAI,GAAG,CAAC,aAAa,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE;IACpD,IAAI,CAAC,kCAAkC;QACrC,MAAM,IAAI,KAAK,CACb,kHAAkH,CACnH,CAAC;IACJ,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,kCAAkC,CAAC,CAAC;IAC7E,MAAM,SAAS,GAAG,CAAC,aAAa,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACvB,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5B,CAAC,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -1,4 +0,0 @@
1
- import { IFileAdapter } from '@unchainedshop/types/files';
2
- export declare function connectToMinio(credentialsProvider: any): Promise<any>;
3
- export declare const MinioAdapter: IFileAdapter;
4
- export default MinioAdapter;
@@ -1,166 +0,0 @@
1
- import { FileAdapter, FileDirector } from '@unchainedshop/file-upload';
2
- import https from 'https';
3
- import http from 'http';
4
- import { log, LogLevel } from '@unchainedshop/logger';
5
- import mimeType from 'mime-types';
6
- import Minio from 'minio';
7
- import { Readable } from 'stream';
8
- import { URL } from 'url';
9
- import buildHashedFilename from '@unchainedshop/file-upload/lib/buildHashedFilename';
10
- const { MINIO_ACCESS_KEY, MINIO_REGION, MINIO_SECRET_KEY, MINIO_ENDPOINT, MINIO_BUCKET_NAME, NODE_ENV, AMAZON_S3_SESSION_TOKEN, } = process.env;
11
- const PUT_URL_EXPIRY = 24 * 60 * 60;
12
- let client;
13
- export async function connectToMinio(credentialsProvider) {
14
- if (!MINIO_ENDPOINT || !MINIO_BUCKET_NAME) {
15
- log('Please configure Minio/S3 by providing MINIO_ENDPOINT & MINIO_BUCKET_NAME to use upload features', { level: LogLevel.Error });
16
- return null;
17
- }
18
- try {
19
- const resolvedUrl = new URL(MINIO_ENDPOINT);
20
- const minioClient = new Minio.Client({
21
- endPoint: resolvedUrl.hostname,
22
- useSSL: resolvedUrl.protocol === 'https:',
23
- port: parseInt(resolvedUrl.port, 10) || undefined,
24
- region: MINIO_REGION,
25
- sessionToken: AMAZON_S3_SESSION_TOKEN,
26
- accessKey: MINIO_ACCESS_KEY,
27
- secretKey: MINIO_SECRET_KEY,
28
- });
29
- if (NODE_ENV === 'development')
30
- minioClient?.traceOn(process.stdout);
31
- if (credentialsProvider) {
32
- await minioClient.setCredentialsProvider(credentialsProvider);
33
- }
34
- client = minioClient;
35
- }
36
- catch (error) {
37
- log(`Exception while creating Minio client: ${error.message}`, {
38
- level: LogLevel.Error,
39
- });
40
- }
41
- return null;
42
- }
43
- const generateMinioUrl = (directoryName, hashedFilename) => {
44
- return `${MINIO_ENDPOINT}/${MINIO_BUCKET_NAME}/${directoryName}/${hashedFilename}`;
45
- };
46
- const getMimeType = (extension) => {
47
- return mimeType.lookup(extension);
48
- };
49
- connectToMinio().then((c) => {
50
- client = c;
51
- });
52
- const createDownloadStream = (fileUrl, headers) => {
53
- const { href, protocol } = new URL(fileUrl);
54
- return new Promise((resolve, reject) => {
55
- try {
56
- if (protocol === 'http:') {
57
- http.get(href, { headers }, resolve);
58
- }
59
- else {
60
- https.get(href, { headers }, resolve);
61
- }
62
- }
63
- catch (e) {
64
- reject(e);
65
- }
66
- });
67
- };
68
- const getObjectStats = async (fileName) => {
69
- if (!client)
70
- throw new Error('Minio not connected, check env variables');
71
- return client.statObject(MINIO_BUCKET_NAME, fileName);
72
- };
73
- const bufferToStream = (buffer) => {
74
- const stream = new Readable();
75
- stream.push(buffer);
76
- stream.push(null);
77
- return stream;
78
- };
79
- const getExpiryDate = () => new Date(new Date().getTime() + PUT_URL_EXPIRY);
80
- export const MinioAdapter = {
81
- key: 'shop.unchained.file-upload-plugin.minio',
82
- label: 'Uploads files into an S3 bucket using minio',
83
- version: '1.0',
84
- ...FileAdapter,
85
- async createSignedURL(directoryName, fileName) {
86
- if (!client)
87
- throw new Error('Minio not connected, check env variables');
88
- const expiryDate = getExpiryDate();
89
- const _id = buildHashedFilename(directoryName, fileName, expiryDate);
90
- const url = await client.presignedPutObject(MINIO_BUCKET_NAME, `${directoryName}/${_id}`, PUT_URL_EXPIRY);
91
- return {
92
- _id,
93
- directoryName,
94
- expiryDate,
95
- fileName,
96
- type: getMimeType(fileName),
97
- putURL: url,
98
- url: generateMinioUrl(directoryName, _id),
99
- };
100
- },
101
- async removeFiles(files) {
102
- if (!client)
103
- throw new Error('Minio not connected, check env variables');
104
- const fileIds = files.map(({ path, _id }) => {
105
- return `${path}/${_id}`;
106
- });
107
- await client.removeObjects(MINIO_BUCKET_NAME, fileIds);
108
- },
109
- async uploadFileFromStream(directoryName, rawFile) {
110
- if (!client)
111
- throw new Error('Minio not connected, check env variables');
112
- let stream;
113
- let fileName;
114
- if (rawFile instanceof Promise) {
115
- const { filename: fname, createReadStream } = await rawFile;
116
- fileName = fname;
117
- stream = createReadStream();
118
- }
119
- else {
120
- fileName = rawFile.filename;
121
- stream = bufferToStream(Buffer.from(rawFile.buffer, 'base64'));
122
- }
123
- const _id = buildHashedFilename(directoryName, fileName, new Date());
124
- const type = rawFile?.mimetype || getMimeType(fileName);
125
- const metaData = {
126
- 'Content-Type': type,
127
- };
128
- await client.putObject(MINIO_BUCKET_NAME, `${directoryName}/${_id}`, stream, undefined, metaData);
129
- const { size } = await getObjectStats(`${directoryName}/${_id}`);
130
- return {
131
- _id,
132
- directoryName,
133
- expiryDate: null,
134
- fileName,
135
- size,
136
- type,
137
- url: generateMinioUrl(directoryName, _id),
138
- };
139
- },
140
- async uploadFileFromURL(directoryName, { fileLink, fileName: fname, headers }) {
141
- if (!client)
142
- throw new Error('Minio not connected, check env variables');
143
- const { href } = new URL(fileLink);
144
- const fileName = fname || href.split('/').pop();
145
- const _id = buildHashedFilename(directoryName, fileName, new Date());
146
- const stream = await createDownloadStream(fileLink, headers);
147
- const type = stream?.headers?.['content-type'] || getMimeType(fileName);
148
- const metaData = {
149
- 'Content-Type': type,
150
- };
151
- await client.putObject(MINIO_BUCKET_NAME, `${directoryName}/${_id}`, stream, undefined, metaData);
152
- const { size } = await getObjectStats(`${directoryName}/${_id}`);
153
- return {
154
- _id,
155
- directoryName,
156
- expiryDate: null,
157
- fileName,
158
- size,
159
- type,
160
- url: generateMinioUrl(directoryName, _id),
161
- };
162
- },
163
- };
164
- FileDirector.registerAdapter(MinioAdapter);
165
- export default MinioAdapter;
166
- //# sourceMappingURL=minio-adapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"minio-adapter.js","sourceRoot":"","sources":["../../../src/files/minio/minio-adapter.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- declare function _default(app: any): void;
2
- export default _default;
@@ -1,47 +0,0 @@
1
- import { useMiddlewareWithCurrentContext } from '@unchainedshop/api';
2
- import { log, LogLevel } from '@unchainedshop/logger';
3
- import bodyParser from 'body-parser';
4
- const { MINIO_WEBHOOK_AUTH_TOKEN } = process.env;
5
- const isAuthorized = ({ authorization = '' }) => {
6
- const [type, token] = authorization.split(' ');
7
- return type === 'Bearer' && token === MINIO_WEBHOOK_AUTH_TOKEN;
8
- };
9
- export default (app) => {
10
- useMiddlewareWithCurrentContext(app, '/minio/', bodyParser.json({
11
- strict: false,
12
- }));
13
- useMiddlewareWithCurrentContext(app, '/minio/', async (req, res) => {
14
- try {
15
- if (req.method === 'POST' && req.body) {
16
- const { headers } = req;
17
- const { Records = [], EventName } = req.body;
18
- if (EventName === 's3:ObjectCreated:Put' && isAuthorized(headers)) {
19
- const [{ s3 }] = Records;
20
- const { object } = s3;
21
- const { size, contentType: type } = object;
22
- const [fileId] = object.key.split('.');
23
- const { services } = req.unchainedContext;
24
- await services.files.linkFile({ fileId, type, size }, req.unchainedContext);
25
- res.writeHead(200);
26
- res.end();
27
- return;
28
- }
29
- }
30
- res.writeHead(404);
31
- res.end();
32
- return;
33
- }
34
- catch (e) {
35
- log(e.message, { level: LogLevel.Error });
36
- res.writeHead(503);
37
- res.end(JSON.stringify(e));
38
- }
39
- });
40
- };
41
- /*
42
-
43
- curl -X PUT -T /Users/pozylon/Desktop/Bildschirmfoto\ 2022-02-17\ um\ 16.47.22.png http://localhost:4010/gridfs/3e0cd78ac07f0028890ce36c391057dd0c5fb46f4c147fb73e54bd8a7ffee389/user-avatars/avatar.png?e=1645883865878&s=e7466b30039593e5790e23cab92878e0144289c3710344a55b78c9a916e2f78c
44
- curl -X PUT -T /Users/pozylon/Desktop/Bildschirmfoto\ 2022-02-17\ um\ 16.47.22.png https://minio.dev.shared.ucc.dev/unchained-test-bucket/user-avatars/9aedd551499b2850e9483b07cd4c8cff7ad1d710f49933c183861bf40183bc5a?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=unchained-test%2F20220225%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220225T140957Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-Amz-Signature=22807026db1210370170cd5cf49bfbb9e86010425c9d1834a56e049faf39b368
45
-
46
- */
47
- //# sourceMappingURL=minio-webhook.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"minio-webhook.js","sourceRoot":"","sources":["../../../src/files/minio/minio-webhook.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,+BAA+B,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,UAAU,MAAM,aAAa,CAAC;AAErC,MAAM,EAAE,wBAAwB,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;AAEjD,MAAM,YAAY,GAAG,CAAC,EAAE,aAAa,GAAG,EAAE,EAAE,EAAE,EAAE;IAC9C,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/C,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,KAAK,wBAAwB,CAAC;AACjE,CAAC,CAAC;AAEF,eAAe,CAAC,GAAG,EAAE,EAAE;IACrB,+BAA+B,CAC7B,GAAG,EACH,SAAS,EACT,UAAU,CAAC,IAAI,CAAC;QACd,MAAM,EAAE,KAAK;KACd,CAAC,CACH,CAAC;IAEF,+BAA+B,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACjE,IAAI;YACF,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE;gBACrC,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC;gBACxB,MAAM,EAAE,OAAO,GAAG,EAAE,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;gBAC7C,IAAI,SAAS,KAAK,sBAAsB,IAAI,YAAY,CAAC,OAAO,CAAC,EAAE;oBACjE,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC;oBACzB,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;oBACtB,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;oBAC3C,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACvC,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,gBAAgB,CAAC;oBAC1C,MAAM,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC;oBAC5E,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;oBACnB,GAAG,CAAC,GAAG,EAAE,CAAC;oBACV,OAAO;iBACR;aACF;YACD,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACnB,GAAG,CAAC,GAAG,EAAE,CAAC;YACV,OAAO;SACR;QAAC,OAAO,CAAC,EAAE;YACV,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;YAC1C,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACnB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;SAC5B;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF;;;;;EAKE"}
@@ -1,3 +0,0 @@
1
- import { IFilterAdapter } from '@unchainedshop/types/filters';
2
- declare const LocalSearch: IFilterAdapter;
3
- export default LocalSearch;
@@ -1,84 +0,0 @@
1
- import { FilterDirector, FilterAdapter } from '@unchainedshop/core-filters';
2
- const { AMAZON_DOCUMENTDB_COMPAT_MODE } = process.env;
3
- const LocalSearch = {
4
- ...FilterAdapter,
5
- key: 'shop.unchained.filters.local-search',
6
- label: 'Simple Fulltext search with MongoDB',
7
- version: '0.1',
8
- orderIndex: 1,
9
- actions: (params) => {
10
- return {
11
- ...FilterAdapter.actions(params),
12
- searchProducts: async ({ productIds }) => {
13
- // Search Products
14
- const { queryString } = params.searchQuery;
15
- if (!queryString)
16
- return productIds;
17
- const selector = AMAZON_DOCUMENTDB_COMPAT_MODE
18
- ? {
19
- $or: [
20
- { title: { $regex: `${queryString}`, $options: 'im' } },
21
- { subtitle: { $regex: `${queryString}`, $options: 'im' } },
22
- { vendor: { $regex: `${queryString}`, $options: 'im' } },
23
- { brand: { $regex: `${queryString}`, $options: 'im' } },
24
- { description: { $regex: `${queryString}`, $options: 'im' } },
25
- { labels: { $regex: `${queryString}`, $options: 'im' } },
26
- ],
27
- }
28
- : {
29
- $text: { $search: queryString },
30
- };
31
- if (productIds) {
32
- selector.productId = { $in: [...new Set(productIds)] };
33
- }
34
- const products = await params.modules.products.texts.findTexts(selector, {
35
- projection: {
36
- productId: 1,
37
- },
38
- });
39
- return products.map(({ productId }) => productId);
40
- },
41
- // eslint-disable-next-line
42
- searchAssortments: async ({ assortmentIds }) => {
43
- const { queryString } = params.searchQuery;
44
- if (!queryString) {
45
- return assortmentIds;
46
- }
47
- const selector = {
48
- $text: { $search: queryString },
49
- };
50
- if (assortmentIds) {
51
- selector.assortmentId = { $in: assortmentIds };
52
- }
53
- const assortments = await params.modules.assortments.texts.findTexts(selector, {
54
- projection: {
55
- assortmentId: 1,
56
- },
57
- });
58
- return assortments.map(({ assortmentId }) => assortmentId);
59
- },
60
- async transformFilterSelector(last) {
61
- const { query = {} } = params.searchQuery;
62
- const { queryString, filterIds, includeInactive } = query;
63
- if (queryString && !filterIds) {
64
- // Global search without assortment scope:
65
- // Return all filters
66
- const selector = { ...last };
67
- if (selector?.key) {
68
- // Do not restrict to keys
69
- delete selector.key;
70
- }
71
- if (!includeInactive) {
72
- // Include only active filters
73
- selector.isActive = true;
74
- }
75
- return selector;
76
- }
77
- return last;
78
- },
79
- };
80
- },
81
- };
82
- export default LocalSearch;
83
- FilterDirector.registerAdapter(LocalSearch);
84
- //# sourceMappingURL=local-search.js.map