@mercurjs/b2c-core 1.5.1 → 1.5.2
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.
- package/.medusa/server/src/api/admin/custom/middlewares.d.ts +2 -0
- package/.medusa/server/src/api/admin/custom/middlewares.js +8 -0
- package/.medusa/server/src/api/admin/custom/product-variants/middlewares.d.ts +2 -0
- package/.medusa/server/src/api/admin/custom/product-variants/middlewares.js +16 -0
- package/.medusa/server/src/api/admin/custom/product-variants/query-config.d.ts +7 -0
- package/.medusa/server/src/api/admin/custom/product-variants/query-config.js +48 -0
- package/.medusa/server/src/api/admin/custom/product-variants/route.d.ts +100 -0
- package/.medusa/server/src/api/admin/custom/product-variants/route.js +133 -0
- package/.medusa/server/src/api/admin/custom/product-variants/utils.d.ts +19 -0
- package/.medusa/server/src/api/admin/custom/product-variants/utils.js +31 -0
- package/.medusa/server/src/api/admin/custom/product-variants/validators.d.ts +327 -0
- package/.medusa/server/src/api/admin/custom/product-variants/validators.js +34 -0
- package/.medusa/server/src/api/admin/middlewares.js +13 -7
- package/.medusa/server/src/api/admin/orders/[id]/route.d.ts +3 -3
- package/.medusa/server/src/api/admin/orders/[id]/route.js +6 -6
- package/.medusa/server/src/api/admin/orders/middlewares.d.ts +2 -0
- package/.medusa/server/src/api/admin/orders/middlewares.js +17 -0
- package/.medusa/server/src/api/admin/products/validators.d.ts +98 -98
- package/.medusa/server/src/api/admin/reservations/middlewares.d.ts +2 -0
- package/.medusa/server/src/api/admin/reservations/middlewares.js +12 -0
- package/.medusa/server/src/api/store/carts/[id]/line-items/[line_id]/route.js +2 -2
- package/.medusa/server/src/api/store/carts/[id]/route.d.ts +6 -0
- package/.medusa/server/src/api/store/carts/[id]/route.js +32 -0
- package/.medusa/server/src/api/store/carts/middlewares.js +4 -5
- package/.medusa/server/src/api/store/wishlist/middlewares.js +2 -2
- package/.medusa/server/src/api/store/wishlist/route.js +3 -4
- package/.medusa/server/src/api/vendor/campaigns/[id]/promotions/route.d.ts +22 -44
- package/.medusa/server/src/api/vendor/campaigns/[id]/promotions/route.js +31 -46
- package/.medusa/server/src/api/vendor/campaigns/middlewares.js +30 -18
- package/.medusa/server/src/api/vendor/campaigns/query-config.js +2 -2
- package/.medusa/server/src/api/vendor/campaigns/validators.d.ts +11 -0
- package/.medusa/server/src/api/vendor/campaigns/validators.js +3 -2
- package/.medusa/server/src/api/vendor/customer-groups/validators.js +1 -1
- package/.medusa/server/src/api/vendor/customers/route.js +2 -2
- package/.medusa/server/src/api/vendor/inventory-items/[id]/location-levels/[location_id]/route.d.ts +1 -2
- package/.medusa/server/src/api/vendor/inventory-items/[id]/location-levels/[location_id]/route.js +1 -1
- package/.medusa/server/src/api/vendor/inventory-items/validators.d.ts +8 -8
- package/.medusa/server/src/api/vendor/me/route.d.ts +1 -2
- package/.medusa/server/src/api/vendor/me/route.js +1 -1
- package/.medusa/server/src/api/vendor/members/[id]/route.js +3 -3
- package/.medusa/server/src/api/vendor/price-lists/validators.d.ts +2 -2
- package/.medusa/server/src/api/vendor/product-types/validators.d.ts +153 -1
- package/.medusa/server/src/api/vendor/product-types/validators.js +6 -3
- package/.medusa/server/src/api/vendor/products/[id]/variants/[variant_id]/media/route.d.ts +3 -0
- package/.medusa/server/src/api/vendor/products/[id]/variants/[variant_id]/media/route.js +20 -0
- package/.medusa/server/src/api/vendor/products/batch/route.d.ts +34 -0
- package/.medusa/server/src/api/vendor/products/batch/route.js +79 -0
- package/.medusa/server/src/api/vendor/products/middlewares.js +19 -5
- package/.medusa/server/src/api/vendor/products/route.js +4 -4
- package/.medusa/server/src/api/vendor/products/utils.d.ts +16 -1
- package/.medusa/server/src/api/vendor/products/utils.js +69 -3
- package/.medusa/server/src/api/vendor/products/validators.d.ts +218 -102
- package/.medusa/server/src/api/vendor/products/validators.js +52 -2
- package/.medusa/server/src/api/vendor/reservations/middlewares.d.ts +4 -1
- package/.medusa/server/src/api/vendor/reservations/middlewares.js +23 -3
- package/.medusa/server/src/api/vendor/reservations/route.js +5 -3
- package/.medusa/server/src/api/vendor/reservations/validators.d.ts +45 -3
- package/.medusa/server/src/api/vendor/reservations/validators.js +5 -1
- package/.medusa/server/src/api/vendor/sellers/validators.js +1 -1
- package/.medusa/server/src/api/vendor/stock-locations/[id]/route.d.ts +1 -2
- package/.medusa/server/src/api/vendor/stock-locations/[id]/route.js +1 -1
- package/.medusa/server/src/modules/payout/services/provider.js +1 -2
- package/.medusa/server/src/modules/seller/migrations/Migration20260114091400.d.ts +5 -0
- package/.medusa/server/src/modules/seller/migrations/Migration20260114091400.js +32 -0
- package/.medusa/server/src/modules/seller/service.js +2 -2
- package/.medusa/server/src/shared/infra/http/middlewares/check-ownership.d.ts +16 -7
- package/.medusa/server/src/shared/infra/http/middlewares/check-ownership.js +26 -18
- package/.medusa/server/src/shared/infra/http/middlewares/index.d.ts +1 -0
- package/.medusa/server/src/shared/infra/http/middlewares/index.js +2 -1
- package/.medusa/server/src/shared/infra/http/middlewares/reject-seller-linked-stock-location.d.ts +19 -0
- package/.medusa/server/src/shared/infra/http/middlewares/reject-seller-linked-stock-location.js +28 -0
- package/.medusa/server/src/shared/infra/http/middlewares/vendor-promotions-rule-attribute-options-path-params-guard.js +2 -2
- package/.medusa/server/src/shared/infra/http/middlewares/vendor-promotions-rule-value-options-path-params-guard.js +2 -2
- package/.medusa/server/src/shared/infra/http/utils/products.js +2 -2
- package/.medusa/server/src/shared/infra/http/utils/unless-base-url.d.ts +1 -3
- package/.medusa/server/src/shared/infra/http/utils/unless-base-url.js +1 -1
- package/.medusa/server/src/subscribers/notification-seller-new-order.d.ts +1 -1
- package/.medusa/server/src/subscribers/notification-seller-new-order.js +44 -37
- package/.medusa/server/src/subscribers/payout-webhook.js +1 -1
- package/.medusa/server/src/subscribers/seller-status-changed.js +2 -3
- package/.medusa/server/src/utils/stock-locations.d.ts +9 -0
- package/.medusa/server/src/utils/stock-locations.js +231 -0
- package/.medusa/server/src/workflows/attribute/steps/update-attributes.js +1 -1
- package/.medusa/server/src/workflows/attribute/utils/validate-attribute-values-to-link.js +2 -2
- package/.medusa/server/src/workflows/cart/steps/create-order-set.js +1 -1
- package/.medusa/server/src/workflows/cart/utils/prepare-confirm-inventory-input.js +1 -1
- package/.medusa/server/src/workflows/cart/workflows/split-and-complete-cart.js +5 -7
- package/.medusa/server/src/workflows/configuration/steps/create-configuration-rule.js +1 -1
- package/.medusa/server/src/workflows/fulfillment-set/create-vendor-service-zone.js +2 -2
- package/.medusa/server/src/workflows/hooks/add-order-line-items-pricing-context.d.ts +1 -0
- package/.medusa/server/src/workflows/hooks/add-order-line-items-pricing-context.js +75 -0
- package/.medusa/server/src/workflows/hooks/fetch-shipping-option-pricing-context.js +4 -4
- package/.medusa/server/src/workflows/hooks/product-deleted.js +12 -5
- package/.medusa/server/src/workflows/order/steps/create-payout.js +1 -1
- package/.medusa/server/src/workflows/order/steps/validate-seller-payout-account.js +2 -2
- package/.medusa/server/src/workflows/payout/steps/update-payout-account.js +1 -1
- package/.medusa/server/src/workflows/price-list/steps/validate-vendor-price-list-prices.js +2 -2
- package/.medusa/server/src/workflows/price-list/workflows/create-vendor-price-list.js +2 -2
- package/.medusa/server/src/workflows/product/steps/update-product-status.js +7 -1
- package/.medusa/server/src/workflows/product-variants/helpers/product-variant-filter-helper.d.ts +24 -0
- package/.medusa/server/src/workflows/product-variants/helpers/product-variant-filter-helper.js +39 -0
- package/.medusa/server/src/workflows/product-variants/index.d.ts +3 -0
- package/.medusa/server/src/workflows/product-variants/index.js +20 -0
- package/.medusa/server/src/workflows/product-variants/steps/filter-variants-combined.d.ts +4 -0
- package/.medusa/server/src/workflows/product-variants/steps/filter-variants-combined.js +63 -0
- package/.medusa/server/src/workflows/product-variants/steps/get-seller-product-ids.d.ts +4 -0
- package/.medusa/server/src/workflows/product-variants/steps/get-seller-product-ids.js +28 -0
- package/.medusa/server/src/workflows/product-variants/steps/index.d.ts +2 -0
- package/.medusa/server/src/workflows/product-variants/steps/index.js +19 -0
- package/.medusa/server/src/workflows/product-variants/types.d.ts +10 -0
- package/.medusa/server/src/workflows/product-variants/types.js +3 -0
- package/.medusa/server/src/workflows/product-variants/workflows/index.d.ts +1 -0
- package/.medusa/server/src/workflows/product-variants/workflows/index.js +18 -0
- package/.medusa/server/src/workflows/product-variants/workflows/list-filtered-product-variants.d.ts +31 -0
- package/.medusa/server/src/workflows/product-variants/workflows/list-filtered-product-variants.js +115 -0
- package/.medusa/server/src/workflows/promotions/steps/ensure-seller-product-rule-after-deletion.d.ts +8 -0
- package/.medusa/server/src/workflows/promotions/steps/ensure-seller-product-rule-after-deletion.js +87 -0
- package/.medusa/server/src/workflows/promotions/steps/index.d.ts +1 -1
- package/.medusa/server/src/workflows/promotions/steps/index.js +2 -2
- package/.medusa/server/src/workflows/promotions/steps/inject-seller-product-rule.js +4 -1
- package/.medusa/server/src/workflows/promotions/utils/sync-seller-product-rule-values.d.ts +2 -0
- package/.medusa/server/src/workflows/promotions/utils/sync-seller-product-rule-values.js +165 -0
- package/.medusa/server/src/workflows/promotions/workflows/batch-vendor-promotion-rules.js +7 -6
- package/.medusa/server/src/workflows/seller/steps/create-member.js +1 -1
- package/.medusa/server/src/workflows/seller/steps/create-payment-account.js +1 -1
- package/.medusa/server/src/workflows/seller/steps/create-payout-onboarding.js +1 -1
- package/.medusa/server/src/workflows/seller/steps/sync-stripe-account.js +1 -1
- package/.medusa/server/src/workflows/seller/steps/update-member-invite.js +3 -3
- package/.medusa/server/src/workflows/seller/steps/update-seller.js +2 -3
- package/.medusa/server/src/workflows/seller/steps/validate-products-to-import.d.ts +23 -23
- package/.medusa/server/src/workflows/seller/workflows/import-seller-products.js +2 -2
- package/.medusa/server/src/workflows/wishlist/steps/create-wishlist.js +1 -1
- package/package.json +1 -1
- package/.medusa/server/src/workflows/promotions/steps/verify-seller-product-rule-deletion.d.ts +0 -9
- package/.medusa/server/src/workflows/promotions/steps/verify-seller-product-rule-deletion.js +0 -27
|
@@ -1,9 +1,85 @@
|
|
|
1
|
-
import { z } from
|
|
1
|
+
import { z } from "zod";
|
|
2
2
|
export declare const VendorGetProductTypesParamsFields: z.ZodObject<{
|
|
3
3
|
q: z.ZodOptional<z.ZodString>;
|
|
4
|
+
created_at: z.ZodOptional<z.ZodEffects<z.ZodOptional<z.ZodObject<{
|
|
5
|
+
$gte: z.ZodOptional<z.ZodString>;
|
|
6
|
+
$lte: z.ZodOptional<z.ZodString>;
|
|
7
|
+
$gt: z.ZodOptional<z.ZodString>;
|
|
8
|
+
$lt: z.ZodOptional<z.ZodString>;
|
|
9
|
+
$eq: z.ZodOptional<z.ZodString>;
|
|
10
|
+
$ne: z.ZodOptional<z.ZodString>;
|
|
11
|
+
}, "strip", z.ZodTypeAny, {
|
|
12
|
+
$gte?: string | undefined;
|
|
13
|
+
$lte?: string | undefined;
|
|
14
|
+
$gt?: string | undefined;
|
|
15
|
+
$lt?: string | undefined;
|
|
16
|
+
$eq?: string | undefined;
|
|
17
|
+
$ne?: string | undefined;
|
|
18
|
+
}, {
|
|
19
|
+
$gte?: string | undefined;
|
|
20
|
+
$lte?: string | undefined;
|
|
21
|
+
$gt?: string | undefined;
|
|
22
|
+
$lt?: string | undefined;
|
|
23
|
+
$eq?: string | undefined;
|
|
24
|
+
$ne?: string | undefined;
|
|
25
|
+
}>>, {
|
|
26
|
+
$gte?: string | undefined;
|
|
27
|
+
$lte?: string | undefined;
|
|
28
|
+
$gt?: string | undefined;
|
|
29
|
+
$lt?: string | undefined;
|
|
30
|
+
$eq?: string | undefined;
|
|
31
|
+
$ne?: string | undefined;
|
|
32
|
+
} | undefined, unknown>>;
|
|
33
|
+
updated_at: z.ZodOptional<z.ZodEffects<z.ZodOptional<z.ZodObject<{
|
|
34
|
+
$gte: z.ZodOptional<z.ZodString>;
|
|
35
|
+
$lte: z.ZodOptional<z.ZodString>;
|
|
36
|
+
$gt: z.ZodOptional<z.ZodString>;
|
|
37
|
+
$lt: z.ZodOptional<z.ZodString>;
|
|
38
|
+
$eq: z.ZodOptional<z.ZodString>;
|
|
39
|
+
$ne: z.ZodOptional<z.ZodString>;
|
|
40
|
+
}, "strip", z.ZodTypeAny, {
|
|
41
|
+
$gte?: string | undefined;
|
|
42
|
+
$lte?: string | undefined;
|
|
43
|
+
$gt?: string | undefined;
|
|
44
|
+
$lt?: string | undefined;
|
|
45
|
+
$eq?: string | undefined;
|
|
46
|
+
$ne?: string | undefined;
|
|
47
|
+
}, {
|
|
48
|
+
$gte?: string | undefined;
|
|
49
|
+
$lte?: string | undefined;
|
|
50
|
+
$gt?: string | undefined;
|
|
51
|
+
$lt?: string | undefined;
|
|
52
|
+
$eq?: string | undefined;
|
|
53
|
+
$ne?: string | undefined;
|
|
54
|
+
}>>, {
|
|
55
|
+
$gte?: string | undefined;
|
|
56
|
+
$lte?: string | undefined;
|
|
57
|
+
$gt?: string | undefined;
|
|
58
|
+
$lt?: string | undefined;
|
|
59
|
+
$eq?: string | undefined;
|
|
60
|
+
$ne?: string | undefined;
|
|
61
|
+
} | undefined, unknown>>;
|
|
4
62
|
}, "strip", z.ZodTypeAny, {
|
|
63
|
+
created_at?: {
|
|
64
|
+
$gte?: string | undefined;
|
|
65
|
+
$lte?: string | undefined;
|
|
66
|
+
$gt?: string | undefined;
|
|
67
|
+
$lt?: string | undefined;
|
|
68
|
+
$eq?: string | undefined;
|
|
69
|
+
$ne?: string | undefined;
|
|
70
|
+
} | undefined;
|
|
71
|
+
updated_at?: {
|
|
72
|
+
$gte?: string | undefined;
|
|
73
|
+
$lte?: string | undefined;
|
|
74
|
+
$gt?: string | undefined;
|
|
75
|
+
$lt?: string | undefined;
|
|
76
|
+
$eq?: string | undefined;
|
|
77
|
+
$ne?: string | undefined;
|
|
78
|
+
} | undefined;
|
|
5
79
|
q?: string | undefined;
|
|
6
80
|
}, {
|
|
81
|
+
created_at?: unknown;
|
|
82
|
+
updated_at?: unknown;
|
|
7
83
|
q?: string | undefined;
|
|
8
84
|
}>;
|
|
9
85
|
export type VendorGetProductTypesParamsType = z.infer<typeof VendorGetProductTypesParams>;
|
|
@@ -16,14 +92,90 @@ export declare const VendorGetProductTypesParams: z.ZodObject<{
|
|
|
16
92
|
with_deleted: z.ZodEffects<z.ZodOptional<z.ZodBoolean>, boolean | undefined, unknown>;
|
|
17
93
|
} & {
|
|
18
94
|
q: z.ZodOptional<z.ZodString>;
|
|
95
|
+
created_at: z.ZodOptional<z.ZodEffects<z.ZodOptional<z.ZodObject<{
|
|
96
|
+
$gte: z.ZodOptional<z.ZodString>;
|
|
97
|
+
$lte: z.ZodOptional<z.ZodString>;
|
|
98
|
+
$gt: z.ZodOptional<z.ZodString>;
|
|
99
|
+
$lt: z.ZodOptional<z.ZodString>;
|
|
100
|
+
$eq: z.ZodOptional<z.ZodString>;
|
|
101
|
+
$ne: z.ZodOptional<z.ZodString>;
|
|
102
|
+
}, "strip", z.ZodTypeAny, {
|
|
103
|
+
$gte?: string | undefined;
|
|
104
|
+
$lte?: string | undefined;
|
|
105
|
+
$gt?: string | undefined;
|
|
106
|
+
$lt?: string | undefined;
|
|
107
|
+
$eq?: string | undefined;
|
|
108
|
+
$ne?: string | undefined;
|
|
109
|
+
}, {
|
|
110
|
+
$gte?: string | undefined;
|
|
111
|
+
$lte?: string | undefined;
|
|
112
|
+
$gt?: string | undefined;
|
|
113
|
+
$lt?: string | undefined;
|
|
114
|
+
$eq?: string | undefined;
|
|
115
|
+
$ne?: string | undefined;
|
|
116
|
+
}>>, {
|
|
117
|
+
$gte?: string | undefined;
|
|
118
|
+
$lte?: string | undefined;
|
|
119
|
+
$gt?: string | undefined;
|
|
120
|
+
$lt?: string | undefined;
|
|
121
|
+
$eq?: string | undefined;
|
|
122
|
+
$ne?: string | undefined;
|
|
123
|
+
} | undefined, unknown>>;
|
|
124
|
+
updated_at: z.ZodOptional<z.ZodEffects<z.ZodOptional<z.ZodObject<{
|
|
125
|
+
$gte: z.ZodOptional<z.ZodString>;
|
|
126
|
+
$lte: z.ZodOptional<z.ZodString>;
|
|
127
|
+
$gt: z.ZodOptional<z.ZodString>;
|
|
128
|
+
$lt: z.ZodOptional<z.ZodString>;
|
|
129
|
+
$eq: z.ZodOptional<z.ZodString>;
|
|
130
|
+
$ne: z.ZodOptional<z.ZodString>;
|
|
131
|
+
}, "strip", z.ZodTypeAny, {
|
|
132
|
+
$gte?: string | undefined;
|
|
133
|
+
$lte?: string | undefined;
|
|
134
|
+
$gt?: string | undefined;
|
|
135
|
+
$lt?: string | undefined;
|
|
136
|
+
$eq?: string | undefined;
|
|
137
|
+
$ne?: string | undefined;
|
|
138
|
+
}, {
|
|
139
|
+
$gte?: string | undefined;
|
|
140
|
+
$lte?: string | undefined;
|
|
141
|
+
$gt?: string | undefined;
|
|
142
|
+
$lt?: string | undefined;
|
|
143
|
+
$eq?: string | undefined;
|
|
144
|
+
$ne?: string | undefined;
|
|
145
|
+
}>>, {
|
|
146
|
+
$gte?: string | undefined;
|
|
147
|
+
$lte?: string | undefined;
|
|
148
|
+
$gt?: string | undefined;
|
|
149
|
+
$lt?: string | undefined;
|
|
150
|
+
$eq?: string | undefined;
|
|
151
|
+
$ne?: string | undefined;
|
|
152
|
+
} | undefined, unknown>>;
|
|
19
153
|
}, "strict", z.ZodTypeAny, {
|
|
20
154
|
offset: number;
|
|
21
155
|
limit: number;
|
|
156
|
+
created_at?: {
|
|
157
|
+
$gte?: string | undefined;
|
|
158
|
+
$lte?: string | undefined;
|
|
159
|
+
$gt?: string | undefined;
|
|
160
|
+
$lt?: string | undefined;
|
|
161
|
+
$eq?: string | undefined;
|
|
162
|
+
$ne?: string | undefined;
|
|
163
|
+
} | undefined;
|
|
164
|
+
updated_at?: {
|
|
165
|
+
$gte?: string | undefined;
|
|
166
|
+
$lte?: string | undefined;
|
|
167
|
+
$gt?: string | undefined;
|
|
168
|
+
$lt?: string | undefined;
|
|
169
|
+
$eq?: string | undefined;
|
|
170
|
+
$ne?: string | undefined;
|
|
171
|
+
} | undefined;
|
|
22
172
|
fields?: string | undefined;
|
|
23
173
|
order?: string | undefined;
|
|
24
174
|
with_deleted?: boolean | undefined;
|
|
25
175
|
q?: string | undefined;
|
|
26
176
|
}, {
|
|
177
|
+
created_at?: unknown;
|
|
178
|
+
updated_at?: unknown;
|
|
27
179
|
offset?: unknown;
|
|
28
180
|
limit?: unknown;
|
|
29
181
|
fields?: string | undefined;
|
|
@@ -3,13 +3,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.VendorGetProductTypesParams = exports.VendorGetProductTypesParamsFields = void 0;
|
|
4
4
|
const zod_1 = require("zod");
|
|
5
5
|
const validators_1 = require("@medusajs/medusa/api/utils/validators");
|
|
6
|
+
const utils_1 = require("../../../shared/infra/http/utils");
|
|
6
7
|
exports.VendorGetProductTypesParamsFields = zod_1.z.object({
|
|
7
|
-
q: zod_1.z.string().optional()
|
|
8
|
+
q: zod_1.z.string().optional(),
|
|
9
|
+
created_at: utils_1.dateFilterSchema,
|
|
10
|
+
updated_at: utils_1.dateFilterSchema,
|
|
8
11
|
});
|
|
9
12
|
exports.VendorGetProductTypesParams = (0, validators_1.createFindParams)({
|
|
10
13
|
limit: 50,
|
|
11
|
-
offset: 0
|
|
14
|
+
offset: 0,
|
|
12
15
|
})
|
|
13
16
|
.merge(exports.VendorGetProductTypesParamsFields)
|
|
14
17
|
.strict();
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcGkvdmVuZG9yL3Byb2R1Y3QtdHlwZXMvdmFsaWRhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2QkFBd0I7QUFFeEIsc0VBQXlFO0FBQ3pFLDREQUFvRTtBQUV2RCxRQUFBLGlDQUFpQyxHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUM7SUFDeEQsQ0FBQyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDeEIsVUFBVSxFQUFFLHdCQUFnQjtJQUM1QixVQUFVLEVBQUUsd0JBQWdCO0NBQzdCLENBQUMsQ0FBQztBQUtVLFFBQUEsMkJBQTJCLEdBQUcsSUFBQSw2QkFBZ0IsRUFBQztJQUMxRCxLQUFLLEVBQUUsRUFBRTtJQUNULE1BQU0sRUFBRSxDQUFDO0NBQ1YsQ0FBQztLQUNDLEtBQUssQ0FBQyx5Q0FBaUMsQ0FBQztLQUN4QyxNQUFNLEVBQUUsQ0FBQyJ9
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { AuthenticatedMedusaRequest, MedusaResponse } from "@medusajs/framework";
|
|
2
|
+
import { VendorBatchVariantImagesType } from "../../../../validators";
|
|
3
|
+
export declare const POST: (req: AuthenticatedMedusaRequest<VendorBatchVariantImagesType>, res: MedusaResponse) => Promise<void>;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.POST = void 0;
|
|
4
|
+
const core_flows_1 = require("@medusajs/medusa/core-flows");
|
|
5
|
+
const POST = async (req, res) => {
|
|
6
|
+
const variantId = req.params.variant_id;
|
|
7
|
+
const { result } = await (0, core_flows_1.batchVariantImagesWorkflow)(req.scope).run({
|
|
8
|
+
input: {
|
|
9
|
+
variant_id: variantId,
|
|
10
|
+
add: req.validatedBody.add,
|
|
11
|
+
remove: req.validatedBody.remove,
|
|
12
|
+
},
|
|
13
|
+
});
|
|
14
|
+
res.status(200).json({
|
|
15
|
+
added: result.added,
|
|
16
|
+
removed: result.removed,
|
|
17
|
+
});
|
|
18
|
+
};
|
|
19
|
+
exports.POST = POST;
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3ZlbmRvci9wcm9kdWN0cy9baWRdL3ZhcmlhbnRzL1t2YXJpYW50X2lkXS9tZWRpYS9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSw0REFBeUU7QUFHbEUsTUFBTSxJQUFJLEdBQUcsS0FBSyxFQUNyQixHQUE2RCxFQUM3RCxHQUFtQixFQUNuQixFQUFFO0lBQ0YsTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUE7SUFFdkMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLE1BQU0sSUFBQSx1Q0FBMEIsRUFBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBQ2pFLEtBQUssRUFBRTtZQUNMLFVBQVUsRUFBRSxTQUFTO1lBQ3JCLEdBQUcsRUFBRSxHQUFHLENBQUMsYUFBYSxDQUFDLEdBQUc7WUFDMUIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxhQUFhLENBQUMsTUFBTTtTQUNqQztLQUNGLENBQUMsQ0FBQTtJQUVGLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ25CLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSztRQUNuQixPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU87S0FDeEIsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUFBO0FBbEJVLFFBQUEsSUFBSSxRQWtCZCJ9
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { AuthenticatedMedusaRequest, MedusaResponse } from "@medusajs/framework";
|
|
2
|
+
import { VendorBatchUpdateProductsType } from "../validators";
|
|
3
|
+
/**
|
|
4
|
+
* @oas [post] /vendor/products/batch
|
|
5
|
+
* operationId: "VendorBatchUpdateProducts"
|
|
6
|
+
* summary: "Batch Update Products"
|
|
7
|
+
* description: "Updates multiple products for the authenticated vendor. Allows updating title, status, and discountable fields."
|
|
8
|
+
* x-authenticated: true
|
|
9
|
+
* requestBody:
|
|
10
|
+
* content:
|
|
11
|
+
* application/json:
|
|
12
|
+
* schema:
|
|
13
|
+
* $ref: "#/components/schemas/VendorBatchUpdateProducts"
|
|
14
|
+
* responses:
|
|
15
|
+
* "200":
|
|
16
|
+
* description: OK
|
|
17
|
+
* content:
|
|
18
|
+
* application/json:
|
|
19
|
+
* schema:
|
|
20
|
+
* type: object
|
|
21
|
+
* properties:
|
|
22
|
+
* updated:
|
|
23
|
+
* type: array
|
|
24
|
+
* description: The updated products.
|
|
25
|
+
* deleted:
|
|
26
|
+
* type: array
|
|
27
|
+
* description: The deleted products.
|
|
28
|
+
* tags:
|
|
29
|
+
* - Vendor Products
|
|
30
|
+
* security:
|
|
31
|
+
* - api_token: []
|
|
32
|
+
* - cookie_auth: []
|
|
33
|
+
*/
|
|
34
|
+
export declare const POST: (req: AuthenticatedMedusaRequest<VendorBatchUpdateProductsType>, res: MedusaResponse) => Promise<void>;
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.POST = void 0;
|
|
7
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
8
|
+
const core_flows_1 = require("@medusajs/medusa/core-flows");
|
|
9
|
+
const seller_product_1 = __importDefault(require("../../../../links/seller-product"));
|
|
10
|
+
const utils_2 = require("../../../../shared/infra/http/utils");
|
|
11
|
+
const configuration_1 = require("../../../../modules/configuration");
|
|
12
|
+
const framework_1 = require("@mercurjs/framework");
|
|
13
|
+
/**
|
|
14
|
+
* @oas [post] /vendor/products/batch
|
|
15
|
+
* operationId: "VendorBatchUpdateProducts"
|
|
16
|
+
* summary: "Batch Update Products"
|
|
17
|
+
* description: "Updates multiple products for the authenticated vendor. Allows updating title, status, and discountable fields."
|
|
18
|
+
* x-authenticated: true
|
|
19
|
+
* requestBody:
|
|
20
|
+
* content:
|
|
21
|
+
* application/json:
|
|
22
|
+
* schema:
|
|
23
|
+
* $ref: "#/components/schemas/VendorBatchUpdateProducts"
|
|
24
|
+
* responses:
|
|
25
|
+
* "200":
|
|
26
|
+
* description: OK
|
|
27
|
+
* content:
|
|
28
|
+
* application/json:
|
|
29
|
+
* schema:
|
|
30
|
+
* type: object
|
|
31
|
+
* properties:
|
|
32
|
+
* updated:
|
|
33
|
+
* type: array
|
|
34
|
+
* description: The updated products.
|
|
35
|
+
* deleted:
|
|
36
|
+
* type: array
|
|
37
|
+
* description: The deleted products.
|
|
38
|
+
* tags:
|
|
39
|
+
* - Vendor Products
|
|
40
|
+
* security:
|
|
41
|
+
* - api_token: []
|
|
42
|
+
* - cookie_auth: []
|
|
43
|
+
*/
|
|
44
|
+
const POST = async (req, res) => {
|
|
45
|
+
const configuration = req.scope.resolve(configuration_1.CONFIGURATION_MODULE);
|
|
46
|
+
const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
|
|
47
|
+
const productIdsToChange = [...req.validatedBody.update.map((p) => p.id), ...req.validatedBody.delete];
|
|
48
|
+
const seller = await (0, utils_2.fetchSellerByAuthActorId)(req.auth_context.actor_id, req.scope);
|
|
49
|
+
const [configurationRule, { data: sellerProducts }] = await Promise.all([
|
|
50
|
+
configuration.isRuleEnabled(framework_1.ConfigurationRuleType.REQUIRE_PRODUCT_APPROVAL),
|
|
51
|
+
query.graph({
|
|
52
|
+
entity: seller_product_1.default.entryPoint,
|
|
53
|
+
fields: ["product_id"],
|
|
54
|
+
filters: {
|
|
55
|
+
product_id: productIdsToChange,
|
|
56
|
+
seller_id: seller.id,
|
|
57
|
+
},
|
|
58
|
+
}),
|
|
59
|
+
]);
|
|
60
|
+
const ownedProductIds = new Set(sellerProducts.map((sp) => sp.product_id));
|
|
61
|
+
const unauthorizedProducts = productIdsToChange.filter((id) => !ownedProductIds.has(id));
|
|
62
|
+
if (unauthorizedProducts.length > 0) {
|
|
63
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_ALLOWED, `Products not found or not owned by this seller: ${unauthorizedProducts.join(", ")}`);
|
|
64
|
+
}
|
|
65
|
+
const isStatusChangeForbidden = req.validatedBody.update.some((p) => p.status && !["proposed", "draft"].includes(p.status) &&
|
|
66
|
+
configurationRule);
|
|
67
|
+
if (isStatusChangeForbidden) {
|
|
68
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_ALLOWED, "At least one product status change is forbidden.");
|
|
69
|
+
}
|
|
70
|
+
const batchResult = await (0, core_flows_1.batchProductsWorkflow)(req.scope).run({
|
|
71
|
+
input: req.validatedBody,
|
|
72
|
+
});
|
|
73
|
+
res.status(200).json({
|
|
74
|
+
updated: batchResult.result.updated,
|
|
75
|
+
deleted: batchResult.result.deleted,
|
|
76
|
+
});
|
|
77
|
+
};
|
|
78
|
+
exports.POST = POST;
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3ZlbmRvci9wcm9kdWN0cy9iYXRjaC9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFJQSxxREFBbUY7QUFDbkYsNERBRXFDO0FBRXJDLHNGQUFpRTtBQUNqRSwrREFBK0U7QUFJL0UscUVBQXFHO0FBQ3JHLG1EQUE0RDtBQUU1RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBOEJHO0FBQ0ksTUFBTSxJQUFJLEdBQUcsS0FBSyxFQUN2QixHQUE4RCxFQUM5RCxHQUFtQixFQUNuQixFQUFFO0lBQ0YsTUFBTSxhQUFhLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQTZCLG9DQUFvQixDQUFDLENBQUM7SUFDMUYsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFakUsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRXZHLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBQSxnQ0FBd0IsRUFDM0MsR0FBRyxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQ3pCLEdBQUcsQ0FBQyxLQUFLLENBQ1YsQ0FBQztJQUVGLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsQ0FBQyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQztRQUN0RSxhQUFhLENBQUMsYUFBYSxDQUFDLGlDQUFxQixDQUFDLHdCQUF3QixDQUFDO1FBQzNFLEtBQUssQ0FBQyxLQUFLLENBQUM7WUFDVixNQUFNLEVBQUUsd0JBQWlCLENBQUMsVUFBVTtZQUNwQyxNQUFNLEVBQUUsQ0FBQyxZQUFZLENBQUM7WUFDdEIsT0FBTyxFQUFFO2dCQUNQLFVBQVUsRUFBRSxrQkFBa0I7Z0JBQzlCLFNBQVMsRUFBRSxNQUFNLENBQUMsRUFBRTthQUNyQjtTQUNGLENBQUM7S0FDSCxDQUFDLENBQUM7SUFHSCxNQUFNLGVBQWUsR0FBRyxJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUMzRSxNQUFNLG9CQUFvQixHQUFHLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFekYsSUFBSSxvQkFBb0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDcEMsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFDN0IsbURBQW1ELG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUNyRixDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sdUJBQXVCLEdBQUcsR0FBRyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDeEgsaUJBQWlCLENBQUMsQ0FBQztJQUVyQixJQUFJLHVCQUF1QixFQUFFLENBQUM7UUFDNUIsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFDN0Isa0RBQWtELENBQ25ELENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxXQUFXLEdBQUcsTUFBTSxJQUFBLGtDQUFxQixFQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFDN0QsS0FBSyxFQUFFLEdBQUcsQ0FBQyxhQUFhO0tBQ3pCLENBQUMsQ0FBQztJQUVILEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ25CLE9BQU8sRUFBRSxXQUFXLENBQUMsTUFBTSxDQUFDLE9BQU87UUFDbkMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUMsT0FBTztLQUNwQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUM7QUF2RFcsUUFBQSxJQUFJLFFBdURmIn0=
|
|
@@ -9,14 +9,13 @@ const framework_1 = require("@medusajs/framework");
|
|
|
9
9
|
const framework_2 = require("@mercurjs/framework");
|
|
10
10
|
const seller_product_1 = __importDefault(require("../../../links/seller-product"));
|
|
11
11
|
const middlewares_1 = require("../../../shared/infra/http/middlewares");
|
|
12
|
-
const middlewares_2 = require("../../../shared/infra/http/middlewares");
|
|
13
12
|
const query_config_1 = require("../attributes/query-config");
|
|
14
13
|
const validators_1 = require("../attributes/validators");
|
|
15
14
|
const query_config_2 = require("./query-config");
|
|
16
15
|
const validators_2 = require("./validators");
|
|
17
16
|
const canVendorCreateProduct = [
|
|
18
|
-
(0,
|
|
19
|
-
(0,
|
|
17
|
+
(0, middlewares_1.checkConfigurationRule)(framework_2.ConfigurationRuleType.GLOBAL_PRODUCT_CATALOG, false),
|
|
18
|
+
(0, middlewares_1.checkConfigurationRule)(framework_2.ConfigurationRuleType.PRODUCT_REQUEST_ENABLED, true),
|
|
20
19
|
];
|
|
21
20
|
const upload = (0, multer_1.default)({ storage: multer_1.default.memoryStorage() });
|
|
22
21
|
exports.vendorProductsMiddlewares = [
|
|
@@ -37,6 +36,14 @@ exports.vendorProductsMiddlewares = [
|
|
|
37
36
|
(0, framework_1.validateAndTransformQuery)(validators_2.VendorGetProductParams, query_config_2.vendorProductQueryConfig.retrieve),
|
|
38
37
|
],
|
|
39
38
|
},
|
|
39
|
+
{
|
|
40
|
+
method: ["POST"],
|
|
41
|
+
matcher: "/vendor/products/batch",
|
|
42
|
+
middlewares: [
|
|
43
|
+
(0, framework_1.validateAndTransformBody)(validators_2.VendorBatchUpdateProducts),
|
|
44
|
+
(0, framework_1.validateAndTransformQuery)(validators_2.VendorGetProductParams, query_config_2.vendorProductQueryConfig.list),
|
|
45
|
+
],
|
|
46
|
+
},
|
|
40
47
|
{
|
|
41
48
|
method: ["POST"],
|
|
42
49
|
matcher: "/vendor/products/export",
|
|
@@ -46,7 +53,7 @@ exports.vendorProductsMiddlewares = [
|
|
|
46
53
|
method: ["POST"],
|
|
47
54
|
matcher: "/vendor/products/import",
|
|
48
55
|
middlewares: [
|
|
49
|
-
(0,
|
|
56
|
+
(0, middlewares_1.checkConfigurationRule)(framework_2.ConfigurationRuleType.PRODUCT_IMPORT_ENABLED, true),
|
|
50
57
|
upload.single("file"),
|
|
51
58
|
],
|
|
52
59
|
},
|
|
@@ -181,5 +188,12 @@ exports.vendorProductsMiddlewares = [
|
|
|
181
188
|
(0, framework_1.validateAndTransformQuery)(validators_1.VendorGetAttributesParams, query_config_1.retrieveAttributeQueryConfig),
|
|
182
189
|
],
|
|
183
190
|
},
|
|
191
|
+
{
|
|
192
|
+
method: ["POST"],
|
|
193
|
+
matcher: "/vendor/products/:id/variants/:variant_id/media",
|
|
194
|
+
middlewares: [
|
|
195
|
+
(0, framework_1.validateAndTransformBody)(validators_2.VendorBatchVariantImages),
|
|
196
|
+
],
|
|
197
|
+
},
|
|
184
198
|
];
|
|
185
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
199
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3ZlbmRvci9wcm9kdWN0cy9taWRkbGV3YXJlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxvREFBNEI7QUFFNUIsbURBSTZCO0FBRzdCLG1EQUE0RDtBQUU1RCxtRkFBOEQ7QUFDOUQsd0VBSWdEO0FBRWhELDZEQUEwRTtBQUMxRSx5REFBcUU7QUFDckUsaURBR3dCO0FBQ3hCLDZDQVlzQjtBQUV0QixNQUFNLHNCQUFzQixHQUFHO0lBQzdCLElBQUEsb0NBQXNCLEVBQUMsaUNBQXFCLENBQUMsc0JBQXNCLEVBQUUsS0FBSyxDQUFDO0lBQzNFLElBQUEsb0NBQXNCLEVBQUMsaUNBQXFCLENBQUMsdUJBQXVCLEVBQUUsSUFBSSxDQUFDO0NBQzVFLENBQUM7QUFFRixNQUFNLE1BQU0sR0FBRyxJQUFBLGdCQUFNLEVBQUMsRUFBRSxPQUFPLEVBQUUsZ0JBQU0sQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFFOUMsUUFBQSx5QkFBeUIsR0FBc0I7SUFDMUQ7UUFDRSxNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUM7UUFDZixPQUFPLEVBQUUsa0JBQWtCO1FBQzNCLFdBQVcsRUFBRTtZQUNYLElBQUEscUNBQXlCLEVBQ3ZCLG1DQUFzQixFQUN0Qix1Q0FBd0IsQ0FBQyxJQUFJLENBQzlCO1lBQ0QsSUFBQSw4QkFBZ0IsR0FBRTtTQUNuQjtLQUNGO0lBQ0Q7UUFDRSxNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUM7UUFDaEIsT0FBTyxFQUFFLGtCQUFrQjtRQUMzQixXQUFXLEVBQUU7WUFDWCxHQUFHLHNCQUFzQjtZQUN6QixJQUFBLG9DQUF3QixFQUFDLGdDQUFtQixDQUFDO1lBQzdDLElBQUEscUNBQXlCLEVBQ3ZCLG1DQUFzQixFQUN0Qix1Q0FBd0IsQ0FBQyxRQUFRLENBQ2xDO1NBQ0Y7S0FDRjtJQUNEO1FBQ0Us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
|
|
@@ -72,12 +72,12 @@ const utils_3 = require("./utils");
|
|
|
72
72
|
*/
|
|
73
73
|
const GET = async (req, res) => {
|
|
74
74
|
const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
|
|
75
|
-
const
|
|
75
|
+
const filters = req.filterableFields;
|
|
76
|
+
const { productIds, count } = await (0, utils_3.filterProductsBySeller)(req.scope, req.filterableFields.seller_id, req.queryConfig.pagination?.skip || 0, req.queryConfig.pagination?.take || 10, req.filterableFields.sales_channel_id, req.queryConfig.pagination?.order, filters);
|
|
76
77
|
const { data: sellerProducts } = await query.graph({
|
|
77
78
|
entity: 'product',
|
|
78
79
|
fields: req.queryConfig.fields,
|
|
79
80
|
filters: {
|
|
80
|
-
...(0, utils_1.omitDeep)(req.filterableFields, ['q', 'seller_id']),
|
|
81
81
|
id: { $in: productIds }
|
|
82
82
|
},
|
|
83
83
|
pagination: {
|
|
@@ -86,7 +86,7 @@ const GET = async (req, res) => {
|
|
|
86
86
|
});
|
|
87
87
|
res.json({
|
|
88
88
|
products: sellerProducts,
|
|
89
|
-
count
|
|
89
|
+
count,
|
|
90
90
|
offset: req.queryConfig.pagination?.skip || 0,
|
|
91
91
|
limit: req.queryConfig.pagination?.take || 10,
|
|
92
92
|
order: req.queryConfig.pagination?.order
|
|
@@ -164,4 +164,4 @@ const POST = async (req, res) => {
|
|
|
164
164
|
res.status(201).json({ product });
|
|
165
165
|
};
|
|
166
166
|
exports.POST = POST;
|
|
167
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
167
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3ZlbmRvci9wcm9kdWN0cy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFLQSxxREFBOEU7QUFDOUUsNERBQW9FO0FBRXBFLG1EQUFnRTtBQUVoRSw0REFBMkU7QUFDM0UsbUNBTWdCO0FBTWhCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErREc7QUFDSSxNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQ3RCLEdBQThDLEVBQzlDLEdBQW1CLEVBQ25CLEVBQUU7SUFDRixNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxpQ0FBeUIsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUVoRSxNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsZ0JBQWtDLENBQUE7SUFFdEQsTUFBTSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsR0FBRyxNQUFNLElBQUEsOEJBQXNCLEVBQ3hELEdBQUcsQ0FBQyxLQUFLLEVBQ1QsR0FBRyxDQUFDLGdCQUFnQixDQUFDLFNBQW1CLEVBQ3hDLEdBQUcsQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLElBQUksSUFBSSxDQUFDLEVBQ3JDLEdBQUcsQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLElBQUksSUFBSSxFQUFFLEVBQ3RDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBMEIsRUFDL0MsR0FBRyxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsS0FBZ0MsRUFDNUQsT0FBTyxDQUNSLENBQUE7SUFFRCxNQUFNLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztRQUNqRCxNQUFNLEVBQUUsU0FBUztRQUNqQixNQUFNLEVBQUUsR0FBRyxDQUFDLFdBQVcsQ0FBQyxNQUFNO1FBQzlC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
|
|
@@ -3,7 +3,22 @@ import { VariantImagesType } from './validators';
|
|
|
3
3
|
export declare const VARIANT_IMAGE_METADATA_KEY = "variant_image_key";
|
|
4
4
|
type OrderDirection = 'ASC' | 'DESC' | 'asc' | 'desc';
|
|
5
5
|
export type OrderObject = Record<string, OrderDirection | Record<string, OrderDirection>>;
|
|
6
|
-
export
|
|
6
|
+
export type ProductFilters = {
|
|
7
|
+
q?: string;
|
|
8
|
+
id?: string | string[];
|
|
9
|
+
status?: string | string[];
|
|
10
|
+
type_id?: string | string[];
|
|
11
|
+
collection_id?: string | string[];
|
|
12
|
+
categories?: {
|
|
13
|
+
id?: string | string[];
|
|
14
|
+
};
|
|
15
|
+
tags?: {
|
|
16
|
+
id?: string | string[];
|
|
17
|
+
};
|
|
18
|
+
created_at?: Record<string, string>;
|
|
19
|
+
updated_at?: Record<string, string>;
|
|
20
|
+
};
|
|
21
|
+
export declare const filterProductsBySeller: (container: MedusaContainer, sellerId: string, skip: number, take: number, salesChannelId?: string, order?: OrderObject, filters?: ProductFilters) => Promise<{
|
|
7
22
|
productIds: any[];
|
|
8
23
|
count: number;
|
|
9
24
|
}>;
|
|
@@ -33,7 +33,8 @@ const parseOrderForKnex = (order) => {
|
|
|
33
33
|
}
|
|
34
34
|
return orderBy;
|
|
35
35
|
};
|
|
36
|
-
const filterProductsBySeller = async (container, sellerId, skip, take, salesChannelId, order,
|
|
36
|
+
const filterProductsBySeller = async (container, sellerId, skip, take, salesChannelId, order, filters) => {
|
|
37
|
+
const q = filters?.q;
|
|
37
38
|
const knex = container.resolve(utils_1.ContainerRegistrationKeys.PG_CONNECTION);
|
|
38
39
|
let baseQuery = knex('product')
|
|
39
40
|
.distinct('product.id')
|
|
@@ -54,10 +55,56 @@ const filterProductsBySeller = async (container, sellerId, skip, take, salesChan
|
|
|
54
55
|
.innerJoin('product_sales_channel', 'product.id', 'product_sales_channel.product_id')
|
|
55
56
|
.where('product_sales_channel.sales_channel_id', salesChannelId);
|
|
56
57
|
}
|
|
58
|
+
if (filters) {
|
|
59
|
+
if (filters.id) {
|
|
60
|
+
const ids = Array.isArray(filters.id) ? filters.id : [filters.id];
|
|
61
|
+
baseQuery = baseQuery.whereIn('product.id', ids);
|
|
62
|
+
}
|
|
63
|
+
if (filters.status) {
|
|
64
|
+
const statuses = Array.isArray(filters.status)
|
|
65
|
+
? filters.status
|
|
66
|
+
: [filters.status];
|
|
67
|
+
baseQuery = baseQuery.whereIn('product.status', statuses);
|
|
68
|
+
}
|
|
69
|
+
if (filters.type_id) {
|
|
70
|
+
const typeIds = Array.isArray(filters.type_id)
|
|
71
|
+
? filters.type_id
|
|
72
|
+
: [filters.type_id];
|
|
73
|
+
baseQuery = baseQuery.whereIn('product.type_id', typeIds);
|
|
74
|
+
}
|
|
75
|
+
if (filters.collection_id) {
|
|
76
|
+
const collectionIds = Array.isArray(filters.collection_id)
|
|
77
|
+
? filters.collection_id
|
|
78
|
+
: [filters.collection_id];
|
|
79
|
+
baseQuery = baseQuery.whereIn('product.collection_id', collectionIds);
|
|
80
|
+
}
|
|
81
|
+
if (filters.categories?.id) {
|
|
82
|
+
const categoryIds = Array.isArray(filters.categories.id)
|
|
83
|
+
? filters.categories.id
|
|
84
|
+
: [filters.categories.id];
|
|
85
|
+
baseQuery = baseQuery
|
|
86
|
+
.innerJoin('product_category_product', 'product.id', 'product_category_product.product_id')
|
|
87
|
+
.whereIn('product_category_product.product_category_id', categoryIds);
|
|
88
|
+
}
|
|
89
|
+
if (filters.tags?.id) {
|
|
90
|
+
const tagIds = Array.isArray(filters.tags.id)
|
|
91
|
+
? filters.tags.id
|
|
92
|
+
: [filters.tags.id];
|
|
93
|
+
baseQuery = baseQuery
|
|
94
|
+
.innerJoin('product_tags', 'product.id', 'product_tags.product_id')
|
|
95
|
+
.whereIn('product_tags.product_tag_id', tagIds);
|
|
96
|
+
}
|
|
97
|
+
if (filters.created_at) {
|
|
98
|
+
baseQuery = applyDateFilter(baseQuery, 'product.created_at', filters.created_at);
|
|
99
|
+
}
|
|
100
|
+
if (filters.updated_at) {
|
|
101
|
+
baseQuery = applyDateFilter(baseQuery, 'product.updated_at', filters.updated_at);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
57
104
|
const countQuery = baseQuery
|
|
58
105
|
.clone()
|
|
59
106
|
.clearSelect()
|
|
60
|
-
.
|
|
107
|
+
.countDistinct('product.id as count');
|
|
61
108
|
const [{ count }] = await countQuery;
|
|
62
109
|
const totalCount = parseInt(count, 10);
|
|
63
110
|
if (order) {
|
|
@@ -79,6 +126,25 @@ const filterProductsBySeller = async (container, sellerId, skip, take, salesChan
|
|
|
79
126
|
return { productIds, count: totalCount };
|
|
80
127
|
};
|
|
81
128
|
exports.filterProductsBySeller = filterProductsBySeller;
|
|
129
|
+
const applyDateFilter = (query, column, dateFilter) => {
|
|
130
|
+
let result = query;
|
|
131
|
+
if (dateFilter.$gte) {
|
|
132
|
+
result = result.where(column, '>=', dateFilter.$gte);
|
|
133
|
+
}
|
|
134
|
+
if (dateFilter.$gt) {
|
|
135
|
+
result = result.where(column, '>', dateFilter.$gt);
|
|
136
|
+
}
|
|
137
|
+
if (dateFilter.$lte) {
|
|
138
|
+
result = result.where(column, '<=', dateFilter.$lte);
|
|
139
|
+
}
|
|
140
|
+
if (dateFilter.$lt) {
|
|
141
|
+
result = result.where(column, '<', dateFilter.$lt);
|
|
142
|
+
}
|
|
143
|
+
if (dateFilter.$eq) {
|
|
144
|
+
result = result.where(column, '=', dateFilter.$eq);
|
|
145
|
+
}
|
|
146
|
+
return result;
|
|
147
|
+
};
|
|
82
148
|
const mergeVariantImages = (existingImages, variantImagePayload) => {
|
|
83
149
|
const existingImageUrls = new Set(existingImages?.map((img) => img.url) ?? []);
|
|
84
150
|
const allVariantImageUrls = new Set();
|
|
@@ -144,4 +210,4 @@ const assignVariantImages = async (container, variantImagePayload, createdProduc
|
|
|
144
210
|
await Promise.all(tasks);
|
|
145
211
|
};
|
|
146
212
|
exports.assignVariantImages = assignVariantImages;
|
|
147
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3ZlbmRvci9wcm9kdWN0cy91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxxREFBcUU7QUFDckUsNERBR29DO0FBSXZCLFFBQUEsMEJBQTBCLEdBQUcsbUJBQW1CLENBQUE7QUFRN0QsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFXLEVBQVUsRUFBRTtJQUN2QyxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUE7QUFDeEQsQ0FBQyxDQUFBO0FBRUQsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLFNBQWlCLEVBQWtCLEVBQUU7SUFDL0QsT0FBTyxTQUFTLENBQUMsV0FBVyxFQUFFLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQTtBQUM1RCxDQUFDLENBQUE7QUFFRCxNQUFNLGFBQWEsR0FBRyxDQUNwQixPQUF5RCxFQUN6RCxHQUFXLEVBQ1gsU0FBaUIsRUFDWCxFQUFFO0lBQ1IsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFBO0lBQ3pELE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQTtBQUNoRSxDQUFDLENBQUE7QUFFRCxNQUFNLGlCQUFpQixHQUFHLENBQ3hCLEtBQXFDLEVBQ2EsRUFBRTtJQUNwRCxJQUFJLENBQUMsS0FBSyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ3hDLE9BQU8sRUFBRSxDQUFBO0lBQ1gsQ0FBQztJQUVELE1BQU0sT0FBTyxHQUFxRCxFQUFFLENBQUE7SUFFcEUsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNqRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzlCLGFBQWEsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFBO1FBQzlDLENBQUM7YUFBTSxJQUFJLEtBQUssSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM5QyxLQUFLLE1BQU0sQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUM3RCxJQUFJLE9BQU8sV0FBVyxLQUFLLFFBQVEsRUFBRSxDQUFDO29CQUNwQyxhQUFhLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQUMsQ0FBQTtnQkFDaEQsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sT0FBTyxDQUFBO0FBQ2hCLENBQUMsQ0FBQTtBQUVNLE1BQU0sc0JBQXNCLEdBQUcsS0FBSyxFQUN6QyxTQUEwQixFQUMxQixRQUFnQixFQUNoQixJQUFZLEVBQ1osSUFBWSxFQUNaLGNBQXVCLEVBQ3ZCLEtBQW1CLEVBQ25CLENBQVUsRUFDVixFQUFFO0lBQ0YsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxpQ0FBeUIsQ0FBQyxhQUFhLENBQUMsQ0FBQTtJQUV2RSxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1NBQzVCLFFBQVEsQ0FBQyxZQUFZLENBQUM7U0FDdEIsU0FBUyxDQUNSLCtCQUErQixFQUMvQixZQUFZLEVBQ1osMENBQTBDLENBQzNDO1NBQ0EsS0FBSyxDQUFDO1FBQ0wseUNBQXlDLEVBQUUsUUFBUTtRQUNuRCwwQ0FBMEMsRUFBRSxJQUFJO1FBQ2hELG9CQUFvQixFQUFFLElBQUk7S0FDM0IsQ0FBQyxDQUFBO0lBRUosSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNOLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUE7UUFDM0IsU0FBUyxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUM7WUFDN0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLEVBQUUsVUFBVSxDQUFDLENBQUMsWUFBWSxDQUN2RCxZQUFZLEVBQ1osVUFBVSxDQUNYLENBQUE7UUFDSCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxJQUFJLGNBQWMsRUFBRSxDQUFDO1FBQ25CLFNBQVMsR0FBRyxTQUFTO2FBQ2xCLFNBQVMsQ0FDUix1QkFBdUIsRUFDdkIsWUFBWSxFQUNaLGtDQUFrQyxDQUNuQzthQUNBLEtBQUssQ0FBQyx3Q0FBd0MsRUFBRSxjQUFjLENBQUMsQ0FBQTtJQUNwRSxDQUFDO0lBRUQsTUFBTSxVQUFVLEdBQUcsU0FBUztTQUN6QixLQUFLLEVBQUU7U0FDUCxXQUFXLEVBQUU7U0FDYixLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQTtJQUMvQixNQUFNLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxHQUFHLE1BQU0sVUFBVSxDQUFBO0lBQ3BDLE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxLQUFlLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFFaEQsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUNWLE1BQU0sV0FBVyxHQUFHLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQzVDLElBQUksV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUMzQixNQUFNLFlBQVksR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUE7WUFDckQsTUFBTSxhQUFhLEdBQUc7Z0JBQ3BCLFlBQVk7Z0JBQ1osR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssWUFBWSxDQUFDO2FBQ3RELENBQUE7WUFFRCxTQUFTLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxDQUFBO1lBQ2hELFNBQVMsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBQzVDLENBQUM7SUFDSCxDQUFDO0lBRUQsTUFBTSxVQUFVLEdBQUcsTUFBTSxTQUFTO1NBQy9CLE1BQU0sQ0FBQyxJQUFJLENBQUM7U0FDWixLQUFLLENBQUMsSUFBSSxDQUFDO1NBQ1gsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFBO0lBRXRCLE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxDQUFBO0FBQzFDLENBQUMsQ0FBQTtBQXZFWSxRQUFBLHNCQUFzQiwwQkF1RWxDO0FBRU0sTUFBTSxrQkFBa0IsR0FBRyxDQUNoQyxjQUFrRCxFQUNsRCxtQkFBb0QsRUFDcEQsRUFBRTtJQUNGLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxHQUFHLENBQUMsY0FBYyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFBO0lBQzlFLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQTtJQUM3QyxLQUFLLE1BQU0sRUFBRSxJQUFJLG1CQUFtQixJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQzNDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtRQUM3RCxJQUFJLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNyQixtQkFBbUIsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFBO1FBQzNDLENBQUM7SUFDSCxDQUFDO0lBRUQsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLEdBQUcsbUJBQW1CLENBQUM7U0FDOUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUM1QyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFFMUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFBO0FBQ3pELENBQUMsQ0FBQTtBQWxCWSxRQUFBLGtCQUFrQixzQkFrQjlCO0FBWU0sTUFBTSxtQkFBbUIsR0FBRyxLQUFLLEVBQ3RDLFNBQTBCLEVBQzFCLG1CQUFvRCxFQUNwRCxjQUdDLEVBQ0QsRUFBRTtJQUNGLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBQ3JFLE9BQU07SUFDUixDQUFDO0lBRUQsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLEdBQUcsRUFBRSxFQUFFLEdBQUcsY0FBYyxDQUFBO0lBRWhELE1BQU0sY0FBYyxHQUFHLFFBQVE7U0FDNUIsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7UUFDZixNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsa0NBQTBCLENBQUMsQ0FBQTtRQUMxRCxJQUFJLENBQUMsR0FBRyxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ3BDLE9BQU8sU0FBUyxDQUFBO1FBQ2xCLENBQUM7UUFDRCxPQUFPLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBVSxDQUFBO0lBQ2hDLENBQUMsQ0FBQztTQUNELE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBMEQsRUFBRSxDQUN4RSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQ2YsQ0FBQTtJQUNILE1BQU0sWUFBWSxHQUFHLElBQUksR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFBO0lBQzVDLE1BQU0sWUFBWSxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBRXBFLE1BQU0sS0FBSyxHQUFHLG1CQUFtQixDQUFDLEdBQUcsQ0FDbkMsS0FBSyxFQUFFLEVBQUUsaUJBQWlCLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUU7UUFDekQsTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO1FBQ25ELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNiLE9BQU07UUFDUixDQUFDO1FBRUQsTUFBTSxHQUFHLEdBQXVCLEVBQUUsQ0FBQTtRQUVsQyxJQUFJLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUN2QixNQUFNLGVBQWUsR0FBRyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQTtZQUNoRCxNQUFNLFFBQVEsR0FBRyxlQUFlO2lCQUM3QixHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7aUJBQ25DLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBZ0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQTtZQUVyQyxJQUFJLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDcEIsR0FBRyxDQUFDLElBQUksQ0FDTix1Q0FBMEIsQ0FBQyxHQUFHLENBQUM7b0JBQzdCLFNBQVM7b0JBQ1QsS0FBSyxFQUFFLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRTtpQkFDakQsQ0FBQyxDQUNILENBQUE7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUVELElBQUksYUFBYSxJQUFJLFlBQVksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztZQUNyRCxHQUFHLENBQUMsSUFBSSxDQUNOLDBDQUE2QixDQUFDLEdBQUcsQ0FBQztnQkFDaEMsU0FBUztnQkFDVCxLQUFLLEVBQUU7b0JBQ0wsUUFBUSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUU7b0JBQzVCLE1BQU0sRUFBRSxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUU7aUJBQ3JDO2FBQ0YsQ0FBQyxDQUNILENBQUE7UUFDSCxDQUFDO1FBRUQsSUFBSSxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDZixNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDeEIsQ0FBQztJQUNILENBQUMsQ0FDRixDQUFBO0lBRUQsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFBO0FBQzFCLENBQUMsQ0FBQTtBQXhFWSxRQUFBLG1CQUFtQix1QkF3RS9CIn0=
|
|
213
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3ZlbmRvci9wcm9kdWN0cy91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxxREFBcUU7QUFDckUsNERBR29DO0FBSXZCLFFBQUEsMEJBQTBCLEdBQUcsbUJBQW1CLENBQUE7QUFRN0QsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFXLEVBQVUsRUFBRTtJQUN2QyxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUE7QUFDeEQsQ0FBQyxDQUFBO0FBRUQsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLFNBQWlCLEVBQWtCLEVBQUU7SUFDL0QsT0FBTyxTQUFTLENBQUMsV0FBVyxFQUFFLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQTtBQUM1RCxDQUFDLENBQUE7QUFFRCxNQUFNLGFBQWEsR0FBRyxDQUNwQixPQUF5RCxFQUN6RCxHQUFXLEVBQ1gsU0FBaUIsRUFDWCxFQUFFO0lBQ1IsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFBO0lBQ3pELE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQTtBQUNoRSxDQUFDLENBQUE7QUFFRCxNQUFNLGlCQUFpQixHQUFHLENBQ3hCLEtBQXFDLEVBQ2EsRUFBRTtJQUNwRCxJQUFJLENBQUMsS0FBSyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ3hDLE9BQU8sRUFBRSxDQUFB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
|