@unchainedshop/platform 3.1.15 → 4.0.0-rc.10

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 (55) hide show
  1. package/lib/bulk-importer/createBulkImporter.d.ts +3 -5
  2. package/lib/bulk-importer/createBulkImporter.d.ts.map +1 -1
  3. package/lib/bulk-importer/createBulkImporter.js.map +1 -1
  4. package/lib/setup/setupWorkqueue.d.ts +16 -12
  5. package/lib/setup/setupWorkqueue.d.ts.map +1 -1
  6. package/lib/setup/setupWorkqueue.js +50 -12
  7. package/lib/setup/setupWorkqueue.js.map +1 -1
  8. package/lib/startPlatform.d.ts +1 -5
  9. package/lib/startPlatform.d.ts.map +1 -1
  10. package/lib/startPlatform.js +20 -33
  11. package/lib/startPlatform.js.map +1 -1
  12. package/lib/templates/order-parser/getOrderPositionsData.d.ts +4 -4
  13. package/lib/templates/order-parser/getOrderPositionsData.d.ts.map +1 -1
  14. package/lib/templates/order-parser/getOrderPositionsData.js +1 -1
  15. package/lib/templates/order-parser/getOrderPositionsData.js.map +1 -1
  16. package/lib/templates/order-parser/getOrderSummaryData.d.ts +8 -8
  17. package/lib/templates/order-parser/getOrderSummaryData.d.ts.map +1 -1
  18. package/lib/templates/order-parser/getOrderSummaryData.js +1 -1
  19. package/lib/templates/order-parser/getOrderSummaryData.js.map +1 -1
  20. package/lib/templates/order-parser/index.d.ts +1 -1
  21. package/lib/templates/order-parser/index.d.ts.map +1 -1
  22. package/lib/templates/order-parser/index.js.map +1 -1
  23. package/lib/templates/resolveForwardDeliveryTemplate.js +1 -1
  24. package/lib/templates/resolveForwardDeliveryTemplate.js.map +1 -1
  25. package/lib/templates/resolveOrderConfirmationTemplate.js +1 -1
  26. package/lib/templates/resolveOrderConfirmationTemplate.js.map +1 -1
  27. package/lib/templates/resolveOrderRejectionTemplate.js +1 -1
  28. package/lib/templates/resolveOrderRejectionTemplate.js.map +1 -1
  29. package/package.json +11 -11
  30. package/src/bulk-importer/createBulkImporter.ts +3 -5
  31. package/src/setup/setupWorkqueue.ts +94 -26
  32. package/src/startPlatform.ts +23 -39
  33. package/src/templates/order-parser/getOrderPositionsData.ts +3 -3
  34. package/src/templates/order-parser/getOrderSummaryData.ts +3 -3
  35. package/src/templates/order-parser/index.ts +1 -1
  36. package/src/templates/resolveForwardDeliveryTemplate.ts +1 -1
  37. package/src/templates/resolveOrderConfirmationTemplate.ts +1 -1
  38. package/src/templates/resolveOrderRejectionTemplate.ts +1 -1
  39. package/lib/context/withAccessToken.d.ts +0 -4
  40. package/lib/context/withAccessToken.d.ts.map +0 -1
  41. package/lib/context/withAccessToken.js +0 -42
  42. package/lib/context/withAccessToken.js.map +0 -1
  43. package/lib/setup/setupCarts.d.ts +0 -8
  44. package/lib/setup/setupCarts.d.ts.map +0 -1
  45. package/lib/setup/setupCarts.js +0 -20
  46. package/lib/setup/setupCarts.js.map +0 -1
  47. package/lib/templates/order-parser/formatAddress.d.ts +0 -3
  48. package/lib/templates/order-parser/formatAddress.d.ts.map +0 -1
  49. package/lib/templates/order-parser/formatAddress.js +0 -14
  50. package/lib/templates/order-parser/formatAddress.js.map +0 -1
  51. package/lib/templates/order-parser/formatPrice.d.ts +0 -6
  52. package/lib/templates/order-parser/formatPrice.d.ts.map +0 -1
  53. package/lib/templates/order-parser/formatPrice.js +0 -6
  54. package/lib/templates/order-parser/formatPrice.js.map +0 -1
  55. package/src/setup/setupCarts.ts +0 -35
@@ -3,20 +3,18 @@ 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
- export type BulkImportOperationResult = {
6
+ export interface BulkImportOperationResult {
7
7
  entity: string;
8
8
  operation: string;
9
9
  success: boolean;
10
- };
10
+ }
11
11
  export type BulkImportOperation = (payload: any, options: {
12
12
  bulk: (collection: string) => typeof mongodb.BulkOperationBase;
13
13
  createShouldUpsertIfIDExists?: boolean;
14
14
  updateShouldUpsertIfIDNotExists?: boolean;
15
15
  skipCacheInvalidation?: boolean;
16
16
  }, unchainedAPI: UnchainedCore) => Promise<BulkImportOperationResult>;
17
- export type BulkImportHandler = {
18
- [x: string]: BulkImportOperation;
19
- };
17
+ export type BulkImportHandler = Record<string, BulkImportOperation>;
20
18
  export declare const getOperation: (entity: string, operation: string) => BulkImportOperation;
21
19
  export declare const createBulkImporterFactory: (db: any, bulkImporterOptions: any) => BulkImporter;
22
20
  export { AssortmentHandlers, ProductHandlers, FilterHandlers };
