@lodashventure/medusa-parcel-shipping 0.0.6 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/.medusa/server/api/admin/documents/document-packing-slip-settings/route.js +62 -0
  2. package/.medusa/server/api/admin/documents/packing-slip/preview/route.js +47 -0
  3. package/.medusa/server/api/admin/documents/packing-slip/route.js +112 -0
  4. package/.medusa/server/api/admin/parcel-boxes/[id]/route.js +45 -0
  5. package/.medusa/server/api/admin/parcel-boxes/route.js +49 -0
  6. package/.medusa/server/api/admin/shipping-config/areas/[id]/route.js +42 -0
  7. package/.medusa/server/api/admin/shipping-config/areas/route.js +49 -0
  8. package/.medusa/server/api/admin/shipping-config/rates/[id]/route.js +82 -0
  9. package/.medusa/server/api/admin/shipping-config/rates/route.js +95 -0
  10. package/.medusa/server/api/shipping/distance/route.js +85 -0
  11. package/.medusa/server/api/shipping/distance/utils/zodTransform.js +20 -0
  12. package/.medusa/server/api/store/parcel-box-selector/route.js +55 -0
  13. package/.medusa/server/api/webhooks/tracking/route.js +48 -0
  14. package/.medusa/server/common/types.js +4 -0
  15. package/.medusa/server/common/utils/osrm-client.js +81 -0
  16. package/.medusa/server/common/utils/packing.js +379 -0
  17. package/.medusa/server/{src/modules/parcel-shipping/index.js → index.js} +9 -9
  18. package/.medusa/server/links/index.js +9 -0
  19. package/.medusa/server/links/packing-slip-order.js +13 -0
  20. package/.medusa/server/modules/documents/index.js +24 -0
  21. package/.medusa/server/modules/documents/models/document-invoice.js +20 -0
  22. package/.medusa/server/modules/documents/models/document-packing-slip-settings.js +29 -0
  23. package/.medusa/server/modules/documents/models/document-packing-slip.js +32 -0
  24. package/.medusa/server/modules/documents/models/document-settings.js +32 -0
  25. package/.medusa/server/modules/documents/models/index.js +15 -0
  26. package/.medusa/server/modules/documents/service.js +219 -0
  27. package/.medusa/server/modules/documents/services/generators/invoice-generator.js +73 -0
  28. package/.medusa/server/modules/documents/services/generators/packing-slip-generator.js +73 -0
  29. package/.medusa/server/modules/documents/services/templates/invoices/basic/basic-logo.js +55 -0
  30. package/.medusa/server/modules/documents/services/templates/invoices/basic/basic.js +52 -0
  31. package/.medusa/server/modules/documents/services/templates/invoices/basic/parts/customer-info.js +69 -0
  32. package/.medusa/server/modules/documents/services/templates/invoices/basic/parts/header-for-logo.js +32 -0
  33. package/.medusa/server/modules/documents/services/templates/invoices/basic/parts/header-logo.js +29 -0
  34. package/.medusa/server/modules/documents/services/templates/invoices/basic/parts/header.js +35 -0
  35. package/.medusa/server/modules/documents/services/templates/invoices/basic/parts/hr.js +23 -0
  36. package/.medusa/server/modules/documents/services/templates/invoices/basic/parts/invoice-info.js +35 -0
  37. package/.medusa/server/modules/documents/services/templates/invoices/basic/parts/table.js +97 -0
  38. package/.medusa/server/modules/documents/services/templates/packing-slips/basic/basic.js +52 -0
  39. package/.medusa/server/modules/documents/services/templates/packing-slips/basic/parts/customer-info-small.js +69 -0
  40. package/.medusa/server/modules/documents/services/templates/packing-slips/basic/parts/customer-info.js +65 -0
  41. package/.medusa/server/modules/documents/services/templates/packing-slips/basic/parts/header-small.js +37 -0
  42. package/.medusa/server/modules/documents/services/templates/packing-slips/basic/parts/header.js +37 -0
  43. package/.medusa/server/modules/documents/services/templates/packing-slips/basic/parts/hr.js +32 -0
  44. package/.medusa/server/modules/documents/services/templates/packing-slips/basic/parts/table-items-small.js +44 -0
  45. package/.medusa/server/modules/documents/services/templates/packing-slips/basic/parts/table-items.js +44 -0
  46. package/.medusa/server/modules/documents/services/templates/packing-slips/basic/parts/table-order-info-small.js +35 -0
  47. package/.medusa/server/modules/documents/services/templates/packing-slips/basic/parts/table-order-info.js +36 -0
  48. package/.medusa/server/modules/documents/services/templates/packing-slips/basic/small.js +53 -0
  49. package/.medusa/server/modules/documents/types/api.js +14 -0
  50. package/.medusa/server/modules/documents/types/constants.js +17 -0
  51. package/.medusa/server/modules/documents/types/dto.js +14 -0
  52. package/.medusa/server/modules/documents/types/template-kind.js +25 -0
  53. package/.medusa/server/modules/documents/utils/currency.js +25 -0
  54. package/.medusa/server/providers/company-truck/index.js +10 -0
  55. package/.medusa/server/providers/company-truck/models/company-truck-rate.js +23 -0
  56. package/.medusa/server/{src → providers/company-truck/models}/index.js +4 -8
  57. package/.medusa/server/providers/company-truck/models/parcel-box.js +21 -0
  58. package/.medusa/server/providers/company-truck/models/service-area.js +20 -0
  59. package/.medusa/server/providers/company-truck/service.js +456 -0
  60. package/.medusa/server/{src/modules/parcel-shipping → providers/company-truck}/types.js +1 -1
  61. package/.medusa/server/providers/private-carrier/index.js +10 -0
  62. package/.medusa/server/providers/private-carrier/models/index.js +20 -0
  63. package/.medusa/server/providers/private-carrier/models/parcel-box.js +21 -0
  64. package/.medusa/server/providers/private-carrier/models/private-carrier-rate.js +23 -0
  65. package/.medusa/server/providers/private-carrier/models/service-area.js +20 -0
  66. package/.medusa/server/providers/private-carrier/service.js +392 -0
  67. package/.medusa/server/providers/private-carrier/types.js +3 -0
  68. package/.medusa/server/src/admin/index.js +3 -2
  69. package/.medusa/server/src/admin/index.mjs +3 -2
  70. package/.medusa/server/workflows/assign-packing-slip.js +31 -0
  71. package/.medusa/server/workflows/index.js +9 -0
  72. package/package.json +25 -34
  73. package/.medusa/server/src/api/admin/parcel-boxes/[id]/route.js +0 -47
  74. package/.medusa/server/src/api/admin/parcel-boxes/route.js +0 -48
  75. package/.medusa/server/src/api/admin/shipping-config/areas/[id]/route.js +0 -44
  76. package/.medusa/server/src/api/admin/shipping-config/areas/route.js +0 -48
  77. package/.medusa/server/src/api/admin/shipping-config/rates/[id]/route.js +0 -53
  78. package/.medusa/server/src/api/admin/shipping-config/rates/route.js +0 -55
  79. package/.medusa/server/src/api/store/parcel-box-selector/route.js +0 -53
  80. package/.medusa/server/src/modules/parcel-shipping/migrations/Migration20251015120000.js +0 -70
  81. package/.medusa/server/src/modules/parcel-shipping/models/parcel-box.js +0 -21
  82. package/.medusa/server/src/modules/parcel-shipping/models/service-area.js +0 -20
  83. package/.medusa/server/src/modules/parcel-shipping/models/shipping-rate.js +0 -20
  84. package/.medusa/server/src/modules/parcel-shipping/service.js +0 -172
  85. package/.medusa/server/src/modules/parcel-shipping/utils/packing.js +0 -319
  86. package/.medusa/server/src/providers/company-truck/index.js +0 -19
  87. package/.medusa/server/src/providers/parcel-fulfillment-base.js +0 -180
  88. package/.medusa/server/src/providers/private-carrier/index.js +0 -19
