@mercurjs/core 2.2.0-canary.15 → 2.2.0-canary.17

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 (29) hide show
  1. package/.medusa/server/src/api/admin/product-attributes/[id]/route.js +2 -2
  2. package/.medusa/server/src/api/admin/product-attributes/[id]/values/[value_id]/route.js +2 -2
  3. package/.medusa/server/src/api/admin/product-attributes/route.js +2 -2
  4. package/.medusa/server/src/api/admin/product-attributes/validators.d.ts +16 -16
  5. package/.medusa/server/src/api/admin/product-categories/[id]/route.js +2 -2
  6. package/.medusa/server/src/api/admin/product-categories/route.js +2 -2
  7. package/.medusa/server/src/api/admin/products/[id]/route.js +11 -1
  8. package/.medusa/server/src/api/admin/products/middlewares.js +3 -1
  9. package/.medusa/server/src/api/admin/products/route.js +12 -1
  10. package/.medusa/server/src/api/admin/products/validators.d.ts +50 -44
  11. package/.medusa/server/src/api/admin/products/validators.js +6 -1
  12. package/.medusa/server/src/api/store/product-attributes/validators.d.ts +4 -4
  13. package/.medusa/server/src/api/utils/index.d.ts +1 -0
  14. package/.medusa/server/src/api/utils/index.js +2 -1
  15. package/.medusa/server/src/api/utils/offers.d.ts +48 -0
  16. package/.medusa/server/src/api/utils/offers.js +136 -0
  17. package/.medusa/server/src/api/vendor/orders/resolve-offer-items.d.ts +1 -0
  18. package/.medusa/server/src/api/vendor/orders/resolve-offer-items.js +10 -1
  19. package/.medusa/server/src/api/vendor/product-attributes/validators.d.ts +16 -16
  20. package/.medusa/server/src/api/vendor/product-variants/validators.d.ts +6 -6
  21. package/.medusa/server/src/api/vendor/products/[id]/route.js +2 -3
  22. package/.medusa/server/src/api/vendor/products/helpers.d.ts +0 -20
  23. package/.medusa/server/src/api/vendor/products/helpers.js +2 -76
  24. package/.medusa/server/src/api/vendor/products/middlewares.js +3 -37
  25. package/.medusa/server/src/api/vendor/products/route.js +2 -3
  26. package/.medusa/server/src/api/vendor/products/validators.d.ts +40 -40
  27. package/.medusa/server/src/api/vendor/products/validators.js +4 -4
  28. package/.medusa/server/src/api/vendor/reservations/middlewares.js +1 -18
  29. package/package.json +1 -1
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.applyOfferedProductsFilter = exports.wrapProductVariantsWithOffers = void 0;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ /**
6
+ * Field set pulled for each offer attached by
7
+ * `wrapProductVariantsWithOffers`. Carries the offer identity + seller +
8
+ * shipping profile + price ladder + inventory-item links (with per-location
9
+ * stock). `seller.*` lets the admin (platform-wide) Store column resolve;
10
+ * it is harmless for the seller-scoped vendor reads.
11
+ */
12
+ const OFFER_WRAP_FIELDS = [
13
+ "id",
14
+ "seller_id",
15
+ "variant_id",
16
+ "shipping_profile_id",
17
+ "sku",
18
+ "ean",
19
+ "upc",
20
+ "created_at",
21
+ "updated_at",
22
+ "seller.id",
23
+ "seller.name",
24
+ "seller.handle",
25
+ "shipping_profile.id",
26
+ "shipping_profile.name",
27
+ "prices.id",
28
+ "prices.amount",
29
+ "prices.currency_code",
30
+ "prices.min_quantity",
31
+ "prices.max_quantity",
32
+ "inventory_item_link.id",
33
+ "inventory_item_link.required_quantity",
34
+ "inventory_item_link.inventory_item_id",
35
+ "inventory_item_link.inventory_item.id",
36
+ "inventory_item_link.inventory_item.sku",
37
+ "inventory_item_link.inventory_item.title",
38
+ "inventory_item_link.inventory_item.location_levels.id",
39
+ "inventory_item_link.inventory_item.location_levels.location_id",
40
+ "inventory_item_link.inventory_item.location_levels.stocked_quantity",
41
+ ];
42
+ /**
43
+ * Attaches offers under each variant of the given products, in place
44
+ * (`variant.offers = [...]`). The `offer ↔ variant` link is shared across
45
+ * sellers, so a raw graph traversal would surface every seller's offers on
46
+ * a master variant — this fetches them with one bounded query over the
47
+ * page's variant ids and keys them onto the matching variants. Mirrors
48
+ * Medusa's `wrapProductsWithTaxPrices` post-query enrichment pattern.
49
+ *
50
+ * Pass `sellerId` to scope the attach to a single seller (the vendor
51
+ * Offers surface, where a competitor's offers must never leak). Omit it
52
+ * for the platform-wide admin surface, which attaches **every** seller's
53
+ * offers (each carrying `offer.seller`). Variants with no offer get
54
+ * `offers: []`.
55
+ */
56
+ const wrapProductVariantsWithOffers = async (scope, products, sellerId) => {
57
+ const variantIds = Array.from(new Set(products.flatMap((p) => (p.variants ?? []).map((v) => v.id))));
58
+ if (!variantIds.length) {
59
+ return;
60
+ }
61
+ const query = scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
62
+ const { data: offers } = await query.graph({
63
+ entity: "offer",
64
+ fields: OFFER_WRAP_FIELDS,
65
+ filters: {
66
+ variant_id: variantIds,
67
+ ...(sellerId ? { seller_id: sellerId } : {}),
68
+ },
69
+ });
70
+ const offersByVariant = new Map();
71
+ for (const offer of offers) {
72
+ const existing = offersByVariant.get(offer.variant_id);
73
+ if (existing) {
74
+ existing.push(offer);
75
+ }
76
+ else {
77
+ offersByVariant.set(offer.variant_id, [offer]);
78
+ }
79
+ }
80
+ for (const product of products) {
81
+ for (const variant of product.variants ?? []) {
82
+ variant.offers = offersByVariant.get(variant.id) ?? [];
83
+ }
84
+ }
85
+ };
86
+ exports.wrapProductVariantsWithOffers = wrapProductVariantsWithOffers;
87
+ /**
88
+ * Scopes a product list to products carrying at least one offer, when
89
+ * `?has_offer=true`. Shared by the vendor and admin Offers lists, which
90
+ * back their product-grained rows with the product endpoint:
91
+ *
92
+ * - **Vendor** — `req.seller_context.seller_id` is always set, so the scope
93
+ * is the active seller's offered products (a competitor's offered product
94
+ * never appears).
95
+ * - **Admin** — no seller context; the optional `seller_id` query param is
96
+ * the Offers **Store** filter (consumed here so it scopes the offer's
97
+ * store, not product ownership). Absent it, the scope is every offered
98
+ * product across the marketplace.
99
+ *
100
+ * Either way it resolves the offered variant ids and constrains the product
101
+ * query to products carrying one of them. The `has_offer` pseudo-filter is
102
+ * consumed and removed so it never reaches the product graph read.
103
+ */
104
+ const applyOfferedProductsFilter = async (req, _res, next) => {
105
+ req.filterableFields ??= {};
106
+ const hasOffer = req.filterableFields.has_offer;
107
+ delete req.filterableFields.has_offer;
108
+ if (hasOffer !== true) {
109
+ return next();
110
+ }
111
+ // Vendor: the active seller. Admin: the optional store filter (consumed
112
+ // here so `seller_id` scopes the offer's store, not product ownership).
113
+ const contextSellerId = req.seller_context?.seller_id;
114
+ const sellerId = contextSellerId ?? req.filterableFields.seller_id;
115
+ if (!contextSellerId) {
116
+ delete req.filterableFields.seller_id;
117
+ }
118
+ const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
119
+ const { data: offers } = await query.graph({
120
+ entity: "offer",
121
+ fields: ["variant_id"],
122
+ filters: sellerId ? { seller_id: sellerId } : {},
123
+ });
124
+ const variantIds = Array.from(new Set(offers
125
+ .map((offer) => offer.variant_id)
126
+ .filter((id) => Boolean(id))));
127
+ const existingAnd = req.filterableFields.$and ?? [];
128
+ req.filterableFields.$and = [
129
+ ...existingAnd,
130
+ // No offers → match nothing (empty list) rather than the whole catalogue.
131
+ { variants: { id: variantIds.length ? variantIds : ["__none__"] } },
132
+ ];
133
+ return next();
134
+ };
135
+ exports.applyOfferedProductsFilter = applyOfferedProductsFilter;
136
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2ZmZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwaS91dGlscy9vZmZlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBS0EscURBQXFFO0FBR3JFOzs7Ozs7R0FNRztBQUNILE1BQU0saUJBQWlCLEdBQUc7SUFDeEIsSUFBSTtJQUNKLFdBQVc7SUFDWCxZQUFZO0lBQ1oscUJBQXFCO0lBQ3JCLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLFlBQVk7SUFDWixZQUFZO0lBQ1osV0FBVztJQUNYLGFBQWE7SUFDYixlQUFlO0lBQ2YscUJBQXFCO0lBQ3JCLHVCQUF1QjtJQUN2QixXQUFXO0lBQ1gsZUFBZTtJQUNmLHNCQUFzQjtJQUN0QixxQkFBcUI7SUFDckIscUJBQXFCO0lBQ3JCLHdCQUF3QjtJQUN4Qix1Q0FBdUM7SUFDdkMsdUNBQXVDO0lBQ3ZDLHVDQUF1QztJQUN2Qyx3Q0FBd0M7SUFDeEMsMENBQTBDO0lBQzFDLHVEQUF1RDtJQUN2RCxnRUFBZ0U7SUFDaEUscUVBQXFFO0NBQ3RFLENBQUE7QUFNRDs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0ksTUFBTSw2QkFBNkIsR0FBRyxLQUFLLEVBQ2hELEtBQXNCLEVBQ3RCLFFBQTRCLEVBQzVCLFFBQWlCLEVBQ0YsRUFBRTtJQUNqQixNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUMzQixJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUN0RSxDQUFBO0lBRUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN2QixPQUFNO0lBQ1IsQ0FBQztJQUVELE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUE7SUFFNUQsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDekMsTUFBTSxFQUFFLE9BQU87UUFDZixNQUFNLEVBQUUsaUJBQWlCO1FBQ3pCLE9BQU8sRUFBRTtZQUNQLFVBQVUsRUFBRSxVQUFVO1lBQ3RCLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7U0FDN0M7S0FDRixDQUFDLENBQUE7SUFFRixNQUFNLGVBQWUsR0FBRyxJQUFJLEdBQUcsRUFBcUIsQ0FBQTtJQUNwRCxLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQW9CLEVBQUUsQ0FBQztRQUN6QyxNQUFNLFFBQVEsR0FBRyxlQUFlLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUN0RCxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ2IsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUN0QixDQUFDO2FBQU0sQ0FBQztZQUNOLGVBQWUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7UUFDaEQsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLE1BQU0sT0FBTyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQy9CLEtBQUssTUFBTSxPQUFPLElBQUksT0FBTyxDQUFDLFFBQVEsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUM3QyxPQUFPLENBQUMsTUFBTSxHQUFHLGVBQWUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtRQUN4RCxDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUMsQ0FBQTtBQXZDWSxRQUFBLDZCQUE2QixpQ0F1Q3pDO0FBTUQ7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUFDSSxNQUFNLDBCQUEwQixHQUFHLEtBQUssRUFDN0MsR0FBc0IsRUFDdEIsSUFBb0IsRUFDcEIsSUFBd0IsRUFDeEIsRUFBRTtJQUNGLEdBQUcsQ0FBQyxnQkFBZ0IsS0FBSyxFQUFFLENBQUE7SUFDM0IsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQTtJQUMvQyxPQUFPLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUE7SUFFckMsSUFBSSxRQUFRLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDdEIsT0FBTyxJQUFJLEVBQUUsQ0FBQTtJQUNmLENBQUM7SUFFRCx3RUFBd0U7SUFDeEUsd0VBQXdFO0lBQ3hFLE1BQU0sZUFBZSxHQUFHLEdBQUcsQ0FBQyxjQUFjLEVBQUUsU0FBUyxDQUFBO0lBQ3JELE1BQU0sUUFBUSxHQUNaLGVBQWUsSUFBSyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsU0FBMkMsQ0FBQTtJQUN0RixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDckIsT0FBTyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFBO0lBQ3ZDLENBQUM7SUFFRCxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxpQ0FBeUIsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUVoRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztRQUN6QyxNQUFNLEVBQUUsT0FBTztRQUNmLE1BQU0sRUFBRSxDQUFDLFlBQVksQ0FBQztRQUN0QixPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRTtLQUNqRCxDQUFDLENBQUE7SUFFRixNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUMzQixJQUFJLEdBQUcsQ0FDTCxNQUFNO1NBQ0gsR0FBRyxDQUFDLENBQUMsS0FBb0MsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQztTQUMvRCxNQUFNLENBQUMsQ0FBQyxFQUFpQixFQUFnQixFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQzVELENBQ0YsQ0FBQTtJQUVELE1BQU0sV0FBVyxHQUFJLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUE2QixJQUFJLEVBQUUsQ0FBQTtJQUM3RSxHQUFHLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxHQUFHO1FBQzFCLEdBQUcsV0FBVztRQUNkLDBFQUEwRTtRQUMxRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEVBQUUsRUFBRTtLQUNwRSxDQUFBO0lBRUQsT0FBTyxJQUFJLEVBQUUsQ0FBQTtBQUNmLENBQUMsQ0FBQTtBQTlDWSxRQUFBLDBCQUEwQiw4QkE4Q3RDIn0=
@@ -29,6 +29,7 @@ export type AddItemInput = {
29
29
  type ResolvedAddItem = Omit<AddItemInput, "offer_id"> & {
30
30
  variant_id: string;
31
31
  unit_price?: number | null;
32
+ requires_shipping?: boolean;
32
33
  metadata?: Record<string, unknown> | null;
33
34
  };
34
35
  export declare const resolveOfferItems: ({ container, sellerId, currencyCode, items, }: {
@@ -53,6 +53,15 @@ const resolveOfferItems = async ({ container, sellerId, currencyCode, items, })
53
53
  variant_id: offer.variant_id,
54
54
  quantity: item.quantity,
55
55
  unit_price: item.unit_price ?? offerPrice ?? null,
56
+ // In Mercur the shipping profile is owned by the offer (per-seller),
57
+ // not the product. Medusa's add-items workflow derives a line item's
58
+ // `requires_shipping` from `product.shipping_profile` /
59
+ // `inventory.requires_shipping`, neither of which reflects the offer —
60
+ // so offer items added via order-edit / exchange / claim flows would
61
+ // otherwise default to `requires_shipping: false` and lose the
62
+ // "Mark as Shipped" fulfillment action. Set it explicitly from the
63
+ // offer's shipping profile so it matches checkout behavior.
64
+ requires_shipping: !!offer.shipping_profile_id,
56
65
  internal_note: item.internal_note,
57
66
  allow_backorder: item.allow_backorder,
58
67
  metadata: {
@@ -63,4 +72,4 @@ const resolveOfferItems = async ({ container, sellerId, currencyCode, items, })
63
72
  });
64
73
  };
65
74
  exports.resolveOfferItems = resolveOfferItems;
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZS1vZmZlci1pdGVtcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcGkvdmVuZG9yL29yZGVycy9yZXNvbHZlLW9mZmVyLWl0ZW1zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHFEQUdrQztBQW9DM0IsTUFBTSxpQkFBaUIsR0FBRyxLQUFLLEVBQUUsRUFDdEMsU0FBUyxFQUNULFFBQVEsRUFDUixZQUFZLEVBQ1osS0FBSyxHQU1OLEVBQThCLEVBQUU7SUFDL0IsTUFBTSxRQUFRLEdBQUcsS0FBSztTQUNuQixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7U0FDdEIsTUFBTSxDQUFDLENBQUMsRUFBRSxFQUFnQixFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBRXJDLElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUMxQixPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNyQixJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNsQixNQUFNLElBQUksbUJBQVcsQ0FDbkIsbUJBQVcsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUM5QixzREFBc0QsQ0FDdkQsQ0FBQTtZQUNILENBQUM7WUFDRCxPQUFPLEVBQUUsR0FBRyxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQTtRQUMzQyxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ2hFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ3pDLE1BQU0sRUFBRSxPQUFPO1FB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
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZS1vZmZlci1pdGVtcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcGkvdmVuZG9yL29yZGVycy9yZXNvbHZlLW9mZmVyLWl0ZW1zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHFEQUdrQztBQXFDM0IsTUFBTSxpQkFBaUIsR0FBRyxLQUFLLEVBQUUsRUFDdEMsU0FBUyxFQUNULFFBQVEsRUFDUixZQUFZLEVBQ1osS0FBSyxHQU1OLEVBQThCLEVBQUU7SUFDL0IsTUFBTSxRQUFRLEdBQUcsS0FBSztTQUNuQixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7U0FDdEIsTUFBTSxDQUFDLENBQUMsRUFBRSxFQUFnQixFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBRXJDLElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUMxQixPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNyQixJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNsQixNQUFNLElBQUksbUJBQVcsQ0FDbkIsbUJBQVcsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUM5QixzREFBc0QsQ0FDdkQsQ0FBQTtZQUNILENBQUM7WUFDRCxPQUFPLEVBQUUsR0FBRyxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQTtRQUMzQyxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ2hFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ3pDLE1BQU0sRUFBRSxPQUFPO1FB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
@@ -111,10 +111,10 @@ export declare const VendorGetProductAttributesParams: z.ZodObject<{} & {
111
111
  q?: string | undefined;
112
112
  handle?: string | string[] | undefined;
113
113
  is_active?: boolean | undefined;
114
- product_id?: string | string[] | null | undefined;
114
+ is_variant_axis?: boolean | undefined;
115
115
  is_required?: boolean | undefined;
116
+ product_id?: string | string[] | null | undefined;
116
117
  is_filterable?: boolean | undefined;
117
- is_variant_axis?: boolean | undefined;
118
118
  category_id?: string | string[] | undefined;
119
119
  }, {
120
120
  id?: string | string[] | undefined;
@@ -124,10 +124,10 @@ export declare const VendorGetProductAttributesParams: z.ZodObject<{} & {
124
124
  q?: string | undefined;
125
125
  handle?: string | string[] | undefined;
126
126
  is_active?: string | boolean | undefined;
127
- product_id?: string | string[] | null | undefined;
127
+ is_variant_axis?: string | boolean | undefined;
128
128
  is_required?: string | boolean | undefined;
129
+ product_id?: string | string[] | null | undefined;
129
130
  is_filterable?: string | boolean | undefined;
130
- is_variant_axis?: string | boolean | undefined;
131
131
  category_id?: string | string[] | undefined;
132
132
  }>, "many">>>;
133
133
  $or: z.ZodOptional<z.ZodLazy<z.ZodArray<z.ZodObject<{
@@ -229,10 +229,10 @@ export declare const VendorGetProductAttributesParams: z.ZodObject<{} & {
229
229
  q?: string | undefined;
230
230
  handle?: string | string[] | undefined;
231
231
  is_active?: boolean | undefined;
232
- product_id?: string | string[] | null | undefined;
232
+ is_variant_axis?: boolean | undefined;
233
233
  is_required?: boolean | undefined;
234
+ product_id?: string | string[] | null | undefined;
234
235
  is_filterable?: boolean | undefined;
235
- is_variant_axis?: boolean | undefined;
236
236
  category_id?: string | string[] | undefined;
237
237
  }, {
238
238
  id?: string | string[] | undefined;
@@ -242,10 +242,10 @@ export declare const VendorGetProductAttributesParams: z.ZodObject<{} & {
242
242
  q?: string | undefined;
243
243
  handle?: string | string[] | undefined;
244
244
  is_active?: string | boolean | undefined;
245
- product_id?: string | string[] | null | undefined;
245
+ is_variant_axis?: string | boolean | undefined;
246
246
  is_required?: string | boolean | undefined;
247
+ product_id?: string | string[] | null | undefined;
247
248
  is_filterable?: string | boolean | undefined;
248
- is_variant_axis?: string | boolean | undefined;
249
249
  category_id?: string | string[] | undefined;
250
250
  }>, "many">>>;
251
251
  }, "strip", z.ZodTypeAny, {
@@ -276,10 +276,10 @@ declare const CreateProductAttribute: z.ZodObject<{
276
276
  handle?: string | undefined;
277
277
  description?: string | undefined;
278
278
  is_active?: boolean | undefined;
279
+ rank?: number | undefined;
280
+ is_variant_axis?: boolean | undefined;
279
281
  is_required?: boolean | undefined;
280
282
  is_filterable?: boolean | undefined;
281
- is_variant_axis?: boolean | undefined;
282
- rank?: number | undefined;
283
283
  }, {
284
284
  type: AttributeType;
285
285
  name: string;
@@ -287,10 +287,10 @@ declare const CreateProductAttribute: z.ZodObject<{
287
287
  handle?: string | undefined;
288
288
  description?: string | undefined;
289
289
  is_active?: boolean | undefined;
290
+ rank?: number | undefined;
291
+ is_variant_axis?: boolean | undefined;
290
292
  is_required?: boolean | undefined;
291
293
  is_filterable?: boolean | undefined;
292
- is_variant_axis?: boolean | undefined;
293
- rank?: number | undefined;
294
294
  }>;
295
295
  export declare const VendorCreateProductAttribute: (additionalDataValidator?: z.ZodOptional<z.ZodNullable<z.ZodObject<any, any>>>) => z.ZodObject<any, any, z.ZodTypeAny, {
296
296
  [x: string]: any;
@@ -316,10 +316,10 @@ declare const UpdateProductAttribute: z.ZodObject<{
316
316
  handle?: string | undefined;
317
317
  description?: string | undefined;
318
318
  is_active?: boolean | undefined;
319
+ rank?: number | undefined;
320
+ is_variant_axis?: boolean | undefined;
319
321
  is_required?: boolean | undefined;
320
322
  is_filterable?: boolean | undefined;
321
- is_variant_axis?: boolean | undefined;
322
- rank?: number | undefined;
323
323
  }, {
324
324
  metadata?: Record<string, unknown> | null | undefined;
325
325
  type?: AttributeType | undefined;
@@ -327,10 +327,10 @@ declare const UpdateProductAttribute: z.ZodObject<{
327
327
  handle?: string | undefined;
328
328
  description?: string | undefined;
329
329
  is_active?: boolean | undefined;
330
+ rank?: number | undefined;
331
+ is_variant_axis?: boolean | undefined;
330
332
  is_required?: boolean | undefined;
331
333
  is_filterable?: boolean | undefined;
332
- is_variant_axis?: boolean | undefined;
333
- rank?: number | undefined;
334
334
  }>;
335
335
  export declare const VendorUpdateProductAttribute: (additionalDataValidator?: z.ZodOptional<z.ZodNullable<z.ZodObject<any, any>>>) => z.ZodObject<any, any, z.ZodTypeAny, {
336
336
  [x: string]: any;
@@ -138,8 +138,8 @@ export declare const VendorGetProductVariantsParamsFields: z.ZodObject<{
138
138
  ean?: string | string[] | undefined;
139
139
  upc?: string | string[] | undefined;
140
140
  deleted_at?: any;
141
- barcode?: string | string[] | undefined;
142
141
  product_id?: string | string[] | undefined;
142
+ barcode?: string | string[] | undefined;
143
143
  manage_inventory?: boolean | undefined;
144
144
  allow_backorder?: boolean | undefined;
145
145
  }, {
@@ -151,8 +151,8 @@ export declare const VendorGetProductVariantsParamsFields: z.ZodObject<{
151
151
  ean?: string | string[] | undefined;
152
152
  upc?: string | string[] | undefined;
153
153
  deleted_at?: any;
154
- barcode?: string | string[] | undefined;
155
154
  product_id?: string | string[] | undefined;
155
+ barcode?: string | string[] | undefined;
156
156
  manage_inventory?: string | boolean | undefined;
157
157
  allow_backorder?: string | boolean | undefined;
158
158
  }>;
@@ -298,8 +298,8 @@ export declare const VendorGetProductVariantsParams: z.ZodObject<{} & {
298
298
  ean?: string | string[] | undefined;
299
299
  upc?: string | string[] | undefined;
300
300
  deleted_at?: any;
301
- barcode?: string | string[] | undefined;
302
301
  product_id?: string | string[] | undefined;
302
+ barcode?: string | string[] | undefined;
303
303
  manage_inventory?: boolean | undefined;
304
304
  allow_backorder?: boolean | undefined;
305
305
  }, {
@@ -311,8 +311,8 @@ export declare const VendorGetProductVariantsParams: z.ZodObject<{} & {
311
311
  ean?: string | string[] | undefined;
312
312
  upc?: string | string[] | undefined;
313
313
  deleted_at?: any;
314
- barcode?: string | string[] | undefined;
315
314
  product_id?: string | string[] | undefined;
315
+ barcode?: string | string[] | undefined;
316
316
  manage_inventory?: string | boolean | undefined;
317
317
  allow_backorder?: string | boolean | undefined;
318
318
  }>, "many">>>;
@@ -455,8 +455,8 @@ export declare const VendorGetProductVariantsParams: z.ZodObject<{} & {
455
455
  ean?: string | string[] | undefined;
456
456
  upc?: string | string[] | undefined;
457
457
  deleted_at?: any;
458
- barcode?: string | string[] | undefined;
459
458
  product_id?: string | string[] | undefined;
459
+ barcode?: string | string[] | undefined;
460
460
  manage_inventory?: boolean | undefined;
461
461
  allow_backorder?: boolean | undefined;
462
462
  }, {
@@ -468,8 +468,8 @@ export declare const VendorGetProductVariantsParams: z.ZodObject<{} & {
468
468
  ean?: string | string[] | undefined;
469
469
  upc?: string | string[] | undefined;
470
470
  deleted_at?: any;
471
- barcode?: string | string[] | undefined;
472
471
  product_id?: string | string[] | undefined;
472
+ barcode?: string | string[] | undefined;
473
473
  manage_inventory?: string | boolean | undefined;
474
474
  allow_backorder?: string | boolean | undefined;
475
475
  }>, "many">>>;
@@ -5,7 +5,6 @@ const utils_1 = require("@medusajs/framework/utils");
5
5
  const product_edit_delete_product_1 = require("../../../../workflows/product-edit/workflows/product-edit-delete-product");
6
6
  const product_edit_update_fields_1 = require("../../../../workflows/product-edit/workflows/product-edit-update-fields");
7
7
  const utils_2 = require("../../../utils");
8
- const helpers_1 = require("../helpers");
9
8
  const GET = async (req, res) => {
10
9
  const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
11
10
  // Strip-then-wrap: the product-shaped offer detail requests
@@ -26,7 +25,7 @@ const GET = async (req, res) => {
26
25
  }
27
26
  await (0, utils_2.enrichProductAttributes)(req.scope, [product]);
28
27
  if (withOffers) {
29
- await (0, helpers_1.wrapProductVariantsWithOffers)(req.scope, req.seller_context.seller_id, [product]);
28
+ await (0, utils_2.wrapProductVariantsWithOffers)(req.scope, [product], req.seller_context.seller_id);
30
29
  }
31
30
  res.json({ product });
32
31
  };
@@ -81,4 +80,4 @@ const DELETE = async (req, res) => {
81
80
  res.status(202).json({ product_change: product_change ?? result });
82
81
  };
83
82
  exports.DELETE = DELETE;
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3ZlbmRvci9wcm9kdWN0cy9baWRdL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUlBLHFEQUdrQztBQUlsQywwSEFBMkg7QUFDM0gsd0hBQXlIO0FBQ3pILDBDQUF3RDtBQUN4RCx3Q0FBMEQ7QUFHbkQsTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUN0QixHQUErQixFQUMvQixHQUFvRCxFQUNwRCxFQUFFO0lBQ0YsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUE7SUFFaEUsNERBQTREO0lBQzVELHNFQUFzRTtJQUN0RSxzREFBc0Q7SUFDdEQsb0NBQW9DO0lBQ3BDLE1BQU0sVUFBVSxHQUFHLEdBQUcsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQ3ZELEtBQUssQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsQ0FDbEMsQ0FBQTtJQUNELElBQUksVUFBVSxFQUFFLENBQUM7UUFDZixHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQ3BELENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsQ0FDOUMsQ0FBQTtJQUNILENBQUM7SUFFRCxNQUFNLEVBQ0osSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQ2hCLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ3BCLE1BQU0sRUFBRSxTQUFTO1FBQ2pCLE1BQU0sRUFBRSxHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU07UUFDOUIsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFO0tBQy9CLENBQUMsQ0FBQTtJQUVGLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNiLE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQzNCLG1CQUFtQixHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsZ0JBQWdCLENBQ2pELENBQUE7SUFDSCxDQUFDO0lBRUQsTUFBTSxJQUFBLCtCQUF1QixFQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFBO0lBRW5ELElBQUksVUFBVSxFQUFFLENBQUM7UUFDZixNQUFNLElBQUEsdUNBQTZCLEVBQ2pDLEdBQUcsQ0FBQyxLQUFLLEVBQ1QsR0FBRyxDQUFDLGNBQWUsQ0FBQyxTQUFTLEVBQzdCLENBQUMsT0FBTyxDQUF3RCxDQUNqRSxDQUFBO0lBQ0gsQ0FBQztJQUVELEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFBO0FBQ3ZCLENBQUMsQ0FBQTtBQTdDWSxRQUFBLEdBQUcsT0E2Q2Y7QUFFRDs7Ozs7Ozs7R0FRRztBQUNJLE1BQU0sSUFBSSxHQUFHLEtBQUssRUFDdkIsR0FBeUUsRUFDekUsR0FBeUQsRUFDekQsRUFBRTtJQUNGLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ2hFLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxjQUFlLENBQUMsU0FBUyxDQUFBO0lBRTlDLE1BQU0sRUFBRSxlQUFlLEVBQUUsR0FBRyxFQUFFLEdBQUcsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLGFBQWEsQ0FBQTtJQUU3RCxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxJQUFBLDREQUErQixFQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFDdEUsS0FBSyxFQUFFO1lBQ0wsVUFBVSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUN6QixVQUFVLEVBQUUsUUFBUTtZQUNwQixNQUFNLEVBQUUsTUFBaUM7U0FDMUM7S0FDRixDQUFDLENBQUE7SUFFRixNQUFNLEVBQ0osSUFBSSxFQUFFLENBQUMsY0FBYyxDQUFDLEdBQ3ZCLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ3BCLE1BQU0sRUFBRSxnQkFBZ0I7UUFDeEIsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLFdBQVcsQ0FBQztRQUMxQixPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRTtLQUMzQixDQUFDLENBQUE7SUFFRixHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLGNBQWMsRUFBRSxjQUFjLElBQUksTUFBTSxFQUFFLENBQUMsQ0FBQTtBQUNwRSxDQUFDLENBQUE7QUExQlksUUFBQSxJQUFJLFFBMEJoQjtBQUVEOzs7O0dBSUc7QUFDSSxNQUFNLE1BQU0sR0FBRyxLQUFLLEVBQ3pCLEdBQStCLEVBQy9CLEdBQXlELEVBQ3pELEVBQUU7SUFDRixNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxpQ0FBeUIsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNoRSxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsY0FBZSxDQUFDLFNBQVMsQ0FBQTtJQUM5QyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxJQUFBLDhEQUFnQyxFQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFDdkUsS0FBSyxFQUFFO1lBQ0wsVUFBVSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUN6QixVQUFVLEVBQUUsUUFBUTtTQUNyQjtLQUNGLENBQUMsQ0FBQTtJQUVGLE1BQU0sRUFDSixJQUFJLEVBQUUsQ0FBQyxjQUFjLENBQUMsR0FDdkIsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDcEIsTUFBTSxFQUFFLGdCQUFnQjtRQUN4QixNQUFNLEVBQUUsQ0FBQyxHQUFHLEVBQUUsV0FBVyxDQUFDO1FBQzFCLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFO0tBQzNCLENBQUMsQ0FBQTtJQUVGLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsY0FBYyxFQUFFLGNBQWMsSUFBSSxNQUFNLEVBQUUsQ0FBQyxDQUFBO0FBQ3BFLENBQUMsQ0FBQTtBQXRCWSxRQUFBLE1BQU0sVUFzQmxCIn0=
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3ZlbmRvci9wcm9kdWN0cy9baWRdL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUlBLHFEQUdrQztBQUlsQywwSEFBMkg7QUFDM0gsd0hBQXlIO0FBQ3pILDBDQUd1QjtBQUdoQixNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQ3RCLEdBQStCLEVBQy9CLEdBQW9ELEVBQ3BELEVBQUU7SUFDRixNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxpQ0FBeUIsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUVoRSw0REFBNEQ7SUFDNUQsc0VBQXNFO0lBQ3RFLHNEQUFzRDtJQUN0RCxvQ0FBb0M7SUFDcEMsTUFBTSxVQUFVLEdBQUcsR0FBRyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FDdkQsS0FBSyxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUNsQyxDQUFBO0lBQ0QsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNmLEdBQUcsQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FDcEQsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUM5QyxDQUFBO0lBQ0gsQ0FBQztJQUVELE1BQU0sRUFDSixJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FDaEIsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDcEIsTUFBTSxFQUFFLFNBQVM7UUFDakIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxXQUFXLENBQUMsTUFBTTtRQUM5QixPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUU7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
@@ -1,23 +1,4 @@
1
1
  import type { MedusaContainer } from "@medusajs/framework/types";
2
- type WrappableVariant = {
3
- id: string;
4
- offers?: unknown[];
5
- };
6
- type WrappableProduct = {
7
- variants?: WrappableVariant[] | null;
8
- };
9
- /**
10
- * Attaches the active seller's offers under each variant of the given
11
- * products, in place (`variant.offers = [...]`). The Offer ↔ Variant
12
- * link is shared across sellers, so a raw graph traversal would leak
13
- * every seller's offers on a master variant — this wrap fetches only
14
- * `seller_id`'s offers (one bounded query over the page's variant ids)
15
- * and keys them onto the matching variants. Variants the seller has no
16
- * offer on get `offers: []`. Mirrors Medusa's
17
- * `wrapProductsWithTaxPrices` / `wrapVariantsWithInventoryQuantity…`
18
- * post-query enrichment pattern.
19
- */
20
- export declare const wrapProductVariantsWithOffers: (scope: MedusaContainer, sellerId: string, products: WrappableProduct[]) => Promise<void>;
21
2
  /**
22
3
  * Throws `NOT_FOUND` (rather than `NOT_ALLOWED`) when the seller does
23
4
  * not own the product. The product is technically queryable for them
@@ -25,4 +6,3 @@ export declare const wrapProductVariantsWithOffers: (scope: MedusaContainer, sel
25
6
  * shape avoids leaking the difference.
26
7
  */
27
8
  export declare const ensureSellerOwnsProduct: (scope: MedusaContainer, sellerId: string, productId: string) => Promise<void>;
28
- export {};
@@ -1,81 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ensureSellerOwnsProduct = exports.wrapProductVariantsWithOffers = void 0;
3
+ exports.ensureSellerOwnsProduct = void 0;
4
4
  const utils_1 = require("@medusajs/framework/utils");
5
- /**
6
- * Field set pulled for each offer attached by
7
- * `wrapProductVariantsWithOffers`. Mirrors the offer-detail shape the
8
- * vendor Offers surface renders (identity + shipping profile + price
9
- * ladder + inventory-item links), scoped to one seller.
10
- */
11
- const OFFER_WRAP_FIELDS = [
12
- "id",
13
- "seller_id",
14
- "variant_id",
15
- "shipping_profile_id",
16
- "sku",
17
- "ean",
18
- "upc",
19
- "created_at",
20
- "updated_at",
21
- "shipping_profile.id",
22
- "shipping_profile.name",
23
- "prices.id",
24
- "prices.amount",
25
- "prices.currency_code",
26
- "prices.min_quantity",
27
- "prices.max_quantity",
28
- // Offer ↔ inventory-item link (same alias the offer detail uses), with
29
- // per-location stock levels so the bulk Edit Stock Levels grid can seed.
30
- "inventory_item_link.id",
31
- "inventory_item_link.required_quantity",
32
- "inventory_item_link.inventory_item_id",
33
- "inventory_item_link.inventory_item.id",
34
- "inventory_item_link.inventory_item.sku",
35
- "inventory_item_link.inventory_item.title",
36
- "inventory_item_link.inventory_item.location_levels.id",
37
- "inventory_item_link.inventory_item.location_levels.location_id",
38
- "inventory_item_link.inventory_item.location_levels.stocked_quantity",
39
- ];
40
- /**
41
- * Attaches the active seller's offers under each variant of the given
42
- * products, in place (`variant.offers = [...]`). The Offer ↔ Variant
43
- * link is shared across sellers, so a raw graph traversal would leak
44
- * every seller's offers on a master variant — this wrap fetches only
45
- * `seller_id`'s offers (one bounded query over the page's variant ids)
46
- * and keys them onto the matching variants. Variants the seller has no
47
- * offer on get `offers: []`. Mirrors Medusa's
48
- * `wrapProductsWithTaxPrices` / `wrapVariantsWithInventoryQuantity…`
49
- * post-query enrichment pattern.
50
- */
51
- const wrapProductVariantsWithOffers = async (scope, sellerId, products) => {
52
- const variantIds = Array.from(new Set(products.flatMap((p) => (p.variants ?? []).map((v) => v.id))));
53
- if (!variantIds.length) {
54
- return;
55
- }
56
- const query = scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
57
- const { data: offers } = await query.graph({
58
- entity: "offer",
59
- fields: OFFER_WRAP_FIELDS,
60
- filters: { seller_id: sellerId, variant_id: variantIds },
61
- });
62
- const offersByVariant = new Map();
63
- for (const offer of offers) {
64
- const existing = offersByVariant.get(offer.variant_id);
65
- if (existing) {
66
- existing.push(offer);
67
- }
68
- else {
69
- offersByVariant.set(offer.variant_id, [offer]);
70
- }
71
- }
72
- for (const product of products) {
73
- for (const variant of product.variants ?? []) {
74
- variant.offers = offersByVariant.get(variant.id) ?? [];
75
- }
76
- }
77
- };
78
- exports.wrapProductVariantsWithOffers = wrapProductVariantsWithOffers;
79
5
  /**
80
6
  * Throws `NOT_FOUND` (rather than `NOT_ALLOWED`) when the seller does
81
7
  * not own the product. The product is technically queryable for them
@@ -97,4 +23,4 @@ const ensureSellerOwnsProduct = async (scope, sellerId, productId) => {
97
23
  }
98
24
  };
99
25
  exports.ensureSellerOwnsProduct = ensureSellerOwnsProduct;
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcGkvdmVuZG9yL3Byb2R1Y3RzL2hlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscURBR2tDO0FBR2xDOzs7OztHQUtHO0FBQ0gsTUFBTSxpQkFBaUIsR0FBRztJQUN4QixJQUFJO0lBQ0osV0FBVztJQUNYLFlBQVk7SUFDWixxQkFBcUI7SUFDckIsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsWUFBWTtJQUNaLFlBQVk7SUFDWixxQkFBcUI7SUFDckIsdUJBQXVCO0lBQ3ZCLFdBQVc7SUFDWCxlQUFlO0lBQ2Ysc0JBQXNCO0lBQ3RCLHFCQUFxQjtJQUNyQixxQkFBcUI7SUFDckIsdUVBQXVFO0lBQ3ZFLHlFQUF5RTtJQUN6RSx3QkFBd0I7SUFDeEIsdUNBQXVDO0lBQ3ZDLHVDQUF1QztJQUN2Qyx1Q0FBdUM7SUFDdkMsd0NBQXdDO0lBQ3hDLDBDQUEwQztJQUMxQyx1REFBdUQ7SUFDdkQsZ0VBQWdFO0lBQ2hFLHFFQUFxRTtDQUN0RSxDQUFBO0FBTUQ7Ozs7Ozs7Ozs7R0FVRztBQUNJLE1BQU0sNkJBQTZCLEdBQUcsS0FBSyxFQUNoRCxLQUFzQixFQUN0QixRQUFnQixFQUNoQixRQUE0QixFQUNiLEVBQUU7SUFDakIsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FDM0IsSUFBSSxHQUFHLENBQ0wsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQzdELENBQ0YsQ0FBQTtJQUVELElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDdkIsT0FBTTtJQUNSLENBQUM7SUFFRCxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFBO0lBRTVELE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ3pDLE1BQU0sRUFBRSxPQUFPO1FBQ2YsTUFBTSxFQUFFLGlCQUFpQjtRQUN6QixPQUFPLEVBQUUsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUU7S0FDekQsQ0FBQyxDQUFBO0lBRUYsTUFBTSxlQUFlLEdBQUcsSUFBSSxHQUFHLEVBQXFCLENBQUE7SUFDcEQsS0FBSyxNQUFNLEtBQUssSUFBSSxNQUFvQixFQUFFLENBQUM7UUFDekMsTUFBTSxRQUFRLEdBQUcsZUFBZSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUE7UUFDdEQsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNiLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDdEIsQ0FBQzthQUFNLENBQUM7WUFDTixlQUFlLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO1FBQ2hELENBQUM7SUFDSCxDQUFDO0lBRUQsS0FBSyxNQUFNLE9BQU8sSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUMvQixLQUFLLE1BQU0sT0FBTyxJQUFJLE9BQU8sQ0FBQyxRQUFRLElBQUksRUFBRSxFQUFFLENBQUM7WUFDN0MsT0FBTyxDQUFDLE1BQU0sR0FBRyxlQUFlLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUE7UUFDeEQsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDLENBQUE7QUF0Q1ksUUFBQSw2QkFBNkIsaUNBc0N6QztBQUVEOzs7OztHQUtHO0FBQ0ksTUFBTSx1QkFBdUIsR0FBRyxLQUFLLEVBQzFDLEtBQXNCLEVBQ3RCLFFBQWdCLEVBQ2hCLFNBQWlCLEVBQ0YsRUFBRTtJQUNqQixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFBO0lBRTVELE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDakMsTUFBTSxFQUFFLGdCQUFnQjtRQUN4QixNQUFNLEVBQUUsQ0FBQyxZQUFZLENBQUM7UUFDdEIsT0FBTyxFQUFFO1lBQ1AsU0FBUyxFQUFFLFFBQVE7WUFDbkIsVUFBVSxFQUFFLFNBQVM7U0FDdEI7S0FDRixDQUFDLENBQUE7SUFFRixJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBQ2xCLE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQzNCLG1CQUFtQixTQUFTLGdCQUFnQixDQUM3QyxDQUFBO0lBQ0gsQ0FBQztBQUNILENBQUMsQ0FBQTtBQXRCWSxRQUFBLHVCQUF1QiwyQkFzQm5DIn0=
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcGkvdmVuZG9yL3Byb2R1Y3RzL2hlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscURBR2tDO0FBR2xDOzs7OztHQUtHO0FBQ0ksTUFBTSx1QkFBdUIsR0FBRyxLQUFLLEVBQzFDLEtBQXNCLEVBQ3RCLFFBQWdCLEVBQ2hCLFNBQWlCLEVBQ0YsRUFBRTtJQUNqQixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFBO0lBRTVELE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDakMsTUFBTSxFQUFFLGdCQUFnQjtRQUN4QixNQUFNLEVBQUUsQ0FBQyxZQUFZLENBQUM7UUFDdEIsT0FBTyxFQUFFO1lBQ1AsU0FBUyxFQUFFLFFBQVE7WUFDbkIsVUFBVSxFQUFFLFNBQVM7U0FDdEI7S0FDRixDQUFDLENBQUE7SUFFRixJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBQ2xCLE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQzNCLG1CQUFtQixTQUFTLGdCQUFnQixDQUM3QyxDQUFBO0lBQ0gsQ0FBQztBQUNILENBQUMsQ0FBQTtBQXRCWSxRQUFBLHVCQUF1QiwyQkFzQm5DIn0=
@@ -4,6 +4,7 @@ exports.vendorProductsMiddlewares = void 0;
4
4
  const framework_1 = require("@medusajs/framework");
5
5
  const utils_1 = require("@medusajs/framework/utils");
6
6
  const types_1 = require("@mercurjs/types");
7
+ const utils_2 = require("../../utils");
7
8
  const query_config_1 = require("./query-config");
8
9
  const validators_1 = require("./validators");
9
10
  /**
@@ -37,41 +38,6 @@ const applySellerProductLinkFilter = async (req, _res, next) => {
37
38
  ];
38
39
  return next();
39
40
  };
40
- /**
41
- * Scopes the product list to products the active seller has at least one
42
- * offer on, when `?has_offer=true`. The bare vendor-products list returns
43
- * the master-catalogue union (every published product + the seller's
44
- * own), which is far larger than the Offers surface; this narrows it to
45
- * the seller's offered products by resolving their offers' variant ids
46
- * and filtering products to those carrying one of those variants. The
47
- * `has_offer` pseudo-filter is consumed here and removed so it never
48
- * reaches the product graph read.
49
- */
50
- const applySellerOfferedProductsFilter = async (req, _res, next) => {
51
- req.filterableFields ??= {};
52
- const hasOffer = req.filterableFields.has_offer;
53
- delete req.filterableFields.has_offer;
54
- if (hasOffer !== true) {
55
- return next();
56
- }
57
- const sellerId = req.seller_context.seller_id;
58
- const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
59
- const { data: offers } = await query.graph({
60
- entity: "offer",
61
- fields: ["variant_id"],
62
- filters: { seller_id: sellerId },
63
- });
64
- const variantIds = Array.from(new Set(offers
65
- .map((offer) => offer.variant_id)
66
- .filter((id) => Boolean(id))));
67
- const existingAnd = req.filterableFields.$and ?? [];
68
- req.filterableFields.$and = [
69
- ...existingAnd,
70
- // No offers → match nothing (empty list) rather than the whole catalogue.
71
- { variants: { id: variantIds.length ? variantIds : ["__none__"] } },
72
- ];
73
- return next();
74
- };
75
41
  exports.vendorProductsMiddlewares = [
76
42
  // --- /vendor/products ---
77
43
  {
@@ -80,7 +46,7 @@ exports.vendorProductsMiddlewares = [
80
46
  middlewares: [
81
47
  (0, framework_1.validateAndTransformQuery)(validators_1.VendorGetProductsParams, query_config_1.vendorProductQueryConfig.list),
82
48
  applySellerProductLinkFilter,
83
- applySellerOfferedProductsFilter,
49
+ utils_2.applyOfferedProductsFilter,
84
50
  ],
85
51
  },
86
52
  {
@@ -202,4 +168,4 @@ exports.vendorProductsMiddlewares = [
202
168
  middlewares: [],
203
169
  },
204
170
  ];
205
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3ZlbmRvci9wcm9kdWN0cy9taWRkbGV3YXJlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFNQSxtREFHNEI7QUFDNUIscURBQXFFO0FBQ3JFLDJDQUErQztBQUUvQyxpREFHdUI7QUFDdkIsNkNBZXFCO0FBRXJCOzs7Ozs7R0FNRztBQUNILE1BQU0sNEJBQTRCLEdBQUcsS0FBSyxFQUN4QyxHQUErQixFQUMvQixJQUFvQixFQUNwQixJQUF3QixFQUN4QixFQUFFO0lBQ0YsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLGNBQWUsQ0FBQyxTQUFTLENBQUE7SUFDOUMsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUE7SUFFaEUsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDeEMsTUFBTSxFQUFFLGdCQUFnQjtRQUN4QixNQUFNLEVBQUUsQ0FBQyxZQUFZLENBQUM7UUFDdEIsT0FBTyxFQUFFLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRTtLQUNqQyxDQUFDLENBQUE7SUFFRixNQUFNLGdCQUFnQixHQUFHLEtBQUs7U0FDM0IsR0FBRyxDQUFDLENBQUMsSUFBbUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztTQUM3RCxNQUFNLENBQUMsQ0FBQyxFQUFpQixFQUFnQixFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFFM0QsR0FBRyxDQUFDLGdCQUFnQixLQUFLLEVBQUUsQ0FBQTtJQUMzQixNQUFNLFdBQVcsR0FBSSxHQUFHLENBQUMsZ0JBQWdCLENBQUMsSUFBNkIsSUFBSSxFQUFFLENBQUE7SUFDN0UsR0FBRyxDQUFDLGdCQUFnQixDQUFD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
171
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3ZlbmRvci9wcm9kdWN0cy9taWRkbGV3YXJlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFNQSxtREFHNEI7QUFDNUIscURBQXFFO0FBQ3JFLDJDQUErQztBQUUvQyx1Q0FBd0Q7QUFDeEQsaURBR3VCO0FBQ3ZCLDZDQWVxQjtBQUVyQjs7Ozs7O0dBTUc7QUFDSCxNQUFNLDRCQUE0QixHQUFHLEtBQUssRUFDeEMsR0FBK0IsRUFDL0IsSUFBb0IsRUFDcEIsSUFBd0IsRUFDeEIsRUFBRTtJQUNGLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxjQUFlLENBQUMsU0FBUyxDQUFBO0lBQzlDLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFBO0lBRWhFLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ3hDLE1BQU0sRUFBRSxnQkFBZ0I7UUFDeEIsTUFBTSxFQUFFLENBQUMsWUFBWSxDQUFDO1FBQ3RCLE9BQU8sRUFBRSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUU7S0FDakMsQ0FBQyxDQUFBO0lBRUYsTUFBTSxnQkFBZ0IsR0FBRyxLQUFLO1NBQzNCLEdBQUcsQ0FBQyxDQUFDLElBQW1DLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7U0FDN0QsTUFBTSxDQUFDLENBQUMsRUFBaUIsRUFBZ0IsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBRTNELEdBQUcsQ0FBQyxnQkFBZ0IsS0FBSyxFQUFFLENBQUE7SUFDM0IsTUFBTSxXQUFXLEdBQUksR0FBRyxDQUFDLGdCQUFnQixDQUFDLElBQTZCLElBQUksRUFBRSxDQUFBO0lBQzdFLEdBQUcsQ0FB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
@@ -4,7 +4,6 @@ exports.POST = exports.GET = void 0;
4
4
  const utils_1 = require("@medusajs/framework/utils");
5
5
  const create_products_1 = require("../../../workflows/product/workflows/create-products");
6
6
  const utils_2 = require("../../utils");
7
- const helpers_1 = require("./helpers");
8
7
  const GET = async (req, res) => {
9
8
  const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
10
9
  // Offers are a per-seller overlay on the shared Offer ↔ Variant link;
@@ -23,7 +22,7 @@ const GET = async (req, res) => {
23
22
  });
24
23
  await (0, utils_2.enrichProductAttributes)(req.scope, products);
25
24
  if (withOffers) {
26
- await (0, helpers_1.wrapProductVariantsWithOffers)(req.scope, req.seller_context.seller_id, products);
25
+ await (0, utils_2.wrapProductVariantsWithOffers)(req.scope, products, req.seller_context.seller_id);
27
26
  }
28
27
  res.json({
29
28
  products,
@@ -68,4 +67,4 @@ const POST = async (req, res) => {
68
67
  res.status(201).json({ product });
69
68
  };
70
69
  exports.POST = POST;
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3ZlbmRvci9wcm9kdWN0cy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFJQSxxREFBb0Y7QUFJcEYsMEZBRzZEO0FBQzdELHVDQUFxRDtBQUNyRCx1Q0FBeUQ7QUFHbEQsTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUN0QixHQUE0RCxFQUM1RCxHQUF3RCxFQUN4RCxFQUFFO0lBQ0YsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUE7SUFFaEUsc0VBQXNFO0lBQ3RFLHVFQUF1RTtJQUN2RSx3RUFBd0U7SUFDeEUseUVBQXlFO0lBQ3pFLE1BQU0sVUFBVSxHQUFHLEdBQUcsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQ3ZELEtBQUssQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsQ0FDbEMsQ0FBQTtJQUNELElBQUksVUFBVSxFQUFFLENBQUM7UUFDZixHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQ3BELENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsQ0FDOUMsQ0FBQTtJQUNILENBQUM7SUFFRCxNQUFNLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDckQsTUFBTSxFQUFFLFNBQVM7UUFDakIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxXQUFXLENBQUMsTUFBTTtRQUM5QixPQUFPLEVBQUUsR0FBRyxDQUFDLGdCQUFnQjtRQUM3QixVQUFVLEVBQUUsR0FBRyxDQUFDLFdBQVcsQ0FBQyxVQUFVO0tBQ3ZDLENBQUMsQ0FBQTtJQUVGLE1BQU0sSUFBQSwrQkFBdUIsRUFBQyxHQUFHLENBQUMsS0FBSyxFQUFFLFFBQWlCLENBQUMsQ0FBQTtJQUUzRCxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ2YsTUFBTSxJQUFBLHVDQUE2QixFQUNqQyxHQUFHLENBQUMsS0FBSyxFQUNULEdBQUcsQ0FBQyxjQUFlLENBQUMsU0FBUyxFQUM3QixRQUErRCxDQUNoRSxDQUFBO0lBQ0gsQ0FBQztJQUVELEdBQUcsQ0FBQyxJQUFJLENBQUM7UUFDUCxRQUFRO1FBQ1IsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLElBQUksQ0FBQztRQUMzQixNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksSUFBSSxDQUFDO1FBQzNCLEtBQUssRUFBRSxRQUFRLEVBQUUsSUFBSSxJQUFJLENBQUM7S0FDM0IsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUFBO0FBMUNZLFFBQUEsR0FBRyxPQTBDZjtBQUVEOzs7Ozs7OztHQVFHO0FBQ0ksTUFBTSxJQUFJLEdBQUcsS0FBSyxFQUN2QixHQUF5RSxFQUN6RSxHQUFvRCxFQUNwRCxFQUFFO0lBQ0YsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDaEUsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLGNBQWUsQ0FBQyxTQUFTLENBQUE7SUFFOUMsTUFBTSxFQUFFLGVBQWUsRUFBRSxHQUFHLE9BQU8sRUFBRSxHQUFHLEdBQUcsQ0FBQyxhQUFhLENBQUE7SUFFekQsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLE1BQU0sSUFBQSx3Q0FBc0IsRUFBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBQzdELEtBQUssRUFBRTtZQUNMLFFBQVEsRUFBRTtnQkFDUjtvQkFDRSxHQUFHLE9BQU87b0JBQ1YsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNLElBQUkscUJBQWEsQ0FBQyxRQUFRO2lCQUNuQjthQUNoQztZQUNELFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQztZQUN0QixlQUFlO1NBQ2hCO0tBQ0YsQ0FBQyxDQUFBO0lBRUYsTUFBTSxTQUFTLEdBQUksTUFBMkIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUE7SUFFcEQsTUFBTSxFQUNKLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUNoQixHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztRQUNwQixNQUFNLEVBQUUsU0FBUztRQUNqQixNQUFNLEVBQUUsR0FBRyxDQUFDLFdBQVcsQ0FBQyxNQUFNO1FBQzlCLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUU7S0FDM0IsQ0FBQyxDQUFBO0lBRUYsTUFBTSxJQUFBLCtCQUF1QixFQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFBO0lBRW5ELEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQTtBQUNuQyxDQUFDLENBQUE7QUFuQ1ksUUFBQSxJQUFJLFFBbUNoQiJ9
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3ZlbmRvci9wcm9kdWN0cy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFJQSxxREFBb0Y7QUFJcEYsMEZBRzZEO0FBQzdELHVDQUdvQjtBQUdiLE1BQU0sR0FBRyxHQUFHLEtBQUssRUFDdEIsR0FBNEQsRUFDNUQsR0FBd0QsRUFDeEQsRUFBRTtJQUNGLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFBO0lBRWhFLHNFQUFzRTtJQUN0RSx1RUFBdUU7SUFDdkUsd0VBQXdFO0lBQ3hFLHlFQUF5RTtJQUN6RSxNQUFNLFVBQVUsR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUN2RCxLQUFLLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLENBQ2xDLENBQUE7SUFDRCxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ2YsR0FBRyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUNwRCxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLENBQzlDLENBQUE7SUFDSCxDQUFDO0lBRUQsTUFBTSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ3JELE1BQU0sRUFBRSxTQUFTO1FBQ2pCLE1BQU0sRUFBRSxHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU07UUFDOUIsT0FBTyxFQUFFLEdBQUcsQ0FBQyxnQkFBZ0I7UUFDN0IsVUFBVSxFQUFFLEdBQUcsQ0FBQyxXQUFXLENBQUMsVUFBVTtLQUN2QyxDQUFDLENBQUE7SUFFRixNQUFNLElBQUEsK0JBQXVCLEVBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxRQUFpQixDQUFDLENBQUE7SUFFM0QsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNmLE1BQU0sSUFBQSxxQ0FBNkIsRUFDakMsR0FBRyxDQUFDLEtBQUssRUFDVCxRQUErRCxFQUMvRCxHQUFHLENBQUMsY0FBZSxDQUFDLFNBQVMsQ0FDOUIsQ0FBQTtJQUNILENBQUM7SUFFRCxHQUFHLENBQUMsSUFBSSxDQUFDO1FBQ1AsUUFBUTtRQUNSLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxJQUFJLENBQUM7UUFDM0IsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLElBQUksQ0FBQztRQUMzQixLQUFLLEVBQUUsUUFBUSxFQUFFLElBQUksSUFBSSxDQUFDO0tBQzNCLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQTtBQTFDWSxRQUFBLEdBQUcsT0EwQ2Y7QUFFRDs7Ozs7Ozs7R0FRRztBQUNJLE1BQU0sSUFBSSxHQUFHLEtBQUssRUFDdkIsR0FBeUUsRUFDekUsR0FBb0QsRUFDcEQsRUFBRTtJQUNGLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ2hFLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxjQUFlLENBQUMsU0FBUyxDQUFBO0lBRTlDLE1BQU0sRUFBRSxlQUFlLEVBQUUsR0FBRyxPQUFPLEVBQUUsR0FBRyxHQUFHLENBQUMsYUFBYSxDQUFBO0lBRXpELE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLElBQUEsd0NBQXNCLEVBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUM3RCxLQUFLLEVBQUU7WUFDTCxRQUFRLEVBQUU7Z0JBQ1I7b0JBQ0UsR0FBRyxPQUFPO29CQUNWLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTSxJQUFJLHFCQUFhLENBQUMsUUFBUTtpQkFDbkI7YUFDaEM7WUFDRCxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUM7WUFDdEIsZUFBZTtTQUNoQjtLQUNGLENBQUMsQ0FBQTtJQUVGLE1BQU0sU0FBUyxHQUFJLE1BQTJCLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO0lBRXBELE1BQU0sRUFDSixJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FDaEIsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDcEIsTUFBTSxFQUFFLFNBQVM7UUFDakIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxXQUFXLENBQUMsTUFBTTtRQUM5QixPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFO0tBQzNCLENBQUMsQ0FBQTtJQUVGLE1BQU0sSUFBQSwrQkFBdUIsRUFBQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQTtJQUVuRCxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUE7QUFDbkMsQ0FBQyxDQUFBO0FBbkNZLFFBQUEsSUFBSSxRQW1DaEIifQ==