@unchainedshop/plugins 4.0.0-rc.15 → 4.0.0-rc.17

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 (302) hide show
  1. package/lib/accounts/google-oauth.d.ts +4 -0
  2. package/lib/accounts/google-oauth.d.ts.map +1 -0
  3. package/lib/accounts/google-oauth.js +145 -0
  4. package/lib/accounts/google-oauth.js.map +1 -0
  5. package/lib/accounts/linkedin-oauth.d.ts +4 -0
  6. package/lib/accounts/linkedin-oauth.d.ts.map +1 -0
  7. package/lib/accounts/linkedin-oauth.js +82 -0
  8. package/lib/accounts/linkedin-oauth.js.map +1 -0
  9. package/lib/delivery/send-message.js.map +1 -1
  10. package/lib/enrollments/licensed.js +15 -2
  11. package/lib/enrollments/licensed.js.map +1 -1
  12. package/lib/files/gridfs/adapter.js +1 -1
  13. package/lib/files/gridfs/adapter.js.map +1 -1
  14. package/lib/files/gridfs/gridfs-adapter.d.ts +3 -0
  15. package/lib/files/gridfs/gridfs-adapter.d.ts.map +1 -0
  16. package/lib/files/gridfs/gridfs-adapter.js +97 -0
  17. package/lib/files/gridfs/gridfs-adapter.js.map +1 -0
  18. package/lib/files/gridfs/gridfs-webhook.d.ts +11 -0
  19. package/lib/files/gridfs/gridfs-webhook.d.ts.map +1 -0
  20. package/lib/files/gridfs/gridfs-webhook.js +84 -0
  21. package/lib/files/gridfs/gridfs-webhook.js.map +1 -0
  22. package/lib/files/gridfs/handler-express.d.ts.map +1 -1
  23. package/lib/files/gridfs/handler-express.js +17 -24
  24. package/lib/files/gridfs/handler-express.js.map +1 -1
  25. package/lib/files/gridfs/handler-fastify.d.ts.map +1 -1
  26. package/lib/files/gridfs/handler-fastify.js +45 -11
  27. package/lib/files/gridfs/handler-fastify.js.map +1 -1
  28. package/lib/files/gridfs/module.d.ts +2 -2
  29. package/lib/files/minio/handler-express.d.ts.map +1 -1
  30. package/lib/files/minio/handler-express.js +4 -7
  31. package/lib/files/minio/handler-express.js.map +1 -1
  32. package/lib/files/minio/handler-fastify.js +2 -2
  33. package/lib/files/minio/handler-fastify.js.map +1 -1
  34. package/lib/files/minio/index.d.ts +1 -1
  35. package/lib/files/minio/index.d.ts.map +1 -1
  36. package/lib/files/minio/index.js +3 -3
  37. package/lib/files/minio/index.js.map +1 -1
  38. package/lib/files/minio/minio-adapter.d.ts +6 -0
  39. package/lib/files/minio/minio-adapter.d.ts.map +1 -0
  40. package/lib/files/minio/minio-adapter.js +181 -0
  41. package/lib/files/minio/minio-adapter.js.map +1 -0
  42. package/lib/files/minio/minio-webhook.d.ts +2 -0
  43. package/lib/files/minio/minio-webhook.d.ts.map +1 -0
  44. package/lib/files/minio/minio-webhook.js +33 -0
  45. package/lib/files/minio/minio-webhook.js.map +1 -0
  46. package/lib/filters/local-search.js +1 -1
  47. package/lib/filters/local-search.js.map +1 -1
  48. package/lib/payment/apple-iap/adapter.js +12 -10
  49. package/lib/payment/apple-iap/adapter.js.map +1 -1
  50. package/lib/payment/apple-iap/db/AppleTransactionsCollection.d.ts +1 -1
  51. package/lib/payment/apple-iap/db/AppleTransactionsCollection.d.ts.map +1 -1
  52. package/lib/payment/apple-iap/handler-express.d.ts.map +1 -1
  53. package/lib/payment/apple-iap/handler-express.js +14 -10
  54. package/lib/payment/apple-iap/handler-express.js.map +1 -1
  55. package/lib/payment/apple-iap/handler-fastify.d.ts.map +1 -1
  56. package/lib/payment/apple-iap/handler-fastify.js +15 -8
  57. package/lib/payment/apple-iap/handler-fastify.js.map +1 -1
  58. package/lib/payment/apple-iap/module/configureAppleTransactionsModule.d.ts +9 -0
  59. package/lib/payment/apple-iap/module/configureAppleTransactionsModule.d.ts.map +1 -0
  60. package/lib/payment/apple-iap/module/configureAppleTransactionsModule.js +17 -0
  61. package/lib/payment/apple-iap/module/configureAppleTransactionsModule.js.map +1 -0
  62. package/lib/payment/apple-iap/module.d.ts +4 -4
  63. package/lib/payment/apple-iap/module.d.ts.map +1 -1
  64. package/lib/payment/apple-iap/module.js +4 -2
  65. package/lib/payment/apple-iap/module.js.map +1 -1
  66. package/lib/payment/braintree.js +3 -1
  67. package/lib/payment/braintree.js.map +1 -1
  68. package/lib/payment/cryptopay/db/CryptopayTransactions.d.ts +1 -1
  69. package/lib/payment/cryptopay/db/CryptopayTransactions.d.ts.map +1 -1
  70. package/lib/payment/cryptopay/derive-btc-address.d.ts.map +1 -1
  71. package/lib/payment/cryptopay/derive-btc-address.js +2 -3
  72. package/lib/payment/cryptopay/derive-btc-address.js.map +1 -1
  73. package/lib/payment/cryptopay/derive-eth-address.d.ts.map +1 -1
  74. package/lib/payment/cryptopay/derive-eth-address.js +2 -0
  75. package/lib/payment/cryptopay/derive-eth-address.js.map +1 -1
  76. package/lib/payment/cryptopay/handle-webhook.js +2 -2
  77. package/lib/payment/cryptopay/handle-webhook.js.map +1 -1
  78. package/lib/payment/cryptopay/handler-express.d.ts.map +1 -1
  79. package/lib/payment/cryptopay/handler-express.js +4 -7
  80. package/lib/payment/cryptopay/handler-express.js.map +1 -1
  81. package/lib/payment/cryptopay/handler-fastify.js +1 -1
  82. package/lib/payment/cryptopay/handler-fastify.js.map +1 -1
  83. package/lib/payment/cryptopay/middleware.d.ts +2 -0
  84. package/lib/payment/cryptopay/middleware.d.ts.map +1 -0
  85. package/lib/payment/cryptopay/middleware.js +75 -0
  86. package/lib/payment/cryptopay/middleware.js.map +1 -0
  87. package/lib/payment/cryptopay/module/configureCryptopayModule.d.ts +25 -0
  88. package/lib/payment/cryptopay/module/configureCryptopayModule.d.ts.map +1 -0
  89. package/lib/payment/cryptopay/module/configureCryptopayModule.js +75 -0
  90. package/lib/payment/cryptopay/module/configureCryptopayModule.js.map +1 -0
  91. package/lib/payment/cryptopay/module.d.ts +2 -2
  92. package/lib/payment/cryptopay/module.d.ts.map +1 -1
  93. package/lib/payment/cryptopay/module.js +4 -4
  94. package/lib/payment/cryptopay/module.js.map +1 -1
  95. package/lib/payment/cryptopay/plugin.d.ts.map +1 -1
  96. package/lib/payment/cryptopay/plugin.js +18 -4
  97. package/lib/payment/cryptopay/plugin.js.map +1 -1
  98. package/lib/payment/datatrans-v2/handler-express.d.ts.map +1 -1
  99. package/lib/payment/datatrans-v2/handler-express.js +13 -11
  100. package/lib/payment/datatrans-v2/handler-express.js.map +1 -1
  101. package/lib/payment/datatrans-v2/handler-fastify.d.ts.map +1 -1
  102. package/lib/payment/datatrans-v2/handler-fastify.js +11 -5
  103. package/lib/payment/datatrans-v2/handler-fastify.js.map +1 -1
  104. package/lib/payment/datatrans-v2/index.js +63 -37
  105. package/lib/payment/datatrans-v2/index.js.map +1 -1
  106. package/lib/payment/datatrans-v2/middleware.d.ts +2 -0
  107. package/lib/payment/datatrans-v2/middleware.d.ts.map +1 -0
  108. package/lib/payment/datatrans-v2/middleware.js +68 -0
  109. package/lib/payment/datatrans-v2/middleware.js.map +1 -0
  110. package/lib/payment/datatrans-v2/parseRegistrationData.d.ts +1 -1
  111. package/lib/payment/datatrans-v2/parseRegistrationData.d.ts.map +1 -1
  112. package/lib/payment/paypal-checkout.js +4 -2
  113. package/lib/payment/paypal-checkout.js.map +1 -1
  114. package/lib/payment/payrexx/api/index.d.ts +1 -1
  115. package/lib/payment/payrexx/api/index.d.ts.map +1 -1
  116. package/lib/payment/payrexx/api/makeFetcher.d.ts +1 -1
  117. package/lib/payment/payrexx/api/makeFetcher.d.ts.map +1 -1
  118. package/lib/payment/payrexx/api/makeFetcher.js +1 -1
  119. package/lib/payment/payrexx/api/makeFetcher.js.map +1 -1
  120. package/lib/payment/payrexx/handler-express.d.ts.map +1 -1
  121. package/lib/payment/payrexx/handler-express.js +15 -15
  122. package/lib/payment/payrexx/handler-express.js.map +1 -1
  123. package/lib/payment/payrexx/handler-fastify.js +23 -15
  124. package/lib/payment/payrexx/handler-fastify.js.map +1 -1
  125. package/lib/payment/payrexx/index.js +21 -15
  126. package/lib/payment/payrexx/index.js.map +1 -1
  127. package/lib/payment/payrexx/middleware.d.ts +2 -0
  128. package/lib/payment/payrexx/middleware.d.ts.map +1 -0
  129. package/lib/payment/payrexx/middleware.js +86 -0
  130. package/lib/payment/payrexx/middleware.js.map +1 -0
  131. package/lib/payment/postfinance-checkout/handler-express.js +7 -8
  132. package/lib/payment/postfinance-checkout/handler-express.js.map +1 -1
  133. package/lib/payment/postfinance-checkout/handler-fastify.d.ts.map +1 -1
  134. package/lib/payment/postfinance-checkout/handler-fastify.js +6 -4
  135. package/lib/payment/postfinance-checkout/handler-fastify.js.map +1 -1
  136. package/lib/payment/postfinance-checkout/index.d.ts.map +1 -1
  137. package/lib/payment/postfinance-checkout/index.js +20 -7
  138. package/lib/payment/postfinance-checkout/index.js.map +1 -1
  139. package/lib/payment/postfinance-checkout/middleware.d.ts +2 -0
  140. package/lib/payment/postfinance-checkout/middleware.d.ts.map +1 -0
  141. package/lib/payment/postfinance-checkout/middleware.js +38 -0
  142. package/lib/payment/postfinance-checkout/middleware.js.map +1 -0
  143. package/lib/payment/saferpay/adapter.d.ts.map +1 -1
  144. package/lib/payment/saferpay/adapter.js +9 -0
  145. package/lib/payment/saferpay/adapter.js.map +1 -1
  146. package/lib/payment/saferpay/handler-express.d.ts.map +1 -1
  147. package/lib/payment/saferpay/handler-express.js +10 -8
  148. package/lib/payment/saferpay/handler-express.js.map +1 -1
  149. package/lib/payment/saferpay/handler-fastify.d.ts.map +1 -1
  150. package/lib/payment/saferpay/handler-fastify.js +11 -5
  151. package/lib/payment/saferpay/handler-fastify.js.map +1 -1
  152. package/lib/payment/saferpay/middleware.d.ts +2 -0
  153. package/lib/payment/saferpay/middleware.d.ts.map +1 -0
  154. package/lib/payment/saferpay/middleware.js +57 -0
  155. package/lib/payment/saferpay/middleware.js.map +1 -0
  156. package/lib/payment/saferpay/module/configureSaferpayTransactionsModule.d.ts +10 -0
  157. package/lib/payment/saferpay/module/configureSaferpayTransactionsModule.d.ts.map +1 -0
  158. package/lib/payment/saferpay/module/configureSaferpayTransactionsModule.js +24 -0
  159. package/lib/payment/saferpay/module/configureSaferpayTransactionsModule.js.map +1 -0
  160. package/lib/payment/saferpay/module.d.ts +2 -2
  161. package/lib/payment/stripe/handler-express.js +25 -17
  162. package/lib/payment/stripe/handler-express.js.map +1 -1
  163. package/lib/payment/stripe/handler-fastify.d.ts.map +1 -1
  164. package/lib/payment/stripe/handler-fastify.js +33 -12
  165. package/lib/payment/stripe/handler-fastify.js.map +1 -1
  166. package/lib/payment/stripe/index.js +19 -13
  167. package/lib/payment/stripe/index.js.map +1 -1
  168. package/lib/payment/stripe/middleware.d.ts +6 -0
  169. package/lib/payment/stripe/middleware.d.ts.map +1 -0
  170. package/lib/payment/stripe/middleware.js +114 -0
  171. package/lib/payment/stripe/middleware.js.map +1 -0
  172. package/lib/payment/stripe/stripe.d.ts +2 -2
  173. package/lib/payment/stripe/stripe.d.ts.map +1 -1
  174. package/lib/payment/stripe/stripe.js +14 -11
  175. package/lib/payment/stripe/stripe.js.map +1 -1
  176. package/lib/plugins-index.d.ts +48 -0
  177. package/lib/plugins-index.d.ts.map +1 -0
  178. package/lib/plugins-index.js +107 -0
  179. package/lib/plugins-index.js.map +1 -0
  180. package/lib/presets/all.d.ts +5 -5
  181. package/lib/presets/all.d.ts.map +1 -1
  182. package/lib/pricing/delivery-swiss-tax.d.ts.map +1 -1
  183. package/lib/pricing/delivery-swiss-tax.js +13 -11
  184. package/lib/pricing/delivery-swiss-tax.js.map +1 -1
  185. package/lib/pricing/order-discount.d.ts.map +1 -1
  186. package/lib/pricing/order-discount.js +5 -3
  187. package/lib/pricing/order-discount.js.map +1 -1
  188. package/lib/pricing/order-round.d.ts.map +1 -1
  189. package/lib/pricing/order-round.js +4 -3
  190. package/lib/pricing/order-round.js.map +1 -1
  191. package/lib/pricing/product-catalog-price.js +4 -4
  192. package/lib/pricing/product-catalog-price.js.map +1 -1
  193. package/lib/pricing/product-price-rateconversion.js +3 -3
  194. package/lib/pricing/product-price-rateconversion.js.map +1 -1
  195. package/lib/pricing/product-swiss-tax.d.ts +1 -4
  196. package/lib/pricing/product-swiss-tax.d.ts.map +1 -1
  197. package/lib/pricing/product-swiss-tax.js +9 -15
  198. package/lib/pricing/product-swiss-tax.js.map +1 -1
  199. package/lib/pricing/tax/ch.d.ts +6 -0
  200. package/lib/pricing/tax/ch.d.ts.map +1 -1
  201. package/lib/pricing/tax/ch.js +10 -0
  202. package/lib/pricing/tax/ch.js.map +1 -1
  203. package/lib/warehousing/eth-minter.js +23 -11
  204. package/lib/warehousing/eth-minter.js.map +1 -1
  205. package/lib/worker/BaseWorker.d.ts +30 -0
  206. package/lib/worker/BaseWorker.d.ts.map +1 -0
  207. package/lib/worker/BaseWorker.js +79 -0
  208. package/lib/worker/BaseWorker.js.map +1 -0
  209. package/lib/worker/EventListenerWorker.d.ts +6 -0
  210. package/lib/worker/EventListenerWorker.d.ts.map +1 -0
  211. package/lib/worker/EventListenerWorker.js +46 -0
  212. package/lib/worker/EventListenerWorker.js.map +1 -0
  213. package/lib/worker/FailedRescheduler.d.ts +15 -0
  214. package/lib/worker/FailedRescheduler.d.ts.map +1 -0
  215. package/lib/worker/FailedRescheduler.js +45 -0
  216. package/lib/worker/FailedRescheduler.js.map +1 -0
  217. package/lib/worker/IntervalWorker.d.ts +10 -0
  218. package/lib/worker/IntervalWorker.d.ts.map +1 -0
  219. package/lib/worker/IntervalWorker.js +37 -0
  220. package/lib/worker/IntervalWorker.js.map +1 -0
  221. package/lib/worker/bulk-import.d.ts +1 -1
  222. package/lib/worker/bulk-import.d.ts.map +1 -1
  223. package/lib/worker/bulk-import.js +11 -33
  224. package/lib/worker/bulk-import.js.map +1 -1
  225. package/lib/worker/enrollment-order-generator.d.ts.map +1 -1
  226. package/lib/worker/enrollment-order-generator.js +7 -49
  227. package/lib/worker/enrollment-order-generator.js.map +1 -1
  228. package/lib/worker/error-notifications.js +1 -1
  229. package/lib/worker/error-notifications.js.map +1 -1
  230. package/lib/worker/export-token.d.ts.map +1 -1
  231. package/lib/worker/export-token.js +0 -1
  232. package/lib/worker/export-token.js.map +1 -1
  233. package/lib/worker/message.d.ts +1 -1
  234. package/lib/worker/message.d.ts.map +1 -1
  235. package/lib/worker/message.js +4 -2
  236. package/lib/worker/message.js.map +1 -1
  237. package/lib/worker/sms.d.ts +2 -0
  238. package/lib/worker/sms.d.ts.map +1 -0
  239. package/lib/worker/sms.js +73 -0
  240. package/lib/worker/sms.js.map +1 -0
  241. package/lib/worker/twilio.js +4 -0
  242. package/lib/worker/twilio.js.map +1 -1
  243. package/package.json +15 -17
  244. package/src/delivery/send-message.ts +1 -1
  245. package/src/enrollments/licensed.ts +15 -2
  246. package/src/files/gridfs/adapter.ts +1 -1
  247. package/src/files/gridfs/handler-express.ts +19 -24
  248. package/src/files/gridfs/handler-fastify.ts +48 -12
  249. package/src/files/minio/handler-express.ts +4 -7
  250. package/src/files/minio/handler-fastify.ts +2 -2
  251. package/src/files/minio/index.ts +12 -12
  252. package/src/filters/local-search.ts +1 -1
  253. package/src/payment/apple-iap/adapter.ts +12 -14
  254. package/src/payment/apple-iap/db/AppleTransactionsCollection.ts +1 -1
  255. package/src/payment/apple-iap/handler-express.ts +17 -11
  256. package/src/payment/apple-iap/handler-fastify.ts +19 -9
  257. package/src/payment/apple-iap/module.ts +9 -4
  258. package/src/payment/braintree.ts +4 -1
  259. package/src/payment/cryptopay/db/CryptopayTransactions.ts +1 -1
  260. package/src/payment/cryptopay/derive-btc-address.ts +1 -3
  261. package/src/payment/cryptopay/derive-eth-address.ts +2 -0
  262. package/src/payment/cryptopay/handle-webhook.ts +6 -6
  263. package/src/payment/cryptopay/handler-express.ts +4 -7
  264. package/src/payment/cryptopay/handler-fastify.ts +1 -1
  265. package/src/payment/cryptopay/module.ts +8 -5
  266. package/src/payment/cryptopay/plugin.ts +21 -4
  267. package/src/payment/datatrans-v2/handler-express.ts +17 -12
  268. package/src/payment/datatrans-v2/handler-fastify.ts +15 -6
  269. package/src/payment/datatrans-v2/index.ts +82 -50
  270. package/src/payment/paypal-checkout.ts +4 -2
  271. package/src/payment/payrexx/api/index.ts +1 -1
  272. package/src/payment/payrexx/api/makeFetcher.ts +2 -2
  273. package/src/payment/payrexx/handler-express.ts +24 -32
  274. package/src/payment/payrexx/handler-fastify.ts +33 -33
  275. package/src/payment/payrexx/index.ts +26 -16
  276. package/src/payment/postfinance-checkout/handler-express.ts +8 -8
  277. package/src/payment/postfinance-checkout/handler-fastify.ts +7 -4
  278. package/src/payment/postfinance-checkout/index.ts +20 -8
  279. package/src/payment/saferpay/adapter.ts +14 -2
  280. package/src/payment/saferpay/handler-express.ts +14 -13
  281. package/src/payment/saferpay/handler-fastify.ts +14 -9
  282. package/src/payment/stripe/handler-express.ts +33 -33
  283. package/src/payment/stripe/handler-fastify.ts +40 -27
  284. package/src/payment/stripe/index.ts +17 -13
  285. package/src/payment/stripe/stripe.ts +17 -12
  286. package/src/pricing/delivery-swiss-tax.ts +11 -19
  287. package/src/pricing/order-discount.ts +6 -4
  288. package/src/pricing/order-round.ts +5 -4
  289. package/src/pricing/product-catalog-price.ts +4 -4
  290. package/src/pricing/product-price-rateconversion.ts +3 -3
  291. package/src/pricing/product-swiss-tax.test.ts +1 -86
  292. package/src/pricing/product-swiss-tax.ts +11 -24
  293. package/src/pricing/tax/ch.test.ts +86 -1
  294. package/src/pricing/tax/ch.ts +23 -0
  295. package/src/warehousing/eth-minter.ts +30 -11
  296. package/src/worker/budgetsms.ts +1 -1
  297. package/src/worker/bulk-import.ts +12 -53
  298. package/src/worker/enrollment-order-generator.ts +14 -72
  299. package/src/worker/error-notifications.ts +2 -2
  300. package/src/worker/export-token.ts +0 -1
  301. package/src/worker/message.ts +5 -3
  302. package/src/worker/twilio.ts +10 -3