@@ -0,0 +1,392 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PrivateCarrierFulfillmentProvider = void 0;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ const utils_2 = require("@medusajs/framework/utils");
6
+ const parcel_box_1 = require("./models/parcel-box");
7
+ const private_carrier_rate_1 = require("./models/private-carrier-rate");
8
+ const osrm_client_1 = require("../../common/utils/osrm-client");
9
+ const packing_1 = require("../../common/utils/packing");
10
+ const CACHE_TTL_MS = 60_000;
11
+ // Inner data service class
12
+ class PrivateCarrierDataService extends (0, utils_2.MedusaService)({
13
+ ParcelBox: parcel_box_1.ParcelBox,
14
+ PrivateCarrierRate: private_carrier_rate_1.PrivateCarrierRate,
15
+ }) {
16
+ constructor() {
17
+ super(...arguments);
18
+ this.cache = {
19
+ boxes: { data: null, expiresAt: 0 },
20
+ rates: { data: null, expiresAt: 0 },
21
+ };
22
+ }
23
+ invalidateCache(keys) {
24
+ if (!keys || keys.length === 0) {
25
+ Object.keys(this.cache).forEach((key) => {
26
+ this.cache[key] = { data: null, expiresAt: 0 };
27
+ });
28
+ return;
29
+ }
30
+ for (const key of keys) {
31
+ this.cache[key] = { data: null, expiresAt: 0 };
32
+ }
33
+ }
34
+ async findParcelBoxes(filters = {}, config = {}) {
35
+ const cacheKey = "boxes";
36
+ const now = Date.now();
37
+ if (this.cache[cacheKey].data &&
38
+ this.cache[cacheKey].expiresAt > now &&
39
+ Object.keys(filters).length === 0) {
40
+ return this.cache[cacheKey].data;
41
+ }
42
+ const boxes = await this.listParcelBoxes(filters, config);
43
+ if (Object.keys(filters).length === 0) {
44
+ this.cache[cacheKey] = { data: boxes, expiresAt: now + CACHE_TTL_MS };
45
+ }
46
+ return boxes;
47
+ }
48
+ async findPrivateCarrierRates(filters = {}, config = {}) {
49
+ const cacheKey = "rates";
50
+ const now = Date.now();
51
+ if (this.cache[cacheKey].data &&
52
+ this.cache[cacheKey].expiresAt > now &&
53
+ Object.keys(filters).length === 0) {
54
+ return this.cache[cacheKey].data;
55
+ }
56
+ const rates = await this.listPrivateCarrierRates(filters, config);
57
+ if (Object.keys(filters).length === 0) {
58
+ this.cache[cacheKey] = { data: rates, expiresAt: now + CACHE_TTL_MS };
59
+ }
60
+ return rates;
61
+ }
62
+ async saveParcelBoxes(data) {
63
+ const result = await this.createParcelBoxes(data);
64
+ this.invalidateCache(["boxes"]);
65
+ return result;
66
+ }
67
+ async modifyParcelBox(id, data) {
68
+ const result = await this.updateParcelBoxes({ id, ...data });
69
+ this.invalidateCache(["boxes"]);
70
+ return result;
71
+ }
72
+ async removeParcelBox(id) {
73
+ const result = await this.deleteParcelBoxes([id]);
74
+ this.invalidateCache(["boxes"]);
75
+ return result;
76
+ }
77
+ async savePrivateCarrierRates(data) {
78
+ const result = await this.createPrivateCarrierRates(data);
79
+ this.invalidateCache(["rates"]);
80
+ return result;
81
+ }
82
+ async modifyPrivateCarrierRate(id, data) {
83
+ const result = await this.updatePrivateCarrierRates({ id, ...data });
84
+ this.invalidateCache(["rates"]);
85
+ return result;
86
+ }
87
+ async removePrivateCarrierRate(id) {
88
+ const result = await this.deletePrivateCarrierRates([id]);
89
+ this.invalidateCache(["rates"]);
90
+ return result;
91
+ }
92
+ }
93
+ class PrivateCarrierFulfillmentProvider extends utils_1.AbstractFulfillmentProviderService {
94
+ constructor(container, options = {}) {
95
+ super();
96
+ this.dataService = new PrivateCarrierDataService(container);
97
+ this.weightUnit = options.weight_unit ?? "g";
98
+ this.osrmClient = new osrm_client_1.OSRMClient();
99
+ }
100
+ getDataService() {
101
+ return this.dataService;
102
+ }
103
+ async getFulfillmentOptions() {
104
+ return [
105
+ {
106
+ id: "private-carrier",
107
+ name: "Company Truck Delivery",
108
+ },
109
+ ];
110
+ }
111
+ async validateFulfillmentData(optionData, data, context) {
112
+ const address = this.normalizeAddress(context?.shipping_address);
113
+ const quoteItems = this.convertToQuoteItems(context);
114
+ if (!quoteItems.length) {
115
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "cart_items_missing_dimensions");
116
+ }
117
+ const result = await this.quote({
118
+ items: quoteItems,
119
+ shipping_address: address,
120
+ });
121
+ if (!result.success) {
122
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, result.failure.message || "Unable to calculate box size for items");
123
+ }
124
+ return {
125
+ ...data,
126
+ shipping_quote: result.shipping_quote,
127
+ total_weight_kg: result.packing.totalWeightKg,
128
+ destination: address,
129
+ box: result.best_box,
130
+ packing: result.packing,
131
+ };
132
+ }
133
+ async validateOption(data) {
134
+ return true;
135
+ }
136
+ async canCalculate() {
137
+ return true;
138
+ }
139
+ async calculatePrice(optionData, data, context) {
140
+ const address = this.normalizeAddress(context?.shipping_address);
141
+ const totalWeightKg = this.calculateTotalWeightKg(context);
142
+ if (!totalWeightKg) {
143
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "cart_items_missing_weight");
144
+ }
145
+ const quote = await this.quoteShippingOnly(address, totalWeightKg);
146
+ return {
147
+ calculated_amount: quote.price,
148
+ is_calculated_price_tax_inclusive: false,
149
+ };
150
+ }
151
+ async createFulfillment(data) {
152
+ const fulfillmentId = `CT-${Date.now()}`;
153
+ return {
154
+ data: {
155
+ carrier: "PRIVATE_CARRIER",
156
+ box: data.box,
157
+ packing: data.packing,
158
+ shipping_quote: data.shipping_quote,
159
+ total_weight_kg: data.total_weight_kg,
160
+ destination: data.destination,
161
+ tracking_number: null,
162
+ tracking_url: null,
163
+ label_url: null,
164
+ fulfillment_id: fulfillmentId,
165
+ created_at: new Date().toISOString(),
166
+ metadata: {
167
+ carrier_name: "Company Truck Delivery",
168
+ estimated_delivery_days: 1,
169
+ },
170
+ },
171
+ labels: [],
172
+ };
173
+ }
174
+ async cancelFulfillment() {
175
+ return {
176
+ status: "cancelled",
177
+ };
178
+ }
179
+ async createReturnFulfillment() {
180
+ return {
181
+ data: {
182
+ carrier: "PRIVATE_CARRIER",
183
+ return: true,
184
+ },
185
+ labels: [],
186
+ };
187
+ }
188
+ convertToQuoteItems(context) {
189
+ const items = context?.items ?? [];
190
+ const quoteItems = [];
191
+ for (const item of items) {
192
+ const lineItem = item;
193
+ const quantity = Number(item.quantity ?? 0);
194
+ if (!quantity) {
195
+ continue;
196
+ }
197
+ const rawWeight = Number(lineItem?.variant?.weight ??
198
+ lineItem?.weight ??
199
+ lineItem?.raw_weight ??
200
+ 0) || 0;
201
+ const weight = this.normalizeWeight(rawWeight);
202
+ const width = Number(lineItem?.variant?.width ??
203
+ lineItem?.width ??
204
+ lineItem?.raw_width ??
205
+ 0) || 0;
206
+ const length = Number(lineItem?.variant?.length ??
207
+ lineItem?.length ??
208
+ lineItem?.raw_length ??
209
+ 0) || 0;
210
+ const height = Number(lineItem?.variant?.height ??
211
+ lineItem?.height ??
212
+ lineItem?.raw_height ??
213
+ 0) || 0;
214
+ if (!width || !length || !height || !weight) {
215
+ continue;
216
+ }
217
+ const noStack = Boolean(lineItem?.variant?.metadata?.noStack ?? lineItem?.metadata?.noStack);
218
+ const stackable = lineItem?.variant?.metadata?.stackable ?? lineItem?.metadata?.stackable;
219
+ const attributes = {};
220
+ if (noStack) {
221
+ attributes.noStack = true;
222
+ }
223
+ if (stackable !== undefined && stackable !== null) {
224
+ attributes.stackable = Number(stackable);
225
+ }
226
+ quoteItems.push({
227
+ sku: lineItem?.variant?.sku || lineItem?.sku || "unknown",
228
+ width,
229
+ length,
230
+ height,
231
+ weight,
232
+ quantity,
233
+ attributes: Object.keys(attributes).length > 0 ? attributes : undefined,
234
+ });
235
+ }
236
+ return quoteItems;
237
+ }
238
+ calculateTotalWeightKg(context) {
239
+ const items = context?.items ?? [];
240
+ const total = items.reduce((acc, item) => {
241
+ const lineItem = item;
242
+ const quantity = Number(item.quantity ?? 0);
243
+ if (!quantity) {
244
+ return acc;
245
+ }
246
+ const rawWeight = Number(lineItem?.variant?.weight ??
247
+ lineItem?.weight ??
248
+ lineItem?.raw_weight ??
249
+ 0) || 0;
250
+ const normalized = this.normalizeWeight(rawWeight);
251
+ if (!normalized) {
252
+ return acc;
253
+ }
254
+ return acc + normalized * quantity;
255
+ }, 0);
256
+ return Number(total.toFixed(4));
257
+ }
258
+ normalizeWeight(weight) {
259
+ if (!weight || !Number.isFinite(weight)) {
260
+ return 0;
261
+ }
262
+ if (this.weightUnit === "kg") {
263
+ return Math.max(weight, 0);
264
+ }
265
+ if (this.weightUnit === "g" || weight > 50) {
266
+ return Math.max(weight / 1000, 0);
267
+ }
268
+ return Math.max(weight, 0);
269
+ }
270
+ normalizeAddress(address) {
271
+ if (!address) {
272
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "shipping_address_required");
273
+ }
274
+ const province = String(address.province ??
275
+ address.province_code ??
276
+ address.state ??
277
+ address.city ??
278
+ "").trim() || "";
279
+ const postcode = String(address.postal_code ??
280
+ address.postcode ??
281
+ address.zipcode ??
282
+ address.zip ??
283
+ "").trim() || "";
284
+ const country = String(address.country_code ?? address.country ?? "").toUpperCase();
285
+ if (!province && !postcode) {
286
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "shipping_address_missing_destination");
287
+ }
288
+ if (!country) {
289
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "shipping_address_missing_country");
290
+ }
291
+ return {
292
+ province,
293
+ postcode,
294
+ country,
295
+ };
296
+ }
297
+ async quote(input) {
298
+ const country = (input.shipping_address?.country || "").toUpperCase();
299
+ if (country !== "TH") {
300
+ return {
301
+ success: false,
302
+ code: "country_not_supported",
303
+ message: `Country ${country} is not supported. Only Thailand (TH) is supported.`,
304
+ };
305
+ }
306
+ const boxes = await this.dataService.findParcelBoxes({ active: true });
307
+ if (!boxes || boxes.length === 0) {
308
+ return {
309
+ success: false,
310
+ code: "no_boxes_configured",
311
+ message: "No active parcel boxes are configured.",
312
+ };
313
+ }
314
+ const boxCandidates = boxes.map((box) => ({
315
+ id: box.id,
316
+ name: box.name,
317
+ width_cm: box.width_cm,
318
+ length_cm: box.length_cm,
319
+ height_cm: box.height_cm,
320
+ max_weight_kg: box.max_weight_kg,
321
+ price_thb: box.price_thb,
322
+ }));
323
+ const packingResult = (0, packing_1.selectBestPacking)(input.items, boxCandidates);
324
+ if (!packingResult.success) {
325
+ return {
326
+ success: false,
327
+ code: packingResult.code,
328
+ message: packingResult.message,
329
+ alternatives: packingResult.alternatives?.map((alt) => ({
330
+ box: alt.box,
331
+ packing: alt.metrics,
332
+ })),
333
+ };
334
+ }
335
+ const totalWeightKg = packingResult.result.metrics.totalWeightKg;
336
+ const shippingQuote = await this.quoteShippingOnly(input.shipping_address, totalWeightKg);
337
+ return {
338
+ success: true,
339
+ best_box: packingResult.result.box,
340
+ packing: packingResult.result.metrics,
341
+ shipping_quote: shippingQuote,
342
+ };
343
+ }
344
+ async quoteShippingOnly(address, weight) {
345
+ const method = "PRIVATE_CARRIER";
346
+ const area = "OUT_OF_AREA";
347
+ const rate = await this.findRateForWeight(weight);
348
+ if (!rate) {
349
+ return {
350
+ method,
351
+ area,
352
+ weightKg: weight,
353
+ price: 0,
354
+ currency: "THB",
355
+ error: "No shipping rate configured for this weight",
356
+ };
357
+ }
358
+ return {
359
+ method,
360
+ area,
361
+ weightKg: weight,
362
+ price: rate.price_thb,
363
+ currency: rate.currency || "THB",
364
+ };
365
+ }
366
+ async quoteShippingWithDistance(origin, destination, address, weight) {
367
+ const distanceKm = await this.osrmClient.calculateRouteDistance(origin, destination);
368
+ const baseQuote = await this.quoteShippingOnly(address, weight);
369
+ const distanceCharge = distanceKm * 15;
370
+ return {
371
+ ...baseQuote,
372
+ price: baseQuote.price + distanceCharge,
373
+ distance_km: distanceKm,
374
+ };
375
+ }
376
+ async findRateForWeight(weightKg) {
377
+ const rates = await this.dataService.findPrivateCarrierRates({
378
+ active: true,
379
+ });
380
+ const sortedRates = rates.sort((a, b) => a.max_weight_kg - b.max_weight_kg);
381
+ for (const rate of sortedRates) {
382
+ if (weightKg <= rate.max_weight_kg) {
383
+ return rate;
384
+ }
385
+ }
386
+ return null;
387
+ }
388
+ }
389
+ exports.PrivateCarrierFulfillmentProvider = PrivateCarrierFulfillmentProvider;
390
+ PrivateCarrierFulfillmentProvider.identifier = "private-carrier";
391
+ exports.default = PrivateCarrierFulfillmentProvider;
392
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wcm92aWRlcnMvcHJpdmF0ZS1jYXJyaWVyL3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscURBR21DO0FBa0JuQyxxREFBMEQ7QUFDMUQsb0RBQWdEO0FBQ2hELHdFQUFtRTtBQUNuRSxnRUFBNEQ7QUFDNUQsd0RBQStEO0FBTS9ELE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQztBQUc1QiwyQkFBMkI7QUFDM0IsTUFBTSx5QkFBMEIsU0FBUSxJQUFBLHFCQUFhLEVBQUM7SUFDcEQsU0FBUyxFQUFULHNCQUFTO0lBQ1Qsa0JBQWtCLEVBQWxCLHlDQUFrQjtDQUNuQixDQUFDO0lBSEY7O1FBSVUsVUFBSyxHQUF1RDtZQUNsRSxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDLEVBQUU7WUFDbkMsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQyxFQUFFO1NBQ3BDLENBQUM7SUFzRkosQ0FBQztJQXBGQyxlQUFlLENBQUMsSUFBaUI7UUFDL0IsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQy9CLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUN0QyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQWUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDN0QsQ0FBQyxDQUFDLENBQUM7WUFDSCxPQUFPO1FBQ1QsQ0FBQztRQUNELEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMs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
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL3ByaXZhdGUtY2Fycmllci90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
@@ -10,7 +10,8 @@ const requestJson = async (url, method = "GET", body) => {
10
10
  headers: {
11
11
  "Content-Type": "application/json"
12
12
  },
13
- body: body ? JSON.stringify(body) : void 0
13
+ body: body ? JSON.stringify(body) : void 0,
14
+ credentials: "include"
14
15
  });
