@unchainedshop/core-assortments 2.0.0-beta7 → 2.0.0-beta9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/jest.config.js +9 -0
  2. package/lib/db/{AssortmentMediasCollection.d.ts → AssortmentMediaCollection.d.ts} +2 -2
  3. package/lib/db/{AssortmentMediasCollection.js → AssortmentMediaCollection.js} +4 -4
  4. package/lib/db/AssortmentMediaCollection.js.map +1 -0
  5. package/lib/db/{AssortmentMediasSchema.d.ts → AssortmentMediaSchema.d.ts} +1 -1
  6. package/lib/db/{AssortmentMediasSchema.js → AssortmentMediaSchema.js} +2 -4
  7. package/lib/db/AssortmentMediaSchema.js.map +1 -0
  8. package/lib/db/AssortmentsSchema.js +0 -5
  9. package/lib/db/AssortmentsSchema.js.map +1 -1
  10. package/lib/migrations/addMigrations.js +5 -5
  11. package/lib/migrations/addMigrations.js.map +1 -1
  12. package/lib/module/configureAssortmentFiltersModule.js +10 -15
  13. package/lib/module/configureAssortmentFiltersModule.js.map +1 -1
  14. package/lib/module/configureAssortmentLinksModule.js +30 -18
  15. package/lib/module/configureAssortmentLinksModule.js.map +1 -1
  16. package/lib/module/configureAssortmentMediaModule.js +32 -37
  17. package/lib/module/configureAssortmentMediaModule.js.map +1 -1
  18. package/lib/module/configureAssortmentProductsModule.js +11 -17
  19. package/lib/module/configureAssortmentProductsModule.js.map +1 -1
  20. package/lib/module/configureAssortmentTextsModule.js +13 -11
  21. package/lib/module/configureAssortmentTextsModule.js.map +1 -1
  22. package/lib/module/configureAssortmentsModule.d.ts +3 -1
  23. package/lib/module/configureAssortmentsModule.js +32 -26
  24. package/lib/module/configureAssortmentsModule.js.map +1 -1
  25. package/lib/utils/tree-zipper/zipTreeByDeepness.d.ts +8 -0
  26. package/lib/utils/tree-zipper/zipTreeByDeepness.js +5 -5
  27. package/lib/utils/tree-zipper/zipTreeByDeepness.js.map +1 -1
  28. package/package.json +11 -10
  29. package/src/db/{AssortmentMediasCollection.ts → AssortmentMediaCollection.ts} +7 -4
  30. package/src/db/{AssortmentMediasSchema.js → AssortmentMediaSchema.js} +1 -3
  31. package/src/db/AssortmentsSchema.js +0 -5
  32. package/src/migrations/addMigrations.ts +5 -5
  33. package/src/module/configureAssortmentFiltersModule.ts +14 -15
  34. package/src/module/configureAssortmentLinksModule.ts +34 -18
  35. package/src/module/configureAssortmentMediaModule.ts +48 -59
  36. package/src/module/configureAssortmentProductsModule.ts +15 -17
  37. package/src/module/configureAssortmentTextsModule.ts +12 -14
  38. package/src/module/configureAssortmentsModule.ts +54 -54
  39. package/src/utils/tree-zipper/zipTreeByDeepness.ts +5 -5
  40. package/tests/assortments-index.test.ts +153 -29
  41. package/lib/db/AssortmentMediasCollection.js.map +0 -1
  42. package/lib/db/AssortmentMediasSchema.js.map +0 -1
package/jest.config.js CHANGED
@@ -2,4 +2,13 @@
2
2
  export default {
3
3
  preset: 'ts-jest',
4
4
  testEnvironment: 'node',
5
+ extensionsToTreatAsEsm: ['.ts'],
6
+ transform: {
7
+ '^.+\\.tsx?$': [
8
+ 'ts-jest',
9
+ {
10
+ useESM: true,
11
+ },
12
+ ],
13
+ },
5
14
  };
@@ -1,6 +1,6 @@
1
- import { AssortmentMedia, AssortmentMediaText } from '@unchainedshop/types/assortments.media';
1
+ import { AssortmentMedia as AssortmentMediaType, AssortmentMediaText } from '@unchainedshop/types/assortments.media';
2
2
  import { Db } from '@unchainedshop/types/common';
3
3
  export declare const AssortmentMediaCollection: (db: Db) => Promise<{
4
- AssortmentMedias: import("mongodb").Collection<AssortmentMedia>;
4
+ AssortmentMedia: import("mongodb").Collection<AssortmentMediaType>;
5
5
  AssortmentMediaTexts: import("mongodb").Collection<AssortmentMediaText>;
6
6
  }>;
@@ -1,9 +1,9 @@
1
1
  import { buildDbIndexes } from '@unchainedshop/utils';