@@ -5,7 +5,7 @@ import sign from './sign.js';
5
5
  import { createLogger } from '@unchainedshop/logger';
6
6
  import { getFileAdapter } from '@unchainedshop/core-files';
7
7
  const { ROOT_URL } = process.env;
8
- const logger = createLogger('unchained:plugins:gridfs');
8
+ const logger = createLogger('unchained:gridfs');
9
9
  const gridfsHandler = async (req, res) => {
10
10
  try {
11
11
  const { services, modules } = req.unchainedContext;
@@ -19,8 +19,7 @@ const gridfsHandler = async (req, res) => {
19
19
  res.setHeader('Access-Control-Allow-Headers', 'Content-Type');
20
20
  res.setHeader('Access-Control-Allow-Origin', '*');
21
21
  if (req.method === 'OPTIONS') {
22
- res.statusCode = 200;
23
- res.end();
22
+ res.status(200).end();
24
23
  return;
25
24
  }
26
25
  if (req.method === 'PUT') {
@@ -29,9 +28,12 @@ const gridfsHandler = async (req, res) => {
29
28
  const fileId = await buildHashedFilename(directoryName, fileName, expiryDate);
30
29
  if ((await sign(directoryName, fileId, expiryDate.getTime())) === signature) {
31
30
  const file = await modules.files.findFile({ fileId });
31
+ if (!file) {
32
+ res.status(404).send('File not found');
33
+ return;
34
+ }
32
35
  if (file.expires === null) {
33
- res.statusCode = 400;
34
- res.end('File already linked');
36
+ res.status(400).send('File already linked');
35
37
  return;
36
38
  }
37
39
  // If the type is octet-stream, prefer mimetype lookup from the filename
@@ -48,12 +50,10 @@ const gridfsHandler = async (req, res) => {
48
50
  await finished(writeStream, { readable: false });
49
51
  const { length } = writeStream;
50
52
  await services.files.linkFile({ fileId, size: length, type });
51
- res.statusCode = 200;
52
- res.end();
53
+ res.status(200).end();
53
54
  return;
54
55
  }
55
- res.statusCode = 403;
56
- res.end();
56
+ res.status(403).end();
57
57
  return;
58
58
  }
59
59
  if (req.method === 'GET') {
@@ -64,21 +64,18 @@ const gridfsHandler = async (req, res) => {
64
64
  if (fileDocument?.meta?.isPrivate) {
65
65
  const expiry = parseInt(expiryTimestamp, 10);
66
66
  if (expiry <= Date.now()) {
67
- res.statusCode = 403;
68
- res.end('Access restricted: Expired.');
67
+ res.status(403).send('Access restricted: Expired.');
69
68
  return;
70
69
  }
71
70
  const fileUploadAdapter = getFileAdapter();
72
71
  const signedUrl = await fileUploadAdapter.createDownloadURL(fileDocument, expiry);
73
- if (new URL(signedUrl, 'file://').searchParams.get('s') !== signature) {
74
- res.statusCode = 403;
75
- res.end('Access restricted: Invalid signature.');
72
+ if (!signedUrl || new URL(signedUrl, 'file://').searchParams.get('s') !== signature) {
73
+ res.status(403).send('Access restricted: Invalid signature.');
76
74
  return;
77
75
  }
78
76
  }
79
77
  else if (!fileDocument) {
80
- res.statusCode = 404;
81
- res.end();
78
+ res.status(404).end();
82
79
  return;
83
80
  }
84
81
  if (file?.metadata?.['content-type']) {
@@ -90,23 +87,19 @@ const gridfsHandler = async (req, res) => {
90
87
  const readStream = await modules.gridfsFileUploads.createReadStream(directoryName, fileId);
91
88
  readStream.pipe(res, { end: false });
92
89
  await finished(readStream);
93
- res.statusCode = 200;
94
- res.end();
90
+ res.status(200).end();
95
91
  return;
96
92
  }
97
- res.statusCode = 404;
98
- res.end();
93
+ res.status(404).end();
99
94
  }
100
95
  catch (e) {
101
96
  if (e.code === 'ENOENT') {
102
97
  logger.warn(e);
103
- res.statusCode = 404;
104
- res.end(e.message);
98
+ res.status(404).send();
105
99
  }
106
100
  else {
107
101
  logger.warn(e);
108
- res.statusCode = 503;
109
- res.end(JSON.stringify({ name: e.name, code: e.code, message: e.message }));
102
+ res.status(503).send({ name: e.name, code: e.code, message: e.message });
110
103
  }
111
104
  }
112
105
  };
@@ -1 +1 @@
1
- {"version":3,"file":"handler-express.js","sourceRoot":"","sources":["../../../src/files/gridfs/handler-express.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handler-express.js","sourceRoot":"","sources":["../../../src/files/gridfs/handler-express.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"handler-fastify.d.ts","sourceRoot":"","sources":["../../../src/files/gridfs/handler-fastify.ts"],"names":[],"mappings":"AAEA,OAAO,EAAkB,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAU7D,QAAA,MAAM,aAAa,EAAE,kBAuHpB,CAAC;AAEF,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"handler-fastify.d.ts","sourceRoot":"","sources":["../../../src/files/gridfs/handler-fastify.ts"],"names":[],"mappings":"AAEA,OAAO,EAAkB,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAU7D,QAAA,MAAM,aAAa,EAAE,kBA2JpB,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -4,7 +4,7 @@ import { buildHashedFilename } from '@unchainedshop/file-upload';
4
4
  import sign from './sign.js';
5
5
  import { createLogger } from '@unchainedshop/logger';
6
6
  import { getFileAdapter } from '@unchainedshop/core-files';
7
- const logger = createLogger('unchained:plugins:gridfs');
7
+ const logger = createLogger('unchained:gridfs');
8
8
  const gridfsHandler = async (req, reply) => {
9
9
  try {
10
10
  const { services, modules } = req.unchainedContext;
@@ -24,9 +24,23 @@ const gridfsHandler = async (req, reply) => {
24
24
  const fileId = await buildHashedFilename(directoryName, fileName, expiryDate);
25
25
  if ((await sign(directoryName, fileId, expiryDate.getTime())) === signature) {
26
26
  const file = await modules.files.findFile({ fileId });
27
+ if (!file) {
28
+ reply.status(404);
29
+ logger.error('File not found', { fileId });
30
+ return reply.send({
31
+ success: false,
32
+ message: 'File not found',
33
+ name: 'FILE_NOT_FOUND',
34
+ });
35
+ }
27
36
  if (file.expires === null) {
28
37
  reply.status(400);
29
- return reply.send('File already linked');
38
+ logger.error('File already linked', { fileId });
39
+ return reply.send({
40
+ success: false,
41
+ message: 'File already linked',
42
+ name: 'FILE_ALREADY_LINKED',
43
+ });
30
44
  }
31
45
  // If the type is octet-stream, prefer mimetype lookup from the filename
32
46
  // Else prefer the content-type header
@@ -43,10 +57,20 @@ const gridfsHandler = async (req, reply) => {
43
57
  const { length } = writeStream;
44
58
  await services.files.linkFile({ fileId, size: length, type });
45
59
  reply.status(200);
46
- return reply.send();
60
+ return reply.send({
61
+ success: true,
62
+ fileId,
63
+ size: length,
64
+ type,
65
+ });
47
66
  }
67
+ logger.error('Invalid signature', { fileId, expiryDate });
48
68
  reply.status(403);
49
- return reply.send();
69
+ return reply.send({
70
+ success: false,
71
+ message: 'Access restricted: Invalid signature.',
72
+ name: 'INVALID_SIGNATURE',
73
+ });
50
74
  }
51
75
  if (req.method === 'GET') {
52
76
  const fileId = fileName;
@@ -56,17 +80,28 @@ const gridfsHandler = async (req, reply) => {
56
80
  if (fileDocument?.meta?.isPrivate) {
57
81
  const expiry = parseInt(expiryTimestamp, 10);
58
82
  if (expiry <= Date.now()) {
83
+ logger.error('URL Expired', { fileId, expiry });
59
84
  reply.status(403);
60
- return reply.send('Access restricted: Expired.');
85
+ return reply.send({
86
+ success: false,
87
+ message: 'Access restricted: URL expired.',
88
+ name: 'URL_EXPIRED',
89
+ });
61
90
  }
62
91
  const fileUploadAdapter = getFileAdapter();
63
92
  const signedUrl = await fileUploadAdapter.createDownloadURL(fileDocument, expiry);
64
- if (new URL(signedUrl, 'file://').searchParams.get('s') !== signature) {
93
+ if (!signedUrl || new URL(signedUrl, 'file://').searchParams.get('s') !== signature) {
65
94
  reply.status(403);
66
- return reply.send('Access restricted: Invalid signature.');
95
+ logger.error('Invalid signature', { fileId, expiry });
96
+ return reply.send({
97
+ success: false,
98
+ message: 'Access restricted: Invalid signature.',
99
+ name: 'INVALID_SIGNATURE',
100
+ });
67
101
  }
68
102
  }
69
103
  else if (!fileDocument) {
104
+ logger.error('File not found', { fileId });
70
105
  reply.status(404);
71
106
  return reply.send();
72
107
  }
@@ -84,15 +119,14 @@ const gridfsHandler = async (req, reply) => {
84
119
  return reply.send();
85
120
  }
86
121
  catch (e) {
122
+ logger.error(e);
87
123
  if (e.code === 'ENOENT') {
88
- logger.warn(e);
89
124
  reply.status(404);
90
- return reply.send({ name: e.name, code: e.code, message: e.message });
125
+ return reply.send();
91
126
  }
92
127
  else {
93
- logger.warn(e);
94
128
  reply.status(504);
95
- return reply.send({ name: e.name, code: e.code, message: e.message });
129
+ return reply.send({ success: false, name: e.name, code: e.code, message: e.message });
96
130
  }
97
131
  }
98
132
  };
@@ -1 +1 @@
1
- {"version":3,"file":"handler-fastify.js","sourceRoot":"","sources":["../../../src/files/gridfs/handler-fastify.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handler-fastify.js","sourceRoot":"","sources":["../../../src/files/gridfs/handler-fastify.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ export declare const configureGridFSFileUploadModule: ({ db }: {
3
3
  db: any;
4
4
  }) => {
5
5
  createWriteStream: (directoryName: any, fileId: any, fileName: any, uploadOptions: mongodb.GridFSBucketWriteStream["options"]) => Promise<mongodb.GridFSBucketWriteStream>;
6
- getFileInfo: (directoryName: any, fileId: any) => Promise<mongodb.GridFSFile>;
6
+ getFileInfo: (directoryName: any, fileId: any) => Promise<mongodb.GridFSFile | null>;
7
7
  createReadStream: (directoryName: any, fileId: any) => Promise<mongodb.GridFSBucketReadStream>;
8
8
  removeFileFromBucket: (directoryName: any, fileId: any) => Promise<void>;
9
9
  };
@@ -13,7 +13,7 @@ declare const _default: {
13
13
  db: any;
14
14
  }) => {
15
15
  createWriteStream: (directoryName: any, fileId: any, fileName: any, uploadOptions: mongodb.GridFSBucketWriteStream["options"]) => Promise<mongodb.GridFSBucketWriteStream>;
16
- getFileInfo: (directoryName: any, fileId: any) => Promise<mongodb.GridFSFile>;
16
+ getFileInfo: (directoryName: any, fileId: any) => Promise<mongodb.GridFSFile | null>;
17
17
  createReadStream: (directoryName: any, fileId: any) => Promise<mongodb.GridFSBucketReadStream>;
18
18
  removeFileFromBucket: (directoryName: any, fileId: any) => Promise<void>;
19
19
  };
@@ -1 +1 @@
1
- {"version":3,"file":"handler-express.d.ts","sourceRoot":"","sources":["../../../src/files/minio/handler-express.ts"],"names":[],"mappings":"AAWA,QAAA,MAAM,YAAY,GAAU,QAAG,EAAE,QAAG,kBAwBnC,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"handler-express.d.ts","sourceRoot":"","sources":["../../../src/files/minio/handler-express.ts"],"names":[],"mappings":"AAWA,QAAA,MAAM,YAAY,GAAU,QAAG,EAAE,QAAG,kBAqBnC,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { createLogger } from '@unchainedshop/logger';
2
- const logger = createLogger('unchained:plugins:minio');
2
+ const logger = createLogger('unchained:minio');
3
3
  const { MINIO_WEBHOOK_AUTH_TOKEN } = process.env;
4
4
  const isAuthorized = ({ authorization = '' }) => {
5
5
  const [type, token] = authorization.split(' ');
@@ -17,18 +17,15 @@ const minioHandler = async (req, res) => {
17
17
  const [fileId] = object.key.split('.');
18
18
  const { services } = req.unchainedContext;
19
19
  await services.files.linkFile({ fileId, type, size });
20
- res.writeHead(200);
21
- res.end();
20
+ res.status(200).end();
22
21
  return;
23
22
  }
24
23
  }
25
- res.writeHead(404);
26
- res.end();
24
+ res.status(404).end();
27
25
  }
28
26
  catch (e) {
29
27
  logger.error(e);
30
- res.writeHead(503);
31
- res.end(JSON.stringify({ name: e.name, code: e.code, message: e.message }));
28
+ res.status(503).send({ name: e.name, code: e.code, message: e.message });
32
29
  }
33
30
  };
34
31
  export default minioHandler;
@@ -1 +1 @@
1
- {"version":3,"file":"handler-express.js","sourceRoot":"","sources":["../../../src/files/minio/handler-express.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,MAAM,MAAM,GAAG,YAAY,CAAC,yBAAyB,CAAC,CAAC;AAEvD,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,MAAM,YAAY,GAAG,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;IACtC,IAAI,CAAC;QACH,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;YACtC,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC;YACxB,MAAM,EAAE,OAAO,GAAG,EAAE,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;YAC7C,IAAI,SAAS,KAAK,sBAAsB,IAAI,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;gBAClE,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC;gBACzB,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;gBACtB,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;gBAC3C,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACvC,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,gBAAgB,CAAC;gBAC1C,MAAM,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;gBACtD,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBACnB,GAAG,CAAC,GAAG,EAAE,CAAC;gBACV,OAAO;YACT,CAAC;QACH,CAAC;QACD,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACnB,GAAG,CAAC,GAAG,EAAE,CAAC;IACZ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAChB,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACnB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC9E,CAAC;AACH,CAAC,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"handler-express.js","sourceRoot":"","sources":["../../../src/files/minio/handler-express.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,MAAM,MAAM,GAAG,YAAY,CAAC,iBAAiB,CAAC,CAAC;AAE/C,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,MAAM,YAAY,GAAG,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;IACtC,IAAI,CAAC;QACH,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;YACtC,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC;YACxB,MAAM,EAAE,OAAO,GAAG,EAAE,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;YAC7C,IAAI,SAAS,KAAK,sBAAsB,IAAI,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;gBAClE,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC;gBACzB,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;gBACtB,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;gBAC3C,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACvC,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,gBAAgB,CAAC;gBAC1C,MAAM,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;gBACtD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gBACtB,OAAO;YACT,CAAC;QACH,CAAC;QACD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IACxB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAChB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IAC3E,CAAC;AACH,CAAC,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { createLogger } from '@unchainedshop/logger';
2
- const logger = createLogger('unchained:plugins:minio');
2
+ const logger = createLogger('unchained:minio');
3
3
  const { MINIO_WEBHOOK_AUTH_TOKEN } = process.env;
4
4
  const isAuthorized = ({ authorization = '' }) => {
5
5
  const [type, token] = authorization.split(' ');
@@ -27,7 +27,7 @@ const minioHandler = async (req, res) => {
27
27
  catch (e) {
28
28
  logger.error(e);
29
29
  res.status(503);
30
- return res.send(JSON.stringify({ name: e.name, code: e.code, message: e.message }));
30
+ return res.send({ name: e.name, code: e.code, message: e.message });
31
31
  }
32
32
  };
33
33
  export default minioHandler;
@@ -1 +1 @@
1
- {"version":3,"file":"handler-fastify.js","sourceRoot":"","sources":["../../../src/files/minio/handler-fastify.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGrD,MAAM,MAAM,GAAG,YAAY,CAAC,yBAAyB,CAAC,CAAC;AAEvD,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,MAAM,YAAY,GAAuB,KAAK,EAC5C,GAEC,EACD,GAAG,EACH,EAAE;IACF,IAAI,CAAC;QACH,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;YACb,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC;YACxB,MAAM,EAAE,OAAO,GAAG,EAAE,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,IAA2B,CAAC;YACpE,IAAI,SAAS,KAAK,sBAAsB,IAAI,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;gBAClE,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC;gBACzB,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;gBACtB,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;gBAC3C,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACvC,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,gBAAgB,CAAC;gBAC1C,MAAM,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;gBACtD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAChB,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;YACpB,CAAC;QACH,CAAC;QACD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAChB,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;IACpB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAChB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAChB,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACtF,CAAC;AACH,CAAC,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"handler-fastify.js","sourceRoot":"","sources":["../../../src/files/minio/handler-fastify.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGrD,MAAM,MAAM,GAAG,YAAY,CAAC,iBAAiB,CAAC,CAAC;AAE/C,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,MAAM,YAAY,GAAuB,KAAK,EAC5C,GAEC,EACD,GAAG,EACH,EAAE;IACF,IAAI,CAAC;QACH,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;YACb,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC;YACxB,MAAM,EAAE,OAAO,GAAG,EAAE,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,IAA2B,CAAC;YACpE,IAAI,SAAS,KAAK,sBAAsB,IAAI,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;gBAClE,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC;gBACzB,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;gBACtB,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;gBAC3C,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACvC,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,gBAAgB,CAAC;gBAC1C,MAAM,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;gBACtD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAChB,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;YACpB,CAAC;QACH,CAAC;QACD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAChB,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;IACpB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAChB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAChB,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IACtE,CAAC;AACH,CAAC,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { IFileAdapter } from '@unchainedshop/file-upload';
2
2
  import { Client } from 'minio';
3
- export declare function connectToMinio(): Promise<Client>;
3
+ export declare function connectToMinio(): Promise<Client | null>;
4
4
  export declare const MinioAdapter: IFileAdapter;
5
5
  export default MinioAdapter;
6
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/files/minio/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAKL,YAAY,EACb,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAqB/B,wBAAsB,cAAc,oBAsCnC;AA6BD,eAAO,MAAM,YAAY,EAAE,YAgI1B,CAAC;AAIF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/files/minio/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAKL,YAAY,EACb,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAqB/B,wBAAsB,cAAc,2BAsCnC;AA6BD,eAAO,MAAM,YAAY,EAAE,YAgI1B,CAAC;AAIF,eAAe,YAAY,CAAC"}
@@ -5,9 +5,9 @@ import { Client } from 'minio';
5
5
  import { AssumeRoleProvider } from 'minio/dist/esm/AssumeRoleProvider.mjs';
6
6
  import { expiryOffsetInMs } from '@unchainedshop/file-upload/lib/put-expiration.js';
7
7
  import { createLogger } from '@unchainedshop/logger';
8
- const logger = createLogger('unchained:plugins:minio');
8
+ const logger = createLogger('unchained:minio');
9
9
  const { MINIO_ACCESS_KEY, MINIO_REGION, MINIO_STS_ENDPOINT, MINIO_SECRET_KEY, MINIO_ENDPOINT, MINIO_BUCKET_NAME, MINIO_UPLOAD_PREFIX, NODE_ENV, AMAZON_S3_SESSION_TOKEN, } = process.env;
10
- let client;
10
+ let client = null;
11
11
  export async function connectToMinio() {
12
12
  if (!MINIO_ENDPOINT || !MINIO_BUCKET_NAME) {
13
13
  logger.error('Please configure Minio/S3 by providing MINIO_ENDPOINT & MINIO_BUCKET_NAME to use upload features');
@@ -53,7 +53,7 @@ const generateMinioUrl = (directoryName, hashedFilename) => {
53
53
  return `${MINIO_ENDPOINT}/${MINIO_BUCKET_NAME}/${generateMinioPath(directoryName, hashedFilename)}`;
54
54
  };
55
55
  connectToMinio().then(function setClient(c) {
56
- client = c;
56
+ client = c || client;
57
57
  });
58
58
  const getObjectStats = async (fileName) => {
59
59
  if (!client)
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/files/minio/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/files/minio/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { IFileAdapter } from '@unchainedshop/file-upload';
2
+ import { Client } from 'minio';
3
+ export declare function connectToMinio(): Promise<Client>;
4
+ export declare const MinioAdapter: IFileAdapter;
5
+ export default MinioAdapter;
6
+ //# sourceMappingURL=minio-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"minio-adapter.d.ts","sourceRoot":"","sources":["../../../src/files/minio/minio-adapter.ts"],"names":[],"mappings":"AAKA,OAAO,EAKL,YAAY,EACb,MAAM,4BAA4B,CAAC;AAIpC,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAkB/B,wBAAsB,cAAc,oBAyCnC;AA+CD,eAAO,MAAM,YAAY,EAAE,YA0H1B,CAAC;AAIF,eAAe,YAAY,CAAC"}
@@ -0,0 +1,181 @@
1
+ import https from 'https';
2
+ import http from 'http';
3
+ import { Readable } from 'stream';
4
+ import { URL } from 'url';
5
+ import { FileAdapter, FileDirector, buildHashedFilename, resolveExpirationDate, } from '@unchainedshop/file-upload';
6
+ import { log, LogLevel } from '@unchainedshop/logger';
7
+ import mimeType from 'mime-types';
8
+ import { Client } from 'minio';
9
+ import { AssumeRoleProvider } from 'minio/dist/esm/AssumeRoleProvider.mjs';
10
+ import { expiryOffsetInMs } from '@unchainedshop/file-upload/put-expiration.js';
11
+ const { MINIO_ACCESS_KEY, MINIO_REGION, MINIO_STS_ENDPOINT, MINIO_SECRET_KEY, MINIO_ENDPOINT, MINIO_BUCKET_NAME, MINIO_UPLOAD_PREFIX, NODE_ENV, AMAZON_S3_SESSION_TOKEN, } = process.env;
12
+ let client;
13
+ export async function connectToMinio() {
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 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
+ // eslint-disable-next-line
30
+ // @ts-ignore
31
+ if (NODE_ENV === 'development')
32
+ minioClient?.traceOn(process.stdout);
33
+ if (MINIO_STS_ENDPOINT) {
34
+ const ap = new AssumeRoleProvider({
35
+ stsEndpoint: MINIO_STS_ENDPOINT,
36
+ accessKey: MINIO_ACCESS_KEY,
37
+ secretKey: MINIO_SECRET_KEY,
38
+ });
39
+ // eslint-disable-next-line
40
+ // @ts-ignore
41
+ await minioClient.setCredentialsProvider(ap);
42
+ }
43
+ return minioClient;
44
+ }
45
+ catch (error) {
46
+ log(`Exception while creating Minio client: ${error.message}`, {
47
+ level: LogLevel.Error,
48
+ });
49
+ }
50
+ return null;
51
+ }
52
+ const generateMinioPath = (directoryName, fileName) => {
53
+ const prefix = MINIO_UPLOAD_PREFIX || '';
54
+ return [prefix, directoryName, fileName].filter(Boolean).join('/');
55
+ };
56
+ const generateMinioUrl = (directoryName, hashedFilename) => {
57
+ return `${MINIO_ENDPOINT}/${MINIO_BUCKET_NAME}/${generateMinioPath(directoryName, hashedFilename)}`;
58
+ };
59
+ connectToMinio().then(function setClient(c) {
60
+ client = c;
61
+ });
62
+ const createHttpDownloadStream = async (fileUrl, headers) => {
63
+ const { href, protocol } = new URL(fileUrl);
64
+ return new Promise((resolve, reject) => {
65
+ try {
66
+ if (protocol === 'http:') {
67
+ http.get(href, { headers }, resolve);
68
+ }
69
+ else {
70
+ https.get(href, { headers }, resolve);
71
+ }
72
+ }
73
+ catch (e) {
74
+ reject(e);
75
+ }
76
+ });
77
+ };
78
+ const getObjectStats = async (fileName) => {
79
+ if (!client)
80
+ throw new Error('Minio not connected, check env variables');
81
+ return client.statObject(MINIO_BUCKET_NAME, fileName);
82
+ };
83
+ const bufferToStream = (buffer) => {
84
+ const stream = new Readable();
85
+ stream.push(buffer);
86
+ stream.push(null);
87
+ return stream;
88
+ };
89
+ export const MinioAdapter = {
90
+ key: 'shop.unchained.file-upload-plugin.minio',
91
+ label: 'Uploads files into an S3 bucket using minio',
92
+ version: '1.1.0',
93
+ ...FileAdapter,
94
+ async createSignedURL(directoryName, fileName) {
95
+ if (!client)
96
+ throw new Error('Minio not connected, check env variables');
97
+ const expiryDate = resolveExpirationDate();
98
+ const _id = buildHashedFilename(directoryName, fileName, expiryDate);
99
+ const url = await client.presignedPutObject(MINIO_BUCKET_NAME, generateMinioPath(directoryName, _id), expiryOffsetInMs() / 1000);
100
+ return {
101
+ _id,
102
+ directoryName,
103
+ expiryDate,
104
+ fileName,
105
+ type: mimeType.lookup(fileName),
106
+ putURL: url,
107
+ url: generateMinioUrl(directoryName, _id),
108
+ };
109
+ },
110
+ async removeFiles(files) {
111
+ if (!client)
112
+ throw new Error('Minio not connected, check env variables');
113
+ const fileIds = files.map(({ path, _id }) => {
114
+ return `${path}/${_id}`;
115
+ });
116
+ await client.removeObjects(MINIO_BUCKET_NAME, fileIds);
117
+ },
118
+ async uploadFileFromStream(directoryName, rawFile) {
119
+ if (!client)
120
+ throw new Error('Minio not connected, check env variables');
121
+ let stream;
122
+ let fileName;
123
+ if (rawFile instanceof Promise) {
124
+ const { filename: fname, createReadStream } = await rawFile;
125
+ fileName = fname;
126
+ stream = createReadStream();
127
+ }
128
+ else {
129
+ fileName = rawFile.filename;
130
+ stream = bufferToStream(Buffer.from(rawFile.buffer, 'base64'));
131
+ }
132
+ const _id = buildHashedFilename(directoryName, fileName, new Date());
133
+ const type = mimeType.lookup(fileName) || (await Promise.resolve(rawFile)).mimetype;
134
+ const metaData = {
135
+ 'Content-Type': type,
136
+ };
137
+ await client.putObject(MINIO_BUCKET_NAME, generateMinioPath(directoryName, _id), stream, undefined, metaData);
138
+ const { size } = await getObjectStats(generateMinioPath(directoryName, _id));
139
+ return {
140
+ _id,
141
+ directoryName,
142
+ expiryDate: null,
143
+ fileName,
144
+ size,
145
+ type,
146
+ url: generateMinioUrl(directoryName, _id),
147
+ };
148
+ },
149
+ async uploadFileFromURL(directoryName, { fileLink, fileName: fname, fileId, headers }) {
150
+ if (!client)
151
+ throw new Error('Minio not connected, check env variables');
152
+ const { href } = new URL(fileLink);
153
+ const fileName = fname || href.split('/').pop();
154
+ const hashedFilename = buildHashedFilename(directoryName, fileName, new Date());
155
+ const stream = await createHttpDownloadStream(fileLink, headers);
156
+ const type = mimeType.lookup(fileName) || stream.headers['content-type'];
157
+ const metaData = {
158
+ 'Content-Type': type,
159
+ };
160
+ await client.putObject(MINIO_BUCKET_NAME, generateMinioPath(directoryName, hashedFilename), stream, undefined, metaData);
161
+ const { size } = await getObjectStats(generateMinioPath(directoryName, hashedFilename));
162
+ return {
163
+ _id: fileId || hashedFilename,
164
+ directoryName,
165
+ expiryDate: null,
166
+ fileName,
167
+ size,
168
+ type,
169
+ url: generateMinioUrl(directoryName, hashedFilename),
170
+ };
171
+ },
172
+ async createDownloadStream(file) {
173
+ if (!client)
174
+ throw new Error('Minio not connected, check env variables');
175
+ const stream = await client.getObject(MINIO_BUCKET_NAME, generateMinioPath(file.path, file._id));
176
+ return stream;
177
+ },
178
+ };
179
+ FileDirector.registerAdapter(MinioAdapter);
180
+ export default MinioAdapter;
181
+ //# sourceMappingURL=minio-adapter.js.map