@haus-tech/product-import-export-plugin 3.6.12 → 3.6.14

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 (56) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/README.md +110 -10
  3. package/package.json +1 -1
  4. package/src/constants.d.ts +1 -0
  5. package/src/constants.js +2 -1
  6. package/src/constants.js.map +1 -1
  7. package/src/dashboard/export-configuration-panel.tsx +1 -0
  8. package/src/dashboard/utils.ts +1 -0
  9. package/src/helpers/find-text-column.d.ts +8 -0
  10. package/src/helpers/find-text-column.js +32 -0
  11. package/src/helpers/find-text-column.js.map +1 -0
  12. package/src/index.d.ts +1 -0
  13. package/src/index.js +1 -0
  14. package/src/index.js.map +1 -1
  15. package/src/product-import-export.plugin.d.ts +11 -1
  16. package/src/product-import-export.plugin.js +35 -3
  17. package/src/product-import-export.plugin.js.map +1 -1
  18. package/src/providers/import-providers/import-parser.d.ts +9 -0
  19. package/src/providers/import-providers/import-parser.js +26 -8
  20. package/src/providers/import-providers/import-parser.js.map +1 -1
  21. package/src/providers/import-providers/product-importer.d.ts +58 -10
  22. package/src/providers/import-providers/product-importer.js +163 -94
  23. package/src/providers/import-providers/product-importer.js.map +1 -1
  24. package/src/services/channel-column-resolver.d.ts +24 -0
  25. package/src/services/channel-column-resolver.js +79 -0
  26. package/src/services/channel-column-resolver.js.map +1 -0
  27. package/src/services/export-relation-lookups.d.ts +26 -0
  28. package/src/services/export-relation-lookups.js +56 -0
  29. package/src/services/export-relation-lookups.js.map +1 -0
  30. package/src/services/extended-fast-importer.service.d.ts +16 -0
  31. package/src/services/extended-fast-importer.service.js +46 -21
  32. package/src/services/extended-fast-importer.service.js.map +1 -1
  33. package/src/services/import-row-groups.d.ts +17 -0
  34. package/src/services/import-row-groups.js +69 -0
  35. package/src/services/import-row-groups.js.map +1 -0
  36. package/src/services/product-export.service.d.ts +9 -3
  37. package/src/services/product-export.service.js +57 -10
  38. package/src/services/product-export.service.js.map +1 -1
  39. package/src/services/product-import.service.d.ts +1 -3
  40. package/src/services/product-import.service.js +10 -9
  41. package/src/services/product-import.service.js.map +1 -1
  42. package/src/services/relation-lookup-resolver.d.ts +52 -0
  43. package/src/services/relation-lookup-resolver.js +245 -0
  44. package/src/services/relation-lookup-resolver.js.map +1 -0
  45. package/src/services/self-relation-custom-fields.d.ts +7 -0
  46. package/src/services/self-relation-custom-fields.js +24 -0
  47. package/src/services/self-relation-custom-fields.js.map +1 -1
  48. package/src/strategies/import-row-validation-strategy.d.ts +71 -0
  49. package/src/strategies/import-row-validation-strategy.js +16 -0
  50. package/src/strategies/import-row-validation-strategy.js.map +1 -0
  51. package/src/types.d.ts +21 -1
  52. package/src/ui/components/export-dialog.component.ts +2 -0
  53. package/src/ui/components/product-import.component.ts +1 -0
  54. package/src/services/sku-relation-resolver.d.ts +0 -33
  55. package/src/services/sku-relation-resolver.js +0 -177
  56. package/src/services/sku-relation-resolver.js.map +0 -1
