@unchainedshop/plugins 3.0.3 → 3.1.1

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 (78) 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/events/aws-eventbridge.js +15 -11
  10. package/lib/events/aws-eventbridge.js.map +1 -1
  11. package/lib/files/gridfs/gridfs-adapter.d.ts +3 -0
  12. package/lib/files/gridfs/gridfs-adapter.d.ts.map +1 -0
  13. package/lib/files/gridfs/gridfs-adapter.js +97 -0
  14. package/lib/files/gridfs/gridfs-adapter.js.map +1 -0
  15. package/lib/files/gridfs/gridfs-webhook.d.ts +11 -0
  16. package/lib/files/gridfs/gridfs-webhook.d.ts.map +1 -0
  17. package/lib/files/gridfs/gridfs-webhook.js +84 -0
  18. package/lib/files/gridfs/gridfs-webhook.js.map +1 -0
  19. package/lib/files/minio/minio-adapter.d.ts +6 -0
  20. package/lib/files/minio/minio-adapter.d.ts.map +1 -0
  21. package/lib/files/minio/minio-adapter.js +181 -0
  22. package/lib/files/minio/minio-adapter.js.map +1 -0
  23. package/lib/files/minio/minio-webhook.d.ts +2 -0
  24. package/lib/files/minio/minio-webhook.d.ts.map +1 -0
  25. package/lib/files/minio/minio-webhook.js +33 -0
  26. package/lib/files/minio/minio-webhook.js.map +1 -0
  27. package/lib/payment/apple-iap/module/configureAppleTransactionsModule.d.ts +9 -0
  28. package/lib/payment/apple-iap/module/configureAppleTransactionsModule.d.ts.map +1 -0
  29. package/lib/payment/apple-iap/module/configureAppleTransactionsModule.js +17 -0
  30. package/lib/payment/apple-iap/module/configureAppleTransactionsModule.js.map +1 -0
  31. package/lib/payment/cryptopay/middleware.d.ts +2 -0
  32. package/lib/payment/cryptopay/middleware.d.ts.map +1 -0
  33. package/lib/payment/cryptopay/middleware.js +75 -0
  34. package/lib/payment/cryptopay/middleware.js.map +1 -0
  35. package/lib/payment/cryptopay/module/configureCryptopayModule.d.ts +25 -0
  36. package/lib/payment/cryptopay/module/configureCryptopayModule.d.ts.map +1 -0
  37. package/lib/payment/cryptopay/module/configureCryptopayModule.js +75 -0
  38. package/lib/payment/cryptopay/module/configureCryptopayModule.js.map +1 -0
  39. package/lib/payment/cryptopay/plugin.d.ts.map +1 -1
  40. package/lib/payment/cryptopay/plugin.js +40 -21
  41. package/lib/payment/cryptopay/plugin.js.map +1 -1
  42. package/lib/payment/datatrans-v2/middleware.d.ts +2 -0
  43. package/lib/payment/datatrans-v2/middleware.d.ts.map +1 -0
  44. package/lib/payment/datatrans-v2/middleware.js +68 -0
  45. package/lib/payment/datatrans-v2/middleware.js.map +1 -0
  46. package/lib/payment/payrexx/middleware.d.ts +2 -0
  47. package/lib/payment/payrexx/middleware.d.ts.map +1 -0
  48. package/lib/payment/payrexx/middleware.js +86 -0
  49. package/lib/payment/payrexx/middleware.js.map +1 -0
  50. package/lib/payment/postfinance-checkout/middleware.d.ts +2 -0
  51. package/lib/payment/postfinance-checkout/middleware.d.ts.map +1 -0
  52. package/lib/payment/postfinance-checkout/middleware.js +38 -0
  53. package/lib/payment/postfinance-checkout/middleware.js.map +1 -0
  54. package/lib/payment/saferpay/middleware.d.ts +2 -0
  55. package/lib/payment/saferpay/middleware.d.ts.map +1 -0
  56. package/lib/payment/saferpay/middleware.js +57 -0
  57. package/lib/payment/saferpay/middleware.js.map +1 -0
  58. package/lib/payment/saferpay/module/configureSaferpayTransactionsModule.d.ts +10 -0
  59. package/lib/payment/saferpay/module/configureSaferpayTransactionsModule.d.ts.map +1 -0
  60. package/lib/payment/saferpay/module/configureSaferpayTransactionsModule.js +24 -0
  61. package/lib/payment/saferpay/module/configureSaferpayTransactionsModule.js.map +1 -0
  62. package/lib/payment/stripe/middleware.d.ts +6 -0
  63. package/lib/payment/stripe/middleware.d.ts.map +1 -0
  64. package/lib/payment/stripe/middleware.js +114 -0
  65. package/lib/payment/stripe/middleware.js.map +1 -0
  66. package/lib/payment/stripe/stripe.js +1 -1
  67. package/lib/plugins-index.d.ts +48 -0
  68. package/lib/plugins-index.d.ts.map +1 -0
  69. package/lib/plugins-index.js +107 -0
  70. package/lib/plugins-index.js.map +1 -0
  71. package/lib/presets/all-fastify.d.ts.map +1 -1
  72. package/lib/presets/all-fastify.js +0 -14
  73. package/lib/presets/all-fastify.js.map +1 -1
  74. package/package.json +25 -21
  75. package/src/events/aws-eventbridge.ts +18 -16
  76. package/src/payment/cryptopay/plugin.ts +37 -29
  77. package/src/payment/stripe/stripe.ts +1 -1
  78. package/src/presets/all-fastify.ts +0 -15