15
16
  if (!response.ok) {
16
17
  let message = response.statusText;
@@ -456,7 +457,7 @@ const RatesSection = () => {
456
457
  var _a, _b, _c;
457
458
  setCurrenciesLoading(true);
458
459
  try {
459
- const data = await requestJson("/admin/store");
460
+ const data = await requestJson("/admin/currencies");
460
461
  const supported = ((_b = (_a = data.store) == null ? void 0 : _a.supported_currencies) == null ? void 0 : _b.map(
461
462
  (item) => item.code.toUpperCase()
462
463
  )) ?? [];
@@ -9,7 +9,8 @@ const requestJson = async (url, method = "GET", body) => {
9
9
  headers: {
10
10
  "Content-Type": "application/json"
11
11
  },
12
- body: body ? JSON.stringify(body) : void 0
12
+ body: body ? JSON.stringify(body) : void 0,
13
+ credentials: "include"
13
14
  });
14
15
  if (!response.ok) {
15
16
  let message = response.statusText;
@@ -455,7 +456,7 @@ const RatesSection = () => {
455
456
  var _a, _b, _c;
456
457
  setCurrenciesLoading(true);
457
458
  try {
458
- const data = await requestJson("/admin/store");
459
+ const data = await requestJson("/admin/currencies");
459
460
  const supported = ((_b = (_a = data.store) == null ? void 0 : _a.supported_currencies) == null ? void 0 : _b.map(
460
461
  (item) => item.code.toUpperCase()
461
462
  )) ?? [];
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
4
+ const core_flows_1 = require("@medusajs/medusa/core-flows");
5
+ const utils_1 = require("@medusajs/framework/utils");
6
+ const documents_1 = require("../modules/documents");
7
+ const assignPackingSlipToOrderWorkflow = (0, workflows_sdk_1.createWorkflow)("assign-packing-slip-to-order", function (input) {
8
+ (0, workflows_sdk_1.when)(input, (input) => {
9
+ return input.oldPackingSlipId !== undefined;
10
+ }).then(() => {
11
+ (0, core_flows_1.dismissRemoteLinkStep)([{
12
+ [utils_1.Modules.ORDER]: {
13
+ order_id: input.orderId
14
+ },
15
+ [documents_1.DOCUMENTS_MODULE]: {
16
+ document_packing_slip_id: input.oldPackingSlipId
17
+ }
18
+ }]);
19
+ });
20
+ (0, core_flows_1.createRemoteLinkStep)([{
21
+ [utils_1.Modules.ORDER]: {
22
+ order_id: input.orderId
23
+ },
24
+ [documents_1.DOCUMENTS_MODULE]: {
25
+ document_packing_slip_id: input.newPackingSlipId
26
+ }
27
+ }]);
28
+ return new workflows_sdk_1.WorkflowResponse({});
29
+ });
30
+ exports.default = assignPackingSlipToOrderWorkflow;
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzaWduLXBhY2tpbmctc2xpcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy93b3JrZmxvd3MvYXNzaWduLXBhY2tpbmctc2xpcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHFFQUkwQztBQUMxQyw0REFBMEY7QUFDMUYscURBQW9EO0FBQ3BELG9EQUF3RDtBQVF4RCxNQUFNLGdDQUFnQyxHQUFHLElBQUEsOEJBQWMsRUFDckQsOEJBQThCLEVBQzlCLFVBQVUsS0FBb0M7SUFFNUMsSUFBQSxvQkFBSSxFQUNGLEtBQUssRUFDTCxDQUFDLEtBQUssRUFBRSxFQUFFO1FBQ1IsT0FBTyxLQUFLLENBQUMsZ0JBQWdCLEtBQUssU0FBUyxDQUFDO0lBQzlDLENBQUMsQ0FDRixDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7UUFDVixJQUFBLGtDQUFxQixFQUFDLENBQUM7Z0JBQ3JCLENBQUMsZUFBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO29CQUNmLFFBQVEsRUFBRSxLQUFLLENBQUMsT0FBTztpQkFDeEI7Z0JBQ0QsQ0FBQyw0QkFBZ0IsQ0FBQyxFQUFFO29CQUNsQix3QkFBd0IsRUFBRSxLQUFLLENBQUMsZ0JBQWdCO2lCQUNqRDthQUNGLENBQUMsQ0FBQyxDQUFBO0lBQ0wsQ0FBQyxDQUFDLENBQUE7SUFFRixJQUFBLGlDQUFvQixFQUFDLENBQUM7WUFDcEIsQ0FBQyxlQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ2YsUUFBUSxFQUFFLEtBQUssQ0FBQyxPQUFPO2FBQ3hCO1lBQ0QsQ0FBQyw0QkFBZ0IsQ0FBQyxFQUFFO2dCQUNsQix3QkFBd0IsRUFBRSxLQUFLLENBQUMsZ0JBQWdCO2FBQ2pEO1NBQ0YsQ0FBQyxDQUFDLENBQUE7SUFFSCxPQUFPLElBQUksZ0NBQWdCLENBQUMsRUFBRSxDQUFDLENBQUE7QUFDakMsQ0FBQyxDQUNGLENBQUE7QUFFRCxrQkFBZSxnQ0FBZ0MsQ0FBQSJ9
@@ -0,0 +1,9 @@
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.assignPackingSlipToOrderWorkflow = void 0;
7
+ var assign_packing_slip_1 = require("./assign-packing-slip");
8
+ Object.defineProperty(exports, "assignPackingSlipToOrderWorkflow", { enumerable: true, get: function () { return __importDefault(assign_packing_slip_1).default; } });
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDZEQUFtRjtBQUExRSx3SkFBQSxPQUFPLE9BQW9DIn0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lodashventure/medusa-parcel-shipping",
3
- "version": "0.0.6",
3
+ "version": "0.2.0",
4
4
  "description": "Parcel box selection and Thailand shipping quotes for Medusa.",
5
5
  "author": "LodashVenture",
6
6
  "license": "MIT",
@@ -9,12 +9,13 @@
9
9
  ],
10
10
  "exports": {
11
11
  "./package.json": "./package.json",
12
- "./workflows": "./.medusa/server/src/workflows/index.js",
13
- "./.medusa/server/src/modules/*": "./.medusa/server/src/modules/*/index.js",
14
- "./modules/*": "./.medusa/server/src/modules/*/index.js",
15
- "./providers/*": "./.medusa/server/src/providers/*/index.js",
12
+ "./workflows": "./.medusa/server/workflows/index.js",
13
+ "./workflows/*": "./.medusa/server/workflows/*.js",
14
+ "./providers/*": "./.medusa/server/providers/*/index.js",
15
+ "./modules/*": "./.medusa/server/modules/*/index.js",
16
+ "./links/*": "./.medusa/server/links/*.js",
16
17
  "./admin": "./.medusa/server/src/admin/index.mjs",
17
- "./*": "./.medusa/server/src/*.js"
18
+ "./*": "./.medusa/server/*.js"
18
19
  },
19
20
  "keywords": [
20
21
  "medusa",
@@ -28,24 +29,18 @@
28
29
  "prepublishOnly": "medusa plugin:build"
29
30
  },
30
31
  "devDependencies": {
31
- "@medusajs/admin-sdk": "2.10.0",
32
- "@medusajs/cli": "2.10.0",
33
- "@medusajs/framework": "2.10.0",
34
- "@medusajs/icons": "^2.10.0",
35
- "@medusajs/medusa": "2.10.0",
36
- "@medusajs/test-utils": "2.10.0",
32
+ "@medusajs/admin-sdk": "2.11.0",
33
+ "@medusajs/cli": "2.11.0",
34
+ "@medusajs/framework": "2.11.0",
35
+ "@medusajs/icons": "^2.11.0",
36
+ "@medusajs/js-sdk": "2.11.0",
37
+ "@medusajs/medusa": "2.11.0",
38
+ "@medusajs/test-utils": "2.11.0",
37
39
  "@medusajs/ui": "4.0.4",
38
- "@mikro-orm/cli": "6.4.3",
39
- "@mikro-orm/core": "6.4.3",
40
- "@mikro-orm/knex": "6.4.3",
41
- "@mikro-orm/migrations": "6.4.3",
42
- "@mikro-orm/postgresql": "6.4.3",
43
40
  "@swc/core": "1.5.7",
44
41
  "@types/node": "^20.0.0",
45
42
  "@types/react": "^18.3.2",
46
43
  "@types/react-dom": "^18.2.25",
47
- "awilix": "^8.0.1",
48
- "pg": "^8.13.0",
49
44
  "prop-types": "^15.8.1",
50
45
  "react": "^18.2.0",
51
46
  "react-dom": "^18.2.0",
@@ -55,27 +50,23 @@
55
50
  "yalc": "^1.0.0-pre.53"
56
51
  },
57
52
  "peerDependencies": {
58
- "@medusajs/admin-sdk": "2.10.0",
59
- "@medusajs/cli": "2.10.0",
60
- "@medusajs/framework": "2.10.0",
61
- "@medusajs/icons": "^2.10.0",
62
- "@medusajs/medusa": "2.10.0",
63
- "@medusajs/test-utils": "2.10.0",
53
+ "@medusajs/admin-sdk": "2.11.0",
54
+ "@medusajs/cli": "2.11.0",
55
+ "@medusajs/framework": "2.11.0",
56
+ "@medusajs/icons": "^2.11.0",
57
+ "@medusajs/js-sdk": "2.11.0",
58
+ "@medusajs/medusa": "2.11.0",
59
+ "@medusajs/test-utils": "2.11.0",
64
60
  "@medusajs/ui": "4.0.3",
65
- "@tanstack/react-query": "*",
66
- "@mikro-orm/cli": "6.4.3",
67
- "@mikro-orm/core": "6.4.3",
68
- "@mikro-orm/knex": "6.4.3",
69
- "@mikro-orm/migrations": "6.4.3",
70
- "@mikro-orm/postgresql": "6.4.3",
71
- "awilix": "^8.0.1",
72
- "pg": "^8.13.0"
61
+ "@tanstack/react-query": "*"
73
62
  },
74
63
  "engines": {
75
64
  "node": ">=20"
76
65
  },
77
66
  "dependencies": {
78
67
  "thai-address-autocomplete-react": "^1.2.2",
79
- "zod": "^4.1.5"
68
+ "zod": "^4.1.5",
69
+ "pdfkit": "0.15.0",
70
+ "@types/pdfkit": "^0.13.5"
80
71
  }
81
72
  }
@@ -1,47 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PUT = PUT;
4
- exports.DELETE = DELETE;
5
- const parcel_shipping_1 = require("../../../../modules/parcel-shipping");
6
- const zod_1 = require("zod");
7
- const updateBoxSchema = zod_1.z.object({
8
- name: zod_1.z.string().min(1).optional(),
9
- width_cm: zod_1.z.number().positive().optional(),
10
- length_cm: zod_1.z.number().positive().optional(),
11
- height_cm: zod_1.z.number().positive().optional(),
12
- max_weight_kg: zod_1.z.number().positive().optional(),
13
- price_thb: zod_1.z.number().nonnegative().optional(),
14
- active: zod_1.z.boolean().optional(),
15
- });
16
- async function PUT(req, res) {
17
- const { id } = req.params;
18
- const moduleService = req.scope.resolve(parcel_shipping_1.PARCEL_SHIPPING_MODULE);
19
- try {
20
- const payload = updateBoxSchema.parse(req.body);
21
- const updated = await moduleService.updateParcelBoxes([
22
- {
23
- id,
24
- ...payload,
25
- },
26
- ]);
27
- moduleService.invalidateCache(["boxes"]);
28
- res.status(200).json({ box: updated[0] });
29
- }
30
- catch (error) {
31
- if (error instanceof zod_1.ZodError) {
32
- return res.status(400).json({
33
- code: "invalid_payload",
34
- issues: error.issues,
35
- });
36
- }
37
- throw error;
38
- }
39
- }
40
- async function DELETE(req, res) {
41
- const { id } = req.params;
42
- const moduleService = req.scope.resolve(parcel_shipping_1.PARCEL_SHIPPING_MODULE);
43
- await moduleService.deleteParcelBoxes([id]);
44
- moduleService.invalidateCache(["boxes"]);
45
- res.status(204).send();
46
- }
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3BhcmNlbC1ib3hlcy9baWRdL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBZUEsa0JBZ0NDO0FBRUQsd0JBYUM7QUE1REQseUVBQTRFO0FBQzVFLDZCQUFpQztBQUVqQyxNQUFNLGVBQWUsR0FBRyxPQUFDLENBQUMsTUFBTSxDQUFDO0lBQy9CLElBQUksRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUNsQyxRQUFRLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUMxQyxTQUFTLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUMzQyxTQUFTLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUMzQyxhQUFhLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUMvQyxTQUFTLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM5QyxNQUFNLEVBQUUsT0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRTtDQUMvQixDQUFDLENBQUE7QUFFSyxLQUFLLFVBQVUsR0FBRyxDQUN2QixHQUFrQixFQUNsQixHQUFtQjtJQUVuQixNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQTtJQUN6QixNQUFNLGFBQWEsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FDckMsd0NBQXNCLENBQ1EsQ0FBQTtJQUVoQyxJQUFJLENBQUM7UUFDSCxNQUFNLE9BQU8sR0FBRyxlQUFlLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUUvQyxNQUFNLE9BQU8sR0FBRyxNQUFNLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQztZQUNwRDtnQkFDRSxFQUFFO2dCQUNGLEdBQUcsT0FBTzthQUNYO1NBQ0YsQ0FBQyxDQUFBO1FBRUYsYUFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUE7UUFFeEMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUMzQyxDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLElBQUksS0FBSyxZQUFZLGNBQVEsRUFBRSxDQUFDO1lBQzlCLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7Z0JBQzFCLElBQUksRUFBRSxpQkFBaUI7Z0JBQ3ZCLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTthQUNyQixDQUFDLENBQUE7UUFDSixDQUFDO1FBRUQsTUFBTSxLQUFLLENBQUE7SUFDYixDQUFDO0FBQ0gsQ0FBQztBQUVNLEtBQUssVUFBVSxNQUFNLENBQzFCLEdBQWtCLEVBQ2xCLEdBQW1CO0lBRW5CLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFBO0lBQ3pCLE1BQU0sYUFBYSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUNyQyx3Q0FBc0IsQ0FDUSxDQUFBO0lBRWhDLE1BQU0sYUFBYSxDQUFDLGlCQUFpQixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtJQUMzQyxhQUFhLENBQUMsZUFBZSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQTtJQUV4QyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFBO0FBQ3hCLENBQUMifQ==