@mercurjs/b2c-core 1.5.0 → 1.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/.medusa/server/src/api/admin/inventory-items/[id]/location-levels/[location_id]/route.d.ts +3 -0
  2. package/.medusa/server/src/api/admin/inventory-items/[id]/location-levels/[location_id]/route.js +36 -0
  3. package/.medusa/server/src/api/admin/notifications/route.js +8 -8
  4. package/.medusa/server/src/api/admin/sellers/validators.d.ts +2 -2
  5. package/.medusa/server/src/api/admin/sellers/validators.js +9 -7
  6. package/.medusa/server/src/api/store/carts/[id]/promotions/route.js +3 -4
  7. package/.medusa/server/src/api/store/middlewares.js +11 -9
  8. package/.medusa/server/src/api/store/products/middlewares.d.ts +2 -0
  9. package/.medusa/server/src/api/store/products/middlewares.js +13 -0
  10. package/.medusa/server/src/api/store/products/search/route.d.ts +81 -0
  11. package/.medusa/server/src/api/store/products/search/route.js +170 -0
  12. package/.medusa/server/src/api/store/products/validators.d.ts +36 -0
  13. package/.medusa/server/src/api/store/products/validators.js +17 -0
  14. package/.medusa/server/src/api/store/wishlist/middlewares.d.ts +1 -1
  15. package/.medusa/server/src/api/store/wishlist/middlewares.js +47 -25
  16. package/.medusa/server/src/api/store/wishlist/{[id]/product → product}/[reference_id]/route.d.ts +3 -9
  17. package/.medusa/server/src/api/store/wishlist/product/[reference_id]/route.js +65 -0
  18. package/.medusa/server/src/api/store/wishlist/route.d.ts +789 -28
  19. package/.medusa/server/src/api/store/wishlist/route.js +817 -37
  20. package/.medusa/server/src/api/vendor/campaigns/validators.js +4 -4
  21. package/.medusa/server/src/api/vendor/inventory-items/[id]/location-levels/[location_id]/route.js +2 -5
  22. package/.medusa/server/src/api/vendor/inventory-items/[id]/location-levels/batch/route.js +2 -2
  23. package/.medusa/server/src/api/vendor/orders/validators.d.ts +4 -4
  24. package/.medusa/server/src/api/vendor/payout-account/route.js +3 -2
  25. package/.medusa/server/src/api/vendor/price-lists/[id]/prices/route.d.ts +2 -2
  26. package/.medusa/server/src/api/vendor/price-lists/[id]/prices/route.js +2 -2
  27. package/.medusa/server/src/api/vendor/price-lists/route.d.ts +1 -1
  28. package/.medusa/server/src/api/vendor/price-lists/route.js +27 -8
  29. package/.medusa/server/src/api/vendor/product-collections/middlewares.js +2 -2
  30. package/.medusa/server/src/api/vendor/product-collections/route.d.ts +18 -0
  31. package/.medusa/server/src/api/vendor/product-collections/route.js +19 -1
  32. package/.medusa/server/src/api/vendor/product-collections/validators.d.ts +404 -15
  33. package/.medusa/server/src/api/vendor/product-collections/validators.js +18 -3
  34. package/.medusa/server/src/api/vendor/product-tags/route.d.ts +4 -1
  35. package/.medusa/server/src/api/vendor/product-tags/route.js +8 -8
  36. package/.medusa/server/src/api/vendor/products/route.d.ts +8 -2
  37. package/.medusa/server/src/api/vendor/products/route.js +28 -20
  38. package/.medusa/server/src/api/vendor/products/utils.d.ts +20 -1
  39. package/.medusa/server/src/api/vendor/products/utils.js +81 -5
  40. package/.medusa/server/src/api/vendor/products/validators.d.ts +60 -0
  41. package/.medusa/server/src/api/vendor/products/validators.js +8 -2
  42. package/.medusa/server/src/api/vendor/promotions/route.d.ts +86 -2
  43. package/.medusa/server/src/api/vendor/promotions/route.js +116 -7
  44. package/.medusa/server/src/api/vendor/promotions/validators.d.ts +237 -38
  45. package/.medusa/server/src/api/vendor/promotions/validators.js +23 -5
  46. package/.medusa/server/src/api/vendor/shipping-profiles/route.d.ts +31 -2
  47. package/.medusa/server/src/api/vendor/shipping-profiles/route.js +61 -10
  48. package/.medusa/server/src/api/vendor/shipping-profiles/validators.d.ts +92 -3
  49. package/.medusa/server/src/api/vendor/shipping-profiles/validators.js +10 -2
  50. package/.medusa/server/src/api/vendor/stock-locations/validators.d.ts +10 -10
  51. package/.medusa/server/src/links/wishlist-product.js +3 -3
  52. package/.medusa/server/src/modules/seller/utils.d.ts +1 -1
  53. package/.medusa/server/src/modules/seller/utils.js +37 -10
  54. package/.medusa/server/src/shared/infra/http/utils/products.js +8 -2
  55. package/.medusa/server/src/workflows/attribute/steps/validate-attribute-value.js +7 -3
  56. package/.medusa/server/src/workflows/attribute/utils/products-updated-handler.d.ts +3 -3
  57. package/.medusa/server/src/workflows/attribute/utils/products-updated-handler.js +17 -15
  58. package/.medusa/server/src/workflows/hooks/fetch-shipping-option-pricing-context.d.ts +1 -0
  59. package/.medusa/server/src/workflows/hooks/fetch-shipping-option-pricing-context.js +97 -0
  60. package/.medusa/server/src/workflows/promotions/steps/index.d.ts +2 -0
  61. package/.medusa/server/src/workflows/promotions/steps/index.js +3 -1
  62. package/.medusa/server/src/workflows/promotions/steps/inject-seller-product-rule.d.ts +6 -0
  63. package/.medusa/server/src/workflows/promotions/steps/inject-seller-product-rule.js +40 -0
  64. package/.medusa/server/src/workflows/promotions/steps/verify-seller-product-rule-deletion.d.ts +9 -0
  65. package/.medusa/server/src/workflows/promotions/steps/verify-seller-product-rule-deletion.js +27 -0
  66. package/.medusa/server/src/workflows/promotions/steps/verify-vendor-target-promotion-rules.d.ts +5 -0
  67. package/.medusa/server/src/workflows/promotions/steps/verify-vendor-target-promotion-rules.js +27 -11
  68. package/.medusa/server/src/workflows/promotions/workflows/batch-vendor-promotion-rules.js +5 -1
  69. package/.medusa/server/src/workflows/promotions/workflows/create-vendor-promotion.js +4 -3
  70. package/.medusa/server/src/workflows/seller/steps/validate-products-to-import.d.ts +5 -0
  71. package/package.json +1 -1
  72. package/.medusa/server/src/api/store/wishlist/[id]/product/[reference_id]/route.js +0 -61
