@unchainedshop/platform 3.0.0-alpha7 → 3.0.0-rc2

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 (91) hide show
  1. package/lib/bulk-importer/createBulkImporter.d.ts +0 -1
  2. package/lib/bulk-importer/createBulkImporter.d.ts.map +1 -1
  3. package/lib/bulk-importer/createBulkImporter.js +12 -15
  4. package/lib/bulk-importer/createBulkImporter.js.map +1 -1
  5. package/lib/bulk-importer/handlers/filter/create.d.ts.map +1 -1
  6. package/lib/bulk-importer/handlers/filter/create.js +2 -2
  7. package/lib/bulk-importer/handlers/filter/create.js.map +1 -1
  8. package/lib/bulk-importer/handlers/filter/update.d.ts.map +1 -1
  9. package/lib/bulk-importer/handlers/filter/update.js +1 -1
  10. package/lib/bulk-importer/handlers/filter/update.js.map +1 -1
  11. package/lib/bulk-importer/handlers/product/remove.js +1 -1
  12. package/lib/bulk-importer/handlers/product/remove.js.map +1 -1
  13. package/lib/bulk-importer/upsertAsset.d.ts.map +1 -1
  14. package/lib/bulk-importer/upsertAsset.js +1 -1
  15. package/lib/bulk-importer/upsertAsset.js.map +1 -1
  16. package/lib/context/setAccessToken.js +2 -2
  17. package/lib/context/setAccessToken.js.map +1 -1
  18. package/lib/migrations/runMigrations.js +2 -2
  19. package/lib/migrations/runMigrations.js.map +1 -1
  20. package/lib/setup/setupCarts.d.ts.map +1 -1
  21. package/lib/setup/setupCarts.js +5 -2
  22. package/lib/setup/setupCarts.js.map +1 -1
  23. package/lib/setup/setupTemplates.d.ts.map +1 -1
  24. package/lib/setup/setupTemplates.js +3 -3
  25. package/lib/setup/setupTemplates.js.map +1 -1
  26. package/lib/setup/setupUploadHandlers.d.ts +3 -0
  27. package/lib/setup/setupUploadHandlers.d.ts.map +1 -0
  28. package/lib/setup/setupUploadHandlers.js +19 -0
  29. package/lib/setup/setupUploadHandlers.js.map +1 -0
  30. package/lib/setup/setupWorkqueue.d.ts +3 -2
  31. package/lib/setup/setupWorkqueue.d.ts.map +1 -1
  32. package/lib/setup/setupWorkqueue.js +3 -1
  33. package/lib/setup/setupWorkqueue.js.map +1 -1
  34. package/lib/startPlatform.d.ts.map +1 -1
  35. package/lib/startPlatform.js +5 -2
  36. package/lib/startPlatform.js.map +1 -1
  37. package/lib/templates/order-parser/formatAddress.d.ts +1 -1
  38. package/lib/templates/order-parser/formatAddress.d.ts.map +1 -1
  39. package/lib/templates/order-parser/getOrderPositionsData.d.ts +1 -2
  40. package/lib/templates/order-parser/getOrderPositionsData.d.ts.map +1 -1
  41. package/lib/templates/order-parser/getOrderPositionsData.js +6 -6
  42. package/lib/templates/order-parser/getOrderPositionsData.js.map +1 -1
  43. package/lib/templates/order-parser/getOrderSummaryData.d.ts +2 -2
  44. package/lib/templates/order-parser/getOrderSummaryData.d.ts.map +1 -1
  45. package/lib/templates/order-parser/getOrderSummaryData.js +5 -2
  46. package/lib/templates/order-parser/getOrderSummaryData.js.map +1 -1
  47. package/lib/templates/order-parser/index.d.ts +3 -2
  48. package/lib/templates/order-parser/index.d.ts.map +1 -1
  49. package/lib/templates/order-parser/index.js.map +1 -1
  50. package/lib/templates/resolveAccountActionTemplate.d.ts +1 -1
  51. package/lib/templates/resolveAccountActionTemplate.d.ts.map +1 -1
  52. package/lib/templates/resolveEnrollmentStatusTemplate.d.ts +1 -1
  53. package/lib/templates/resolveEnrollmentStatusTemplate.d.ts.map +1 -1
  54. package/lib/templates/resolveErrorReportTemplate.d.ts +1 -1
  55. package/lib/templates/resolveErrorReportTemplate.d.ts.map +1 -1
  56. package/lib/templates/resolveForwardDeliveryTemplate.d.ts +1 -1
  57. package/lib/templates/resolveForwardDeliveryTemplate.d.ts.map +1 -1
  58. package/lib/templates/resolveForwardDeliveryTemplate.js +1 -1
  59. package/lib/templates/resolveForwardDeliveryTemplate.js.map +1 -1
  60. package/lib/templates/resolveOrderConfirmationTemplate.d.ts +5 -2
  61. package/lib/templates/resolveOrderConfirmationTemplate.d.ts.map +1 -1
  62. package/lib/templates/resolveOrderConfirmationTemplate.js.map +1 -1
  63. package/lib/templates/resolveOrderRejectionTemplate.d.ts +1 -1
  64. package/lib/templates/resolveOrderRejectionTemplate.d.ts.map +1 -1
  65. package/lib/templates/resolveQuotationStatusTemplate.d.ts +1 -1
  66. package/lib/templates/resolveQuotationStatusTemplate.d.ts.map +1 -1
  67. package/package.json +15 -21
  68. package/src/bulk-importer/createBulkImporter.ts +14 -21
  69. package/src/bulk-importer/handlers/filter/create.ts +9 -18
  70. package/src/bulk-importer/handlers/filter/update.ts +4 -9
  71. package/src/bulk-importer/handlers/product/remove.ts +1 -1
  72. package/src/bulk-importer/upsertAsset.ts +9 -12
  73. package/src/context/setAccessToken.ts +2 -2
  74. package/src/migrations/runMigrations.ts +2 -2
  75. package/src/setup/setupCarts.ts +10 -9
  76. package/src/setup/setupTemplates.ts +4 -5
  77. package/src/setup/setupUploadHandlers.ts +22 -0
  78. package/src/setup/setupWorkqueue.ts +5 -9
  79. package/src/startPlatform.ts +6 -2
  80. package/src/templates/order-parser/formatAddress.ts +1 -1
  81. package/src/templates/order-parser/getOrderPositionsData.ts +8 -11
  82. package/src/templates/order-parser/getOrderSummaryData.ts +6 -4
  83. package/src/templates/order-parser/index.ts +5 -1
  84. package/src/templates/resolveAccountActionTemplate.ts +1 -1
  85. package/src/templates/resolveEnrollmentStatusTemplate.ts +1 -1
  86. package/src/templates/resolveErrorReportTemplate.ts +1 -1
  87. package/src/templates/resolveForwardDeliveryTemplate.ts +2 -2
  88. package/src/templates/resolveOrderConfirmationTemplate.ts +5 -5
  89. package/src/templates/resolveOrderRejectionTemplate.ts +1 -1
  90. package/src/templates/resolveQuotationStatusTemplate.ts +1 -1
  91. package/tsconfig.json +5 -7