@@ -27,6 +27,7 @@ let ExtendedFastImporterService = class ExtendedFastImporterService {
27
27
  entityHydrator;
28
28
  defaultChannel;
29
29
  importCtx;
30
+ productChannels = [];
30
31
  /** @internal */
31
32
  constructor(connection, channelService, customFieldRelationService, stockLevelService, stockLocationService, translatableSaver, requestContextService, entityHydrator) {
32
33
  this.connection = connection;
@@ -47,6 +48,7 @@ let ExtendedFastImporterService = class ExtendedFastImporterService {
47
48
  * to that Channel.
48
49
  */
49
50
  async initialize(channel) {
51
+ this.productChannels = [];
50
52
  this.importCtx = channel
51
53
  ? await this.requestContextService.create({
52
54
  apiType: 'admin',
@@ -67,7 +69,7 @@ let ExtendedFastImporterService = class ExtendedFastImporterService {
67
69
  translationType: core_1.ProductTranslation,
68
70
  beforeSave: async (p) => {
69
71
  await this.entityHydrator.hydrate(this.importCtx, p, { relations: ['channels'] });
70
- p.channels = (0, unique_1.unique)([...p.channels, this.defaultChannel, this.importCtx.channel], 'id');
72
+ p.channels = (0, unique_1.unique)([...p.channels, ...this.assignedChannels()], 'id');
71
73
  if (input.facetValueIds) {
72
74
  p.facetValues = input.facetValueIds.map((id) => ({ id }));
73
75
  }
@@ -123,7 +125,7 @@ let ExtendedFastImporterService = class ExtendedFastImporterService {
123
125
  translationType: core_1.ProductTranslation,
124
126
  beforeSave: async (p) => {
125
127
  try {
126
- p.channels = (0, unique_1.unique)([this.defaultChannel, this.importCtx.channel], 'id');
128
+ p.channels = this.assignedChannels();
127
129
  if (input.featuredAssetId) {
128
130
  p.featuredAsset = { id: input.featuredAssetId };
129
131
  }
@@ -155,7 +157,7 @@ let ExtendedFastImporterService = class ExtendedFastImporterService {
155
157
  translationType: core_1.ProductOptionGroupTranslation,
156
158
  beforeSave: async (group) => {
157
159
  await this.entityHydrator.hydrate(this.importCtx, group, { relations: ['channels'] });
158
- group.channels = (0, unique_1.unique)([...group.channels, this.defaultChannel, this.importCtx.channel], 'id');
160
+ group.channels = (0, unique_1.unique)([...group.channels, ...this.assignedChannels()], 'id');
159
161
  group.deletedAt = null;
160
162
  },
161
163
  });
@@ -178,7 +180,7 @@ let ExtendedFastImporterService = class ExtendedFastImporterService {
178
180
  translationType: core_1.ProductOptionGroupTranslation,
179
181
  beforeSave: async (group) => {
180
182
  await this.entityHydrator.hydrate(this.importCtx, group, { relations: ['channels'] });
181
- group.channels = (0, unique_1.unique)([...group.channels, this.defaultChannel, this.importCtx.channel], 'id');
183
+ group.channels = (0, unique_1.unique)([...group.channels, ...this.assignedChannels()], 'id');
182
184
  group.deletedAt = null;
183
185
  },
184
186
  });
@@ -190,7 +192,7 @@ let ExtendedFastImporterService = class ExtendedFastImporterService {
190
192
  entityType: core_1.ProductOptionGroup,
191
193
  translationType: core_1.ProductOptionGroupTranslation,
192
194
  beforeSave: (group) => {
193
- group.channels = (0, unique_1.unique)([this.defaultChannel, this.importCtx.channel], 'id');
195
+ group.channels = this.assignedChannels();
194
196
  },
195
197
  });
196
198
  return group.id;
@@ -211,7 +213,7 @@ let ExtendedFastImporterService = class ExtendedFastImporterService {
211
213
  translationType: core_1.ProductOptionTranslation,
212
214
  beforeSave: async (po) => {
213
215
  await this.entityHydrator.hydrate(this.importCtx, po, { relations: ['channels'] });
214
- po.channels = (0, unique_1.unique)([...po.channels, this.defaultChannel, this.importCtx.channel], 'id');
216
+ po.channels = (0, unique_1.unique)([...po.channels, ...this.assignedChannels()], 'id');
215
217
  po.group = { id: input.productOptionGroupId };
216
218
  po.deletedAt = null;
217
219
  },
@@ -224,7 +226,7 @@ let ExtendedFastImporterService = class ExtendedFastImporterService {
224
226
  entityType: core_1.ProductOption,
225
227
  translationType: core_1.ProductOptionTranslation,
226
228
  beforeSave: (po) => {
227
- po.channels = (0, unique_1.unique)([this.defaultChannel, this.importCtx.channel], 'id');
229
+ po.channels = this.assignedChannels();
228
230
  po.group = { id: input.productOptionGroupId };
229
231
  po.deletedAt = null;
230
232
  },
@@ -273,7 +275,7 @@ let ExtendedFastImporterService = class ExtendedFastImporterService {
273
275
  translationType: core_1.FacetTranslation,
274
276
  beforeSave: async (facet) => {
275
277
  await this.entityHydrator.hydrate(this.importCtx, facet, { relations: ['channels'] });
276
- facet.channels = (0, unique_1.unique)([...facet.channels, this.defaultChannel, this.importCtx.channel], 'id');
278
+ facet.channels = (0, unique_1.unique)([...facet.channels, ...this.assignedChannels()], 'id');
277
279
  },
278
280
  });
279
281
  return facet.id;
@@ -284,7 +286,7 @@ let ExtendedFastImporterService = class ExtendedFastImporterService {
284
286
  entityType: core_1.Facet,
285
287
  translationType: core_1.FacetTranslation,
286
288
  beforeSave: async (facet) => {
287
- facet.channels = (0, unique_1.unique)([this.defaultChannel, this.importCtx.channel], 'id');
289
+ facet.channels = this.assignedChannels();
288
290
  },
289
291
  });
290
292
  return facet.id;
@@ -306,7 +308,7 @@ let ExtendedFastImporterService = class ExtendedFastImporterService {
306
308
  beforeSave: async (facetValue) => {
307
309
  await this.entityHydrator.hydrate(this.importCtx, facetValue, { relations: ['channels'] });
308
310
  facetValue.facet = { id: input.facetId };
309
- facetValue.channels = (0, unique_1.unique)([...facetValue.channels, this.defaultChannel, this.importCtx.channel], 'id');
311
+ facetValue.channels = (0, unique_1.unique)([...facetValue.channels, ...this.assignedChannels()], 'id');
310
312
  },
311
313
  });
312
314
  return updatedFacetValue.id;
@@ -318,7 +320,7 @@ let ExtendedFastImporterService = class ExtendedFastImporterService {
318
320
  translationType: core_1.FacetValueTranslation,
319
321
  beforeSave: async (facetValue) => {
320
322
  facetValue.facet = { id: input.facetId };
321
- facetValue.channels = (0, unique_1.unique)([this.defaultChannel, this.importCtx.channel], 'id');
323
+ facetValue.channels = this.assignedChannels();
322
324
  },
323
325
  });
324
326
  return facetValue.id;
@@ -380,7 +382,7 @@ let ExtendedFastImporterService = class ExtendedFastImporterService {
380
382
  translationType: core_1.ProductVariantTranslation,
381
383
  beforeSave: async (variant) => {
382
384
  await this.entityHydrator.hydrate(ctx, variant, { relations: ['channels'] });
383
- variant.channels = (0, unique_1.unique)([...variant.channels, this.defaultChannel, ctx.channel], 'id');
385
+ variant.channels = (0, unique_1.unique)([...variant.channels, ...this.assignedChannels(ctx)], 'id');
384
386
  const { optionIds } = input;
385
387
  if (optionIds && optionIds.length) {
386
388
  variant.options = optionIds.map((id) => ({ id }));
@@ -414,19 +416,20 @@ let ExtendedFastImporterService = class ExtendedFastImporterService {
414
416
  if (input.stockOnHand !== undefined) {
415
417
  await this.setProductVariantStockOnHandDirectly(ctx, updatedVariant.id, input.stockOnHand);
416
418
  }
417
- const assignedChannelIds = (0, unique_1.unique)([this.defaultChannel, ctx.channel], 'id').map((c) => c.id);
418
- for (const channelId of assignedChannelIds) {
419
+ for (const channel of this.assignedChannels(ctx)) {
420
+ const channelId = channel.id;
421
+ const currencyCode = this.priceCurrency(ctx, channel);
419
422
  const allPrices = await this.connection.getRepository(ctx, core_1.ProductVariantPrice).find({
420
423
  where: {
421
424
  variant: { id: updatedVariant.id },
422
425
  },
423
426
  });
424
- const existingVariantPrice = allPrices.find((p) => (0, core_1.idsAreEqual)(p.channelId, channelId) && p.currencyCode === ctx.channel.defaultCurrencyCode);
427
+ const existingVariantPrice = allPrices.find((p) => (0, core_1.idsAreEqual)(p.channelId, channelId) && p.currencyCode === currencyCode);
425
428
  if (!existingVariantPrice) {
426
429
  const variantPrice = new core_1.ProductVariantPrice({
427
430
  price: (0, lodash_1.isNumber)(input.price) ? input.price : 0,
428
431
  channelId,
429
- currencyCode: ctx.channel.defaultCurrencyCode,
432
+ currencyCode,
430
433
  });
431
434
  variantPrice.variant = updatedVariant;
432
435
  await this.connection
@@ -467,7 +470,7 @@ let ExtendedFastImporterService = class ExtendedFastImporterService {
467
470
  entityType: core_1.ProductVariant,
468
471
  translationType: core_1.ProductVariantTranslation,
469
472
  beforeSave: async (variant) => {
470
- variant.channels = (0, unique_1.unique)([this.defaultChannel, ctx.channel], 'id');
473
+ variant.channels = this.assignedChannels(ctx);
471
474
  const { optionIds } = input;
472
475
  if (optionIds && optionIds.length) {
473
476
  variant.options = optionIds.map((id) => ({ id }));
@@ -494,12 +497,11 @@ let ExtendedFastImporterService = class ExtendedFastImporterService {
494
497
  .save(variantAssets, { reload: false });
495
498
  }
496
499
  await this.setProductVariantStockOnHandDirectly(ctx, createdVariant.id, input.stockOnHand ?? 0);
497
- const assignedChannelIds = (0, unique_1.unique)([this.defaultChannel, ctx.channel], 'id').map((c) => c.id);
498
- for (const channelId of assignedChannelIds) {
500
+ for (const channel of this.assignedChannels(ctx)) {
499
501
  const variantPrice = new core_1.ProductVariantPrice({
500
502
  price: (0, lodash_1.isNumber)(input.price) ? input.price : 0,
501
- channelId,
502
- currencyCode: ctx.channel.defaultCurrencyCode,
503
+ channelId: channel.id,
504
+ currencyCode: this.priceCurrency(ctx, channel),
503
505
  });
504
506
  variantPrice.variant = createdVariant;
505
507
  await this.connection
@@ -508,6 +510,29 @@ let ExtendedFastImporterService = class ExtendedFastImporterService {
508
510
  }
509
511
  return createdVariant.id;
510
512
  }
513
+ /**
514
+ * @description
515
+ * Sets the channels the next product, its variants, option groups and facets are assigned to, on
516
+ * top of the default channel and the import's channel: the `channels` column of the product's
517
+ * row. Applies until it is set again, so call it once per product, with `[]` for none.
518
+ */
519
+ setProductChannels(channels) {
520
+ this.productChannels = channels;
521
+ }
522
+ /** The default channel, the import's channel and the current product's channels. */
523
+ assignedChannels(ctx = this.importCtx) {
524
+ return (0, unique_1.unique)([this.defaultChannel, ctx.channel, ...this.productChannels], 'id');
525
+ }
526
+ /**
527
+ * A price row in a channel of the product's own is in that channel's currency, or Vendure
528
+ * finds no price there. The default channel's row keeps the import channel's currency, as it
529
+ * always has.
530
+ */
531
+ priceCurrency(ctx, channel) {
532
+ return (0, core_1.idsAreEqual)(channel.id, this.defaultChannel.id)
533
+ ? ctx.channel.defaultCurrencyCode
534
+ : channel.defaultCurrencyCode;
535
+ }
511
536
  ensureInitialized() {
512
537
  if (!this.defaultChannel || !this.importCtx) {
513
538
  throw new Error("The FastImporterService must be initialized with a call to 'initialize()' before importing data");
@@ -1 +1 @@
1
- {"version":3,"file":"extended-fast-importer.service.js","sourceRoot":"","sources":["../../../../../packages/product-import-export-plugin/src/services/extended-fast-importer.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA2C;AAC3C,wCA6BsB;AAStB,kEAA6D;AAC7D,uDAAmD;AACnD,mCAAyD;AACzD,4CAAwC;AAGjC,IAAM,2BAA2B,GAAjC,MAAM,2BAA2B;IAM5B;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAZF,cAAc,CAAS;IACvB,SAAS,CAAgB;IAEjC,gBAAgB;IAChB,YACU,UAAmC,EACnC,cAA8B,EAC9B,0BAAsD,EACtD,iBAAoC,EACpC,oBAA0C,EAC1C,iBAAoC,EACpC,qBAA4C,EAC5C,cAA8B;QAP9B,eAAU,GAAV,UAAU,CAAyB;QACnC,mBAAc,GAAd,cAAc,CAAgB;QAC9B,+BAA0B,GAA1B,0BAA0B,CAA4B;QACtD,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,yBAAoB,GAApB,oBAAoB,CAAsB;QAC1C,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,0BAAqB,GAArB,qBAAqB,CAAuB;QAC5C,mBAAc,GAAd,cAAc,CAAgB;IACrC,CAAC;IAEJ;;;;;;;OAOG;IACH,KAAK,CAAC,UAAU,CAAC,OAAiB;QAChC,IAAI,CAAC,SAAS,GAAG,OAAO;YACtB,CAAC,CAAC,MAAM,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC;gBACtC,OAAO,EAAE,OAAO;gBAChB,cAAc,EAAE,OAAO;aACxB,CAAC;YACJ,CAAC,CAAC,qBAAc,CAAC,KAAK,EAAE,CAAA;QAC1B,IAAI,CAAC,cAAc,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACnF,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,EAAM,EAAE,KAAsC;QAChE,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACxB,KAAK,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE;YACtC,WAAW,CAAC,IAAI,GAAG,IAAA,kCAAe,EAAC,WAAW,CAAC,IAAc,EAAE,GAAG,EAAE,WAAW,CAAC,YAAY,CAAC,CAAA;QAC/F,CAAC,CAAC,CAAA;QAEF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;YAClD,GAAG,EAAE,IAAI,CAAC,SAAS;YACnB,KAAK;YACL,UAAU,EAAE,cAAO;YACnB,eAAe,EAAE,yBAAkB;YACnC,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;gBACtB,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;gBACjF,CAAC,CAAC,QAAQ,GAAG,IAAA,eAAM,EAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAA;gBACvF,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;oBACxB,CAAC,CAAC,WAAW,GAAG,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAQ,CAAC,CAAA;gBAClE,CAAC;gBAED,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;oBAC1B,CAAC,CAAC,aAAa,GAAG,EAAE,EAAE,EAAE,KAAK,CAAC,eAAe,EAAS,CAAA;gBACxD,CAAC;qBAAM,CAAC;oBACN,IAAA,YAAG,EAAC,CAAC,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAA;gBACjC,CAAC;YACH,CAAC;SACF,CAAC,CAAA;QAEF,MAAM,IAAI,CAAC,0BAA0B,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,cAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;QAE9F,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnB,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,UAAU;iBACzC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,mBAAY,CAAC;iBAC3C,IAAI,CAAC;gBACJ,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;aACzB,CAAC,CAAA;YAEJ,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ;iBAC7B,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC;iBACrE,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,mBAAY,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;YAExF,MAAM,IAAI,CAAC,UAAU;iBAClB,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,mBAAY,CAAC;iBAC3C,IAAI,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;QACvC,CAAC;QAED,OAAO,OAAO,CAAC,EAAE,CAAA;IACnB,CAAC;IAED,KAAK,CAAC,0BAA0B,CAAC,OAAgB;QAC/C,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACxB,MAAM,IAAI,CAAC,UAAU;aAClB,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,mBAAY,CAAC;aAC3C,MAAM,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAA;QACpC,OAAO,CAAC,aAAa,GAAG,SAAgB,CAAA;IAC1C,CAAC;IAED,KAAK,CAAC,0BAA0B,CAAC,OAAuB;QACtD,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACxB,MAAM,IAAI,CAAC,UAAU;aAClB,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,0BAAmB,CAAC;aAClD,MAAM,CAAC,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAA;QAC3C,OAAO,CAAC,aAAa,GAAG,SAAgB,CAAA;IAC1C,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,KAAyB;QAC3C,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACxB,2DAA2D;QAC3D,4DAA4D;QAC5D,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE;YACrC,WAAW,CAAC,IAAI,GAAG,IAAA,kCAAe,EAAC,WAAW,CAAC,IAAc,EAAE,GAAG,EAAE,WAAW,CAAC,YAAY,CAAC,CAAA;QAC/F,CAAC,CAAC,CAAA;QACF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;YAClD,GAAG,EAAE,IAAI,CAAC,SAAS;YACnB,KAAK;YACL,UAAU,EAAE,cAAO;YACnB,eAAe,EAAE,yBAAkB;YACnC,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;gBACtB,IAAI,CAAC;oBACH,CAAC,CAAC,QAAQ,GAAG,IAAA,eAAM,EAAC,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAA;oBACxE,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;wBAC1B,CAAC,CAAC,aAAa,GAAG,EAAE,EAAE,EAAE,KAAK,CAAC,eAAe,EAAS,CAAA;oBACxD,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,aAAM,CAAC,KAAK,CAAC,uCAAuC,EAAE,qBAAS,EAAG,KAAe,CAAC,KAAK,CAAC,CAAA;gBAC1F,CAAC;YACH,CAAC;SACF,CAAC,CAAA;QAEF,MAAM,IAAI,CAAC,0BAA0B,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,cAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;QAE9F,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnB,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CACtC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CACR,IAAI,mBAAY,CAAC;gBACf,OAAO,EAAE,EAAE;gBACX,SAAS,EAAE,OAAO,CAAC,EAAE;gBACrB,QAAQ,EAAE,CAAC;aACZ,CAAC,CACL,CAAA;YACD,MAAM,IAAI,CAAC,UAAU;iBAClB,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,mBAAY,CAAC;iBAC3C,IAAI,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;QAC3C,CAAC;QACD,OAAO,OAAO,CAAC,EAAE,CAAA;IACnB,CAAC;IAED,KAAK,CAAC,wBAAwB,CAAC,KAAiD;QAC9E,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACxB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;YAChD,GAAG,EAAE,IAAI,CAAC,SAAS;YACnB,KAAK,EAAE,EAAE,GAAG,IAAA,aAAI,EAAC,KAAK,EAAE,SAAS,CAAC,EAAE;YACpC,UAAU,EAAE,yBAAkB;YAC9B,eAAe,EAAE,oCAA6B;YAC9C,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;gBAC1B,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;gBACrF,KAAK,CAAC,QAAQ,GAAG,IAAA,eAAM,EACrB,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAChE,IAAI,CACL,CAAA;gBACD,KAAK,CAAC,SAAS,GAAG,IAAI,CAAA;YACxB,CAAC;SACF,CAAC,CAAA;QACF,OAAO,KAAK,CAAC,EAAE,CAAA;IACjB,CAAC;IAED,KAAK,CAAC,wBAAwB,CAAC,KAAoC;QACjE,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACxB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAA;QAC1C,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,UAAU;aACtC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,yBAAkB,CAAC;aACjD,OAAO,CAAC;YACP,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE;YAC3F,SAAS,EAAE,CAAC,UAAU,CAAC;SACxB,CAAC,CAAA;QAEJ,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;gBAClC,GAAG,EAAE,IAAI,CAAC,SAAS;gBACnB,KAAK,EAAE,EAAE,GAAG,IAAA,aAAI,EAAC,KAAK,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,WAAW,CAAC,EAAE,EAAE;gBACxD,UAAU,EAAE,yBAAkB;gBAC9B,eAAe,EAAE,oCAA6B;gBAC9C,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;oBAC1B,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;oBACrF,KAAK,CAAC,QAAQ,GAAG,IAAA,eAAM,EACrB,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAChE,IAAI,CACL,CAAA;oBACD,KAAK,CAAC,SAAS,GAAG,IAAI,CAAA;gBACxB,CAAC;aACF,CAAC,CAAA;YACF,OAAO,WAAW,CAAC,EAAE,CAAA;QACvB,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;YAChD,GAAG,EAAE,IAAI,CAAC,SAAS;YACnB,KAAK;YACL,UAAU,EAAE,yBAAkB;YAC9B,eAAe,EAAE,oCAA6B;YAC9C,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE;gBACpB,KAAK,CAAC,QAAQ,GAAG,IAAA,eAAM,EAAC,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAA;YAC9E,CAAC;SACF,CAAC,CAAA;QACF,OAAO,KAAK,CAAC,EAAE,CAAA;IACjB,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,KAA+B;QACvD,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACxB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,UAAU;aACvC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,oBAAa,CAAC;aAC5C,OAAO,CAAC;YACP,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,oBAAoB,EAAE;YAChE,SAAS,EAAE,CAAC,UAAU,CAAC;SACxB,CAAC,CAAA;QAEJ,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;gBACxD,GAAG,EAAE,IAAI,CAAC,SAAS;gBACnB,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,YAAY,CAAC,EAAE,EAAE;gBACxC,UAAU,EAAE,oBAAa;gBACzB,eAAe,EAAE,+BAAwB;gBACzC,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE;oBACvB,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;oBAClF,EAAE,CAAC,QAAQ,GAAG,IAAA,eAAM,EAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAA;oBACzF,EAAE,CAAC,KAAK,GAAG,EAAE,EAAE,EAAE,KAAK,CAAC,oBAAoB,EAAS,CAAA;oBACpD,EAAE,CAAC,SAAS,GAAG,IAAI,CAAA;gBACrB,CAAC;aACF,CAAC,CAAA;YAEF,OAAO,aAAa,CAAC,EAAE,CAAA;QACzB,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;YACjD,GAAG,EAAE,IAAI,CAAC,SAAS;YACnB,KAAK;YACL,UAAU,EAAE,oBAAa;YACzB,eAAe,EAAE,+BAAwB;YACzC,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE;gBACjB,EAAE,CAAC,QAAQ,GAAG,IAAA,eAAM,EAAC,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAA;gBACzE,EAAE,CAAC,KAAK,GAAG,EAAE,EAAE,EAAE,KAAK,CAAC,oBAAoB,EAAS,CAAA;gBACpD,EAAE,CAAC,SAAS,GAAG,IAAI,CAAA;YACrB,CAAC;SACF,CAAC,CAAA;QACF,OAAO,MAAM,CAAC,EAAE,CAAA;IAClB,CAAC;IAED,KAAK,CAAC,6BAA6B,CAAC,SAAa;QAC/C,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACxB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,cAAO,CAAC,CAAC,OAAO,CAAC;YACnF,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE;YACxB,SAAS,EAAE,CAAC,cAAc,CAAC;SAC5B,CAAC,CAAA;QAEF,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,mBAAmB,SAAS,YAAY,CAAC,CAAA;QAC3D,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;YACjC,OAAM;QACR,CAAC;QAED,MAAM,IAAI,CAAC,UAAU;aAClB,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,cAAO,CAAC;aACtC,kBAAkB,EAAE;aACpB,QAAQ,CAAC,cAAO,EAAE,cAAc,CAAC;aACjC,EAAE,CAAC,SAAS,CAAC;aACb,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAClD,CAAC;IAED,KAAK,CAAC,uBAAuB,CAAC,SAAa,EAAE,aAAiB;QAC5D,IAAI,CAAC,iBAAiB,EAAE,CAAA;QAExB,MAAM,IAAI,CAAC,UAAU;aAClB,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,cAAO,CAAC;aACtC,kBAAkB,EAAE;aACpB,QAAQ,CAAC,cAAc,CAAC;aACxB,EAAE,CAAC,SAAS,CAAC;aACb,GAAG,CAAC,aAAa,CAAC,CAAA;IACvB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAuB;QACvC,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACxB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,YAAK,CAAC,CAAC,OAAO,CAAC;YACrF,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE;YAC3B,SAAS,EAAE,CAAC,UAAU,EAAE,cAAc,CAAC;SACxC,CAAC,CAAA;QAEF,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;gBAChD,GAAG,EAAE,IAAI,CAAC,SAAS;gBACnB,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,WAAW,CAAC,EAAE,EAAE;gBACvC,UAAU,EAAE,YAAK;gBACjB,eAAe,EAAE,uBAAgB;gBACjC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;oBAC1B,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;oBACrF,KAAK,CAAC,QAAQ,GAAG,IAAA,eAAM,EACrB,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAChE,IAAI,CACL,CAAA;gBACH,CAAC;aACF,CAAC,CAAA;YAEF,OAAO,KAAK,CAAC,EAAE,CAAA;QACjB,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;YAChD,GAAG,EAAE,IAAI,CAAC,SAAS;YACnB,KAAK;YACL,UAAU,EAAE,YAAK;YACjB,eAAe,EAAE,uBAAgB;YACjC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;gBAC1B,KAAK,CAAC,QAAQ,GAAG,IAAA,eAAM,EAAC,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAA;YAC9E,CAAC;SACF,CAAC,CAAA;QAEF,OAAO,KAAK,CAAC,EAAE,CAAA;IACjB,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,KAA4B;QACjD,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACxB,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,UAAU;aAC3C,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAU,CAAC;aACzC,OAAO,CAAC;YACP,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE;YACzD,SAAS,EAAE,CAAC,UAAU,EAAE,cAAc,CAAC;SACxC,CAAC,CAAA;QAEJ,IAAI,gBAAgB,EAAE,CAAC;YACrB,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;gBAC5D,GAAG,EAAE,IAAI,CAAC,SAAS;gBACnB,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,gBAAgB,CAAC,EAAE,EAAE;gBAC5C,UAAU,EAAE,iBAAU;gBACtB,eAAe,EAAE,4BAAqB;gBACtC,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE;oBAC/B,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;oBAC1F,UAAU,CAAC,KAAK,GAAG,EAAE,EAAE,EAAE,KAAK,CAAC,OAAO,EAAS,CAAA;oBAC/C,UAAU,CAAC,QAAQ,GAAG,IAAA,eAAM,EAC1B,CAAC,GAAG,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EACrE,IAAI,CACL,CAAA;gBACH,CAAC;aACF,CAAC,CAAA;YAEF,OAAO,iBAAiB,CAAC,EAAE,CAAA;QAC7B,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;YACrD,GAAG,EAAE,IAAI,CAAC,SAAS;YACnB,KAAK;YACL,UAAU,EAAE,iBAAU;YACtB,eAAe,EAAE,4BAAqB;YACtC,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE;gBAC/B,UAAU,CAAC,KAAK,GAAG,EAAE,EAAE,EAAE,KAAK,CAAC,OAAO,EAAS,CAAA;gBAC/C,UAAU,CAAC,QAAQ,GAAG,IAAA,eAAM,EAAC,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAA;YACnF,CAAC;SACF,CAAC,CAAA;QAEF,OAAO,UAAU,CAAC,EAAE,CAAA;IACtB,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,SAAa,EAAE,YAAgB;QAC1D,IAAI,CAAC,iBAAiB,EAAE,CAAA;QAExB,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,UAAU;aAC3C,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,cAAO,CAAC;aACtC,kBAAkB,EAAE;aACpB,QAAQ,CAAC,cAAO,EAAE,aAAa,CAAC;aAChC,EAAE,CAAC,SAAS,CAAC;aACb,QAAQ,EAAE,CAAA;QAEb,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,QAAa,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,YAAY,CAAC,EAAE,CAAC;YAC5E,MAAM,IAAI,CAAC,UAAU;iBAClB,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,cAAO,CAAC;iBACtC,kBAAkB,EAAE;iBACpB,QAAQ,CAAC,cAAO,EAAE,aAAa,CAAC;iBAChC,EAAE,CAAC,SAAS,CAAC;iBACb,GAAG,CAAC,YAAY,CAAC,CAAA;QACtB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,6BAA6B,CAAC,SAAa,EAAE,YAAgB;QACjE,IAAI,CAAC,iBAAiB,EAAE,CAAA;QAExB,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,UAAU;aAC3C,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,qBAAc,CAAC;aAC7C,kBAAkB,EAAE;aACpB,QAAQ,CAAC,qBAAc,EAAE,aAAa,CAAC;aACvC,EAAE,CAAC,SAAS,CAAC;aACb,QAAQ,EAAE,CAAA;QAEb,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,QAAa,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,YAAY,CAAC,EAAE,CAAC;YAC5E,MAAM,IAAI,CAAC,UAAU;iBAClB,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,qBAAc,CAAC;iBAC7C,kBAAkB,EAAE;iBACpB,QAAQ,CAAC,qBAAc,EAAE,aAAa,CAAC;iBACvC,EAAE,CAAC,SAAS,CAAC;iBACb,GAAG,CAAC,YAAY,CAAC,CAAA;QACtB,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,oBAAoB,CAAC,KAA6C;QACtE,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACxB,OAAO,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CAC7D,IAAI,CAAC,iCAAiC,CAAC,GAAG,EAAE,KAAK,CAAC,CACnD,CAAA;IACH,CAAC;IAEO,KAAK,CAAC,iCAAiC,CAC7C,GAAmB,EACnB,KAA6C;QAE7C,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YACrB,KAAK,CAAC,SAAS,GAAG,EAAE,CAAA;QACtB,CAAC;QAED,MAAM,iBAAiB,GAAG;YACxB,GAAG,KAAK;SACT,CAAA;QACD,OAAO,iBAAiB,CAAC,KAAK,CAAA;QAE9B,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;YACzD,GAAG,EAAE,GAAG;YACR,KAAK,EAAE,iBAAiB;YACxB,UAAU,EAAE,qBAAc;YAC1B,eAAe,EAAE,gCAAyB;YAC1C,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;gBAC5B,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;gBAC5E,OAAO,CAAC,QAAQ,GAAG,IAAA,eAAM,EAAC,CAAC,GAAG,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAA;gBACxF,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAA;gBAC3B,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;oBAClC,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAQ,CAAC,CAAA;gBAC1D,CAAC;gBACD,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;oBACxB,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAQ,CAAC,CAAA;gBACxE,CAAC;gBACD,OAAO,CAAC,OAAO,GAAG,EAAE,EAAE,EAAE,KAAK,CAAC,SAAS,EAAS,CAAA;gBAChD,OAAO,CAAC,WAAW,GAAG,EAAE,EAAE,EAAE,KAAK,CAAC,aAAa,EAAS,CAAA;gBACxD,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;oBAC1B,OAAO,CAAC,aAAa,GAAG,EAAE,EAAE,EAAE,KAAK,CAAC,eAAe,EAAS,CAAA;gBAC9D,CAAC;YACH,CAAC;SACF,CAAC,CAAA;QAEF,MAAM,IAAI,CAAC,0BAA0B,CAAC,eAAe,CACnD,GAAG,EACH,qBAAc,EACd,KAAK,EACL,cAAc,CACf,CAAA;QAED,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnB,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,GAAG,EAAE,0BAAmB,CAAC,CAAC,IAAI,CAAC;gBACxF,KAAK,EAAE,EAAE,gBAAgB,EAAE,KAAK,CAAC,EAAE,EAAE;aACtC,CAAC,CAAA;YAEF,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ;iBAC7B,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC;iBACrE,GAAG,CACF,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CACR,IAAI,0BAAmB,CAAC;gBACtB,OAAO,EAAE,EAAE;gBACX,gBAAgB,EAAE,cAAc,CAAC,EAAE;gBACnC,QAAQ,EAAE,CAAC;aACZ,CAAC,CACL,CAAA;YAEH,MAAM,IAAI,CAAC,UAAU;iBAClB,aAAa,CAAC,GAAG,EAAE,0BAAmB,CAAC;iBACvC,IAAI,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;QACvC,CAAC;QAED,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACpC,MAAM,IAAI,CAAC,oCAAoC,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,WAAW,CAAC,CAAA;QAC5F,CAAC;QACD,MAAM,kBAAkB,GAAG,IAAA,eAAM,EAAC,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;QAE5F,KAAK,MAAM,SAAS,IAAI,kBAAkB,EAAE,CAAC;YAC3C,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,GAAG,EAAE,0BAAmB,CAAC,CAAC,IAAI,CAAC;gBACnF,KAAK,EAAE;oBACL,OAAO,EAAE,EAAE,EAAE,EAAE,cAAc,CAAC,EAAE,EAAE;iBACnC;aACF,CAAC,CAAA;YACF,MAAM,oBAAoB,GAAG,SAAS,CAAC,IAAI,CACzC,CAAC,CAAC,EAAE,EAAE,CACJ,IAAA,kBAAW,EAAC,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,YAAY,KAAK,GAAG,CAAC,OAAO,CAAC,mBAAmB,CAC5F,CAAA;YAED,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC1B,MAAM,YAAY,GAAG,IAAI,0BAAmB,CAAC;oBAC3C,KAAK,EAAE,IAAA,iBAAQ,EAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBAC9C,SAAS;oBACT,YAAY,EAAE,GAAG,CAAC,OAAO,CAAC,mBAAmB;iBAC9C,CAAC,CAAA;gBACF,YAAY,CAAC,OAAO,GAAG,cAAc,CAAA;gBACrC,MAAM,IAAI,CAAC,UAAU;qBAClB,aAAa,CAAC,GAAG,EAAE,0BAAmB,CAAC;qBACvC,IAAI,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;YAC1C,CAAC;iBAAM,CAAC;gBACN,IAAI,IAAA,oBAAW,EAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC7B,KAAK,CAAC,KAAK,GAAG,oBAAoB,CAAC,KAAK,CAAA;gBAC1C,CAAC;gBACD,oBAAoB,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAA;gBACxC,MAAM,IAAI,CAAC,UAAU;qBAClB,aAAa,CAAC,GAAG,EAAE,0BAAmB,CAAC;qBACvC,IAAI,CAAC,oBAAoB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;YAClD,CAAC;QACH,CAAC;QAED,OAAO,cAAc,CAAC,EAAE,CAAA;IAC1B,CAAC;IAED,+EAA+E;IAC/E,KAAK,CAAC,oBAAoB,CAAC,KAAgC;QACzD,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACxB,OAAO,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CAC7D,IAAI,CAAC,iCAAiC,CAAC,GAAG,EAAE,KAAK,CAAC,CACnD,CAAA;IACH,CAAC;IAEO,KAAK,CAAC,iCAAiC,CAC7C,GAAmB,EACnB,KAAgC;QAEhC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YACrB,KAAK,CAAC,SAAS,GAAG,EAAE,CAAA;QACtB,CAAC;QACD,IAAI,KAAK,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;YACxB,KAAK,CAAC,KAAK,GAAG,CAAC,CAAA;QACjB,CAAC;QAED,MAAM,iBAAiB,GAAG;YACxB,GAAG,KAAK;SACT,CAAA;QACD,OAAO,iBAAiB,CAAC,KAAK,CAAA;QAE9B,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;YACzD,GAAG,EAAE,GAAG;YACR,KAAK,EAAE,iBAAiB;YACxB,UAAU,EAAE,qBAAc;YAC1B,eAAe,EAAE,gCAAyB;YAC1C,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;gBAC5B,OAAO,CAAC,QAAQ,GAAG,IAAA,eAAM,EAAC,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAA;gBACnE,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAA;gBAC3B,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;oBAClC,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAQ,CAAC,CAAA;gBAC1D,CAAC;gBACD,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;oBACxB,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAQ,CAAC,CAAA;gBACxE,CAAC;gBACD,OAAO,CAAC,OAAO,GAAG,EAAE,EAAE,EAAE,KAAK,CAAC,SAAS,EAAS,CAAA;gBAChD,OAAO,CAAC,WAAW,GAAG,EAAE,EAAE,EAAE,KAAK,CAAC,aAAa,EAAS,CAAA;gBACxD,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;oBAC1B,OAAO,CAAC,aAAa,GAAG,EAAE,EAAE,EAAE,KAAK,CAAC,eAAe,EAAS,CAAA;gBAC9D,CAAC;YACH,CAAC;SACF,CAAC,CAAA;QAEF,MAAM,IAAI,CAAC,0BAA0B,CAAC,eAAe,CACnD,GAAG,EACH,qBAAc,EACd,KAAK,EACL,cAAc,CACf,CAAA;QAED,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnB,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CACtC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CACR,IAAI,0BAAmB,CAAC;gBACtB,OAAO,EAAE,EAAE;gBACX,gBAAgB,EAAE,cAAc,CAAC,EAAE;gBACnC,QAAQ,EAAE,CAAC;aACZ,CAAC,CACL,CAAA;YACD,MAAM,IAAI,CAAC,UAAU;iBAClB,aAAa,CAAC,GAAG,EAAE,0BAAmB,CAAC;iBACvC,IAAI,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;QAC3C,CAAC;QACD,MAAM,IAAI,CAAC,oCAAoC,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC,CAAA;QAC/F,MAAM,kBAAkB,GAAG,IAAA,eAAM,EAAC,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;QAE5F,KAAK,MAAM,SAAS,IAAI,kBAAkB,EAAE,CAAC;YAC3C,MAAM,YAAY,GAAG,IAAI,0BAAmB,CAAC;gBAC3C,KAAK,EAAE,IAAA,iBAAQ,EAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC9C,SAAS;gBACT,YAAY,EAAE,GAAG,CAAC,OAAO,CAAC,mBAAmB;aAC9C,CAAC,CAAA;YACF,YAAY,CAAC,OAAO,GAAG,cAAc,CAAA;YACrC,MAAM,IAAI,CAAC,UAAU;iBAClB,aAAa,CAAC,GAAG,EAAE,0BAAmB,CAAC;iBACvC,IAAI,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;QAC1C,CAAC;QAED,OAAO,cAAc,CAAC,EAAE,CAAA;IAC1B,CAAC;IAEO,iBAAiB;QACvB,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CACb,iGAAiG,CAClG,CAAA;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,oCAAoC,CAChD,GAAmB,EACnB,gBAAoB,EACpB,iBAAyB;QAEzB,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAA;QACtF,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAC3D,GAAG,EACH,gBAAgB,EAChB,oBAAoB,CAAC,EAAE,CACxB,CAAA;QACD,MAAM,KAAK,GAAG,iBAAiB,GAAG,UAAU,CAAC,WAAW,CAAA;QACxD,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YAChB,OAAM;QACR,CAAC;QACD,MAAM,IAAI,CAAC,iBAAiB,CAAC,4BAA4B,CACvD,GAAG,EACH,gBAAgB,EAChB,oBAAoB,CAAC,EAAE,EACvB,KAAK,CACN,CAAA;IACH,CAAC;CACF,CAAA;AA7mBY,kEAA2B;sCAA3B,2BAA2B;IADvC,IAAA,mBAAU,GAAE;qCAOW,8BAAuB;QACnB,qBAAc;QACF,iCAA0B;QACnC,wBAAiB;QACd,2BAAoB;QACvB,wBAAiB;QACb,4BAAqB;QAC5B,qBAAc;GAb7B,2BAA2B,CA6mBvC"}
1
+ {"version":3,"file":"extended-fast-importer.service.js","sourceRoot":"","sources":["../../../../../packages/product-import-export-plugin/src/services/extended-fast-importer.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { CustomFieldConfig } from '@vendure/core';
2
+ import { ParsedProductWithVariants } from '../providers/import-providers/import-parser';
3
+ import { ImportRowGroup } from '../strategies/import-row-validation-strategy';
4
+ import { RelationLookupResult } from './relation-lookup-resolver';
5
+ interface RowGroupContext {
6
+ lookups: Pick<RelationLookupResult, 'fields' | 'idsByLookup'>;
7
+ customFields: {
8
+ Product: CustomFieldConfig[];
9
+ ProductVariant: CustomFieldConfig[];
10
+ };
11
+ }
12
+ /**
13
+ * The parsed products as the row validation strategy gets them: deep copies, with relation custom
14
+ * fields under their input names and lookup values swapped for ids. The parsed rows are not changed.
15
+ */
16
+ export declare function toImportRowGroups(results: ParsedProductWithVariants[], lookups: RowGroupContext['lookups'], customFields: RowGroupContext['customFields']): ImportRowGroup[];
17
+ export {};
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toImportRowGroups = toImportRowGroups;
4
+ const core_1 = require("@vendure/core");
5
+ const shared_utils_1 = require("@vendure/common/lib/shared-utils");
6
+ const lodash_1 = require("lodash");
7
+ const relation_lookup_resolver_1 = require("./relation-lookup-resolver");
8
+ /**
9
+ * The parsed products as the row validation strategy gets them: deep copies, with relation custom
10
+ * fields under their input names and lookup values swapped for ids. The parsed rows are not changed.
11
+ */
12
+ function toImportRowGroups(results, lookups, customFields) {
13
+ const context = { lookups, customFields };
14
+ return results.map(({ product, variants }) => {
15
+ const productCopy = withInputCustomFields((0, lodash_1.cloneDeep)(product), 'product', context);
16
+ return {
17
+ line: product.line ?? 0,
18
+ product: productCopy,
19
+ variants: variants.map((variant) => ({
20
+ line: variant.line ?? 0,
21
+ variant: withInputCustomFields((0, lodash_1.cloneDeep)(variant), 'variant', context),
22
+ })),
23
+ };
24
+ });
25
+ }
26
+ function withInputCustomFields(entity, owner, context) {
27
+ const translations = entity.translations.map((translation) => ({
28
+ ...translation,
29
+ customFields: toInputCustomFields(translation.customFields, owner, context),
30
+ }));
31
+ return { ...entity, translations, customFields: { ...(translations[0]?.customFields ?? {}) } };
32
+ }
33
+ function toInputCustomFields(raw, owner, { lookups, customFields }) {
34
+ const configs = owner === 'product' ? customFields.Product : customFields.ProductVariant;
35
+ const out = {};
36
+ for (const [name, value] of Object.entries(raw)) {
37
+ const config = configs.find((candidate) => candidate.name === name);
38
+ if (config?.type !== 'relation' || config.entity === core_1.Asset) {
39
+ out[name] = value;
40
+ continue;
41
+ }
42
+ const ids = relationIds(value, config.list === true, lookups.fields.get(`${owner}:${name}`), lookups.idsByLookup);
43
+ if (config.list === true) {
44
+ if (ids.length > 0) {
45
+ out[(0, shared_utils_1.getGraphQlInputName)(config)] = ids;
46
+ }
47
+ }
48
+ else if (ids[0] !== undefined) {
49
+ out[(0, shared_utils_1.getGraphQlInputName)(config)] = ids[0];
50
+ }
51
+ }
52
+ return out;
53
+ }
54
+ /** The ids a relation cell names, as strings; values a lookup could not resolve are left out. */
55
+ function relationIds(value, list, lookup, idsByLookup) {
56
+ if (value !== null && typeof value === 'object' && 'id' in value) {
57
+ return [String(value.id)];
58
+ }
59
+ const text = typeof value === 'string' ? value.trim() : '';
60
+ const values = list ? (0, relation_lookup_resolver_1.splitLookupList)(text) : text === '' ? [] : [text];
61
+ if (!lookup) {
62
+ return values;
63
+ }
64
+ return values.flatMap((item) => {
65
+ const id = idsByLookup.get((0, relation_lookup_resolver_1.relationLookupKey)(lookup, item));
66
+ return id === undefined ? [] : [String(id)];
67
+ });
68
+ }
69
+ //# sourceMappingURL=import-row-groups.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-row-groups.js","sourceRoot":"","sources":["../../../../../packages/product-import-export-plugin/src/services/import-row-groups.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,11 @@
1
+ import { OnApplicationBootstrap } from '@nestjs/common';
1
2
  import { ModuleRef } from '@nestjs/core';
2
3
  import { ConfigService, ID, Injector, LanguageCode, Product, ProductService, RequestContext, ChannelService, TransactionalConnection } from '@vendure/core';
3
4
  import { CustomExportColumn, PluginInitOptions } from '../types';
4
5
  import { CsvWriter } from 'csv-writer/src/lib/csv-writer';
5
6
  import { ExportStorageStrategy } from './export-storage/export-storage-strategy';
6
7
  export type RelationType = 'string' | 'boolean' | 'localeString' | 'text' | 'localeText' | 'int' | 'float' | 'datetime' | 'relation';
7
- export declare class ProductExportService {
8
+ export declare class ProductExportService implements OnApplicationBootstrap {
8
9
  private options;
9
10
  private exportStorageStrategy;
10
11
  private productService;
@@ -12,11 +13,16 @@ export declare class ProductExportService {
12
13
  private configService;
13
14
  private connection;
14
15
  private moduleRef;
16
+ /** `exportOptions.relationLookups`, checked against the custom fields, keyed `<owner>:<field>`. */
17
+ private relationLookups;
15
18
  constructor(options: PluginInitOptions, exportStorageStrategy: ExportStorageStrategy, productService: ProductService, channelService: ChannelService, configService: ConfigService, connection: TransactionalConnection, moduleRef: ModuleRef);
19
+ /** @internal Fails the bootstrap on a lookup the import could not read back. */
20
+ onApplicationBootstrap(): void;
16
21
  createExportFile(ctx: RequestContext, selectionIds: ID[], fileName: string, selectedCustomFields: string, exportAssetsAs: 'url' | 'json', selectedExportFields: string, pageSize?: number, onProgress?: (percent: number) => void): Promise<string>;
17
22
  /**
18
23
  * Sets each self-referencing relation custom field on the given entities to `{ id }`,
19
- * `[{ id }, …]` or `null`, the shapes {@link serializeRelationCustomFieldIds} reads.
24
+ * `[{ id }, …]` or `null`, the shapes {@link serializeRelationCustomFieldIds} reads. A field with
25
+ * a relation lookup also gets its lookup column on each related row, e.g. `{ id, sku }`.
20
26
  */
21
27
  private applySelfRelationCustomFields;
22
28
  /**
@@ -27,7 +33,7 @@ export declare class ProductExportService {
27
33
  * id, each list in ascending variant id order.
28
34
  */
29
35
  private loadVariantsForProducts;
30
- exportProduct(ctx: RequestContext, product: Product, languages: LanguageCode[], filteredCustomFieldNames: string[], exportAssetsAs: 'url' | 'json', csvWriter: CsvWriter<any>, includeStockOnHand: boolean, stockOnHandByVariantId: Map<string, number>, customColumns: CustomExportColumn[], injector: Injector): Promise<void>;
36
+ exportProduct(ctx: RequestContext, product: Product, languages: LanguageCode[], filteredCustomFieldNames: string[], exportAssetsAs: 'url' | 'json', csvWriter: CsvWriter<any>, includeStockOnHand: boolean, stockOnHandByVariantId: Map<string, number>, customColumns: CustomExportColumn[], injector: Injector, channels?: string): Promise<void>;
31
37
  private handleAssets;
32
38
  /**
33
39
  * Collects {@link ID}s from any relation custom field value (single entity, list, or raw id),
@@ -56,6 +56,9 @@ const csv_writer_1 = require("csv-writer");
56
56
  const path = __importStar(require("path"));
57
57
  const fs_1 = require("fs");
58
58
  const lodash_1 = require("lodash");
59
+ const find_text_column_1 = require("../helpers/find-text-column");
60
+ const channel_column_resolver_1 = require("./channel-column-resolver");
61
+ const export_relation_lookups_1 = require("./export-relation-lookups");
59
62
  const self_relation_custom_fields_1 = require("./self-relation-custom-fields");
60
63
  /**
61
64
  * Formats a date as a timestamp string for use in filenames.
@@ -84,6 +87,8 @@ let ProductExportService = class ProductExportService {
84
87
  configService;
85
88
  connection;
86
89
  moduleRef;
90
+ /** `exportOptions.relationLookups`, checked against the custom fields, keyed `<owner>:<field>`. */
91
+ relationLookups = new Map();
87
92
  constructor(options, exportStorageStrategy, productService, channelService, configService, connection, moduleRef) {
88
93
  this.options = options;
89
94
  this.exportStorageStrategy = exportStorageStrategy;
@@ -93,6 +98,10 @@ let ProductExportService = class ProductExportService {
93
98
  this.connection = connection;
94
99
  this.moduleRef = moduleRef;
95
100
  }
101
+ /** @internal Fails the bootstrap on a lookup the import could not read back. */
102
+ onApplicationBootstrap() {
103
+ this.relationLookups = (0, export_relation_lookups_1.resolveExportRelationLookups)(this.options.exportOptions.relationLookups, this.configService.customFields, (entity, column) => (0, find_text_column_1.findTextColumn)(this.connection.rawConnection, entity, column) !== undefined);
104
+ }
96
105
  async createExportFile(ctx, selectionIds, fileName, selectedCustomFields, exportAssetsAs, selectedExportFields,
97
106
  // Keep the page small: each page hydrates a deep relation graph (variants, facets, options,
98
107
  // assets) synchronously. A smaller page keeps that synchronous chunk short so the event loop
@@ -112,7 +121,10 @@ let ProductExportService = class ProductExportService {
112
121
  .filter((field) => allCustomFieldNames.some((f) => f.name === field))
113
122
  .map((field) => {
114
123
  const found = allCustomFieldNames.find((f) => f.name === field);
115
- return found ? `${found.name}:${found.type}` : '';
124
+ if (!found) {
125
+ return '';
126
+ }
127
+ return this.relationLookups.get(found.name)?.header ?? `${found.name}:${found.type}`;
116
128
  });
117
129
  const channelToken = channel.token;
118
130
  const tempDir = path.join(process.cwd(), 'static', 'exports-tmp', channelToken);
@@ -140,7 +152,7 @@ let ProductExportService = class ProductExportService {
140
152
  const toHeader = (field) => ({ id: field, title: field });
141
153
  const productCustomFieldNames = filteredCustomFieldNames.filter((f) => f.startsWith('product:'));
142
154
  const variantCustomFieldNames = filteredCustomFieldNames.filter((f) => f.startsWith('variant:'));
143
- headers.push({ id: 'assets', title: 'assets' }, ...languages.map((lang) => ({ id: `facets:${lang}`, title: `facets:${lang}` })), ...productCustomFieldNames.map(toHeader),
155
+ headers.push({ id: 'assets', title: 'assets' }, { id: channel_column_resolver_1.CHANNELS_COLUMN, title: channel_column_resolver_1.CHANNELS_COLUMN }, ...languages.map((lang) => ({ id: `facets:${lang}`, title: `facets:${lang}` })), ...productCustomFieldNames.map(toHeader),
144
156
  // optionGroups last among the product columns, next to the optionValues it names.
145
157
  ...languages.map((lang) => ({ id: `optionGroups:${lang}`, title: `optionGroups:${lang}` })), ...languages.map((lang) => ({ id: `optionValues:${lang}`, title: `optionValues:${lang}` })), { id: 'sku', title: 'sku' }, { id: 'price', title: 'price' }, { id: 'taxCategory', title: 'taxCategory' }, { id: 'stockOnHand', title: 'stockOnHand' }, { id: 'trackInventory', title: 'trackInventory' }, { id: 'variantAssets', title: 'variantAssets' }, ...languages.map((lang) => ({ id: `variantFacets:${lang}`, title: `variantFacets:${lang}` })), ...variantCustomFieldNames.map(toHeader), { id: 'enabled', title: 'enabled' });
146
158
  const configuredCustomColumns = this.options.exportOptions.customExportColumns ?? [];
@@ -173,6 +185,7 @@ let ProductExportService = class ProductExportService {
173
185
  append: false,
174
186
  });
175
187
  const includeStockOnHand = selectedExportFieldsSet.has('stockOnHand');
188
+ const defaultChannel = await this.channelService.getDefaultChannel(ctx);
176
189
  let currentPage = 1;
177
190
  let hasMore = true;
178
191
  let processedItems = 0;
@@ -199,6 +212,7 @@ let ProductExportService = class ProductExportService {
199
212
  'facetValues.facet',
200
213
  'optionGroups',
201
214
  'assets',
215
+ 'channels',
202
216
  ...productRelations.relations,
203
217
  ]);
204
218
  await this.applySelfRelationCustomFields(ctx, 'product', items, productSelfRelationNames);
@@ -230,7 +244,7 @@ let ProductExportService = class ProductExportService {
230
244
  // sequential CSV write — there is no benefit to running these concurrently on the shared
231
245
  // connection, and the per-product await yields to the event loop so BullMQ can renew the job lock.
232
246
  for (const product of items) {
233
- await this.exportProduct(ctx, product, languages, filteredCustomFieldNames, exportAssetsAs, csvWriter, includeStockOnHand, stockOnHandByVariantId, selectedCustomColumns, injector);
247
+ await this.exportProduct(ctx, product, languages, filteredCustomFieldNames, exportAssetsAs, csvWriter, includeStockOnHand, stockOnHandByVariantId, selectedCustomColumns, injector, channelsCell(product, ctx.channel, defaultChannel));
234
248
  }
235
249
  // Report progress after each page. Cap at 99 during the loop so the Admin UI only shows 100%
236
250
  // once the job actually completes (the job queue strategy sets it to 100 on success).
@@ -276,7 +290,8 @@ let ProductExportService = class ProductExportService {
276
290
  }
277
291
  /**
278
292
  * Sets each self-referencing relation custom field on the given entities to `{ id }`,
279
- * `[{ id }, …]` or `null`, the shapes {@link serializeRelationCustomFieldIds} reads.
293
+ * `[{ id }, …]` or `null`, the shapes {@link serializeRelationCustomFieldIds} reads. A field with
294
+ * a relation lookup also gets its lookup column on each related row, e.g. `{ id, sku }`.
280
295
  */
281
296
  async applySelfRelationCustomFields(ctx, owner, entities, fieldNames) {
282
297
  if (fieldNames.length === 0 || entities.length === 0) {
@@ -286,16 +301,31 @@ let ProductExportService = class ProductExportService {
286
301
  ? this.connection.getRepository(ctx, core_2.Product)
287
302
  : this.connection.getRepository(ctx, core_2.ProductVariant);
288
303
  const idsByEntityId = await (0, self_relation_custom_fields_1.loadSelfRelationCustomFieldIds)(repository, owner, entities.map((item) => item.id), fieldNames.map((name) => ({ name, list: this.isCustomFieldList(owner, name) })));
304
+ const toRelatedRow = new Map();
305
+ for (const name of fieldNames) {
306
+ const lookup = this.relationLookups.get(`${owner}:${name}`);
307
+ if (!lookup) {
308
+ toRelatedRow.set(name, (id) => ({ id }));
309
+ continue;
310
+ }
311
+ const relatedIds = Array.from(idsByEntityId.values()).flatMap((values) => {
312
+ const value = values[name];
313
+ return Array.isArray(value) ? value : value == null ? [] : [value];
314
+ });
315
+ const columnValues = await (0, self_relation_custom_fields_1.loadColumnValues)(repository, owner, relatedIds, lookup.column);
316
+ toRelatedRow.set(name, (id) => ({ id, [lookup.column]: columnValues.get(String(id)) }));
317
+ }
289
318
  for (const item of entities) {
290
319
  const values = idsByEntityId.get(String(item.id)) ?? {};
291
320
  const customFields = (item.customFields ?? {});
292
321
  for (const name of fieldNames) {
293
322
  const value = values[name];
323
+ const toRow = toRelatedRow.get(name) ?? ((id) => ({ id }));
294
324
  customFields[name] = Array.isArray(value)
295
- ? value.map((id) => ({ id }))
325
+ ? value.map(toRow)
296
326
  : value == null
297
327
  ? null
298
- : { id: value };
328
+ : toRow(value);
299
329
  }
300
330
  item.customFields = customFields;
301
331
  }
@@ -353,7 +383,7 @@ let ProductExportService = class ProductExportService {
353
383
  }
354
384
  return byProductId;
355
385
  }
356
- async exportProduct(ctx, product, languages, filteredCustomFieldNames, exportAssetsAs, csvWriter, includeStockOnHand, stockOnHandByVariantId, customColumns, injector) {
386
+ async exportProduct(ctx, product, languages, filteredCustomFieldNames, exportAssetsAs, csvWriter, includeStockOnHand, stockOnHandByVariantId, customColumns, injector, channels = '') {
357
387
  const records = [];
358
388
  const { assets = [], facetValues = [], optionGroups = [], variants = [], translations = [], customFields = {}, } = product;
359
389
  const nameTranslations = this.mapTranslations(translations, 'name', languages);
@@ -440,6 +470,7 @@ let ProductExportService = class ProductExportService {
440
470
  }
441
471
  const productVariantPrices = variant.productVariantPrices.filter((price) => price.channelId === ctx.channelId);
442
472
  record.assets = variantIndex === 0 ? productAssets : '';
473
+ record[channel_column_resolver_1.CHANNELS_COLUMN] = variantIndex === 0 ? channels : '';
443
474
  record.id = String(product.id);
444
475
  record.sku = variant.sku;
445
476
  record.price = productVariantPrices[0]?.price / 100; // Assuming the price is stored in cents
@@ -551,12 +582,15 @@ let ProductExportService = class ProductExportService {
551
582
  const assets = Array.isArray(fieldValue) ? fieldValue : [fieldValue];
552
583
  return this.handleAssets(assets, exportAssetsAs);
553
584
  }
554
- const ids = this.serializeRelationCustomFieldIds(fieldValue);
555
- if (ids.length === 0) {
585
+ const lookup = this.relationLookups.get(`${owner}:${fieldName}`);
586
+ const values = lookup
587
+ ? (0, export_relation_lookups_1.relationLookupValues)(fieldValue, lookup.column)
588
+ : this.serializeRelationCustomFieldIds(fieldValue);
589
+ if (values.length === 0) {
556
590
  return;
557
591
  }
558
592
  const isList = this.isCustomFieldList(owner, fieldName);
559
- return isList ? ids.join('|') : ids[0];
593
+ return isList ? values.join('|') : values[0];
560
594
  }
561
595
  if (typeof fieldValue === 'object') {
562
596
  customFields[fieldName] = JSON.stringify(fieldValue)
@@ -718,4 +752,17 @@ exports.ProductExportService = ProductExportService = __decorate([
718
752
  core_2.TransactionalConnection,
719
753
  core_1.ModuleRef])
720
754
  ], ProductExportService);
755
+ /**
756
+ * The `channels` cell of a product: the tokens of its channels other than the default one, by
757
+ * channel id. Exported from another channel it names only that channel, so a club's file never
758
+ * shows which other clubs sell the product.
759
+ */
760
+ function channelsCell(product, exportChannel, defaultChannel) {
761
+ if (!(0, core_2.idsAreEqual)(exportChannel.id, defaultChannel.id)) {
762
+ return exportChannel.token;
763
+ }
764
+ return (0, lodash_1.sortBy)((product.channels ?? []).filter((channel) => !(0, core_2.idsAreEqual)(channel.id, defaultChannel.id)), (channel) => channel.id)
765
+ .map((channel) => channel.token)
766
+ .join('|');
767
+ }
721
768
  //# sourceMappingURL=product-export.service.js.map