@unchainedshop/plugins 2.0.0-beta8 → 2.0.0-beta9
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.
- package/lib/delivery/send-message.js +2 -2
- package/lib/delivery/send-message.js.map +1 -1
- package/lib/payment/apple-iap/adapter.js +10 -8
- package/lib/payment/apple-iap/adapter.js.map +1 -1
- package/lib/payment/apple-iap/module/configureAppleTransactionsModule.js +1 -2
- package/lib/payment/apple-iap/module/configureAppleTransactionsModule.js.map +1 -1
- package/lib/payment/datatrans-v2/index.js +2 -2
- package/lib/payment/datatrans-v2/index.js.map +1 -1
- package/lib/payment/datatrans-v2/middleware.js +3 -3
- package/lib/payment/datatrans-v2/middleware.js.map +1 -1
- package/lib/payment/datatrans-v2/roundedAmountFromOrder.d.ts +2 -2
- package/lib/payment/datatrans-v2/roundedAmountFromOrder.js.map +1 -1
- package/lib/payment/postfinance-checkout/index.js +4 -9
- package/lib/payment/postfinance-checkout/index.js.map +1 -1
- package/lib/payment/stripe.js +6 -6
- package/lib/payment/stripe.js.map +1 -1
- package/lib/payment/worldline-saferpay/index.js +2 -6
- package/lib/payment/worldline-saferpay/index.js.map +1 -1
- package/lib/warehousing/eth-minter.js +3 -3
- package/lib/warehousing/eth-minter.js.map +1 -1
- package/lib/worker/bulk-import.js +1 -2
- package/lib/worker/bulk-import.js.map +1 -1
- package/lib/worker/enrollment-order-generator.js +13 -12
- package/lib/worker/enrollment-order-generator.js.map +1 -1
- package/lib/worker/message.js +4 -4
- package/lib/worker/message.js.map +1 -1
- package/lib/worker/update-coinbase-rates.js +3 -3
- package/lib/worker/update-coinbase-rates.js.map +1 -1
- package/lib/worker/update-ecb-rates.js +2 -2
- package/lib/worker/update-ecb-rates.js.map +1 -1
- package/lib/worker/update-token-ownership.js +3 -3
- package/lib/worker/update-token-ownership.js.map +1 -1
- package/lib/worker/zombie-killer.js +26 -6
- package/lib/worker/zombie-killer.js.map +1 -1
- package/package.json +21 -20
- package/src/delivery/send-message.ts +10 -13
- package/src/payment/apple-iap/adapter.ts +11 -16
- package/src/payment/apple-iap/module/configureAppleTransactionsModule.ts +1 -2
- package/src/payment/datatrans-v2/index.ts +2 -4
- package/src/payment/datatrans-v2/middleware.ts +6 -6
- package/src/payment/datatrans-v2/roundedAmountFromOrder.ts +2 -2
- package/src/payment/postfinance-checkout/index.ts +5 -9
- package/src/payment/stripe.ts +6 -6
- package/src/payment/worldline-saferpay/index.ts +2 -6
- package/src/warehousing/eth-minter.ts +3 -3
- package/src/worker/bulk-import.ts +1 -6
- package/src/worker/enrollment-order-generator.ts +21 -23
- package/src/worker/message.ts +6 -10
- package/src/worker/update-coinbase-rates.ts +3 -3
- package/src/worker/update-ecb-rates.ts +2 -2
- package/src/worker/update-token-ownership.ts +10 -13
- package/src/worker/zombie-killer.ts +30 -7
- package/tests/plugins-index.test.js +3 -0
|
@@ -1,21 +1,22 @@
|
|
|
1
1
|
import { EnrollmentDirector, enrollmentsSettings, EnrollmentStatus, } from '@unchainedshop/core-enrollments';
|
|
2
2
|
import { WorkerAdapter, WorkerDirector } from '@unchainedshop/core-worker';
|
|
3
|
-
const generateOrder = async (enrollment, params,
|
|
3
|
+
const generateOrder = async (enrollment, params, unchainedAPI) => {
|
|
4
4
|
if (!enrollment.payment || !enrollment.delivery)
|
|
5
5
|
return null;
|
|
6
|
-
const { modules } =
|
|
6
|
+
const { modules } = unchainedAPI;
|
|
7
7
|
const { orderProducts, orderContext, ...configuration } = params;
|
|
8
8
|
let order = await modules.orders.create({
|
|
9
|
+
userId: enrollment.userId,
|
|
9
10
|
currency: enrollment.currencyCode,
|
|
10
11
|
countryCode: enrollment.countryCode,
|
|
11
12
|
contact: enrollment.contact,
|
|
12
13
|
billingAddress: enrollment.billingAddress,
|
|
13
14
|
originEnrollmentId: enrollment._id,
|
|
14
15
|
...configuration,
|
|
15
|
-
}
|
|
16
|
+
});
|
|
16
17
|
const orderId = order._id;
|
|
17
18
|
if (orderProducts) {
|
|
18
|
-
await Promise.all(orderProducts.map(({ orderPosition, product }) => modules.orders.positions.addProductItem(orderPosition, { order, product },
|
|
19
|
+
await Promise.all(orderProducts.map(({ orderPosition, product }) => modules.orders.positions.addProductItem(orderPosition, { order, product }, unchainedAPI)));
|
|
19
20
|
}
|
|
20
21
|
else {
|
|
21
22
|
const product = await modules.products.findProduct({
|
|
@@ -24,21 +25,21 @@ const generateOrder = async (enrollment, params, requestContext) => {
|
|
|
24
25
|
await modules.orders.positions.addProductItem({ quantity: 1 }, {
|
|
25
26
|
order,
|
|
26
27
|
product,
|
|
27
|
-
},
|
|
28
|
+
}, unchainedAPI);
|
|
28
29
|
}
|
|
29
30
|
const { paymentProviderId, context: paymentContext } = enrollment.payment;
|
|
30
31
|
if (paymentProviderId) {
|
|
31
|
-
await modules.orders.setPaymentProvider(orderId, paymentProviderId,
|
|
32
|
+
await modules.orders.setPaymentProvider(orderId, paymentProviderId, unchainedAPI);
|
|
32
33
|
}
|
|
33
34
|
const { deliveryProviderId, context: deliveryContext } = enrollment.delivery;
|
|
34
35
|
if (deliveryProviderId) {
|
|
35
|
-
await modules.orders.setDeliveryProvider(orderId, deliveryProviderId,
|
|
36
|
+
await modules.orders.setDeliveryProvider(orderId, deliveryProviderId, unchainedAPI);
|
|
36
37
|
}
|
|
37
38
|
order = await modules.orders.checkout(order._id, {
|
|
38
39
|
paymentContext,
|
|
39
40
|
deliveryContext,
|
|
40
41
|
orderContext,
|
|
41
|
-
},
|
|
42
|
+
}, unchainedAPI);
|
|
42
43
|
return order;
|
|
43
44
|
};
|
|
44
45
|
const GenerateOrderWorker = {
|
|
@@ -47,14 +48,14 @@ const GenerateOrderWorker = {
|
|
|
47
48
|
label: 'Generates new Orders from Enrollments',
|
|
48
49
|
version: '1.0.0',
|
|
49
50
|
type: 'ENROLLMENT_ORDER_GENERATOR',
|
|
50
|
-
doWork: async (input,
|
|
51
|
-
const { modules } =
|
|
51
|
+
doWork: async (input, unchainedAPI) => {
|
|
52
|
+
const { modules } = unchainedAPI;
|
|
52
53
|
const enrollments = await modules.enrollments.findEnrollments({
|
|
53
54
|
status: [EnrollmentStatus.ACTIVE, EnrollmentStatus.PAUSED],
|
|
54
55
|
});
|
|
55
56
|
const errors = (await Promise.all(enrollments.map(async (enrollment) => {
|
|
56
57
|
try {
|
|
57
|
-
const director = await EnrollmentDirector.actions({ enrollment },
|
|
58
|
+
const director = await EnrollmentDirector.actions({ enrollment }, unchainedAPI);
|
|
58
59
|
const period = await director.nextPeriod();
|
|
59
60
|
if (period) {
|
|
60
61
|
const configuration = await director.configurationForOrder({
|
|
@@ -62,7 +63,7 @@ const GenerateOrderWorker = {
|
|
|
62
63
|
period,
|
|
63
64
|
});
|
|
64
65
|
if (configuration) {
|
|
65
|
-
const order = await generateOrder(enrollment, configuration,
|
|
66
|
+
const order = await generateOrder(enrollment, configuration, unchainedAPI);
|
|
66
67
|
if (order) {
|
|
67
68
|
await modules.enrollments.addEnrollmentPeriod(enrollment._id, {
|
|
68
69
|
...period,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enrollment-order-generator.js","sourceRoot":"","sources":["../../src/worker/enrollment-order-generator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"enrollment-order-generator.js","sourceRoot":"","sources":["../../src/worker/enrollment-order-generator.ts"],"names":[],"mappings":"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"}
|
package/lib/worker/message.js
CHANGED
|
@@ -8,19 +8,19 @@ export const MessageWorker = {
|
|
|
8
8
|
label: 'Send Message by combining payload with a template and start concrete jobs',
|
|
9
9
|
version: '1.0.0',
|
|
10
10
|
type: 'MESSAGE',
|
|
11
|
-
doWork: async ({ template, ...payload },
|
|
11
|
+
doWork: async ({ template, ...payload }, unchainedAPI, workId) => {
|
|
12
12
|
try {
|
|
13
13
|
const templateResolver = MessagingDirector.getTemplate(template);
|
|
14
14
|
const workConfigurations = await templateResolver({
|
|
15
15
|
template,
|
|
16
16
|
...payload,
|
|
17
|
-
},
|
|
17
|
+
}, unchainedAPI);
|
|
18
18
|
if (workConfigurations.length > 0) {
|
|
19
19
|
const forked = await Promise.all(workConfigurations.map(async (workConfiguration) => {
|
|
20
|
-
const work = await
|
|
20
|
+
const work = await unchainedAPI.modules.worker.addWork({
|
|
21
21
|
...workConfiguration,
|
|
22
22
|
originalWorkId: workId,
|
|
23
|
-
}
|
|
23
|
+
});
|
|
24
24
|
delete work.input;
|
|
25
25
|
return work;
|
|
26
26
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/worker/message.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/worker/message.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,MAAM,CAAC,MAAM,eAAe,GAAG,YAAY,CAAC,0BAA0B,CAAC,CAAC;AAExE,MAAM,CAAC,MAAM,aAAa,GAGtB;IACF,GAAG,aAAa;IAEhB,GAAG,EAAE,sCAAsC;IAC3C,KAAK,EAAE,2EAA2E;IAClF,OAAO,EAAE,OAAO;IAChB,IAAI,EAAE,SAAS;IAEf,MAAM,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,GAAG,OAAO,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE;QAC/D,IAAI;YACF,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAEjE,MAAM,kBAAkB,GAAG,MAAM,gBAAgB,CAC/C;gBACE,QAAQ;gBACR,GAAG,OAAO;aACX,EACD,YAAY,CACb,CAAC;YAEF,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE;gBACjC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAC9B,kBAAkB,CAAC,GAAG,CAAC,KAAK,EAAE,iBAAsB,EAAE,EAAE;oBACtD,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;wBACrD,GAAG,iBAAiB;wBACpB,cAAc,EAAE,MAAM;qBACvB,CAAC,CAAC;oBACH,OAAO,IAAI,CAAC,KAAK,CAAC;oBAClB,OAAO,IAAI,CAAC;gBACd,CAAC,CAAC,CACH,CAAC;gBACF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC;aAC9C;YACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,CAAC;SAC/D;QAAC,OAAO,GAAG,EAAE;YACZ,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAChC,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,OAAO,EAAE,GAAG,CAAC,OAAO;oBACpB,KAAK,EAAE,GAAG,CAAC,KAAK;iBACjB;aACF,CAAC;SACH;IACH,CAAC;CACF,CAAC;AAEF,cAAc,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC"}
|
|
@@ -15,12 +15,12 @@ const UpdateCoinbaseRates = {
|
|
|
15
15
|
label: 'Update Coinbase Rates',
|
|
16
16
|
version: '1.0.0',
|
|
17
17
|
type: 'UPDATE_COINBASE_RATES',
|
|
18
|
-
doWork: async (input,
|
|
19
|
-
const { modules, services } =
|
|
18
|
+
doWork: async (input, unchainedAPI) => {
|
|
19
|
+
const { modules, services } = unchainedAPI;
|
|
20
20
|
try {
|
|
21
21
|
const currencyCode = await services.countries.resolveDefaultCurrencyCode({
|
|
22
22
|
isoCode: systemLocale.country,
|
|
23
|
-
},
|
|
23
|
+
}, unchainedAPI);
|
|
24
24
|
const currencies = await modules.currencies.findCurrencies({ includeInactive: true });
|
|
25
25
|
const currencyCodes = currencies.map((currency) => currency.isoCode);
|
|
26
26
|
const { currency: baseCurrency, rates: pairs, } = await getExchangeRates(currencyCode);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-coinbase-rates.js","sourceRoot":"","sources":["../../src/worker/update-coinbase-rates.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,KAAK,MAAM,eAAe,CAAC;AAElC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,MAAM,gBAAgB,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE;IACtC,OAAO,KAAK,CAAC,uDAAuD,IAAI,EAAE,EAAE;QAC1E,MAAM,EAAE,KAAK;KACd,CAAC;SACC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;SACzB,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAC1B,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAElD,MAAM,mBAAmB,GAA6B;IACpD,GAAG,aAAa;IAEhB,GAAG,EAAE,6CAA6C;IAClD,KAAK,EAAE,uBAAuB;IAC9B,OAAO,EAAE,OAAO;IAChB,IAAI,EAAE,uBAAuB;IAE7B,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"update-coinbase-rates.js","sourceRoot":"","sources":["../../src/worker/update-coinbase-rates.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,8 +21,8 @@ const UpdateECBRates = {
|
|
|
21
21
|
label: 'Update ECB Rates',
|
|
22
22
|
version: '1.0.0',
|
|
23
23
|
type: 'UPDATE_ECB_RATES',
|
|
24
|
-
doWork: async (input,
|
|
25
|
-
const { modules } =
|
|
24
|
+
doWork: async (input, unchainedAPI) => {
|
|
25
|
+
const { modules } = unchainedAPI;
|
|
26
26
|
try {
|
|
27
27
|
const data = await getExchangeRates();
|
|
28
28
|
const timestamp = new Date();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-ecb-rates.js","sourceRoot":"","sources":["../../src/worker/update-ecb-rates.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,KAAK,MAAM,eAAe,CAAC;AAClC,OAAO,KAAK,MAAM,QAAQ,CAAC;AAG3B,MAAM,gBAAgB,GAAG,KAAK,IAAI,EAAE;IAClC,OAAO,KAAK,CAAC,+DAA+D,EAAE;QAC5E,MAAM,EAAE,KAAK;KACd,CAAC;SACC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;SACzB,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;SAChD,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CACb,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ;SACzB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC;QAClD,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,CAC/D,CAAC;AACN,CAAC,CAAC;AAEF,6GAA6G;AAC7G,gBAAgB;AAChB,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAEtD,MAAM,YAAY,GAAG,KAAK,CAAC;AAE3B,MAAM,cAAc,GAA6B;IAC/C,GAAG,aAAa;IAEhB,GAAG,EAAE,wCAAwC;IAC7C,KAAK,EAAE,kBAAkB;IACzB,OAAO,EAAE,OAAO;IAChB,IAAI,EAAE,kBAAkB;IAExB,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"update-ecb-rates.js","sourceRoot":"","sources":["../../src/worker/update-ecb-rates.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,8 +19,8 @@ export const RefreshTokens = {
|
|
|
19
19
|
version: '1.0.0',
|
|
20
20
|
type: 'REFRESH_TOKENS',
|
|
21
21
|
external: false,
|
|
22
|
-
async doWork(input,
|
|
23
|
-
const { modules } =
|
|
22
|
+
async doWork(input, unchainedAPI) {
|
|
23
|
+
const { modules } = unchainedAPI;
|
|
24
24
|
const tokens = await modules.warehousing.findTokens({});
|
|
25
25
|
const users = await modules.users.findUsers({ includeGuests: true });
|
|
26
26
|
const accounts = users.flatMap((user) => {
|
|
@@ -45,7 +45,7 @@ export const RefreshTokens = {
|
|
|
45
45
|
accounts: [...new Set(accounts)],
|
|
46
46
|
},
|
|
47
47
|
},
|
|
48
|
-
}
|
|
48
|
+
});
|
|
49
49
|
return { success: true, result: { forked } };
|
|
50
50
|
},
|
|
51
51
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-token-ownership.js","sourceRoot":"","sources":["../../src/worker/update-token-ownership.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE7F,OAAO,KAAK,MAAM,eAAe,CAAC;AAElC,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAElD,MAAM,CAAC,MAAM,oBAAoB,GAA+B;IAC9D,GAAG,aAAa;IAEhB,GAAG,EAAE,qDAAqD;IAC1D,KAAK,EAAE,wDAAwD;IAC/D,OAAO,EAAE,OAAO;IAChB,IAAI,EAAE,wBAAwB;IAC9B,QAAQ,EAAE,IAAI;IAEd,KAAK,CAAC,MAAM;QACV,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAA8B;IACtD,GAAG,aAAa;IAEhB,GAAG,EAAE,6CAA6C;IAClD,KAAK,EAAE,uCAAuC;IAC9C,OAAO,EAAE,OAAO;IAChB,IAAI,EAAE,gBAAgB;IACtB,QAAQ,EAAE,KAAK;IAEf,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"update-token-ownership.js","sourceRoot":"","sources":["../../src/worker/update-token-ownership.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { WorkerDirector, WorkerAdapter } from '@unchainedshop/core-worker';
|
|
2
2
|
import { createLogger } from '@unchainedshop/logger';
|
|
3
3
|
const logger = createLogger('unchained:platform:zombie-killer');
|
|
4
|
-
const mapId = (a) => a._id;
|
|
5
4
|
export const ZombieKillerWorker = {
|
|
6
5
|
...WorkerAdapter,
|
|
7
6
|
key: 'shop.unchained.worker-plugin.zombie-killer',
|
|
@@ -12,21 +11,38 @@ export const ZombieKillerWorker = {
|
|
|
12
11
|
const { modules, services } = unchainedAPI;
|
|
13
12
|
try {
|
|
14
13
|
const error = false;
|
|
15
|
-
// Remove unreferenced
|
|
14
|
+
// Remove unreferenced filter entities
|
|
15
|
+
const filters = await modules.filters.findFilters({ includeInactive: true }, { projection: { _id: 1 } });
|
|
16
|
+
const filterIds = filters.map((a) => a._id);
|
|
17
|
+
const deletedFilterTextsCount = await modules.filters.texts.deleteMany({
|
|
18
|
+
excludedFilterIds: filterIds,
|
|
19
|
+
});
|
|
20
|
+
// Remove unreferenced assortment entities
|
|
16
21
|
const assortments = await modules.assortments.findAssortments({ includeInactive: true, includeLeaves: true }, { projection: { _id: 1 } });
|
|
22
|
+
const assortmentIds = assortments.map((a) => a._id);
|
|
23
|
+
const deletedAssortmentTextsCount = await modules.assortments.texts.deleteMany({
|
|
24
|
+
excludedAssortmentIds: assortmentIds,
|
|
25
|
+
});
|
|
17
26
|
const deletedAssortmentMediaCount = await modules.assortments.media.deleteMediaFiles({
|
|
18
|
-
excludedAssortmentIds:
|
|
27
|
+
excludedAssortmentIds: assortmentIds,
|
|
19
28
|
});
|
|
20
|
-
// Remove unreferenced product
|
|
29
|
+
// Remove unreferenced product entities
|
|
21
30
|
const products = await modules.products.findProducts({ includeDrafts: true }, { projection: { _id: 1 } });
|
|
31
|
+
const productIds = products.map((a) => a._id);
|
|
32
|
+
const deletedProductTextsCount = await modules.products.texts.deleteMany({
|
|
33
|
+
excludedProductIds: productIds,
|
|
34
|
+
});
|
|
35
|
+
const deletedProductVariationsCount = await modules.products.variations.deleteVariations({
|
|
36
|
+
excludedProductIds: productIds,
|
|
37
|
+
});
|
|
22
38
|
const deletedProductMediaCount = await modules.products.media.deleteMediaFiles({
|
|
23
|
-
excludedProductIds:
|
|
39
|
+
excludedProductIds: productIds,
|
|
24
40
|
});
|
|
25
41
|
// Remove unreferenced files
|
|
26
42
|
const productMedia = await modules.products.media.findProductMedias({}, { projection: { mediaId: 1 } });
|
|
27
43
|
const assortmentMedia = await modules.assortments.media.findAssortmentMedias({}, { projection: { mediaId: 1 } });
|
|
28
44
|
const allFileIdsLinked = [...productMedia, ...assortmentMedia].map((l) => l?.mediaId);
|
|
29
|
-
const allFileIdsRelevant = (await modules.files.findFiles({ path: { $in: ['product-media', 'assortment-media'] } }, { projection: { _id: 1 } })).map(
|
|
45
|
+
const allFileIdsRelevant = (await modules.files.findFiles({ path: { $in: ['product-media', 'assortment-media'] } }, { projection: { _id: 1 } })).map((a) => a._id);
|
|
30
46
|
const fileIdsToRemove = allFileIdsRelevant.filter((fileId) => {
|
|
31
47
|
return !allFileIdsLinked.includes(fileId);
|
|
32
48
|
});
|
|
@@ -38,8 +54,12 @@ export const ZombieKillerWorker = {
|
|
|
38
54
|
: 0;
|
|
39
55
|
// Return delete count
|
|
40
56
|
const result = {
|
|
57
|
+
deletedFilterTextsCount,
|
|
41
58
|
deletedProductMediaCount,
|
|
59
|
+
deletedProductTextsCount,
|
|
60
|
+
deletedProductVariationsCount,
|
|
42
61
|
deletedAssortmentMediaCount,
|
|
62
|
+
deletedAssortmentTextsCount,
|
|
43
63
|
deletedFilesCount,
|
|
44
64
|
};
|
|
45
65
|
if (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zombie-killer.js","sourceRoot":"","sources":["../../src/worker/zombie-killer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,MAAM,MAAM,GAAG,YAAY,CAAC,kCAAkC,CAAC,CAAC;AAEhE,MAAM,
|
|
1
|
+
{"version":3,"file":"zombie-killer.js","sourceRoot":"","sources":["../../src/worker/zombie-killer.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@unchainedshop/plugins",
|
|
3
|
-
"version": "2.0.0-
|
|
3
|
+
"version": "2.0.0-beta9",
|
|
4
4
|
"main": "lib/plugins-index.js",
|
|
5
5
|
"types": "lib/plugins-index.d.ts",
|
|
6
6
|
"exports": {
|
|
@@ -53,7 +53,8 @@
|
|
|
53
53
|
"clean": "rm -rf lib",
|
|
54
54
|
"build": "npm run clean && tsc",
|
|
55
55
|
"watch": "tsc -w",
|
|
56
|
-
"test": "jest --
|
|
56
|
+
"test": "NODE_OPTIONS=--experimental-vm-modules jest --detectOpenHandles --forceExit",
|
|
57
|
+
"test:watch": "NODE_OPTIONS=--experimental-vm-modules jest --watch --detectOpenHandles --forceExit"
|
|
57
58
|
},
|
|
58
59
|
"repository": {
|
|
59
60
|
"type": "git",
|
|
@@ -74,24 +75,24 @@
|
|
|
74
75
|
"express": "^4.18.2"
|
|
75
76
|
},
|
|
76
77
|
"devDependencies": {
|
|
77
|
-
"@types/node": "^18.11.
|
|
78
|
-
"@unchainedshop/api": "^2.0.0-
|
|
78
|
+
"@types/node": "^18.11.12",
|
|
79
|
+
"@unchainedshop/api": "^2.0.0-beta9",
|
|
79
80
|
"@unchainedshop/client-oauth2": "^4.3.3",
|
|
80
|
-
"@unchainedshop/core-delivery": "^2.0.0-
|
|
81
|
-
"@unchainedshop/core-enrollments": "^2.0.0-
|
|
82
|
-
"@unchainedshop/core-filters": "^2.0.0-
|
|
83
|
-
"@unchainedshop/core-messaging": "^2.0.0-
|
|
84
|
-
"@unchainedshop/core-orders": "^2.0.0-
|
|
85
|
-
"@unchainedshop/core-payment": "^2.0.0-
|
|
86
|
-
"@unchainedshop/core-products": "^2.0.0-
|
|
87
|
-
"@unchainedshop/core-quotations": "^2.0.0-
|
|
88
|
-
"@unchainedshop/core-warehousing": "^2.0.0-
|
|
89
|
-
"@unchainedshop/core-worker": "^2.0.0-
|
|
90
|
-
"@unchainedshop/events": "^2.0.0-
|
|
91
|
-
"@unchainedshop/file-upload": "^2.0.0-
|
|
92
|
-
"@unchainedshop/logger": "^2.0.0-
|
|
93
|
-
"@unchainedshop/types": "^2.0.0-
|
|
94
|
-
"@unchainedshop/utils": "^2.0.0-
|
|
81
|
+
"@unchainedshop/core-delivery": "^2.0.0-beta9",
|
|
82
|
+
"@unchainedshop/core-enrollments": "^2.0.0-beta9",
|
|
83
|
+
"@unchainedshop/core-filters": "^2.0.0-beta9",
|
|
84
|
+
"@unchainedshop/core-messaging": "^2.0.0-beta9",
|
|
85
|
+
"@unchainedshop/core-orders": "^2.0.0-beta9",
|
|
86
|
+
"@unchainedshop/core-payment": "^2.0.0-beta9",
|
|
87
|
+
"@unchainedshop/core-products": "^2.0.0-beta9",
|
|
88
|
+
"@unchainedshop/core-quotations": "^2.0.0-beta9",
|
|
89
|
+
"@unchainedshop/core-warehousing": "^2.0.0-beta9",
|
|
90
|
+
"@unchainedshop/core-worker": "^2.0.0-beta9",
|
|
91
|
+
"@unchainedshop/events": "^2.0.0-beta9",
|
|
92
|
+
"@unchainedshop/file-upload": "^2.0.0-beta9",
|
|
93
|
+
"@unchainedshop/logger": "^2.0.0-beta9",
|
|
94
|
+
"@unchainedshop/types": "^2.0.0-beta9",
|
|
95
|
+
"@unchainedshop/utils": "^2.0.0-beta9",
|
|
95
96
|
"bluebird": "^3.7.2",
|
|
96
97
|
"event-iterator": "^2.0.0",
|
|
97
98
|
"express": "^4.18.2",
|
|
@@ -106,7 +107,7 @@
|
|
|
106
107
|
"request": "^2.88.2",
|
|
107
108
|
"stripe": "^10.17.0",
|
|
108
109
|
"ts-jest": "^29.0.3",
|
|
109
|
-
"typescript": "^4.9.
|
|
110
|
+
"typescript": "^4.9.4",
|
|
110
111
|
"xml-js": "^1.6.11",
|
|
111
112
|
"xml2js": "0.4.23"
|
|
112
113
|
}
|
|
@@ -31,20 +31,17 @@ const SendMessage: IDeliveryAdapter = {
|
|
|
31
31
|
},
|
|
32
32
|
|
|
33
33
|
send: async () => {
|
|
34
|
-
const { modules, order
|
|
35
|
-
|
|
36
|
-
return modules.worker.addWork(
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
config,
|
|
44
|
-
},
|
|
34
|
+
const { modules, order } = context;
|
|
35
|
+
|
|
36
|
+
return modules.worker.addWork({
|
|
37
|
+
type: 'MESSAGE',
|
|
38
|
+
retries: 0,
|
|
39
|
+
input: {
|
|
40
|
+
template: 'DELIVERY',
|
|
41
|
+
orderId: order._id,
|
|
42
|
+
config,
|
|
45
43
|
},
|
|
46
|
-
|
|
47
|
-
);
|
|
44
|
+
});
|
|
48
45
|
},
|
|
49
46
|
};
|
|
50
47
|
},
|
|
@@ -4,6 +4,7 @@ import { IPaymentAdapter } from '@unchainedshop/types/payments';
|
|
|
4
4
|
import { EnrollmentStatus } from '@unchainedshop/core-enrollments';
|
|
5
5
|
import { PaymentAdapter, PaymentDirector, PaymentError } from '@unchainedshop/core-payment';
|
|
6
6
|
import { createLogger } from '@unchainedshop/logger';
|
|
7
|
+
import { UnchainedCore } from '@unchainedshop/types/core';
|
|
7
8
|
import { AppleTransactionsModule } from './module/configureAppleTransactionsModule';
|
|
8
9
|
|
|
9
10
|
const logger = createLogger('unchained:core-payment:iap');
|
|
@@ -43,7 +44,7 @@ const AppleNotificationTypes = {
|
|
|
43
44
|
|
|
44
45
|
const fixPeriods = async (
|
|
45
46
|
{ transactionId, enrollmentId, orderId, transactions },
|
|
46
|
-
|
|
47
|
+
unchainedAPI: UnchainedCore,
|
|
47
48
|
) => {
|
|
48
49
|
const relevantTransactions = transactions.filter(
|
|
49
50
|
// eslint-disable-next-line
|
|
@@ -65,19 +66,11 @@ const fixPeriods = async (
|
|
|
65
66
|
return left.end.getTime() - right.end.getTime();
|
|
66
67
|
});
|
|
67
68
|
|
|
68
|
-
await
|
|
69
|
-
enrollmentId,
|
|
70
|
-
orderId,
|
|
71
|
-
requestContext.userId,
|
|
72
|
-
);
|
|
69
|
+
await unchainedAPI.modules.enrollments.removeEnrollmentPeriodByOrderId(enrollmentId, orderId);
|
|
73
70
|
|
|
74
71
|
return Promise.all(
|
|
75
72
|
adjustedEnrollmentPeriods.map((period) =>
|
|
76
|
-
|
|
77
|
-
enrollmentId,
|
|
78
|
-
period,
|
|
79
|
-
requestContext.userId,
|
|
80
|
-
),
|
|
73
|
+
unchainedAPI.modules.enrollments.addEnrollmentPeriod(enrollmentId, period),
|
|
81
74
|
),
|
|
82
75
|
);
|
|
83
76
|
};
|
|
@@ -86,7 +79,7 @@ export const appleIAPHandler = async (req, res) => {
|
|
|
86
79
|
if (req.method === 'POST') {
|
|
87
80
|
try {
|
|
88
81
|
const resolvedContext = req.unchainedContext as Context;
|
|
89
|
-
const { modules
|
|
82
|
+
const { modules } = resolvedContext;
|
|
90
83
|
const responseBody = req.body || {};
|
|
91
84
|
if (responseBody.password !== APPLE_IAP_SHARED_SECRET) {
|
|
92
85
|
throw new Error('shared secret not valid');
|
|
@@ -154,12 +147,13 @@ export const appleIAPHandler = async (req, res) => {
|
|
|
154
147
|
orderId: originalOrder._id,
|
|
155
148
|
});
|
|
156
149
|
|
|
157
|
-
await
|
|
150
|
+
await modules.payment.registerCredentials(
|
|
158
151
|
enrollment.payment.paymentProviderId,
|
|
159
152
|
{
|
|
160
153
|
transactionContext: {
|
|
161
154
|
receiptData: responseBody?.unified_receipt?.latest_receipt, // eslint-disable-line
|
|
162
155
|
},
|
|
156
|
+
userId: enrollment.userId,
|
|
163
157
|
},
|
|
164
158
|
resolvedContext,
|
|
165
159
|
);
|
|
@@ -183,7 +177,7 @@ export const appleIAPHandler = async (req, res) => {
|
|
|
183
177
|
enrollment.status !== EnrollmentStatus.TERMINATED &&
|
|
184
178
|
responseBody.auto_renew_status === 'false'
|
|
185
179
|
) {
|
|
186
|
-
await modules.enrollments.terminateEnrollment(enrollment,
|
|
180
|
+
await modules.enrollments.terminateEnrollment(enrollment, resolvedContext);
|
|
187
181
|
}
|
|
188
182
|
}
|
|
189
183
|
|
|
@@ -192,7 +186,7 @@ export const appleIAPHandler = async (req, res) => {
|
|
|
192
186
|
enrollment.status !== EnrollmentStatus.TERMINATED &&
|
|
193
187
|
responseBody.auto_renew_status === 'false'
|
|
194
188
|
) {
|
|
195
|
-
await modules.enrollments.terminateEnrollment(enrollment,
|
|
189
|
+
await modules.enrollments.terminateEnrollment(enrollment, resolvedContext);
|
|
196
190
|
}
|
|
197
191
|
}
|
|
198
192
|
logger.info(`Apple IAP Webhook: Updated enrollment from Apple`);
|
|
@@ -225,7 +219,7 @@ const AppleIAP: IPaymentAdapter = {
|
|
|
225
219
|
},
|
|
226
220
|
|
|
227
221
|
actions: (params) => {
|
|
228
|
-
const { modules
|
|
222
|
+
const { modules } = params.context;
|
|
229
223
|
|
|
230
224
|
const adapterActions = {
|
|
231
225
|
...PaymentAdapter.actions(params),
|
|
@@ -355,6 +349,7 @@ const AppleIAP: IPaymentAdapter = {
|
|
|
355
349
|
throw new Error('Apple IAP Plugin: Transaction already processed');
|
|
356
350
|
|
|
357
351
|
// All good
|
|
352
|
+
const userId = order?.userId || params.paymentContext?.userId;
|
|
358
353
|
await appleTransactions.createTransaction(
|
|
359
354
|
{
|
|
360
355
|
_id: transactionIdentifier,
|
|
@@ -19,11 +19,10 @@ export const configureAppleTransactionsModule = async ({
|
|
|
19
19
|
return AppleTransactions.findOne({ _id: transactionIdentifier });
|
|
20
20
|
},
|
|
21
21
|
|
|
22
|
-
createTransaction: async (doc
|
|
22
|
+
createTransaction: async (doc) => {
|
|
23
23
|
await AppleTransactions.insertOne({
|
|
24
24
|
...doc,
|
|
25
25
|
created: new Date(),
|
|
26
|
-
createdBy: userId,
|
|
27
26
|
});
|
|
28
27
|
return doc._id;
|
|
29
28
|
},
|
|
@@ -116,8 +116,8 @@ const Datatrans: IPaymentAdapter = {
|
|
|
116
116
|
|
|
117
117
|
const authorize = async ({ paymentCredentials, ...arbitraryFields }): Promise<string> => {
|
|
118
118
|
const { order, orderPayment } = params.paymentContext;
|
|
119
|
-
const userId = order?.userId || params.context.userId;
|
|
120
119
|
const refno = Buffer.from(orderPayment._id, 'hex').toString('base64');
|
|
120
|
+
const userId = order?.userId || params.paymentContext?.userId;
|
|
121
121
|
const refno2 = userId;
|
|
122
122
|
const { currency, amount } = roundedAmountFromOrder(order, params.context);
|
|
123
123
|
const splits = await getMarketplaceSplits();
|
|
@@ -249,12 +249,10 @@ const Datatrans: IPaymentAdapter = {
|
|
|
249
249
|
async sign(transactionContext: any = {}) {
|
|
250
250
|
const { useSecureFields = false, ...arbitraryFields } = transactionContext || {};
|
|
251
251
|
const { orderPayment, paymentProviderId, order } = params.paymentContext;
|
|
252
|
-
|
|
253
|
-
const userId = order?.userId || params.context?.userId;
|
|
254
|
-
|
|
255
252
|
const refno = Buffer.from(orderPayment ? orderPayment._id : paymentProviderId, 'hex').toString(
|
|
256
253
|
'base64',
|
|
257
254
|
);
|
|
255
|
+
const userId = order?.userId || params.paymentContext?.userId;
|
|
258
256
|
const refno2 = userId;
|
|
259
257
|
const price: { amount?: number; currency?: string } = order
|
|
260
258
|
? roundedAmountFromOrder(order, params.context)
|
|
@@ -14,7 +14,7 @@ const logger = createLogger('unchained:core-payment:datatrans');
|
|
|
14
14
|
|
|
15
15
|
export const datatransHandler = async (req, res) => {
|
|
16
16
|
const resolvedContext = req.unchainedContext as Context;
|
|
17
|
-
const {
|
|
17
|
+
const { modules } = resolvedContext;
|
|
18
18
|
const signature = req.headers['datatrans-signature'];
|
|
19
19
|
if (req.method === 'POST' && signature) {
|
|
20
20
|
const [rawTimestamp, rawHash] = signature.split(',');
|
|
@@ -42,10 +42,10 @@ export const datatransHandler = async (req, res) => {
|
|
|
42
42
|
try {
|
|
43
43
|
if (transaction.type === 'card_check') {
|
|
44
44
|
const paymentProviderId = referenceId;
|
|
45
|
-
const paymentCredentials = await
|
|
45
|
+
const paymentCredentials = await modules.payment.registerCredentials(
|
|
46
46
|
paymentProviderId,
|
|
47
|
-
{ transactionContext: { transactionId: transaction.transactionId } },
|
|
48
|
-
{ ...resolvedContext
|
|
47
|
+
{ userId, transactionContext: { transactionId: transaction.transactionId } },
|
|
48
|
+
{ ...resolvedContext },
|
|
49
49
|
);
|
|
50
50
|
logger.info(`Datatrans Webhook: Unchained registered payment credentials for ${userId}`, {
|
|
51
51
|
userId,
|
|
@@ -63,8 +63,8 @@ export const datatransHandler = async (req, res) => {
|
|
|
63
63
|
|
|
64
64
|
const order = await modules.orders.checkout(
|
|
65
65
|
orderPayment.orderId,
|
|
66
|
-
{ paymentContext: { transactionId: transaction.transactionId } },
|
|
67
|
-
|
|
66
|
+
{ paymentContext: { userId, transactionId: transaction.transactionId } },
|
|
67
|
+
resolvedContext,
|
|
68
68
|
);
|
|
69
69
|
res.writeHead(200);
|
|
70
70
|
logger.info(`Datatrans Webhook: Unchained confirmed checkout for order ${order.orderNumber}`, {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { UnchainedCore } from '@unchainedshop/types/core';
|
|
2
2
|
import { Order } from '@unchainedshop/types/orders';
|
|
3
3
|
|
|
4
4
|
const roundedAmountFromOrder = (
|
|
5
5
|
order: Order,
|
|
6
|
-
context:
|
|
6
|
+
context: UnchainedCore,
|
|
7
7
|
): { currency: string; amount: number } => {
|
|
8
8
|
const pricing = context.modules.orders.pricingSheet(order);
|
|
9
9
|
const { currency, amount } = pricing.total({ useNetPrice: false });
|