@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
@@ -0,0 +1,3 @@
1
+ import { MedusaRequest, MedusaResponse } from "@medusajs/framework/http";
2
+ import { HttpTypes } from "@medusajs/framework/types";
3
+ export declare const DELETE: (req: MedusaRequest, res: MedusaResponse<HttpTypes.AdminInventoryLevelDeleteResponse>) => Promise<void>;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DELETE = void 0;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ const core_flows_1 = require("@medusajs/core-flows");
6
+ const helpers_1 = require("@medusajs/medusa/api/admin/inventory-items/helpers");
7
+ // Overridden admin default delete inventory level route to force delete the inventory level with stocked items at the locations.
8
+ const DELETE = async (req, res) => {
9
+ const { id, location_id } = req.params;
10
+ const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
11
+ const result = await query.graph({
12
+ entity: "inventory_level",
13
+ filters: { inventory_item_id: id, location_id },
14
+ fields: ["id", "reserved_quantity"],
15
+ }, { throwIfKeyNotFound: true });
16
+ const { id: levelId, reserved_quantity: reservedQuantity } = result.data[0];
17
+ if (reservedQuantity > 0) {
18
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_ALLOWED, `Cannot remove Inventory Level ${id} at Location ${location_id} because there are reservations at location`);
19
+ }
20
+ const deleteInventoryLevelWorkflow = (0, core_flows_1.deleteInventoryLevelsWorkflow)(req.scope);
21
+ await deleteInventoryLevelWorkflow.run({
22
+ input: {
23
+ id: [levelId],
24
+ force: true,
25
+ },
26
+ });
27
+ const inventoryItem = await (0, helpers_1.refetchInventoryItem)(id, req.scope, req.queryConfig.fields);
28
+ res.status(200).json({
29
+ id: levelId,
30
+ object: "inventory-level",
31
+ deleted: true,
32
+ parent: inventoryItem,
33
+ });
34
+ };
35
+ exports.DELETE = DELETE;
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2ludmVudG9yeS1pdGVtcy9baWRdL2xvY2F0aW9uLWxldmVscy9bbG9jYXRpb25faWRdL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFEQUdtQztBQUduQyxxREFBcUU7QUFFckUsZ0ZBQTBGO0FBRTFGLGlJQUFpSTtBQUUxSCxNQUFNLE1BQU0sR0FBRyxLQUFLLEVBQ3pCLEdBQWtCLEVBQ2xCLEdBQWdFLEVBQ2hFLEVBQUU7SUFDRixNQUFNLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUM7SUFFdkMsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFakUsTUFBTSxNQUFNLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQy9CLE1BQU0sRUFBRSxpQkFBaUI7UUFDekIsT0FBTyxFQUFFLEVBQUUsaUJBQWlCLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRTtRQUMvQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsbUJBQW1CLENBQUM7S0FDcEMsRUFBRSxFQUFFLGtCQUFrQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFFakMsTUFBTSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRTVFLElBQUksZ0JBQWdCLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDekIsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFDN0IsaUNBQWlDLEVBQUUsZ0JBQWdCLFdBQVcsNkNBQTZDLENBQzVHLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSw0QkFBNEIsR0FBRyxJQUFBLDBDQUE2QixFQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUU5RSxNQUFNLDRCQUE0QixDQUFDLEdBQUcsQ0FBQztRQUNyQyxLQUFLLEVBQUU7WUFDTCxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUM7WUFDYixLQUFLLEVBQUUsSUFBSTtTQUNaO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsTUFBTSxhQUFhLEdBQUcsTUFBTSxJQUFBLDhCQUFvQixFQUM5QyxFQUFFLEVBQ0YsR0FBRyxDQUFDLEtBQUssRUFDVCxHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FDdkIsQ0FBQztJQUVGLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ25CLEVBQUUsRUFBRSxPQUFPO1FBQ1gsTUFBTSxFQUFFLGlCQUFpQjtRQUN6QixPQUFPLEVBQUUsSUFBSTtRQUNiLE1BQU0sRUFBRSxhQUFhO0tBQ3RCLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQztBQTVDVyxRQUFBLE1BQU0sVUE0Q2pCIn0=
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.GET = void 0;
4
- const http_1 = require("@medusajs/framework/http");
4
+ const utils_1 = require("@medusajs/framework/utils");
5
5
  /**
6
6
  * @oas [get] /admin/notifications
7
7
  * operationId: "AdminListNotifications"
@@ -55,19 +55,19 @@ const http_1 = require("@medusajs/framework/http");
55
55
  * - cookie_auth: []
56
56
  */
