@lodashventure/medusa-parcel-shipping 0.4.15 → 0.4.16

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.
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Migration20251117165505 = void 0;
4
+ const migrations_1 = require("@medusajs/framework/mikro-orm/migrations");
5
+ class Migration20251117165505 extends migrations_1.Migration {
6
+ async up() {
7
+ this.addSql(`alter table if exists "parcel_packing_policy" drop constraint if exists "parcel_packing_policy_product_id_unique";`);
8
+ this.addSql(`create table if not exists "material_cost" ("id" text not null, "name" text not null, "unit" text not null, "cost_per_unit" real not null, "currency" text not null default 'THB', "category" text null, "description" text null, "active" boolean not null default true, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "material_cost_pkey" primary key ("id"));`);
9
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_material_cost_deleted_at" ON "material_cost" (deleted_at) WHERE deleted_at IS NULL;`);
10
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_material_cost_active" ON "material_cost" (active) WHERE deleted_at IS NULL;`);
11
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_material_cost_category" ON "material_cost" (category) WHERE deleted_at IS NULL;`);
12
+ this.addSql(`create table if not exists "parcel_box" ("id" text not null, "name" text not null, "width_cm" real not null, "length_cm" real not null, "height_cm" real not null, "max_weight_kg" real not null, "price_thb" real not null, "active" boolean not null default true, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "parcel_box_pkey" primary key ("id"));`);
13
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_parcel_box_deleted_at" ON "parcel_box" (deleted_at) WHERE deleted_at IS NULL;`);
14
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_parcel_box_active" ON "parcel_box" (active) WHERE deleted_at IS NULL;`);
15
+ this.addSql(`create table if not exists "parcel_packaging_material" ("id" text not null, "name" text not null, "material_type" text check ("material_type" in ('BUBBLE_WRAP', 'FOAM_PADDING', 'VOID_FILL', 'CORNER_PROTECTOR', 'FRAGILE_TAPE')) not null, "cost_per_unit" real not null, "unit_type" text check ("unit_type" in ('PER_ITEM', 'PER_KG', 'PER_M2', 'FLAT')) not null, "currency" text not null default 'THB', "active" boolean not null default true, "auto_apply_for_fragile" boolean not null default false, "auto_apply_for_heavy" boolean not null default false, "heavy_threshold_kg" real null, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "parcel_packaging_material_pkey" primary key ("id"));`);
16
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_parcel_packaging_material_deleted_at" ON "parcel_packaging_material" (deleted_at) WHERE deleted_at IS NULL;`);
17
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_parcel_packaging_material_active" ON "parcel_packaging_material" (active) WHERE deleted_at IS NULL;`);
18
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_parcel_packaging_material_material_type" ON "parcel_packaging_material" (material_type) WHERE deleted_at IS NULL;`);
19
+ this.addSql(`create table if not exists "parcel_packing_policy" ("id" text not null, "product_id" text not null, "no_stack" boolean not null default false, "fragile" boolean not null default false, "stackable_max_layers" integer not null default 0, "orientation_lock" text null, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "parcel_packing_policy_pkey" primary key ("id"));`);
20
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_parcel_packing_policy_deleted_at" ON "parcel_packing_policy" (deleted_at) WHERE deleted_at IS NULL;`);
21
+ this.addSql(`CREATE UNIQUE INDEX IF NOT EXISTS "IDX_parcel_packing_policy_product_id_unique" ON "parcel_packing_policy" (product_id) WHERE deleted_at IS NULL;`);
22
+ this.addSql(`create table if not exists "parcel_service_area" ("id" text not null, "kind" text check ("kind" in ('PROVINCE', 'POSTCODE_PREFIX')) not null, "value" text not null, "active" boolean not null default true, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "parcel_service_area_pkey" primary key ("id"));`);
23
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_parcel_service_area_deleted_at" ON "parcel_service_area" (deleted_at) WHERE deleted_at IS NULL;`);
24
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_parcel_service_area_kind_value" ON "parcel_service_area" (kind, value) WHERE deleted_at IS NULL;`);
25
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_parcel_service_area_active" ON "parcel_service_area" (active) WHERE deleted_at IS NULL;`);
26
+ this.addSql(`create table if not exists "parcel_shipping_rate" ("id" text not null, "carrier_type" text check ("carrier_type" in ('COMPANY_FLEET', 'COMPANY_TRUCK', 'PRIVATE_CARRIER')) not null, "carrier" text check ("carrier" in ('COMPANY_FLEET', 'COMPANY_TRUCK', 'PRIVATE_CARRIER')) not null, "service_code" text check ("service_code" in ('MESSENGER_3H', 'SAME_DAY', 'STANDARD_3_5D', 'EXPRESS_1_2D')) not null, "max_weight_kg" real not null, "price" real not null, "currency" text not null default 'THB', "priority" integer not null default 0, "active" boolean not null default true, "eta_hours_min" integer null, "eta_hours_max" integer null, "eta_days_min" integer null, "eta_days_max" integer null, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "parcel_shipping_rate_pkey" primary key ("id"));`);
27
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_parcel_shipping_rate_deleted_at" ON "parcel_shipping_rate" (deleted_at) WHERE deleted_at IS NULL;`);
28
+ this.addSql(`CREATE UNIQUE INDEX IF NOT EXISTS "idx_carrier_service_weight" ON "parcel_shipping_rate" (carrier_type, service_code, max_weight_kg, active) WHERE active = true AND deleted_at IS NULL;`);
29
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_parcel_shipping_rate_active" ON "parcel_shipping_rate" (active) WHERE deleted_at IS NULL;`);
30
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_parcel_shipping_rate_carrier_type_service_code" ON "parcel_shipping_rate" (carrier_type, service_code) WHERE deleted_at IS NULL;`);
31
+ }
32
+ async down() {
33
+ this.addSql(`drop table if exists "material_cost" cascade;`);
34
+ this.addSql(`drop table if exists "parcel_box" cascade;`);
35
+ this.addSql(`drop table if exists "parcel_packaging_material" cascade;`);
36
+ this.addSql(`drop table if exists "parcel_packing_policy" cascade;`);
37
+ this.addSql(`drop table if exists "parcel_service_area" cascade;`);
38
+ this.addSql(`drop table if exists "parcel_shipping_rate" cascade;`);
39
+ }
40
+ }
41
+ exports.Migration20251117165505 = Migration20251117165505;
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNTExMTcxNjU1MDUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9wYXJjZWwtc2hpcHBpbmcvbWlncmF0aW9ucy9NaWdyYXRpb24yMDI1MTExNzE2NTUwNS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5RUFBcUU7QUFFckUsTUFBYSx1QkFBd0IsU0FBUSxzQkFBUztJQUMzQyxLQUFLLENBQUMsRUFBRTtRQUNmLElBQUksQ0FBQyxNQUFNLENBQ1Qsb0hBQW9ILENBQ3JILENBQUM7UUFDRixJQUFJLENBQUMsTUFBTSxDQUNULGljQUFpYyxDQUNsYyxDQUFDO1FBQ0YsSUFBSSxDQUFDLE1BQU0sQ0FDVCxxSEFBcUgsQ0FDdEgsQ0FBQztRQUNGLElBQUksQ0FBQyxNQUFNLENBQ1QsNkdBQTZHLENBQzlHLENBQUM7UUFDRixJQUFJLENBQUMsTUFBTSxDQUNULGlIQUFpSCxDQUNsSCxDQUFDO1FBRUYsSUFBSSxDQUFDLE1BQU0sQ0FDVCx5YkFBeWIsQ0FDMWIsQ0FBQztRQUNGLElBQUksQ0FBQyxNQUFNLENBQ1QsK0dBQStHLENBQ2hILENBQUM7UUFDRixJQUFJLENBQUMsTUFBTSxDQUNULHVHQUF1RyxDQUN4RyxDQUFDO1FBRUYsSUFBSSxDQUFDLE1BQU0sQ0FDVCwwd0JBQTB3QixDQUMzd0IsQ0FBQztRQUNGLElBQUksQ0FBQyxNQUFNLENBQ1QsNklBQTZJLENBQzlJLENBQUM7UUFDRixJQUFJLENBQUMsTUFBTSxDQUNULHFJQUFxSSxDQUN0SSxDQUFDO1FBQ0YsSUFBSSxDQUFDLE1BQU0sQ0FDVCxtSkFBbUosQ0FDcEosQ0FBQztRQUVGLElBQUksQ0FBQyxNQUFNLENBQ1QseWNBQXljLENBQzFjLENBQUM7UUFDRixJQUFJLENBQUMsTUFBTSxDQUNULHFJQUFxSSxDQUN0SSxDQUFDO1FBQ0YsSUFBSSxDQUFDLE1BQU0sQ0FDVCxtSkFBbUosQ0FDcEosQ0FBQztRQUVGLElBQUksQ0FBQyxNQUFNLENBQ1QsMFlBQTBZLENBQzNZLENBQUM7UUFDRixJQUFJLENBQUMsTUFBTSxDQUNULGlJQUFpSSxDQUNsSSxDQUFDO1FBQ0YsSUFBSSxDQUFDLE1BQU0sQ0FDVCxrSUFBa0ksQ0FDbkksQ0FBQztRQUNGLElBQUksQ0FBQyxNQUFNLENBQ1QseUhBQXlILENBQzFILENBQUM7UUFFRixJQUFJLENBQUMsTUFBTSxDQUNULGczQkFBZzNCLENBQ2ozQixDQUFDO1FBQ0YsSUFBSSxDQUFDLE1BQU0sQ0FDVCxtSUFBbUksQ0FDcEksQ0FBQztRQUNGLElBQUksQ0FBQyxNQUFNLENBQ1QsMExBQTBMLENBQzNMLENBQUM7UUFDRixJQUFJLENBQUMsTUFBTSxDQUNULDJIQUEySCxDQUM1SCxDQUFDO1FBQ0YsSUFBSSxDQUFDLE1BQU0sQ0FDVCxrS0FBa0ssQ0FDbkssQ0FBQztJQUNKLENBQUM7SUFFUSxLQUFLLENBQUMsSUFBSTtRQUNqQixJQUFJLENBQUMsTUFBTSxDQUFDLCtDQUErQyxDQUFDLENBQUM7UUFFN0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO1FBRTFELElBQUksQ0FBQyxNQUFNLENBQUMsMkRBQTJELENBQUMsQ0FBQztRQUV6RSxJQUFJLENBQUMsTUFBTSxDQUFDLHVEQUF1RCxDQUFDLENBQUM7UUFFckUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO1FBRW5FLElBQUksQ0FBQyxNQUFNLENBQUMsc0RBQXNELENBQUMsQ0FBQztJQUN0RSxDQUFDO0NBQ0Y7QUE5RkQsMERBOEZDIn0=
@@ -32,6 +32,7 @@ class ParcelShippingService extends (0, utils_1.MedusaService)({
32
32
  materials: { data: null, expiresAt: 0 },
33
33
  material_costs: { data: null, expiresAt: 0 },
34
34
  };
35
+ this.packagingMaterialsUnavailable = false;
35
36
  }