@@ -1,8 +1,27 @@
1
1
  import { MedusaContainer } from '@medusajs/framework';
2
+ import { VariantImagesType } from './validators';
3
+ export declare const VARIANT_IMAGE_METADATA_KEY = "variant_image_key";
2
4
  type OrderDirection = 'ASC' | 'DESC' | 'asc' | 'desc';
3
5
  export type OrderObject = Record<string, OrderDirection | Record<string, OrderDirection>>;
4
- export declare const filterProductsBySeller: (container: MedusaContainer, sellerId: string, skip: number, take: number, salesChannelId?: string, order?: OrderObject) => Promise<{
6
+ export declare const filterProductsBySeller: (container: MedusaContainer, sellerId: string, skip: number, take: number, salesChannelId?: string, order?: OrderObject, q?: string) => Promise<{
5
7
  productIds: any[];
6
8
  count: number;
7
9
  }>;
10
+ export declare const mergeVariantImages: (existingImages: Array<{
11
+ url: string;
12
+ }> | undefined, variantImagePayload: VariantImagesType[] | undefined) => {
13
+ url: string;
14
+ }[];
15
+ type ProductVariantWithMetadata = {
16
+ id: string;
17
+ metadata?: Record<string, unknown> | null;
18
+ };
19
+ type ProductImage = {
20
+ id?: string;
21
+ url: string;
22
+ };
23
+ export declare const assignVariantImages: (container: MedusaContainer, variantImagePayload: VariantImagesType[] | undefined, createdProduct: {
24
+ variants?: ProductVariantWithMetadata[];
25
+ images?: ProductImage[];
26
+ }) => Promise<void>;
8
27
  export {};
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.filterProductsBySeller = void 0;
3
+ exports.assignVariantImages = exports.mergeVariantImages = exports.filterProductsBySeller = exports.VARIANT_IMAGE_METADATA_KEY = void 0;
4
4
  const utils_1 = require("@medusajs/framework/utils");
5
+ const core_flows_1 = require("@medusajs/medusa/core-flows");
6
+ exports.VARIANT_IMAGE_METADATA_KEY = 'variant_image_key';
5
7
  const cleanKey = (key) => {
6
8
  return key.split('=').pop()?.replace(/^\*/, '') || key;
7
9
  };
@@ -31,7 +33,7 @@ const parseOrderForKnex = (order) => {
31
33
  }
32
34
  return orderBy;
33
35
  };
