@unchainedshop/core 3.0.0-rc9 → 3.0.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.
- package/lib/core-index.d.ts +3 -2
- package/lib/core-index.d.ts.map +1 -1
- package/lib/core-index.js +17 -0
- package/lib/core-index.js.map +1 -1
- package/lib/directors/BaseDiscountAdapter.d.ts.map +1 -1
- package/lib/directors/BaseDiscountAdapter.js +2 -4
- package/lib/directors/BaseDiscountAdapter.js.map +1 -1
- package/lib/directors/BasePricingAdapter.d.ts.map +1 -1
- package/lib/directors/BasePricingAdapter.js +2 -5
- package/lib/directors/BasePricingAdapter.js.map +1 -1
- package/lib/directors/BasePricingDirector.d.ts.map +1 -1
- package/lib/directors/BasePricingDirector.js +1 -1
- package/lib/directors/BasePricingDirector.js.map +1 -1
- package/lib/directors/DeliveryAdapter.d.ts.map +1 -1
- package/lib/directors/DeliveryAdapter.js +2 -4
- package/lib/directors/DeliveryAdapter.js.map +1 -1
- package/lib/directors/EnrollmentAdapter.d.ts.map +1 -1
- package/lib/directors/EnrollmentAdapter.js +2 -5
- package/lib/directors/EnrollmentAdapter.js.map +1 -1
- package/lib/directors/FilterAdapter.d.ts.map +1 -1
- package/lib/directors/FilterAdapter.js +2 -4
- package/lib/directors/FilterAdapter.js.map +1 -1
- package/lib/directors/FilterDirector.d.ts.map +1 -1
- package/lib/directors/FilterDirector.js +7 -3
- package/lib/directors/FilterDirector.js.map +1 -1
- package/lib/directors/MessagingDirector.d.ts +5 -3
- package/lib/directors/MessagingDirector.d.ts.map +1 -1
- package/lib/directors/MessagingDirector.js +1 -2
- package/lib/directors/MessagingDirector.js.map +1 -1
- package/lib/directors/PaymentAdapter.d.ts.map +1 -1
- package/lib/directors/PaymentAdapter.js +2 -4
- package/lib/directors/PaymentAdapter.js.map +1 -1
- package/lib/directors/QuotationAdapter.d.ts.map +1 -1
- package/lib/directors/QuotationAdapter.js +2 -4
- package/lib/directors/QuotationAdapter.js.map +1 -1
- package/lib/directors/WarehousingAdapter.d.ts.map +1 -1
- package/lib/directors/WarehousingAdapter.js +2 -5
- package/lib/directors/WarehousingAdapter.js.map +1 -1
- package/lib/directors/WorkerAdapter.d.ts.map +1 -1
- package/lib/directors/WorkerAdapter.js +2 -4
- package/lib/directors/WorkerAdapter.js.map +1 -1
- package/lib/directors/WorkerDirector.d.ts.map +1 -1
- package/lib/directors/WorkerDirector.js +2 -4
- package/lib/directors/WorkerDirector.js.map +1 -1
- package/lib/services/deleteUser.d.ts.map +1 -1
- package/lib/services/deleteUser.js +9 -1
- package/lib/services/deleteUser.js.map +1 -1
- package/lib/services/index.d.ts +3 -2
- package/lib/services/index.d.ts.map +1 -1
- package/lib/services/index.js +1 -1
- package/lib/services/index.js.map +1 -1
- package/lib/services/linkFileService.d.ts +1 -1
- package/lib/services/linkFileService.d.ts.map +1 -1
- package/lib/services/linkFileService.js +5 -5
- package/lib/services/linkFileService.js.map +1 -1
- package/lib/services/migrateUserData.js +2 -2
- package/lib/services/migrateUserData.js.map +1 -1
- package/package.json +22 -22
- package/src/core-index.ts +50 -2
- package/src/directors/BaseDiscountAdapter.ts +2 -6
- package/src/directors/BasePricingAdapter.ts +2 -8
- package/src/directors/BasePricingDirector.ts +3 -2
- package/src/directors/DeliveryAdapter.ts +2 -6
- package/src/directors/EnrollmentAdapter.ts +2 -7
- package/src/directors/FilterAdapter.ts +2 -6
- package/src/directors/FilterDirector.ts +7 -3
- package/src/directors/MessagingDirector.ts +5 -12
- package/src/directors/PaymentAdapter.ts +2 -6
- package/src/directors/QuotationAdapter.ts +2 -6
- package/src/directors/WarehousingAdapter.ts +2 -7
- package/src/directors/WorkerAdapter.ts +2 -6
- package/src/directors/WorkerDirector.ts +2 -6
- package/src/services/deleteUser.ts +12 -2
- package/src/services/index.ts +5 -6
- package/src/services/linkFileService.ts +6 -6
- package/src/services/migrateUserData.ts +2 -2
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { IBaseAdapter } from '@unchainedshop/utils';
|
|
1
|
+
import { BaseAdapter, IBaseAdapter } from '@unchainedshop/utils';
|
|
3
2
|
import { DeliveryProvider } from '@unchainedshop/core-delivery';
|
|
4
3
|
import { Product } from '@unchainedshop/core-products';
|
|
5
4
|
import { Order, OrderPosition } from '@unchainedshop/core-orders';
|
|
@@ -48,6 +47,7 @@ export type IWarehousingAdapter = IBaseAdapter & {
|
|
|
48
47
|
};
|
|
49
48
|
|
|
50
49
|
export const WarehousingAdapter: Omit<IWarehousingAdapter, 'key' | 'label' | 'version'> = {
|
|
50
|
+
...BaseAdapter,
|
|
51
51
|
orderIndex: 0,
|
|
52
52
|
|
|
53
53
|
typeSupported: () => {
|
|
@@ -75,9 +75,4 @@ export const WarehousingAdapter: Omit<IWarehousingAdapter, 'key' | 'label' | 've
|
|
|
75
75
|
isInvalidateable: async () => true,
|
|
76
76
|
};
|
|
77
77
|
},
|
|
78
|
-
|
|
79
|
-
log(message, { level = LogLevel.Debug, ...options } = {}) {
|
|
80
|
-
// eslint-disable-line
|
|
81
|
-
return log(message, { level, ...options });
|
|
82
|
-
},
|
|
83
78
|
};
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { IBaseAdapter } from '@unchainedshop/utils';
|
|
1
|
+
import { BaseAdapter, IBaseAdapter } from '@unchainedshop/utils';
|
|
3
2
|
import { WorkResult } from '@unchainedshop/core-worker';
|
|
4
3
|
import { Modules } from '../modules.js';
|
|
5
4
|
import { Services } from '../services/index.js';
|
|
@@ -18,13 +17,10 @@ export type IWorkerAdapter<Input, Output> = IBaseAdapter & {
|
|
|
18
17
|
};
|
|
19
18
|
|
|
20
19
|
export const WorkerAdapter: Omit<IWorkerAdapter<any, void>, 'key' | 'label' | 'type' | 'version'> = {
|
|
20
|
+
...BaseAdapter,
|
|
21
21
|
external: false,
|
|
22
22
|
|
|
23
23
|
async doWork() {
|
|
24
24
|
return { success: false, result: null };
|
|
25
25
|
},
|
|
26
|
-
|
|
27
|
-
log(message: string, { level = LogLevel.Debug, ...options } = {}) {
|
|
28
|
-
return log(message, { level, ...options });
|
|
29
|
-
},
|
|
30
26
|
};
|
|
@@ -73,14 +73,10 @@ export const WorkerDirector: IWorkerDirector = {
|
|
|
73
73
|
},
|
|
74
74
|
|
|
75
75
|
configureAutoscheduling: (workItemConfiguration) => {
|
|
76
|
-
const adapter = WorkerDirector.getAdapterByType(workItemConfiguration.type);
|
|
77
76
|
AutoScheduleMap.set(
|
|
78
77
|
workItemConfiguration.scheduleId || workItemConfiguration.type,
|
|
79
78
|
workItemConfiguration,
|
|
80
79
|
);
|
|
81
|
-
logger.info(
|
|
82
|
-
`WorkerDirector -> Configured ${adapter.type} ${adapter.key}@${adapter.version} (${adapter.label}) for Autorun at ${JSON.stringify(workItemConfiguration.schedule?.schedules)}`,
|
|
83
|
-
);
|
|
84
80
|
},
|
|
85
81
|
|
|
86
82
|
getAutoSchedules: () => Array.from(AutoScheduleMap),
|
|
@@ -98,7 +94,7 @@ export const WorkerDirector: IWorkerDirector = {
|
|
|
98
94
|
const adapter = WorkerDirector.getAdapterByType(type);
|
|
99
95
|
|
|
100
96
|
if (!adapter) {
|
|
101
|
-
logger.
|
|
97
|
+
logger.warn(`WorkerDirector: No registered adapter for type: ${type}`);
|
|
102
98
|
}
|
|
103
99
|
|
|
104
100
|
try {
|
|
@@ -107,7 +103,7 @@ export const WorkerDirector: IWorkerDirector = {
|
|
|
107
103
|
} catch (error) {
|
|
108
104
|
// DO not use this as flow control. The adapter should catch expected errors and return status: FAILED
|
|
109
105
|
logger.debug('DO not use this as flow control.');
|
|
110
|
-
logger.
|
|
106
|
+
logger.error(`WorkerDirector -> Error doing work ${type}: ${error.message}`);
|
|
111
107
|
|
|
112
108
|
const errorOutput = { error, success: false };
|
|
113
109
|
return errorOutput;
|
|
@@ -8,6 +8,8 @@ export async function deleteUserService(this: Modules, { userId }: { userId: str
|
|
|
8
8
|
await this.bookmarks.deleteByUserId(userId);
|
|
9
9
|
await this.quotations.deleteRequestedUserQuotations(userId);
|
|
10
10
|
await this.enrollments.deleteInactiveUserEnrollments(userId);
|
|
11
|
+
await this.payment.paymentCredentials.deleteUserPaymentCredentials(userId);
|
|
12
|
+
await this.users.webAuthn.deleteUserWebAuthnCredentials(user.username);
|
|
11
13
|
|
|
12
14
|
const carts = await this.orders.findOrders({ userId, status: null });
|
|
13
15
|
|
|
@@ -24,8 +26,16 @@ export async function deleteUserService(this: Modules, { userId }: { userId: str
|
|
|
24
26
|
const reviewsCount = await this.products.reviews.count({ authorId: userId });
|
|
25
27
|
const enrollmentsCount = await this.enrollments.count({ userId });
|
|
26
28
|
const tokens = await this.warehousing.findTokensForUser({ userId });
|
|
27
|
-
|
|
28
|
-
|
|
29
|
+
const paymentCredentials = await this.payment.paymentCredentials.count({ userId });
|
|
30
|
+
|
|
31
|
+
if (
|
|
32
|
+
!ordersCount &&
|
|
33
|
+
!reviewsCount &&
|
|
34
|
+
!enrollmentsCount &&
|
|
35
|
+
!quotationsCount &&
|
|
36
|
+
!tokens?.length &&
|
|
37
|
+
!paymentCredentials
|
|
38
|
+
) {
|
|
29
39
|
await this.users.deletePermanently({ userId });
|
|
30
40
|
}
|
|
31
41
|
|
package/src/services/index.ts
CHANGED
|
@@ -45,7 +45,7 @@ import { simulateProductDispatchingService } from './simulateProductDispatching.
|
|
|
45
45
|
import { simulateProductInventoryService } from './simulateProductInventory.js';
|
|
46
46
|
import { findOrInitCartService } from './findOrInitCart.js';
|
|
47
47
|
|
|
48
|
-
//
|
|
48
|
+
// Auto-Inject Unchained API as last parameter
|
|
49
49
|
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy
|
|
50
50
|
|
|
51
51
|
function bindMethodsToModules(modules: Modules) {
|
|
@@ -63,15 +63,14 @@ function bindMethodsToModules(modules: Modules) {
|
|
|
63
63
|
}
|
|
64
64
|
|
|
65
65
|
export interface ServiceInterface {
|
|
66
|
-
(this: Modules, ...args: any[]): any;
|
|
66
|
+
(this: Modules, ...args: any[]): Promise<any> | any;
|
|
67
67
|
}
|
|
68
68
|
|
|
69
69
|
export type Bound<T extends ServiceInterface> = OmitThisParameter<T>;
|
|
70
70
|
|
|
71
|
-
export
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
) {
|
|
71
|
+
export type CustomServices = Record<string, ServiceInterface | Record<string, ServiceInterface>>;
|
|
72
|
+
|
|
73
|
+
export default function initServices(modules: Modules, customServices: CustomServices = {}) {
|
|
75
74
|
const services = {
|
|
76
75
|
bookmarks: {
|
|
77
76
|
migrateBookmarks: migrateBookmarksService as Bound<typeof migrateBookmarksService>,
|
|
@@ -3,15 +3,15 @@ import { Modules } from '../modules.js';
|
|
|
3
3
|
|
|
4
4
|
export async function linkFileService(
|
|
5
5
|
this: Modules,
|
|
6
|
-
{ fileId, size, type }: { fileId: string; size
|
|
6
|
+
{ fileId, size, type }: { fileId: string; size?: number; type?: string },
|
|
7
7
|
) {
|
|
8
8
|
const file = await this.files.findFile({ fileId });
|
|
9
|
+
await this.files.update(file._id, {
|
|
10
|
+
size: size || file.size,
|
|
11
|
+
type: type || file.type,
|
|
12
|
+
expires: null,
|
|
13
|
+
});
|
|
9
14
|
if (file?.expires) {
|
|
10
|
-
await this.files.update(file._id, {
|
|
11
|
-
size: size || file.size,
|
|
12
|
-
type: type || file.type,
|
|
13
|
-
expires: null,
|
|
14
|
-
});
|
|
15
15
|
const callback = FileDirector.getFileUploadCallback(file.path);
|
|
16
16
|
if (callback) {
|
|
17
17
|
await callback(file, { modules: this });
|
|
@@ -10,13 +10,13 @@ export async function migrateUserDataService(userIdBeforeLogin: string, userId:
|
|
|
10
10
|
fromUserId: userIdBeforeLogin,
|
|
11
11
|
toUserId: userId,
|
|
12
12
|
shouldMerge: userSettings.mergeUserCartsOnLogin,
|
|
13
|
-
countryContext: userBeforeLogin
|
|
13
|
+
countryContext: userBeforeLogin?.lastLogin?.countryCode || user?.lastLogin?.countryCode,
|
|
14
14
|
});
|
|
15
15
|
|
|
16
16
|
await migrateBookmarksService.bind(this)({
|
|
17
17
|
fromUserId: userIdBeforeLogin,
|
|
18
18
|
toUserId: userId,
|
|
19
19
|
shouldMerge: userSettings.mergeUserCartsOnLogin,
|
|
20
|
-
countryContext: userBeforeLogin
|
|
20
|
+
countryContext: userBeforeLogin?.lastLogin?.countryCode || user?.lastLogin?.countryCode,
|
|
21
21
|
});
|
|
22
22
|
}
|