@@ -0,0 +1,107 @@
1
+ import { useMiddlewareWithCurrentContext } from '@unchainedshop/api/express/index.js';
2
+ import express from 'express';
3
+ // Delivery
4
+ import './delivery/post.js';
5
+ import './delivery/pick-mup.js';
6
+ import './delivery/send-message.js';
7
+ import './delivery/stores.js';
8
+ // Payment
9
+ import './payment/invoice.js';
10
+ import './payment/invoice-prepaid.js';
11
+ import './payment/paypal-checkout.js';
12
+ import { datatransHandler } from './payment/datatrans-v2/index.js';
13
+ import { configureCryptopayModule, cryptopayHandler } from './payment/cryptopay/index.js';
14
+ import { appleIAPHandler, configureAppleTransactionsModule } from './payment/apple-iap/index.js';
15
+ import { stripeHandler } from './payment/stripe/index.js';
16
+ import { postfinanceCheckoutHandler } from './payment/postfinance-checkout/index.js';
17
+ import { configureSaferpayTransactionsModule, saferpayHandler } from './payment/saferpay/index.js';
18
+ import { payrexxHandler } from './payment/payrexx/index.js';
19
+ // Warehousing
20
+ import './warehousing/store.js';
21
+ import './warehousing/eth-minter.js';
22
+ // Pricing
23
+ import './pricing/free-payment.js';
24
+ import './pricing/free-delivery.js';
25
+ import './pricing/order-items.js';
26
+ import './pricing/order-discount.js';
27
+ import './pricing/order-delivery.js';
28
+ import './pricing/order-payment.js';
29
+ import './pricing/product-catalog-price.js';
30
+ import './pricing/product-price-rateconversion.js';
31
+ import './pricing/product-discount.js';
32
+ import './pricing/product-swiss-tax.js';
33
+ import './pricing/delivery-swiss-tax.js';
34
+ // Filter & Search
35
+ import './filters/strict-equal.js';
36
+ import './filters/local-search.js';
37
+ // Quotations
38
+ import './quotations/manual.js';
39
+ // Enrollments
40
+ import './enrollments/licensed.js';
41
+ // Event Queue
42
+ import './events/node-event-emitter.js';
43
+ // Workers
44
+ import './worker/bulk-import.js';
45
+ import './worker/zombie-killer.js';
46
+ import './worker/message.js';
47
+ import './worker/external.js';
48
+ import './worker/http-request.js';
49
+ import './worker/heartbeat.js';
50
+ import './worker/email.js';
51
+ import './worker/sms.js';
52
+ import './worker/push-notification.js';
53
+ import './worker/update-ecb-rates.js';
54
+ import './worker/error-notifications.js';
55
+ import './worker/update-coinbase-rates.js';
56
+ import { configureExportToken } from './worker/export-token.js';
57
+ import { configureGenerateOrderAutoscheduling } from './worker/enrollment-order-generator.js';
58
+ // Asset Management
59
+ import './files/gridfs/gridfs-adapter.js';
60
+ import { gridfsHandler } from './files/gridfs/gridfs-webhook.js';
61
+ import { configureGridFSFileUploadModule } from './files/gridfs/index.js';
62
+ import './accounts/google-oauth.js';
63
+ import './accounts/linkedin-oauth.js';
64
+ const { CRYPTOPAY_WEBHOOK_PATH = '/payment/cryptopay', STRIPE_WEBHOOK_PATH = '/payment/stripe', PAYREXX_WEBHOOK_PATH = '/payment/payrexx', PFCHECKOUT_WEBHOOK_PATH = '/payment/postfinance-checkout', DATATRANS_WEBHOOK_PATH = '/payment/datatrans/webhook', APPLE_IAP_WEBHOOK_PATH = '/payment/apple-iap',
65
+ // MINIO_PUT_SERVER_PATH = '/minio',
66
+ GRIDFS_PUT_SERVER_PATH = '/gridfs', SAFERPAY_WEBHOOK_PATH = '/payment/saferpay/webhook', } = process.env;
67
+ // import './files/minio/minio-adapter';
68
+ // import { minioHandler } from './files/minio/minio-webhook';
69
+ export const defaultModules = {
70
+ appleTransactions: {
71
+ configure: configureAppleTransactionsModule,
72
+ },
73
+ saferpayTransactions: {
74
+ configure: configureSaferpayTransactionsModule,
75
+ },
76
+ gridfsFileUploads: {
77
+ configure: configureGridFSFileUploadModule,
78
+ },
79
+ cryptopay: {
80
+ configure: configureCryptopayModule,
81
+ },
82
+ };
83
+ export const connectDefaultPluginsToExpress4 = (app, { unchainedAPI }) => {
84
+ useMiddlewareWithCurrentContext(app, GRIDFS_PUT_SERVER_PATH, gridfsHandler);
85
+ useMiddlewareWithCurrentContext(app, CRYPTOPAY_WEBHOOK_PATH, express.json(), cryptopayHandler);
86
+ useMiddlewareWithCurrentContext(app, STRIPE_WEBHOOK_PATH, express.raw({ type: 'application/json' }), stripeHandler);
87
+ useMiddlewareWithCurrentContext(app, PFCHECKOUT_WEBHOOK_PATH, express.json(), postfinanceCheckoutHandler);
88
+ useMiddlewareWithCurrentContext(app, DATATRANS_WEBHOOK_PATH, express.text({
89
+ type: 'application/json',
90
+ }), datatransHandler);
91
+ useMiddlewareWithCurrentContext(app, APPLE_IAP_WEBHOOK_PATH, express.json({
92
+ strict: false,
93
+ }), appleIAPHandler);
94
+ useMiddlewareWithCurrentContext(app, PAYREXX_WEBHOOK_PATH, express.json({ type: 'application/json' }), payrexxHandler);
95
+ useMiddlewareWithCurrentContext(app, SAFERPAY_WEBHOOK_PATH, saferpayHandler);
96
+ // useMiddlewareWithCurrentContext(
97
+ // app,
98
+ // MINIO_PUT_SERVER_PATH,
99
+ // express.json({
100
+ // strict: false,
101
+ // }),
102
+ // minioHandler
103
+ // );
104
+ configureExportToken(unchainedAPI);
105
+ configureGenerateOrderAutoscheduling();
106
+ };
107
+ //# sourceMappingURL=plugins-index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugins-index.js","sourceRoot":"","sources":["../src/plugins-index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"all-fastify.d.ts","sourceRoot":"","sources":["../../src/presets/all-fastify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;kCAsBjB,eAAe,oBAAoB;IAAE,YAAY,EAAE,aAAa,CAAA;CAAE;AAA3F,wBA+DE"}
1
+ {"version":3,"file":"all-fastify.d.ts","sourceRoot":"","sources":["../../src/presets/all-fastify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;kCAsBjB,eAAe,oBAAoB;IAAE,YAAY,EAAE,aAAa,CAAA;CAAE;AAA3F,wBAgDE"}
@@ -12,19 +12,6 @@ export default (fastify, { unchainedAPI }) => {
12
12
  connectBaseToFastify(fastify);
13
13
  connectCryptoToFastify(fastify, unchainedAPI);
14
14
  fastify.register((s, opts, registered) => {
15
- // Disable JSON parsing!
16
- // fastify.addContentTypeParser(
17
- // 'application/json',
18
- // { parseAs: 'string', bodyLimit: 1024 * 1024 },
19
- // function (req, body, done) {
20
- // try {
21
- // done(null, body);
22
- // } catch (err) {
23
- // err.statusCode = 400;
24
- // done(err, undefined);
25
- // }
26
- // },
27
- // );
28
15
  s.addContentTypeParser('application/json', { parseAs: 'string', bodyLimit: 1024 * 1024 }, s.defaultTextParser);
29
16
  s.route({
30
17
  url: STRIPE_WEBHOOK_PATH,
@@ -58,7 +45,6 @@ export default (fastify, { unchainedAPI }) => {
58
45
  method: 'GET',
59
46
  handler: saferpayHandler,
60
47
  });
61
- // app.use(STRIPE_WEBHOOK_PATH, express.raw({ type: 'application/json' }), stripeHandler);
62
48
  configureGenerateOrderAutoscheduling();
63
49
  };
64
50
  //# sourceMappingURL=all-fastify.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"all-fastify.js","sourceRoot":"","sources":["../../src/presets/all-fastify.ts"],"names":[],"mappings":"AAGA,OAAO,sBAAsB,MAAM,qBAAqB,CAAC;AACzD,OAAO,oBAAoB,MAAM,mBAAmB,CAAC;AAErD,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,EAAE,0BAA0B,EAAE,MAAM,oDAAoD,CAAC;AAChG,OAAO,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AACzE,OAAO,EAAE,oCAAoC,EAAE,MAAM,yCAAyC,CAAC;AAE/F,MAAM,EACJ,mBAAmB,GAAG,iBAAiB,EACvC,oBAAoB,GAAG,kBAAkB,EACzC,uBAAuB,GAAG,+BAA+B,EACzD,sBAAsB,GAAG,4BAA4B,EACrD,sBAAsB,GAAG,oBAAoB,EAC7C,qBAAqB,GAAG,2BAA2B,GACpD,GAAG,OAAO,CAAC,GAAG,CAAC;AAEhB,eAAe,CAAC,OAAwB,EAAE,EAAE,YAAY,EAAmC,EAAE,EAAE;IAC7F,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC9B,sBAAsB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAE9C,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE;QACvC,wBAAwB;QACxB,gCAAgC;QAChC,wBAAwB;QACxB,mDAAmD;QACnD,iCAAiC;QACjC,YAAY;QACZ,0BAA0B;QAC1B,sBAAsB;QACtB,8BAA8B;QAC9B,8BAA8B;QAC9B,QAAQ;QACR,OAAO;QACP,KAAK;QACL,CAAC,CAAC,oBAAoB,CACpB,kBAAkB,EAClB,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,GAAG,IAAI,EAAE,EAC7C,CAAC,CAAC,iBAAiB,CACpB,CAAC;QACF,CAAC,CAAC,KAAK,CAAC;YACN,GAAG,EAAE,mBAAmB;YACxB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,aAAa;SACvB,CAAC,CAAC;QACH,CAAC,CAAC,KAAK,CAAC;YACN,GAAG,EAAE,sBAAsB;YAC3B,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,gBAAgB;SAC1B,CAAC,CAAC;QACH,UAAU,EAAE,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,KAAK,CAAC;QACZ,GAAG,EAAE,uBAAuB;QAC5B,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,0BAA0B;KACpC,CAAC,CAAC;IAEH,OAAO,CAAC,KAAK,CAAC;QACZ,GAAG,EAAE,sBAAsB;QAC3B,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,eAAe;KACzB,CAAC,CAAC;IAEH,OAAO,CAAC,KAAK,CAAC;QACZ,GAAG,EAAE,oBAAoB;QACzB,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,cAAc;KACxB,CAAC,CAAC;IAEH,OAAO,CAAC,KAAK,CAAC;QACZ,GAAG,EAAE,qBAAqB;QAC1B,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,eAAe;KACzB,CAAC,CAAC;IAEH,0FAA0F;IAE1F,oCAAoC,EAAE,CAAC;AACzC,CAAC,CAAC"}
1
+ {"version":3,"file":"all-fastify.js","sourceRoot":"","sources":["../../src/presets/all-fastify.ts"],"names":[],"mappings":"AAGA,OAAO,sBAAsB,MAAM,qBAAqB,CAAC;AACzD,OAAO,oBAAoB,MAAM,mBAAmB,CAAC;AAErD,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,EAAE,0BAA0B,EAAE,MAAM,oDAAoD,CAAC;AAChG,OAAO,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AACzE,OAAO,EAAE,oCAAoC,EAAE,MAAM,yCAAyC,CAAC;AAE/F,MAAM,EACJ,mBAAmB,GAAG,iBAAiB,EACvC,oBAAoB,GAAG,kBAAkB,EACzC,uBAAuB,GAAG,+BAA+B,EACzD,sBAAsB,GAAG,4BAA4B,EACrD,sBAAsB,GAAG,oBAAoB,EAC7C,qBAAqB,GAAG,2BAA2B,GACpD,GAAG,OAAO,CAAC,GAAG,CAAC;AAEhB,eAAe,CAAC,OAAwB,EAAE,EAAE,YAAY,EAAmC,EAAE,EAAE;IAC7F,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC9B,sBAAsB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAE9C,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE;QACvC,CAAC,CAAC,oBAAoB,CACpB,kBAAkB,EAClB,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,GAAG,IAAI,EAAE,EAC7C,CAAC,CAAC,iBAAiB,CACpB,CAAC;QACF,CAAC,CAAC,KAAK,CAAC;YACN,GAAG,EAAE,mBAAmB;YACxB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,aAAa;SACvB,CAAC,CAAC;QACH,CAAC,CAAC,KAAK,CAAC;YACN,GAAG,EAAE,sBAAsB;YAC3B,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,gBAAgB;SAC1B,CAAC,CAAC;QACH,UAAU,EAAE,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,KAAK,CAAC;QACZ,GAAG,EAAE,uBAAuB;QAC5B,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,0BAA0B;KACpC,CAAC,CAAC;IAEH,OAAO,CAAC,KAAK,CAAC;QACZ,GAAG,EAAE,sBAAsB;QAC3B,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,eAAe;KACzB,CAAC,CAAC;IAEH,OAAO,CAAC,KAAK,CAAC;QACZ,GAAG,EAAE,oBAAoB;QACzB,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,cAAc;KACxB,CAAC,CAAC;IAEH,OAAO,CAAC,KAAK,CAAC;QACZ,GAAG,EAAE,qBAAqB;QAC1B,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,eAAe;KACzB,CAAC,CAAC;IAEH,oCAAoC,EAAE,CAAC;AACzC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unchainedshop/plugins",
3
- "version": "3.0.3",
3
+ "version": "3.1.1",
4
4
  "main": "lib/plugins-index.js",
5
5
  "types": "lib/plugins-index.d.ts",
6
6
  "exports": {
@@ -35,18 +35,18 @@
35
35
  "homepage": "https://github.com/unchainedshop/unchained#readme",
36
36
  "dependencies": {
37
37
  "@breejs/later": "^4.2.0",
38
- "@unchainedshop/api": "^3.0.0",
39
- "@unchainedshop/core-delivery": "^3.0.0",
40
- "@unchainedshop/core-enrollments": "^3.0.0",
41
- "@unchainedshop/core-orders": "^3.0.0",
42
- "@unchainedshop/core-payment": "^3.0.0",
43
- "@unchainedshop/core-products": "^3.0.0",
44
- "@unchainedshop/core-warehousing": "^3.0.0",
45
- "@unchainedshop/core-worker": "^3.0.0",
46
- "@unchainedshop/events": "^3.0.0",
47
- "@unchainedshop/file-upload": "^3.0.0",
48
- "@unchainedshop/logger": "^3.0.0",
49
- "@unchainedshop/utils": "^3.0.0",
38
+ "@unchainedshop/api": "^3.1.0",
39
+ "@unchainedshop/core-delivery": "^3.1.0",
40
+ "@unchainedshop/core-enrollments": "^3.1.0",
41
+ "@unchainedshop/core-orders": "^3.1.0",
42
+ "@unchainedshop/core-payment": "^3.1.0",
43
+ "@unchainedshop/core-products": "^3.1.0",
44
+ "@unchainedshop/core-warehousing": "^3.1.0",
45
+ "@unchainedshop/core-worker": "^3.1.0",
46
+ "@unchainedshop/events": "^3.1.0",
47
+ "@unchainedshop/file-upload": "^3.1.0",
48
+ "@unchainedshop/logger": "^3.1.0",
49
+ "@unchainedshop/utils": "^3.1.0",
50
50
  "event-iterator": "^2.0.0",
51
51
  "JSONStream": "^1.3.5"
52
52
  },
@@ -54,8 +54,9 @@
54
54
  "@aws-sdk/client-eventbridge": ">= 3.714 < 4",
55
55
  "@paypal/checkout-server-sdk": "1.x",
56
56
  "@redis/client": "1.x",
57
- "bip32": "4.x",
57
+ "bip32": "^5.0.0-rc.0",
58
58
  "bitcoinjs-lib": ">= 6.1 <7",
59
+ "bs58check": "^4.0.0",
59
60
  "ethers": ">= 6.13 < 7",
60
61
  "expiry-map": "2.x",
61
62
  "express": "5.x",
@@ -88,6 +89,9 @@
88
89
  "bitcoinjs-lib": {
89
90
  "optional": true
90
91
  },
92
+ "bs58check": {
93
+ "optional": true
94
+ },
91
95
  "ethers": {
92
96
  "optional": true
93
97
  },
@@ -135,29 +139,29 @@
135
139
  }
136
140
  },
137
141
  "devDependencies": {
138
- "@aws-sdk/client-eventbridge": "^3.723.0",
139
142
  "@breejs/later": "^4.2.0",
140
143
  "@paypal/checkout-server-sdk": "^1.0.3",
141
144
  "@redis/client": "^1.6.0",
142
145
  "@types/express": "^5.0.0",
143
- "@types/node": "^22.10.5",
144
- "bip32": "^4.0.0",
146
+ "@types/node": "^22.13.4",
147
+ "bip32": "^5.0.0-rc.0",
145
148
  "bitcoinjs-lib": "^6.1.7",
149
+ "bs58check": "^4.0.0",
146
150
  "ethers": "^6.13.5",
147
151
  "expiry-map": "^2.0.0",
148
152
  "express": "^5.0.1",
149
153
  "fastify": "^5.2.1",
150
154
  "jest": "^29.7.0",
151
155
  "mime-types": "^2.1.35",
152
- "minio": "^8.0.3",
153
- "nodemailer": "^6.9.16",
156
+ "minio": "^8.0.4",
157
+ "nodemailer": "^6.10.0",
154
158
  "open": "^10.1.0",
155
159
  "p-memoize": "^7.1.1",
156
160
  "postfinancecheckout": "^4.5.0",
157
- "stripe": "^17.5.0",
161
+ "stripe": "^17.6.0",
158
162
  "tiny-secp256k1": "^2.2.3",
159
163
  "ts-jest": "^29.2.5",
160
- "twilio": "^5.4.1",
164
+ "twilio": "^5.4.4",
161
165
  "typescript": "^5.7.3",
162
166
  "web-push": "^3.6.7",
163
167
  "xml-js": "^1.6.11"
@@ -1,24 +1,27 @@
1
1
  import { EmitAdapter, setEmitAdapter } from '@unchainedshop/events';
2
- import { EventBridgeClient, PutEventsCommand, PutEventsRequestEntry } from '@aws-sdk/client-eventbridge';
3
2
  import { createLogger } from '@unchainedshop/logger';
4
3
 
5
4
  const logger = createLogger('unchained:eventbridge');
6
5
 
7
- const EventBridgeEventEmitter = ({ region, source, busName }): EmitAdapter => {
6
+ const EventBridgeEventEmitter = async ({ region, source, busName }): Promise<EmitAdapter> => {
7
+ // eslint-disable-next-line
8
+ // @ts-expect-error
9
+ const { EventBridgeClient, PutEventsCommand } = await import('@aws-sdk/client-eventbridge');
8
10
  const ebClient = new EventBridgeClient({ region });
9
11
 
10
12
  return {
11
13
  publish: (eventName, payload) => {
12
- const entry: PutEventsRequestEntry = {
13
- Source: source,
14
- DetailType: eventName,
15
- EventBusName: busName,
16
- Detail: JSON.stringify(payload),
17
- };
18
14
  ebClient
19
15
  .send(
20
16
  new PutEventsCommand({
21
- Entries: [entry],
17
+ Entries: [
18
+ {
19
+ Source: source,
20
+ DetailType: eventName,
21
+ EventBusName: busName,
22
+ Detail: JSON.stringify(payload),
23
+ },
24
+ ],
22
25
  }),
23
26
  )
24
27
  .catch((e) => {
@@ -33,11 +36,10 @@ const EventBridgeEventEmitter = ({ region, source, busName }): EmitAdapter => {
33
36
 
34
37
  const { EVENT_BRIDGE_REGION, EVENT_BRIDGE_SOURCE, EVENT_BRIDGE_BUS_NAME } = process.env;
35
38
  if (EVENT_BRIDGE_REGION && EVENT_BRIDGE_SOURCE && EVENT_BRIDGE_BUS_NAME) {
36
- setEmitAdapter(
37
- EventBridgeEventEmitter({
38
- source: EVENT_BRIDGE_SOURCE,
39
- region: EVENT_BRIDGE_REGION,
40
- busName: EVENT_BRIDGE_BUS_NAME,
41
- }),
42
- );
39
+ const eventBridgeAdapter = await EventBridgeEventEmitter({
40
+ source: EVENT_BRIDGE_SOURCE,
41
+ region: EVENT_BRIDGE_REGION,
42
+ busName: EVENT_BRIDGE_BUS_NAME,
43
+ });
44
+ setEmitAdapter(eventBridgeAdapter);
43
45
  }
@@ -1,5 +1,6 @@
1
1
  import { ethers } from 'ethers';
2
2
  import { BIP32Factory } from 'bip32';
3
+ import bs58check from 'bs58check';
3
4
  import * as ecc from 'tiny-secp256k1';
4
5
  import { networks, payments } from 'bitcoinjs-lib';
5
6
  import { createLogger } from '@unchainedshop/logger';
@@ -14,13 +15,36 @@ import { CryptopayModule } from './module.js';
14
15
 
15
16
  const logger = createLogger('unchained:core-payment:cryptopay');
16
17
 
17
- const {
18
- CRYPTOPAY_SECRET,
19
- CRYPTOPAY_BTC_XPUB,
20
- CRYPTOPAY_ETH_XPUB,
21
- CRYPTOPAY_BTC_TESTNET,
22
- CRYPTOPAY_DERIVATION_START = '0',
23
- } = process.env;
18
+ const { CRYPTOPAY_SECRET, CRYPTOPAY_BTC_XPUB, CRYPTOPAY_ETH_XPUB } = process.env;
19
+
20
+ const resolvePath = (prefix) => {
21
+ if (prefix === 'x') return `m/44'/0'`;
22
+ if (prefix === 'y') return `m/49'/0'`;
23
+ if (prefix === 'z') return `m/84'/0'`;
24
+ if (prefix === 't') return `m/44'/1'`;
25
+ if (prefix === 'u') return `m/49'/1'`;
26
+ if (prefix === 'v') return `m/84'/1'`;
27
+ return `m`;
28
+ };
29
+
30
+ const resolveNetwork = (prefix) => {
31
+ if (['x', 'y', 'z'].includes(prefix)) return networks.bitcoin;
32
+ return networks.testnet;
33
+ };
34
+
35
+ function convertExtendedPublicKey(z) {
36
+ const derivationPath = resolvePath(z.slice(0, 1));
37
+ const network = resolveNetwork(z.slice(0, 1));
38
+ // https://github.com/satoshilabs/slips/blob/master/slip-0132.md
39
+ let data = bs58check.decode(z);
40
+ data = data.slice(4);
41
+ data = Buffer.concat([Buffer.from('0488b21e', 'hex'), data]);
42
+ return {
43
+ xpub: bs58check.encode(data),
44
+ network,
45
+ derivationPath,
46
+ };
47
+ }
24
48
 
25
49
  enum CryptopayCurrencies { // eslint-disable-line
26
50
  BTC = 'BTC',
@@ -34,19 +58,6 @@ type CryptopayAddress = {
34
58
  currencyConversionExpiryDate?: Date;
35
59
  };
36
60
 
37
- const getDerivationPath = (currency: CryptopayCurrencies, index: number): string => {
38
- const address = `${(parseInt(CRYPTOPAY_DERIVATION_START, 10) || 0) + index}`;
39
- if (currency === CryptopayCurrencies.ETH) {
40
- const pathComponents = ethers.defaultPath.split('/');
41
- pathComponents[pathComponents.length - 1] = address;
42
- return pathComponents.join('/');
43
- }
44
- if (currency === CryptopayCurrencies.BTC) {
45
- return `m/44'/0'/0'/0/${address}`;
46
- }
47
- return `0/${address}`;
48
- };
49
-
50
61
  const Cryptopay: IPaymentAdapter = {
51
62
  ...PaymentAdapter,
52
63
 
@@ -154,18 +165,17 @@ const Cryptopay: IPaymentAdapter = {
154
165
 
155
166
  const cryptoAddresses: CryptopayAddress[] = [];
156
167
  if (CRYPTOPAY_BTC_XPUB) {
157
- const network = CRYPTOPAY_BTC_TESTNET ? networks.testnet : networks.bitcoin;
168
+ const { xpub, network } = convertExtendedPublicKey(CRYPTOPAY_BTC_XPUB);
158
169
  const bip32 = BIP32Factory(ecc);
159
- const hardenedMaster = bip32.fromBase58(CRYPTOPAY_BTC_XPUB, network);
170
+ const hardenedMaster = bip32.fromBase58(xpub, network);
160
171
  const btcDerivationNumber = await modules.cryptopay.getNextDerivationNumber(
161
172
  CryptopayCurrencies.BTC,
162
173
  );
163
- const derivationPath = getDerivationPath(CryptopayCurrencies.BTC, btcDerivationNumber);
164
- const child = hardenedMaster.derivePath(derivationPath);
174
+ const child = hardenedMaster.derivePath(`0/${btcDerivationNumber}`);
165
175
  cryptoAddresses.push({
166
176
  currency: CryptopayCurrencies.BTC,
167
- address: payments.p2pkh({
168
- pubkey: child.publicKey,
177
+ address: payments.p2wpkh({
178
+ pubkey: child.publicKey as Buffer,
169
179
  network,
170
180
  }).address,
171
181
  });
@@ -179,11 +189,9 @@ const Cryptopay: IPaymentAdapter = {
179
189
  const ethDerivationNumber = await modules.cryptopay.getNextDerivationNumber(
180
190
  CryptopayCurrencies.ETH,
181
191
  );
182
- const derivationPath = getDerivationPath(CryptopayCurrencies.ETH, ethDerivationNumber);
183
- const cleanedForHD = derivationPath.split('/').slice(-2).join('/');
184
192
  cryptoAddresses.push({
185
193
  currency: CryptopayCurrencies.ETH,
186
- address: hardenedMaster.derivePath(cleanedForHD).address,
194
+ address: hardenedMaster.derivePath(`0/${ethDerivationNumber}`).address,
187
195
  });
188
196
  }
189
197
 
@@ -18,7 +18,7 @@ export const initStripeClient = async (): Promise<StripeType> => {
18
18
  // @ts-ignore
19
19
  const { default: Stripe } = await import('stripe');
20
20
  stripe = new Stripe(STRIPE_SECRET, {
21
- apiVersion: '2024-12-18.acacia',
21
+ apiVersion: '2025-01-27.acacia',
22
22
  });
23
23
  return stripe;
24
24
  };
@@ -26,19 +26,6 @@ export default (fastify: FastifyInstance, { unchainedAPI }: { unchainedAPI: Unch
26
26
  connectCryptoToFastify(fastify, unchainedAPI);
27
27
 
28
28
  fastify.register((s, opts, registered) => {
29
- // Disable JSON parsing!
30
- // fastify.addContentTypeParser(
31
- // 'application/json',
32
- // { parseAs: 'string', bodyLimit: 1024 * 1024 },
33
- // function (req, body, done) {
34
- // try {
35
- // done(null, body);
36
- // } catch (err) {
37
- // err.statusCode = 400;
38
- // done(err, undefined);
39
- // }
40
- // },
41
- // );
42
29
  s.addContentTypeParser(
43
30
  'application/json',
44
31
  { parseAs: 'string', bodyLimit: 1024 * 1024 },
@@ -81,7 +68,5 @@ export default (fastify: FastifyInstance, { unchainedAPI }: { unchainedAPI: Unch
81
68
  handler: saferpayHandler,
82
69
  });
83
70
 
84
- // app.use(STRIPE_WEBHOOK_PATH, express.raw({ type: 'application/json' }), stripeHandler);
85
-
86
71
  configureGenerateOrderAutoscheduling();
87
72
  };