@@ -1,4 +1,4 @@
1
- import { OrderPricingRowCategory } from '@unchainedshop/core-orders';
1
+ import { OrderPricingSheet, OrderPricingRowCategory } from '@unchainedshop/core';
2
2
  import formatPrice from './formatPrice.js';
3
3
  import { formatAddress } from './formatAddress.js';
4
4
  export const getOrderSummaryData = async (order, params, context) => {
@@ -18,7 +18,10 @@ export const getOrderSummaryData = async (order, params, context) => {
18
18
  });
19
19
  const deliveryAddress = formatAddress(orderDelivery?.context?.deliveryAddress || order.billingAddress);
20
20
  const billingAddress = formatAddress(order.billingAddress);
21
- const orderPricing = modules.orders.pricingSheet(order);
21
+ const orderPricing = OrderPricingSheet({
22
+ calculation: order.calculation,
23
+ currency: order.currency,
24
+ });
22
25
  const paymentTotal = orderPricing.total({
23
26
  category: OrderPricingRowCategory.Payment,
24
27
  useNetPrice,
@@ -1 +1 @@
1
- {"version":3,"file":"getOrderSummaryData.js","sourceRoot":"","sources":["../../../src/templates/order-parser/getOrderSummaryData.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAInD,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EACtC,KAAY,EACZ,MAAgF,EAChF,OAAsB,EACtB,EAAE;IACF,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAC5B,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,WAAW,EAAE,GAAG,MAAM,IAAI,EAAE,CAAC;IAC3D,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC;QACjE,eAAe,EAAE,KAAK,CAAC,UAAU;KAClC,CAAC,CAAC;IACH,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAClE,cAAc,EAAE,KAAK,CAAC,SAAS;KAChC,CAAC,CAAC;IACH,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,YAAY,CAAC;QAC1E,iBAAiB,EAAE,YAAY,CAAC,iBAAiB;KAClD,CAAC,CAAC;IACH,MAAM,gBAAgB,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;QAC3D,kBAAkB,EAAE,aAAa,CAAC,kBAAkB;KACrD,CAAC,CAAC;IAEH,MAAM,eAAe,GAAG,aAAa,CAAC,aAAa,EAAE,OAAO,EAAE,eAAe,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;IACvG,MAAM,cAAc,GAAG,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAC3D,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAExD,MAAM,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC;QACtC,QAAQ,EAAE,uBAAuB,CAAC,OAAO;QACzC,WAAW;KACZ,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,YAAY,CAAC,KAAK,CAAC;QACvC,QAAQ,EAAE,uBAAuB,CAAC,QAAQ;QAC1C,WAAW;KACZ,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC;QACpC,QAAQ,EAAE,uBAAuB,CAAC,KAAK;QACvC,WAAW;KACZ,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC;QACpC,QAAQ,EAAE,uBAAuB,CAAC,KAAK;QACvC,WAAW;KACZ,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;IAElD,MAAM,OAAO,GAAG,eAAe,CAAC,UAAU,CAAC;IAC3C,MAAM,QAAQ,GAAG,gBAAgB,CAAC,UAAU,CAAC;IAE7C,OAAO;QACL,SAAS,EAAE;YACT,KAAK,EAAE,UAAU;YACjB,KAAK,EAAE,UAAU;YACjB,QAAQ,EAAE,aAAa;YACvB,OAAO,EAAE,YAAY;YACrB,KAAK,EAAE,KAAK;SACb;QACD,MAAM,EAAE;YACN,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC;YACzB,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC;YACzB,QAAQ,EAAE,MAAM,CAAC,aAAa,CAAC;YAC/B,OAAO,EAAE,MAAM,CAAC,YAAY,CAAC;YAC7B,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;SACrB;QACD,OAAO;QACP,QAAQ;QACR,eAAe;QACf,cAAc;KACf,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"getOrderSummaryData.js","sourceRoot":"","sources":["../../../src/templates/order-parser/getOrderSummaryData.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAChG,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAInD,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EACtC,KAAY,EACZ,MAA2E,EAC3E,OAAsB,EACtB,EAAE;IACF,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAC5B,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,WAAW,EAAE,GAAG,MAAM,IAAI,EAAE,CAAC;IAC3D,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC;QACjE,eAAe,EAAE,KAAK,CAAC,UAAU;KAClC,CAAC,CAAC;IACH,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAClE,cAAc,EAAE,KAAK,CAAC,SAAS;KAChC,CAAC,CAAC;IACH,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,YAAY,CAAC;QAC1E,iBAAiB,EAAE,YAAY,CAAC,iBAAiB;KAClD,CAAC,CAAC;IACH,MAAM,gBAAgB,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;QAC3D,kBAAkB,EAAE,aAAa,CAAC,kBAAkB;KACrD,CAAC,CAAC;IAEH,MAAM,eAAe,GAAG,aAAa,CAAC,aAAa,EAAE,OAAO,EAAE,eAAe,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;IACvG,MAAM,cAAc,GAAG,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAC3D,MAAM,YAAY,GAAG,iBAAiB,CAAC;QACrC,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ;KACzB,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC;QACtC,QAAQ,EAAE,uBAAuB,CAAC,OAAO;QACzC,WAAW;KACZ,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,YAAY,CAAC,KAAK,CAAC;QACvC,QAAQ,EAAE,uBAAuB,CAAC,QAAQ;QAC1C,WAAW;KACZ,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC;QACpC,QAAQ,EAAE,uBAAuB,CAAC,KAAK;QACvC,WAAW;KACZ,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC;QACpC,QAAQ,EAAE,uBAAuB,CAAC,KAAK;QACvC,WAAW;KACZ,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;IAElD,MAAM,OAAO,GAAG,eAAe,CAAC,UAAU,CAAC;IAC3C,MAAM,QAAQ,GAAG,gBAAgB,CAAC,UAAU,CAAC;IAE7C,OAAO;QACL,SAAS,EAAE;YACT,KAAK,EAAE,UAAU;YACjB,KAAK,EAAE,UAAU;YACjB,QAAQ,EAAE,aAAa;YACvB,OAAO,EAAE,YAAY;YACrB,KAAK,EAAE,KAAK;SACb;QACD,MAAM,EAAE;YACN,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC;YACzB,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC;YACzB,QAAQ,EAAE,MAAM,CAAC,aAAa,CAAC;YAC/B,OAAO,EAAE,MAAM,CAAC,YAAY,CAAC;YAC7B,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;SACrB;QACD,OAAO;QACP,QAAQ;QACR,eAAe;QACf,cAAc;KACf,CAAC;AACJ,CAAC,CAAC"}
@@ -1,5 +1,6 @@
1
+ import { Order } from '@unchainedshop/core-orders';
1
2
  export declare const transformOrderToText: ({ order, locale }: {
2
- order: any;
3
- locale: any;
3
+ order: Order;
4
+ locale: string;
4
5
  }, context: any) => Promise<any>;
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/templates/order-parser/index.ts"],"names":[],"mappings":"AAiCA,eAAO,MAAM,oBAAoB;;;gCAUhC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/templates/order-parser/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAkCnD,eAAO,MAAM,oBAAoB,sBACZ;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,+BAYpD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/templates/order-parser/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BpB,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE;IACvE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAC5B,MAAM,IAAI,GAAG;QACX,SAAS,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,cAAc,EAAE;QACnD,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,OAAO,EAAE,MAAM,mBAAmB,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC;QAC9D,SAAS,EAAE,MAAM,qBAAqB,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC;KACnE,CAAC;IAEF,OAAO,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;AAC5D,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/templates/order-parser/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BpB,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EACvC,EAAE,KAAK,EAAE,MAAM,EAAoC,EACnD,OAAO,EACP,EAAE;IACF,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAC5B,MAAM,IAAI,GAAG;QACX,SAAS,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,cAAc,EAAE;QACnD,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,OAAO,EAAE,MAAM,mBAAmB,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC;QAC9D,SAAS,EAAE,MAAM,qBAAqB,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC;KACnE,CAAC;IAEF,OAAO,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;AAC5D,CAAC,CAAC"}
@@ -1,3 +1,3 @@
1
- import { TemplateResolver } from '@unchainedshop/core-messaging';
1
+ import { TemplateResolver } from '@unchainedshop/core';
2
2
  export declare const resolveAccountActionTemplate: TemplateResolver;
3
3
  //# sourceMappingURL=resolveAccountActionTemplate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolveAccountActionTemplate.d.ts","sourceRoot":"","sources":["../../src/templates/resolveAccountActionTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAsFjE,eAAO,MAAM,4BAA4B,EAAE,gBA8B1C,CAAC"}
1
+ {"version":3,"file":"resolveAccountActionTemplate.d.ts","sourceRoot":"","sources":["../../src/templates/resolveAccountActionTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAsFvD,eAAO,MAAM,4BAA4B,EAAE,gBA8B1C,CAAC"}
@@ -1,3 +1,3 @@
1
- import { TemplateResolver } from '@unchainedshop/core-messaging';
1
+ import { TemplateResolver } from '@unchainedshop/core';
2
2
  export declare const resolveEnrollmentStatusTemplate: TemplateResolver;
3
3
  //# sourceMappingURL=resolveEnrollmentStatusTemplate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolveEnrollmentStatusTemplate.d.ts","sourceRoot":"","sources":["../../src/templates/resolveEnrollmentStatusTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAcjE,eAAO,MAAM,+BAA+B,EAAE,gBA4B7C,CAAC"}
1
+ {"version":3,"file":"resolveEnrollmentStatusTemplate.d.ts","sourceRoot":"","sources":["../../src/templates/resolveEnrollmentStatusTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAcvD,eAAO,MAAM,+BAA+B,EAAE,gBA4B7C,CAAC"}
@@ -1,4 +1,4 @@
1
- import { TemplateResolver } from '@unchainedshop/core-messaging';
1
+ import { TemplateResolver } from '@unchainedshop/core';
2
2
  declare const resolveErrorReportTemplate: TemplateResolver;
3
3
  export { resolveErrorReportTemplate };
4
4
  export default resolveErrorReportTemplate;
@@ -1 +1 @@
1
- {"version":3,"file":"resolveErrorReportTemplate.d.ts","sourceRoot":"","sources":["../../src/templates/resolveErrorReportTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AA4BjE,QAAA,MAAM,0BAA0B,EAAE,gBAkBjC,CAAC;AAEF,OAAO,EAAE,0BAA0B,EAAE,CAAC;AAEtC,eAAe,0BAA0B,CAAC"}
1
+ {"version":3,"file":"resolveErrorReportTemplate.d.ts","sourceRoot":"","sources":["../../src/templates/resolveErrorReportTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AA4BvD,QAAA,MAAM,0BAA0B,EAAE,gBAkBjC,CAAC;AAEF,OAAO,EAAE,0BAA0B,EAAE,CAAC;AAEtC,eAAe,0BAA0B,CAAC"}
@@ -1,3 +1,3 @@
1
- import { TemplateResolver } from '@unchainedshop/core-messaging';
1
+ import { TemplateResolver } from '@unchainedshop/core';
2
2
  export declare const resolveForwardDeliveryTemplate: TemplateResolver;
3
3
  //# sourceMappingURL=resolveForwardDeliveryTemplate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolveForwardDeliveryTemplate.d.ts","sourceRoot":"","sources":["../../src/templates/resolveForwardDeliveryTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAcjE,eAAO,MAAM,8BAA8B,EAAE,gBA+B5C,CAAC"}
1
+ {"version":3,"file":"resolveForwardDeliveryTemplate.d.ts","sourceRoot":"","sources":["../../src/templates/resolveForwardDeliveryTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAcvD,eAAO,MAAM,8BAA8B,EAAE,gBA+B5C,CAAC"}
@@ -21,7 +21,7 @@ export const resolveForwardDeliveryTemplate = async ({ config, orderId }, contex
21
21
  const data = {
22
22
  shopName: EMAIL_WEBSITE_NAME,
23
23
  shopUrl: EMAIL_WEBSITE_URL,
24
- orderDetails: await transformOrderToText({ order, locale: systemLocale }, context),
24
+ orderDetails: await transformOrderToText({ order, locale: systemLocale.baseName }, context),
25
25
  };
26
26
  return [
27
27
  {
@@ -1 +1 @@
1
- {"version":3,"file":"resolveForwardDeliveryTemplate.js","sourceRoot":"","sources":["../../src/templates/resolveForwardDeliveryTemplate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAE/D,MAAM,EAAE,UAAU,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;AAE1E,MAAM,YAAY,GAAG;;;;;;CAMpB,CAAC;AAEF,MAAM,CAAC,MAAM,8BAA8B,GAAqB,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE;IACrG,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAC5B,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAE1D,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE;QACzD,OAAO;YACL,GAAG,GAAG;YACN,CAAC,GAAG,CAAC,EAAE,KAAK;SACb,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,OAAO,GAAG,GAAG,kBAAkB,UAAU,KAAK,CAAC,WAAW,EAAE,CAAC;IAEnE,MAAM,IAAI,GAAG;QACX,QAAQ,EAAE,kBAAkB;QAC5B,OAAO,EAAE,iBAAiB;QAC1B,YAAY,EAAE,MAAM,oBAAoB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,OAAO,CAAC;KACnF,CAAC;IAEF,OAAO;QACL;YACE,IAAI,EAAE,OAAO;YACb,KAAK,EAAE;gBACL,IAAI,EAAE,GAAG,kBAAkB,KAAK,YAAY,CAAC,IAAI,IAAI,UAAU,IAAI,yBAAyB,GAAG;gBAC/F,EAAE,EAAE,YAAY,CAAC,EAAE,IAAI,wBAAwB;gBAC/C,EAAE,EAAE,YAAY,CAAC,EAAE;gBACnB,OAAO;gBACP,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,YAAY,EAAE,IAAI,CAAC;aACzD;SACF;KACF,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"resolveForwardDeliveryTemplate.js","sourceRoot":"","sources":["../../src/templates/resolveForwardDeliveryTemplate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAE/D,MAAM,EAAE,UAAU,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;AAE1E,MAAM,YAAY,GAAG;;;;;;CAMpB,CAAC;AAEF,MAAM,CAAC,MAAM,8BAA8B,GAAqB,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE;IACrG,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAC5B,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAE1D,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE;QACzD,OAAO;YACL,GAAG,GAAG;YACN,CAAC,GAAG,CAAC,EAAE,KAAK;SACb,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,OAAO,GAAG,GAAG,kBAAkB,UAAU,KAAK,CAAC,WAAW,EAAE,CAAC;IAEnE,MAAM,IAAI,GAAG;QACX,QAAQ,EAAE,kBAAkB;QAC5B,OAAO,EAAE,iBAAiB;QAC1B,YAAY,EAAE,MAAM,oBAAoB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,QAAQ,EAAE,EAAE,OAAO,CAAC;KAC5F,CAAC;IAEF,OAAO;QACL;YACE,IAAI,EAAE,OAAO;YACb,KAAK,EAAE;gBACL,IAAI,EAAE,GAAG,kBAAkB,KAAK,YAAY,CAAC,IAAI,IAAI,UAAU,IAAI,yBAAyB,GAAG;gBAC/F,EAAE,EAAE,YAAY,CAAC,EAAE,IAAI,wBAAwB;gBAC/C,EAAE,EAAE,YAAY,CAAC,EAAE;gBACnB,OAAO;gBACP,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,YAAY,EAAE,IAAI,CAAC;aACzD;SACF;KACF,CAAC;AACJ,CAAC,CAAC"}
@@ -1,3 +1,6 @@
1
- import { TemplateResolver } from '@unchainedshop/core-messaging';
2
- export declare const resolveOrderConfirmationTemplate: TemplateResolver;
1
+ import { TemplateResolver } from '@unchainedshop/core';
2
+ export declare const resolveOrderConfirmationTemplate: TemplateResolver<{
3
+ orderId: string;
4
+ locale: string;
5
+ }>;
3
6
  //# sourceMappingURL=resolveOrderConfirmationTemplate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolveOrderConfirmationTemplate.d.ts","sourceRoot":"","sources":["../../src/templates/resolveOrderConfirmationTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAajE,eAAO,MAAM,gCAAgC,EAAE,gBA8B9C,CAAC"}
1
+ {"version":3,"file":"resolveOrderConfirmationTemplate.d.ts","sourceRoot":"","sources":["../../src/templates/resolveOrderConfirmationTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAavD,eAAO,MAAM,gCAAgC,EAAE,gBAAgB,CAAC;IAC9D,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB,CA2BA,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"resolveOrderConfirmationTemplate.js","sourceRoot":"","sources":["../../src/templates/resolveOrderConfirmationTemplate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAE/D,MAAM,EAAE,UAAU,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;AAE1E,MAAM,YAAY,GAAG;;;;;;CAMpB,CAAC;AAEF,MAAM,CAAC,MAAM,gCAAgC,GAAqB,KAAK,EACrE,EAAE,OAAO,EAAE,MAAM,EAAE,EACnB,OAAO,EACP,EAAE;IACF,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAC5B,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAE1D,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,OAAO,GAAG,SAAS,KAAK,CAAC,WAAW,EAAE,CAAC;IAE7C,MAAM,IAAI,GAAG;QACX,QAAQ,EAAE,kBAAkB;QAC5B,OAAO,EAAE,iBAAiB;QAC1B,YAAY,EAAE,MAAM,oBAAoB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC;KACrE,CAAC;IAEF,OAAO;QACL;YACE,IAAI,EAAE,OAAO;YACb,KAAK,EAAE;gBACL,IAAI,EAAE,GAAG,kBAAkB,KAAK,UAAU,IAAI,yBAAyB,GAAG;gBAC1E,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,YAAY;gBAC9B,OAAO;gBACP,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,YAAY,EAAE,IAAI,CAAC;aACzD;SACF;KACF,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"resolveOrderConfirmationTemplate.js","sourceRoot":"","sources":["../../src/templates/resolveOrderConfirmationTemplate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAE/D,MAAM,EAAE,UAAU,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;AAE1E,MAAM,YAAY,GAAG;;;;;;CAMpB,CAAC;AAEF,MAAM,CAAC,MAAM,gCAAgC,GAGxC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE;IAC1C,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAC5B,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAE1D,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,OAAO,GAAG,SAAS,KAAK,CAAC,WAAW,EAAE,CAAC;IAE7C,MAAM,IAAI,GAAG;QACX,QAAQ,EAAE,kBAAkB;QAC5B,OAAO,EAAE,iBAAiB;QAC1B,YAAY,EAAE,MAAM,oBAAoB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC;KACrE,CAAC;IAEF,OAAO;QACL;YACE,IAAI,EAAE,OAAO;YACb,KAAK,EAAE;gBACL,IAAI,EAAE,GAAG,kBAAkB,KAAK,UAAU,IAAI,yBAAyB,GAAG;gBAC1E,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,YAAY;gBAC9B,OAAO;gBACP,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,YAAY,EAAE,IAAI,CAAC;aACzD;SACF;KACF,CAAC;AACJ,CAAC,CAAC"}
@@ -1,3 +1,3 @@
1
- import { TemplateResolver } from '@unchainedshop/core-messaging';
1
+ import { TemplateResolver } from '@unchainedshop/core';
2
2
  export declare const resolveOrderRejectionTemplate: TemplateResolver;
3
3
  //# sourceMappingURL=resolveOrderRejectionTemplate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolveOrderRejectionTemplate.d.ts","sourceRoot":"","sources":["../../src/templates/resolveOrderRejectionTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAiBjE,eAAO,MAAM,6BAA6B,EAAE,gBA2B3C,CAAC"}
1
+ {"version":3,"file":"resolveOrderRejectionTemplate.d.ts","sourceRoot":"","sources":["../../src/templates/resolveOrderRejectionTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAiBvD,eAAO,MAAM,6BAA6B,EAAE,gBA2B3C,CAAC"}
@@ -1,3 +1,3 @@
1
- import { TemplateResolver } from '@unchainedshop/core-messaging';
1
+ import { TemplateResolver } from '@unchainedshop/core';
2
2
  export declare const resolveQuotationStatusTemplate: TemplateResolver;
3
3
  //# sourceMappingURL=resolveQuotationStatusTemplate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolveQuotationStatusTemplate.d.ts","sourceRoot":"","sources":["../../src/templates/resolveQuotationStatusTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAcjE,eAAO,MAAM,8BAA8B,EAAE,gBAuC5C,CAAC"}
1
+ {"version":3,"file":"resolveQuotationStatusTemplate.d.ts","sourceRoot":"","sources":["../../src/templates/resolveQuotationStatusTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAcvD,eAAO,MAAM,8BAA8B,EAAE,gBAuC5C,CAAC"}
package/package.json CHANGED
@@ -1,16 +1,13 @@
1
1
  {
2
2
  "name": "@unchainedshop/platform",
3
- "version": "3.0.0-alpha7",
3
+ "version": "3.0.0-rc2",
4
4
  "main": "lib/platform-index.js",
5
- "exports": {
6
- ".": "./lib/platform-index.js",
7
- "./*": "./lib/*"
8
- },
9
5
  "types": "lib/platform-index.d.ts",
10
6
  "type": "module",
11
7
  "scripts": {
12
- "clean": "rm -rf lib",
13
- "prepublishOnly": "npm run clean && tsc",
8
+ "clean": "tsc -b --clean",
9
+ "build": "tsc -b",
10
+ "prepublishOnly": "npm run clean && npm run build",
14
11
  "watch": "tsc -w",
15
12
  "test": "NODE_OPTIONS=--experimental-vm-modules jest --detectOpenHandles --forceExit",
16
13
  "test:watch": "NODE_OPTIONS=--experimental-vm-modules jest --watch --detectOpenHandles --forceExit"
@@ -31,24 +28,21 @@
31
28
  },
32
29
  "homepage": "https://github.com/unchainedshop/unchained#readme",
33
30
  "dependencies": {
34
- "@unchainedshop/api": "^3.0.0-alpha4",
35
- "@unchainedshop/core": "^3.0.0-alpha4",
36
- "@unchainedshop/events": "^3.0.0-alpha4",
37
- "@unchainedshop/file-upload": "^3.0.0-alpha4",
38
- "@unchainedshop/logger": "^3.0.0-alpha4",
39
- "@unchainedshop/mongodb": "^3.0.0-alpha4",
40
- "@unchainedshop/plugins": "^3.0.0-alpha4",
41
- "@unchainedshop/roles": "^3.0.0-alpha4",
42
- "@unchainedshop/utils": "^3.0.0-alpha4",
43
- "event-iterator": "^2.0.0",
44
- "JSONStream": "^1.3.5",
45
- "moniker": "0.1.2"
31
+ "@unchainedshop/api": "^3.0.0-rc2",
32
+ "@unchainedshop/core": "^3.0.0-rc2",
33
+ "@unchainedshop/events": "^3.0.0-rc2",
34
+ "@unchainedshop/file-upload": "^3.0.0-rc2",
35
+ "@unchainedshop/logger": "^3.0.0-rc2",
36
+ "@unchainedshop/mongodb": "^3.0.0-rc2",
37
+ "@unchainedshop/plugins": "^3.0.0-rc2",
38
+ "@unchainedshop/roles": "^3.0.0-rc2",
39
+ "@unchainedshop/utils": "^3.0.0-rc2"
46
40
  },
47
41
  "devDependencies": {
48
- "@types/node": "^22.8.1",
42
+ "@types/node": "^22.10.2",
49
43
  "cross-env": "^7.0.3",
50
44
  "jest": "^29.7.0",
51
45
  "ts-jest": "^29.2.5",
52
- "typescript": "^5.6.3"
46
+ "typescript": "^5.7.2"
53
47
  }
54
48
  }
@@ -3,6 +3,9 @@ import { BulkImporter, UnchainedCore } from '@unchainedshop/core';
3
3
  import * as AssortmentHandlers from './handlers/assortment/index.js';
4
4
  import * as FilterHandlers from './handlers/filter/index.js';
5
5
  import * as ProductHandlers from './handlers/product/index.js';
6
+ import { createLogger } from '@unchainedshop/logger';
7
+
8
+ const logger = createLogger('unchained:bulk-import');
6
9
 
7
10
  export type BulkImportOperationResult = {
8
11
  entity: string;
@@ -16,7 +19,6 @@ export type BulkImportOperation = (
16
19
  createShouldUpsertIfIDExists?: boolean;
17
20
  updateShouldUpsertIfIDNotExists?: boolean;
18
21
  skipCacheInvalidation?: boolean;
19
- logger?: any;
20
22
  },
21
23
  unchainedAPI: UnchainedCore,
22
24
  ) => Promise<BulkImportOperationResult>;
@@ -54,12 +56,8 @@ export const createBulkImporterFactory = (db, bulkImporterOptions: any): BulkImp
54
56
  const bulkOperations = {};
55
57
  const preparationIssues = [];
56
58
  const processedOperations = {};
57
- const {
58
- logger,
59
- createShouldUpsertIfIDExists,
60
- skipCacheInvalidation,
61
- updateShouldUpsertIfIDNotExists,
62
- } = options;
59
+ const { createShouldUpsertIfIDExists, skipCacheInvalidation, updateShouldUpsertIfIDNotExists } =
60
+ options;
63
61
 
64
62
  const bulk = (collectionName: string) => {
65
63
  const Collection = db.collection(collectionName);
@@ -68,7 +66,7 @@ export const createBulkImporterFactory = (db, bulkImporterOptions: any): BulkImp
68
66
  return bulkOperations[collectionName];
69
67
  };
70
68
 
71
- logger.info(
69
+ logger.debug(
72
70
  `Configure event import with options: createShouldUpsertIfIDExists=${createShouldUpsertIfIDExists} updateShouldUpsertIfIDNotExists=${updateShouldUpsertIfIDNotExists} skipCacheInvalidation=${skipCacheInvalidation}`,
73
71
  );
74
72
 
@@ -81,19 +79,16 @@ export const createBulkImporterFactory = (db, bulkImporterOptions: any): BulkImp
81
79
 
82
80
  const payloadId = event.payload?._id || 'global';
83
81
 
84
- logger.verbose(`${operation} ${entity} ${payloadId} [PREPARE]`);
85
- logger.profile(`${operation} ${entity} ${payloadId} [DONE]`, {
86
- level: 'verbose',
87
- });
82
+ logger.debug(`${operation} ${entity} ${payloadId} [PREPARE]`);
88
83
 
89
84
  try {
90
- await handler(event.payload, { bulk, ...options }, unchainedAPI);
85
+ await handler(event.payload, { bulk, logger, ...options }, unchainedAPI);
91
86
  if (!processedOperations[entity]) processedOperations[entity] = {};
92
87
  if (!processedOperations[entity][operation]) processedOperations[entity][operation] = [];
93
88
  processedOperations[entity][operation].push(payloadId);
94
- logger.verbose(`${operation} ${entity} ${payloadId} [SUCCESS]`);
89
+ logger.debug(`${operation} ${entity} ${payloadId} [SUCCESS]`);
95
90
  } catch (e) {
96
- logger.verbose(`${operation} ${entity} ${payloadId} [FAILED]: ${e.message}`);
91
+ logger.debug(`${operation} ${entity} ${payloadId} [FAILED]`, e);
97
92
  preparationIssues.push({
98
93
  operation,
99
94
  entity,
@@ -102,13 +97,11 @@ export const createBulkImporterFactory = (db, bulkImporterOptions: any): BulkImp
102
97
  errorMessage: e.message,
103
98
  });
104
99
  } finally {
105
- logger.profile(`${operation} ${entity} ${payloadId} [DONE]`, {
106
- level: 'verbose',
107
- });
100
+ logger.debug(`${operation} ${entity} ${payloadId} [DONE]`);
108
101
  }
109
102
  },
110
103
  execute: async () => {
111
- logger.info(`Execute bulk operations for: ${Object.keys(bulkOperations).join(', ')}`);
104
+ logger.debug(`Execute bulk operations for: ${Object.keys(bulkOperations).join(', ')}`);
112
105
 
113
106
  const processedBulkOperations = await Promise.allSettled(
114
107
  Object.values(bulkOperations).map(async (o: any) => o.execute()),
@@ -124,13 +117,13 @@ export const createBulkImporterFactory = (db, bulkImporterOptions: any): BulkImp
124
117
  const errors = { preparationIssues };
125
118
  return [operationResults, errors];
126
119
  }
127
- logger.info(`Import finished without errors`);
120
+ logger.debug(`Import finished without errors`);
128
121
  return [operationResults, null];
129
122
  },
130
123
  invalidateCaches: async (unchainedAPI: UnchainedCore) => {
131
124
  if (skipCacheInvalidation) return;
132
125
  await unchainedAPI.modules.assortments.invalidateCache({}, { skipUpstreamTraversal: true });
133
- await unchainedAPI.modules.filters.invalidateCache({}, unchainedAPI);
126
+ await unchainedAPI.services.filters.invalidateFilterCache();
134
127
  },
135
128
  };
136
129
  };
@@ -16,28 +16,19 @@ export default async function createFilter(
16
16
 
17
17
  logger.debug('create filter object', specification);
18
18
  try {
19
- await unchainedAPI.modules.filters.create(
20
- {
21
- ...filterData,
22
- _id,
23
- options: options?.map((option) => option.value) || [],
24
- },
25
- unchainedAPI,
26
- { skipInvalidation: true },
27
- );
19
+ await unchainedAPI.modules.filters.create({
20
+ ...filterData,
21
+ _id,
22
+ options: options?.map((option) => option.value) || [],
23
+ });
28
24
  } catch (e) {
29
25
  if (!createShouldUpsertIfIDExists) throw e;
30
26
 
31
27
  logger.debug('entity already exists, falling back to update', specification);
32
- await modules.filters.update(
33
- _id,
34
- {
35
- ...filterData,
36
- options: options?.map((option) => option.value) || [],
37
- },
38
- unchainedAPI,
39
- { skipInvalidation: true },
40
- );
28
+ await modules.filters.update(_id, {
29
+ ...filterData,
30
+ options: options?.map((option) => option.value) || [],
31
+ });
41
32
  }
42
33
 
43
34
  if (!(await modules.filters.filterExists({ filterId: _id }))) {
@@ -20,15 +20,10 @@ export default async function updateFilter(
20
20
 
21
21
  if (specification) {
22
22
  logger.debug('update filter object', specification);
23
- await modules.filters.update(
24
- _id,
25
- {
26
- ...filterData,
27
- options: options?.map((option) => option.value) || [],
28
- },
29
- unchainedAPI,
30
- { skipInvalidation: true },
31
- );
23
+ await modules.filters.update(_id, {
24
+ ...filterData,
25
+ options: options?.map((option) => option.value) || [],
26
+ });
32
27
  }
33
28
 
34
29
  if (content) {
@@ -5,7 +5,7 @@ export default async function removeProduct(payload: any, { logger }, unchainedA
5
5
  const { _id } = payload;
6
6
  logger.debug(`remove product ${_id}`);
7
7
 
8
- await services.products.removeProduct({ productId: _id }, unchainedAPI);
8
+ await services.products.removeProduct({ productId: _id });
9
9
 
10
10
  return {
11
11
  entity: 'PRODUCT',
@@ -20,19 +20,16 @@ const upsertAsset = async (
20
20
  return updatedFile;
21
21
  }
22
22
 
23
- const assetObject = await services.files.uploadFileFromURL(
24
- {
25
- directoryName,
26
- fileInput: {
27
- fileLink: url,
28
- fileName,
29
- fileId,
30
- headers,
31
- },
32
- meta,
23
+ const assetObject = await services.files.uploadFileFromURL({
24
+ directoryName,
25
+ fileInput: {
26
+ fileLink: url,
27
+ fileName,
28
+ fileId,
29
+ headers,
33
30
  },
34
- unchainedAPI,
35
- );
31
+ meta,
32
+ });
36
33
 
37
34
  if (!assetObject) throw new Error('Media not created');
38
35
  return assetObject;
@@ -1,12 +1,12 @@
1
1
  import { UnchainedCore } from '@unchainedshop/core';
2
- import crypto from 'crypto';
2
+ import { sha256 } from '@unchainedshop/utils';
3
3
 
4
4
  export default async (
5
5
  unchainedAPI: UnchainedCore,
6
6
  username: string,
7
7
  plainSecret: string,
8
8
  ): Promise<void> => {
9
- const secret = crypto.createHash('sha256').update(`${username}:${plainSecret}`).digest('hex');
9
+ const secret = await sha256(`${username}:${plainSecret}`);
10
10
 
11
11
  await unchainedAPI.modules.users.updateUser(
12
12
  { username },
@@ -17,7 +17,7 @@ export const runMigrations = async ({
17
17
  const findCurrentId = async () => {
18
18
  const last = await LastMigration.findOne({ category: 'unchained' }, { sort: { _id: -1 } });
19
19
  const id = last ? last._id : 0;
20
- logger.verbose(`Most recent migration id: ${id}`);
20
+ logger.info(`Most recent migration id: ${id}`);
21
21
  return id;
22
22
  };
23
23
 
@@ -36,7 +36,7 @@ export const runMigrations = async ({
36
36
  upsert: true,
37
37
  },
38
38
  );
39
- logger.verbose(`Migrated '${action}' to ${id}`);
39
+ logger.info(`Migrated '${action}' to ${id}`);
40
40
  return id;
41
41
  };
42
42
 
@@ -9,10 +9,14 @@ const { UNCHAINED_DISABLE_PROVIDER_INVALIDATION, UNCHAINED_ASSIGN_CART_FOR_USERS
9
9
 
10
10
  export const setupCarts = async (unchainedAPI: UnchainedCore, options: SetupCartsOptions = {}) => {
11
11
  if (options.invalidateProviders ?? !UNCHAINED_DISABLE_PROVIDER_INVALIDATION) {
12
- await unchainedAPI.modules.orders.invalidateProviders(
13
- unchainedAPI,
12
+ const orders = await unchainedAPI.modules.orders.findCartsToInvalidate(
14
13
  options.providerInvalidationMaxAgeDays,
15
14
  );
15
+ await Promise.allSettled(
16
+ orders.map(async (order) => {
17
+ await unchainedAPI.services.orders.updateCalculation(order._id);
18
+ }),
19
+ );
16
20
  }
17
21
 
18
22
  if (options.assignCartForUsers ?? Boolean(UNCHAINED_ASSIGN_CART_FOR_USERS)) {
@@ -21,13 +25,10 @@ export const setupCarts = async (unchainedAPI: UnchainedCore, options: SetupCart
21
25
  await Promise.all(
22
26
  users.map((user) => {
23
27
  const locale = unchainedAPI.modules.users.userLocale(user);
24
- return unchainedAPI.services.orders.nextUserCart(
25
- {
26
- user,
27
- countryCode: locale.region,
28
- },
29
- unchainedAPI,
30
- );
28
+ return unchainedAPI.services.orders.nextUserCart({
29
+ user,
30
+ countryCode: locale.region,
31
+ });
31
32
  }),
32
33
  );
33
34
  }
@@ -1,8 +1,7 @@
1
- import { MessagingDirector } from '@unchainedshop/core-messaging';
2
- import { UnchainedCore } from '@unchainedshop/core';
1
+ import { MessagingDirector, UnchainedCore } from '@unchainedshop/core';
3
2
  import { subscribe } from '@unchainedshop/events';
4
3
  import { Order, OrderStatus } from '@unchainedshop/core-orders';
5
- import { RawPayloadType } from '@unchainedshop/events/EventDirector.js';
4
+ import { RawPayloadType } from '@unchainedshop/events';
6
5
  import { resolveOrderRejectionTemplate } from '../templates/resolveOrderRejectionTemplate.js';
7
6
  import { resolveAccountActionTemplate } from '../templates/resolveAccountActionTemplate.js';
8
7
  import { resolveForwardDeliveryTemplate } from '../templates/resolveForwardDeliveryTemplate.js';
@@ -41,7 +40,7 @@ export const setupTemplates = (unchainedAPI: UnchainedCore) => {
41
40
  type: 'MESSAGE',
42
41
  retries: 0,
43
42
  input: {
44
- locale,
43
+ locale: locale.baseName,
45
44
  template: MessageTypes.ORDER_CONFIRMATION,
46
45
  orderId: order._id,
47
46
  },
@@ -58,7 +57,7 @@ export const setupTemplates = (unchainedAPI: UnchainedCore) => {
58
57
  type: 'MESSAGE',
59
58
  retries: 0,
60
59
  input: {
61
- locale,
60
+ locale: locale.baseName,
62
61
  template: MessageTypes.ORDER_CONFIRMATION,
63
62
  orderId: order._id,
64
63
  },
@@ -0,0 +1,22 @@
1
+ import { UnchainedCore } from '@unchainedshop/core';
2
+ import { FileDirector } from '@unchainedshop/file-upload';
3
+
4
+ export const setupUploadHandlers = ({ services, modules }: UnchainedCore) => {
5
+ FileDirector.registerFileUploadCallback('user-avatars', async (file) => {
6
+ return services.users.updateUserAvatarAfterUpload({ file });
7
+ });
8
+
9
+ FileDirector.registerFileUploadCallback('product-media', async (file) => {
10
+ await modules.products.media.create({
11
+ productId: file.meta?.productId as string,
12
+ mediaId: file._id,
13
+ });
14
+ });
15
+
16
+ FileDirector.registerFileUploadCallback('assortment-media', async (file) => {
17
+ await modules.assortments.media.create({
18
+ assortmentId: file.meta.assortmentId as string,
19
+ mediaId: file._id,
20
+ });
21
+ });
22
+ };
@@ -1,16 +1,12 @@
1
- import {
2
- EventListenerWorker,
3
- FailedRescheduler,
4
- IntervalWorker,
5
- WorkerSchedule,
6
- WorkData,
7
- } from '@unchainedshop/core-worker';
8
1
  import { UnchainedCore } from '@unchainedshop/core';
9
-
2
+ import { EventListenerWorker } from '@unchainedshop/plugins/worker/EventListenerWorker.js';
3
+ import { IntervalWorker, IntervalWorkerParams } from '@unchainedshop/plugins/worker/IntervalWorker.js';
4
+ import { FailedRescheduler } from '@unchainedshop/plugins/worker/FailedRescheduler.js';
5
+ import { WorkData } from '@unchainedshop/core-worker';
10
6
  export interface SetupWorkqueueOptions {
11
7
  batchCount?: number;
12
8
  disableWorker?: boolean;
13
- schedule?: WorkerSchedule;
9
+ schedule?: IntervalWorkerParams['schedule'];
14
10
  workerId?: string;
15
11
  retryInput?: (
16
12
  workData: WorkData,
@@ -4,10 +4,11 @@ import { initDb, mongodb } from '@unchainedshop/mongodb';
4
4
  import { createLogger } from '@unchainedshop/logger';
5
5
  import { UnchainedCore } from '@unchainedshop/core';
6
6
  import { getRegisteredEvents } from '@unchainedshop/events';
7
- import { WorkerDirector } from '@unchainedshop/core-worker';
7
+ import { WorkerDirector } from '@unchainedshop/core';
8
8
  import { BulkImportHandler, createBulkImporterFactory } from './bulk-importer/createBulkImporter.js';
9
9
  import { runMigrations } from './migrations/runMigrations.js';
10
10
  import { setupAccounts } from './setup/setupAccounts.js';
11
+ import { setupUploadHandlers } from './setup/setupUploadHandlers.js';
11
12
  import { SetupCartsOptions, setupCarts } from './setup/setupCarts.js';
12
13
  import { setupTemplates, MessageTypes } from './setup/setupTemplates.js';
13
14
  import { SetupWorkqueueOptions, setupWorkqueue } from './setup/setupWorkqueue.js';
@@ -99,6 +100,9 @@ export const startPlatform = async ({
99
100
  // Setup email templates
100
101
  setupTemplates(unchainedAPI);
101
102
 
103
+ // Setup file upload handlers
104
+ setupUploadHandlers(unchainedAPI);
105
+
102
106
  // Start the graphQL server
103
107
  const graphqlHandler = await startAPIServer({
104
108
  unchainedAPI,
@@ -117,7 +121,7 @@ export const startPlatform = async ({
117
121
 
118
122
  // Setup filter cache
119
123
  if (!workQueueOptions?.skipInvalidationOnStartup) {
120
- setImmediate(() => unchainedAPI.modules.filters.invalidateCache({}, unchainedAPI));
124
+ setImmediate(() => unchainedAPI.services.filters.invalidateFilterCache());
121
125
  }
122
126
 
123
127
  return { unchainedAPI, graphqlHandler, db };
@@ -1,4 +1,4 @@
1
- import type { Address } from '@unchainedshop/mongodb';
1
+ import { Address } from '@unchainedshop/mongodb';
2
2
 
3
3
  export const formatAddress = (address: Address) => {
4
4
  return [