@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.
Files changed (76) hide show
  1. package/lib/core-index.d.ts +3 -2
  2. package/lib/core-index.d.ts.map +1 -1
  3. package/lib/core-index.js +17 -0
  4. package/lib/core-index.js.map +1 -1
  5. package/lib/directors/BaseDiscountAdapter.d.ts.map +1 -1
  6. package/lib/directors/BaseDiscountAdapter.js +2 -4
  7. package/lib/directors/BaseDiscountAdapter.js.map +1 -1
  8. package/lib/directors/BasePricingAdapter.d.ts.map +1 -1
  9. package/lib/directors/BasePricingAdapter.js +2 -5
  10. package/lib/directors/BasePricingAdapter.js.map +1 -1
  11. package/lib/directors/BasePricingDirector.d.ts.map +1 -1
  12. package/lib/directors/BasePricingDirector.js +1 -1
  13. package/lib/directors/BasePricingDirector.js.map +1 -1
  14. package/lib/directors/DeliveryAdapter.d.ts.map +1 -1
  15. package/lib/directors/DeliveryAdapter.js +2 -4
  16. package/lib/directors/DeliveryAdapter.js.map +1 -1
  17. package/lib/directors/EnrollmentAdapter.d.ts.map +1 -1
  18. package/lib/directors/EnrollmentAdapter.js +2 -5
  19. package/lib/directors/EnrollmentAdapter.js.map +1 -1
  20. package/lib/directors/FilterAdapter.d.ts.map +1 -1
  21. package/lib/directors/FilterAdapter.js +2 -4
  22. package/lib/directors/FilterAdapter.js.map +1 -1
  23. package/lib/directors/FilterDirector.d.ts.map +1 -1
  24. package/lib/directors/FilterDirector.js +7 -3
  25. package/lib/directors/FilterDirector.js.map +1 -1
  26. package/lib/directors/MessagingDirector.d.ts +5 -3
  27. package/lib/directors/MessagingDirector.d.ts.map +1 -1
  28. package/lib/directors/MessagingDirector.js +1 -2
  29. package/lib/directors/MessagingDirector.js.map +1 -1
  30. package/lib/directors/PaymentAdapter.d.ts.map +1 -1
  31. package/lib/directors/PaymentAdapter.js +2 -4
  32. package/lib/directors/PaymentAdapter.js.map +1 -1
  33. package/lib/directors/QuotationAdapter.d.ts.map +1 -1
  34. package/lib/directors/QuotationAdapter.js +2 -4
  35. package/lib/directors/QuotationAdapter.js.map +1 -1
  36. package/lib/directors/WarehousingAdapter.d.ts.map +1 -1
  37. package/lib/directors/WarehousingAdapter.js +2 -5
  38. package/lib/directors/WarehousingAdapter.js.map +1 -1
  39. package/lib/directors/WorkerAdapter.d.ts.map +1 -1
  40. package/lib/directors/WorkerAdapter.js +2 -4
  41. package/lib/directors/WorkerAdapter.js.map +1 -1
  42. package/lib/directors/WorkerDirector.d.ts.map +1 -1
  43. package/lib/directors/WorkerDirector.js +2 -4
  44. package/lib/directors/WorkerDirector.js.map +1 -1
  45. package/lib/services/deleteUser.d.ts.map +1 -1
  46. package/lib/services/deleteUser.js +9 -1
  47. package/lib/services/deleteUser.js.map +1 -1
  48. package/lib/services/index.d.ts +3 -2
  49. package/lib/services/index.d.ts.map +1 -1
  50. package/lib/services/index.js +1 -1
  51. package/lib/services/index.js.map +1 -1
  52. package/lib/services/linkFileService.d.ts +1 -1
  53. package/lib/services/linkFileService.d.ts.map +1 -1
  54. package/lib/services/linkFileService.js +5 -5
  55. package/lib/services/linkFileService.js.map +1 -1
  56. package/lib/services/migrateUserData.js +2 -2
  57. package/lib/services/migrateUserData.js.map +1 -1
  58. package/package.json +22 -22
  59. package/src/core-index.ts +50 -2
  60. package/src/directors/BaseDiscountAdapter.ts +2 -6
  61. package/src/directors/BasePricingAdapter.ts +2 -8
  62. package/src/directors/BasePricingDirector.ts +3 -2
  63. package/src/directors/DeliveryAdapter.ts +2 -6
  64. package/src/directors/EnrollmentAdapter.ts +2 -7
  65. package/src/directors/FilterAdapter.ts +2 -6
  66. package/src/directors/FilterDirector.ts +7 -3
  67. package/src/directors/MessagingDirector.ts +5 -12
  68. package/src/directors/PaymentAdapter.ts +2 -6
  69. package/src/directors/QuotationAdapter.ts +2 -6
  70. package/src/directors/WarehousingAdapter.ts +2 -7
  71. package/src/directors/WorkerAdapter.ts +2 -6
  72. package/src/directors/WorkerDirector.ts +2 -6
  73. package/src/services/deleteUser.ts +12 -2
  74. package/src/services/index.ts +5 -6
  75. package/src/services/linkFileService.ts +6 -6
  76. package/src/services/migrateUserData.ts +2 -2
@@ -1,5 +1,4 @@
1
- import { log, LogLevel } from '@unchainedshop/logger';
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 { log, LogLevel } from '@unchainedshop/logger';
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.info(`WorkerDirector: No registered adapter for type: ${type}`);
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.info(`WorkerDirector -> Error doing work ${type}: ${error.message}`);
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
- if (!ordersCount && !reviewsCount && !enrollmentsCount && !quotationsCount && !tokens?.length) {
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
 
@@ -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
- // TODO: Auto-Inject Unchained API as last parameter
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 default function initServices(
72
- modules: Modules,
73
- customServices: Record<string, ServiceInterface> = {},
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: number; type?: string },
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.lastLogin?.countryCode || user.lastLogin?.countryCode,
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.lastLogin?.countryCode || user.lastLogin?.countryCode,
20
+ countryContext: userBeforeLogin?.lastLogin?.countryCode || user?.lastLogin?.countryCode,
21
21
  });
22
22
  }