2
2
  export const AssortmentMediaCollection = async (db) => {
3
- const AssortmentMedias = db.collection('assortment_media');
3
+ const AssortmentMedia = db.collection('assortment_media');
4
4
  const AssortmentMediaTexts = db.collection('assortment_media_texts');
5
5
  // Assortment Indexes
6
- await buildDbIndexes(AssortmentMedias, [
6
+ await buildDbIndexes(AssortmentMedia, [
7
7
  { index: { mediaId: 1 } },
8
8
  { index: { assortmentId: 1 } },
9
9
  { index: { sortKey: 1 } },
@@ -15,8 +15,8 @@ export const AssortmentMediaCollection = async (db) => {
15
15
  { index: { locale: 1 } },
16
16
  ]);
17
17
  return {
18
- AssortmentMedias,
18
+ AssortmentMedia,
19
19
  AssortmentMediaTexts,
20
20
  };
21
21
  };
22
- //# sourceMappingURL=AssortmentMediasCollection.js.map
22
+ //# sourceMappingURL=AssortmentMediaCollection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AssortmentMediaCollection.js","sourceRoot":"","sources":["../../src/db/AssortmentMediaCollection.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,CAAC,MAAM,yBAAyB,GAAG,KAAK,EAAE,EAAM,EAAE,EAAE;IACxD,MAAM,eAAe,GAAG,EAAE,CAAC,UAAU,CAAsB,kBAAkB,CAAC,CAAC;IAC/E,MAAM,oBAAoB,GAAG,EAAE,CAAC,UAAU,CAAsB,wBAAwB,CAAC,CAAC;IAE1F,qBAAqB;IACrB,MAAM,cAAc,CAAC,eAAe,EAAE;QACpC,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE;QACzB,EAAE,KAAK,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,EAAE;QAC9B,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE;QACzB,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE;KACvB,CAAC,CAAC;IAEH,0BAA0B;IAC1B,MAAM,cAAc,CAAC,oBAAoB,EAAE;QACzC,EAAE,KAAK,EAAE,EAAE,iBAAiB,EAAE,CAAC,EAAE,EAAE;QACnC,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;KACzB,CAAC,CAAC;IAEH,OAAO;QACL,eAAe;QACf,oBAAoB;KACrB,CAAC;AACJ,CAAC,CAAC"}
@@ -1,3 +1,3 @@
1
- export const AssortmentMediasSchema: SimpleSchema;
1
+ export const AssortmentMediaSchema: SimpleSchema;
2
2
  export const AssortmentMediaTextsSchema: SimpleSchema;
3
3
  import SimpleSchema from "simpl-schema";
@@ -1,13 +1,12 @@
1
1
  import { Schemas } from '@unchainedshop/utils';
2
2
  import SimpleSchema from 'simpl-schema';
3
- export const AssortmentMediasSchema = new SimpleSchema({
3
+ export const AssortmentMediaSchema = new SimpleSchema({
4
4
  mediaId: { type: String, required: true },
5
5
  assortmentId: { type: String, required: true },
6
6
  sortKey: { type: Number, required: true },
7
7
  tags: Array,
8
8
  'tags.$': String,
9
9
  meta: { type: Object, blackbox: true },
10
- authorId: { type: String, required: true },
11
10
  ...Schemas.timestampFields,
12
11
  }, { requiredByDefault: false });
13
12
  export const AssortmentMediaTextsSchema = new SimpleSchema({
@@ -16,9 +15,8 @@ export const AssortmentMediaTextsSchema = new SimpleSchema({
16
15
  required: true,
17
16
  },
18
17
  locale: String,
19
- authorId: { type: String, required: true },
20
18
  title: String,
21
19
  subtitle: String,
22
20
  ...Schemas.timestampFields,
23
21
  }, { requiredByDefault: false });
24
- //# sourceMappingURL=AssortmentMediasSchema.js.map
22
+ //# sourceMappingURL=AssortmentMediaSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AssortmentMediaSchema.js","sourceRoot":"","sources":["../../src/db/AssortmentMediaSchema.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,YAAY,MAAM,cAAc,CAAC;AAExC,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,YAAY,CACnD;IACE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACzC,YAAY,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC9C,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACzC,IAAI,EAAE,KAAK;IACX,QAAQ,EAAE,MAAM;IAChB,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACtC,GAAG,OAAO,CAAC,eAAe;CAC3B,EACD,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAC7B,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,YAAY,CACxD;IACE,iBAAiB,EAAE;QACjB,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;KACf;IACD,MAAM,EAAE,MAAM;IACd,KAAK,EAAE,MAAM;IACb,QAAQ,EAAE,MAAM;IAChB,GAAG,OAAO,CAAC,eAAe;CAC3B,EACD,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAC7B,CAAC"}
@@ -1,7 +1,6 @@
1
1
  import { Schemas } from '@unchainedshop/utils';
2
2
  import SimpleSchema from 'simpl-schema';
3
3
  export const AssortmentsSchema = new SimpleSchema({
4
- authorId: { type: String, required: true },
5
4
  isActive: Boolean,
6
5
  isBase: Boolean,
7
6
  isRoot: Boolean,
@@ -15,7 +14,6 @@ export const AssortmentsSchema = new SimpleSchema({
15
14
  }, { requiredByDefault: false });
16
15
  export const AssortmentTextsSchema = new SimpleSchema({
17
16
  assortmentId: { type: String, required: true },
18
- authorId: { type: String, required: true },
19
17
  description: String,
20
18
  locale: { type: String, required: true },
21
19
  slug: String,
@@ -25,7 +23,6 @@ export const AssortmentTextsSchema = new SimpleSchema({
25
23
  }, { requiredByDefault: false });
26
24
  export const AssortmentProductsSchema = new SimpleSchema({
27
25
  assortmentId: { type: String, required: true },
28
- authorId: { type: String, required: true },
29
26
  meta: { type: Object, blackbox: true },
30
27
  productId: { type: String, required: true },
31
28
  sortKey: { type: Number, required: true },
@@ -34,7 +31,6 @@ export const AssortmentProductsSchema = new SimpleSchema({
34
31
  ...Schemas.timestampFields,
35
32
  }, { requiredByDefault: false });
36
33
  export const AssortmentLinksSchema = new SimpleSchema({
37
- authorId: { type: String, required: true },
38
34
  childAssortmentId: { type: String, required: true },
39
35
  meta: { type: Object, blackbox: true },
40
36
  parentAssortmentId: { type: String, required: true },
@@ -45,7 +41,6 @@ export const AssortmentLinksSchema = new SimpleSchema({
45
41
  }, { requiredByDefault: false });
46
42
  export const AssortmentFiltersSchema = new SimpleSchema({
47
43
  assortmentId: { type: String, required: true },
48
- authorId: { type: String, required: true },
49
44
  filterId: { type: String, required: true },
50
45
  meta: { type: Object, blackbox: true },
51
46
  sortKey: { type: Number, required: true },
@@ -1 +1 @@
1
- {"version":3,"file":"AssortmentsSchema.js","sourceRoot":"","sources":["../../src/db/AssortmentsSchema.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,YAAY,MAAM,cAAc,CAAC;AAExC,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,YAAY,CAC/C;IACE,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC1C,QAAQ,EAAE,OAAO;IACjB,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACtC,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC1C,KAAK,EAAE,KAAK;IACZ,SAAS,EAAE,MAAM;IACjB,IAAI,EAAE,KAAK;IACX,QAAQ,EAAE,MAAM;IAChB,GAAG,OAAO,CAAC,eAAe;CAC3B,EACD,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAC7B,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,YAAY,CACnD;IACE,YAAY,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC9C,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC1C,WAAW,EAAE,MAAM;IACnB,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACxC,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,MAAM;IAChB,KAAK,EAAE,MAAM;IACb,GAAG,OAAO,CAAC,eAAe;CAC3B,EACD,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAC7B,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,YAAY,CACtD;IACE,YAAY,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC9C,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC1C,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACtC,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC3C,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACzC,IAAI,EAAE,KAAK;IACX,QAAQ,EAAE,MAAM;IAChB,GAAG,OAAO,CAAC,eAAe;CAC3B,EACD,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAC7B,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,YAAY,CACnD;IACE,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC1C,iBAAiB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACnD,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACtC,kBAAkB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACpD,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACzC,IAAI,EAAE,KAAK;IACX,QAAQ,EAAE,MAAM;IAChB,GAAG,OAAO,CAAC,eAAe;CAC3B,EACD,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAC7B,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,YAAY,CACrD;IACE,YAAY,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC9C,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC1C,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC1C,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACtC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACzC,IAAI,EAAE,KAAK;IACX,QAAQ,EAAE,MAAM;IAChB,GAAG,OAAO,CAAC,eAAe;CAC3B,EACD,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAC7B,CAAC"}
1
+ {"version":3,"file":"AssortmentsSchema.js","sourceRoot":"","sources":["../../src/db/AssortmentsSchema.js"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { AssortmentMediaCollection } from '../db/AssortmentMediasCollection';
1
+ import { AssortmentMediaCollection } from '../db/AssortmentMediaCollection';
2
2
  import { AssortmentsCollection } from '../db/AssortmentsCollection';
3
3
  const convertTagsToLowerCase = async (collection) => {
4
4
  let bulk = collection.initializeUnorderedBulkOp();
@@ -24,7 +24,7 @@ export default function addMigrations(repository) {
24
24
  name: 'Move _cachedProductIds cache to own collection in order to save a lot of bandwidth',
25
25
  up: async () => {
26
26
  const { Assortments, AssortmentProductIdCache } = await AssortmentsCollection(repository.db);
27
- const assortments = await Assortments.find({ _cachedProductIds: { $exists: true } }, { projection: { _id: true, _cachedProductIds: true } }).toArray();
27
+ const assortments = await Assortments.find({ _cachedProductIds: { $exists: true }, deleted: null }, { projection: { _id: true, _cachedProductIds: true } }).toArray();
28
28
  await Promise.all(assortments.map(async (assortment) => {
29
29
  try {
30
30
  // eslint-disable-next-line
@@ -40,7 +40,7 @@ export default function addMigrations(repository) {
40
40
  });
41
41
  }
42
42
  catch (e) {
43
- console.warn(e);
43
+ // console.warn(e);
44
44
  /* */
45
45
  }
46
46
  }));
@@ -54,13 +54,13 @@ export default function addMigrations(repository) {
54
54
  name: 'Convert all tags to lower case to make it easy for search',
55
55
  up: async () => {
56
56
  const { Assortments, AssortmentFilters, AssortmentLinks, AssortmentProducts } = await AssortmentsCollection(repository.db);
57
- const { AssortmentMedias } = await AssortmentMediaCollection(repository.db);
57
+ const { AssortmentMedia } = await AssortmentMediaCollection(repository.db);
58
58
  await Promise.all([
59
59
  convertTagsToLowerCase(Assortments),
60
60
  convertTagsToLowerCase(AssortmentProducts),
61
61
  convertTagsToLowerCase(AssortmentLinks),
62
62
  convertTagsToLowerCase(AssortmentFilters),
63
- convertTagsToLowerCase(AssortmentMedias),
63
+ convertTagsToLowerCase(AssortmentMedia),
64
64
  ]);
65
65
  },
66
66
  });
@@ -1 +1 @@
1
- {"version":3,"file":"addMigrations.js","sourceRoot":"","sources":["../../src/migrations/addMigrations.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,MAAM,sBAAsB,GAAG,KAAK,EAAE,UAA2B,EAAE,EAAE;IACnE,IAAI,IAAI,GAAG,UAAU,CAAC,yBAAyB,EAAE,CAAC;IAClD,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;IACtE,gDAAgD;IAChD,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,MAAM,EAAE;QAC9B,MAAM,eAAe,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;QACjE,KAAK,IAAI,CAAC,CAAC;QACX,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,CAAC,CAAC;QAC3E,IAAI,KAAK,GAAG,GAAG,KAAK,CAAC,EAAE;YACrB,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,IAAI,GAAG,UAAU,CAAC,yBAAyB,EAAE,CAAC;YAC9C,KAAK,GAAG,CAAC,CAAC;SACX;KACF;IACD,IAAI,KAAK,GAAG,CAAC;QAAE,IAAI,CAAC,OAAO,EAAE,CAAC;AAChC,CAAC,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,UAA0C;IAC9E,UAAU,EAAE,QAAQ,CAAC;QACnB,EAAE,EAAE,cAAc;QAClB,IAAI,EAAE,oFAAoF;QAC1F,EAAE,EAAE,KAAK,IAAI,EAAE;YACb,MAAM,EAAE,WAAW,EAAE,wBAAwB,EAAE,GAAG,MAAM,qBAAqB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YAC7F,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,IAAI,CACxC,EAAE,iBAAiB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EACxC,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,CACvD,CAAC,OAAO,EAAE,CAAC;YAEZ,MAAM,OAAO,CAAC,GAAG,CACf,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE;gBACnC,IAAI;oBACF,2BAA2B;oBAC3B,aAAa;oBACb,MAAM,wBAAwB,CAAC,SAAS,CACtC;wBACE,GAAG,EAAE,UAAU,CAAC,GAAU;qBAC3B,EACD;wBACE,2BAA2B;wBACzB,aAAa;wBACb,IAAI,EAAE,EAAE,UAAU,EAAE,UAAU,CAAC,iBAAiB,EAAE,EAAE,sBAAsB;qBAC7E,EACD;wBACE,MAAM,EAAE,IAAI;qBACb,CACF,CAAC;iBACH;gBAAC,OAAO,CAAC,EAAE;oBACV,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAChB,KAAK;iBACN;YACH,CAAC,CAAC,CACH,CAAC;YAEF,MAAM,WAAW,CAAC,UAAU,CAC1B,EAAE,EACF;gBACE,MAAM,EAAE,EAAE,iBAAiB,EAAE,CAAC,EAAE;aACjC,CACF,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;IACH,UAAU,EAAE,QAAQ,CAAC;QACnB,EAAE,EAAE,cAAc;QAClB,IAAI,EAAE,2DAA2D;QACjE,EAAE,EAAE,KAAK,IAAI,EAAE;YACb,MAAM,EAAE,WAAW,EAAE,iBAAiB,EAAE,eAAe,EAAE,kBAAkB,EAAE,GAC3E,MAAM,qBAAqB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YAC7C,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,yBAAyB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YAC5E,MAAM,OAAO,CAAC,GAAG,CAAC;gBAChB,sBAAsB,CAAC,WAAW,CAAC;gBACnC,sBAAsB,CAAC,kBAAkB,CAAC;gBAC1C,sBAAsB,CAAC,eAAe,CAAC;gBACvC,sBAAsB,CAAC,iBAAiB,CAAC;gBACzC,sBAAsB,CAAC,gBAAgB,CAAC;aACzC,CAAC,CAAC;QACL,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"addMigrations.js","sourceRoot":"","sources":["../../src/migrations/addMigrations.ts"],"names":[],"mappings":"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"}
@@ -22,7 +22,7 @@ export const configureAssortmentFiltersModule = ({ AssortmentFilters, }) => {
22
22
  }).map((filter) => filter.filterId);
23
23
  return filters.toArray();
24
24
  },
25
- create: async (doc, userId) => {
25
+ create: async (doc) => {
26
26
  const { _id, assortmentId, filterId, sortKey, ...rest } = doc;
27
27
  const selector = {
28
28
  ...(_id ? generateDbFilterById(_id) : {}),
@@ -31,7 +31,6 @@ export const configureAssortmentFiltersModule = ({ AssortmentFilters, }) => {
31
31
  };
32
32
  const $set = {
33
33
  updated: new Date(),
34
- updatedBy: userId,
35
34
  ...rest,
36
35
  };
37
36
  const $setOnInsert = {
@@ -39,7 +38,6 @@ export const configureAssortmentFiltersModule = ({ AssortmentFilters, }) => {
39
38
  filterId,
40
39
  assortmentId,
41
40
  created: new Date(),
42
- createdBy: userId,
43
41
  };
44
42
  if (!doc.sortKey) {
45
43
  // Get next sort key
@@ -54,7 +52,7 @@ export const configureAssortmentFiltersModule = ({ AssortmentFilters, }) => {
54
52
  $setOnInsert,
55
53
  }, { upsert: true });
56
54
  const assortmentFilter = await AssortmentFilters.findOne(selector, {});
57
- emit('ASSORTMENT_ADD_FILTER', { assortmentFilter });
55
+ await emit('ASSORTMENT_ADD_FILTER', { assortmentFilter });
58
56
  return assortmentFilter;
59
57
  },
60
58
  delete: async (assortmentFilterId) => {
@@ -63,7 +61,7 @@ export const configureAssortmentFiltersModule = ({ AssortmentFilters, }) => {
63
61
  projection: { _id: 1 },
64
62
  });
65
63
  await AssortmentFilters.deleteOne(selector);
66
- emit('ASSORTMENT_REMOVE_FILTER', {
64
+ await emit('ASSORTMENT_REMOVE_FILTER', {
67
65
  assortmentFilterId: assortmentFilter._id,
68
66
  });
69
67
  return [assortmentFilter];
@@ -72,13 +70,11 @@ export const configureAssortmentFiltersModule = ({ AssortmentFilters, }) => {
72
70
  const assortmentFilters = await AssortmentFilters.find(selector, {
73
71
  projection: { _id: 1 },
74
72
  }).toArray();
75
- await AssortmentFilters.deleteMany(selector);
76
- assortmentFilters.forEach((assortmentFilter) => {
77
- emit('ASSORTMENT_REMOVE_FILTER', {
78
- assortmentFilterId: assortmentFilter._id,
79
- });
80
- });
81
- return assortmentFilters;
73
+ const deletionResult = await AssortmentFilters.deleteMany(selector);
74
+ await Promise.all(assortmentFilters.map(async (assortmentFilter) => emit('ASSORTMENT_REMOVE_FILTER', {
75
+ assortmentFilterId: assortmentFilter._id,
76
+ })));
77
+ return deletionResult.deletedCount;
82
78
  },
83
79
  // This action is specifically used for the bulk migration scripts in the platform package
84
80
  update: async (assortmentFilterId, doc) => {
@@ -87,13 +83,12 @@ export const configureAssortmentFiltersModule = ({ AssortmentFilters, }) => {
87
83
  await AssortmentFilters.updateOne(selector, modifier);
88
84
  return AssortmentFilters.findOne(selector, {});
89
85
  },
90
- updateManualOrder: async ({ sortKeys }, userId) => {
86
+ updateManualOrder: async ({ sortKeys }) => {
91
87
  const changedAssortmentFilterIds = await Promise.all(sortKeys.map(async ({ assortmentFilterId, sortKey }) => {
92
88
  await AssortmentFilters.updateOne(generateDbFilterById(assortmentFilterId), {
93
89
  $set: {
94
90
  sortKey: sortKey + 1,
95
91
  updated: new Date(),
96
- updatedBy: userId,
97
92
  },
98
93
  });
99
94
  return assortmentFilterId;
@@ -101,7 +96,7 @@ export const configureAssortmentFiltersModule = ({ AssortmentFilters, }) => {
101
96
  const assortmentFilters = await AssortmentFilters.find({
102
97
  _id: { $in: changedAssortmentFilterIds },
103
98
  }).toArray();
104
- emit('ASSORTMENT_REORDER_FILTERS', { assortmentFilters });
99
+ await emit('ASSORTMENT_REORDER_FILTERS', { assortmentFilters });
105
100
  return assortmentFilters;
106
101
  },
107
102
  };
@@ -1 +1 @@
1
- {"version":3,"file":"configureAssortmentFiltersModule.js","sourceRoot":"","sources":["../../src/module/configureAssortmentFiltersModule.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"configureAssortmentFiltersModule.js","sourceRoot":"","sources":["../../src/module/configureAssortmentFiltersModule.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
1
  import { emit, registerEvents } from '@unchainedshop/events';
2
2
  import { generateDbFilterById, generateDbObjectId } from '@unchainedshop/utils';
3
+ import { walkUpFromAssortment } from '../utils/breadcrumbs/build-paths';
4
+ import { resolveAssortmentLinkFromDatabase } from '../utils/breadcrumbs/resolveAssortmentLinkFromDatabase';
3
5
  const ASSORTMENT_LINK_EVENTS = [
4
6
  'ASSORTMENT_ADD_LINK',
5
7
  'ASSORTMENT_REMOVE_LINK',
@@ -28,7 +30,7 @@ export const configureAssortmentLinksModule = ({ AssortmentLinks, invalidateCach
28
30
  return links.toArray();
29
31
  },
30
32
  // Mutations
31
- create: async (doc, options, userId) => {
33
+ create: async (doc, options) => {
32
34
  const { _id: assortmentLinkId, parentAssortmentId, childAssortmentId, sortKey, ...rest } = doc;
33
35
  const selector = {
34
36
  ...(assortmentLinkId ? generateDbFilterById(assortmentLinkId) : {}),
@@ -37,7 +39,6 @@ export const configureAssortmentLinksModule = ({ AssortmentLinks, invalidateCach
37
39
  };
38
40
  const $set = {
39
41
  updated: new Date(),
40
- updatedBy: userId,
41
42
  ...rest,
42
43
  };
43
44
  const $setOnInsert = {
@@ -45,8 +46,17 @@ export const configureAssortmentLinksModule = ({ AssortmentLinks, invalidateCach
45
46
  parentAssortmentId,
46
47
  childAssortmentId,
47
48
  created: new Date(),
48
- createdBy: userId,
49
49
  };
50
+ const assortmentLinksPath = await walkUpFromAssortment({
51
+ resolveAssortmentLink: resolveAssortmentLinkFromDatabase(AssortmentLinks),
52
+ assortmentId: parentAssortmentId,
53
+ });
54
+ assortmentLinksPath
55
+ .flatMap(({ links }) => links)
56
+ .forEach(({ parentIds }) => {
57
+ if (parentIds.includes(childAssortmentId))
58
+ throw Error('CyclicGraphNotSupported');
59
+ });
50
60
  if (!sortKey) {
51
61
  // Get next sort key
52
62
  const lastAssortmentLink = (await AssortmentLinks.findOne({ parentAssortmentId }, { sort: { sortKey: -1 } })) || { sortKey: 0 };
@@ -62,20 +72,19 @@ export const configureAssortmentLinksModule = ({ AssortmentLinks, invalidateCach
62
72
  upsert: true,
63
73
  });
64
74
  const assortmentLink = await AssortmentLinks.findOne(selector, {});
65
- emit('ASSORTMENT_ADD_LINK', { assortmentLink });
75
+ await emit('ASSORTMENT_ADD_LINK', { assortmentLink });
66
76
  if (!options.skipInvalidation) {
67
77
  await invalidateCache({ assortmentIds: [parentAssortmentId] });
68
78
  }
69
79
  return assortmentLink;
70
80
  },
71
81
  // This action is specifically used for the bulk migration scripts in the platform package
72
- update: async (assortmentLinkId, doc, options, userId) => {
82
+ update: async (assortmentLinkId, doc, options) => {
73
83
  const selector = generateDbFilterById(assortmentLinkId);
74
84
  const modifier = {
75
85
  $set: {
76
86
  ...doc,
77
87
  updated: new Date(),
78
- updatedBy: userId,
79
88
  },
80
89
  };
81
90
  await AssortmentLinks.updateOne(selector, modifier);
@@ -89,7 +98,7 @@ export const configureAssortmentLinksModule = ({ AssortmentLinks, invalidateCach
89
98
  const selector = generateDbFilterById(assortmentLinkId);
90
99
  const assortmentLink = await AssortmentLinks.findOne(selector, {});
91
100
  await AssortmentLinks.deleteOne(selector);
92
- emit('ASSORTMENT_REMOVE_LINK', {
101
+ await emit('ASSORTMENT_REMOVE_LINK', {
93
102
  assortmentLinkId: assortmentLink._id,
94
103
  });
95
104
  if (!options.skipInvalidation) {
@@ -100,13 +109,17 @@ export const configureAssortmentLinksModule = ({ AssortmentLinks, invalidateCach
100
109
  return assortmentLink;
101
110
  },
102
111
  deleteMany: async (selector, options) => {
103
- const assortmentLinks = await AssortmentLinks.find(selector, {}).toArray();
104
- await AssortmentLinks.deleteMany(selector);
105
- assortmentLinks.forEach((assortmentLink) => {
106
- emit('ASSORTMENT_REMOVE_LINK', {
107
- assortmentLinkId: assortmentLink._id,
108
- });
109
- });
112
+ const assortmentLinks = await AssortmentLinks.find(selector, {
113
+ projection: {
114
+ _id: 1,
115
+ childAssortmentId: 1,
116
+ parentAssortmentId: 1,
117
+ },
118
+ }).toArray();
119
+ const deletionResult = await AssortmentLinks.deleteMany(selector);
120
+ await Promise.all(assortmentLinks.map(async (assortmentLink) => emit('ASSORTMENT_REMOVE_LINK', {
121
+ assortmentLinkId: assortmentLink._id,
122
+ })));
110
123
  if (!options.skipInvalidation && assortmentLinks.length) {
111
124
  await invalidateCache({
112
125
  assortmentIds: assortmentLinks.flatMap((link) => [
@@ -115,15 +128,14 @@ export const configureAssortmentLinksModule = ({ AssortmentLinks, invalidateCach
115
128
  ]),
116
129
  });
117
130
  }
118
- return assortmentLinks;
131
+ return deletionResult.deletedCount;
119
132
  },
120
- updateManualOrder: async ({ sortKeys }, options, userId) => {
133
+ updateManualOrder: async ({ sortKeys }, options) => {
121
134
  const changedAssortmentLinkIds = await Promise.all(sortKeys.map(async ({ assortmentLinkId, sortKey }) => {
122
135
  await AssortmentLinks.updateOne(generateDbFilterById(assortmentLinkId), {
123
136
  $set: {
124
137
  sortKey: sortKey + 1,
125
138
  updated: new Date(),
126
- updatedBy: userId,
127
139
  },
128
140
  });
129
141
  return assortmentLinkId;
@@ -134,7 +146,7 @@ export const configureAssortmentLinksModule = ({ AssortmentLinks, invalidateCach
134
146
  if (!options.skipInvalidation && assortmentLinks.length) {
135
147
  await invalidateCache({ assortmentIds: assortmentLinks.map((link) => link.childAssortmentId) });
136
148
  }
137
- emit('ASSORTMENT_REORDER_LINKS', { assortmentLinks });
149
+ await emit('ASSORTMENT_REORDER_LINKS', { assortmentLinks });
138
150
  return assortmentLinks;
139
151
  },
140
152
  };
@@ -1 +1 @@
1
- {"version":3,"file":"configureAssortmentLinksModule.js","sourceRoot":"","sources":["../../src/module/configureAssortmentLinksModule.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"configureAssortmentLinksModule.js","sourceRoot":"","sources":["../../src/module/configureAssortmentLinksModule.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,8 @@ import localePkg from 'locale';
2
2
  import { emit, registerEvents } from '@unchainedshop/events';
3
3
  import { findLocalizedText, generateDbFilterById, generateDbMutations, generateDbObjectId, } from '@unchainedshop/utils';
4
4
  import { FileDirector } from '@unchainedshop/file-upload';
5
- import { AssortmentMediaCollection } from '../db/AssortmentMediasCollection';
6
- import { AssortmentMediasSchema } from '../db/AssortmentMediasSchema';
5
+ import { AssortmentMediaCollection } from '../db/AssortmentMediaCollection';
6
+ import { AssortmentMediaSchema } from '../db/AssortmentMediaSchema';
7
7
  const { Locale } = localePkg;
8
8
  const ASSORTMENT_MEDIA_EVENTS = [
9
9
  'ASSORTMENT_ADD_MEDIA',
@@ -11,17 +11,17 @@ const ASSORTMENT_MEDIA_EVENTS = [
11
11
  'ASSORTMENT_REORDER_MEDIA',
12
12
  'ASSORTMENT_UPDATE_MEDIA_TEXT',
13
13
  ];
14
- FileDirector.registerFileUploadCallback('assortment-media', async (file, { modules, userId }) => {
14
+ FileDirector.registerFileUploadCallback('assortment-media', async (file, { modules }) => {
15
15
  await modules.assortments.media.create({
16
16
  assortmentId: file.meta.assortmentId,
17
17
  mediaId: file._id,
18
- }, file.updatedBy || file.createdBy || userId);
18
+ });
19
19
  });
20
20
  export const configureAssortmentMediaModule = async ({ db, }) => {
21
21
  registerEvents(ASSORTMENT_MEDIA_EVENTS);
22
- const { AssortmentMedias, AssortmentMediaTexts } = await AssortmentMediaCollection(db);
23
- const mutations = generateDbMutations(AssortmentMedias, AssortmentMediasSchema);
24
- const upsertLocalizedText = async (assortmentMediaId, locale, text, userId) => {
22
+ const { AssortmentMedia, AssortmentMediaTexts } = await AssortmentMediaCollection(db);
23
+ const mutations = generateDbMutations(AssortmentMedia, AssortmentMediaSchema);
24
+ const upsertLocalizedText = async (assortmentMediaId, locale, text) => {
25
25
  const selector = {
26
26
  assortmentMediaId,
27
27
  locale,
@@ -29,14 +29,11 @@ export const configureAssortmentMediaModule = async ({ db, }) => {
29
29
  await AssortmentMediaTexts.updateOne(selector, {
30
30
  $set: {
31
31
  updated: new Date(),
32
- updatedBy: userId,
33
- authorId: userId,
34
32
  ...text,
35
33
  },
36
34
  $setOnInsert: {
37
35
  _id: generateDbObjectId(),
38
36
  created: new Date(),
39
- createdBy: userId,
40
37
  assortmentMediaId,
41
38
  locale,
42
39
  },
@@ -48,14 +45,14 @@ export const configureAssortmentMediaModule = async ({ db, }) => {
48
45
  return {
49
46
  // Queries
50
47
  findAssortmentMedia: async ({ assortmentMediaId }) => {
51
- return AssortmentMedias.findOne(generateDbFilterById(assortmentMediaId), {});
48
+ return AssortmentMedia.findOne(generateDbFilterById(assortmentMediaId), {});
52
49
  },
53
50
  findAssortmentMedias: async ({ assortmentId, tags, offset, limit }, options) => {
54
51
  const selector = assortmentId ? { assortmentId } : {};
55
52
  if (tags && tags.length > 0) {
56
53
  selector.tags = { $all: tags };
57
54
  }
58
- const mediaList = AssortmentMedias.find(selector, {
55
+ const mediaList = AssortmentMedia.find(selector, {
59
56
  skip: offset,
60
57
  limit,
61
58
  sort: { sortKey: 1 },
@@ -64,11 +61,11 @@ export const configureAssortmentMediaModule = async ({ db, }) => {
64
61
  return mediaList.toArray();
65
62
  },
66
63
  // Mutations
67
- create: async (doc, userId) => {
64
+ create: async (doc) => {
68
65
  let { sortKey } = doc;
69
66
  if (!sortKey) {
70
67
  // Get next sort key
71
- const lastAssortmentMedia = (await AssortmentMedias.findOne({
68
+ const lastAssortmentMedia = (await AssortmentMedia.findOne({
72
69
  assortmentId: doc.assortmentId,
73
70
  }, {
74
71
  sort: { sortKey: -1 },
@@ -77,20 +74,20 @@ export const configureAssortmentMediaModule = async ({ db, }) => {
77
74
  }
78
75
  const assortmentMediaId = await mutations.create({
79
76
  tags: [],
80
- authorId: userId,
81
77
  ...doc,
82
78
  sortKey,
83
- }, userId);
84
- const assortmentMedia = await AssortmentMedias.findOne(generateDbFilterById(assortmentMediaId), {});
85
- emit('ASSORTMENT_ADD_MEDIA', {
79
+ });
80
+ const assortmentMedia = await AssortmentMedia.findOne(generateDbFilterById(assortmentMediaId), {});
81
+ await emit('ASSORTMENT_ADD_MEDIA', {
86
82
  assortmentMedia,
87
83
  });
88
84
  return assortmentMedia;
89
85
  },
90
86
  delete: async (assortmentMediaId) => {
91
87
  const selector = generateDbFilterById(assortmentMediaId);
92
- const deletedResult = await AssortmentMedias.deleteOne(selector);
93
- emit('ASSORTMENT_REMOVE_MEDIA', {
88
+ await AssortmentMediaTexts.deleteMany({ assortmentMediaId });
89
+ const deletedResult = await AssortmentMedia.deleteOne(selector);
90
+ await emit('ASSORTMENT_REMOVE_MEDIA', {
94
91
  assortmentMediaId,
95
92
  });
96
93
  return deletedResult.deletedCount;
@@ -103,39 +100,37 @@ export const configureAssortmentMediaModule = async ({ db, }) => {
103
100
  if (excludedAssortmentMediaIds) {
104
101
  selector._id = { $nin: excludedAssortmentMediaIds };
105
102
  }
106
- const ids = await AssortmentMedias.find(selector, { projection: { _id: true } })
103
+ const ids = await AssortmentMedia.find(selector, { projection: { _id: true } })
107
104
  .map((m) => m._id)
108
105
  .toArray();
109
- const deletedResult = await AssortmentMedias.deleteMany(selector);
110
- ids.forEach((assortmentMediaId) => {
111
- emit('ASSORTMENT_REMOVE_MEDIA', {
112
- assortmentMediaId,
113
- });
114
- });
106
+ await AssortmentMediaTexts.deleteMany({ assortmentMediaId: { $in: ids } });
107
+ const deletedResult = await AssortmentMedia.deleteMany(selector);
108
+ await Promise.all(ids.map(async (assortmentMediaId) => emit('ASSORTMENT_REMOVE_MEDIA', {
109
+ assortmentMediaId,
110
+ })));
115
111
  return deletedResult.deletedCount;
116
112
  },
117
113
  // This action is specifically used for the bulk migration scripts in the platform package
118
114
  update: async (assortmentMediaId, doc) => {
119
115
  const selector = generateDbFilterById(assortmentMediaId);
120
116
  const modifier = { $set: doc };
121
- await AssortmentMedias.updateOne(selector, modifier);
122
- return AssortmentMedias.findOne(selector, {});
117
+ await AssortmentMedia.updateOne(selector, modifier);
118
+ return AssortmentMedia.findOne(selector, {});
123
119
  },
124
- updateManualOrder: async ({ sortKeys }, userId) => {
120
+ updateManualOrder: async ({ sortKeys }) => {
125
121
  const changedAssortmentMediaIds = await Promise.all(sortKeys.map(async ({ assortmentMediaId, sortKey }) => {
126
- await AssortmentMedias.updateOne(generateDbFilterById(assortmentMediaId), {
122
+ await AssortmentMedia.updateOne(generateDbFilterById(assortmentMediaId), {
127
123
  $set: {
128
124
  sortKey: sortKey + 1,
129
125
  updated: new Date(),
130
- updatedBy: userId,
131
126
  },
132
127
  });
133
128
  return assortmentMediaId;
134
129
  }));
135
- const assortmentMedias = await AssortmentMedias.find({
130
+ const assortmentMedias = await AssortmentMedia.find({
136
131
  _id: { $in: changedAssortmentMediaIds },
137
132
  }).toArray();
138
- emit('ASSORTMENT_REORDER_MEDIA', { assortmentMedias });
133
+ await emit('ASSORTMENT_REORDER_MEDIA', { assortmentMedias });
139
134
  return assortmentMedias;
140
135
  },
141
136
  /*
@@ -152,9 +147,9 @@ export const configureAssortmentMediaModule = async ({ db, }) => {
152
147
  return text;
153
148
  },
154
149
  // Mutations
155
- updateMediaTexts: async (assortmentMediaId, texts, userId) => {
156
- const mediaTexts = await Promise.all(texts.map(({ locale, ...text }) => upsertLocalizedText(assortmentMediaId, locale, text, userId)));
157
- emit('ASSORTMENT_UPDATE_MEDIA_TEXT', {
150
+ updateMediaTexts: async (assortmentMediaId, texts) => {
151
+ const mediaTexts = await Promise.all(texts.map(({ locale, ...text }) => upsertLocalizedText(assortmentMediaId, locale, text)));
152
+ await emit('ASSORTMENT_UPDATE_MEDIA_TEXT', {
158
153
  assortmentMediaId,
159
154
  mediaTexts,
160
155
  });