@unchainedshop/plugins 4.0.0-rc.9 → 4.0.0

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/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.d.ts.map +1 -1
  13. package/lib/files/gridfs/adapter.js +11 -8
  14. package/lib/files/gridfs/adapter.js.map +1 -1
  15. package/lib/files/gridfs/gridfs-adapter.d.ts +3 -0
  16. package/lib/files/gridfs/gridfs-adapter.d.ts.map +1 -0
  17. package/lib/files/gridfs/gridfs-adapter.js +97 -0
  18. package/lib/files/gridfs/gridfs-adapter.js.map +1 -0
  19. package/lib/files/gridfs/gridfs-webhook.d.ts +11 -0
  20. package/lib/files/gridfs/gridfs-webhook.d.ts.map +1 -0
  21. package/lib/files/gridfs/gridfs-webhook.js +84 -0
  22. package/lib/files/gridfs/gridfs-webhook.js.map +1 -0
  23. package/lib/files/gridfs/handler-express.d.ts.map +1 -1
  24. package/lib/files/gridfs/handler-express.js +21 -25
  25. package/lib/files/gridfs/handler-express.js.map +1 -1
  26. package/lib/files/gridfs/handler-fastify.d.ts.map +1 -1
  27. package/lib/files/gridfs/handler-fastify.js +50 -13
  28. package/lib/files/gridfs/handler-fastify.js.map +1 -1
  29. package/lib/files/gridfs/module.d.ts +2 -2
  30. package/lib/files/minio/handler-express.d.ts.map +1 -1
  31. package/lib/files/minio/handler-express.js +4 -7
  32. package/lib/files/minio/handler-express.js.map +1 -1
  33. package/lib/files/minio/handler-fastify.js +2 -2
  34. package/lib/files/minio/handler-fastify.js.map +1 -1
  35. package/lib/files/minio/index.d.ts +1 -1
  36. package/lib/files/minio/index.d.ts.map +1 -1
  37. package/lib/files/minio/index.js +7 -7
  38. package/lib/files/minio/index.js.map +1 -1
  39. package/lib/files/minio/minio-adapter.d.ts +6 -0
  40. package/lib/files/minio/minio-adapter.d.ts.map +1 -0
  41. package/lib/files/minio/minio-adapter.js +181 -0
  42. package/lib/files/minio/minio-adapter.js.map +1 -0
  43. package/lib/files/minio/minio-webhook.d.ts +2 -0
  44. package/lib/files/minio/minio-webhook.d.ts.map +1 -0
  45. package/lib/files/minio/minio-webhook.js +33 -0
  46. package/lib/files/minio/minio-webhook.js.map +1 -0
  47. package/lib/filters/local-search.js +1 -1
  48. package/lib/filters/local-search.js.map +1 -1
  49. package/lib/filters/strict-equal.js +0 -18
  50. package/lib/filters/strict-equal.js.map +1 -1
  51. package/lib/payment/apple-iap/adapter.js +12 -10
  52. package/lib/payment/apple-iap/adapter.js.map +1 -1
  53. package/lib/payment/apple-iap/db/AppleTransactionsCollection.d.ts +1 -1
  54. package/lib/payment/apple-iap/db/AppleTransactionsCollection.d.ts.map +1 -1
  55. package/lib/payment/apple-iap/handler-express.d.ts.map +1 -1
  56. package/lib/payment/apple-iap/handler-express.js +14 -10
  57. package/lib/payment/apple-iap/handler-express.js.map +1 -1
  58. package/lib/payment/apple-iap/handler-fastify.d.ts.map +1 -1
  59. package/lib/payment/apple-iap/handler-fastify.js +15 -8
  60. package/lib/payment/apple-iap/handler-fastify.js.map +1 -1
  61. package/lib/payment/apple-iap/module/configureAppleTransactionsModule.d.ts +9 -0
  62. package/lib/payment/apple-iap/module/configureAppleTransactionsModule.d.ts.map +1 -0
  63. package/lib/payment/apple-iap/module/configureAppleTransactionsModule.js +17 -0
  64. package/lib/payment/apple-iap/module/configureAppleTransactionsModule.js.map +1 -0
  65. package/lib/payment/apple-iap/module.d.ts +4 -4
  66. package/lib/payment/apple-iap/module.d.ts.map +1 -1
  67. package/lib/payment/apple-iap/module.js +4 -2
  68. package/lib/payment/apple-iap/module.js.map +1 -1
  69. package/lib/payment/braintree.js +3 -1
  70. package/lib/payment/braintree.js.map +1 -1
  71. package/lib/payment/cryptopay/db/CryptopayTransactions.d.ts +1 -1
  72. package/lib/payment/cryptopay/db/CryptopayTransactions.d.ts.map +1 -1
  73. package/lib/payment/cryptopay/derive-btc-address.d.ts.map +1 -1
  74. package/lib/payment/cryptopay/derive-btc-address.js +2 -3
  75. package/lib/payment/cryptopay/derive-btc-address.js.map +1 -1
  76. package/lib/payment/cryptopay/derive-eth-address.d.ts.map +1 -1
  77. package/lib/payment/cryptopay/derive-eth-address.js +5 -3
  78. package/lib/payment/cryptopay/derive-eth-address.js.map +1 -1
  79. package/lib/payment/cryptopay/handle-webhook.js +2 -2
  80. package/lib/payment/cryptopay/handle-webhook.js.map +1 -1
  81. package/lib/payment/cryptopay/handler-express.d.ts.map +1 -1
  82. package/lib/payment/cryptopay/handler-express.js +4 -7
  83. package/lib/payment/cryptopay/handler-express.js.map +1 -1
  84. package/lib/payment/cryptopay/handler-fastify.js +1 -1
  85. package/lib/payment/cryptopay/handler-fastify.js.map +1 -1
  86. package/lib/payment/cryptopay/middleware.d.ts +2 -0
  87. package/lib/payment/cryptopay/middleware.d.ts.map +1 -0
  88. package/lib/payment/cryptopay/middleware.js +75 -0
  89. package/lib/payment/cryptopay/middleware.js.map +1 -0
  90. package/lib/payment/cryptopay/module/configureCryptopayModule.d.ts +25 -0
  91. package/lib/payment/cryptopay/module/configureCryptopayModule.d.ts.map +1 -0
  92. package/lib/payment/cryptopay/module/configureCryptopayModule.js +75 -0
  93. package/lib/payment/cryptopay/module/configureCryptopayModule.js.map +1 -0
  94. package/lib/payment/cryptopay/module.d.ts +2 -2
  95. package/lib/payment/cryptopay/module.d.ts.map +1 -1
  96. package/lib/payment/cryptopay/module.js +4 -4
  97. package/lib/payment/cryptopay/module.js.map +1 -1
  98. package/lib/payment/cryptopay/plugin.d.ts.map +1 -1
  99. package/lib/payment/cryptopay/plugin.js +18 -4
  100. package/lib/payment/cryptopay/plugin.js.map +1 -1
  101. package/lib/payment/datatrans-v2/handler-express.d.ts.map +1 -1
  102. package/lib/payment/datatrans-v2/handler-express.js +13 -11
  103. package/lib/payment/datatrans-v2/handler-express.js.map +1 -1
  104. package/lib/payment/datatrans-v2/handler-fastify.d.ts.map +1 -1
  105. package/lib/payment/datatrans-v2/handler-fastify.js +11 -5
  106. package/lib/payment/datatrans-v2/handler-fastify.js.map +1 -1
  107. package/lib/payment/datatrans-v2/index.js +63 -37
  108. package/lib/payment/datatrans-v2/index.js.map +1 -1
  109. package/lib/payment/datatrans-v2/middleware.d.ts +2 -0
  110. package/lib/payment/datatrans-v2/middleware.d.ts.map +1 -0
  111. package/lib/payment/datatrans-v2/middleware.js +68 -0
  112. package/lib/payment/datatrans-v2/middleware.js.map +1 -0
  113. package/lib/payment/datatrans-v2/parseRegistrationData.d.ts +1 -1
  114. package/lib/payment/datatrans-v2/parseRegistrationData.d.ts.map +1 -1
  115. package/lib/payment/paypal-checkout.js +4 -2
  116. package/lib/payment/paypal-checkout.js.map +1 -1
  117. package/lib/payment/payrexx/api/index.d.ts +1 -1
  118. package/lib/payment/payrexx/api/index.d.ts.map +1 -1
  119. package/lib/payment/payrexx/api/makeFetcher.d.ts +1 -1
  120. package/lib/payment/payrexx/api/makeFetcher.d.ts.map +1 -1
  121. package/lib/payment/payrexx/api/makeFetcher.js +1 -1
  122. package/lib/payment/payrexx/api/makeFetcher.js.map +1 -1
  123. package/lib/payment/payrexx/handler-express.d.ts.map +1 -1
  124. package/lib/payment/payrexx/handler-express.js +15 -15
  125. package/lib/payment/payrexx/handler-express.js.map +1 -1
  126. package/lib/payment/payrexx/handler-fastify.js +23 -15
  127. package/lib/payment/payrexx/handler-fastify.js.map +1 -1
  128. package/lib/payment/payrexx/index.js +21 -15
  129. package/lib/payment/payrexx/index.js.map +1 -1
  130. package/lib/payment/payrexx/middleware.d.ts +2 -0
  131. package/lib/payment/payrexx/middleware.d.ts.map +1 -0
  132. package/lib/payment/payrexx/middleware.js +86 -0
  133. package/lib/payment/payrexx/middleware.js.map +1 -0
  134. package/lib/payment/postfinance-checkout/api-client.d.ts.map +1 -1
  135. package/lib/payment/postfinance-checkout/api-client.js +7 -7
  136. package/lib/payment/postfinance-checkout/api-client.js.map +1 -1
  137. package/lib/payment/postfinance-checkout/handler-express.js +7 -8
  138. package/lib/payment/postfinance-checkout/handler-express.js.map +1 -1
  139. package/lib/payment/postfinance-checkout/handler-fastify.d.ts.map +1 -1
  140. package/lib/payment/postfinance-checkout/handler-fastify.js +6 -4
  141. package/lib/payment/postfinance-checkout/handler-fastify.js.map +1 -1
  142. package/lib/payment/postfinance-checkout/index.d.ts.map +1 -1
  143. package/lib/payment/postfinance-checkout/index.js +20 -7
  144. package/lib/payment/postfinance-checkout/index.js.map +1 -1
  145. package/lib/payment/postfinance-checkout/middleware.d.ts +2 -0
  146. package/lib/payment/postfinance-checkout/middleware.d.ts.map +1 -0
  147. package/lib/payment/postfinance-checkout/middleware.js +38 -0
  148. package/lib/payment/postfinance-checkout/middleware.js.map +1 -0
  149. package/lib/payment/saferpay/adapter.d.ts.map +1 -1
  150. package/lib/payment/saferpay/adapter.js +9 -0
  151. package/lib/payment/saferpay/adapter.js.map +1 -1
  152. package/lib/payment/saferpay/handler-express.d.ts.map +1 -1
  153. package/lib/payment/saferpay/handler-express.js +10 -8
  154. package/lib/payment/saferpay/handler-express.js.map +1 -1
  155. package/lib/payment/saferpay/handler-fastify.d.ts.map +1 -1
  156. package/lib/payment/saferpay/handler-fastify.js +11 -5
  157. package/lib/payment/saferpay/handler-fastify.js.map +1 -1
  158. package/lib/payment/saferpay/middleware.d.ts +2 -0
  159. package/lib/payment/saferpay/middleware.d.ts.map +1 -0
  160. package/lib/payment/saferpay/middleware.js +57 -0
  161. package/lib/payment/saferpay/middleware.js.map +1 -0
  162. package/lib/payment/saferpay/module/configureSaferpayTransactionsModule.d.ts +10 -0
  163. package/lib/payment/saferpay/module/configureSaferpayTransactionsModule.d.ts.map +1 -0
  164. package/lib/payment/saferpay/module/configureSaferpayTransactionsModule.js +24 -0
  165. package/lib/payment/saferpay/module/configureSaferpayTransactionsModule.js.map +1 -0
  166. package/lib/payment/saferpay/module.d.ts +2 -2
  167. package/lib/payment/stripe/handler-express.js +25 -17
  168. package/lib/payment/stripe/handler-express.js.map +1 -1
  169. package/lib/payment/stripe/handler-fastify.d.ts.map +1 -1
  170. package/lib/payment/stripe/handler-fastify.js +33 -12
  171. package/lib/payment/stripe/handler-fastify.js.map +1 -1
  172. package/lib/payment/stripe/index.js +21 -15
  173. package/lib/payment/stripe/index.js.map +1 -1
  174. package/lib/payment/stripe/middleware.d.ts +6 -0
  175. package/lib/payment/stripe/middleware.d.ts.map +1 -0
  176. package/lib/payment/stripe/middleware.js +114 -0
  177. package/lib/payment/stripe/middleware.js.map +1 -0
  178. package/lib/payment/stripe/stripe.d.ts +2 -2
  179. package/lib/payment/stripe/stripe.d.ts.map +1 -1
  180. package/lib/payment/stripe/stripe.js +14 -11
  181. package/lib/payment/stripe/stripe.js.map +1 -1
  182. package/lib/plugins-index.d.ts +48 -0
  183. package/lib/plugins-index.d.ts.map +1 -0
  184. package/lib/plugins-index.js +107 -0
  185. package/lib/plugins-index.js.map +1 -0
  186. package/lib/presets/all.d.ts +5 -5
  187. package/lib/presets/all.d.ts.map +1 -1
  188. package/lib/pricing/delivery-swiss-tax.d.ts.map +1 -1
  189. package/lib/pricing/delivery-swiss-tax.js +13 -20
  190. package/lib/pricing/delivery-swiss-tax.js.map +1 -1
  191. package/lib/pricing/order-discount.d.ts.map +1 -1
  192. package/lib/pricing/order-discount.js +5 -3
  193. package/lib/pricing/order-discount.js.map +1 -1
  194. package/lib/pricing/order-round.d.ts.map +1 -1
  195. package/lib/pricing/order-round.js +4 -3
  196. package/lib/pricing/order-round.js.map +1 -1
  197. package/lib/pricing/product-catalog-price-options.d.ts +2 -0
  198. package/lib/pricing/product-catalog-price-options.d.ts.map +1 -0
  199. package/lib/pricing/product-catalog-price-options.js +52 -0
  200. package/lib/pricing/product-catalog-price-options.js.map +1 -0
  201. package/lib/pricing/product-catalog-price.d.ts.map +1 -1
  202. package/lib/pricing/product-catalog-price.js +26 -2
  203. package/lib/pricing/product-catalog-price.js.map +1 -1
  204. package/lib/pricing/product-price-rateconversion.js +3 -3
  205. package/lib/pricing/product-price-rateconversion.js.map +1 -1
  206. package/lib/pricing/product-swiss-tax.d.ts +1 -5
  207. package/lib/pricing/product-swiss-tax.d.ts.map +1 -1
  208. package/lib/pricing/product-swiss-tax.js +26 -22
  209. package/lib/pricing/product-swiss-tax.js.map +1 -1
  210. package/lib/pricing/tax/ch.d.ts +7 -2
  211. package/lib/pricing/tax/ch.d.ts.map +1 -1
  212. package/lib/pricing/tax/ch.js +16 -1
  213. package/lib/pricing/tax/ch.js.map +1 -1
  214. package/lib/pricing/utils/isDeliveryAddressInCountry.d.ts +7 -0
  215. package/lib/pricing/utils/isDeliveryAddressInCountry.d.ts.map +1 -0
  216. package/lib/pricing/utils/isDeliveryAddressInCountry.js +13 -0
  217. package/lib/pricing/utils/isDeliveryAddressInCountry.js.map +1 -0
  218. package/lib/warehousing/eth-minter.js +23 -11
  219. package/lib/warehousing/eth-minter.js.map +1 -1
  220. package/lib/worker/bulk-import.d.ts +1 -1
  221. package/lib/worker/bulk-import.d.ts.map +1 -1
  222. package/lib/worker/bulk-import.js +11 -33
  223. package/lib/worker/bulk-import.js.map +1 -1
  224. package/lib/worker/email.d.ts.map +1 -1
  225. package/lib/worker/email.js +25 -7
  226. package/lib/worker/email.js.map +1 -1
  227. package/lib/worker/enrollment-order-generator.d.ts.map +1 -1
  228. package/lib/worker/enrollment-order-generator.js +7 -49
  229. package/lib/worker/enrollment-order-generator.js.map +1 -1
  230. package/lib/worker/error-notifications.js +1 -1
  231. package/lib/worker/error-notifications.js.map +1 -1
  232. package/lib/worker/export-token.d.ts.map +1 -1
  233. package/lib/worker/export-token.js +0 -1
  234. package/lib/worker/export-token.js.map +1 -1
  235. package/lib/worker/message.d.ts +1 -1
  236. package/lib/worker/message.d.ts.map +1 -1
  237. package/lib/worker/message.js +4 -2
  238. package/lib/worker/message.js.map +1 -1
  239. package/lib/worker/sms.js +17 -17
  240. package/lib/worker/sms.js.map +1 -1
  241. package/lib/worker/twilio.js +4 -0
  242. package/lib/worker/twilio.js.map +1 -1
  243. package/package.json +22 -33
  244. package/src/delivery/send-message.ts +1 -1
  245. package/src/enrollments/licensed.ts +15 -2
  246. package/src/files/gridfs/adapter.ts +12 -7
  247. package/src/files/gridfs/handler-express.ts +23 -25
  248. package/src/files/gridfs/handler-fastify.ts +53 -14
  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 +16 -16
  252. package/src/filters/local-search.ts +1 -1
  253. package/src/filters/strict-equal.ts +0 -21
  254. package/src/payment/apple-iap/adapter.ts +12 -14
  255. package/src/payment/apple-iap/db/AppleTransactionsCollection.ts +1 -1
  256. package/src/payment/apple-iap/handler-express.ts +17 -11
  257. package/src/payment/apple-iap/handler-fastify.ts +19 -9
  258. package/src/payment/apple-iap/module.ts +9 -4
  259. package/src/payment/braintree.ts +4 -1
  260. package/src/payment/cryptopay/db/CryptopayTransactions.ts +1 -1
  261. package/src/payment/cryptopay/derive-btc-address.ts +1 -3
  262. package/src/payment/cryptopay/derive-eth-address.ts +5 -3
  263. package/src/payment/cryptopay/handle-webhook.ts +6 -6
  264. package/src/payment/cryptopay/handler-express.ts +4 -7
  265. package/src/payment/cryptopay/handler-fastify.ts +1 -1
  266. package/src/payment/cryptopay/module.ts +8 -5
  267. package/src/payment/cryptopay/plugin.ts +21 -4
  268. package/src/payment/datatrans-v2/handler-express.ts +17 -12
  269. package/src/payment/datatrans-v2/handler-fastify.ts +15 -6
  270. package/src/payment/datatrans-v2/index.ts +82 -50
  271. package/src/payment/paypal-checkout.ts +4 -2
  272. package/src/payment/payrexx/api/index.ts +1 -1
  273. package/src/payment/payrexx/api/makeFetcher.ts +2 -2
  274. package/src/payment/payrexx/handler-express.ts +24 -32
  275. package/src/payment/payrexx/handler-fastify.ts +33 -33
  276. package/src/payment/payrexx/index.ts +26 -16
  277. package/src/payment/postfinance-checkout/api-client.ts +13 -8
  278. package/src/payment/postfinance-checkout/handler-express.ts +8 -8
  279. package/src/payment/postfinance-checkout/handler-fastify.ts +7 -4
  280. package/src/payment/postfinance-checkout/index.ts +20 -8
  281. package/src/payment/saferpay/adapter.ts +14 -2
  282. package/src/payment/saferpay/handler-express.ts +14 -13
  283. package/src/payment/saferpay/handler-fastify.ts +14 -9
  284. package/src/payment/stripe/handler-express.ts +33 -33
  285. package/src/payment/stripe/handler-fastify.ts +40 -27
  286. package/src/payment/stripe/index.ts +18 -16
  287. package/src/payment/stripe/stripe.ts +17 -12
  288. package/src/pricing/delivery-swiss-tax.ts +16 -31
  289. package/src/pricing/order-discount.ts +6 -4
  290. package/src/pricing/order-round.ts +5 -4
  291. package/src/pricing/product-catalog-price-options.ts +67 -0
  292. package/src/pricing/product-catalog-price.ts +25 -2
  293. package/src/pricing/product-price-rateconversion.ts +3 -3
  294. package/src/pricing/product-swiss-tax.ts +39 -40
  295. package/src/pricing/tax/ch.ts +33 -7
  296. package/src/pricing/utils/isDeliveryAddressInCountry.test.ts +106 -0
  297. package/src/pricing/utils/isDeliveryAddressInCountry.ts +26 -0
  298. package/src/warehousing/eth-minter.ts +30 -11
  299. package/src/worker/budgetsms.ts +1 -1
  300. package/src/worker/bulk-import.ts +12 -53
  301. package/src/worker/email.ts +30 -8
  302. package/src/worker/enrollment-order-generator.ts +14 -72
  303. package/src/worker/error-notifications.ts +2 -2
  304. package/src/worker/export-token.ts +0 -1
  305. package/src/worker/message.ts +5 -3
  306. package/src/worker/twilio.ts +10 -3
  307. package/src/pricing/product-swiss-tax.test.ts +0 -139