36
37
  // ============================================================================
37
38
  // Cache Management
@@ -151,7 +152,20 @@ class ParcelShippingService extends (0, utils_1.MedusaService)({
151
152
  // Packaging Material Management
152
153
  // ============================================================================
153
154
  async findPackagingMaterials(filters = {}, config = {}) {
154
- return this.getCached("materials", () => this.listPackagingMaterials(filters, config), filters);
155
+ if (this.packagingMaterialsUnavailable) {
156
+ return [];
157
+ }
158
+ return this.getCached("materials", async () => {
159
+ try {
160
+ return await this.listPackagingMaterials(filters, config);
161
+ }
162
+ catch (error) {
163
+ if (this.handleMissingPackagingTable(error)) {
164
+ return [];
165
+ }
166
+ throw error;
167
+ }
168
+ }, filters);
155
169
  }
156
170
  async createPackagingMaterial(data) {
157
171
  const result = await this.createPackagingMaterials([data]);
@@ -303,7 +317,19 @@ class ParcelShippingService extends (0, utils_1.MedusaService)({
303
317
  // Shipping Options Calculation
304
318
  // ============================================================================
305
319
  async calculatePackagingMaterialsCost(items, metrics, totalWeightKg) {
306
- const materials = await this.findPackagingMaterials({ active: true });
320
+ let materials = [];
321
+ try {
322
+ materials = await this.findPackagingMaterials({ active: true });
323
+ }
324
+ catch (error) {
325
+ if (this.handleMissingPackagingTable(error)) {
326
+ return 0;
327
+ }
328
+ throw error;
329
+ }
330
+ if (!materials?.length) {
331
+ return 0;
332
+ }
307
333
  let totalCost = 0;
308
334
  // Count fragile items
309
335
  const fragileCount = items.reduce((count, item) => {
@@ -513,6 +539,40 @@ class ParcelShippingService extends (0, utils_1.MedusaService)({
513
539
  normalizeString(str) {
514
540
  return str.trim().toLowerCase();
515
541
  }
542
+ handleMissingPackagingTable(error) {
543
+ const message = this.extractErrorMessage(error);
544
+ if (message.includes("parcel_packaging_material") &&
545
+ (message.includes("does not exist") || message.includes("42p01"))) {
546
+ if (!this.packagingMaterialsUnavailable) {
547
+ this.packagingMaterialsUnavailable = true;
548
+ console.warn("[parcel-shipping] parcel_packaging_material table missing. Skipping packaging material calculations until migrations run.");
549
+ }
550
+ return true;
551
+ }
552
+ return false;
553
+ }
554
+ extractErrorMessage(error) {
555
+ if (!error) {
556
+ return "";
557
+ }
558
+ const messages = [];
559
+ let current = error;
560
+ while (current) {
561
+ if (typeof current.message === "string") {
562
+ messages.push(current.message.toLowerCase());
563
+ }
564
+ current =
565
+ current.cause ||
566
+ current.originalError ||
567
+ current.parent ||
568
+ current.previous ||
569
+ null;
570
+ }
571
+ if (messages.length === 0 && typeof error.toString === "function") {
572
+ messages.push(String(error).toLowerCase());
573
+ }
574
+ return messages.join(" ");
575
+ }
516
576
  }
517
577
  exports.default = ParcelShippingService;
518
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL3BhcmNlbC1zaGlwcGluZy9zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEscURBQXVFO0FBQ3ZFLG9EQUFnRDtBQUNoRCwwREFBc0Q7QUFDdEQsd0RBQW9EO0FBQ3BELDREQUF3RDtBQUN4RCxvRUFBZ0U7QUFDaEUsMERBQXNEO0FBQ3RELHdEQUdvQztBQUNwQyxnRkFBNEU7QUFhNUUsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLENBQUMsYUFBYTtBQVUxQzs7O0dBR0c7QUFDSCxNQUFNLHFCQUFzQixTQUFRLElBQUEscUJBQWEsRUFBQztJQUNoRCxTQUFTLEVBQVQsc0JBQVM7SUFDVCxZQUFZLEVBQVosNEJBQVk7SUFDWixXQUFXLEVBQVgsMEJBQVc7SUFDWCxhQUFhLEVBQWIsOEJBQWE7SUFDYixpQkFBaUIsRUFBakIsc0NBQWlCO0lBQ2pCLFlBQVksRUFBWiw0QkFBWTtDQUNiLENBQUM7SUFQRjs7UUFRVSxVQUFLLEdBQXVEO1lBQ2xFLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUMsRUFBRTtZQUNuQyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDLEVBQUU7WUFDbkMsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQyxFQUFFO1lBQ25DLFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUMsRUFBRTtZQUN0QyxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDLEVBQUU7WUFDdkMsY0FBYyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQyxFQUFFO1NBQzdDLENBQUM7SUFpcUJKLENB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
578
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL3BhcmNlbC1zaGlwcGluZy9zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEscURBQXVFO0FBQ3ZFLG9EQUFnRDtBQUNoRCwwREFBc0Q7QUFDdEQsd0RBQW9EO0FBQ3BELDREQUF3RDtBQUN4RCxvRUFBZ0U7QUFDaEUsMERBQXNEO0FBQ3RELHdEQUdvQztBQUNwQyxnRkFBNEU7QUFhNUUsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLENBQUMsYUFBYTtBQVUxQzs7O0dBR0c7QUFDSCxNQUFNLHFCQUFzQixTQUFRLElBQUEscUJBQWEsRUFBQztJQUNoRCxTQUFTLEVBQVQsc0JBQVM7SUFDVCxZQUFZLEVBQVosNEJBQVk7SUFDWixXQUFXLEVBQVgsMEJBQVc7SUFDWCxhQUFhLEVBQWIsOEJBQWE7SUFDYixpQkFBaUIsRUFBakIsc0NBQWlCO0lBQ2pCLFlBQVksRUFBWiw0QkFBWTtDQUNiLENBQUM7SUFQRjs7UUFRVSxVQUFLLEdBQXVEO1lBQ2xFLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUMsRUFBRTtZQUNuQyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDLEVBQUU7WUFDbkMsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQyxFQUFFO1lBQ25DLFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUMsRUFBRTtZQUN0QyxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDLEVBQUU7WUFDdkMsY0FBYyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQyxFQUFFO1NBQzdDLENBQUM7UUFDTSxrQ0FB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
@@ -4,6 +4,12 @@ exports.ParcelFulfillmentProvider = void 0;
4
4
  const utils_1 = require("@medusajs/framework/utils");
5
5
  const parcel_shipping_1 = require("../modules/parcel-shipping");
6
6
  const PRODUCT_EXTENSION_MODULE = "productExtension";
7
+ const DEFAULT_FALLBACK_DIMENSIONS = {
8
+ width: 10,
9
+ length: 10,
10
+ height: 10,
11
+ weight: 500, // raw weight in grams (converted later based on weight_unit)
12
+ };
7
13
  /**
8
14
  * Unified Parcel Fulfillment Provider
9
15
  * Provides 4 service levels:
@@ -18,11 +24,13 @@ class ParcelFulfillmentProvider extends utils_1.AbstractFulfillmentProviderServi
18
24
  constructor(container, options = {}) {
19
25
  // @ts-ignore
20
26
  super(...arguments);
27
+ this.fallbackDimensionsWarned = false;
21
28
  this.container_ = container;
22
29
  this.logger_ = container.logger;
23
30
  this.weightUnit = options.weight_unit ?? "g";
24
31
  this.apiUrl = options.api_url ?? "http://localhost:9000";
25
32
  this.publishableApiKey = options.publishable_api_key;
33
+ this.fallbackDimensions = this.resolveFallbackDimensions(options.fallback_dimensions);
26
34
  }
27
35
  /**
28
36
  * Make internal API call to /store/quote endpoint
@@ -40,12 +48,8 @@ class ParcelFulfillmentProvider extends utils_1.AbstractFulfillmentProviderServi
40
48
  return {
41
49
  items,
42
50
  shipping_address: {
43
- address_line_1: normalizedAddress.address_line_1 ||
44
- normalizedAddress.address_1 ||
45
- "",
46
- address_line_2: normalizedAddress.address_line_2 ||
47
- normalizedAddress.address_2 ||
48
- "",
51
+ address_line_1: normalizedAddress.address_line_1 || normalizedAddress.address_1 || "",
52
+ address_line_2: normalizedAddress.address_line_2 || normalizedAddress.address_2 || "",
49
53
  street: normalizedAddress.street || "",
50
54
  sub_district: normalizedAddress.sub_district || "",
51
55
  district: normalizedAddress.district || "",
@@ -59,9 +63,7 @@ class ParcelFulfillmentProvider extends utils_1.AbstractFulfillmentProviderServi
59
63
  normalizedAddress.zipcode ||
60
64
  normalizedAddress.zip ||
61
65
  "",
62
- country: normalizedAddress.country ||
63
- normalizedAddress.country_code ||
64
- "TH",
66
+ country: normalizedAddress.country || normalizedAddress.country_code || "TH",
65
67
  },
66
68
  preferred_service: {
67
69
  carrier_type: carrierType,
@@ -71,19 +73,14 @@ class ParcelFulfillmentProvider extends utils_1.AbstractFulfillmentProviderServi
71
73
  };
72
74
  }
73
75
  async tryQuoteViaModule(payload) {
74
- const container = this.container_;
75
- if (!container) {
76
- return null;
77
- }
78
- const hasRegistration = typeof container?.hasRegistration === "function"
79
- ? container.hasRegistration(parcel_shipping_1.PARCEL_SHIPPING_MODULE)
80
- : true;
81
- if (!hasRegistration) {
76
+ if (!this.container_) {
82
77
  return null;
83
78
  }
84
79
  try {
85
- const parcelService = container.resolve(parcel_shipping_1.PARCEL_SHIPPING_MODULE);
80
+ // Resolve directly - Awilix container proxies all property access
81
+ const parcelService = this.container_.resolve(parcel_shipping_1.PARCEL_SHIPPING_MODULE);
86
82
  if (!parcelService?.quote) {
83
+ this.logger_?.error(`Parcel shipping service resolved but quote method not available. Service keys: ${Object.keys(parcelService || {}).join(", ")}`);
87
84
  return null;
88
85
  }
89
86
  return await parcelService.quote(payload);
@@ -91,16 +88,17 @@ class ParcelFulfillmentProvider extends utils_1.AbstractFulfillmentProviderServi
91
88
  catch (error) {
92
89
  if (error?.name === "AwilixResolutionError" ||
93
90
  error?.name === "ResolutionError") {
94
- this.logger_?.info("Parcel shipping module not found in container. Falling back to HTTP quote route.");
91
+ this.logger_?.info(`Parcel shipping module (${parcel_shipping_1.PARCEL_SHIPPING_MODULE}) not in provider scope. Falling back to HTTP.`);
95
92
  return null;
96
93
  }
97
94
  throw error;
98
95
  }
99
96
  }
100
97
  async fetchQuoteViaHttp(payload) {
98
+ // Always try store first (requires publishable API key), then admin as fallback
101
99
  const scopesToTry = this.publishableApiKey
102
100
  ? ["store", "admin"]
103
- : ["admin"];
101
+ : ["store", "admin"]; // Try store anyway, it might work without key in some setups
104
102
  let lastError = null;
105
103
  for (const scope of scopesToTry) {
106
104
  try {
@@ -109,10 +107,8 @@ class ParcelFulfillmentProvider extends utils_1.AbstractFulfillmentProviderServi
109
107
  catch (error) {
110
108
  const typedError = error;
111
109
  lastError = typedError;
112
- if (scope === "store" &&
113
- this.publishableApiKey &&
114
- this.shouldFallbackToAdmin(typedError)) {
115
- this.logger_?.warn("Store quote failed to validate publishable key. Retrying via admin endpoint.");
110
+ if (scope === "store" && this.shouldFallbackToAdmin(typedError)) {
111
+ this.logger_?.warn(`Store quote failed (${typedError.status}). Retrying via admin endpoint.`);
116
112
  continue;
117
113
  }
118
114
  const logMessage = `Failed to fetch quote from API: ${typedError?.message ?? "Unknown error"}`;
@@ -249,6 +245,15 @@ class ParcelFulfillmentProvider extends utils_1.AbstractFulfillmentProviderServi
249
245
  }
250
246
  async calculatePrice(optionData, data, context) {
251
247
  this.logger_?.info(`calculatePrice called with optionData: ${JSON.stringify(optionData)}`);
248
+ // Debug: Log full context structure
249
+ this.logger_?.info?.(`[ParcelFulfillment] calculatePrice context keys: ${Object.keys(context || {}).join(", ")}`);
250
+ this.logger_?.info?.(`[ParcelFulfillment] calculatePrice data keys: ${Object.keys(data || {}).join(", ")}`);
251
+ const cartId = this.extractCartId(context, data);
252
+ this.logger_?.info?.(`[ParcelFulfillment] Extracted cart_id: ${cartId ?? "NOT FOUND"}`);
253
+ // Check if cart data is directly available
254
+ if (context?.cart) {
255
+ this.logger_?.info?.(`[ParcelFulfillment] Cart object found with ${context.cart?.items?.length ?? 0} items`);
256
+ }
252
257
  const quoteItems = await this.convertToQuoteItems(context);
253
258
  if (!quoteItems.length) {
254
259
  throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "cart_items_missing_dimensions_or_weight");
@@ -333,9 +338,16 @@ class ParcelFulfillmentProvider extends utils_1.AbstractFulfillmentProviderServi
333
338
  // Helper Methods
334
339
  // ============================================================================
335
340
  async convertToQuoteItems(context) {
336
- const items = context?.items ?? [];
341
+ const items = await this.resolveItemsWithFallback(context);
337
342
  const quoteItems = [];
343
+ if (!items.length) {
344
+ const cartId = this.extractCartId(context);
345
+ this.logger_?.error?.(`[ParcelFulfillment] No items found for shipping calculation. Cart ID: ${cartId ?? "unknown"}. ` +
346
+ `Context keys: ${Object.keys(context || {}).join(", ")}`);
347
+ return quoteItems;
348
+ }
338
349
  const stackableMap = await this.loadProductStackableValues(items);
350
+ const variantDimensions = await this.loadVariantDimensions(items);
339
351
  this.logger_?.info(`Converting ${items.length} items to quote items`);
340
352
  for (const item of items) {
341
353
  const lineItem = item;
@@ -343,6 +355,10 @@ class ParcelFulfillmentProvider extends utils_1.AbstractFulfillmentProviderServi
343
355
  if (!quantity) {
344
356
  continue;
345
357
  }
358
+ const variantId = this.extractVariantId(lineItem);
359
+ const variantFallbackDimensions = variantId
360
+ ? variantDimensions.get(variantId)
361
+ : undefined;
346
362
  // Check variant, line item, and product dimensions (fallback)
347
363
  const rawWeight = Number(lineItem?.variant?.weight ??
348
364
  lineItem?.weight ??
@@ -350,32 +366,57 @@ class ParcelFulfillmentProvider extends utils_1.AbstractFulfillmentProviderServi
350
366
  lineItem?.variant?.product?.weight ??
351
367
  lineItem?.product?.weight ??
352
368
  0) || 0;
353
- const weight = this.normalizeWeight(rawWeight);
354
- const width = Number(lineItem?.variant?.width ??
369
+ const sourceWeight = rawWeight ||
370
+ variantFallbackDimensions?.weight ||
371
+ this.fallbackDimensions.weight;
372
+ const usedProviderWeightFallback = !rawWeight && !variantFallbackDimensions?.weight;
373
+ const weight = this.normalizeWeight(sourceWeight);
374
+ const widthValue = Number(lineItem?.variant?.width ??
355
375
  lineItem?.width ??
356
376
  lineItem?.raw_width ??
357
377
  lineItem?.variant?.product?.width ??
358
378
  lineItem?.product?.width ??
359
379
  0) || 0;
360
- const length = Number(lineItem?.variant?.length ??
380
+ const finalWidth = widthValue ||
381
+ variantFallbackDimensions?.width ||
382
+ this.fallbackDimensions.width;
383
+ const usedProviderWidthFallback = !widthValue && !variantFallbackDimensions?.width;
384
+ const lengthValue = Number(lineItem?.variant?.length ??
361
385
  lineItem?.length ??
362
386
  lineItem?.raw_length ??
363
387
  lineItem?.variant?.product?.length ??
364
388
  lineItem?.product?.length ??
365
389
  0) || 0;
366
- const height = Number(lineItem?.variant?.height ??
390
+ const finalLength = lengthValue ||
391
+ variantFallbackDimensions?.length ||
392
+ this.fallbackDimensions.length;
393
+ const usedProviderLengthFallback = !lengthValue && !variantFallbackDimensions?.length;
394
+ const heightValue = Number(lineItem?.variant?.height ??
367
395
  lineItem?.height ??
368
396
  lineItem?.raw_height ??
369
397
  lineItem?.variant?.product?.height ??
370
398
  lineItem?.product?.height ??
371
399
  0) || 0;
372
- if (!width || !length || !height || !weight) {
400
+ const finalHeight = heightValue ||
401
+ variantFallbackDimensions?.height ||
402
+ this.fallbackDimensions.height;
403
+ const usedProviderHeightFallback = !heightValue && !variantFallbackDimensions?.height;
404
+ if (!finalWidth || !finalLength || !finalHeight || !weight) {
373
405
  continue;
374
406
  }
407
+ if (usedProviderWidthFallback ||
408
+ usedProviderLengthFallback ||
409
+ usedProviderHeightFallback ||
410
+ usedProviderWeightFallback) {
411
+ this.logFallbackDimensionsOnce(lineItem);
412
+ }
375
413
  // Get packing policy from metadata
376
414
  const noStack = Boolean(lineItem?.variant?.metadata?.noStack ?? lineItem?.metadata?.noStack);
377
415
  const fragile = Boolean(lineItem?.variant?.metadata?.fragile ?? lineItem?.metadata?.fragile);
378
- const productId = this.extractProductId(lineItem);
416
+ let productId = this.extractProductId(lineItem);
417
+ if (!productId && variantFallbackDimensions?.product_id) {
418
+ productId = String(variantFallbackDimensions.product_id);
419
+ }
379
420
  let stackable = lineItem?.variant?.metadata?.stackable ?? lineItem?.metadata?.stackable;
380
421
  if ((stackable === undefined || stackable === null || stackable === "") &&
381
422
  productId &&
@@ -389,16 +430,18 @@ class ParcelFulfillmentProvider extends utils_1.AbstractFulfillmentProviderServi
389
430
  if (fragile) {
390
431
  attributes.fragile = true;
391
432
  }
392
- if (stackable !== undefined &&
393
- stackable !== null &&
394
- stackable !== "") {
433
+ // Default to -1 (unlimited) if stackable is not explicitly set
434
+ if (stackable !== undefined && stackable !== null && stackable !== "") {
395
435
  attributes.stackable = Number(stackable);
396
436
  }
437
+ else {
438
+ attributes.stackable = -1; // Unlimited stacking
439
+ }
397
440
  const quoteItem = {
398
441
  sku: lineItem?.variant?.sku || lineItem?.sku || "unknown",
399
- width,
400
- length,
401
- height,
442
+ width: finalWidth,
443
+ length: finalLength,
444
+ height: finalHeight,
402
445
  weight,
403
446
  quantity,
404
447
  attributes: Object.keys(attributes).length > 0 ? attributes : undefined,
@@ -409,6 +452,125 @@ class ParcelFulfillmentProvider extends utils_1.AbstractFulfillmentProviderServi
409
452
  this.logger_?.info(`Converted ${quoteItems.length} quote items successfully`);
410
453
  return quoteItems;
411
454
  }
455
+ async resolveItemsWithFallback(context) {
456
+ const directItems = this.resolveContextItems(context);
457
+ if (directItems.length) {
458
+ return directItems;
459
+ }
460
+ const cartItems = await this.loadItemsFromCartContext(context);
461
+ if (cartItems.length) {
462
+ this.logger_?.debug?.(`[ParcelFulfillment] Loaded ${cartItems.length} cart items via fallback lookup.`);
463
+ return cartItems;
464
+ }
465
+ const cartId = this.extractCartId(context);
466
+ if (cartId) {
467
+ this.logger_?.warn?.(`[ParcelFulfillment] Unable to load items for cart ${cartId}. Shipping quote will fail.`);
468
+ }
469
+ else {
470
+ this.logger_?.warn?.("[ParcelFulfillment] Unable to determine cart ID for shipping calculation.");
471
+ }
472
+ return [];
473
+ }
474
+ async loadItemsFromCartContext(context) {
475
+ const cartId = this.extractCartId(context);
476
+ if (!cartId) {
477
+ return [];
478
+ }
479
+ return await this.loadCartItemsById(cartId);
480
+ }
481
+ async loadCartItemsById(cartId) {
482
+ const query = this.resolveQueryService();
483
+ if (!query?.graph) {
484
+ this.logger_?.error?.(`[ParcelFulfillment] Query service not available for cart ${cartId}. Cannot load items.`);
485
+ return [];
486
+ }
487
+ this.logger_?.info?.(`[ParcelFulfillment] Loading items for cart ${cartId} via query graph...`);
488
+ try {
489
+ const result = await query.graph({
490
+ entity: "cart",
491
+ fields: ["id", "items.*", "items.variant.*", "items.variant.product.*"],
492
+ filters: {
493
+ id: cartId,
494
+ },
495
+ });
496
+ const cart = result?.data?.[0];
497
+ this.logger_?.info?.(`[ParcelFulfillment] Query result: cart found=${Boolean(cart)}, items count=${cart?.items?.length ?? 0}`);
498
+ if (Array.isArray(cart?.items) && cart.items.length) {
499
+ return cart.items;
500
+ }
501
+ this.logger_?.warn?.(`[ParcelFulfillment] Cart ${cartId} resolved but contains no items.`);
502
+ return [];
503
+ }
504
+ catch (error) {
505
+ this.logger_?.error?.(`[ParcelFulfillment] Failed to load cart ${cartId} items: ${error?.message ?? error}. Stack: ${error?.stack ?? "N/A"}`);
506
+ return [];
507
+ }
508
+ }
509
+ extractCartId(context, data) {
510
+ if (!context && !data) {
511
+ return undefined;
512
+ }
513
+ const candidateValues = [
514
+ // Check data parameter first (from frontend request body)
515
+ data?.cart_id,
516
+ data?.cartId,
517
+ data?.cart?.id,
518
+ // Then check context
519
+ context?.cart_id,
520
+ context?.cartId,
521
+ context?.cart?.id,
522
+ context?.data?.cart_id,
523
+ context?.data?.cartId,
524
+ context?.data?.cart?.id,
525
+ context?.order?.cart_id,
526
+ context?.order?.cartId,
527
+ context?.order?.cart?.id,
528
+ context?.fulfillment?.cart_id,
529
+ context?.fulfillment?.cartId,
530
+ context?.fulfillment?.cart?.id,
531
+ ];
532
+ for (const value of candidateValues) {
533
+ if (!value) {
534
+ continue;
535
+ }
536
+ const id = String(value).trim();
537
+ if (id) {
538
+ return id;
539
+ }
540
+ }
541
+ const items = context?.items && Array.isArray(context?.items)
542
+ ? context.items
543
+ : [];
544
+ const itemCandidate = items[0];
545
+ const fromItem = itemCandidate?.cart_id ??
546
+ itemCandidate?.cartId ??
547
+ itemCandidate?.cart?.id;
548
+ if (fromItem) {
549
+ return String(fromItem);
550
+ }
551
+ return undefined;
552
+ }
553
+ resolveContextItems(context) {
554
+ if (!context) {
555
+ return [];
556
+ }
557
+ const candidates = [
558
+ context.items,
559
+ context.cart?.items,
560
+ context.order?.items,
561
+ context.fulfillment?.items,
562
+ context.data?.items,
563
+ ];
564
+ for (const list of candidates) {
565
+ if (Array.isArray(list) && list.length) {
566
+ return list;
567
+ }
568
+ }
569
+ if (Array.isArray(context.items)) {
570
+ return context.items;
571
+ }
572
+ return [];
573
+ }
412
574
  extractProductId(lineItem) {
413
575
  const productId = lineItem?.variant?.product_id ??
414
576
  lineItem?.variant?.productId ??
@@ -420,6 +582,62 @@ class ParcelFulfillmentProvider extends utils_1.AbstractFulfillmentProviderServi
420
582
  lineItem?.metadata?.product_id;
421
583
  return productId ? String(productId) : undefined;
422
584
  }
585
+ extractVariantId(lineItem) {
586
+ const variantId = lineItem?.variant_id ??
587
+ lineItem?.variantId ??
588
+ lineItem?.variant?.id ??
589
+ lineItem?.variant?.variant_id ??
590
+ lineItem?.metadata?.variant_id;
591
+ return variantId ? String(variantId) : undefined;
592
+ }
593
+ async loadVariantDimensions(items) {
594
+ const variantIds = Array.from(new Set(items
595
+ .map((item) => this.extractVariantId(item))
596
+ .filter((id) => Boolean(id))));
597
+ if (!variantIds.length) {
598
+ return new Map();
599
+ }
600
+ const query = this.resolveQueryService();
601
+ if (!query?.graph) {
602
+ return new Map();
603
+ }
604
+ try {
605
+ const result = await query.graph({
606
+ entity: "product_variant",
607
+ fields: [
608
+ "id",
609
+ "width",
610
+ "length",
611
+ "height",
612
+ "weight",
613
+ "product_id",
614
+ "product.id",
615
+ "product.width",
616
+ "product.length",
617
+ "product.height",
618
+ "product.weight",
619
+ ],
620
+ filters: {
621
+ id: variantIds,
622
+ },
623
+ });
624
+ const dimensionMap = new Map();
625
+ for (const variant of result?.data ?? []) {
626
+ dimensionMap.set(String(variant.id), {
627
+ width: Number(variant.width) || Number(variant.product?.width) || 0,
628
+ length: Number(variant.length) || Number(variant.product?.length) || 0,
629
+ height: Number(variant.height) || Number(variant.product?.height) || 0,
630
+ weight: Number(variant.weight) || Number(variant.product?.weight) || 0,
631
+ product_id: variant.product_id ?? variant.product?.id,
632
+ });
633
+ }
634
+ return dimensionMap;
635
+ }
636
+ catch (error) {
637
+ this.logger_?.warn?.(`[ParcelFulfillment] Failed to preload variant dimensions: ${error?.message ?? error}`);
638
+ return new Map();
639
+ }
640
+ }
423
641
  async loadProductStackableValues(items) {
424
642
  const result = new Map();
425
643
  if (!items?.length) {
@@ -431,19 +649,13 @@ class ParcelFulfillmentProvider extends utils_1.AbstractFulfillmentProviderServi
431
649
  if (!productIds.length) {
432
650
  return result;
433
651
  }
434
- const container = this.container_;
435
- if (!container) {
652
+ if (!this.container_) {
436
653
  return result;
437
654
  }
438
655
  let productExtensionService;
439
656
  try {
440
- const canResolve = typeof container.hasRegistration === "function"
441
- ? container.hasRegistration(PRODUCT_EXTENSION_MODULE)
442
- : true;
443
- if (!canResolve) {
444
- return result;
445
- }
446
- productExtensionService = container.resolve(PRODUCT_EXTENSION_MODULE);
657
+ // Resolve directly - Awilix container proxies all property access
658
+ productExtensionService = this.container_.resolve(PRODUCT_EXTENSION_MODULE);
447
659
  }
448
660
  catch (error) {
449
661
  if (error?.name === "AwilixResolutionError" ||
@@ -475,6 +687,81 @@ class ParcelFulfillmentProvider extends utils_1.AbstractFulfillmentProviderServi
475
687
  }
476
688
  return result;
477
689
  }
690
+ resolveQueryService() {
691
+ if (!this.container_) {
692
+ return null;
693
+ }
694
+ try {
695
+ // Resolve directly - Awilix container proxies all property access
696
+ const query = this.container_.resolve(utils_1.ContainerRegistrationKeys.QUERY);
697
+ if (!query?.graph) {
698
+ return null;
699
+ }
700
+ return query;
701
+ }
702
+ catch (error) {
703
+ this.logger_?.debug?.(`[ParcelFulfillment] Query resolver not available: ${error?.message ?? error}`);
704
+ return null;
705
+ }
706
+ }
707
+ resolveFallbackDimensions(provided) {
708
+ return (this.normalizeFallbackDimensions(provided) ??
709
+ this.loadFallbackDimensionsFromEnv() ??
710
+ DEFAULT_FALLBACK_DIMENSIONS);
711
+ }
712
+ loadFallbackDimensionsFromEnv() {
713
+ const width = this.toPositiveNumber(process.env.PARCEL_SHIPPING_FALLBACK_WIDTH_CM);
714
+ const length = this.toPositiveNumber(process.env.PARCEL_SHIPPING_FALLBACK_LENGTH_CM);
715
+ const height = this.toPositiveNumber(process.env.PARCEL_SHIPPING_FALLBACK_HEIGHT_CM);
716
+ const weight = this.toPositiveNumber(process.env.PARCEL_SHIPPING_FALLBACK_WEIGHT);
717
+ return this.normalizeFallbackDimensions({
718
+ width: width ?? undefined,
719
+ length: length ?? undefined,
720
+ height: height ?? undefined,
721
+ weight: weight ?? undefined,
722
+ });
723
+ }
724
+ normalizeFallbackDimensions(input) {
725
+ if (!input) {
726
+ return undefined;
727
+ }
728
+ const width = this.toPositiveNumber(input.width);
729
+ const length = this.toPositiveNumber(input.length);
730
+ const height = this.toPositiveNumber(input.height);
731
+ const weight = this.toPositiveNumber(input.weight);
732
+ if (!width && !length && !height && !weight) {
733
+ return undefined;
734
+ }
735
+ return {
736
+ width: width ?? DEFAULT_FALLBACK_DIMENSIONS.width,
737
+ length: length ?? DEFAULT_FALLBACK_DIMENSIONS.length,
738
+ height: height ?? DEFAULT_FALLBACK_DIMENSIONS.height,
739
+ weight: weight ?? DEFAULT_FALLBACK_DIMENSIONS.weight,
740
+ };
741
+ }
742
+ toPositiveNumber(value) {
743
+ if (value === undefined || value === null) {
744
+ return undefined;
745
+ }
746
+ const parsed = Number(value);
747
+ if (!Number.isFinite(parsed) || parsed <= 0) {
748
+ return undefined;
749
+ }
750
+ return parsed;
751
+ }
752
+ logFallbackDimensionsOnce(exampleItem) {
753
+ if (this.fallbackDimensionsWarned) {
754
+ return;
755
+ }
756
+ const identifier = exampleItem?.title ||
757
+ exampleItem?.variant?.title ||
758
+ exampleItem?.variant?.sku ||
759
+ "unknown item";
760
+ this.logger_?.warn?.(`[ParcelFulfillment] Missing product dimensions detected (e.g. ${identifier}). Using fallback ` +
761
+ `dimensions ${this.fallbackDimensions.length}x${this.fallbackDimensions.width}x${this.fallbackDimensions.height} ` +
762
+ `(cm) and fallback weight ${this.fallbackDimensions.weight}${this.weightUnit === "g" ? "g" : "kg"}. Update product or variant dimensions to improve shipping accuracy.`);
763
+ this.fallbackDimensionsWarned = true;
764
+ }
478
765
  normalizeWeight(weight) {
479
766
  if (!weight || !Number.isFinite(weight)) {
480
767
  return 0;
@@ -533,4 +820,4 @@ exports.ParcelFulfillmentProvider = ParcelFulfillmentProvider;
533
820
  ParcelFulfillmentProvider.identifier = "tha-shipping";
534
821
  ParcelFulfillmentProvider.displayName = "Thai Parcel Shipping";
535
822
  exports.default = ParcelFulfillmentProvider;
536
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyY2VsLWZ1bGZpbGxtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Byb3ZpZGVycy9wYXJjZWwtZnVsZmlsbG1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscURBR21DO0FBTW5DLGdFQUFvRTtBQTZCcEUsTUFBTSx3QkFBd0IsR0FBRyxrQkFBa0IsQ0FBQztBQVFwRDs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFhLHlCQUEwQixTQUFRLDBDQUFrQztJQVUvRSxZQUNFLFNBQWlELEVBQ2pELFVBQW9DLEVBQUU7UUFFdEMsYUFBYTtRQUNiLEtBQUssQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDO1FBRXBCLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBNEIsQ0FBQztRQUMvQyxJQUFJLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUM7UUFDaEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsV0FBVyxJQUFJLEdBQUcsQ0FBQztRQUM3QyxJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxPQUFPLElBQUksdUJBQXVCLENBQUM7UUFDekQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQztJQUN2RCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxLQUFLLENBQUMsVUFBVSxDQUN0QixLQUFrQixFQUNsQixPQUFZLEVBQ1osV0FBd0IsRUFDeEIsV0FBd0I7UUFFeEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUNwQyxLQUFLLEVBQ0wsT0FBTyxFQUNQLFdBQVcsRUFDWCxXQUFXLENBQ1osQ0FBQztRQUVGLE1BQU0sV0FBVyxHQUFHLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzFELElBQUksV0FBVyxFQUFFLENBQUM7WUFDaEIsT0FBTyxXQUFXLENBQUM7UUFDckIsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFD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
823
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyY2VsLWZ1bGZpbGxtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Byb3ZpZGVycy9wYXJjZWwtZnVsZmlsbG1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscURBSW1DO0FBTW5DLGdFQUFvRTtBQTZCcEUsTUFBTSx3QkFBd0IsR0FBRyxrQkFBa0IsQ0FBQztBQVFwRCxNQUFNLDJCQUEyQixHQUFvQjtJQUNuRCxLQUFLLEVBQUUsRUFBRTtJQUNULE1BQU0sRUFBRSxFQUFFO0lBQ1YsTUFBTSxFQUFFLEVBQUU7SUFDVixNQUFNLEVBQUUsR0FBRyxFQUFFLDZEQUE2RDtDQUMzRSxDQUFDO0FBU0Y7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBYSx5QkFBMEIsU0FBUSwwQ0FBa0M7SUFZL0UsWUFDRSxTQUFpRCxFQUNqRCxVQUFvQyxFQUFFO1FBRXRDLGFBQWE7UUFDYixLQUFLLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQztRQVBaLDZCQUF3QixHQUFHLEtBQUssQ0FBQztRQVN6QyxJQUFJLENBQUMsVUFBVSxHQUFHLFNBQTRCLENBQUM7UUFDL0MsSUFBSSxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLFdBQVcsSUFBSSxHQUFHLENBQUM7UUFDN0MsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsT0FBTyxJQUFJLHVCQUF1QixDQUFDO1FBQ3pELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxPQUFPLENBQUMsbUJBQW1CLENBQUM7UUFDckQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FDdEQsT0FBTyxDQUFDLG1CQUFtQixDQUM1QixDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0ssS0FBSyxDQUFDLFVBQVUsQ0FDdEIsS0FBa0IsRUFDbEIsT0FBWSxFQUNaLFdBQXdCLEVBQ3hCLFdB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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lodashventure/medusa-parcel-shipping",
3
- "version": "0.4.15",
3
+ "version": "0.4.16",
4
4
  "description": "Parcel box selection and Thailand shipping quotes for Medusa.",
5
5
  "author": "LodashVenture",
6
6
  "license": "MIT",