@zaamx/netme-pos 0.0.15 → 0.0.18
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/admin/index.js +216 -216
- package/.medusa/server/src/admin/index.mjs +220 -220
- package/.medusa/server/src/api/admin/orders/sales/pending-by-location/route.js +152 -0
- package/.medusa/server/src/api/admin/orders/sales/route.js +398 -0
- package/.medusa/server/src/api/middlewares.js +168 -1
- package/.medusa/server/src/api/store/netme-pos/draft-orders/[id]/convert-to-order/route.js +37 -0
- package/.medusa/server/src/api/store/netme-pos/draft-orders/[id]/edit/confirm/route.js +20 -0
- package/.medusa/server/src/api/store/netme-pos/draft-orders/[id]/edit/items/[action_id]/route.js +74 -0
- package/.medusa/server/src/api/store/netme-pos/draft-orders/[id]/edit/items/item/[item_id]/route.js +41 -0
- package/.medusa/server/src/api/store/netme-pos/draft-orders/[id]/edit/items/route.js +31 -0
- package/.medusa/server/src/api/store/netme-pos/draft-orders/[id]/edit/promotions/route.js +31 -0
- package/.medusa/server/src/api/store/netme-pos/draft-orders/[id]/edit/request/route.js +16 -0
- package/.medusa/server/src/api/store/netme-pos/draft-orders/[id]/edit/route.js +32 -0
- package/.medusa/server/src/api/store/netme-pos/draft-orders/[id]/edit/shipping-methods/[action_id]/route.js +32 -0
- package/.medusa/server/src/api/store/netme-pos/draft-orders/[id]/edit/shipping-methods/method/[method_id]/route.js +30 -0
- package/.medusa/server/src/api/store/netme-pos/draft-orders/[id]/edit/shipping-methods/route.js +19 -0
- package/.medusa/server/src/api/store/netme-pos/draft-orders/[id]/route.js +63 -0
- package/.medusa/server/src/api/store/netme-pos/draft-orders/guards.js +77 -0
- package/.medusa/server/src/api/store/netme-pos/draft-orders/helpers.js +19 -0
- package/.medusa/server/src/api/store/netme-pos/draft-orders/pricing.js +136 -0
- package/.medusa/server/src/api/store/netme-pos/draft-orders/query-config.js +60 -0
- package/.medusa/server/src/api/store/netme-pos/draft-orders/route.js +140 -0
- package/.medusa/server/src/api/store/netme-pos/draft-orders/validators.js +217 -0
- package/.medusa/server/src/api/store/netme-pos/fulfillment-validators.js +74 -0
- package/.medusa/server/src/api/store/netme-pos/payment-collections/[id]/mark-as-paid/route.js +34 -0
- package/.medusa/server/src/api/store/netme-pos/payment-collections/[id]/payment-sessions/route.js +28 -0
- package/.medusa/server/src/api/store/netme-pos/payment-collections/guards.js +27 -0
- package/.medusa/server/src/api/store/netme-pos/products/[id]/route.js +10 -0
- package/.medusa/server/src/api/store/netme-pos/products/route.js +14 -0
- package/.medusa/server/src/api/store/netme-pos/scope.js +106 -0
- package/.medusa/server/src/api/store/netme-pos/shipping-options/route.js +100 -0
- package/.medusa/server/src/api/store/netme-pos/stock-locations/route.js +45 -0
- package/.medusa/server/src/links/agent-draft-order.js +31 -0
- package/.medusa/server/src/workflows/ensure-agent-can-act-for/index.js +36 -0
- package/package.json +1 -1
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StoreUpdateDraftOrderActionShippingMethod = exports.StoreUpdateDraftOrderShippingMethod = exports.StoreAddDraftOrderShippingMethod = exports.StoreDraftOrderPromotions = exports.StoreUpdateDraftOrderActionItem = exports.StoreUpdateDraftOrderItem = exports.StoreAddDraftOrderItems = exports.StoreUpdateDraftOrder = exports.StoreCreateDraftOrder = exports.StoreGetDraftOrdersParams = exports.StoreGetDraftOrderParams = void 0;
|
|
4
|
+
const zod_1 = require("@medusajs/framework/zod");
|
|
5
|
+
/**
|
|
6
|
+
* [STORE] validators for `/store/netme-pos/draft-orders`.
|
|
7
|
+
*
|
|
8
|
+
* They replicate the admin draft-orders schemas (2.14.2) with the store
|
|
9
|
+
* hardening from the spec (docs/store-draft-orders-spec.md §7):
|
|
10
|
+
* - NO price fields anywhere: `unit_price`, `compare_at_unit_price`,
|
|
11
|
+
* `custom_amount`, `amount` are not accepted (prices resolve server-side).
|
|
12
|
+
* - NO `email` / `status` / `sales_channel_id` / `currency_code` on create
|
|
13
|
+
* (derived server-side), NO `customer_id` on update (no reassigning).
|
|
14
|
+
* - `.strict()` everywhere so unexpected fields are rejected, not ignored.
|
|
15
|
+
*
|
|
16
|
+
* The tiny builder helpers (`createSelectParams`, `createFindParams`,
|
|
17
|
+
* `createOperatorMap`, `applyAndAndOrOperators`, `AddressPayload`) are ported
|
|
18
|
+
* from Medusa's non-exported internals, same as
|
|
19
|
+
* `src/api/admin/netme-pos/products/validators.ts` does.
|
|
20
|
+
*/
|
|
21
|
+
// ---------------------------------------------------------------------------
|
|
22
|
+
// Ported builder helpers (api/utils/validators.ts + common-validators)
|
|
23
|
+
// ---------------------------------------------------------------------------
|
|
24
|
+
const createSelectParams = () => zod_1.z.object({
|
|
25
|
+
fields: zod_1.z.string().optional(),
|
|
26
|
+
});
|
|
27
|
+
const createFindParams = ({ offset, limit, order, } = {}) => {
|
|
28
|
+
return createSelectParams().merge(zod_1.z.object({
|
|
29
|
+
offset: zod_1.z.preprocess((val) => (val && typeof val === "string" ? parseInt(val) : val), zod_1.z
|
|
30
|
+
.number()
|
|
31
|
+
.optional()
|
|
32
|
+
.default(offset ?? 0)),
|
|
33
|
+
limit: zod_1.z.preprocess((val) => (val && typeof val === "string" ? parseInt(val) : val), zod_1.z
|
|
34
|
+
.number()
|
|
35
|
+
.optional()
|
|
36
|
+
.default(limit ?? 20)),
|
|
37
|
+
order: order
|
|
38
|
+
? zod_1.z.string().optional().default(order)
|
|
39
|
+
: zod_1.z.string().optional(),
|
|
40
|
+
}));
|
|
41
|
+
};
|
|
42
|
+
const createOperatorMap = (type, valueParser) => {
|
|
43
|
+
if (!type) {
|
|
44
|
+
type = zod_1.z.string();
|
|
45
|
+
}
|
|
46
|
+
let simpleType = type.optional();
|
|
47
|
+
if (valueParser) {
|
|
48
|
+
simpleType = zod_1.z.preprocess(valueParser, type).optional();
|
|
49
|
+
}
|
|
50
|
+
const arrayType = zod_1.z.array(type).optional();
|
|
51
|
+
const unionType = zod_1.z.union([simpleType, arrayType]).optional();
|
|
52
|
+
return zod_1.z.union([
|
|
53
|
+
unionType,
|
|
54
|
+
zod_1.z.object({
|
|
55
|
+
$eq: unionType,
|
|
56
|
+
$ne: unionType,
|
|
57
|
+
$in: arrayType,
|
|
58
|
+
$nin: arrayType,
|
|
59
|
+
$like: simpleType,
|
|
60
|
+
$ilike: simpleType,
|
|
61
|
+
$re: simpleType,
|
|
62
|
+
$contains: simpleType,
|
|
63
|
+
$gt: simpleType,
|
|
64
|
+
$gte: simpleType,
|
|
65
|
+
$lt: simpleType,
|
|
66
|
+
$lte: simpleType,
|
|
67
|
+
}),
|
|
68
|
+
]);
|
|
69
|
+
};
|
|
70
|
+
const applyAndAndOrOperators = (schema) => {
|
|
71
|
+
return schema.merge(zod_1.z.object({
|
|
72
|
+
$and: zod_1.z.lazy(() => schema.array()).optional(),
|
|
73
|
+
$or: zod_1.z.lazy(() => schema.array()).optional(),
|
|
74
|
+
}));
|
|
75
|
+
};
|
|
76
|
+
const AddressPayload = zod_1.z
|
|
77
|
+
.object({
|
|
78
|
+
first_name: zod_1.z.string().nullish(),
|
|
79
|
+
last_name: zod_1.z.string().nullish(),
|
|
80
|
+
phone: zod_1.z.string().nullish(),
|
|
81
|
+
company: zod_1.z.string().nullish(),
|
|
82
|
+
address_1: zod_1.z.string().nullish(),
|
|
83
|
+
address_2: zod_1.z.string().nullish(),
|
|
84
|
+
city: zod_1.z.string().nullish(),
|
|
85
|
+
country_code: zod_1.z.string().nullish(),
|
|
86
|
+
province: zod_1.z.string().nullish(),
|
|
87
|
+
postal_code: zod_1.z.string().nullish(),
|
|
88
|
+
metadata: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).nullish(),
|
|
89
|
+
})
|
|
90
|
+
.strict();
|
|
91
|
+
// ---------------------------------------------------------------------------
|
|
92
|
+
// Query params
|
|
93
|
+
// ---------------------------------------------------------------------------
|
|
94
|
+
exports.StoreGetDraftOrderParams = createSelectParams().merge(zod_1.z.object({
|
|
95
|
+
version: zod_1.z.preprocess((val) => (val && typeof val === "string" ? parseInt(val) : val), zod_1.z.number().optional()),
|
|
96
|
+
}));
|
|
97
|
+
const StoreGetDraftOrdersParamsFields = zod_1.z.object({
|
|
98
|
+
id: zod_1.z.union([zod_1.z.string(), zod_1.z.array(zod_1.z.string())]).optional(),
|
|
99
|
+
created_at: createOperatorMap().optional(),
|
|
100
|
+
updated_at: createOperatorMap().optional(),
|
|
101
|
+
q: zod_1.z.string().optional(),
|
|
102
|
+
region_id: zod_1.z.union([zod_1.z.string(), zod_1.z.array(zod_1.z.string())]).optional(),
|
|
103
|
+
// Filter by TARGET customer among the agent's own drafts. The agent scoping
|
|
104
|
+
// itself is enforced server-side in the route (link table), never here.
|
|
105
|
+
customer_id: zod_1.z.union([zod_1.z.string(), zod_1.z.array(zod_1.z.string())]).optional(),
|
|
106
|
+
});
|
|
107
|
+
exports.StoreGetDraftOrdersParams = createFindParams({
|
|
108
|
+
limit: 50,
|
|
109
|
+
offset: 0,
|
|
110
|
+
})
|
|
111
|
+
.merge(StoreGetDraftOrdersParamsFields)
|
|
112
|
+
.merge(applyAndAndOrOperators(StoreGetDraftOrdersParamsFields));
|
|
113
|
+
// ---------------------------------------------------------------------------
|
|
114
|
+
// Bodies (§7) — hardened ports of the admin validators
|
|
115
|
+
// ---------------------------------------------------------------------------
|
|
116
|
+
/**
|
|
117
|
+
* §7.1 — create. The draft is created EMPTY (items go through
|
|
118
|
+
* `/:id/edit/items` inside an edit cycle, where prices resolve server-side).
|
|
119
|
+
* `email`, `currency_code`, `sales_channel_id` and `status` derive server-side.
|
|
120
|
+
*/
|
|
121
|
+
exports.StoreCreateDraftOrder = zod_1.z
|
|
122
|
+
.object({
|
|
123
|
+
/** Target customer the order is for (drives group pricing). */
|
|
124
|
+
customer_id: zod_1.z.string(),
|
|
125
|
+
region_id: zod_1.z.string(),
|
|
126
|
+
billing_address: zod_1.z.union([AddressPayload, zod_1.z.string()]).optional(),
|
|
127
|
+
shipping_address: zod_1.z.union([AddressPayload, zod_1.z.string()]).optional(),
|
|
128
|
+
promo_codes: zod_1.z.array(zod_1.z.string()).optional(),
|
|
129
|
+
locale: zod_1.z.string().optional(),
|
|
130
|
+
metadata: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).nullish(),
|
|
131
|
+
})
|
|
132
|
+
.strict();
|
|
133
|
+
/** §7.4 — update. No `email` / `customer_id` / `sales_channel_id`. */
|
|
134
|
+
exports.StoreUpdateDraftOrder = zod_1.z
|
|
135
|
+
.object({
|
|
136
|
+
shipping_address: AddressPayload.optional(),
|
|
137
|
+
billing_address: AddressPayload.optional(),
|
|
138
|
+
metadata: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).nullish(),
|
|
139
|
+
locale: zod_1.z.string().optional(),
|
|
140
|
+
})
|
|
141
|
+
.strict();
|
|
142
|
+
/**
|
|
143
|
+
* Bundle declaration (§5): the client declares ONLY structure + metadata.
|
|
144
|
+
* Prices come from the server (parent = resolved package price, child = 0).
|
|
145
|
+
*/
|
|
146
|
+
const StoreDraftOrderItemBundle = zod_1.z
|
|
147
|
+
.object({
|
|
148
|
+
role: zod_1.z.enum(["parent", "child"]),
|
|
149
|
+
/** uuid generated by the client; links parent ↔ children. */
|
|
150
|
+
bundle_id: zod_1.z.string(),
|
|
151
|
+
bundle_type: zod_1.z.string().optional(),
|
|
152
|
+
bundle_meta: zod_1.z.unknown().optional(),
|
|
153
|
+
bundle_sticks_price: zod_1.z.number().optional(),
|
|
154
|
+
})
|
|
155
|
+
.strict();
|
|
156
|
+
/** §7.11 — add items. No `unit_price` / `compare_at_unit_price` / `title`. */
|
|
157
|
+
exports.StoreAddDraftOrderItems = zod_1.z
|
|
158
|
+
.object({
|
|
159
|
+
items: zod_1.z
|
|
160
|
+
.array(zod_1.z
|
|
161
|
+
.object({
|
|
162
|
+
variant_id: zod_1.z.string(),
|
|
163
|
+
quantity: zod_1.z.number().int().positive(),
|
|
164
|
+
allow_backorder: zod_1.z.boolean().optional(),
|
|
165
|
+
bundle: StoreDraftOrderItemBundle.optional(),
|
|
166
|
+
metadata: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).optional(),
|
|
167
|
+
})
|
|
168
|
+
.strict())
|
|
169
|
+
.min(1),
|
|
170
|
+
})
|
|
171
|
+
.strict();
|
|
172
|
+
/** §7.12 — update an existing item (quantity). No prices. */
|
|
173
|
+
exports.StoreUpdateDraftOrderItem = zod_1.z
|
|
174
|
+
.object({
|
|
175
|
+
quantity: zod_1.z.number().int().positive(),
|
|
176
|
+
internal_note: zod_1.z.string().optional(),
|
|
177
|
+
metadata: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).nullish(),
|
|
178
|
+
})
|
|
179
|
+
.strict();
|
|
180
|
+
/** §7.13 — update a pending (change-set) item. No prices. */
|
|
181
|
+
exports.StoreUpdateDraftOrderActionItem = zod_1.z
|
|
182
|
+
.object({
|
|
183
|
+
quantity: zod_1.z.number().int().positive(),
|
|
184
|
+
internal_note: zod_1.z.string().optional(),
|
|
185
|
+
})
|
|
186
|
+
.strict();
|
|
187
|
+
/** §7.14 — add/remove promotions (same as admin). */
|
|
188
|
+
exports.StoreDraftOrderPromotions = zod_1.z
|
|
189
|
+
.object({
|
|
190
|
+
promo_codes: zod_1.z.array(zod_1.z.string()),
|
|
191
|
+
})
|
|
192
|
+
.strict();
|
|
193
|
+
/** §7.15 — add shipping method. No `custom_amount` (amount = shipping option). */
|
|
194
|
+
exports.StoreAddDraftOrderShippingMethod = zod_1.z
|
|
195
|
+
.object({
|
|
196
|
+
shipping_option_id: zod_1.z.string(),
|
|
197
|
+
description: zod_1.z.string().optional(),
|
|
198
|
+
metadata: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).optional(),
|
|
199
|
+
})
|
|
200
|
+
.strict();
|
|
201
|
+
/** §7.16 — update an existing shipping method. No `custom_amount`. */
|
|
202
|
+
exports.StoreUpdateDraftOrderShippingMethod = zod_1.z
|
|
203
|
+
.object({
|
|
204
|
+
shipping_option_id: zod_1.z.string().optional(),
|
|
205
|
+
internal_note: zod_1.z.string().nullish(),
|
|
206
|
+
})
|
|
207
|
+
.strict();
|
|
208
|
+
/** §7.17 — update a pending (change-set) shipping method. No `custom_amount`. */
|
|
209
|
+
exports.StoreUpdateDraftOrderActionShippingMethod = zod_1.z
|
|
210
|
+
.object({
|
|
211
|
+
shipping_option_id: zod_1.z.string(),
|
|
212
|
+
description: zod_1.z.string().nullish(),
|
|
213
|
+
internal_note: zod_1.z.string().nullish(),
|
|
214
|
+
metadata: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).nullish(),
|
|
215
|
+
})
|
|
216
|
+
.strict();
|
|
217
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcGkvc3RvcmUvbmV0bWUtcG9zL2RyYWZ0LW9yZGVycy92YWxpZGF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlEQUEyQztBQUUzQzs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCw4RUFBOEU7QUFDOUUsdUVBQXVFO0FBQ3ZFLDhFQUE4RTtBQUU5RSxNQUFNLGtCQUFrQixHQUFHLEdBQUcsRUFBRSxDQUM5QixPQUFDLENBQUMsTUFBTSxDQUFDO0lBQ1AsTUFBTSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7Q0FDOUIsQ0FBQyxDQUFBO0FBRUosTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLEVBQ3hCLE1BQU0sRUFDTixLQUFLLEVBQ0wsS0FBSyxNQUtILEVBQUUsRUFBRSxFQUFFO0lBQ1IsT0FBTyxrQkFBa0IsRUFBRSxDQUFDLEtBQUssQ0FDL0IsT0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNQLE1BQU0sRUFBRSxPQUFDLENBQUMsVUFBVSxDQUNsQixDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUMvRCxPQUFDO2FBQ0UsTUFBTSxFQUFFO2FBQ1IsUUFBUSxFQUFFO2FBQ1YsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FDeEI7UUFDRCxLQUFLLEVBQUUsT0FBQyxDQUFDLFVBQVUsQ0FDakIsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFDL0QsT0FBQzthQUNFLE1BQU0sRUFBRTthQUNSLFFBQVEsRUFBRTthQUNWLE9BQU8sQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQ3hCO1FBQ0QsS0FBSyxFQUFFLEtBQUs7WUFDVixDQUFDLENBQUMsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFDdEMsQ0FBQyxDQUFDLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7S0FDMUIsQ0FBQyxDQUNILENBQUE7QUFDSCxDQUFDLENBQUE7QUFFRCxNQUFNLGlCQUFpQixHQUFHLENBQ3hCLElBQWdCLEVBQ2hCLFdBQStCLEVBQy9CLEVBQUU7SUFDRixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDVixJQUFJLEdBQUcsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFBO0lBQ25CLENBQUM7SUFFRCxJQUFJLFVBQVUsR0FBUSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUE7SUFDckMsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNoQixVQUFVLEdBQUcsT0FBQyxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUE7SUFDekQsQ0FBQztJQUVELE1BQU0sU0FBUyxHQUFRLE9BQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUE7SUFDL0MsTUFBTSxTQUFTLEdBQVEsT0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFBO0lBRWxFLE9BQU8sT0FBQyxDQUFDLEtBQUssQ0FBQztRQUNiLFNBQVM7UUFDVCxPQUFDLENBQUMsTUFBTSxDQUFDO1lBQ1AsR0FBRyxFQUFFLFNBQVM7WUFDZCxHQUFHLEVBQUUsU0FBUztZQUNkLEdBQUcsRUFBRSxTQUFTO1lBQ2QsSUFBSSxFQUFFLFNBQVM7WUFDZixLQUFLLEVBQUUsVUFBVTtZQUNqQixNQUFNLEVBQUUsVUFBVTtZQUNsQixHQUFHLEVBQUUsVUFBVTtZQUNmLFNBQVMsRUFBRSxVQUFVO1lBQ3JCLEdBQUcsRUFBRSxVQUFVO1lBQ2YsSUFBSSxFQUFFLFVBQVU7WUFDaEIsR0FBRyxFQUFFLFVBQVU7WUFDZixJQUFJLEVBQUUsVUFBVTtTQUNqQixDQUFDO0tBQ0gsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUFBO0FBRUQsTUFBTSxzQkFBc0IsR0FBRyxDQUE2QixNQUFTLEVBQUUsRUFBRTtJQUN2RSxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQ2pCLE9BQUMsQ0FBQyxNQUFNLENBQUM7UUFDUCxJQUFJLEVBQUUsT0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUU7UUFDN0MsR0FBRyxFQUFFLE9BQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFO0tBQzdDLENBQUMsQ0FDSCxDQUFBO0FBQ0gsQ0FBQyxDQUFBO0FBRUQsTUFBTSxjQUFjLEdBQUcsT0FBQztLQUNyQixNQUFNLENBQUM7SUFDTixVQUFVLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLE9BQU8sRUFBRTtJQUNoQyxTQUFTLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLE9BQU8sRUFBRTtJQUMvQixLQUFLLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLE9BQU8sRUFBRTtJQUMzQixPQUFPLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLE9BQU8sRUFBRTtJQUM3QixTQUFTLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLE9BQU8sRUFBRTtJQUMvQixTQUFTLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLE9BQU8sRUFBRTtJQUMvQixJQUFJLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLE9BQU8sRUFBRTtJQUMxQixZQUFZLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLE9BQU8sRUFBRTtJQUNsQyxRQUFRLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLE9BQU8sRUFBRTtJQUM5QixXQUFXLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLE9BQU8sRUFBRTtJQUNqQyxRQUFRLEVBQUUsT0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsT0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFO0NBQ3RELENBQUM7S0FDRCxNQUFNLEVBQUUsQ0FBQTtBQUVYLDhFQUE4RTtBQUM5RSxlQUFlO0FBQ2YsOEVBQThFO0FBRWpFLFFBQUEsd0JBQXdCLEdBQUcsa0JBQWtCLEVBQUUsQ0FBQyxLQUFLLENBQ2hFLE9BQUMsQ0FBQyxNQUFNLENBQUM7SUFDUCxPQUFPLEVBQUUsT0FBQyxDQUFDLFVBQVUsQ0FDbkIsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFDL0QsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUN0QjtDQUNGLENBQUMsQ0FDSCxDQUFBO0FBS0QsTUFBTSwrQkFBK0IsR0FBRyxPQUFDLENBQUMsTUFBTSxDQUFDO0lBQy9DLEVBQUUsRUFBRSxPQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLE9BQUMsQ0FBQyxLQUFLLENBQUMsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUN6RCxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDMUMsVUFBVSxFQUFFLGlCQUFpQixFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzFDLENBQUMsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ3hCLFNBQVMsRUFBRSxPQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLE9BQUMsQ0FBQyxLQUFLLENBQUMsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUNoRSw0RUFBNEU7SUFDNUUsd0VBQXdFO0lBQ3hFLFdBQVcsRUFBRSxPQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLE9BQUMsQ0FBQyxLQUFLLENBQUMsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtDQUNuRSxDQUFDLENBQUE7QUFFVyxRQUFBLHlCQUF5QixHQUFHLGdCQUFnQixDQUFDO0lBQ3hELEtBQUssRUFBRSxFQUFFO0lBQ1QsTUFBTSxFQUFFLENBQUM7Q0FDVixDQUFDO0tBQ0MsS0FBSyxDQUFDLCtCQUErQixDQUFDO0tBQ3RDLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDLENBQUE7QUFLakUsOEVBQThFO0FBQzlFLHVEQUF1RDtBQUN2RCw4RUFBOEU7QUFFOUU7Ozs7R0FJRztBQUNVLFFBQUEscUJBQXFCLEdBQUcsT0FBQztLQUNuQyxNQUFNLENBQUM7SUFDTiwrREFBK0Q7SUFDL0QsV0FBVyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUU7SUFDdkIsU0FBUyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUU7SUFDckIsZUFBZSxFQUFFLE9BQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxjQUFjLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDakUsZ0JBQWdCLEVBQUUsT0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLGNBQWMsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUNsRSxXQUFXLEVBQUUsT0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDM0MsTUFBTSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDN0IsUUFBUSxFQUFFLE9BQUMsQ0FBQyxNQUFNLENBQUMsT0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLE9BQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRTtDQUN0RCxDQUFDO0tBQ0QsTUFBTSxFQUFFLENBQUE7QUFHWCxzRUFBc0U7QUFDekQsUUFBQSxxQkFBcUIsR0FBRyxPQUFDO0tBQ25DLE1BQU0sQ0FBQztJQUNOLGdCQUFnQixFQUFFLGNBQWMsQ0FBQyxRQUFRLEVBQUU7SUFDM0MsZUFBZSxFQUFFLGNBQWMsQ0FBQyxRQUFRLEVBQUU7SUFDMUMsUUFBUSxFQUFFLE9BQUMsQ0FBQyxNQUFNLENBQUMsT0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLE9BQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRTtJQUNyRCxNQUFNLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtDQUM5QixDQUFDO0tBQ0QsTUFBTSxFQUFFLENBQUE7QUFHWDs7O0dBR0c7QUFDSCxNQUFNLHlCQUF5QixHQUFHLE9BQUM7S0FDaEMsTUFBTSxDQUFDO0lBQ04sSUFBSSxFQUFFLE9BQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDakMsNkRBQTZEO0lBQzdELFNBQVMsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFO0lBQ3JCLFdBQVcsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ2xDLFdBQVcsRUFBRSxPQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ25DLG1CQUFtQixFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7Q0FDM0MsQ0FBQztLQUNELE1BQU0sRUFBRSxDQUFBO0FBS1gsOEVBQThFO0FBQ2pFLFFBQUEsdUJBQXVCLEdBQUcsT0FBQztLQUNyQyxNQUFNLENBQUM7SUFDTixLQUFLLEVBQUUsT0FBQztTQUNMLEtBQUssQ0FDSixPQUFDO1NBQ0UsTUFBTSxDQUFDO1FBQ04sVUFBVSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUU7UUFDdEIsUUFBUSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLEVBQUU7UUFDckMsZUFBZSxFQUFFLE9BQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUU7UUFDdkMsTUFBTSxFQUFFLHlCQUF5QixDQUFDLFFBQVEsRUFBRTtRQUM1QyxRQUFRLEVBQUUsT0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsT0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFO0tBQ3ZELENBQUM7U0FDRCxNQUFNLEVBQUUsQ0FDWjtTQUNBLEdBQUcsQ0FBQyxDQUFDLENBQUM7Q0FDVixDQUFDO0tBQ0QsTUFBTSxFQUFFLENBQUE7QUFHWCw2REFBNkQ7QUFDaEQsUUFBQSx5QkFBeUIsR0FBRyxPQUFDO0tBQ3ZDLE1BQU0sQ0FBQztJQUNOLFFBQVEsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ3JDLGFBQWEsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ3BDLFFBQVEsRUFBRSxPQUFDLENBQUMsTUFBTSxDQUFDLE9BQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxPQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUU7Q0FDdEQsQ0FBQztLQUNELE1BQU0sRUFBRSxDQUFBO0FBS1gsNkRBQTZEO0FBQ2hELFFBQUEsK0JBQStCLEdBQUcsT0FBQztLQUM3QyxNQUFNLENBQUM7SUFDTixRQUFRLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNyQyxhQUFhLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtDQUNyQyxDQUFDO0tBQ0QsTUFBTSxFQUFFLENBQUE7QUFLWCxxREFBcUQ7QUFDeEMsUUFBQSx5QkFBeUIsR0FBRyxPQUFDO0tBQ3ZDLE1BQU0sQ0FBQztJQUNOLFdBQVcsRUFBRSxPQUFDLENBQUMsS0FBSyxDQUFDLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztDQUNqQyxDQUFDO0tBQ0QsTUFBTSxFQUFFLENBQUE7QUFLWCxrRkFBa0Y7QUFDckUsUUFBQSxnQ0FBZ0MsR0FBRyxPQUFDO0tBQzlDLE1BQU0sQ0FBQztJQUNOLGtCQUFrQixFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUU7SUFDOUIsV0FBVyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDbEMsUUFBUSxFQUFFLE9BQUMsQ0FBQyxNQUFNLENBQUMsT0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLE9BQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRTtDQUN2RCxDQUFDO0tBQ0QsTUFBTSxFQUFFLENBQUE7QUFLWCxzRUFBc0U7QUFDekQsUUFBQSxtQ0FBbUMsR0FBRyxPQUFDO0tBQ2pELE1BQU0sQ0FBQztJQUNOLGtCQUFrQixFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDekMsYUFBYSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxPQUFPLEVBQUU7Q0FDcEMsQ0FBQztLQUNELE1BQU0sRUFBRSxDQUFBO0FBS1gsaUZBQWlGO0FBQ3BFLFFBQUEseUNBQXlDLEdBQUcsT0FBQztLQUN2RCxNQUFNLENBQUM7SUFDTixrQkFBa0IsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFO0lBQzlCLFdBQVcsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsT0FBTyxFQUFFO0lBQ2pDLGFBQWEsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsT0FBTyxFQUFFO0lBQ25DLFFBQVEsRUFBRSxPQUFDLENBQUMsTUFBTSxDQUFDLE9BQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxPQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUU7Q0FDdEQsQ0FBQztLQUNELE1BQU0sRUFBRSxDQUFBIn0=
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.listShippingOptionsQueryConfig = exports.listStockLocationsQueryConfig = exports.defaultShippingOptionFields = exports.defaultStockLocationFields = exports.StoreGetShippingOptionsParams = exports.StoreGetStockLocationsParams = void 0;
|
|
4
|
+
const zod_1 = require("@medusajs/framework/zod");
|
|
5
|
+
/**
|
|
6
|
+
* Query params + query configs for the agent's stock-location and
|
|
7
|
+
* shipping-option listings. They mirror the core admin list routes
|
|
8
|
+
* (`GET /admin/stock-locations`, `GET /admin/shipping-options`, Medusa 2.14.2)
|
|
9
|
+
* so the POS front components can be reused as-is: same params, same default
|
|
10
|
+
* fields, same response shape.
|
|
11
|
+
*/
|
|
12
|
+
const stringOrArray = zod_1.z.union([zod_1.z.string(), zod_1.z.array(zod_1.z.string())]).optional();
|
|
13
|
+
const findParams = zod_1.z.object({
|
|
14
|
+
fields: zod_1.z.string().optional(),
|
|
15
|
+
offset: zod_1.z.preprocess((val) => (val && typeof val === "string" ? parseInt(val) : val), zod_1.z.number().optional().default(0)),
|
|
16
|
+
limit: zod_1.z.preprocess((val) => (val && typeof val === "string" ? parseInt(val) : val), zod_1.z.number().optional().default(50)),
|
|
17
|
+
order: zod_1.z.string().optional(),
|
|
18
|
+
});
|
|
19
|
+
exports.StoreGetStockLocationsParams = findParams.merge(zod_1.z.object({
|
|
20
|
+
id: stringOrArray,
|
|
21
|
+
name: stringOrArray,
|
|
22
|
+
q: zod_1.z.string().optional(),
|
|
23
|
+
}));
|
|
24
|
+
exports.StoreGetShippingOptionsParams = findParams.merge(zod_1.z.object({
|
|
25
|
+
id: stringOrArray,
|
|
26
|
+
q: zod_1.z.string().optional(),
|
|
27
|
+
stock_location_id: stringOrArray,
|
|
28
|
+
shipping_profile_id: stringOrArray,
|
|
29
|
+
provider_id: stringOrArray,
|
|
30
|
+
}));
|
|
31
|
+
/** Copy of `defaultAdminStockLocationFields` (core 2.14.2). */
|
|
32
|
+
exports.defaultStockLocationFields = [
|
|
33
|
+
"id",
|
|
34
|
+
"name",
|
|
35
|
+
"metadata",
|
|
36
|
+
"created_at",
|
|
37
|
+
"updated_at",
|
|
38
|
+
"address.id",
|
|
39
|
+
"address.address_1",
|
|
40
|
+
"address.address_2",
|
|
41
|
+
"address.city",
|
|
42
|
+
"address.country_code",
|
|
43
|
+
"address.phone",
|
|
44
|
+
"address.province",
|
|
45
|
+
"address.postal_code",
|
|
46
|
+
"address.metadata",
|
|
47
|
+
];
|
|
48
|
+
/** Copy of `defaultAdminShippingOptionFields` (core 2.14.2). */
|
|
49
|
+
exports.defaultShippingOptionFields = [
|
|
50
|
+
"id",
|
|
51
|
+
"name",
|
|
52
|
+
"price_type",
|
|
53
|
+
"data",
|
|
54
|
+
"provider_id",
|
|
55
|
+
"metadata",
|
|
56
|
+
"created_at",
|
|
57
|
+
"updated_at",
|
|
58
|
+
"*rules",
|
|
59
|
+
"*type",
|
|
60
|
+
"*prices",
|
|
61
|
+
"*prices.price_rules",
|
|
62
|
+
"*service_zone",
|
|
63
|
+
"*shipping_profile",
|
|
64
|
+
"*provider",
|
|
65
|
+
];
|
|
66
|
+
exports.listStockLocationsQueryConfig = {
|
|
67
|
+
defaults: exports.defaultStockLocationFields,
|
|
68
|
+
isList: true,
|
|
69
|
+
};
|
|
70
|
+
exports.listShippingOptionsQueryConfig = {
|
|
71
|
+
defaults: exports.defaultShippingOptionFields,
|
|
72
|
+
isList: true,
|
|
73
|
+
};
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVsZmlsbG1lbnQtdmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcGkvc3RvcmUvbmV0bWUtcG9zL2Z1bGZpbGxtZW50LXZhbGlkYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaURBQTJDO0FBRTNDOzs7Ozs7R0FNRztBQUVILE1BQU0sYUFBYSxHQUFHLE9BQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsT0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUE7QUFFM0UsTUFBTSxVQUFVLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FBQztJQUMxQixNQUFNLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM3QixNQUFNLEVBQUUsT0FBQyxDQUFDLFVBQVUsQ0FDbEIsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFDL0QsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FDakM7SUFDRCxLQUFLLEVBQUUsT0FBQyxDQUFDLFVBQVUsQ0FDakIsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFDL0QsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FDbEM7SUFDRCxLQUFLLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtDQUM3QixDQUFDLENBQUE7QUFFVyxRQUFBLDRCQUE0QixHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQzFELE9BQUMsQ0FBQyxNQUFNLENBQUM7SUFDUCxFQUFFLEVBQUUsYUFBYTtJQUNqQixJQUFJLEVBQUUsYUFBYTtJQUNuQixDQUFDLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtDQUN6QixDQUFDLENBQ0gsQ0FBQTtBQUVZLFFBQUEsNkJBQTZCLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FDM0QsT0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNQLEVBQUUsRUFBRSxhQUFhO0lBQ2pCLENBQUMsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ3hCLGlCQUFpQixFQUFFLGFBQWE7SUFDaEMsbUJBQW1CLEVBQUUsYUFBYTtJQUNsQyxXQUFXLEVBQUUsYUFBYTtDQUMzQixDQUFDLENBQ0gsQ0FBQTtBQUVELCtEQUErRDtBQUNsRCxRQUFBLDBCQUEwQixHQUFHO0lBQ3hDLElBQUk7SUFDSixNQUFNO0lBQ04sVUFBVTtJQUNWLFlBQVk7SUFDWixZQUFZO0lBQ1osWUFBWTtJQUNaLG1CQUFtQjtJQUNuQixtQkFBbUI7SUFDbkIsY0FBYztJQUNkLHNCQUFzQjtJQUN0QixlQUFlO0lBQ2Ysa0JBQWtCO0lBQ2xCLHFCQUFxQjtJQUNyQixrQkFBa0I7Q0FDbkIsQ0FBQTtBQUVELGdFQUFnRTtBQUNuRCxRQUFBLDJCQUEyQixHQUFHO0lBQ3pDLElBQUk7SUFDSixNQUFNO0lBQ04sWUFBWTtJQUNaLE1BQU07SUFDTixhQUFhO0lBQ2IsVUFBVTtJQUNWLFlBQVk7SUFDWixZQUFZO0lBQ1osUUFBUTtJQUNSLE9BQU87SUFDUCxTQUFTO0lBQ1QscUJBQXFCO0lBQ3JCLGVBQWU7SUFDZixtQkFBbUI7SUFDbkIsV0FBVztDQUNaLENBQUE7QUFFWSxRQUFBLDZCQUE2QixHQUFHO0lBQzNDLFFBQVEsRUFBRSxrQ0FBMEI7SUFDcEMsTUFBTSxFQUFFLElBQUk7Q0FDYixDQUFBO0FBRVksUUFBQSw4QkFBOEIsR0FBRztJQUM1QyxRQUFRLEVBQUUsbUNBQTJCO0lBQ3JDLE1BQU0sRUFBRSxJQUFJO0NBQ2IsQ0FBQSJ9
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.POST = POST;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
const zod_1 = require("@medusajs/framework/zod");
|
|
6
|
+
const authorize_payment_collection_1 = require("../../../../../../workflows/authorize-payment-collection");
|
|
7
|
+
const guards_1 = require("../../guards");
|
|
8
|
+
/**
|
|
9
|
+
* Store clone of `POST /admin/netme-pos/payment-collections/:id/mark-as-paid`
|
|
10
|
+
* (spec §10 option A): authorize a draft order's payment collection with
|
|
11
|
+
* `pp_system_default` WITHOUT capturing, authenticated as the AGENT customer.
|
|
12
|
+
*
|
|
13
|
+
* ⚠️ Wallet order of operations: settle here BEFORE `convert-to-order`, or the
|
|
14
|
+
* draft's credit line is lost on conversion.
|
|
15
|
+
*/
|
|
16
|
+
const MarkAsPaidSchema = zod_1.z.object({
|
|
17
|
+
order_id: zod_1.z.string(),
|
|
18
|
+
});
|
|
19
|
+
async function POST(req, res) {
|
|
20
|
+
const { id } = req.params;
|
|
21
|
+
const validated = MarkAsPaidSchema.parse(req.body);
|
|
22
|
+
const { order_id: ownedOrderId } = await (0, guards_1.assertAgentPaymentCollection)(req, id);
|
|
23
|
+
if (validated.order_id !== ownedOrderId) {
|
|
24
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_FOUND, `Payment collection with id ${id} was not found`);
|
|
25
|
+
}
|
|
26
|
+
const { result } = await (0, authorize_payment_collection_1.authorizePaymentCollectionWorkflow)(req.scope).run({
|
|
27
|
+
input: {
|
|
28
|
+
payment_collection_id: id,
|
|
29
|
+
order_id: validated.order_id,
|
|
30
|
+
},
|
|
31
|
+
});
|
|
32
|
+
res.status(200).json({ payment: result });
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL25ldG1lLXBvcy9wYXltZW50LWNvbGxlY3Rpb25zL1tpZF0vbWFyay1hcy1wYWlkL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBc0JBLG9CQXVCQztBQXpDRCxxREFBdUQ7QUFDdkQsaURBQTJDO0FBQzNDLDJHQUE2RztBQUM3Ryx5Q0FBMkQ7QUFFM0Q7Ozs7Ozs7R0FPRztBQUVILE1BQU0sZ0JBQWdCLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNoQyxRQUFRLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRTtDQUNyQixDQUFDLENBQUE7QUFFSyxLQUFLLFVBQVUsSUFBSSxDQUN4QixHQUErQixFQUMvQixHQUFtQjtJQUVuQixNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQTtJQUN6QixNQUFNLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBRWxELE1BQU0sRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLEdBQUcsTUFBTSxJQUFBLHFDQUE0QixFQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQTtJQUM5RSxJQUFJLFNBQVMsQ0FBQyxRQUFRLEtBQUssWUFBWSxFQUFFLENBQUM7UUFDeEMsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFDM0IsOEJBQThCLEVBQUUsZ0JBQWdCLENBQ2pELENBQUE7SUFDSCxDQUFDO0lBRUQsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLE1BQU0sSUFBQSxpRUFBa0MsRUFBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBQ3pFLEtBQUssRUFBRTtZQUNMLHFCQUFxQixFQUFFLEVBQUU7WUFDekIsUUFBUSxFQUFFLFNBQVMsQ0FBQyxRQUFRO1NBQzdCO0tBQ0YsQ0FBQyxDQUFBO0lBRUYsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQTtBQUMzQyxDQUFDIn0=
|
package/.medusa/server/src/api/store/netme-pos/payment-collections/[id]/payment-sessions/route.js
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.POST = POST;
|
|
4
|
+
const zod_1 = require("@medusajs/framework/zod");
|
|
5
|
+
const core_flows_1 = require("@medusajs/medusa/core-flows");
|
|
6
|
+
const guards_1 = require("../../guards");
|
|
7
|
+
/**
|
|
8
|
+
* Store clone of `POST /admin/netme-pos/payment-collections/:id/payment-sessions`
|
|
9
|
+
* (spec §10 option A): initialize a payment session on a draft order's payment
|
|
10
|
+
* collection, authenticated as the AGENT customer that owns the draft.
|
|
11
|
+
*/
|
|
12
|
+
const CreateSessionSchema = zod_1.z.object({
|
|
13
|
+
provider_id: zod_1.z.string(),
|
|
14
|
+
});
|
|
15
|
+
async function POST(req, res) {
|
|
16
|
+
const { id } = req.params;
|
|
17
|
+
const validated = CreateSessionSchema.parse(req.body);
|
|
18
|
+
await (0, guards_1.assertAgentPaymentCollection)(req, id);
|
|
19
|
+
const { result } = await (0, core_flows_1.createPaymentSessionsWorkflow)(req.scope).run({
|
|
20
|
+
input: {
|
|
21
|
+
payment_collection_id: id,
|
|
22
|
+
provider_id: validated.provider_id,
|
|
23
|
+
},
|
|
24
|
+
});
|
|
25
|
+
// Mimics the store API response structure (same as the admin clone):
|
|
26
|
+
res.status(200).json({ payment_collection: result });
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL25ldG1lLXBvcy9wYXltZW50LWNvbGxlY3Rpb25zL1tpZF0vcGF5bWVudC1zZXNzaW9ucy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWtCQSxvQkFrQkM7QUFoQ0QsaURBQTJDO0FBQzNDLDREQUEyRTtBQUMzRSx5Q0FBMkQ7QUFFM0Q7Ozs7R0FJRztBQUVILE1BQU0sbUJBQW1CLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNuQyxXQUFXLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRTtDQUN4QixDQUFDLENBQUE7QUFFSyxLQUFLLFVBQVUsSUFBSSxDQUN4QixHQUErQixFQUMvQixHQUFtQjtJQUVuQixNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQTtJQUN6QixNQUFNLFNBQVMsR0FBRyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBRXJELE1BQU0sSUFBQSxxQ0FBNEIsRUFBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFFM0MsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLE1BQU0sSUFBQSwwQ0FBNkIsRUFBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBQ3BFLEtBQUssRUFBRTtZQUNMLHFCQUFxQixFQUFFLEVBQUU7WUFDekIsV0FBVyxFQUFFLFNBQVMsQ0FBQyxXQUFXO1NBQ25DO0tBQ0YsQ0FBQyxDQUFBO0lBRUYscUVBQXFFO0lBQ3JFLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQTtBQUN0RCxDQUFDIn0=
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.assertAgentPaymentCollection = assertAgentPaymentCollection;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
const guards_1 = require("../draft-orders/guards");
|
|
6
|
+
/**
|
|
7
|
+
* Payment guard (spec §10): the payment collection must belong to a DRAFT
|
|
8
|
+
* order owned by the authenticated AGENT customer. 404 on any mismatch
|
|
9
|
+
* (never leak existence).
|
|
10
|
+
*/
|
|
11
|
+
async function assertAgentPaymentCollection(req, paymentCollectionId) {
|
|
12
|
+
const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
|
|
13
|
+
const { data: paymentCollections } = await query.graph({
|
|
14
|
+
entity: "payment_collection",
|
|
15
|
+
filters: { id: paymentCollectionId },
|
|
16
|
+
fields: ["id", "order.id"],
|
|
17
|
+
});
|
|
18
|
+
const orderId = paymentCollections[0]?.order?.id;
|
|
19
|
+
const order = orderId
|
|
20
|
+
? await (0, guards_1.findAgentDraftOrder)(req.scope, req.auth_context.actor_id, orderId)
|
|
21
|
+
: null;
|
|
22
|
+
if (!order) {
|
|
23
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_FOUND, `Payment collection with id ${paymentCollectionId} was not found`);
|
|
24
|
+
}
|
|
25
|
+
return { order_id: order.id };
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3VhcmRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwaS9zdG9yZS9uZXRtZS1wb3MvcGF5bWVudC1jb2xsZWN0aW9ucy9ndWFyZHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFZQSxvRUF5QkM7QUFwQ0QscURBR2tDO0FBQ2xDLG1EQUE0RDtBQUU1RDs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLDRCQUE0QixDQUNoRCxHQUErQixFQUMvQixtQkFBMkI7SUFFM0IsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUE7SUFFaEUsTUFBTSxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztRQUNyRCxNQUFNLEVBQUUsb0JBQW9CO1FBQzVCLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxtQkFBbUIsRUFBRTtRQUNwQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDO0tBQzNCLENBQUMsQ0FBQTtJQUVGLE1BQU0sT0FBTyxHQUFHLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUE7SUFDaEQsTUFBTSxLQUFLLEdBQUcsT0FBTztRQUNuQixDQUFDLENBQUMsTUFBTSxJQUFBLDRCQUFtQixFQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDO1FBQzFFLENBQUMsQ0FBQyxJQUFJLENBQUE7SUFFUixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDWCxNQUFNLElBQUksbUJBQVcsQ0FDbkIsbUJBQVcsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUMzQiw4QkFBOEIsbUJBQW1CLGdCQUFnQixDQUNsRSxDQUFBO0lBQ0gsQ0FBQztJQUVELE9BQU8sRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFBO0FBQy9CLENBQUMifQ==
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GET = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* `GET /store/netme-pos/products/:id` — single product for the agent, same
|
|
6
|
+
* handler and pricing context as `GET /admin/netme-pos/products/:id`.
|
|
7
|
+
*/
|
|
8
|
+
var route_1 = require("../../../../admin/netme-pos/products/[id]/route");
|
|
9
|
+
Object.defineProperty(exports, "GET", { enumerable: true, get: function () { return route_1.GET; } });
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL25ldG1lLXBvcy9wcm9kdWN0cy9baWRdL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOzs7R0FHRztBQUNILHlFQUFxRTtBQUE1RCw0RkFBQSxHQUFHLE9BQUEifQ==
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GET = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* `GET /store/netme-pos/products` — the agent's catalog.
|
|
6
|
+
*
|
|
7
|
+
* Same handler as `GET /admin/netme-pos/products` (prices for `?customer=`
|
|
8
|
+
* via that customer's groups, inventory per `?stock_location_id=`). The store
|
|
9
|
+
* middleware chain adds customer auth, scopes to the publishable key's sales
|
|
10
|
+
* channels and forces `published` (see `src/api/middlewares.ts`).
|
|
11
|
+
*/
|
|
12
|
+
var route_1 = require("../../../admin/netme-pos/products/route");
|
|
13
|
+
Object.defineProperty(exports, "GET", { enumerable: true, get: function () { return route_1.GET; } });
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL25ldG1lLXBvcy9wcm9kdWN0cy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7Ozs7OztHQU9HO0FBQ0gsaUVBQTZEO0FBQXBELDRGQUFBLEdBQUcsT0FBQSJ9
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.assertStockLocationInScope = exports.listStockLocationsForChannels = exports.getKeySalesChannelIds = void 0;
|
|
4
|
+
exports.scopeProductsToPublishableKey = scopeProductsToPublishableKey;
|
|
5
|
+
exports.forcePublishedStatus = forcePublishedStatus;
|
|
6
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
7
|
+
/**
|
|
8
|
+
* Store scoping for the agent's catalog / locations / shipping routes.
|
|
9
|
+
*
|
|
10
|
+
* In the admin POS the operator picks the sales channel and stock location. In
|
|
11
|
+
* the store the sales channel comes from the publishable key, so everything the
|
|
12
|
+
* agent can see (products, stock locations, shipping options) is limited to the
|
|
13
|
+
* key's sales channels.
|
|
14
|
+
*/
|
|
15
|
+
const getKeySalesChannelIds = (req) => {
|
|
16
|
+
const ids = req.publishable_key_context?.sales_channel_ids ?? [];
|
|
17
|
+
if (!ids.length) {
|
|
18
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "The publishable key is not associated with any sales channel");
|
|
19
|
+
}
|
|
20
|
+
return ids;
|
|
21
|
+
};
|
|
22
|
+
exports.getKeySalesChannelIds = getKeySalesChannelIds;
|
|
23
|
+
/** Stock locations linked to the given sales channels (deduplicated). */
|
|
24
|
+
const listStockLocationsForChannels = async (scope, salesChannelIds) => {
|
|
25
|
+
const query = scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
|
|
26
|
+
const { data: channels } = await query.graph({
|
|
27
|
+
entity: "sales_channel",
|
|
28
|
+
filters: { id: salesChannelIds },
|
|
29
|
+
fields: [
|
|
30
|
+
"id",
|
|
31
|
+
"stock_locations.id",
|
|
32
|
+
"stock_locations.name",
|
|
33
|
+
"stock_locations.address.*",
|
|
34
|
+
"stock_locations.fulfillment_sets.type",
|
|
35
|
+
],
|
|
36
|
+
});
|
|
37
|
+
const byId = new Map();
|
|
38
|
+
for (const channel of channels) {
|
|
39
|
+
for (const location of channel.stock_locations ?? []) {
|
|
40
|
+
if (!location?.id || byId.has(location.id)) {
|
|
41
|
+
continue;
|
|
42
|
+
}
|
|
43
|
+
byId.set(location.id, {
|
|
44
|
+
id: location.id,
|
|
45
|
+
name: location.name,
|
|
46
|
+
address: location.address ?? null,
|
|
47
|
+
fulfillment_types: [
|
|
48
|
+
...new Set((location.fulfillment_sets ?? [])
|
|
49
|
+
.map((fs) => fs?.type)
|
|
50
|
+
.filter(Boolean)),
|
|
51
|
+
],
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return [...byId.values()].sort((a, b) => a.name.localeCompare(b.name));
|
|
56
|
+
};
|
|
57
|
+
exports.listStockLocationsForChannels = listStockLocationsForChannels;
|
|
58
|
+
/** 404 unless the location belongs to the publishable key's sales channels. */
|
|
59
|
+
const assertStockLocationInScope = async (req, stockLocationId) => {
|
|
60
|
+
const locations = await (0, exports.listStockLocationsForChannels)(req.scope, (0, exports.getKeySalesChannelIds)(req));
|
|
61
|
+
const location = locations.find((l) => l.id === stockLocationId);
|
|
62
|
+
if (!location) {
|
|
63
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_FOUND, `Stock location with id ${stockLocationId} was not found`);
|
|
64
|
+
}
|
|
65
|
+
return location;
|
|
66
|
+
};
|
|
67
|
+
exports.assertStockLocationInScope = assertStockLocationInScope;
|
|
68
|
+
/**
|
|
69
|
+
* Products middleware: restricts `sales_channel_id` to the publishable key's
|
|
70
|
+
* channels (intersecting with any channel the client asked for) and validates
|
|
71
|
+
* an optional `stock_location_id` against those channels.
|
|
72
|
+
*
|
|
73
|
+
* Writes both `filterableFields` (product filter) and `validatedQuery` (read by
|
|
74
|
+
* the inventory scope helper of the shared products handler).
|
|
75
|
+
*/
|
|
76
|
+
async function scopeProductsToPublishableKey(req, _res, next) {
|
|
77
|
+
try {
|
|
78
|
+
const keyChannels = (0, exports.getKeySalesChannelIds)(req);
|
|
79
|
+
const validated = (req.validatedQuery ?? {});
|
|
80
|
+
const requested = validated.sales_channel_id;
|
|
81
|
+
let channels = keyChannels;
|
|
82
|
+
if (requested) {
|
|
83
|
+
const asked = Array.isArray(requested) ? requested : [requested];
|
|
84
|
+
channels = keyChannels.filter((id) => asked.includes(id));
|
|
85
|
+
if (!channels.length) {
|
|
86
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "Requested sales channel is not associated with the publishable key");
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
const scoped = channels.length === 1 ? channels[0] : channels;
|
|
90
|
+
req.filterableFields.sales_channel_id = scoped;
|
|
91
|
+
validated.sales_channel_id = scoped;
|
|
92
|
+
if (validated.stock_location_id) {
|
|
93
|
+
await (0, exports.assertStockLocationInScope)(req, validated.stock_location_id);
|
|
94
|
+
}
|
|
95
|
+
return next();
|
|
96
|
+
}
|
|
97
|
+
catch (e) {
|
|
98
|
+
return next(e);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
/** Store never exposes unpublished products (the admin clone lets `?status=` through). */
|
|
102
|
+
function forcePublishedStatus(req, _res, next) {
|
|
103
|
+
req.filterableFields.status = utils_1.ProductStatus.PUBLISHED;
|
|
104
|
+
return next();
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NvcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL25ldG1lLXBvcy9zY29wZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUE2R0Esc0VBa0NDO0FBR0Qsb0RBT0M7QUFuSkQscURBSWtDO0FBRWxDOzs7Ozs7O0dBT0c7QUFFSSxNQUFNLHFCQUFxQixHQUFHLENBQUMsR0FBa0IsRUFBWSxFQUFFO0lBQ3BFLE1BQU0sR0FBRyxHQUFJLEdBQVcsQ0FBQyx1QkFBdUIsRUFBRSxpQkFBaUIsSUFBSSxFQUFFLENBQUE7SUFDekUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNoQixNQUFNLElBQUksbUJBQVcsQ0FDbkIsbUJBQVcsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUM5Qiw4REFBOEQsQ0FDL0QsQ0FBQTtJQUNILENBQUM7SUFDRCxPQUFPLEdBQUcsQ0FBQTtBQUNaLENBQUMsQ0FBQTtBQVRZLFFBQUEscUJBQXFCLHlCQVNqQztBQVNELHlFQUF5RTtBQUNsRSxNQUFNLDZCQUE2QixHQUFHLEtBQUssRUFDaEQsS0FBc0IsRUFDdEIsZUFBeUIsRUFDTyxFQUFFO0lBQ2xDLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUE7SUFFNUQsTUFBTSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDM0MsTUFBTSxFQUFFLGVBQWU7UUFDdkIsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLGVBQWUsRUFBRTtRQUNoQyxNQUFNLEVBQUU7WUFDTixJQUFJO1lBQ0osb0JBQW9CO1lBQ3BCLHNCQUFzQjtZQUN0QiwyQkFBMkI7WUFDM0IsdUNBQXVDO1NBQ3hDO0tBQ0YsQ0FBQyxDQUFBO0lBRUYsTUFBTSxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQStCLENBQUE7SUFD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
|