@@ -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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"minio-adapter.js","sourceRoot":"","sources":["../../../src/files/minio/minio-adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const minioHandler: (req: any, res: any) => Promise<void>;
2
+ //# sourceMappingURL=minio-webhook.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"minio-webhook.d.ts","sourceRoot":"","sources":["../../../src/files/minio/minio-webhook.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,YAAY,uCAwBxB,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { log, LogLevel } from '@unchainedshop/logger';
2
+ const { MINIO_WEBHOOK_AUTH_TOKEN } = process.env;
3
+ const isAuthorized = ({ authorization = '' }) => {
4
+ const [type, token] = authorization.split(' ');
5
+ return type === 'Bearer' && token === MINIO_WEBHOOK_AUTH_TOKEN;
6
+ };
7
+ export const minioHandler = async (req, res) => {
8
+ try {
9
+ if (req.method === 'POST' && req.body) {
10
+ const { headers } = req;
11
+ const { Records = [], EventName } = req.body;
12
+ if (EventName === 's3:ObjectCreated:Put' && isAuthorized(headers)) {
13
+ const [{ s3 }] = Records;
14
+ const { object } = s3;
15
+ const { size, contentType: type } = object;
16
+ const [fileId] = object.key.split('.');
17
+ const { services } = req.unchainedContext;
18
+ await services.files.linkFile({ fileId, type, size }, req.unchainedContext);
19
+ res.writeHead(200);
20
+ res.end();
21
+ return;
22
+ }
23
+ }
24
+ res.writeHead(404);
25
+ res.end();
26
+ }
27
+ catch (e) {
28
+ log(e.message, { level: LogLevel.Error });
29
+ res.writeHead(503);
30
+ res.end(JSON.stringify({ name: e.name, code: e.code, message: e.message }));
31
+ }
32
+ };
33
+ //# sourceMappingURL=minio-webhook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"minio-webhook.js","sourceRoot":"","sources":["../../../src/files/minio/minio-webhook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtD,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,CAAC,MAAM,YAAY,GAAG,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;IAC7C,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,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC;gBAC5E,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,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;QAC1C,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"}
@@ -1,7 +1,7 @@
1
1
  import { FilterDirector, FilterAdapter } from '@unchainedshop/core';
2
2
  import { createLogger } from '@unchainedshop/logger';
3
3
  import { isDocumentDBCompatModeEnabled } from '@unchainedshop/mongodb';
4
- const logger = createLogger('unchained:core-filters:local-search');
4
+ const logger = createLogger('unchained:local-search');
5
5
  const LocalSearch = {
6
6
  ...FilterAdapter,
7
7
  key: 'shop.unchained.filters.local-search',
@@ -1 +1 @@
1
- {"version":3,"file":"local-search.js","sourceRoot":"","sources":["../../src/filters/local-search.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"local-search.js","sourceRoot":"","sources":["../../src/filters/local-search.ts"],"names":[],"mappings":"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"}
@@ -8,24 +8,6 @@ const StrictQualFilter = {
8
8
  actions: (params) => {
9
9
  return {
10
10
  ...FilterAdapter.actions(params),
11
- searchProducts: async ({ productIds }) => {
12
- // Search Products
13
- const { queryString } = params.searchQuery;
14
- if (!queryString && !productIds) {
15
- // If no query string is provided, return all product IDs
16
- return params.modules.products.findProductIds({});
17
- }
18
- return productIds;
19
- },
20
- searchAssortments: async ({ assortmentIds }) => {
21
- // Search Assortments
22
- const { queryString } = params.searchQuery;
23
- if (!queryString && !assortmentIds) {
24
- // If no query string is provided, return all assortment IDs
25
- return params.modules.assortments.findAssortmentIds({});
26
- }
27
- return assortmentIds;
28
- },
29
11
  transformProductSelector: async (lastSelector, options) => {
30
12
  const { key, value } = options || {};
31
13
  if (key) {
@@ -1 +1 @@
1
- {"version":3,"file":"strict-equal.js","sourceRoot":"","sources":["../../src/filters/strict-equal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,cAAc,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpF,MAAM,gBAAgB,GAAmB;IACvC,GAAG,aAAa;IAEhB,GAAG,EAAE,oCAAoC;IACzC,KAAK,EAAE,+BAA+B;IACtC,OAAO,EAAE,OAAO;IAChB,UAAU,EAAE,CAAC;IAEb,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE;QAClB,OAAO;YACL,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC;YAEhC,cAAc,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;gBACvC,kBAAkB;gBAClB,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC;gBAE3C,IAAI,CAAC,WAAW,IAAI,CAAC,UAAU,EAAE,CAAC;oBAChC,yDAAyD;oBACzD,OAAO,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;gBACpD,CAAC;gBACD,OAAO,UAAU,CAAC;YACpB,CAAC;YAED,iBAAiB,EAAE,KAAK,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE;gBAC7C,qBAAqB;gBACrB,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC;gBAC3C,IAAI,CAAC,WAAW,IAAI,CAAC,aAAa,EAAE,CAAC;oBACnC,4DAA4D;oBAC5D,OAAO,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;gBAC1D,CAAC;gBACD,OAAO,aAAa,CAAC;YACvB,CAAC;YAED,wBAAwB,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE;gBACxD,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;gBAErC,IAAI,GAAG,EAAE,CAAC;oBACR,OAAO;wBACL,GAAG,YAAY;wBACf,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;qBACvD,CAAC;gBACJ,CAAC;gBACD,OAAO,YAAY,CAAC;YACtB,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC;AAEF,cAAc,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC"}
1
+ {"version":3,"file":"strict-equal.js","sourceRoot":"","sources":["../../src/filters/strict-equal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,cAAc,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpF,MAAM,gBAAgB,GAAmB;IACvC,GAAG,aAAa;IAEhB,GAAG,EAAE,oCAAoC;IACzC,KAAK,EAAE,+BAA+B;IACtC,OAAO,EAAE,OAAO;IAChB,UAAU,EAAE,CAAC;IAEb,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE;QAClB,OAAO;YACL,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC;YAEhC,wBAAwB,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE;gBACxD,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;gBAErC,IAAI,GAAG,EAAE,CAAC;oBACR,OAAO;wBACL,GAAG,YAAY;wBACf,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;qBACvD,CAAC;gBACJ,CAAC;gBACD,OAAO,YAAY,CAAC;YACtB,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC;AAEF,cAAc,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { PaymentAdapter, PaymentDirector, PaymentError } from '@unchainedshop/core';
2
2
  import { createLogger } from '@unchainedshop/logger';
3
3
  import { verifyReceipt } from './verify-receipt.js';
4
- const logger = createLogger('unchained:core-payment:apple-iap');
4
+ const logger = createLogger('unchained:apple-iap');
5
5
  const { APPLE_IAP_SHARED_SECRET } = process.env;
6
6
  const AppleIAP = {
7
7
  ...PaymentAdapter,
@@ -31,7 +31,7 @@ const AppleIAP = {
31
31
  return false;
32
32
  },
33
33
  async sign() {
34
- throw new Error('Apple IAP does not support payment signing');
34
+ throw new Error('Payment signing not supported');
35
35
  },
36
36
  async validate() {
37
37
  // once registered receipt transactions are valid by default!
@@ -45,14 +45,14 @@ const AppleIAP = {
45
45
  });
46
46
  const { status, latest_receipt_info: latestReceiptInfo } = response;
47
47
  if (status === 0) {
48
- logger.debug('Apple IAP Plugin: Receipt validated and updated for the user');
48
+ logger.debug('Receipt validated and updated for the user');
49
49
  const latestTransaction = latestReceiptInfo[latestReceiptInfo.length - 1];
50
50
  return {
51
51
  token: latestTransaction.web_order_line_item_id,
52
52
  latestReceiptInfo,
53
53
  };
54
54
  }
55
- logger.warn('Apple IAP Plugin: Receipt invalid', {
55
+ logger.warn('Receipt invalid', {
56
56
  status: response.status,
57
57
  });
58
58
  return null;
@@ -61,20 +61,22 @@ const AppleIAP = {
61
61
  const { meta, paymentCredentials, receiptData } = transactionContext || {};
62
62
  const { transactionIdentifier } = meta || {};
63
63
  if (!transactionIdentifier) {
64
- throw new Error('Apple IAP Plugin: You have to set the transaction id on the order payment');
64
+ throw new Error('You have to set the transaction id on the order payment');
65
65
  }
66
+ if (!order)
67
+ throw new Error('Order not found');
66
68
  const receiptResponse = receiptData &&
67
69
  (await verifyReceipt({
68
70
  receiptData,
69
71
  password: APPLE_IAP_SHARED_SECRET,
70
72
  }));
71
73
  if (receiptResponse && receiptResponse.status !== 0) {
72
- throw new Error('Apple IAP Plugin: Receipt invalid');
74
+ throw new Error('Receipt invalid');
73
75
  }
74
76
  const transactions = receiptResponse?.latest_receipt_info || paymentCredentials?.meta?.latestReceiptInfo;
75
77
  const matchedTransaction = transactions?.find((transaction) => transaction?.transaction_id === transactionIdentifier);
76
78
  if (!matchedTransaction) {
77
- throw new Error(`Apple IAP Plugin: Cannot match transaction with identifier ${transactionIdentifier}`);
79
+ throw new Error(`Cannot match transaction with identifier ${transactionIdentifier}`);
78
80
  }
79
81
  const orderPositions = await modules.orders.positions.findOrderPositions({
80
82
  orderId: order._id,
@@ -86,16 +88,16 @@ const AppleIAP = {
86
88
  };
87
89
  }, {}));
88
90
  if (items.length !== 1) {
89
- throw new Error('Apple IAP Plugin: You can only checkout 1 unique product at once');
91
+ throw new Error('You can only checkout 1 unique product at once');
90
92
  }
91
93
  const [[productId, quantity]] = items;
92
94
  const isMatchesTransaction = parseInt(matchedTransaction.quantity, 10) === quantity &&
93
95
  matchedTransaction.product_id === productId;
94
96
  if (!isMatchesTransaction)
95
- throw new Error('Apple IAP Plugin: Product in order does not match transaction');
97
+ throw new Error('Product in order does not match transaction');
96
98
  const alreadyProcessedTransaction = await modules.appleTransactions.findTransactionById(transactionIdentifier);
97
99
  if (alreadyProcessedTransaction)
98
- throw new Error('Apple IAP Plugin: Transaction already processed');
100
+ throw new Error('Transaction already processed');
99
101
  // All good
100
102
  await modules.appleTransactions.createTransaction({
101
103
  _id: transactionIdentifier,
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/payment/apple-iap/adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/payment/apple-iap/adapter.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { mongodb } from '@unchainedshop/mongodb';
2
2
  import { TimestampFields } from '@unchainedshop/mongodb';
3
3
  export type AppleTransaction = {
4
- _id?: string;
4
+ _id: string;
5
5
  matchedTransaction: any;
6
6
  orderId: string;
7
7
  } & TimestampFields;
@@ -1 +1 @@
1
- {"version":3,"file":"AppleTransactionsCollection.d.ts","sourceRoot":"","sources":["../../../../src/payment/apple-iap/db/AppleTransactionsCollection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,kBAAkB,EAAE,GAAG,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,eAAe,CAAC;AAEpB,eAAO,MAAM,2BAA2B,GAAU,IAAI,OAAO,CAAC,EAAE,kDAI/D,CAAC"}
1
+ {"version":3,"file":"AppleTransactionsCollection.d.ts","sourceRoot":"","sources":["../../../../src/payment/apple-iap/db/AppleTransactionsCollection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,kBAAkB,EAAE,GAAG,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,eAAe,CAAC;AAEpB,eAAO,MAAM,2BAA2B,GAAU,IAAI,OAAO,CAAC,EAAE,kDAI/D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"handler-express.d.ts","sourceRoot":"","sources":["../../../src/payment/apple-iap/handler-express.ts"],"names":[],"mappings":"AAiBA,eAAO,MAAM,eAAe,GAAU,QAAG,EAAE,QAAG,kBAkH7C,CAAC;AAEF,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"handler-express.d.ts","sourceRoot":"","sources":["../../../src/payment/apple-iap/handler-express.ts"],"names":[],"mappings":"AAiBA,eAAO,MAAM,eAAe,GAAU,QAAG,EAAE,QAAG,kBAwH7C,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { EnrollmentStatus } from '@unchainedshop/core-enrollments';
2
2
  import { createLogger } from '@unchainedshop/logger';
3
3
  import { fixPeriods } from './fix-periods.js';
4
- const logger = createLogger('unchained:core-payment:apple-iap:handler');
4
+ const logger = createLogger('unchained:apple-iap:handler');
5
5
  const { APPLE_IAP_SHARED_SECRET } = process.env;
6
6
  const AppleNotificationTypes = {
7
7
  INITIAL_BUY: 'INITIAL_BUY',
@@ -35,10 +35,14 @@ export const appleIAPHandler = async (req, res) => {
35
35
  receiptData: responseBody?.unified_receipt?.latest_receipt,
36
36
  },
37
37
  });
38
+ if (!order)
39
+ throw new Error(`Order with id ${orderPayment.orderId} not found`);
38
40
  const orderId = order._id;
39
41
  const enrollment = await modules.enrollments.findEnrollment({
40
42
  orderId,
41
43
  });
44
+ if (!enrollment)
45
+ throw new Error('Could not find any matching enrollment');
42
46
  await fixPeriods({
43
47
  transactionId: latestTransaction.original_transaction_id,
44
48
  transactions,
@@ -62,9 +66,12 @@ export const appleIAPHandler = async (req, res) => {
62
66
  const originalOrder = await modules.orders.findOrder({
63
67
  orderId: originalOrderPayment.orderId,
64
68
  });
65
- const enrollment = await modules.enrollments.findEnrollment({
66
- orderId: originalOrder._id,
67
- });
69
+ const enrollment = originalOrder &&
70
+ (await modules.enrollments.findEnrollment({
71
+ orderId: originalOrder._id,
72
+ }));
73
+ if (!enrollment?.payment)
74
+ throw new Error('Could not find a valid enrollment payment method');
68
75
  await services.orders.registerPaymentCredentials(enrollment.payment.paymentProviderId, {
69
76
  transactionContext: {
70
77
  receiptData: responseBody?.unified_receipt?.latest_receipt,
@@ -92,19 +99,16 @@ export const appleIAPHandler = async (req, res) => {
92
99
  }
93
100
  logger.info(`Apple IAP Webhook: Updated enrollment from Apple`);
94
101
  }
95
- res.writeHead(200);
96
- res.end();
102
+ res.status(200).end();
97
103
  return;
98
104
  }
99
105
  catch (e) {
100
106
  logger.warn(`Apple IAP Webhook: ${e.message}`, e);
101
- res.writeHead(503);
102
- res.end(JSON.stringify({ name: e.name, code: e.code, message: e.message }));
107
+ res.status(503).send({ name: e.name, code: e.code, message: e.message });
103
108
  return;
104
109
  }
105
110
  }
106
- res.writeHead(404);
107
- res.end();
111
+ res.status(404).end();
108
112
  };
109
113
  export default appleIAPHandler;
110
114
  //# sourceMappingURL=handler-express.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"handler-express.js","sourceRoot":"","sources":["../../../src/payment/apple-iap/handler-express.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handler-express.js","sourceRoot":"","sources":["../../../src/payment/apple-iap/handler-express.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"handler-fastify.d.ts","sourceRoot":"","sources":["../../../src/payment/apple-iap/handler-fastify.ts"],"names":[],"mappings":"AAIA,OAAO,EAAkB,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAe7D,eAAO,MAAM,eAAe,EAAE,kBAmH7B,CAAC;AAEF,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"handler-fastify.d.ts","sourceRoot":"","sources":["../../../src/payment/apple-iap/handler-fastify.ts"],"names":[],"mappings":"AAIA,OAAO,EAAkB,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAe7D,eAAO,MAAM,eAAe,EAAE,kBA6H7B,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { EnrollmentStatus } from '@unchainedshop/core-enrollments';
2
2
  import { createLogger } from '@unchainedshop/logger';
3
3
  import { fixPeriods } from './fix-periods.js';
4
- const logger = createLogger('unchained:core-payment:apple-iap:handler');
4
+ const logger = createLogger('unchained:apple-iap:handler');
5
5
  const { APPLE_IAP_SHARED_SECRET } = process.env;
6
6
  const AppleNotificationTypes = {
7
7
  INITIAL_BUY: 'INITIAL_BUY',
@@ -34,17 +34,21 @@ export const appleIAPHandler = async (req, reply) => {
34
34
  receiptData: responseBody?.unified_receipt?.latest_receipt,
35
35
  },
36
36
  });
37
+ if (!order)
38
+ throw new Error(`Order with id ${orderPayment.orderId} not found`);
37
39
  const orderId = order._id;
38
40
  const enrollment = await modules.enrollments.findEnrollment({
39
41
  orderId,
40
42
  });
43
+ if (!enrollment)
44
+ throw new Error('Enrollent not found');
41
45
  await fixPeriods({
42
46
  transactionId: latestTransaction.original_transaction_id,
43
47
  transactions,
44
48
  enrollmentId: enrollment._id,
45
49
  orderId,
46
50
  }, resolvedContext);
47
- logger.info(`Apple IAP Webhook: Confirmed checkout for order ${order.orderNumber}`, {
51
+ logger.info(`Webhook confirmed checkout for order ${order.orderNumber}`, {
48
52
  orderId: order._id,
49
53
  });
50
54
  }
@@ -61,9 +65,12 @@ export const appleIAPHandler = async (req, reply) => {
61
65
  const originalOrder = await modules.orders.findOrder({
62
66
  orderId: originalOrderPayment.orderId,
63
67
  });
64
- const enrollment = await modules.enrollments.findEnrollment({
65
- orderId: originalOrder._id,
66
- });
68
+ const enrollment = originalOrder &&
69
+ (await modules.enrollments.findEnrollment({
70
+ orderId: originalOrder._id,
71
+ }));
72
+ if (!enrollment?.payment)
73
+ throw new Error('Could not find a valid enrollment payment method');
67
74
  await services.orders.registerPaymentCredentials(enrollment.payment.paymentProviderId, {
68
75
  transactionContext: {
69
76
  receiptData: responseBody?.unified_receipt?.latest_receipt,
@@ -76,7 +83,7 @@ export const appleIAPHandler = async (req, reply) => {
76
83
  enrollmentId: enrollment._id,
77
84
  orderId: originalOrder._id,
78
85
  }, resolvedContext);
79
- logger.info(`Apple IAP Webhook: Processed notification for ${latestTransaction.original_transaction_id} and type ${responseBody.notification_type}`);
86
+ logger.info(`Webhook rocessed notification for ${latestTransaction.original_transaction_id} and type ${responseBody.notification_type}`);
80
87
  if (responseBody.notification_type === AppleNotificationTypes.DID_RECOVER) {
81
88
  if (enrollment.status !== EnrollmentStatus.TERMINATED &&
82
89
  responseBody.auto_renew_status === 'false') {
@@ -95,9 +102,9 @@ export const appleIAPHandler = async (req, reply) => {
95
102
  return reply.send();
96
103
  }
97
104
  catch (e) {
98
- logger.warn(`Apple IAP Webhook: ${e.message}`, e);
105
+ logger.error(e);
99
106
  reply.status(503);
100
- return reply.send({ name: e.name, code: e.code, message: e.message });
107
+ return reply.send({ success: false, name: e.name, code: e.code, message: e.message });
101
108
  }
102
109
  };
103
110
  export default appleIAPHandler;
@@ -1 +1 @@
1
- {"version":3,"file":"handler-fastify.js","sourceRoot":"","sources":["../../../src/payment/apple-iap/handler-fastify.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handler-fastify.js","sourceRoot":"","sources":["../../../src/payment/apple-iap/handler-fastify.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { AppleTransaction } from '../db/AppleTransactionsCollection.js';
2
+ export interface AppleTransactionsModule {
3
+ findTransactionById: (transactionIdentifier: string) => Promise<AppleTransaction>;
4
+ createTransaction: (doc: AppleTransaction) => Promise<string | null>;
5
+ }
6
+ export declare const configureAppleTransactionsModule: ({ db }: {
7
+ db: any;
8
+ }) => Promise<AppleTransactionsModule>;
9
+ //# sourceMappingURL=configureAppleTransactionsModule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configureAppleTransactionsModule.d.ts","sourceRoot":"","sources":["../../../../src/payment/apple-iap/module/configureAppleTransactionsModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAA+B,MAAM,sCAAsC,CAAC;AAErG,MAAM,WAAW,uBAAuB;IACtC,mBAAmB,EAAE,CAAC,qBAAqB,EAAE,MAAM,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAElF,iBAAiB,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CACtE;AAED,eAAO,MAAM,gCAAgC;;MAAmB,OAAO,CAAC,uBAAuB,CAgB9F,CAAC"}