34
- const filterProductsBySeller = async (container, sellerId, skip, take, salesChannelId, order) => {
36
+ const filterProductsBySeller = async (container, sellerId, skip, take, salesChannelId, order, q) => {
35
37
  const knex = container.resolve(utils_1.ContainerRegistrationKeys.PG_CONNECTION);
36
38
  let baseQuery = knex('product')
37
39
  .distinct('product.id')
@@ -41,6 +43,12 @@ const filterProductsBySeller = async (container, sellerId, skip, take, salesChan
41
43
  'seller_seller_product_product.deleted_at': null,
42
44
  'product.deleted_at': null
43
45
  });
46
+ if (q) {
47
+ const searchTerm = `%${q}%`;
48
+ baseQuery = baseQuery.andWhere(function () {
49
+ this.whereILike('product.title', searchTerm).orWhereILike('product.id', searchTerm);
50
+ });
51
+ }
44
52
  if (salesChannelId) {
45
53
  baseQuery = baseQuery
46
54
  .innerJoin('product_sales_channel', 'product.id', 'product_sales_channel.product_id')
@@ -55,8 +63,11 @@ const filterProductsBySeller = async (container, sellerId, skip, take, salesChan
55
63
  if (order) {
56
64
  const parsedOrder = parseOrderForKnex(order);
57
65
  if (parsedOrder.length > 0) {
58
- const orderColumns = parsedOrder.map(o => o.column);
59
- const selectColumns = ['product.id', ...orderColumns.filter(col => col !== 'product.id')];
66
+ const orderColumns = parsedOrder.map((o) => o.column);
67
+ const selectColumns = [
68
+ 'product.id',
69
+ ...orderColumns.filter((col) => col !== 'product.id')
70
+ ];
60
71
  baseQuery = baseQuery.distinct(...selectColumns);
61
72
  baseQuery = baseQuery.orderBy(parsedOrder);
62
73
  }
@@ -68,4 +79,69 @@ const filterProductsBySeller = async (container, sellerId, skip, take, salesChan
68
79
  return { productIds, count: totalCount };
69
80
  };
70
81
  exports.filterProductsBySeller = filterProductsBySeller;
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3ZlbmRvci9wcm9kdWN0cy91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxxREFBc0U7QUFLdEUsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFXLEVBQVUsRUFBRTtJQUN2QyxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUM7QUFDekQsQ0FBQyxDQUFDO0FBRUYsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLFNBQWlCLEVBQWtCLEVBQUU7SUFDL0QsT0FBTyxTQUFTLENBQUMsV0FBVyxFQUFFLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUM3RCxDQUFDLENBQUM7QUFFRixNQUFNLGFBQWEsR0FBRyxDQUNwQixPQUF5RCxFQUN6RCxHQUFXLEVBQ1gsU0FBaUIsRUFDWCxFQUFFO0lBQ1IsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO0lBQzFELE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUNqRSxDQUFDLENBQUM7QUFFRixNQUFNLGlCQUFpQixHQUFHLENBQ3hCLEtBQXFDLEVBQ2EsRUFBRTtJQUNwRCxJQUFJLENBQUMsS0FBSyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ3hDLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELE1BQU0sT0FBTyxHQUFxRCxFQUFFLENBQUM7SUFFckUsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNqRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzlCLGFBQWEsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQy9DLENBQUM7YUFBTSxJQUFJLEtBQUssSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM5QyxLQUFLLE1BQU0sQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUM3RCxJQUFJLE9BQU8sV0FBVyxLQUFLLFFBQVEsRUFBRSxDQUFDO29CQUNwQyxhQUFhLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQUMsQ0FBQztnQkFDakQsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUMsQ0FBQztBQUVLLE1BQU0sc0JBQXNCLEdBQUcsS0FBSyxFQUN6QyxTQUEwQixFQUMxQixRQUFnQixFQUNoQixJQUFZLEVBQ1osSUFBWSxFQUNaLGNBQXVCLEVBQ3ZCLEtBQW1CLEVBQ25CLEVBQUU7SUFDRixNQUFNLElBQUksR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBRXhFLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7U0FDNUIsUUFBUSxDQUFDLFlBQVksQ0FBQztTQUN0QixTQUFTLENBQ1IsK0JBQStCLEVBQy9CLFlBQVksRUFDWiwwQ0FBMEMsQ0FDM0M7U0FDQSxLQUFLLENBQUM7UUFDTCx5Q0FBeUMsRUFBRSxRQUFRO1FBQ25ELDBDQUEwQyxFQUFFLElBQUk7UUFDaEQsb0JBQW9CLEVBQUUsSUFBSTtLQUMzQixDQUFDLENBQUM7SUFFTCxJQUFJLGNBQWMsRUFBRSxDQUFDO1FBQ25CLFNBQVMsR0FBRyxTQUFTO2FBQ2xCLFNBQVMsQ0FDUix1QkFBdUIsRUFDdkIsWUFBWSxFQUNaLGtDQUFrQyxDQUNuQzthQUNBLEtBQUssQ0FBQyx3Q0FBd0MsRUFBRSxjQUFjLENBQUMsQ0FBQTtJQUNwRSxDQUFDO0lBRUQsTUFBTSxVQUFVLEdBQUcsU0FBUztTQUN6QixLQUFLLEVBQUU7U0FDUCxXQUFXLEVBQUU7U0FDYixLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQTtJQUMvQixNQUFNLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxHQUFHLE1BQU0sVUFBVSxDQUFBO0lBQ3BDLE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxLQUFlLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFFaEQsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUNWLE1BQU0sV0FBVyxHQUFHLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdDLElBQUksV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUMzQixNQUFNLFlBQVksR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3BELE1BQU0sYUFBYSxHQUFHLENBQUMsWUFBWSxFQUFFLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxZQUFZLENBQUMsQ0FBQyxDQUFDO1lBRTFGLFNBQVMsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUcsYUFBYSxDQUFDLENBQUM7WUFDakQsU0FBUyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDN0MsQ0FBQztJQUNILENBQUM7SUFFRCxNQUFNLFVBQVUsR0FBRyxNQUFNLFNBQVM7U0FDL0IsTUFBTSxDQUFDLElBQUksQ0FBQztTQUNaLEtBQUssQ0FBQyxJQUFJLENBQUM7U0FDWCxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUE7SUFFdEIsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLENBQUE7QUFDMUMsQ0FBQyxDQUFBO0FBekRZLFFBQUEsc0JBQXNCLDBCQXlEbEMifQ==
82
+ const mergeVariantImages = (existingImages, variantImagePayload) => {
83
+ const existingImageUrls = new Set(existingImages?.map((img) => img.url) ?? []);
84
+ const allVariantImageUrls = new Set();
85
+ for (const vi of variantImagePayload ?? []) {
86
+ vi.image_urls?.forEach((url) => allVariantImageUrls.add(url));
87
+ if (vi.thumbnail_url) {
88
+ allVariantImageUrls.add(vi.thumbnail_url);
89
+ }
90
+ }
91
+ const newVariantImages = [...allVariantImageUrls]
92
+ .filter((url) => !existingImageUrls.has(url))
93
+ .map((url) => ({ url }));
94
+ return [...(existingImages ?? []), ...newVariantImages];
95
+ };
96
+ exports.mergeVariantImages = mergeVariantImages;
97
+ const assignVariantImages = async (container, variantImagePayload, createdProduct) => {
98
+ if (!variantImagePayload?.length || !createdProduct.variants?.length) {
99
+ return;
100
+ }
101
+ const { variants, images = [] } = createdProduct;
102
+ const variantEntries = variants
103
+ .map((variant) => {
104
+ const key = variant.metadata?.[exports.VARIANT_IMAGE_METADATA_KEY];
105
+ if (!key || typeof key !== 'string') {
106
+ return undefined;
107
+ }
108
+ return [key, variant];
109
+ })
110
+ .filter((entry) => Boolean(entry));
111
+ const variantByKey = new Map(variantEntries);
112
+ const imageUrlToId = new Map(images.map((img) => [img.url, img.id]));
113
+ const tasks = variantImagePayload.map(async ({ variant_image_key, image_urls, thumbnail_url }) => {
114
+ const variant = variantByKey.get(variant_image_key);
115
+ if (!variant) {
116
+ return;
117
+ }
118
+ const ops = [];
119
+ if (image_urls?.length) {
120
+ const uniqueImageUrls = [...new Set(image_urls)];
121
+ const imageIds = uniqueImageUrls
122
+ .map((url) => imageUrlToId.get(url))
123
+ .filter((id) => !!id);
124
+ if (imageIds.length) {
125
+ ops.push(core_flows_1.batchVariantImagesWorkflow.run({
126
+ container,
127
+ input: { variant_id: variant.id, add: imageIds }
128
+ }));
129
+ }
130
+ }
131
+ if (thumbnail_url && imageUrlToId.has(thumbnail_url)) {
132
+ ops.push(core_flows_1.updateProductVariantsWorkflow.run({
133
+ container,
134
+ input: {
135
+ selector: { id: variant.id },
136
+ update: { thumbnail: thumbnail_url }
137
+ }
138
+ }));
139
+ }
140
+ if (ops.length) {
141
+ await Promise.all(ops);
142
+ }
143
+ });
144
+ await Promise.all(tasks);
145
+ };
146
+ exports.assignVariantImages = assignVariantImages;
147
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3ZlbmRvci9wcm9kdWN0cy91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxxREFBcUU7QUFDckUsNERBR29DO0FBSXZCLFFBQUEsMEJBQTBCLEdBQUcsbUJBQW1CLENBQUE7QUFRN0QsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFXLEVBQVUsRUFBRTtJQUN2QyxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUE7QUFDeEQsQ0FBQyxDQUFBO0FBRUQsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLFNBQWlCLEVBQWtCLEVBQUU7SUFDL0QsT0FBTyxTQUFTLENBQUMsV0FBVyxFQUFFLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQTtBQUM1RCxDQUFDLENBQUE7QUFFRCxNQUFNLGFBQWEsR0FBRyxDQUNwQixPQUF5RCxFQUN6RCxHQUFXLEVBQ1gsU0FBaUIsRUFDWCxFQUFFO0lBQ1IsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFBO0lBQ3pELE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQTtBQUNoRSxDQUFDLENBQUE7QUFFRCxNQUFNLGlCQUFpQixHQUFHLENBQ3hCLEtBQXFDLEVBQ2EsRUFBRTtJQUNwRCxJQUFJLENBQUMsS0FBSyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ3hDLE9BQU8sRUFBRSxDQUFBO0lBQ1gsQ0FBQztJQUVELE1BQU0sT0FBTyxHQUFxRCxFQUFFLENBQUE7SUFFcEUsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNqRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzlCLGFBQWEsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFBO1FBQzlDLENBQUM7YUFBTSxJQUFJLEtBQUssSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM5QyxLQUFLLE1BQU0sQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUM3RCxJQUFJLE9BQU8sV0FBVyxLQUFLLFFBQVEsRUFBRSxDQUFDO29CQUNwQyxhQUFhLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQUMsQ0FBQTtnQkFDaEQsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sT0FBTyxDQUFBO0FBQ2hCLENBQUMsQ0FBQTtBQUVNLE1BQU0sc0JBQXNCLEdBQUcsS0FBSyxFQUN6QyxTQUEwQixFQUMxQixRQUFnQixFQUNoQixJQUFZLEVBQ1osSUFBWSxFQUNaLGNBQXVCLEVBQ3ZCLEtBQW1CLEVBQ25CLENBQVUsRUFDVixFQUFFO0lBQ0YsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxpQ0FBeUIsQ0FBQyxhQUFhLENBQUMsQ0FBQTtJQUV2RSxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1NBQzVCLFFBQVEsQ0FBQyxZQUFZLENBQUM7U0FDdEIsU0FBUyxDQUNSLCtCQUErQixFQUMvQixZQUFZLEVBQ1osMENBQTBDLENBQzNDO1NBQ0EsS0FBSyxDQUFDO1FBQ0wseUNBQXlDLEVBQUUsUUFBUTtRQUNuRCwwQ0FBMEMsRUFBRSxJQUFJO1FBQ2hELG9CQUFvQixFQUFFLElBQUk7S0FDM0IsQ0FBQyxDQUFBO0lBRUosSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNOLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUE7UUFDM0IsU0FBUyxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUM7WUFDN0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLEVBQUUsVUFBVSxDQUFDLENBQUMsWUFBWSxDQUN2RCxZQUFZLEVBQ1osVUFBVSxDQUNYLENBQUE7UUFDSCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxJQUFJLGNBQWMsRUFBRSxDQUFDO1FBQ25CLFNBQVMsR0FBRyxTQUFTO2FBQ2xCLFNBQVMsQ0FDUix1QkFBdUIsRUFDdkIsWUFBWSxFQUNaLGtDQUFrQyxDQUNuQzthQUNBLEtBQUssQ0FBQyx3Q0FBd0MsRUFBRSxjQUFjLENBQUMsQ0FBQTtJQUNwRSxDQUFDO0lBRUQsTUFBTSxVQUFVLEdBQUcsU0FBUztTQUN6QixLQUFLLEVBQUU7U0FDUCxXQUFXLEVBQUU7U0FDYixLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQTtJQUMvQixNQUFNLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxHQUFHLE1BQU0sVUFBVSxDQUFBO0lBQ3BDLE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxLQUFlLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFFaEQsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUNWLE1BQU0sV0FBVyxHQUFHLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQzVDLElBQUksV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUMzQixNQUFNLFlBQVksR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUE7WUFDckQsTUFBTSxhQUFhLEdBQUc7Z0JBQ3BCLFlBQVk7Z0JBQ1osR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssWUFBWSxDQUFDO2FBQ3RELENBQUE7WUFFRCxTQUFTLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxDQUFBO1lBQ2hELFNBQVMsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBQzVDLENBQUM7SUFDSCxDQUFDO0lBRUQsTUFBTSxVQUFVLEdBQUcsTUFBTSxTQUFTO1NBQy9CLE1BQU0sQ0FBQyxJQUFJLENBQUM7U0FDWixLQUFLLENBQUMsSUFBSSxDQUFDO1NBQ1gsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFBO0lBRXRCLE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxDQUFBO0FBQzFDLENBQUMsQ0FBQTtBQXZFWSxRQUFBLHNCQUFzQiwwQkF1RWxDO0FBRU0sTUFBTSxrQkFBa0IsR0FBRyxDQUNoQyxjQUFrRCxFQUNsRCxtQkFBb0QsRUFDcEQsRUFBRTtJQUNGLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxHQUFHLENBQUMsY0FBYyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFBO0lBQzlFLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQTtJQUM3QyxLQUFLLE1BQU0sRUFBRSxJQUFJLG1CQUFtQixJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQzNDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtRQUM3RCxJQUFJLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNyQixtQkFBbUIsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFBO1FBQzNDLENBQUM7SUFDSCxDQUFDO0lBRUQsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLEdBQUcsbUJBQW1CLENBQUM7U0FDOUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUM1QyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFFMUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFBO0FBQ3pELENBQUMsQ0FBQTtBQWxCWSxRQUFBLGtCQUFrQixzQkFrQjlCO0FBWU0sTUFBTSxtQkFBbUIsR0FBRyxLQUFLLEVBQ3RDLFNBQTBCLEVBQzFCLG1CQUFvRCxFQUNwRCxjQUdDLEVBQ0QsRUFBRTtJQUNGLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBQ3JFLE9BQU07SUFDUixDQUFDO0lBRUQsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLEdBQUcsRUFBRSxFQUFFLEdBQUcsY0FBYyxDQUFBO0lBRWhELE1BQU0sY0FBYyxHQUFHLFFBQVE7U0FDNUIsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7UUFDZixNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsa0NBQTBCLENBQUMsQ0FBQTtRQUMxRCxJQUFJLENBQUMsR0FBRyxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ3BDLE9BQU8sU0FBUyxDQUFBO1FBQ2xCLENBQUM7UUFDRCxPQUFPLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBVSxDQUFBO0lBQ2hDLENBQUMsQ0FBQztTQUNELE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBMEQsRUFBRSxDQUN4RSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQ2YsQ0FBQTtJQUNILE1BQU0sWUFBWSxHQUFHLElBQUksR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFBO0lBQzVDLE1BQU0sWUFBWSxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBRXBFLE1BQU0sS0FBSyxHQUFHLG1CQUFtQixDQUFDLEdBQUcsQ0FDbkMsS0FBSyxFQUFFLEVBQUUsaUJBQWlCLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUU7UUFDekQsTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO1FBQ25ELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNiLE9BQU07UUFDUixDQUFDO1FBRUQsTUFBTSxHQUFHLEdBQXVCLEVBQUUsQ0FBQTtRQUVsQyxJQUFJLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUN2QixNQUFNLGVBQWUsR0FBRyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQTtZQUNoRCxNQUFNLFFBQVEsR0FBRyxlQUFlO2lCQUM3QixHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7aUJBQ25DLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBZ0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQTtZQUVyQyxJQUFJLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDcEIsR0FBRyxDQUFDLElBQUksQ0FDTix1Q0FBMEIsQ0FBQyxHQUFHLENBQUM7b0JBQzdCLFNBQVM7b0JBQ1QsS0FBSyxFQUFFLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRTtpQkFDakQsQ0FBQyxDQUNILENBQUE7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUVELElBQUksYUFBYSxJQUFJLFlBQVksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztZQUNyRCxHQUFHLENBQUMsSUFBSSxDQUNOLDBDQUE2QixDQUFDLEdBQUcsQ0FBQztnQkFDaEMsU0FBUztnQkFDVCxLQUFLLEVBQUU7b0JBQ0wsUUFBUSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUU7b0JBQzVCLE1BQU0sRUFBRSxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUU7aUJBQ3JDO2FBQ0YsQ0FBQyxDQUNILENBQUE7UUFDSCxDQUFDO1FBRUQsSUFBSSxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDZixNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDeEIsQ0FBQztJQUNILENBQUMsQ0FDRixDQUFBO0lBRUQsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFBO0FBQzFCLENBQUMsQ0FBQTtBQXhFWSxRQUFBLG1CQUFtQix1QkF3RS9CIn0=
@@ -1225,6 +1225,38 @@ export declare const UpdateProductOption: z.ZodObject<{
1225
1225
  title?: string | undefined;
1226
1226
  metadata?: Record<string, unknown> | null | undefined;
1227
1227
  }>;
1228
+ /**
1229
+ * @schema VariantImages
1230
+ * type: object
1231
+ * required:
1232
+ * - variant_image_key
1233
+ * properties:
1234
+ * variant_image_key:
1235
+ * type: string
1236
+ * description: A client-provided key that is stored in the variant metadata (metadata.variant_image_key) and used to match images to variants.
1237
+ * image_urls:
1238
+ * type: array
1239
+ * description: The URLs of images to associate with the variant.
1240
+ * items:
1241
+ * type: string
1242
+ * thumbnail_url:
1243
+ * type: string
1244
+ * description: The URL of the image to set as the variant thumbnail.
1245
+ */
1246
+ export type VariantImagesType = z.infer<typeof VariantImages>;
1247
+ export declare const VariantImages: z.ZodObject<{
1248
+ variant_image_key: z.ZodString;
1249
+ image_urls: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1250
+ thumbnail_url: z.ZodOptional<z.ZodString>;
1251
+ }, "strip", z.ZodTypeAny, {
1252
+ variant_image_key: string;
1253
+ image_urls?: string[] | undefined;
1254
+ thumbnail_url?: string | undefined;
1255
+ }, {
1256
+ variant_image_key: string;
1257
+ image_urls?: string[] | undefined;
1258
+ thumbnail_url?: string | undefined;
1259
+ }>;
1228
1260
  /**
1229
1261
  * @schema CreateProductVariant
1230
1262
  * type: object
@@ -1713,6 +1745,11 @@ export declare const UpdateProductVariant: z.ZodObject<{
1713
1745
  * properties:
1714
1746
  * id:
1715
1747
  * type: string
1748
+ * variants_images:
1749
+ * type: array
1750
+ * description: Images to associate with specific variants. Since variants don't have IDs during creation, matching is done by variant title.
1751
+ * items:
1752
+ * $ref: "#/components/schemas/VariantImages"
1716
1753
  */
1717
1754
  export type VendorCreateProductType = z.infer<typeof CreateProduct> & AdditionalData;
1718
1755
  export declare const CreateProduct: z.ZodObject<{
@@ -1886,6 +1923,19 @@ export declare const CreateProduct: z.ZodObject<{
1886
1923
  }, {
1887
1924
  id: string;
1888
1925
  }>, "many">>;
1926
+ variants_images: z.ZodOptional<z.ZodArray<z.ZodObject<{
1927
+ variant_image_key: z.ZodString;
1928
+ image_urls: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1929
+ thumbnail_url: z.ZodOptional<z.ZodString>;
1930
+ }, "strip", z.ZodTypeAny, {
1931
+ variant_image_key: string;
1932
+ image_urls?: string[] | undefined;
1933
+ thumbnail_url?: string | undefined;
1934
+ }, {
1935
+ variant_image_key: string;
1936
+ image_urls?: string[] | undefined;
1937
+ thumbnail_url?: string | undefined;
1938
+ }>, "many">>;
1889
1939
  }, "strict", z.ZodTypeAny, {
1890
1940
  status: "draft" | "proposed";
1891
1941
  title: string;
@@ -1955,6 +2005,11 @@ export declare const CreateProduct: z.ZodObject<{
1955
2005
  sales_channels?: {
1956
2006
  id: string;
1957
2007
  }[] | undefined;
2008
+ variants_images?: {
2009
+ variant_image_key: string;
2010
+ image_urls?: string[] | undefined;
2011
+ thumbnail_url?: string | undefined;
2012
+ }[] | undefined;
1958
2013
  }, {
1959
2014
  title: string;
1960
2015
  status?: "draft" | "proposed" | undefined;
@@ -2024,6 +2079,11 @@ export declare const CreateProduct: z.ZodObject<{
2024
2079
  sales_channels?: {
2025
2080
  id: string;
2026
2081
  }[] | undefined;
2082
+ variants_images?: {
2083
+ variant_image_key: string;
2084
+ image_urls?: string[] | undefined;
2085
+ thumbnail_url?: string | undefined;
2086
+ }[] | undefined;
2027
2087
  }>;
2028
2088
  /**
2029
2089
  * @schema VendorCreateProduct
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.VendorUpdateProductStatus = exports.VendorUpdateProduct = exports.UpdateProduct = exports.VendorCreateProduct = exports.CreateProduct = exports.UpdateProductVariant = exports.CreateProductVariant = exports.UpdateProductOption = exports.CreateProductOption = exports.VendorGetProductVariantsParams = exports.VendorGetProductParams = void 0;
3
+ exports.VendorUpdateProductStatus = exports.VendorUpdateProduct = exports.UpdateProduct = exports.VendorCreateProduct = exports.CreateProduct = exports.UpdateProductVariant = exports.CreateProductVariant = exports.VariantImages = exports.UpdateProductOption = exports.CreateProductOption = exports.VendorGetProductVariantsParams = exports.VendorGetProductParams = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const validators_1 = require("@medusajs/medusa/api/utils/validators");
6
6
  const utils_1 = require("../../../shared/infra/http/utils");
@@ -116,6 +116,11 @@ const UpdateVariantPrice = zod_1.z.object({
116
116
  max_quantity: zod_1.z.number().nullish(),
117
117
  rules: zod_1.z.record(zod_1.z.string(), zod_1.z.string()).optional(),
118
118
  });
119
+ exports.VariantImages = zod_1.z.object({
120
+ variant_image_key: zod_1.z.string(),
121
+ image_urls: zod_1.z.array(zod_1.z.string()).optional(),
122
+ thumbnail_url: zod_1.z.string().optional(),
123
+ });
119
124
  exports.CreateProductVariant = zod_1.z
120
125
  .object({
121
126
  title: zod_1.z.string(),
@@ -197,6 +202,7 @@ exports.CreateProduct = zod_1.z
197
202
  material: zod_1.z.string().optional(),
198
203
  metadata: zod_1.z.record(zod_1.z.unknown()).optional(),
199
204
  sales_channels: zod_1.z.array(zod_1.z.object({ id: zod_1.z.string() })).optional(),
205
+ variants_images: zod_1.z.array(exports.VariantImages).optional(),
200
206
  })
201
207
  .strict();
202
208
  /**
@@ -259,4 +265,4 @@ exports.VendorUpdateProduct = (0, validators_1.WithAdditionalData)(exports.Updat
259
265
  exports.VendorUpdateProductStatus = zod_1.z.object({
260
266
  status: zod_1.z.enum(["draft", "proposed", "published"]),
261
267
  });
262
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcGkvdmVuZG9yL3Byb2R1Y3RzL3ZhbGlkYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQXdCO0FBR3hCLHNFQUEyRTtBQUUzRSw0REFBaUU7QUFDakUsK0VBR3dEO0FBRzNDLFFBQUEsc0JBQXNCLEdBQUcsbUNBQXNCLENBQUM7QUFLaEQsUUFBQSw4QkFBOEIsR0FBRywwQ0FBNkIsQ0FBQztBQXdCL0QsUUFBQSxtQkFBbUIsR0FBRyxPQUFDLENBQUMsTUFBTSxDQUFDO0lBQzFDLEtBQUssRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFO0lBQ2pCLE1BQU0sRUFBRSxPQUFDLENBQUMsS0FBSyxDQUFDLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUMzQixRQUFRLEVBQUUsT0FBQztTQUNSLE1BQU0sQ0FBQyxPQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDbkIsUUFBUSxFQUFFO1NBQ1YsV0FBVyxDQUFDLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFO1FBQ3pCLElBQUksSUFBSSxJQUFJLFFBQVEsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUM3QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQzNCLElBQUksTUFBTSxLQUFLLE9BQU8sSUFBSSxNQUFNLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQzlDLEdBQUcsQ0FBQyxRQUFRLENBQUM7b0JBQ1gsSUFBSSxFQUFFLE9BQUMsQ0FBQyxZQUFZLENBQUMsTUFBTTtvQkFDM0IsT0FBTyxFQUFFLDJDQUEyQztvQkFDcEQsSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFDO2lCQUNqQixDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUMsQ0FBQztDQUNMLENBQUMsQ0FBQztBQXVCVSxRQUFBLG1CQUFtQixHQUFHLE9BQUMsQ0FBQyxN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
268
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcGkvdmVuZG9yL3Byb2R1Y3RzL3ZhbGlkYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQXdCO0FBR3hCLHNFQUEyRTtBQUUzRSw0REFBaUU7QUFDakUsK0VBR3dEO0FBRzNDLFFBQUEsc0JBQXNCLEdBQUcsbUNBQXNCLENBQUM7QUFLaEQsUUFBQSw4QkFBOEIsR0FBRywwQ0FBNkIsQ0FBQztBQXdCL0QsUUFBQSxtQkFBbUIsR0FBRyxPQUFDLENBQUMsTUFBTSxDQUFDO0lBQzFDLEtBQUssRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFO0lBQ2pCLE1BQU0sRUFBRSxPQUFDLENBQUMsS0FBSyxDQUFDLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUMzQixRQUFRLEVBQUUsT0FBQztTQUNSLE1BQU0sQ0FBQyxPQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDbkIsUUFBUSxFQUFFO1NBQ1YsV0FBVyxDQUFDLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFO1FBQ3pCLElBQUksSUFBSSxJQUFJLFFBQVEsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUM3QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQzNCLElBQUksTUFBTSxLQUFLLE9BQU8sSUFBSSxNQUFNLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQzlDLEdBQUcsQ0FBQyxRQUFRLENBQUM7b0JBQ1gsSUFBSSxFQUFFLE9BQUMsQ0FBQyxZQUFZLENBQUMsTUFBTTtvQkFDM0IsT0FBTyxFQUFFLDJDQUEyQztvQkFDcEQsSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFDO2lCQUNqQixDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUMsQ0FBQztDQUNMLENBQUMsQ0FBQztBQXVCVSxRQUFBLG1CQUFtQixHQUFHLE9BQUMsQ0FBQyxN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QyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDMUIsR0FBRyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDMUIsR0FBRyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDMUIsT0FBTyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDOUIsT0FBTyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDOUIsUUFBUSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDL0IsZUFBZSxFQUFFLE9BQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUMzRCxnQkFBZ0IsRUFBRSxPQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7SUFDMUQsWUFBWSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDbkMsTUFBTSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDN0IsTUFBTSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDN0IsTUFBTSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDN0IsS0FBSyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDNUIsY0FBYyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDckMsUUFBUSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDL0IsUUFBUSxFQUFFLE9BQUMsQ0FBQyxNQUFNLENBQUMsT0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQzFDLE1BQU0s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
@@ -4,9 +4,87 @@ import { VendorCreatePromotionType } from './validators';
4
4
  * @oas [get] /vendor/promotions
5
5
  * operationId: "VendorListPromotions"
6
6
  * summary: "List Promotions"
7
- * description: "Retrieves a list of promotions for the authenticated vendor."
7
+ * description: "Retrieves a list of promotions for the authenticated vendor. Supports search, filtering, sorting, and pagination."
8
8
  * x-authenticated: true
9
9
  * parameters:
10
+ * - name: q
11
+ * in: query
12
+ * schema:
13
+ * type: string
14
+ * required: false
15
+ * description: Search term to filter promotions by searchable fields.
16
+ * - name: id
17
+ * in: query
18
+ * schema:
19
+ * oneOf:
20
+ * - type: string
21
+ * - type: array
22
+ * items:
23
+ * type: string
24
+ * required: false
25
+ * description: Filter by promotion ID(s).
26
+ * - name: code
27
+ * in: query
28
+ * schema:
29
+ * oneOf:
30
+ * - type: string
31
+ * - type: array
32
+ * items:
33
+ * type: string
34
+ * required: false
35
+ * description: Filter by promotion code(s).
36
+ * - name: campaign_id
37
+ * in: query
38
+ * schema:
39
+ * oneOf:
40
+ * - type: string
41
+ * - type: array
42
+ * items:
43
+ * type: string
44
+ * required: false
45
+ * description: Filter by campaign ID(s).
46
+ * - name: status
47
+ * in: query
48
+ * schema:
49
+ * oneOf:
50
+ * - type: string
51
+ * enum: [draft, active, inactive]
52
+ * - type: array
53
+ * items:
54
+ * type: string
55
+ * enum: [draft, active, inactive]
56
+ * required: false
57
+ * description: Filter by promotion status.
58
+ * - name: is_automatic
59
+ * in: query
60
+ * schema:
61
+ * type: boolean
62
+ * required: false
63
+ * description: Filter by whether the promotion is automatic.
64
+ * - name: type
65
+ * in: query
66
+ * schema:
67
+ * oneOf:
68
+ * - type: string
69
+ * enum: [standard, buyget]
70
+ * - type: array
71
+ * items:
72
+ * type: string
73
+ * enum: [standard, buyget]
74
+ * required: false
75
+ * description: Filter by promotion type.
76
+ * - name: created_at
77
+ * in: query
78
+ * schema:
79
+ * type: object
80
+ * required: false
81
+ * description: Filter by creation date using operator map (e.g., $gt, $lt, $gte, $lte).
82
+ * - name: updated_at
83
+ * in: query
84
+ * schema:
85
+ * type: object
86
+ * required: false
87
+ * description: Filter by update date using operator map (e.g., $gt, $lt, $gte, $lte).
10
88
  * - name: offset
11
89
  * in: query
12
90
  * schema:
@@ -19,6 +97,12 @@ import { VendorCreatePromotionType } from './validators';
19
97
  * type: number
20
98
  * required: false
21
99
  * description: The number of items to return.
100
+ * - name: order
101
+ * in: query
102
+ * schema:
103
+ * type: string
104
+ * required: false
105
+ * description: The field to sort by and in which order (e.g., "created_at" for ascending, "-created_at" for descending).
22
106
  * - name: fields
23
107
  * in: query
24
108
  * schema:
@@ -52,7 +136,7 @@ import { VendorCreatePromotionType } from './validators';
52
136
  * - api_token: []
53
137
  * - cookie_auth: []
54
138
  */
55
- export declare const GET: (req: AuthenticatedMedusaRequest, res: MedusaResponse) => Promise<void>;
139
+ export declare const GET: (req: AuthenticatedMedusaRequest, res: MedusaResponse) => Promise<MedusaResponse | undefined>;
56
140
  /**
57
141
  * @oas [post] /vendor/promotions
58
142
  * operationId: "VendorCreatePromotion"
@@ -12,9 +12,87 @@ const workflows_1 = require("../../../workflows/promotions/workflows");
12
12
  * @oas [get] /vendor/promotions
13
13
  * operationId: "VendorListPromotions"
14
14
  * summary: "List Promotions"
15
- * description: "Retrieves a list of promotions for the authenticated vendor."
15
+ * description: "Retrieves a list of promotions for the authenticated vendor. Supports search, filtering, sorting, and pagination."
16
16
  * x-authenticated: true
17
17
  * parameters:
18
+ * - name: q
19
+ * in: query
20
+ * schema:
21
+ * type: string
22
+ * required: false
23
+ * description: Search term to filter promotions by searchable fields.
24
+ * - name: id
25
+ * in: query
26
+ * schema:
27
+ * oneOf:
28
+ * - type: string
29
+ * - type: array
30
+ * items:
31
+ * type: string
32
+ * required: false
33
+ * description: Filter by promotion ID(s).
34
+ * - name: code
35
+ * in: query
36
+ * schema:
37
+ * oneOf:
38
+ * - type: string
39
+ * - type: array
40
+ * items:
41
+ * type: string
42
+ * required: false
43
+ * description: Filter by promotion code(s).
44
+ * - name: campaign_id
45
+ * in: query
46
+ * schema:
47
+ * oneOf:
48
+ * - type: string
49
+ * - type: array
50
+ * items:
51
+ * type: string
52
+ * required: false
53
+ * description: Filter by campaign ID(s).
54
+ * - name: status
55
+ * in: query
56
+ * schema:
57
+ * oneOf:
58
+ * - type: string
59
+ * enum: [draft, active, inactive]
60
+ * - type: array
61
+ * items:
62
+ * type: string
63
+ * enum: [draft, active, inactive]
64
+ * required: false
65
+ * description: Filter by promotion status.
66
+ * - name: is_automatic
67
+ * in: query
68
+ * schema:
69
+ * type: boolean
70
+ * required: false
71
+ * description: Filter by whether the promotion is automatic.
72
+ * - name: type
73
+ * in: query
74
+ * schema:
75
+ * oneOf:
76
+ * - type: string
77
+ * enum: [standard, buyget]
78
+ * - type: array
79
+ * items:
80
+ * type: string
81
+ * enum: [standard, buyget]
82
+ * required: false
83
+ * description: Filter by promotion type.
84
+ * - name: created_at
85
+ * in: query
86
+ * schema:
87
+ * type: object
88
+ * required: false
89
+ * description: Filter by creation date using operator map (e.g., $gt, $lt, $gte, $lte).
90
+ * - name: updated_at
91
+ * in: query
92
+ * schema:
93
+ * type: object
94
+ * required: false
95
+ * description: Filter by update date using operator map (e.g., $gt, $lt, $gte, $lte).
18
96
  * - name: offset
19
97
  * in: query
20
98
  * schema:
@@ -27,6 +105,12 @@ const workflows_1 = require("../../../workflows/promotions/workflows");
27
105
  * type: number
28
106
  * required: false
29
107
  * description: The number of items to return.
108
+ * - name: order
109
+ * in: query
110
+ * schema:
111
+ * type: string
112
+ * required: false
113
+ * description: The field to sort by and in which order (e.g., "created_at" for ascending, "-created_at" for descending).
30
114
  * - name: fields
31
115
  * in: query
32
116
  * schema:
@@ -62,19 +146,44 @@ const workflows_1 = require("../../../workflows/promotions/workflows");
62
146
  */
63
147
  const GET = async (req, res) => {
64
148
  const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
65
- const { data: promotions, metadata } = await query.graph({
149
+ const { seller_id, q, ...promotionFilters } = req.filterableFields;
150
+ const { data: sellerPromotions } = await query.graph({
66
151
  entity: seller_promotion_1.default.entryPoint,
67
- fields: req.queryConfig.fields.map((field) => `promotion.${field}`),
152
+ fields: ['promotion_id'],
68
153
  filters: {
69
- ...req.filterableFields,
154
+ seller_id,
70
155
  deleted_at: {
71
156
  $eq: null
72
157
  }
73
- },
158
+ }
159
+ });
160
+ const promotionIds = sellerPromotions.map((rel) => rel.promotion_id);
161
+ if (promotionIds.length === 0) {
162
+ return res.json({
163
+ promotions: [],
164
+ count: 0,
165
+ offset: req.queryConfig.pagination?.skip ?? 0,
166
+ limit: req.queryConfig.pagination?.take ?? 50
167
+ });
168
+ }
169
+ const filters = {
170
+ ...promotionFilters,
171
+ id: promotionIds,
172
+ deleted_at: {
173
+ $eq: null
174
+ }
175
+ };
176
+ if (q) {
177
+ filters.code = { $ilike: `%${q}%` };
178
+ }
179
+ const { data: promotions, metadata } = await query.graph({
180
+ entity: 'promotion',
181
+ fields: req.queryConfig.fields,
182
+ filters,
74
183
  pagination: req.queryConfig.pagination
75
184
  });
76
185
  res.json({
77
- promotions: promotions.map((relation) => relation.promotion),
186
+ promotions,
78
187
  count: metadata?.count,
79
188
  offset: metadata?.skip,
80
189
  limit: metadata?.take
@@ -125,4 +234,4 @@ const POST = async (req, res) => {
125
234
  res.status(201).json({ promotion });
126
235
  };
127
236
  exports.POST = POST;
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3ZlbmRvci9wcm9tb3Rpb25zL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLHFEQUFxRTtBQUVyRSx1RkFBNkQ7QUFDN0QsNERBQTJFO0FBQzNFLHVFQUF1RjtBQUd2Rjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbURHO0FBQ0ksTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUN0QixHQUErQixFQUMvQixHQUFtQixFQUNuQixFQUFFO0lBQ0YsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUE7SUFFaEUsTUFBTSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ3ZELE1BQU0sRUFBRSwwQkFBZSxDQUFDLFVBQVU7UUFDbEMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsYUFBYSxLQUFLLEVBQUUsQ0FBQztRQUNuRSxPQUFPLEVBQUU7WUFDUCxHQUFHLEdBQUcsQ0FBQyxnQkFBZ0I7WUFDdkIsVUFBVSxFQUFFO2dCQUNWLEdBQUcsRUFBRSxJQUFJO2FBQ1Y7U0FDRjtRQUNELFVBQVUsRUFBRSxHQUFHLENBQUMsV0FBVyxDQUFDLFVBQVU7S0FDdkMsQ0FBQyxDQUFBO0lBRUYsR0FBRyxDQUFDLElBQUksQ0FBQztRQUNQLFVBQVUsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDO1FBQzVELEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSztRQUN0QixNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUk7UUFDdEIsS0FBSyxFQUFFLFFBQVEsRUFBRSxJQUFJO0tBQ3RCLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQTtBQXhCWSxRQUFBLEdBQUcsT0F3QmY7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EwQkc7QUFDSSxNQUFNLElBQUksR0FBRyxLQUFLLEVBQ3ZCLEdBQTBELEVBQzFELEdBQW1CLEVBQ25CLEVBQUU7SUFDRixNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxpQ0FBeUIsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNoRSxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUEsZ0NBQXdCLEVBQzNDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsUUFBUSxFQUMxQixHQUFHLENBQUMsS0FBSyxDQUNWLENBQUE7SUFFRCxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSx5Q0FBNkIsQ0FBQyxHQUFHLENBQUM7UUFDekQsU0FBUyxFQUFFLEdBQUcsQ0FBQyxLQUFLO1FBQ3BCLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxHQUFHLENBQUMsYUFBYSxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFO0tBQzlELENBQUMsQ0FBQTtJQUVGLE1BQU0sRUFDSixJQUFJLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFDbEIsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDcEIsTUFBTSxFQUFFLFdBQVc7UUFDbkIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxXQUFXLENBQUMsTUFBTTtRQUM5QixPQUFPLEVBQUU7WUFDUCxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7U0FDakI7S0FDRixDQUFDLENBQUE7SUFFRixHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUE7QUFDckMsQ0FBQyxDQUFBO0FBMUJZLFFBQUEsSUFBSSxRQTBCaEIifQ==
237
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3ZlbmRvci9wcm9tb3Rpb25zL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLHFEQUFxRTtBQUVyRSx1RkFBNkQ7QUFDN0QsNERBQTJFO0FBQzNFLHVFQUF1RjtBQUd2Rjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUlHO0FBQ0ksTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUN0QixHQUErQixFQUMvQixHQUFtQixFQUNuQixFQUFFO0lBQ0YsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUE7SUFFaEUsTUFBTSxFQUFFLFNBQVMsRUFBRSxDQUFDLEVBQUUsR0FBRyxnQkFBZ0IsRUFBRSxHQUFHLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQTtJQUVsRSxNQUFNLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ25ELE1BQU0sRUFBRSwwQkFBZSxDQUFDLFVBQVU7UUFDbEMsTUFBTSxFQUFFLENBQUMsY0FBYyxDQUFDO1FBQ3hCLE9BQU8sRUFBRTtZQUNQLFNBQVM7WUFDVCxVQUFVLEVBQUU7Z0JBQ1YsR0FBRyxFQUFFLElBQUk7YUFDVjtTQUNGO0tBQ0YsQ0FBQyxDQUFBO0lBRUYsTUFBTSxZQUFZLEdBQUcsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUE7SUFFcEUsSUFBSSxZQUFZLENBQUMsTUFBTSxLQUFLLENB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