@@ -1 +1 @@
1
- {"version":3,"file":"createBulkImporter.d.ts","sourceRoot":"","sources":["../../src/bulk-importer/createBulkImporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,KAAK,kBAAkB,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,cAAc,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,eAAe,MAAM,6BAA6B,CAAC;AAK/D,MAAM,MAAM,yBAAyB,GAAG;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AACF,MAAM,MAAM,mBAAmB,GAAG,CAChC,OAAO,EAAE,GAAG,EACZ,OAAO,EAAE;IACP,IAAI,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,OAAO,CAAC,iBAAiB,CAAC;IAC/D,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,+BAA+B,CAAC,EAAE,OAAO,CAAC;IAC1C,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC,EACD,YAAY,EAAE,aAAa,KACxB,OAAO,CAAC,yBAAyB,CAAC,CAAC;AAExC,MAAM,MAAM,iBAAiB,GAAG;IAC9B,CAAC,CAAC,EAAE,MAAM,GAAG,mBAAmB,CAAC;CAClC,CAAC;AAIF,eAAO,MAAM,YAAY,GAAI,QAAQ,MAAM,EAAE,WAAW,MAAM,KAAG,mBAahE,CAAC;AAEF,eAAO,MAAM,yBAAyB,GAAI,OAAE,EAAE,qBAAqB,GAAG,KAAG,YAuFxE,CAAC;AAEF,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"createBulkImporter.d.ts","sourceRoot":"","sources":["../../src/bulk-importer/createBulkImporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,KAAK,kBAAkB,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,cAAc,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,eAAe,MAAM,6BAA6B,CAAC;AAK/D,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CAClB;AACD,MAAM,MAAM,mBAAmB,GAAG,CAChC,OAAO,EAAE,GAAG,EACZ,OAAO,EAAE;IACP,IAAI,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,OAAO,CAAC,iBAAiB,CAAC;IAC/D,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,+BAA+B,CAAC,EAAE,OAAO,CAAC;IAC1C,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC,EACD,YAAY,EAAE,aAAa,KACxB,OAAO,CAAC,yBAAyB,CAAC,CAAC;AAExC,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;AAIpE,eAAO,MAAM,YAAY,GAAI,QAAQ,MAAM,EAAE,WAAW,MAAM,KAAG,mBAahE,CAAC;AAEF,eAAO,MAAM,yBAAyB,GAAI,OAAE,EAAE,qBAAqB,GAAG,KAAG,YAuFxE,CAAC;AAEF,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,cAAc,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"createBulkImporter.js","sourceRoot":"","sources":["../../src/bulk-importer/createBulkImporter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,kBAAkB,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,cAAc,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,eAAe,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,MAAM,MAAM,GAAG,YAAY,CAAC,uBAAuB,CAAC,CAAC;AAsBrD,IAAI,qBAAqB,GAAsC,EAAE,CAAC;AAElE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,MAAc,EAAE,SAAiB,EAAuB,EAAE;IACrF,MAAM,QAAQ,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC/C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,UAAU,MAAM,UAAU,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,eAAe,GAAG,QAAQ,CAAC,SAAS,CAAwB,CAAC;IAEnE,IAAI,CAAC,eAAe,IAAI,OAAO,eAAe,KAAK,UAAU,EAAE,CAAC;QAC9D,MAAM,IAAI,KAAK,CAAC,aAAa,SAAS,eAAe,MAAM,UAAU,CAAC,CAAC;IACzE,CAAC;IAED,OAAO,eAAe,CAAC;AACzB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,EAAE,EAAE,mBAAwB,EAAgB,EAAE;IACtF,qBAAqB,GAAG;QACtB,UAAU,EAAE,kBAAkB;QAC9B,OAAO,EAAE,eAAe;QACxB,MAAM,EAAE,cAAc;QACtB,GAAG,CAAC,mBAAmB,EAAE,QAAQ,IAAI,EAAE,CAAC;KACzC,CAAC;IAEF,MAAM,kBAAkB,GAAuC,CAAC,OAAO,EAAE,EAAE;QACzE,MAAM,cAAc,GAAG,EAAE,CAAC;QAC1B,MAAM,iBAAiB,GAAG,EAAE,CAAC;QAC7B,MAAM,mBAAmB,GAAG,EAAE,CAAC;QAC/B,MAAM,EAAE,4BAA4B,EAAE,qBAAqB,EAAE,+BAA+B,EAAE,GAC5F,OAAO,CAAC;QAEV,MAAM,IAAI,GAAG,CAAC,cAAsB,EAAE,EAAE;YACtC,MAAM,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;YACjD,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC;gBACjC,cAAc,CAAC,cAAc,CAAC,GAAG,UAAU,CAAC,uBAAuB,EAAE,CAAC;YACxE,OAAO,cAAc,CAAC,cAAc,CAAC,CAAC;QACxC,CAAC,CAAC;QAEF,MAAM,CAAC,KAAK,CACV,qEAAqE,4BAA4B,oCAAoC,+BAA+B,0BAA0B,qBAAqB,EAAE,CACtN,CAAC;QAEF,OAAO;YACL,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,YAA2B,EAAE,EAAE;gBACpD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;gBAC1C,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;gBAEhD,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;gBAEhD,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,EAAE,GAAG,IAAI,QAAQ,CAAC;gBAEjD,MAAM,CAAC,KAAK,CAAC,GAAG,SAAS,IAAI,MAAM,IAAI,SAAS,YAAY,CAAC,CAAC;gBAE9D,IAAI,CAAC;oBACH,MAAM,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,EAAE,YAAY,CAAC,CAAC;oBACzE,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC;wBAAE,mBAAmB,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;oBACnE,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC;wBAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;oBACzF,mBAAmB,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBACvD,MAAM,CAAC,KAAK,CAAC,GAAG,SAAS,IAAI,MAAM,IAAI,SAAS,YAAY,CAAC,CAAC;gBAChE,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,MAAM,CAAC,KAAK,CAAC,GAAG,SAAS,IAAI,MAAM,IAAI,SAAS,WAAW,EAAE,CAAC,CAAC,CAAC;oBAChE,iBAAiB,CAAC,IAAI,CAAC;wBACrB,SAAS;wBACT,MAAM;wBACN,SAAS;wBACT,SAAS,EAAE,CAAC,CAAC,IAAI;wBACjB,YAAY,EAAE,CAAC,CAAC,OAAO;qBACxB,CAAC,CAAC;gBACL,CAAC;wBAAS,CAAC;oBACT,MAAM,CAAC,KAAK,CAAC,GAAG,SAAS,IAAI,MAAM,IAAI,SAAS,SAAS,CAAC,CAAC;gBAC7D,CAAC;YACH,CAAC;YACD,OAAO,EAAE,KAAK,IAAI,EAAE;gBAClB,MAAM,CAAC,KAAK,CAAC,gCAAgC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAEvF,MAAM,uBAAuB,GAAG,MAAM,OAAO,CAAC,UAAU,CACtD,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CACjE,CAAC;gBACF,MAAM,gBAAgB,GAAG;oBACvB,mBAAmB;oBACnB,uBAAuB;iBACxB,CAAC;gBACF,IAAI,iBAAiB,EAAE,MAAM,EAAE,CAAC;oBAC9B,MAAM,CAAC,KAAK,CACV,GAAG,iBAAiB,CAAC,MAAM,qEAAqE,CACjG,CAAC;oBACF,MAAM,MAAM,GAAG,EAAE,iBAAiB,EAAE,CAAC;oBACrC,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;gBACpC,CAAC;gBACD,MAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;gBAC/C,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;YAClC,CAAC;YACD,gBAAgB,EAAE,KAAK,EAAE,YAA2B,EAAE,EAAE;gBACtD,IAAI,qBAAqB;oBAAE,OAAO;gBAClC,MAAM,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC5F,MAAM,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;YAC9D,CAAC;SACF,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO;QACL,kBAAkB;KACnB,CAAC;AACJ,CAAC,CAAC;AAEF,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"createBulkImporter.js","sourceRoot":"","sources":["../../src/bulk-importer/createBulkImporter.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,19 @@
1
- import { UnchainedCore } from '@unchainedshop/core';
2
- import { IntervalWorkerParams } from '@unchainedshop/plugins/worker/IntervalWorker.js';
3
- import { WorkData } from '@unchainedshop/core-worker';
4
- export interface SetupWorkqueueOptions {
5
- batchCount?: number;
1
+ import { FailedReschedulerParams, IntervalWorkerParams, IScheduler, IWorker, UnchainedCore } from '@unchainedshop/core';
2
+ import { MigrationRepository } from '@unchainedshop/mongodb';
3
+ export type WorkQueueQueueManager = IWorker<any> | IScheduler<any>;
4
+ export interface SetupWorkqueueOptions extends IntervalWorkerParams, FailedReschedulerParams {
5
+ enabledQueueManagers?: WorkQueueQueueManager[];
6
+ invalidateProviders?: boolean;
7
+ providerInvalidationMaxAgeDays?: number;
8
+ assignCartForUsers?: boolean;
6
9
  disableWorker?: boolean;
7
- schedule?: IntervalWorkerParams['schedule'];
8
- workerId?: string;
9
- retryInput?: (workData: WorkData, priorInput: Record<string, any>) => Promise<Record<string, any> | null>;
10
+ skipInvalidationOnStartup?: boolean;
10
11
  }
11
- export declare const setupWorkqueue: (unchainedAPI: UnchainedCore, workQueueOptions?: SetupWorkqueueOptions) => {
12
- start: () => void;
13
- stop: () => void;
14
- }[];
12
+ export declare const defaultQueueManagers: WorkQueueQueueManager[];
13
+ export declare const queueWorkers: any[];
14
+ export declare function setupWorkqueue({ unchainedAPI, migrationRepository, ...workQueueOptions }: {
15
+ unchainedAPI: UnchainedCore;
16
+ migrationRepository: MigrationRepository<UnchainedCore>;
17
+ } & SetupWorkqueueOptions): Promise<void>;
18
+ export declare function stopWorkqueue(): void;
15
19
  //# sourceMappingURL=setupWorkqueue.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"setupWorkqueue.d.ts","sourceRoot":"","sources":["../../src/setup/setupWorkqueue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAkB,oBAAoB,EAAE,MAAM,iDAAiD,CAAC;AAEvG,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,MAAM,WAAW,qBAAqB;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,oBAAoB,CAAC,UAAU,CAAC,CAAC;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,CACX,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAC5B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;CAC1C;AAED,eAAO,MAAM,cAAc,GACzB,cAAc,aAAa,EAC3B,mBAAkB,qBAA0B;;;GAU7C,CAAC"}
1
+ {"version":3,"file":"setupWorkqueue.d.ts","sourceRoot":"","sources":["../../src/setup/setupWorkqueue.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,uBAAuB,EAEvB,oBAAoB,EACpB,UAAU,EACV,OAAO,EACP,aAAa,EACd,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAG7D,MAAM,MAAM,qBAAqB,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;AACnE,MAAM,WAAW,qBAAsB,SAAQ,oBAAoB,EAAE,uBAAuB;IAC1F,oBAAoB,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAC/C,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,8BAA8B,CAAC,EAAE,MAAM,CAAC;IACxC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACrC;AAQD,eAAO,MAAM,oBAAoB,EAAE,qBAAqB,EAIvD,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,GAAG,EAAO,CAAC;AAEtC,wBAAsB,cAAc,CAAC,EACnC,YAAY,EACZ,mBAAmB,EACnB,GAAG,gBAAgB,EACpB,EAAE;IACD,YAAY,EAAE,aAAa,CAAC;IAC5B,mBAAmB,EAAE,mBAAmB,CAAC,aAAa,CAAC,CAAC;CACzD,GAAG,qBAAqB,iBA4CxB;AAED,wBAAgB,aAAa,SAK5B"}
@@ -1,13 +1,51 @@
1
- import { EventListenerWorker } from '@unchainedshop/plugins/worker/EventListenerWorker.js';
2
- import { IntervalWorker } from '@unchainedshop/plugins/worker/IntervalWorker.js';
3
- import { FailedRescheduler } from '@unchainedshop/plugins/worker/FailedRescheduler.js';
4
- export const setupWorkqueue = (unchainedAPI, workQueueOptions = {}) => {
5
- const handlers = [
6
- FailedRescheduler.actions(workQueueOptions, unchainedAPI),
7
- EventListenerWorker.actions(workQueueOptions, unchainedAPI),
8
- IntervalWorker.actions(workQueueOptions, unchainedAPI),
9
- ];
10
- handlers.forEach((handler) => handler.start());
11
- return handlers;
12
- };
1
+ import { EventListenerWorker, FailedRescheduler, IntervalWorker, } from '@unchainedshop/core';
2
+ import { runMigrations } from '../migrations/runMigrations.js';
3
+ import { setImmediate } from 'node:timers/promises';
4
+ const { UNCHAINED_DISABLE_PROVIDER_INVALIDATION, UNCHAINED_DISABLE_WORKER, UNCHAINED_ASSIGN_CART_FOR_USERS, } = process.env;
5
+ export const defaultQueueManagers = [
6
+ FailedRescheduler,
7
+ EventListenerWorker,
8
+ IntervalWorker,
9
+ ];
10
+ export const queueWorkers = [];
11
+ export async function setupWorkqueue({ unchainedAPI, migrationRepository, ...workQueueOptions }) {
12
+ if (workQueueOptions.disableWorker || UNCHAINED_DISABLE_WORKER)
13
+ return;
14
+ // Run migrations
15
+ await runMigrations({ migrationRepository, unchainedAPI });
16
+ // Start queue managers
17
+ (workQueueOptions?.enabledQueueManagers || defaultQueueManagers).forEach((f) => {
18
+ const handler = f.actions(workQueueOptions, unchainedAPI);
19
+ queueWorkers.push(handler);
20
+ handler.start();
21
+ });
22
+ // Invalidate providers on carts
23
+ if (workQueueOptions.invalidateProviders ?? !UNCHAINED_DISABLE_PROVIDER_INVALIDATION) {
24
+ const orders = await unchainedAPI.modules.orders.findCartsToInvalidate(workQueueOptions.providerInvalidationMaxAgeDays);
25
+ await Promise.allSettled(orders.map(async (order) => {
26
+ await unchainedAPI.services.orders.updateCalculation(order._id);
27
+ }));
28
+ }
29
+ // Ensure users have carts
30
+ if (workQueueOptions.assignCartForUsers ?? Boolean(UNCHAINED_ASSIGN_CART_FOR_USERS)) {
31
+ const users = await unchainedAPI.modules.users.findUsers({});
32
+ await Promise.all(users.map((user) => {
33
+ const locale = unchainedAPI.modules.users.userLocale(user);
34
+ return unchainedAPI.services.orders.nextUserCart({
35
+ user,
36
+ countryCode: locale.region,
37
+ });
38
+ }));
39
+ }
40
+ // Setup filter cache
41
+ if (!workQueueOptions?.skipInvalidationOnStartup) {
42
+ await setImmediate(async () => unchainedAPI.services.filters.invalidateFilterCache());
43
+ }
44
+ }
45
+ export function stopWorkqueue() {
46
+ queueWorkers.forEach((worker) => {
47
+ worker?.stop();
48
+ });
49
+ queueWorkers.length = 0;
50
+ }
13
51
  //# sourceMappingURL=setupWorkqueue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"setupWorkqueue.js","sourceRoot":"","sources":["../../src/setup/setupWorkqueue.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sDAAsD,CAAC;AAC3F,OAAO,EAAE,cAAc,EAAwB,MAAM,iDAAiD,CAAC;AACvG,OAAO,EAAE,iBAAiB,EAAE,MAAM,oDAAoD,CAAC;AAavF,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,YAA2B,EAC3B,mBAA0C,EAAE,EAC5C,EAAE;IACF,MAAM,QAAQ,GAAG;QACf,iBAAiB,CAAC,OAAO,CAAC,gBAAgB,EAAE,YAAY,CAAC;QACzD,mBAAmB,CAAC,OAAO,CAAC,gBAAgB,EAAE,YAAY,CAAC;QAC3D,cAAc,CAAC,OAAO,CAAC,gBAAgB,EAAE,YAAY,CAAC;KACvD,CAAC;IAEF,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IAC/C,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC"}
1
+ {"version":3,"file":"setupWorkqueue.js","sourceRoot":"","sources":["../../src/setup/setupWorkqueue.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EAEjB,cAAc,GAKf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAYpD,MAAM,EACJ,uCAAuC,EACvC,wBAAwB,EACxB,+BAA+B,GAChC,GAAG,OAAO,CAAC,GAAG,CAAC;AAEhB,MAAM,CAAC,MAAM,oBAAoB,GAA4B;IAC3D,iBAAiB;IACjB,mBAAmB;IACnB,cAAc;CACf,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAU,EAAE,CAAC;AAEtC,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,EACnC,YAAY,EACZ,mBAAmB,EACnB,GAAG,gBAAgB,EAII;IACvB,IAAI,gBAAgB,CAAC,aAAa,IAAI,wBAAwB;QAAE,OAAO;IAEvE,iBAAiB;IACjB,MAAM,aAAa,CAAC,EAAE,mBAAmB,EAAE,YAAY,EAAE,CAAC,CAAC;IAE3D,uBAAuB;IACvB,CAAC,gBAAgB,EAAE,oBAAoB,IAAI,oBAAoB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QAC7E,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC;QAC1D,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3B,OAAO,CAAC,KAAK,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,gCAAgC;IAChC,IAAI,gBAAgB,CAAC,mBAAmB,IAAI,CAAC,uCAAuC,EAAE,CAAC;QACrF,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,qBAAqB,CACpE,gBAAgB,CAAC,8BAA8B,CAChD,CAAC;QACF,MAAM,OAAO,CAAC,UAAU,CACtB,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YACzB,MAAM,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAClE,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,0BAA0B;IAC1B,IAAI,gBAAgB,CAAC,kBAAkB,IAAI,OAAO,CAAC,+BAA+B,CAAC,EAAE,CAAC;QACpF,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAE7D,MAAM,OAAO,CAAC,GAAG,CACf,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACjB,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAC3D,OAAO,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC;gBAC/C,IAAI;gBACJ,WAAW,EAAE,MAAM,CAAC,MAAM;aAC3B,CAAC,CAAC;QACL,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,qBAAqB;IACrB,IAAI,CAAC,gBAAgB,EAAE,yBAAyB,EAAE,CAAC;QACjD,MAAM,YAAY,CAAC,KAAK,IAAI,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC;IACxF,CAAC;AACH,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;QAC9B,MAAM,EAAE,IAAI,EAAE,CAAC;IACjB,CAAC,CAAC,CAAC;IACH,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;AAC1B,CAAC"}
@@ -3,7 +3,6 @@ import { UnchainedCoreOptions } from '@unchainedshop/core';
3
3
  import { mongodb } from '@unchainedshop/mongodb';
4
4
  import { UnchainedCore } from '@unchainedshop/core';
5
5
  import { BulkImportHandler } from './bulk-importer/createBulkImporter.js';
6
- import { SetupCartsOptions } from './setup/setupCarts.js';
7
6
  import { MessageTypes } from './setup/setupTemplates.js';
8
7
  import { SetupWorkqueueOptions } from './setup/setupWorkqueue.js';
9
8
  import { IRoleOptionConfig } from '@unchainedshop/roles';
@@ -13,11 +12,8 @@ export type PlatformOptions = {
13
12
  handlers?: Record<string, BulkImportHandler>;
14
13
  };
15
14
  rolesOptions?: IRoleOptionConfig;
16
- workQueueOptions?: SetupWorkqueueOptions & SetupCartsOptions & {
17
- skipInvalidationOnStartup?: boolean;
18
- };
15
+ workQueueOptions?: SetupWorkqueueOptions;
19
16
  } & Omit<UnchainedCoreOptions, 'bulkImporter' | 'migrationRepository' | 'db'> & Omit<UnchainedServerOptions, 'roles' | 'unchainedAPI'>;
20
- export declare const queueWorkers: Array<any>;
21
17
  export declare const startPlatform: ({ modules, services, options, rolesOptions, bulkImporter: bulkImporterOptions, workQueueOptions, ...arbitraryAPIServerConfiguration }: PlatformOptions) => Promise<{
22
18
  unchainedAPI: UnchainedCore;
23
19
  graphqlHandler: any;
@@ -1 +1 @@
1
- {"version":3,"file":"startPlatform.d.ts","sourceRoot":"","sources":["../src/startPlatform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,EAAY,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAU,OAAO,EAAU,MAAM,wBAAwB,CAAC;AAEjE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAA6B,MAAM,uCAAuC,CAAC;AAIrG,OAAO,EAAE,iBAAiB,EAAc,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAkB,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAkB,MAAM,2BAA2B,CAAC;AAElF,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,CAAC;AAExB,MAAM,MAAM,eAAe,GAAG;IAC5B,YAAY,CAAC,EAAE;QACb,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;KAC9C,CAAC;IACF,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,gBAAgB,CAAC,EAAE,qBAAqB,GAAG,iBAAiB,GAAG;QAAE,yBAAyB,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;CACxG,GAAG,IAAI,CAAC,oBAAoB,EAAE,cAAc,GAAG,qBAAqB,GAAG,IAAI,CAAC,GAC3E,IAAI,CAAC,sBAAsB,EAAE,OAAO,GAAG,cAAc,CAAC,CAAC;AAkCzD,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,GAAG,CAAM,CAAC;AAE3C,eAAO,MAAM,aAAa,GAAU,uIAQjC,eAAe,KAAG,OAAO,CAAC;IAC3B,YAAY,EAAE,aAAa,CAAC;IAC5B,cAAc,EAAE,GAAG,CAAC;IACpB,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC;CAChB,CAwEA,CAAC"}
1
+ {"version":3,"file":"startPlatform.d.ts","sourceRoot":"","sources":["../src/startPlatform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,EAAY,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAU,OAAO,EAAU,MAAM,wBAAwB,CAAC;AAEjE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAA6B,MAAM,uCAAuC,CAAC;AAGrG,OAAO,EAAkB,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAiC,MAAM,2BAA2B,CAAC;AAEjG,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,EAAE,YAAY,EAAE,CAAC;AAExB,MAAM,MAAM,eAAe,GAAG;IAC5B,YAAY,CAAC,EAAE;QACb,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;KAC9C,CAAC;IACF,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,gBAAgB,CAAC,EAAE,qBAAqB,CAAC;CAC1C,GAAG,IAAI,CAAC,oBAAoB,EAAE,cAAc,GAAG,qBAAqB,GAAG,IAAI,CAAC,GAC3E,IAAI,CAAC,sBAAsB,EAAE,OAAO,GAAG,cAAc,CAAC,CAAC;AA2BzD,eAAO,MAAM,aAAa,GAAU,uIAQjC,eAAe,KAAG,OAAO,CAAC;IAC3B,YAAY,EAAE,aAAa,CAAC;IAC5B,cAAc,EAAE,GAAG,CAAC;IACpB,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC;CAChB,CAkEA,CAAC"}
@@ -3,12 +3,10 @@ import { initCore } from '@unchainedshop/core';
3
3
  import { initDb, stopDb } from '@unchainedshop/mongodb';
4
4
  import { defaultLogger } from '@unchainedshop/logger';
5
5
  import { createBulkImporterFactory } from './bulk-importer/createBulkImporter.js';
6
- import { runMigrations } from './migrations/runMigrations.js';
7
6
  import { setupAccounts } from './setup/setupAccounts.js';
8
7
  import { setupUploadHandlers } from './setup/setupUploadHandlers.js';
9
- import { setupCarts } from './setup/setupCarts.js';
10
8
  import { setupTemplates, MessageTypes } from './setup/setupTemplates.js';
11
- import { setupWorkqueue } from './setup/setupWorkqueue.js';
9
+ import { stopWorkqueue, setupWorkqueue } from './setup/setupWorkqueue.js';
12
10
  import { createMigrationRepository } from './migrations/migrationRepository.js';
13
11
  export { MessageTypes };
14
12
  const REQUIRED_ENV_VARIABLES = [
@@ -18,7 +16,6 @@ const REQUIRED_ENV_VARIABLES = [
18
16
  'ROOT_URL',
19
17
  'UNCHAINED_TOKEN_SECRET',
20
18
  ];
21
- const { UNCHAINED_DISABLE_WORKER } = process.env;
22
19
  const exitOnMissingEnvironmentVariables = () => {
23
20
  const failedEnv = REQUIRED_ENV_VARIABLES.filter((key) => !process.env[key]);
24
21
  if (failedEnv.length > 0) {
@@ -32,16 +29,9 @@ const existOnInvalidEnvironmentVariables = () => {
32
29
  process.exit(1);
33
30
  }
34
31
  };
35
- const checkWorkQueueEnabled = (options) => {
36
- if (options?.disableWorker)
37
- return false;
38
- return !UNCHAINED_DISABLE_WORKER;
39
- };
40
- export const queueWorkers = [];
41
32
  export const startPlatform = async ({ modules, services, options, rolesOptions = {}, bulkImporter: bulkImporterOptions, workQueueOptions, ...arbitraryAPIServerConfiguration }) => {
42
33
  exitOnMissingEnvironmentVariables();
43
34
  existOnInvalidEnvironmentVariables();
44
- const isWorkQueueEnabled = checkWorkQueueEnabled(workQueueOptions);
45
35
  const configuredRoles = roles.configureRoles(rolesOptions);
46
36
  // Configure database
47
37
  const db = await initDb();
@@ -57,43 +47,40 @@ export const startPlatform = async ({ modules, services, options, rolesOptions =
57
47
  services,
58
48
  options,
59
49
  });
60
- if (isWorkQueueEnabled) {
61
- await runMigrations({ migrationRepository, unchainedAPI });
62
- }
63
- // Setup accountsjs specific extensions and event handlers
50
+ // Setup Accounts specific extensions and event handlers
64
51
  setupAccounts(unchainedAPI);
65
- // Setup email templates
52
+ // Setup Messaging Templates
66
53
  setupTemplates(unchainedAPI);
67
- // Setup file upload handlers
54
+ // Setup File Upload Handlers
68
55
  setupUploadHandlers(unchainedAPI);
69
- // Start the graphQL server
56
+ // Start GraphQL Server
70
57
  const graphqlHandler = await startAPIServer({
71
58
  unchainedAPI,
72
59
  roles: configuredRoles,
73
60
  ...arbitraryAPIServerConfiguration,
74
61
  });
75
- // Setup work queues for scheduled work
76
- if (isWorkQueueEnabled) {
77
- const handlers = setupWorkqueue(unchainedAPI, workQueueOptions);
78
- handlers.forEach((handler) => queueWorkers.push(handler));
79
- await setupCarts(unchainedAPI, workQueueOptions);
80
- }
81
- // Setup filter cache
82
- if (!workQueueOptions?.skipInvalidationOnStartup) {
83
- setImmediate(() => unchainedAPI.services.filters.invalidateFilterCache());
84
- }
62
+ // Setup Work Queue
63
+ await setupWorkqueue({
64
+ unchainedAPI,
65
+ migrationRepository,
66
+ ...workQueueOptions,
67
+ });
85
68
  const { default: packageJson } = await import(`${import.meta.dirname}/../package.json`, {
86
69
  with: { type: 'json' },
87
70
  });
88
71
  defaultLogger.info(`Unchained Engine running`, { version: packageJson.version });
89
- process.on('SIGTERM', async () => {
90
- defaultLogger.info('Stopping GraphQL server (SIGTERM)');
72
+ const cleanup = (signal) => async () => {
73
+ defaultLogger.debug('Stopping Workqueue', { signal });
74
+ stopWorkqueue();
75
+ defaultLogger.debug('Stopping GraphQL server', { signal });
91
76
  await graphqlHandler.dispose();
92
- defaultLogger.info('Stopping DB Connection (SIGTERM)');
77
+ defaultLogger.debug('Stopping DB Connection', { signal });
93
78
  await stopDb();
94
- defaultLogger.info(`Unchained Engine stopped`, { version: packageJson.version });
79
+ defaultLogger.info(`Unchained Engine stopped`, { signal, version: packageJson.version });
95
80
  process.exit(0);
96
- });
81
+ };
82
+ process.on('SIGTERM', cleanup('SIGTERM'));
83
+ process.on('SIGINT', cleanup('SIGINT'));
97
84
  return { unchainedAPI, graphqlHandler, db };
98
85
  };
99
86
  //# sourceMappingURL=startPlatform.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"startPlatform.js","sourceRoot":"","sources":["../src/startPlatform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"startPlatform.js","sourceRoot":"","sources":["../src/startPlatform.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  import { UnchainedCore } from '@unchainedshop/core';
2
2
  import { Order } from '@unchainedshop/core-orders';
3
- type PriceFormatter = ({ amount, currency }: {
3
+ type PriceFormatter = ({ amount, currencyCode }: {
4
4
  amount: number;
5
- currency: string;
5
+ currencyCode: string;
6
6
  }) => string;
7
7
  export declare const getOrderPositionsData: (order: Order, params: {
8
- locale: string;
8
+ locale: Intl.Locale;
9
9
  useNetPrice?: boolean;
10
10
  format?: PriceFormatter;
11
11
  }, context: UnchainedCore) => Promise<{
@@ -20,7 +20,7 @@ export declare const getOrderPositionsData: (order: Order, params: {
20
20
  unitPrice: import("@unchainedshop/utils").Price;
21
21
  total: {
22
22
  amount: number;
23
- currency: string;
23
+ currencyCode: string;
24
24
  };
25
25
  };
26
26
  unitPrice: string;
@@ -1 +1 @@
1
- {"version":3,"file":"getOrderPositionsData.d.ts","sourceRoot":"","sources":["../../../src/templates/order-parser/getOrderPositionsData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAInD,KAAK,cAAc,GAAG,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,KAAK,MAAM,CAAC;AAE7F,eAAO,MAAM,qBAAqB,GAChC,OAAO,KAAK,EACZ,QAAQ;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,cAAc,CAAA;CAAE,EAC1E,SAAS,aAAa;;;;;;;;;;;;;;;;;IAuCvB,CAAC"}
1
+ {"version":3,"file":"getOrderPositionsData.d.ts","sourceRoot":"","sources":["../../../src/templates/order-parser/getOrderPositionsData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAInD,KAAK,cAAc,GAAG,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,KAAK,MAAM,CAAC;AAErG,eAAO,MAAM,qBAAqB,GAChC,OAAO,KAAK,EACZ,QAAQ;IAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,cAAc,CAAA;CAAE,EAC/E,SAAS,aAAa;;;;;;;;;;;;;;;;;IAuCvB,CAAC"}
@@ -13,7 +13,7 @@ export const getOrderPositionsData = async (order, params, context) => {
13
13
  });
14
14
  const positionPricing = ProductPricingSheet({
15
15
  calculation: orderPosition.calculation,
16
- currency: order.currency,
16
+ currencyCode: order.currencyCode,
17
17
  quantity: orderPosition.quantity,
18
18
  });
19
19
  const total = positionPricing.total({ useNetPrice });
@@ -1 +1 @@
1
- {"version":3,"file":"getOrderPositionsData.js","sourceRoot":"","sources":["../../../src/templates/order-parser/getOrderPositionsData.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,EAAE,EAAE,MAAM,sBAAsB,CAAC;AAI1C,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EACxC,KAAY,EACZ,MAA0E,EAC1E,OAAsB,EACtB,EAAE;IACF,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAC5B,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,EAAE,CAAC,aAAa,EAAE,GAAG,MAAM,IAAI,EAAE,CAAC;IAChE,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,kBAAkB,CAAC;QACvE,OAAO,EAAE,KAAK,CAAC,GAAG;KACnB,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC,GAAG,CAChB,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE;QACzC,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC;YAClE,SAAS,EAAE,aAAa,CAAC,SAAS;YAClC,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC,CAAC;QAEH,MAAM,eAAe,GAAG,mBAAmB,CAAC;YAC1C,WAAW,EAAE,aAAa,CAAC,WAAW;YACtC,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,QAAQ,EAAE,aAAa,CAAC,QAAQ;SACjC,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;QACrD,MAAM,SAAS,GAAG,eAAe,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;QAE7D,MAAM,EAAE,QAAQ,EAAE,GAAG,eAAe,CAAC;QACrC,OAAO;YACL,SAAS,EAAE,aAAa,CAAC,SAAS;YAClC,aAAa,EAAE,aAAa,CAAC,aAAa;YAC1C,YAAY;YACZ,QAAQ;YACR,SAAS,EAAE;gBACT,SAAS;gBACT,KAAK;aACN;YACD,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC;YAC5B,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;SACrB,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"getOrderPositionsData.js","sourceRoot":"","sources":["../../../src/templates/order-parser/getOrderPositionsData.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,EAAE,EAAE,MAAM,sBAAsB,CAAC;AAI1C,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EACxC,KAAY,EACZ,MAA+E,EAC/E,OAAsB,EACtB,EAAE;IACF,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAC5B,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,EAAE,CAAC,aAAa,EAAE,GAAG,MAAM,IAAI,EAAE,CAAC;IAChE,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,kBAAkB,CAAC;QACvE,OAAO,EAAE,KAAK,CAAC,GAAG;KACnB,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC,GAAG,CAChB,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE;QACzC,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC;YAClE,SAAS,EAAE,aAAa,CAAC,SAAS;YAClC,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC,CAAC;QAEH,MAAM,eAAe,GAAG,mBAAmB,CAAC;YAC1C,WAAW,EAAE,aAAa,CAAC,WAAW;YACtC,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,QAAQ,EAAE,aAAa,CAAC,QAAQ;SACjC,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;QACrD,MAAM,SAAS,GAAG,eAAe,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;QAE7D,MAAM,EAAE,QAAQ,EAAE,GAAG,eAAe,CAAC;QACrC,OAAO;YACL,SAAS,EAAE,aAAa,CAAC,SAAS;YAClC,aAAa,EAAE,aAAa,CAAC,aAAa;YAC1C,YAAY;YACZ,QAAQ;YACR,SAAS,EAAE;gBACT,SAAS;gBACT,KAAK;aACN;YACD,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC;YAC5B,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;SACrB,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;AACJ,CAAC,CAAC"}
@@ -1,34 +1,34 @@
1
1
  import { Order } from '@unchainedshop/core-orders';
2
2
  import { UnchainedCore } from '@unchainedshop/core';
3
- type PriceFormatter = ({ amount, currency }: {
3
+ type PriceFormatter = ({ amount, currencyCode }: {
4
4
  amount: number;
5
- currency: string;
5
+ currencyCode: string;
6
6
  }) => string;
7
7
  export declare const getOrderSummaryData: (order: Order, params: {
8
- locale?: string;
8
+ locale: Intl.Locale;
9
9
  useNetPrice?: boolean;
10
10
  format?: PriceFormatter;
11
11
  }, context: UnchainedCore) => Promise<{
12
12
  rawPrices: {
13
13
  items: {
14
14
  amount: number;
15
- currency: string;
15
+ currencyCode: string;
16
16
  };
17
17
  taxes: {
18
18
  amount: number;
19
- currency: string;
19
+ currencyCode: string;
20
20
  };
21
21
  delivery: {
22
22
  amount: number;
23
- currency: string;
23
+ currencyCode: string;
24
24
  };
25
25
  payment: {
26
26
  amount: number;
27
- currency: string;
27
+ currencyCode: string;
28
28
  };
29
29
  gross: {
30
30
  amount: number;
31
- currency: string;
31
+ currencyCode: string;
32
32
  };
33
33
  };
34
34
  prices: {
@@ -1 +1 @@
1
- {"version":3,"file":"getOrderSummaryData.d.ts","sourceRoot":"","sources":["../../../src/templates/order-parser/getOrderSummaryData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACnD,OAAO,EAAE,aAAa,EAA8C,MAAM,qBAAqB,CAAC;AAGhG,KAAK,cAAc,GAAG,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,KAAK,MAAM,CAAC;AAE7F,eAAO,MAAM,mBAAmB,GAC9B,OAAO,KAAK,EACZ,QAAQ;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,cAAc,CAAA;CAAE,EAC3E,SAAS,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuEvB,CAAC"}
1
+ {"version":3,"file":"getOrderSummaryData.d.ts","sourceRoot":"","sources":["../../../src/templates/order-parser/getOrderSummaryData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACnD,OAAO,EAAE,aAAa,EAA8C,MAAM,qBAAqB,CAAC;AAGhG,KAAK,cAAc,GAAG,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,KAAK,MAAM,CAAC;AAErG,eAAO,MAAM,mBAAmB,GAC9B,OAAO,KAAK,EACZ,QAAQ;IAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,cAAc,CAAA;CAAE,EAC/E,SAAS,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuEvB,CAAC"}
@@ -19,7 +19,7 @@ export const getOrderSummaryData = async (order, params, context) => {
19
19
  const billingAddress = ch.addressToString(order.billingAddress);
20
20
  const orderPricing = OrderPricingSheet({
21
21
  calculation: order.calculation,
22
- currency: order.currency,
22
+ currencyCode: order.currencyCode,
23
23
  });
24
24
  const paymentTotal = orderPricing.total({
25
25
  category: OrderPricingRowCategory.Payment,
@@ -1 +1 @@
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,EAAE,EAAE,EAAE,MAAM,sBAAsB,CAAC;AAI1C,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,EAAE,CAAC,aAAa,EAAE,GAAG,MAAM,IAAI,EAAE,CAAC;IAChE,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,EAAE,CAAC,eAAe,CACxC,aAAa,EAAE,OAAO,EAAE,eAAe,IAAI,KAAK,CAAC,cAAc,CAChE,CAAC;IACF,MAAM,cAAc,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAChE,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
+ {"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,EAAE,EAAE,EAAE,MAAM,sBAAsB,CAAC;AAI1C,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EACtC,KAAY,EACZ,MAA+E,EAC/E,OAAsB,EACtB,EAAE;IACF,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAC5B,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,EAAE,CAAC,aAAa,EAAE,GAAG,MAAM,IAAI,EAAE,CAAC;IAChE,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,EAAE,CAAC,eAAe,CACxC,aAAa,EAAE,OAAO,EAAE,eAAe,IAAI,KAAK,CAAC,cAAc,CAChE,CAAC;IACF,MAAM,cAAc,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAChE,MAAM,YAAY,GAAG,iBAAiB,CAAC;QACrC,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,YAAY,EAAE,KAAK,CAAC,YAAY;KACjC,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"}
@@ -4,7 +4,7 @@ import { Order } from '@unchainedshop/core-orders';
4
4
  import { UnchainedCore } from '@unchainedshop/core';
5
5
  export declare const transformOrderToText: ({ order, locale }: {
6
6
  order: Order;
7
- locale: string;
7
+ locale: Intl.Locale;
8
8
  }, context: UnchainedCore) => Promise<string>;
9
9
  export { getOrderPositionsData, getOrderSummaryData };
10
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","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;AAC/D,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAkCpD,eAAO,MAAM,oBAAoB,GAC/B,mBAAmB;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EACnD,SAAS,aAAa,oBAavB,CAAC;AAEF,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","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;AAC/D,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAkCpD,eAAO,MAAM,oBAAoB,GAC/B,mBAAmB;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAA;CAAE,EACxD,SAAS,aAAa,oBAavB,CAAC;AAEF,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,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;AAI/D,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BpB,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EACvC,EAAE,KAAK,EAAE,MAAM,EAAoC,EACnD,OAAsB,EACtB,EAAE;IACF,OAAO,QAAQ,CAAC,MAAM,CACpB,YAAY,EACZ;QACE,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,EACD,SAAS,EACT,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CACrB,CAAC;AACJ,CAAC,CAAC;AAEF,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,CAAC"}
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;AAI/D,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BpB,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EACvC,EAAE,KAAK,EAAE,MAAM,EAAyC,EACxD,OAAsB,EACtB,EAAE;IACF,OAAO,QAAQ,CAAC,MAAM,CACpB,YAAY,EACZ;QACE,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,EACD,SAAS,EACT,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CACrB,CAAC;AACJ,CAAC,CAAC;AAEF,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,CAAC"}
@@ -22,7 +22,7 @@ export const resolveForwardDeliveryTemplate = async ({ config, orderId }, contex
22
22
  const text = mustache.render(textTemplate, {
23
23
  shopName: EMAIL_WEBSITE_NAME,
24
24
  shopUrl: EMAIL_WEBSITE_URL,
25
- orderDetails: await transformOrderToText({ order, locale: systemLocale.baseName }, context),
25
+ orderDetails: await transformOrderToText({ order, locale: systemLocale }, context),
26
26
  }, undefined, { escape: (t) => t });
27
27
  return [
28
28
  {
@@ -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;AAC/D,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,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,QAAQ,CAAC,MAAM,CAC1B,YAAY,EACZ;QACE,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,EACD,SAAS,EACT,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CACrB,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;aACL;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;AAC/D,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,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,QAAQ,CAAC,MAAM,CAC1B,YAAY,EACZ;QACE,QAAQ,EAAE,kBAAkB;QAC5B,OAAO,EAAE,iBAAiB;QAC1B,YAAY,EAAE,MAAM,oBAAoB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,OAAO,CAAC;KACnF,EACD,SAAS,EACT,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CACrB,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;aACL;SACF;KACF,CAAC;AACJ,CAAC,CAAC"}
@@ -18,7 +18,7 @@ export const resolveOrderConfirmationTemplate = async ({ orderId, locale }, cont
18
18
  const text = mustache.render(textTemplate, {
19
19
  shopName: EMAIL_WEBSITE_NAME,
20
20
  shopUrl: EMAIL_WEBSITE_URL,
21
- orderDetails: await transformOrderToText({ order, locale }, context),
21
+ orderDetails: await transformOrderToText({ order, locale: new Intl.Locale(locale) }, context),
22
22
  }, undefined, { escape: (t) => t });
23
23
  return [
24
24
  {
@@ -1 +1 @@
1
- {"version":3,"file":"resolveOrderConfirmationTemplate.js","sourceRoot":"","sources":["../../src/templates/resolveOrderConfirmationTemplate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,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,QAAQ,CAAC,MAAM,CAC1B,YAAY,EACZ;QACE,QAAQ,EAAE,kBAAkB;QAC5B,OAAO,EAAE,iBAAiB;QAC1B,YAAY,EAAE,MAAM,oBAAoB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC;KACrE,EACD,SAAS,EACT,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CACrB,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;aACL;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;AAC/D,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,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,QAAQ,CAAC,MAAM,CAC1B,YAAY,EACZ;QACE,QAAQ,EAAE,kBAAkB;QAC5B,OAAO,EAAE,iBAAiB;QAC1B,YAAY,EAAE,MAAM,oBAAoB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC;KAC9F,EACD,SAAS,EACT,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CACrB,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;aACL;SACF;KACF,CAAC;AACJ,CAAC,CAAC"}
@@ -22,7 +22,7 @@ export const resolveOrderRejectionTemplate = async ({ orderId, locale }, context
22
22
  const text = mustache.render(textTemplate, {
23
23
  shopName: EMAIL_WEBSITE_NAME,
24
24
  shopUrl: EMAIL_WEBSITE_URL,
25
- orderDetails: await transformOrderToText({ order, locale }, context),
25
+ orderDetails: await transformOrderToText({ order, locale: new Intl.Locale(locale) }, context),
26
26
  }, undefined, { escape: (t) => t });
27
27
  return [
28
28
  {
@@ -1 +1 @@
1
- {"version":3,"file":"resolveOrderRejectionTemplate.js","sourceRoot":"","sources":["../../src/templates/resolveOrderRejectionTemplate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,MAAM,EAAE,UAAU,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;AAE1E,MAAM,YAAY,GAAG;;;;;;;;;;CAUpB,CAAC;AAEF,MAAM,CAAC,MAAM,6BAA6B,GAAqB,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE;IACpG,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,UAAU,EAAE,CAAC;QAChC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,OAAO,GAAG,kBAAkB,KAAK,CAAC,WAAW,EAAE,CAAC;IAEtD,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAC1B,YAAY,EACZ;QACE,QAAQ,EAAE,kBAAkB;QAC5B,OAAO,EAAE,iBAAiB;QAC1B,YAAY,EAAE,MAAM,oBAAoB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC;KACrE,EACD,SAAS,EACT,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CACrB,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;aACL;SACF;KACF,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"resolveOrderRejectionTemplate.js","sourceRoot":"","sources":["../../src/templates/resolveOrderRejectionTemplate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,MAAM,EAAE,UAAU,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;AAE1E,MAAM,YAAY,GAAG;;;;;;;;;;CAUpB,CAAC;AAEF,MAAM,CAAC,MAAM,6BAA6B,GAAqB,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE;IACpG,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,UAAU,EAAE,CAAC;QAChC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,OAAO,GAAG,kBAAkB,KAAK,CAAC,WAAW,EAAE,CAAC;IAEtD,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAC1B,YAAY,EACZ;QACE,QAAQ,EAAE,kBAAkB;QAC5B,OAAO,EAAE,iBAAiB;QAC1B,YAAY,EAAE,MAAM,oBAAoB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC;KAC9F,EACD,SAAS,EACT,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CACrB,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;aACL;SACF;KACF,CAAC;AACJ,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unchainedshop/platform",
3
- "version": "3.1.15",
3
+ "version": "4.0.0-rc.10",
4
4
  "main": "lib/platform-index.js",
5
5
  "types": "lib/platform-index.d.ts",
6
6
  "type": "module",
@@ -35,21 +35,21 @@
35
35
  "npm": ">=10.0.0"
36
36
  },
37
37
  "dependencies": {
38
- "@unchainedshop/api": "^3.1.12",
39
- "@unchainedshop/core": "^3.1.13",
40
- "@unchainedshop/events": "^3.1.13",
41
- "@unchainedshop/file-upload": "^3.1.13",
42
- "@unchainedshop/logger": "^3.1.13",
43
- "@unchainedshop/mongodb": "^3.1.12",
44
- "@unchainedshop/plugins": "^3.1.13",
45
- "@unchainedshop/roles": "^3.1.13",
46
- "@unchainedshop/utils": "^3.1.13",
38
+ "@unchainedshop/api": "^4.0.0-rc.4",
39
+ "@unchainedshop/core": "^4.0.0-rc.4",
40
+ "@unchainedshop/events": "^4.0.0-rc.4",
41
+ "@unchainedshop/file-upload": "^4.0.0-rc.4",
42
+ "@unchainedshop/logger": "^4.0.0-rc.4",
43
+ "@unchainedshop/mongodb": "^4.0.0-rc.4",
44
+ "@unchainedshop/plugins": "^4.0.0-rc.4",
45
+ "@unchainedshop/roles": "^4.0.0-rc.4",
46
+ "@unchainedshop/utils": "^4.0.0-rc.4",
47
47
  "mustache": "^4.2.0",
48
48
  "safe-stable-stringify": "^2.5.0"
49
49
  },
50
50
  "devDependencies": {
51
51
  "@types/mustache": "^4.2.6",
52
- "@types/node": "^24.0.4",
52
+ "@types/node": "^24.0.13",
53
53
  "tsx": "^4.20.3",
54
54
  "typescript": "^5.8.3"
55
55
  }
@@ -7,11 +7,11 @@ import { createLogger } from '@unchainedshop/logger';
7
7
 
8
8
  const logger = createLogger('unchained:bulk-import');
9
9
 
10
- export type BulkImportOperationResult = {
10
+ export interface BulkImportOperationResult {
11
11
  entity: string;
12
12
  operation: string;
13
13
  success: boolean;
14
- };
14
+ }
15
15
  export type BulkImportOperation = (
16
16
  payload: any,
17
17
  options: {
@@ -23,9 +23,7 @@ export type BulkImportOperation = (
23
23
  unchainedAPI: UnchainedCore,
24
24
  ) => Promise<BulkImportOperationResult>;
25
25
 
26
- export type BulkImportHandler = {
27
- [x: string]: BulkImportOperation;
28
- };
26
+ export type BulkImportHandler = Record<string, BulkImportOperation>;
29
27
 
30
28
  let bulkOperationHandlers: Record<string, BulkImportHandler> = {};
31
29
 
@@ -1,29 +1,97 @@
1
- import { UnchainedCore } from '@unchainedshop/core';
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';
6
- export interface SetupWorkqueueOptions {
7
- batchCount?: number;
1
+ import {
2
+ EventListenerWorker,
3
+ FailedRescheduler,
4
+ FailedReschedulerParams,
5
+ IntervalWorker,
6
+ IntervalWorkerParams,
7
+ IScheduler,
8
+ IWorker,
9
+ UnchainedCore,
10
+ } from '@unchainedshop/core';
11
+ import { runMigrations } from '../migrations/runMigrations.js';
12
+ import { MigrationRepository } from '@unchainedshop/mongodb';
13
+ import { setImmediate } from 'node:timers/promises';
14
+
15
+ export type WorkQueueQueueManager = IWorker<any> | IScheduler<any>;
16
+ export interface SetupWorkqueueOptions extends IntervalWorkerParams, FailedReschedulerParams {
17
+ enabledQueueManagers?: WorkQueueQueueManager[];
18
+ invalidateProviders?: boolean;
19
+ providerInvalidationMaxAgeDays?: number;
20
+ assignCartForUsers?: boolean;
8
21
  disableWorker?: boolean;
9
- schedule?: IntervalWorkerParams['schedule'];
10
- workerId?: string;
11
- retryInput?: (
12
- workData: WorkData,
13
- priorInput: Record<string, any>,
14
- ) => Promise<Record<string, any> | null>;
22
+ skipInvalidationOnStartup?: boolean;
15
23
  }
16
24
 
17
- export const setupWorkqueue = (
18
- unchainedAPI: UnchainedCore,
19
- workQueueOptions: SetupWorkqueueOptions = {},
20
- ) => {
21
- const handlers = [
22
- FailedRescheduler.actions(workQueueOptions, unchainedAPI),
23
- EventListenerWorker.actions(workQueueOptions, unchainedAPI),
24
- IntervalWorker.actions(workQueueOptions, unchainedAPI),
25
- ];
26
-
27
- handlers.forEach((handler) => handler.start());
28
- return handlers;
29
- };
25
+ const {
26
+ UNCHAINED_DISABLE_PROVIDER_INVALIDATION,
27
+ UNCHAINED_DISABLE_WORKER,
28
+ UNCHAINED_ASSIGN_CART_FOR_USERS,
29
+ } = process.env;
30
+
31
+ export const defaultQueueManagers: WorkQueueQueueManager[] = [
32
+ FailedRescheduler,
33
+ EventListenerWorker,
34
+ IntervalWorker,
35
+ ];
36
+
37
+ export const queueWorkers: any[] = [];
38
+
39
+ export async function setupWorkqueue({
40
+ unchainedAPI,
41
+ migrationRepository,
42
+ ...workQueueOptions
43
+ }: {
44
+ unchainedAPI: UnchainedCore;
45
+ migrationRepository: MigrationRepository<UnchainedCore>;
46
+ } & SetupWorkqueueOptions) {
47
+ if (workQueueOptions.disableWorker || UNCHAINED_DISABLE_WORKER) return;
48
+
49
+ // Run migrations
50
+ await runMigrations({ migrationRepository, unchainedAPI });
51
+
52
+ // Start queue managers
53
+ (workQueueOptions?.enabledQueueManagers || defaultQueueManagers).forEach((f) => {
54
+ const handler = f.actions(workQueueOptions, unchainedAPI);
55
+ queueWorkers.push(handler);
56
+ handler.start();
57
+ });
58
+
59
+ // Invalidate providers on carts
60
+ if (workQueueOptions.invalidateProviders ?? !UNCHAINED_DISABLE_PROVIDER_INVALIDATION) {
61
+ const orders = await unchainedAPI.modules.orders.findCartsToInvalidate(
62
+ workQueueOptions.providerInvalidationMaxAgeDays,
63
+ );
64
+ await Promise.allSettled(
65
+ orders.map(async (order) => {
66
+ await unchainedAPI.services.orders.updateCalculation(order._id);
67
+ }),
68
+ );
69
+ }
70
+
71
+ // Ensure users have carts
72
+ if (workQueueOptions.assignCartForUsers ?? Boolean(UNCHAINED_ASSIGN_CART_FOR_USERS)) {
73
+ const users = await unchainedAPI.modules.users.findUsers({});
74
+
75
+ await Promise.all(
76
+ users.map((user) => {
77
+ const locale = unchainedAPI.modules.users.userLocale(user);
78
+ return unchainedAPI.services.orders.nextUserCart({
79
+ user,
80
+ countryCode: locale.region,
81
+ });
82
+ }),
83
+ );
84
+ }
85
+
86
+ // Setup filter cache
87
+ if (!workQueueOptions?.skipInvalidationOnStartup) {
88
+ await setImmediate(async () => unchainedAPI.services.filters.invalidateFilterCache());
89
+ }
90
+ }
91
+
92
+ export function stopWorkqueue() {
93
+ queueWorkers.forEach((worker) => {
94
+ worker?.stop();
95
+ });
96
+ queueWorkers.length = 0;
97
+ }
@@ -4,14 +4,13 @@ import { initDb, mongodb, stopDb } from '@unchainedshop/mongodb';
4
4
  import { defaultLogger } from '@unchainedshop/logger';
5
5
  import { UnchainedCore } from '@unchainedshop/core';
6
6
  import { BulkImportHandler, createBulkImporterFactory } from './bulk-importer/createBulkImporter.js';
7
- import { runMigrations } from './migrations/runMigrations.js';
8
7
  import { setupAccounts } from './setup/setupAccounts.js';
9
8
  import { setupUploadHandlers } from './setup/setupUploadHandlers.js';
10
- import { SetupCartsOptions, setupCarts } from './setup/setupCarts.js';
11
9
  import { setupTemplates, MessageTypes } from './setup/setupTemplates.js';
12
- import { SetupWorkqueueOptions, setupWorkqueue } from './setup/setupWorkqueue.js';
10
+ import { SetupWorkqueueOptions, stopWorkqueue, setupWorkqueue } from './setup/setupWorkqueue.js';
13
11
  import { createMigrationRepository } from './migrations/migrationRepository.js';
14
12
  import { IRoleOptionConfig } from '@unchainedshop/roles';
13
+
15
14
  export { MessageTypes };
16
15
 
17
16
  export type PlatformOptions = {
@@ -19,7 +18,7 @@ export type PlatformOptions = {
19
18
  handlers?: Record<string, BulkImportHandler>;
20
19
  };
21
20
  rolesOptions?: IRoleOptionConfig;
22
- workQueueOptions?: SetupWorkqueueOptions & SetupCartsOptions & { skipInvalidationOnStartup?: boolean };
21
+ workQueueOptions?: SetupWorkqueueOptions;
23
22
  } & Omit<UnchainedCoreOptions, 'bulkImporter' | 'migrationRepository' | 'db'> &
24
23
  Omit<UnchainedServerOptions, 'roles' | 'unchainedAPI'>;
25
24
 
@@ -31,8 +30,6 @@ const REQUIRED_ENV_VARIABLES = [
31
30
  'UNCHAINED_TOKEN_SECRET',
32
31
  ];
33
32
 
34
- const { UNCHAINED_DISABLE_WORKER } = process.env;
35
-
36
33
  const exitOnMissingEnvironmentVariables = () => {
37
34
  const failedEnv = REQUIRED_ENV_VARIABLES.filter((key) => !process.env[key]);
38
35
  if (failedEnv.length > 0) {
@@ -50,13 +47,6 @@ const existOnInvalidEnvironmentVariables = () => {
50
47
  }
51
48
  };
52
49
 
53
- const checkWorkQueueEnabled = (options: SetupWorkqueueOptions) => {
54
- if (options?.disableWorker) return false;
55
- return !UNCHAINED_DISABLE_WORKER;
56
- };
57
-
58
- export const queueWorkers: Array<any> = [];
59
-
60
50
  export const startPlatform = async ({
61
51
  modules,
62
52
  services,
@@ -73,8 +63,6 @@ export const startPlatform = async ({
73
63
  exitOnMissingEnvironmentVariables();
74
64
  existOnInvalidEnvironmentVariables();
75
65
 
76
- const isWorkQueueEnabled = checkWorkQueueEnabled(workQueueOptions);
77
-
78
66
  const configuredRoles = roles.configureRoles(rolesOptions);
79
67
 
80
68
  // Configure database
@@ -94,51 +82,47 @@ export const startPlatform = async ({
94
82
  options,
95
83
  });
96
84
 
97
- if (isWorkQueueEnabled) {
98
- await runMigrations({ migrationRepository, unchainedAPI });
99
- }
100
-
101
- // Setup accountsjs specific extensions and event handlers
85
+ // Setup Accounts specific extensions and event handlers
102
86
  setupAccounts(unchainedAPI);
103
87
 
104
- // Setup email templates
88
+ // Setup Messaging Templates
105
89
  setupTemplates(unchainedAPI);
106
90
 
107
- // Setup file upload handlers
91
+ // Setup File Upload Handlers
108
92
  setupUploadHandlers(unchainedAPI);
109
93
 
110
- // Start the graphQL server
94
+ // Start GraphQL Server
111
95
  const graphqlHandler = await startAPIServer({
112
96
  unchainedAPI,
113
97
  roles: configuredRoles,
114
98
  ...arbitraryAPIServerConfiguration,
115
99
  });
116
100
 
117
- // Setup work queues for scheduled work
118
- if (isWorkQueueEnabled) {
119
- const handlers = setupWorkqueue(unchainedAPI, workQueueOptions);
120
- handlers.forEach((handler) => queueWorkers.push(handler));
121
- await setupCarts(unchainedAPI, workQueueOptions);
122
- }
123
-
124
- // Setup filter cache
125
- if (!workQueueOptions?.skipInvalidationOnStartup) {
126
- setImmediate(() => unchainedAPI.services.filters.invalidateFilterCache());
127
- }
101
+ // Setup Work Queue
102
+ await setupWorkqueue({
103
+ unchainedAPI,
104
+ migrationRepository,
105
+ ...workQueueOptions,
106
+ });
128
107
 
129
108
  const { default: packageJson } = await import(`${import.meta.dirname}/../package.json`, {
130
109
  with: { type: 'json' },
131
110
  });
132
111
  defaultLogger.info(`Unchained Engine running`, { version: packageJson.version });
133
112
 
134
- process.on('SIGTERM', async () => {
135
- defaultLogger.info('Stopping GraphQL server (SIGTERM)');
113
+ const cleanup = (signal) => async () => {
114
+ defaultLogger.debug('Stopping Workqueue', { signal });
115
+ stopWorkqueue();
116
+ defaultLogger.debug('Stopping GraphQL server', { signal });
136
117
  await graphqlHandler.dispose();
137
- defaultLogger.info('Stopping DB Connection (SIGTERM)');
118
+ defaultLogger.debug('Stopping DB Connection', { signal });
138
119
  await stopDb();
139
- defaultLogger.info(`Unchained Engine stopped`, { version: packageJson.version });
120
+ defaultLogger.info(`Unchained Engine stopped`, { signal, version: packageJson.version });
140
121
  process.exit(0);
141
- });
122
+ };
123
+
124
+ process.on('SIGTERM', cleanup('SIGTERM'));
125
+ process.on('SIGINT', cleanup('SIGINT'));
142
126
 
143
127
  return { unchainedAPI, graphqlHandler, db };
144
128
  };
@@ -3,11 +3,11 @@ import { Order } from '@unchainedshop/core-orders';
3
3
  import { ProductPricingSheet } from '@unchainedshop/core';
4
4
  import { ch } from '@unchainedshop/utils';
5
5
 
6
- type PriceFormatter = ({ amount, currency }: { amount: number; currency: string }) => string;
6
+ type PriceFormatter = ({ amount, currencyCode }: { amount: number; currencyCode: string }) => string;
7
7
 
8
8
  export const getOrderPositionsData = async (
9
9
  order: Order,
10
- params: { locale: string; useNetPrice?: boolean; format?: PriceFormatter },
10
+ params: { locale: Intl.Locale; useNetPrice?: boolean; format?: PriceFormatter },
11
11
  context: UnchainedCore,
12
12
  ) => {
13
13
  const { modules } = context;
@@ -25,7 +25,7 @@ export const getOrderPositionsData = async (
25
25
 
26
26
  const positionPricing = ProductPricingSheet({
27
27
  calculation: orderPosition.calculation,
28
- currency: order.currency,
28
+ currencyCode: order.currencyCode,
29
29
  quantity: orderPosition.quantity,
30
30
  });
31
31
 
@@ -2,11 +2,11 @@ import { Order } from '@unchainedshop/core-orders';
2
2
  import { UnchainedCore, OrderPricingSheet, OrderPricingRowCategory } from '@unchainedshop/core';
3
3
  import { ch } from '@unchainedshop/utils';
4
4
 
5
- type PriceFormatter = ({ amount, currency }: { amount: number; currency: string }) => string;
5
+ type PriceFormatter = ({ amount, currencyCode }: { amount: number; currencyCode: string }) => string;
6
6
 
7
7
  export const getOrderSummaryData = async (
8
8
  order: Order,
9
- params: { locale?: string; useNetPrice?: boolean; format?: PriceFormatter },
9
+ params: { locale: Intl.Locale; useNetPrice?: boolean; format?: PriceFormatter },
10
10
  context: UnchainedCore,
11
11
  ) => {
12
12
  const { modules } = context;
@@ -30,7 +30,7 @@ export const getOrderSummaryData = async (
30
30
  const billingAddress = ch.addressToString(order.billingAddress);
31
31
  const orderPricing = OrderPricingSheet({
32
32
  calculation: order.calculation,
33
- currency: order.currency,
33
+ currencyCode: order.currencyCode,
34
34
  });
35
35
 
36
36
  const paymentTotal = orderPricing.total({
@@ -36,7 +36,7 @@ Total: {{summary.prices.gross}}
36
36
  `;
37
37
 
38
38
  export const transformOrderToText = async (
39
- { order, locale }: { order: Order; locale: string },
39
+ { order, locale }: { order: Order; locale: Intl.Locale },
40
40
  context: UnchainedCore,
41
41
  ) => {
42
42
  return mustache.render(
@@ -31,7 +31,7 @@ export const resolveForwardDeliveryTemplate: TemplateResolver = async ({ config,
31
31
  {
32
32
  shopName: EMAIL_WEBSITE_NAME,
33
33
  shopUrl: EMAIL_WEBSITE_URL,
34
- orderDetails: await transformOrderToText({ order, locale: systemLocale.baseName }, context),
34
+ orderDetails: await transformOrderToText({ order, locale: systemLocale }, context),
35
35
  },
36
36
  undefined,
37
37
  { escape: (t) => t },
@@ -30,7 +30,7 @@ export const resolveOrderConfirmationTemplate: TemplateResolver<{
30
30
  {
31
31
  shopName: EMAIL_WEBSITE_NAME,
32
32
  shopUrl: EMAIL_WEBSITE_URL,
33
- orderDetails: await transformOrderToText({ order, locale }, context),
33
+ orderDetails: await transformOrderToText({ order, locale: new Intl.Locale(locale) }, context),
34
34
  },
35
35
  undefined,
36
36
  { escape: (t) => t },
@@ -31,7 +31,7 @@ export const resolveOrderRejectionTemplate: TemplateResolver = async ({ orderId,
31
31
  {
32
32
  shopName: EMAIL_WEBSITE_NAME,
33
33
  shopUrl: EMAIL_WEBSITE_URL,
34
- orderDetails: await transformOrderToText({ order, locale }, context),
34
+ orderDetails: await transformOrderToText({ order, locale: new Intl.Locale(locale) }, context),
35
35
  },
36
36
  undefined,
37
37
  { escape: (t) => t },
@@ -1,4 +0,0 @@
1
- import { Context } from '@unchainedshop/types/api.js';
2
- declare const _default: (fn?: (context: Context) => any) => any;
3
- export default _default;
4
- //# sourceMappingURL=withAccessToken.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"withAccessToken.d.ts","sourceRoot":"","sources":["../../src/context/withAccessToken.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;8BAOlC,CAAC,OAAO,EAAE,OAAO,KAAK,GAAG,KAAqB,GAAG;AAArE,wBAmCE"}
@@ -1,42 +0,0 @@
1
- import { createLogger } from '@unchainedshop/logger';
2
- import { timingSafeEqual } from 'crypto';
3
- const logger = createLogger('unchained:platform');
4
- const contextIdentity = (params) => params;
5
- export default (fn = contextIdentity) => {
6
- return async (params, unchainedContextFn) => {
7
- const unchainedContext = await unchainedContextFn(params);
8
- const newContext = {
9
- userId: unchainedContext.userId,
10
- user: unchainedContext.user,
11
- };
12
- if (!unchainedContext.userId && params.req.headers.authorization) {
13
- const [type, userToken] = params.req.headers.authorization.split(' ');
14
- if (type === 'Bearer' && userToken) {
15
- const [username, secret] = userToken.split(':');
16
- const user = await unchainedContext.modules.users.findUser({
17
- username,
18
- });
19
- if (secret && user?.services.token?.secret) {
20
- try {
21
- if (timingSafeEqual(Buffer.from(secret), Buffer.from(user?.services.token?.secret))) {
22
- newContext.userId = user._id;
23
- newContext.user = user;
24
- logger.debug('Token login success');
25
- }
26
- else {
27
- throw new Error('Access Token not valid');
28
- }
29
- }
30
- catch (e) {
31
- logger.warn(`Token login failed: ${e.message}`);
32
- }
33
- }
34
- }
35
- }
36
- return fn({
37
- ...unchainedContext,
38
- ...newContext,
39
- });
40
- };
41
- };
42
- //# sourceMappingURL=withAccessToken.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"withAccessToken.js","sourceRoot":"","sources":["../../src/context/withAccessToken.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAEzC,MAAM,MAAM,GAAG,YAAY,CAAC,oBAAoB,CAAC,CAAC;AAElD,MAAM,eAAe,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC;AAE3C,eAAe,CAAC,KAAgC,eAAe,EAAO,EAAE;IACtE,OAAO,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,EAAE;QAC1C,MAAM,gBAAgB,GAAG,MAAM,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC1D,MAAM,UAAU,GAAG;YACjB,MAAM,EAAE,gBAAgB,CAAC,MAAM;YAC/B,IAAI,EAAE,gBAAgB,CAAC,IAAI;SAC5B,CAAC;QACF,IAAI,CAAC,gBAAgB,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;YACjE,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACtE,IAAI,IAAI,KAAK,QAAQ,IAAI,SAAS,EAAE,CAAC;gBACnC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAChD,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;oBACzD,QAAQ;iBACT,CAAC,CAAC;gBAEH,IAAI,MAAM,IAAI,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;oBAC3C,IAAI,CAAC;wBACH,IAAI,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;4BACpF,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC;4BAC7B,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC;4BACvB,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;wBACtC,CAAC;6BAAM,CAAC;4BACN,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;wBAC5C,CAAC;oBACH,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACX,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;oBAClD,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,EAAE,CAAC;YACR,GAAG,gBAAgB;YACnB,GAAG,UAAU;SACd,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC,CAAC"}
@@ -1,8 +0,0 @@
1
- import { UnchainedCore } from '@unchainedshop/core';
2
- export interface SetupCartsOptions {
3
- invalidateProviders?: boolean;
4
- providerInvalidationMaxAgeDays?: number;
5
- assignCartForUsers?: boolean;
6
- }
7
- export declare const setupCarts: (unchainedAPI: UnchainedCore, options?: SetupCartsOptions) => Promise<void>;
8
- //# sourceMappingURL=setupCarts.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"setupCarts.d.ts","sourceRoot":"","sources":["../../src/setup/setupCarts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,WAAW,iBAAiB;IAChC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,8BAA8B,CAAC,EAAE,MAAM,CAAC;IACxC,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAGD,eAAO,MAAM,UAAU,GAAU,cAAc,aAAa,EAAE,UAAS,iBAAsB,kBAyB5F,CAAC"}
@@ -1,20 +0,0 @@
1
- const { UNCHAINED_DISABLE_PROVIDER_INVALIDATION, UNCHAINED_ASSIGN_CART_FOR_USERS } = process.env;
2
- export const setupCarts = async (unchainedAPI, options = {}) => {
3
- if (options.invalidateProviders ?? !UNCHAINED_DISABLE_PROVIDER_INVALIDATION) {
4
- const orders = await unchainedAPI.modules.orders.findCartsToInvalidate(options.providerInvalidationMaxAgeDays);
5
- await Promise.allSettled(orders.map(async (order) => {
6
- await unchainedAPI.services.orders.updateCalculation(order._id);
7
- }));
8
- }
9
- if (options.assignCartForUsers ?? Boolean(UNCHAINED_ASSIGN_CART_FOR_USERS)) {
10
- const users = await unchainedAPI.modules.users.findUsers({});
11
- await Promise.all(users.map((user) => {
12
- const locale = unchainedAPI.modules.users.userLocale(user);
13
- return unchainedAPI.services.orders.nextUserCart({
14
- user,
15
- countryCode: locale.region,
16
- });
17
- }));
18
- }
19
- };
20
- //# sourceMappingURL=setupCarts.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"setupCarts.js","sourceRoot":"","sources":["../../src/setup/setupCarts.ts"],"names":[],"mappings":"AAOA,MAAM,EAAE,uCAAuC,EAAE,+BAA+B,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;AAEjG,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAAE,YAA2B,EAAE,UAA6B,EAAE,EAAE,EAAE;IAC/F,IAAI,OAAO,CAAC,mBAAmB,IAAI,CAAC,uCAAuC,EAAE,CAAC;QAC5E,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,qBAAqB,CACpE,OAAO,CAAC,8BAA8B,CACvC,CAAC;QACF,MAAM,OAAO,CAAC,UAAU,CACtB,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YACzB,MAAM,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAClE,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,kBAAkB,IAAI,OAAO,CAAC,+BAA+B,CAAC,EAAE,CAAC;QAC3E,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAE7D,MAAM,OAAO,CAAC,GAAG,CACf,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACjB,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAC3D,OAAO,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC;gBAC/C,IAAI;gBACJ,WAAW,EAAE,MAAM,CAAC,MAAM;aAC3B,CAAC,CAAC;QACL,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;AACH,CAAC,CAAC"}
@@ -1,3 +0,0 @@
1
- import { Address } from '@unchainedshop/types/common.js';
2
- export declare const formatAddress: (address: Address) => string;
3
- //# sourceMappingURL=formatAddress.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"formatAddress.d.ts","sourceRoot":"","sources":["../../../src/templates/order-parser/formatAddress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAEzD,eAAO,MAAM,aAAa,YAAa,OAAO,WAY7C,CAAC"}
@@ -1,14 +0,0 @@
1
- export const formatAddress = (address) => {
2
- return [
3
- [address.firstName, address.lastName].filter(Boolean).join(' '),
4
- address.company,
5
- address.addressLine,
6
- address.addressLine2,
7
- [address.postalCode, address.city].filter(Boolean).join(' '),
8
- address.regionCode,
9
- [address.countryCode].filter(Boolean).join(''),
10
- ]
11
- .filter(Boolean)
12
- .join('\n');
13
- };
14
- //# sourceMappingURL=formatAddress.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"formatAddress.js","sourceRoot":"","sources":["../../../src/templates/order-parser/formatAddress.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAAgB,EAAE,EAAE;IAChD,OAAO;QACL,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QAC/D,OAAO,CAAC,OAAO;QACf,OAAO,CAAC,WAAW;QACnB,OAAO,CAAC,YAAY;QACpB,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QAC5D,OAAO,CAAC,UAAU;QAClB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;KAC/C;SACE,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC,CAAC"}
@@ -1,6 +0,0 @@
1
- export declare const formatPrice: ({ amount, currency }: {
2
- amount: number;
3
- currency: string;
4
- }) => string;
5
- export default formatPrice;
6
- //# sourceMappingURL=formatPrice.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"formatPrice.d.ts","sourceRoot":"","sources":["../../../src/templates/order-parser/formatPrice.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,yBAA0B;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,WAGrF,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -1,6 +0,0 @@
1
- export const formatPrice = ({ amount, currency }) => {
2
- const fixedPrice = amount / 100;
3
- return `${currency} ${fixedPrice}`;
4
- };
5
- export default formatPrice;
6
- //# sourceMappingURL=formatPrice.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"formatPrice.js","sourceRoot":"","sources":["../../../src/templates/order-parser/formatPrice.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAwC,EAAE,EAAE;IACxF,MAAM,UAAU,GAAG,MAAM,GAAG,GAAG,CAAC;IAChC,OAAO,GAAG,QAAQ,IAAI,UAAU,EAAE,CAAC;AACrC,CAAC,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -1,35 +0,0 @@
1
- import { UnchainedCore } from '@unchainedshop/core';
2
-
3
- export interface SetupCartsOptions {
4
- invalidateProviders?: boolean;
5
- providerInvalidationMaxAgeDays?: number;
6
- assignCartForUsers?: boolean;
7
- }
8
- const { UNCHAINED_DISABLE_PROVIDER_INVALIDATION, UNCHAINED_ASSIGN_CART_FOR_USERS } = process.env;
9
-
10
- export const setupCarts = async (unchainedAPI: UnchainedCore, options: SetupCartsOptions = {}) => {
11
- if (options.invalidateProviders ?? !UNCHAINED_DISABLE_PROVIDER_INVALIDATION) {
12
- const orders = await unchainedAPI.modules.orders.findCartsToInvalidate(
13
- options.providerInvalidationMaxAgeDays,
14
- );
15
- await Promise.allSettled(
16
- orders.map(async (order) => {
17
- await unchainedAPI.services.orders.updateCalculation(order._id);
18
- }),
19
- );
20
- }
21
-
22
- if (options.assignCartForUsers ?? Boolean(UNCHAINED_ASSIGN_CART_FOR_USERS)) {
23
- const users = await unchainedAPI.modules.users.findUsers({});
24
-
25
- await Promise.all(
26
- users.map((user) => {
27
- const locale = unchainedAPI.modules.users.userLocale(user);
28
- return unchainedAPI.services.orders.nextUserCart({
29
- user,
30
- countryCode: locale.region,
31
- });
32
- }),
33
- );
34
- }
35
- };