57
57
  const GET = async (req, res) => {
58
- const { data: notifications, metadata } = await (0, http_1.refetchEntities)({
58
+ const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
59
+ const { data: notifications, metadata } = await query.graph({
59
60
  entity: 'notification',
60
- idOrFilter: { ...req.filterableFields, channel: 'feed' },
61
- scope: req.scope,
61
+ filters: { ...req.filterableFields, channel: 'feed' },
62
62
  fields: req.queryConfig.fields,
63
63
  pagination: req.queryConfig.pagination
64
64
  });
65
65
  res.json({
66
66
  notifications,
67
- count: metadata.count,
68
- offset: metadata.skip,
69
- limit: metadata.take
67
+ count: metadata?.count ?? notifications.length,
68
+ offset: metadata?.skip ?? req.queryConfig.pagination?.skip ?? 0,
69
+ limit: metadata?.take ?? req.queryConfig.pagination?.take ?? 0
70
70
  });
71
71
  };
72
72
  exports.GET = GET;
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL25vdGlmaWNhdGlvbnMvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbURBSWlDO0FBR2pDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtREc7QUFDSSxNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQ3RCLEdBQXNFLEVBQ3RFLEdBQTRELEVBQzVELEVBQUU7SUFDRixNQUFNLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsR0FBRyxNQUFNLElBQUEsc0JBQWUsRUFBQztRQUM5RCxNQUFNLEVBQUUsY0FBYztRQUN0QixVQUFVLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFO1FBQ3hELEtBQUssRUFBRSxHQUFHLENBQUMsS0FBSztRQUNoQixNQUFNLEVBQUUsR0FBRyxDQUFDLFdBQVcsQ0FBQyxNQUFNO1FBQzlCLFVBQVUsRUFBRSxHQUFHLENBQUMsV0FBVyxDQUFDLFVBQVU7S0FDdkMsQ0FBQyxDQUFBO0lBRUYsR0FBRyxDQUFDLElBQUksQ0FBQztRQUNQLGFBQWE7UUFDYixLQUFLLEVBQUUsUUFBUSxDQUFDLEtBQUs7UUFDckIsTUFBTSxFQUFFLFFBQVEsQ0FBQyxJQUFJO1FBQ3JCLEtBQUssRUFBRSxRQUFRLENBQUMsSUFBSTtLQUNyQixDQUFDLENBQUE7QUFDSixDQUFDLENBQUE7QUFsQlksUUFBQSxHQUFHLE9Ba0JmIn0=
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL25vdGlmaWNhdGlvbnMvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBS0EscURBQXFFO0FBRXJFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtREc7QUFDSSxNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQ3RCLEdBQXNFLEVBQ3RFLEdBQTRELEVBQzVELEVBQUU7SUFDRixNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxpQ0FBeUIsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUVoRSxNQUFNLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDMUQsTUFBTSxFQUFFLGNBQWM7UUFDdEIsT0FBTyxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRTtRQUNyRCxNQUFNLEVBQUUsR0FBRyxDQUFDLFdBQVcsQ0FBQyxNQUFNO1FBQzlCLFVBQVUsRUFBRSxHQUFHLENBQUMsV0FBVyxDQUFDLFVBQVU7S0FDdkMsQ0FBQyxDQUFBO0lBRUYsR0FBRyxDQUFDLElBQUksQ0FBQztRQUNQLGFBQWE7UUFDYixLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssSUFBSSxhQUFhLENBQUMsTUFBTTtRQUM5QyxNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksSUFBSSxHQUFHLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxJQUFJLElBQUksQ0FBQztRQUMvRCxLQUFLLEVBQUUsUUFBUSxFQUFFLElBQUksSUFBSSxHQUFHLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxJQUFJLElBQUksQ0FBQztLQUMvRCxDQUFDLENBQUE7QUFDSixDQUFDLENBQUE7QUFuQlksUUFBQSxHQUFHLE9BbUJmIn0=
@@ -1,5 +1,5 @@
1
- import { z } from 'zod';
2
- import { StoreStatus } from '@mercurjs/framework';
1
+ import { z } from "zod";
2
+ import { StoreStatus } from "@mercurjs/framework";
3
3
  export type AdminSellerParamsType = z.infer<typeof AdminSellerParams>;
4
4
  export declare const AdminSellerParams: z.ZodObject<{
5
5
  fields: z.ZodOptional<z.ZodString>;
@@ -6,19 +6,19 @@ const validators_1 = require("@medusajs/medusa/api/utils/validators");
6
6
  const framework_1 = require("@mercurjs/framework");
7
7
  exports.AdminSellerParams = (0, validators_1.createFindParams)({
8
8
  offset: 0,
9
- limit: 50
9
+ limit: 50,
10
10
  });
11
11
  exports.AdminGetSellerProductsParams = (0, validators_1.createFindParams)({
12
12
  offset: 0,
13
- limit: 50
13
+ limit: 50,
14
14
  });
15
15
  exports.AdminGetSellerOrdersParams = (0, validators_1.createFindParams)({
16
16
  offset: 0,
17
- limit: 50
17
+ limit: 50,
18
18
  });
19
19
  exports.AdminGetSellerCustomerGroupsParams = (0, validators_1.createFindParams)({
20
20
  offset: 0,
21
- limit: 50
21
+ limit: 50,
22
22
  });
23
23
  exports.AdminUpdateSeller = zod_1.z
24
24
  .object({
@@ -35,11 +35,13 @@ exports.AdminUpdateSeller = zod_1.z
35
35
  postal_code: zod_1.z.string().optional(),
36
36
  country_code: zod_1.z.string().optional(),
37
37
  tax_id: zod_1.z.string().optional(),
38
- store_status: zod_1.z.nativeEnum(framework_1.StoreStatus).optional()
38
+ store_status: zod_1.z.nativeEnum(framework_1.StoreStatus).optional(),
39
39
  })
40
40
  .strict();
41
41
  exports.AdminInviteSeller = zod_1.z.object({
42
42
  email: zod_1.z.string().email(),
43
- registration_url: zod_1.z.string().default('http://localhost:5173/register')
43
+ registration_url: zod_1.z
44
+ .string()
45
+ .default((0, framework_1.buildHostAddress)(framework_1.Hosts.VENDOR_PANEL, "/register").toString()),
44
46
  });
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcGkvYWRtaW4vc2VsbGVycy92YWxpZGF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZCQUF1QjtBQUV2QixzRUFBd0U7QUFFeEUsbURBQWlEO0FBR3BDLFFBQUEsaUJBQWlCLEdBQUcsSUFBQSw2QkFBZ0IsRUFBQztJQUNoRCxNQUFNLEVBQUUsQ0FBQztJQUNULEtBQUssRUFBRSxFQUFFO0NBQ1YsQ0FBQyxDQUFBO0FBS1csUUFBQSw0QkFBNEIsR0FBRyxJQUFBLDZCQUFnQixFQUFDO0lBQzNELE1BQU0sRUFBRSxDQUFDO0lBQ1QsS0FBSyxFQUFFLEVBQUU7Q0FDVixDQUFDLENBQUE7QUFLVyxRQUFBLDBCQUEwQixHQUFHLElBQUEsNkJBQWdCLEVBQUM7SUFDekQsTUFBTSxFQUFFLENBQUM7SUFDVCxLQUFLLEVBQUUsRUFBRTtDQUNWLENBQUMsQ0FBQTtBQUtXLFFBQUEsa0NBQWtDLEdBQUcsSUFBQSw2QkFBZ0IsRUFBQztJQUNqRSxNQUFNLEVBQUUsQ0FBQztJQUNULEtBQUssRUFBRSxFQUFFO0NBQ1YsQ0FBQyxDQUFBO0FBR1csUUFBQSxpQkFBaUIsR0FBRyxPQUFDO0tBQy9CLE1BQU0sQ0FBQztJQUNOLElBQUksRUFBRSxPQUFDO1NBQ0osVUFBVSxDQUFDLENBQUMsR0FBVyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUMxRCxRQUFRLEVBQUU7SUFDYixXQUFXLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNsQyxLQUFLLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM1QixLQUFLLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNwQyxLQUFLLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM1QixZQUFZLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNuQyxJQUFJLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUMzQixLQUFLLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM1QixXQUFXLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNsQyxZQUFZLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNuQyxNQUFNLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM3QixZQUFZLEVBQUUsT0FBQyxDQUFDLFVBQVUsQ0FBQyx1QkFBVyxDQUFDLENBQUMsUUFBUSxFQUFFO0NBQ25ELENBQUM7S0FDRCxNQUFNLEVBQUUsQ0FBQTtBQUdFLFFBQUEsaUJBQWlCLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FBQztJQUN4QyxLQUFLLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssRUFBRTtJQUN6QixnQkFBZ0IsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLGdDQUFnQyxDQUFDO0NBQ3ZFLENBQUMsQ0FBQSJ9
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcGkvYWRtaW4vc2VsbGVycy92YWxpZGF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZCQUF3QjtBQUV4QixzRUFBeUU7QUFFekUsbURBQTJFO0FBRzlELFFBQUEsaUJBQWlCLEdBQUcsSUFBQSw2QkFBZ0IsRUFBQztJQUNoRCxNQUFNLEVBQUUsQ0FBQztJQUNULEtBQUssRUFBRSxFQUFFO0NBQ1YsQ0FBQyxDQUFDO0FBS1UsUUFBQSw0QkFBNEIsR0FBRyxJQUFBLDZCQUFnQixFQUFDO0lBQzNELE1BQU0sRUFBRSxDQUFDO0lBQ1QsS0FBSyxFQUFFLEVBQUU7Q0FDVixDQUFDLENBQUM7QUFLVSxRQUFBLDBCQUEwQixHQUFHLElBQUEsNkJBQWdCLEVBQUM7SUFDekQsTUFBTSxFQUFFLENBQUM7SUFDVCxLQUFLLEVBQUUsRUFBRTtDQUNWLENBQUMsQ0FBQztBQUtVLFFBQUEsa0NBQWtDLEdBQUcsSUFBQSw2QkFBZ0IsRUFBQztJQUNqRSxNQUFNLEVBQUUsQ0FBQztJQUNULEtBQUssRUFBRSxFQUFFO0NBQ1YsQ0FBQyxDQUFDO0FBR1UsUUFBQSxpQkFBaUIsR0FBRyxPQUFDO0tBQy9CLE1BQU0sQ0FBQztJQUNOLElBQUksRUFBRSxPQUFDO1NBQ0osVUFBVSxDQUFDLENBQUMsR0FBVyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUMxRCxRQUFRLEVBQUU7SUFDYixXQUFXLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNsQyxLQUFLLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM1QixLQUFLLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNwQyxLQUFLLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM1QixZQUFZLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNuQyxJQUFJLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUMzQixLQUFLLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM1QixXQUFXLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNsQyxZQUFZLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNuQyxNQUFNLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM3QixZQUFZLEVBQUUsT0FBQyxDQUFDLFVBQVUsQ0FBQyx1QkFBVyxDQUFDLENBQUMsUUFBUSxFQUFFO0NBQ25ELENBQUM7S0FDRCxNQUFNLEVBQUUsQ0FBQztBQUdDLFFBQUEsaUJBQWlCLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FBQztJQUN4QyxLQUFLLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssRUFBRTtJQUN6QixnQkFBZ0IsRUFBRSxPQUFDO1NBQ2hCLE1BQU0sRUFBRTtTQUNSLE9BQU8sQ0FBQyxJQUFBLDRCQUFnQixFQUFDLGlCQUFLLENBQUMsWUFBWSxFQUFFLFdBQVcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO0NBQ3pFLENBQUMsQ0FBQyJ9
@@ -3,16 +3,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.POST = void 0;
4
4
  const utils_1 = require("@medusajs/framework/utils");
5
5
  const core_flows_1 = require("@medusajs/medusa/core-flows");
6
- const framework_1 = require("@mercurjs/framework");
7
6
  const seller_1 = require("../../../../../modules/seller");
8
7
  const POST = async (req, res) => {
9
8
  const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
10
- const seller = await (0, framework_1.fetchSellerByAuthActorId)(req.auth_context?.actor_id, req.scope);
11
- const validatePromotions = await (0, seller_1.validateSellerPromotions)(req.validatedBody.promo_codes, req.scope, seller.id);
9
+ const validatePromotions = await (0, seller_1.validateSellersPromotions)(req.validatedBody.promo_codes, req.scope, req.params.id);
12
10
  if (!validatePromotions.valid) {
13
11
  throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, 'Some of the promotion codes are invalid');
14
12
  }
15
13
  await core_flows_1.updateCartPromotionsWorkflow.run({
14
+ container: req.scope,
16
15
  input: {
17
16
  cart_id: req.params.id,
18
17
  promo_codes: req.validatedBody.promo_codes,
@@ -31,4 +30,4 @@ const POST = async (req, res) => {
31
30
  res.json({ cart });
32
31
  };
33
32
  exports.POST = POST;
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2NhcnRzL1tpZF0vcHJvbW90aW9ucy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxxREFBb0c7QUFFcEcsNERBQTBFO0FBQzFFLG1EQUE4RDtBQUM5RCwwREFBd0U7QUFFakUsTUFBTSxJQUFJLEdBQUcsS0FBSyxFQUNyQixHQUEyRCxFQUMzRCxHQUFtQixFQUNuQixFQUFFO0lBQ0YsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUE7SUFFaEUsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFBLG9DQUF3QixFQUMzQyxHQUFHLENBQUMsWUFBWSxFQUFFLFFBQVEsRUFDMUIsR0FBRyxDQUFDLEtBQUssQ0FDVixDQUFBO0lBRUQsTUFBTSxrQkFBa0IsR0FBRyxNQUFNLElBQUEsaUNBQXdCLEVBQ3ZELEdBQUcsQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUM3QixHQUFHLENBQUMsS0FBSyxFQUNULE1BQU0sQ0FBQyxFQUFFLENBQ1YsQ0FBQTtJQUVELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM5QixNQUFNLElBQUksbUJBQVcsQ0FBQyxtQkFBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUseUNBQXlDLENBQUMsQ0FBQTtJQUNsRyxDQUFDO0lBRUQsTUFBTSx5Q0FBNEIsQ0FBQyxHQUFHLENBQUM7UUFDckMsS0FBSyxFQUFFO1lBQ0wsT0FBTyxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUN0QixXQUFXLEVBQUUsR0FBRyxDQUFDLGFBQWEsQ0FBQyxXQUFXO1lBQzFDLE1BQU0sRUFDRixHQUFHLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQztnQkFDcEMsQ0FBQyxDQUFDLHdCQUFnQixDQUFDLEdBQUc7Z0JBQ3RCLENBQUMsQ0FBQyx3QkFBZ0IsQ0FBQyxPQUFPO1NBQ2pDO0tBQ0osQ0FBQyxDQUFBO0lBRUYsTUFBTSxFQUNKLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxFQUNiLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ3BCLE1BQU0sRUFBRSxNQUFNO1FBQ2QsT0FBTyxFQUFFO1lBQ1AsRUFBRSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtTQUNsQjtRQUNELE1BQU0sRUFBRSxHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU07S0FDL0IsQ0FBQyxDQUFBO0lBRUYsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7QUFDcEIsQ0FBQyxDQUFBO0FBM0NVLFFBQUEsSUFBSSxRQTJDZCJ9
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2NhcnRzL1tpZF0vcHJvbW90aW9ucy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxxREFBb0c7QUFFcEcsNERBQTBFO0FBQzFFLDBEQUF5RTtBQUVsRSxNQUFNLElBQUksR0FBRyxLQUFLLEVBQ3JCLEdBQTJELEVBQzNELEdBQW1CLEVBQ25CLEVBQUU7SUFDRixNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxpQ0FBeUIsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUVoRSxNQUFNLGtCQUFrQixHQUFHLE1BQU0sSUFBQSxrQ0FBeUIsRUFDeEQsR0FBRyxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQzdCLEdBQUcsQ0FBQyxLQUFLLEVBQ1QsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQ2QsQ0FBQTtJQUNELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM5QixNQUFNLElBQUksbUJBQVcsQ0FBQyxtQkFBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUseUNBQXlDLENBQUMsQ0FBQTtJQUNsRyxDQUFDO0lBQ0QsTUFBTSx5Q0FBNEIsQ0FBQyxHQUFHLENBQUM7UUFDckMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxLQUFLO1FBQ3BCLEtBQUssRUFBRTtZQUNMLE9BQU8sRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDdEIsV0FBVyxFQUFFLEdBQUcsQ0FBQyxhQUFhLENBQUMsV0FBVztZQUMxQyxNQUFNLEVBQ0YsR0FBRyxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUM7Z0JBQ3BDLENBQUMsQ0FBQyx3QkFBZ0IsQ0FBQyxHQUFHO2dCQUN0QixDQUFDLENBQUMsd0JBQWdCLENBQUMsT0FBTztTQUNqQztLQUNKLENBQUMsQ0FBQTtJQUNGLE1BQU0sRUFDSixJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFDYixHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztRQUNwQixNQUFNLEVBQUUsTUFBTTtRQUNkLE9BQU8sRUFBRTtZQUNQLEVBQUUsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7U0FDbEI7UUFDRCxNQUFNLEVBQUUsR0FBRyxDQUFDLFdBQVcsQ0FBQyxNQUFNO0tBQy9CLENBQUMsQ0FBQTtJQUNGLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO0FBQ3BCLENBQUMsQ0FBQTtBQW5DVSxRQUFBLElBQUksUUFtQ2QifQ==
@@ -4,10 +4,11 @@ exports.storeMiddlewares = void 0;
4
4
  const framework_1 = require("@medusajs/framework");
5
5
  const middlewares_1 = require("./carts/middlewares");
6
6
  const middlewares_2 = require("./order-set/middlewares");
7
- const middlewares_3 = require("./returns/middlewares");
8
- const middlewares_4 = require("./seller/middlewares");
9
- const middlewares_5 = require("./shipping-options/middlewares");
10
- const middlewares_6 = require("./wishlist/middlewares");
7
+ const middlewares_3 = require("./products/middlewares");
8
+ const middlewares_4 = require("./returns/middlewares");
9
+ const middlewares_5 = require("./seller/middlewares");
10
+ const middlewares_6 = require("./shipping-options/middlewares");
11
+ const middlewares_7 = require("./wishlist/middlewares");
11
12
  exports.storeMiddlewares = [
12
13
  {
13
14
  matcher: "/store/reviews/*",
@@ -19,9 +20,10 @@ exports.storeMiddlewares = [
19
20
  },
20
21
  ...middlewares_1.storeCartsMiddlewares,
21
22
  ...middlewares_2.storeOrderSetMiddlewares,
22
- ...middlewares_4.storeSellerMiddlewares,
23
- ...middlewares_5.storeShippingOptionRoutesMiddlewares,
24
- ...middlewares_3.storeReturnsMiddlewares,
25
- ...middlewares_6.storeWishlistMiddlewares,
23
+ ...middlewares_3.storeProductsMiddlewares,
24
+ ...middlewares_5.storeSellerMiddlewares,
25
+ ...middlewares_6.storeShippingOptionRoutesMiddlewares,
26
+ ...middlewares_4.storeReturnsMiddlewares,
27
+ ...middlewares_7.storeWishlistMiddlewares,
26
28
  ];
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL21pZGRsZXdhcmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1EQUFvRTtBQUVwRSxxREFBNEQ7QUFDNUQseURBQW1FO0FBQ25FLHVEQUFnRTtBQUNoRSxzREFBOEQ7QUFDOUQsZ0VBQXNGO0FBQ3RGLHdEQUFrRTtBQUVyRCxRQUFBLGdCQUFnQixHQUFzQjtJQUNqRDtRQUNFLE9BQU8sRUFBRSxrQkFBa0I7UUFDM0IsV0FBVyxFQUFFLENBQUMsSUFBQSx3QkFBWSxFQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO0tBQy9EO0lBQ0Q7UUFDRSxPQUFPLEVBQUUseUJBQXlCO1FBQ2xDLFdBQVcsRUFBRSxDQUFDLElBQUEsd0JBQVksRUFBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztLQUMvRDtJQUNELEdBQUcsbUNBQXFCO0lBQ3hCLEdBQUcsc0NBQXdCO0lBQzNCLEdBQUcsb0NBQXNCO0lBQ3pCLEdBQUcsa0RBQW9DO0lBQ3ZDLEdBQUcscUNBQXVCO0lBQzFCLEdBQUcsc0NBQXdCO0NBQzVCLENBQUMifQ==
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL21pZGRsZXdhcmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1EQUFvRTtBQUVwRSxxREFBNEQ7QUFDNUQseURBQW1FO0FBQ25FLHdEQUFrRTtBQUNsRSx1REFBZ0U7QUFDaEUsc0RBQThEO0FBQzlELGdFQUFzRjtBQUN0Rix3REFBa0U7QUFFckQsUUFBQSxnQkFBZ0IsR0FBc0I7SUFDakQ7UUFDRSxPQUFPLEVBQUUsa0JBQWtCO1FBQzNCLFdBQVcsRUFBRSxDQUFDLElBQUEsd0JBQVksRUFBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztLQUMvRDtJQUNEO1FBQ0UsT0FBTyxFQUFFLHlCQUF5QjtRQUNsQyxXQUFXLEVBQUUsQ0FBQyxJQUFBLHdCQUFZLEVBQUMsVUFBVSxFQUFFLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7S0FDL0Q7SUFDRCxHQUFHLG1DQUFxQjtJQUN4QixHQUFHLHNDQUF3QjtJQUMzQixHQUFHLHNDQUF3QjtJQUMzQixHQUFHLG9DQUFzQjtJQUN6QixHQUFHLGtEQUFvQztJQUN2QyxHQUFHLHFDQUF1QjtJQUMxQixHQUFHLHNDQUF3QjtDQUM1QixDQUFDIn0=
@@ -0,0 +1,2 @@
1
+ import { MiddlewareRoute } from '@medusajs/framework';
2
+ export declare const storeProductsMiddlewares: MiddlewareRoute[];
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.storeProductsMiddlewares = void 0;
4
+ const framework_1 = require("@medusajs/framework");
5
+ const validators_1 = require("./validators");
6
+ exports.storeProductsMiddlewares = [
7
+ {
8
+ methods: ['POST'],
9
+ matcher: '/store/products/search',
10
+ middlewares: [(0, framework_1.validateAndTransformBody)(validators_1.StoreSearchProductsSchema)]
11
+ }
12
+ ];
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3Byb2R1Y3RzL21pZGRsZXdhcmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1EQUc0QjtBQUU1Qiw2Q0FBd0Q7QUFFM0MsUUFBQSx3QkFBd0IsR0FBc0I7SUFDekQ7UUFDRSxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUM7UUFDakIsT0FBTyxFQUFFLHdCQUF3QjtRQUNqQyxXQUFXLEVBQUUsQ0FBQyxJQUFBLG9DQUF3QixFQUFDLHNDQUF5QixDQUFDLENBQUM7S0FDbkU7Q0FDRixDQUFBIn0=
@@ -0,0 +1,81 @@
1
+ import { MedusaRequest, MedusaResponse } from '@medusajs/framework';
2
+ import { StoreSearchProductsType } from '../validators';
3
+ /**
4
+ * @oas [post] /store/products/search
5
+ * operationId: "StoreSearchProducts"
6
+ * summary: "Search products"
7
+ * description: "Searches products using Algolia and returns hydrated product data from the database. Only product IDs are retrieved from Algolia to avoid the 10KB response limit, all product data is fetched from the database."
8
+ * requestBody:
9
+ * content:
10
+ * application/json:
11
+ * schema:
12
+ * type: object
13
+ * properties:
14
+ * query:
15
+ * type: string
16
+ * description: The search query string
17
+ * page:
18
+ * type: number
19
+ * description: The page number (0-indexed)
20
+ * hitsPerPage:
21
+ * type: number
22
+ * description: Number of results per page
23
+ * filters:
24
+ * type: string
25
+ * description: Algolia filter string
26
+ * facets:
27
+ * type: array
28
+ * items:
29
+ * type: string
30
+ * description: Array of facet attributes to retrieve
31
+ * maxValuesPerFacet:
32
+ * type: number
33
+ * description: Maximum number of facet values to return per facet
34
+ * currency_code:
35
+ * type: string
36
+ * description: Currency code for price calculation
37
+ * region_id:
38
+ * type: string
39
+ * description: Region ID for price calculation
40
+ * customer_id:
41
+ * type: string
42
+ * description: Customer ID for customer-specific price calculation
43
+ * customer_group_id:
44
+ * type: array
45
+ * items:
46
+ * type: string
47
+ * description: Customer group IDs for group-specific price calculation
48
+ * responses:
49
+ * "200":
50
+ * description: OK
51
+ * content:
52
+ * application/json:
53
+ * schema:
54
+ * type: object
55
+ * properties:
56
+ * products:
57
+ * type: array
58
+ * items:
59
+ * type: object
60
+ * nbHits:
61
+ * type: number
62
+ * description: Total number of matching products
63
+ * page:
64
+ * type: number
65
+ * description: Current page number
66
+ * nbPages:
67
+ * type: number
68
+ * description: Total number of pages
69
+ * hitsPerPage:
70
+ * type: number
71
+ * description: Number of results per page
72
+ * facets:
73
+ * type: object
74
+ * description: Facet values and counts
75
+ * processingTimeMS:
76
+ * type: number
77
+ * description: Algolia processing time in milliseconds
78
+ * tags:
79
+ * - Store Products
80
+ */
81
+ export declare const POST: (req: MedusaRequest<StoreSearchProductsType>, res: MedusaResponse) => Promise<MedusaResponse | undefined>;
@@ -0,0 +1,170 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.POST = void 0;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ const framework_1 = require("@mercurjs/framework");
6
+ /**
7
+ * @oas [post] /store/products/search
8
+ * operationId: "StoreSearchProducts"
9
+ * summary: "Search products"
10
+ * description: "Searches products using Algolia and returns hydrated product data from the database. Only product IDs are retrieved from Algolia to avoid the 10KB response limit, all product data is fetched from the database."
11
+ * requestBody:
12
+ * content:
13
+ * application/json:
14
+ * schema:
15
+ * type: object
16
+ * properties:
17
+ * query:
18
+ * type: string
19
+ * description: The search query string
20
+ * page:
21
+ * type: number
22
+ * description: The page number (0-indexed)
23
+ * hitsPerPage:
24
+ * type: number
25
+ * description: Number of results per page
26
+ * filters:
27
+ * type: string
28
+ * description: Algolia filter string
29
+ * facets:
30
+ * type: array
31
+ * items:
32
+ * type: string
33
+ * description: Array of facet attributes to retrieve
34
+ * maxValuesPerFacet:
35
+ * type: number
36
+ * description: Maximum number of facet values to return per facet
37
+ * currency_code:
38
+ * type: string
39
+ * description: Currency code for price calculation
40
+ * region_id:
41
+ * type: string
42
+ * description: Region ID for price calculation
43
+ * customer_id:
44
+ * type: string
45
+ * description: Customer ID for customer-specific price calculation
46
+ * customer_group_id:
47
+ * type: array
48
+ * items:
49
+ * type: string
50
+ * description: Customer group IDs for group-specific price calculation
51
+ * responses:
52
+ * "200":
53
+ * description: OK
54
+ * content:
55
+ * application/json:
56
+ * schema:
57
+ * type: object
58
+ * properties:
59
+ * products:
60
+ * type: array
61
+ * items:
62
+ * type: object
63
+ * nbHits:
64
+ * type: number
65
+ * description: Total number of matching products
66
+ * page:
67
+ * type: number
68
+ * description: Current page number
69
+ * nbPages:
70
+ * type: number
71
+ * description: Total number of pages
72
+ * hitsPerPage:
73
+ * type: number
74
+ * description: Number of results per page
75
+ * facets:
76
+ * type: object
77
+ * description: Facet values and counts
78
+ * processingTimeMS:
79
+ * type: number
80
+ * description: Algolia processing time in milliseconds
81
+ * tags:
82
+ * - Store Products
83
+ */
84
+ const POST = async (req, res) => {
85
+ const algoliaService = req.scope.resolve(framework_1.ALGOLIA_MODULE);
86
+ const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
87
+ const { query: searchQuery, page, hitsPerPage, filters, facets, maxValuesPerFacet, currency_code, region_id, customer_id, customer_group_id } = req.validatedBody;
88
+ const searchParams = {
89
+ query: searchQuery,
90
+ page,
91
+ hitsPerPage,
92
+ attributesToRetrieve: ['id'],
93
+ attributesToHighlight: []
94
+ };
95
+ if (filters) {
96
+ searchParams.filters = filters;
97
+ }
98
+ if (facets) {
99
+ searchParams.facets = facets;
100
+ }
101
+ if (maxValuesPerFacet) {
102
+ searchParams.maxValuesPerFacet = maxValuesPerFacet;
103
+ }
104
+ const algoliaResult = await algoliaService.search(framework_1.IndexType.PRODUCT, searchParams);
105
+ const productIds = algoliaResult.hits.map((hit) => hit.id);
106
+ if (productIds.length === 0) {
107
+ return res.json({
108
+ products: [],
109
+ nbHits: algoliaResult.nbHits,
110
+ page: algoliaResult.page,
111
+ nbPages: algoliaResult.nbPages,
112
+ hitsPerPage: algoliaResult.hitsPerPage,
113
+ facets: algoliaResult.facets,
114
+ facets_stats: algoliaResult.facets_stats,
115
+ processingTimeMS: algoliaResult.processingTimeMS,
116
+ query: algoliaResult.query
117
+ });
118
+ }
119
+ const hasPricingContext = currency_code || region_id || customer_id || customer_group_id;
120
+ const contextParams = {};
121
+ if (hasPricingContext) {
122
+ contextParams.variants = {
123
+ calculated_price: (0, utils_1.QueryContext)({
124
+ ...(currency_code && { currency_code }),
125
+ ...(region_id && { region_id }),
126
+ ...(customer_id && { customer_id }),
127
+ ...(customer_group_id && { customer_group_id })
128
+ })
129
+ };
130
+ }
131
+ const { data: products } = await query.graph({
132
+ entity: 'product',
133
+ fields: [
134
+ '*',
135
+ 'images.*',
136
+ 'options.*',
137
+ 'options.values.*',
138
+ 'variants.*',
139
+ 'variants.options.*',
140
+ 'variants.prices.*',
141
+ ...(hasPricingContext ? ['variants.calculated_price.*'] : []),
142
+ 'categories.*',
143
+ 'collection.*',
144
+ 'type.*',
145
+ 'tags.*',
146
+ 'seller.*'
147
+ ],
148
+ filters: {
149
+ id: productIds
150
+ },
151
+ ...(Object.keys(contextParams).length > 0 && { context: contextParams })
152
+ });
153
+ const productMap = new Map(products.map((p) => [p.id, p]));
154
+ const orderedProducts = productIds
155
+ .map((id) => productMap.get(id))
156
+ .filter(Boolean);
157
+ res.json({
158
+ products: orderedProducts,
159
+ nbHits: algoliaResult.nbHits,
160
+ page: algoliaResult.page,
161
+ nbPages: algoliaResult.nbPages,
162
+ hitsPerPage: algoliaResult.hitsPerPage,
163
+ facets: algoliaResult.facets,
164
+ facets_stats: algoliaResult.facets_stats,
165
+ processingTimeMS: algoliaResult.processingTimeMS,
166
+ query: algoliaResult.query
167
+ });
168
+ };
169
+ exports.POST = POST;
170
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3Byb2R1Y3RzL3NlYXJjaC9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxxREFHa0M7QUFDbEMsbURBSTRCO0FBUTVCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTZFRztBQUNJLE1BQU0sSUFBSSxHQUFHLEtBQUssRUFDdkIsR0FBMkMsRUFDM0MsR0FBbUIsRUFDbkIsRUFBRTtJQUNGLE1BQU0sY0FBYyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUF3QiwwQkFBYyxDQUFDLENBQUE7SUFDL0UsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUE7SUFFaEUsTUFBTSxFQUNKLEtBQUssRUFBRSxXQUFXLEVBQ2xCLElBQUksRUFDSixXQUFXLEVBQ1gsT0FBTyxFQUNQLE1BQU0sRUFDTixpQkFBaUIsRUFDakIsYUFBYSxFQUNiLFNBQVMsRUFDVCxXQUFXLEVBQ1gsaUJBQWlCLEVBQ2xCLEdBQUcsR0FBRyxDQUFDLGFBQWEsQ0FBQTtJQUVyQixNQUFNLFlBQVksR0FBNEI7UUFDNUMsS0FBSyxFQUFFLFdBQVc7UUFDbEIsSUFBSTtRQUNKLFdBQVc7UUFDWCxvQkFBb0IsRUFBRSxDQUFDLElBQUksQ0FBQztRQUM1QixxQkFBcUIsRUFBRSxFQUFFO0tBQzFCLENBQUE7SUFFRCxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ1osWUFBWSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUE7SUFDaEMsQ0FBQztJQUNELElBQUksTUFBTSxFQUFFLENBQUM7UUFDWCxZQUFZLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQTtJQUM5QixDQUFDO0lBQ0Qs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
@@ -0,0 +1,36 @@
1
+ import { z } from 'zod';
2
+ export type StoreSearchProductsType = z.infer<typeof StoreSearchProductsSchema>;
3
+ export declare const StoreSearchProductsSchema: z.ZodObject<{
4
+ query: z.ZodDefault<z.ZodString>;
5
+ page: z.ZodDefault<z.ZodNumber>;
6
+ hitsPerPage: z.ZodDefault<z.ZodNumber>;
7
+ filters: z.ZodOptional<z.ZodString>;
8
+ facets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
9
+ maxValuesPerFacet: z.ZodOptional<z.ZodNumber>;
10
+ currency_code: z.ZodOptional<z.ZodString>;
11
+ region_id: z.ZodOptional<z.ZodString>;
12
+ customer_id: z.ZodOptional<z.ZodString>;
13
+ customer_group_id: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
14
+ }, "strip", z.ZodTypeAny, {
15
+ query: string;
16
+ page: number;
17
+ hitsPerPage: number;
18
+ filters?: string | undefined;
19
+ facets?: string[] | undefined;
20
+ maxValuesPerFacet?: number | undefined;
21
+ currency_code?: string | undefined;
22
+ region_id?: string | undefined;
23
+ customer_id?: string | undefined;
24
+ customer_group_id?: string[] | undefined;
25
+ }, {
26
+ query?: string | undefined;
27
+ page?: number | undefined;
28
+ hitsPerPage?: number | undefined;
29
+ filters?: string | undefined;
30
+ facets?: string[] | undefined;
31
+ maxValuesPerFacet?: number | undefined;
32
+ currency_code?: string | undefined;
33
+ region_id?: string | undefined;
34
+ customer_id?: string | undefined;
35
+ customer_group_id?: string[] | undefined;
36
+ }>;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StoreSearchProductsSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ exports.StoreSearchProductsSchema = zod_1.z.object({
6
+ query: zod_1.z.string().default(''),
7
+ page: zod_1.z.coerce.number().int().min(0).default(0),
8
+ hitsPerPage: zod_1.z.coerce.number().int().min(1).max(100).default(12),
9
+ filters: zod_1.z.string().optional(),
10
+ facets: zod_1.z.array(zod_1.z.string()).optional(),
11
+ maxValuesPerFacet: zod_1.z.coerce.number().int().min(1).max(1000).optional(),
12
+ currency_code: zod_1.z.string().length(3).optional(),
13
+ region_id: zod_1.z.string().optional(),
14
+ customer_id: zod_1.z.string().optional(),
15
+ customer_group_id: zod_1.z.array(zod_1.z.string()).optional()
16
+ });
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcGkvc3RvcmUvcHJvZHVjdHMvdmFsaWRhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2QkFBdUI7QUFJVixRQUFBLHlCQUF5QixHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUM7SUFDaEQsS0FBSyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO0lBQzdCLElBQUksRUFBRSxPQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQy9DLFdBQVcsRUFBRSxPQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztJQUNoRSxPQUFPLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM5QixNQUFNLEVBQUUsT0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDdEMsaUJBQWlCLEVBQUUsT0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUN0RSxhQUFhLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDOUMsU0FBUyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDaEMsV0FBVyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDbEMsaUJBQWlCLEVBQUUsT0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUU7Q0FDbEQsQ0FBQyxDQUFBIn0=
@@ -1,2 +1,2 @@
1
- import { MiddlewareRoute } from '@medusajs/medusa';
1
+ import { MiddlewareRoute } from "@medusajs/medusa";
2
2
  export declare const storeWishlistMiddlewares: MiddlewareRoute[];
@@ -1,39 +1,61 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.storeWishlistMiddlewares = void 0;
7
4
  const framework_1 = require("@medusajs/framework");
8
- const customer_wishlist_1 = __importDefault(require("../../../links/customer-wishlist"));
9
- const check_customer_ownership_1 = require("../../../shared/infra/http/middlewares/check-customer-ownership");
10
- const query_config_1 = require("./query-config");
11
- const validators_1 = require("./validators");
5
+ const medusa_1 = require("@medusajs/medusa");
6
+ const utils_1 = require("@medusajs/framework/utils");
7
+ const query_config_1 = require("@medusajs/medusa/api/store/products/query-config");
8
+ const validators_1 = require("@medusajs/medusa/api/store/products/validators");
9
+ const query_config_2 = require("./query-config");
10
+ const validators_2 = require("./validators");
11
+ const http_1 = require("@medusajs/framework/http");
12
+ const index_1 = require("@medusajs/medusa/api/utils/middlewares/index");
12
13
  exports.storeWishlistMiddlewares = [
13
14
  {
14
- method: ['GET'],
15
- matcher: '/store/wishlist',
15
+ method: ["GET"],
16
+ matcher: "/store/wishlist",
16
17
  middlewares: [
17
- (0, framework_1.validateAndTransformQuery)(validators_1.StoreGetWishlistsParams, query_config_1.storeWishlistQueryConfig.list)
18
- ]
18
+ (0, medusa_1.authenticate)("customer", ["bearer", "session"]),
19
+ (0, framework_1.validateAndTransformQuery)(validators_1.StoreGetProductsParams, query_config_1.listProductQueryConfig),
20
+ (0, index_1.filterByValidSalesChannels)(),
21
+ (0, http_1.maybeApplyLinkFilter)({
22
+ entryPoint: "product_sales_channel",
23
+ resourceId: "product_id",
24
+ filterableField: "sales_channel_id",
25
+ }),
26
+ (0, http_1.applyDefaultFilters)({
27
+ status: utils_1.ProductStatus.PUBLISHED,
28
+ // TODO: the type here seems off and the implementation does not take into account $and and $or possible filters. Might be worth re working (original type used here was StoreGetProductsParamsType)
29
+ categories: (filters, fields) => {
30
+ const categoryIds = filters.category_id;
31
+ delete filters.category_id;
32
+ if (!(0, utils_1.isPresent)(categoryIds)) {
33
+ return;
34
+ }
35
+ return { id: categoryIds, is_internal: false, is_active: true };
36
+ },
37
+ }),
38
+ (0, index_1.normalizeDataForContext)(),
39
+ (0, index_1.setPricingContext)(),
40
+ (0, index_1.setTaxContext)(),
41
+ (0, http_1.clearFiltersByKey)(["region_id", "country_code", "province", "cart_id"]),
42
+ ],
19
43
  },
20
44
  {
21
- method: ['POST'],
22
- matcher: '/store/wishlist',
45
+ method: ["POST"],
46
+ matcher: "/store/wishlist",
23
47
  middlewares: [
24
- (0, framework_1.validateAndTransformQuery)(validators_1.StoreGetWishlistsParams, query_config_1.storeWishlistQueryConfig.retrieve),
25
- (0, framework_1.validateAndTransformBody)(validators_1.StoreCreateWishlist)
26
- ]
48
+ (0, medusa_1.authenticate)("customer", ["bearer", "session"]),
49
+ (0, framework_1.validateAndTransformQuery)(validators_2.StoreGetWishlistsParams, query_config_2.storeWishlistQueryConfig.retrieve),
50
+ (0, framework_1.validateAndTransformBody)(validators_2.StoreCreateWishlist),
51
+ ],
27
52
  },
28
53
  {
29
- method: ['DELETE'],
30
- matcher: '/store/wishlist/:id/product/:reference_id',
54
+ method: ["DELETE"],
55
+ matcher: "/store/wishlist/product/:reference_id",
31
56
  middlewares: [
32
- (0, check_customer_ownership_1.checkCustomerResourceOwnershipByResourceId)({
33
- entryPoint: customer_wishlist_1.default.entryPoint,
34
- filterField: 'wishlist_id'
35
- })
36
- ]
37
- }
57
+ (0, medusa_1.authenticate)("customer", ["bearer", "session"]),
58
+ ],
59
+ },
38
60
  ];
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3dpc2hsaXN0L21pZGRsZXdhcmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG1EQUc0QjtBQUc1Qix5RkFBK0Q7QUFDL0QsOEdBQTRIO0FBQzVILGlEQUF5RDtBQUN6RCw2Q0FBMkU7QUFFOUQsUUFBQSx3QkFBd0IsR0FBc0I7SUFDekQ7UUFDRSxNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUM7UUFDZixPQUFPLEVBQUUsaUJBQWlCO1FBQzFCLFdBQVcsRUFBRTtZQUNYLElBQUEscUNBQXlCLEVBQ3ZCLG9DQUF1QixFQUN2Qix1Q0FBd0IsQ0FBQyxJQUFJLENBQzlCO1NBQ0Y7S0FDRjtJQUNEO1FBQ0UsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDO1FBQ2hCLE9BQU8sRUFBRSxpQkFBaUI7UUFDMUIsV0FBVyxFQUFFO1lBQ1gsSUFBQSxxQ0FBeUIsRUFDdkIsb0NBQXVCLEVBQ3ZCLHVDQUF3QixDQUFDLFFBQVEsQ0FDbEM7WUFDRCxJQUFBLG9DQUF3QixFQUFDLGdDQUFtQixDQUFDO1NBQzlDO0tBQ0Y7SUFDRDtRQUNFLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQztRQUNsQixPQUFPLEVBQUUsMkNBQTJDO1FBQ3BELFdBQVcsRUFBRTtZQUNYLElBQUEscUVBQTBDLEVBQUM7Z0JBQ3pDLFVBQVUsRUFBRSwyQkFBZ0IsQ0FBQyxVQUFVO2dCQUN2QyxXQUFXLEVBQUUsYUFBYTthQUMzQixDQUFDO1NBQ0g7S0FDRjtDQUNGLENBQUEifQ==
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3dpc2hsaXN0L21pZGRsZXdhcmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1EQUc2QjtBQUM3Qiw2Q0FBaUU7QUFFakUscURBQXFFO0FBQ3JFLG1GQUEwRjtBQUMxRiwrRUFBd0Y7QUFHeEYsaURBQTBEO0FBQzFELDZDQUE0RTtBQUU1RSxtREFJa0M7QUFDbEMsd0VBS3NEO0FBRXpDLFFBQUEsd0JBQXdCLEdBQXNCO0lBQ3pEO1FBQ0UsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDO1FBQ2YsT0FBTyxFQUFFLGlCQUFpQjtRQUMxQixXQUFXLEVBQUU7WUFDWCxJQUFBLHFCQUFZLEVBQUMsVUFBVSxFQUFFLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQy9DLElBQUEscUNBQXlCLEVBQUMsbUNBQXNCLEVBQUUscUNBQXNCLENBQUM7WUFDekUsSUFBQSxrQ0FBMEIsR0FBRTtZQUM1QixJQUFBLDJCQUFvQixFQUFDO2dCQUNuQixVQUFVLEVBQUUsdUJBQXVCO2dCQUNuQyxVQUFVLEVBQUUsWUFBWTtnQkFDeEIsZUFBZSxFQUFFLGtCQUFrQjthQUNwQyxDQUFDO1lBQ0YsSUFBQSwwQkFBbUIsRUFBQztnQkFDbEIsTUFBTSxFQUFFLHFCQUFhLENBQUMsU0FBUztnQkFDL0Isb01BQW9NO2dCQUNwTSxVQUFVLEVBQUUsQ0FBQyxPQUFZLEVBQUUsTUFBZ0IsRUFBRSxFQUFFO29CQUM3QyxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDO29CQUN4QyxPQUFPLE9BQU8sQ0FBQyxXQUFXLENBQUM7b0JBRTNCLElBQUksQ0FBQyxJQUFBLGlCQUFTLEVBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQzt3QkFDNUIsT0FBTztvQkFDVCxDQUFDO29CQUVELE9BQU8sRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDO2dCQUNsRSxDQUFDO2FBQ0YsQ0FBQztZQUNGLElBQUEsK0JBQXVCLEdBQUU7WUFDekIsSUFBQSx5QkFBaUIsR0FBRTtZQUNuQixJQUFBLHFCQUFhLEdBQUU7WUFDZixJQUFBLHdCQUFpQixFQUFDLENBQUMsV0FBVyxFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsU0FBUyxDQUFDLENBQUM7U0FDeEU7S0FDRjtJQUNEO1FBQ0UsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDO1FBQ2hCLE9BQU8sRUFBRSxpQkFBaUI7UUFDMUIsV0FBVyxFQUFFO1lBQ1gsSUFBQSxxQkFBWSxFQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUMvQyxJQUFBLHFDQUF5QixFQUN2QixvQ0FBdUIsRUFDdkIsdUNBQXdCLENBQUMsUUFBUSxDQUNsQztZQUNELElBQUEsb0NBQXdCLEVBQUMsZ0NBQW1CLENBQUM7U0FDOUM7S0FDRjtJQUNEO1FBQ0UsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDO1FBQ2xCLE9BQU8sRUFBRSx1Q0FBdUM7UUFDaEQsV0FBVyxFQUFFO1lBQ1gsSUFBQSxxQkFBWSxFQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQztTQUNoRDtLQUNGO0NBQ0YsQ0FBQyJ9