From 245470faf049ca130f27224bbd5e17a99b485461 Mon Sep 17 00:00:00 2001 From: Justintime50 <39606064+Justintime50@users.noreply.github.com> Date: Mon, 10 Aug 2026 11:40:07 -0600 Subject: [PATCH 1/4] TSM-12 convert models group B to TypeScript --- src/models/{batch.js => batch.ts} | 0 src/models/{order.js => order.ts} | 6 ++++-- src/models/{pickup.js => pickup.ts} | 5 +++-- src/models/{pickup_rate.js => pickup_rate.ts} | 0 src/models/{rate.js => rate.ts} | 0 src/models/{refund.js => refund.ts} | 0 src/models/{scan_form.js => scan_form.ts} | 0 7 files changed, 7 insertions(+), 4 deletions(-) rename src/models/{batch.js => batch.ts} (100%) rename src/models/{order.js => order.ts} (81%) rename src/models/{pickup.js => pickup.ts} (82%) rename src/models/{pickup_rate.js => pickup_rate.ts} (100%) rename src/models/{rate.js => rate.ts} (100%) rename src/models/{refund.js => refund.ts} (100%) rename src/models/{scan_form.js => scan_form.ts} (100%) diff --git a/src/models/batch.js b/src/models/batch.ts similarity index 100% rename from src/models/batch.js rename to src/models/batch.ts diff --git a/src/models/order.js b/src/models/order.ts similarity index 81% rename from src/models/order.js rename to src/models/order.ts index 476583001..eb1077313 100644 --- a/src/models/order.js +++ b/src/models/order.ts @@ -25,8 +25,10 @@ export default class Order extends EasyPostObject { * @returns {Rate} - The lowest rate * @throws {FilteringError} - If no applicable rates are found */ - lowestRate(carriers, services) { - const rates = this.rates || []; + lowestRate(carriers?: string[], services?: string[]): unknown { + const rates = ((this as Order & { rates?: unknown[] }).rates || []) as Parameters< + typeof Constants.Utils.getLowestRate + >[0]; return Constants.Utils.getLowestRate(rates, carriers, services); } diff --git a/src/models/pickup.js b/src/models/pickup.ts similarity index 82% rename from src/models/pickup.js rename to src/models/pickup.ts index c5087a17c..655e196e4 100644 --- a/src/models/pickup.js +++ b/src/models/pickup.ts @@ -28,8 +28,9 @@ export default class Pickup extends EasyPostObject { * @returns {Rate} - The lowest rate * @throws {FilteringError} - If no applicable rates are found */ - lowestRate(carriers, services) { - const rates = this.pickup_rates || []; + lowestRate(carriers?: string[], services?: string[]): unknown { + const rates = ((this as Pickup & { pickup_rates?: unknown[] }).pickup_rates || + []) as Parameters[0]; return Constants.Utils.getLowestRate(rates, carriers, services); } diff --git a/src/models/pickup_rate.js b/src/models/pickup_rate.ts similarity index 100% rename from src/models/pickup_rate.js rename to src/models/pickup_rate.ts diff --git a/src/models/rate.js b/src/models/rate.ts similarity index 100% rename from src/models/rate.js rename to src/models/rate.ts diff --git a/src/models/refund.js b/src/models/refund.ts similarity index 100% rename from src/models/refund.js rename to src/models/refund.ts diff --git a/src/models/scan_form.js b/src/models/scan_form.ts similarity index 100% rename from src/models/scan_form.js rename to src/models/scan_form.ts From 4ef0c5fe56102901b3d84622cd69b235c2316c0f Mon Sep 17 00:00:00 2001 From: Justintime50 <39606064+Justintime50@users.noreply.github.com> Date: Mon, 10 Aug 2026 12:07:39 -0600 Subject: [PATCH 2/4] TSM-12 migrate model field types from declarations --- src/models/batch.ts | 16 ++++++++-------- src/models/order.ts | 23 +++++++++++++---------- src/models/pickup.ts | 29 ++++++++++++++++------------- src/models/pickup_rate.ts | 10 +++++----- src/models/rate.ts | 30 +++++++++++++++--------------- src/models/refund.ts | 10 +++++----- src/models/scan_form.ts | 14 +++++++------- 7 files changed, 69 insertions(+), 63 deletions(-) diff --git a/src/models/batch.ts b/src/models/batch.ts index 8b5534e90..eaa47ccee 100644 --- a/src/models/batch.ts +++ b/src/models/batch.ts @@ -6,12 +6,12 @@ import EasyPostObject from './easypost_object'; * @extends EasyPostObject */ export default class Batch extends EasyPostObject { - static label_url; - static num_shipments; - static pickup; - static reference; - static scan_form; - static shipments; - static state; - static status; + declare label_url?: string | null; + declare num_shipments: number; + declare pickup: Record; + declare reference?: string | null; + declare scan_form: Record; + declare shipments: Record[]; + declare state: string; + declare status: Record; } diff --git a/src/models/order.ts b/src/models/order.ts index eb1077313..7d9058d92 100644 --- a/src/models/order.ts +++ b/src/models/order.ts @@ -7,15 +7,15 @@ import EasyPostObject from './easypost_object'; * @extends EasyPostObject */ export default class Order extends EasyPostObject { - static buyer_address; - static from_address; - static is_return; - static messages; - static rates; - static reference; - static return_address; - static shipments; - static to_address; + declare buyer_address?: Record | null; + declare from_address: Record; + declare is_return?: boolean | null; + declare messages: Record[]; + declare rates: Parameters[0]; + declare reference?: string | null; + declare return_address?: Record | null; + declare shipments: Record[]; + declare to_address: Record; /** * Get the lowest rate for this {@link Order}. @@ -25,7 +25,10 @@ export default class Order extends EasyPostObject { * @returns {Rate} - The lowest rate * @throws {FilteringError} - If no applicable rates are found */ - lowestRate(carriers?: string[], services?: string[]): unknown { + lowestRate( + carriers?: string[], + services?: string[], + ): ReturnType { const rates = ((this as Order & { rates?: unknown[] }).rates || []) as Parameters< typeof Constants.Utils.getLowestRate >[0]; diff --git a/src/models/pickup.ts b/src/models/pickup.ts index 655e196e4..20137f5fa 100644 --- a/src/models/pickup.ts +++ b/src/models/pickup.ts @@ -7,18 +7,18 @@ import EasyPostObject from './easypost_object'; * @extends EasyPostObject */ export default class Pickup extends EasyPostObject { - static address; - static carrier_accounts; - static confirmation; - static instructions; - static is_account_address; - static max_datetime; - static messages; - static min_datetime; - static pickup_rates; - static reference; - static shipment; - static status; + declare address: Record; + declare carrier_accounts?: Record[] | null; + declare confirmation: string; + declare instructions?: string | null; + declare is_account_address?: boolean | null; + declare max_datetime: string; + declare messages: Record[]; + declare min_datetime: string; + declare pickup_rates: Parameters[0]; + declare reference?: string | null; + declare shipment: Record; + declare status: 'unknown' | 'scheduled' | 'canceled'; /** * Get the lowest rate for this {@link Pickup}. @@ -28,7 +28,10 @@ export default class Pickup extends EasyPostObject { * @returns {Rate} - The lowest rate * @throws {FilteringError} - If no applicable rates are found */ - lowestRate(carriers?: string[], services?: string[]): unknown { + lowestRate( + carriers?: string[], + services?: string[], + ): ReturnType { const rates = ((this as Pickup & { pickup_rates?: unknown[] }).pickup_rates || []) as Parameters[0]; diff --git a/src/models/pickup_rate.ts b/src/models/pickup_rate.ts index 4e52d5765..30e16caf8 100644 --- a/src/models/pickup_rate.ts +++ b/src/models/pickup_rate.ts @@ -6,9 +6,9 @@ import EasyPostObject from './easypost_object'; * @extends EasyPostObject */ export default class PickupRate extends EasyPostObject { - static carrier; - static currency; - static pickup_id; - static rate; - static service; + declare carrier: string; + declare currency: string; + declare pickup_id: string; + declare rate: string; + declare service: string; } diff --git a/src/models/rate.ts b/src/models/rate.ts index 2b757f9e4..b7026d2dc 100644 --- a/src/models/rate.ts +++ b/src/models/rate.ts @@ -6,19 +6,19 @@ import EasyPostObject from './easypost_object'; * @extends EasyPostObject */ export default class Rate extends EasyPostObject { - static billing_type; - static carrier_account_id; - static carrier; - static currency; - static delivery_date_guaranteed; - static delivery_date; - static delivery_days; - static est_delivery_days; - static list_currency; - static list_rate; - static rate; - static retail_currency; - static retail_rate; - static service; - static shipment_id; + declare billing_type: string; + declare carrier_account_id: string; + declare carrier: string; + declare currency: string; + declare delivery_date_guaranteed: boolean; + declare delivery_date: string; + declare delivery_days: number; + declare est_delivery_days: number; + declare list_currency: string; + declare list_rate: string; + declare rate: string; + declare retail_currency: string; + declare retail_rate: string; + declare service: string; + declare shipment_id: string; } diff --git a/src/models/refund.ts b/src/models/refund.ts index dab7c280d..4523d0262 100644 --- a/src/models/refund.ts +++ b/src/models/refund.ts @@ -6,9 +6,9 @@ import EasyPostObject from './easypost_object'; * @extends EasyPostObject */ export default class Refund extends EasyPostObject { - static carrier; - static confirmation_number; - static shipment_id; - static status; - static tracking_code; + declare carrier: string; + declare confirmation_number: string; + declare shipment_id: string; + declare status: 'submitted' | 'refunded' | 'rejected'; + declare tracking_code: string; } diff --git a/src/models/scan_form.ts b/src/models/scan_form.ts index b4e7d4312..63ac37ae8 100644 --- a/src/models/scan_form.ts +++ b/src/models/scan_form.ts @@ -6,11 +6,11 @@ import EasyPostObject from './easypost_object'; * @extends EasyPostObject */ export default class ScanForm extends EasyPostObject { - static address; - static batch_id; - static form_file_type; - static form_url; - static message; - static status; - static tracking_codes; + declare address: Record; + declare batch_id: string; + declare form_file_type: string; + declare form_url: string; + declare message: string; + declare status: 'creating' | 'created' | 'failed'; + declare tracking_codes: string[]; } From 48a029f084fcb0f1218fa8772b1dabf7aa22198d Mon Sep 17 00:00:00 2001 From: Justintime50 <39606064+Justintime50@users.noreply.github.com> Date: Mon, 10 Aug 2026 12:22:50 -0600 Subject: [PATCH 3/4] TSM-12 make model fields nullable for first pass --- src/models/batch.ts | 12 ++++++------ src/models/order.ts | 10 +++++----- src/models/pickup.ts | 16 ++++++++-------- src/models/pickup_rate.ts | 10 +++++----- src/models/rate.ts | 30 +++++++++++++++--------------- src/models/refund.ts | 10 +++++----- src/models/scan_form.ts | 14 +++++++------- 7 files changed, 51 insertions(+), 51 deletions(-) diff --git a/src/models/batch.ts b/src/models/batch.ts index eaa47ccee..1f5afd085 100644 --- a/src/models/batch.ts +++ b/src/models/batch.ts @@ -7,11 +7,11 @@ import EasyPostObject from './easypost_object'; */ export default class Batch extends EasyPostObject { declare label_url?: string | null; - declare num_shipments: number; - declare pickup: Record; + declare num_shipments: number | null; + declare pickup: Record | null; declare reference?: string | null; - declare scan_form: Record; - declare shipments: Record[]; - declare state: string; - declare status: Record; + declare scan_form: Record | null; + declare shipments: Record[] | null; + declare state: string | null; + declare status: Record | null; } diff --git a/src/models/order.ts b/src/models/order.ts index 7d9058d92..34c106a17 100644 --- a/src/models/order.ts +++ b/src/models/order.ts @@ -8,14 +8,14 @@ import EasyPostObject from './easypost_object'; */ export default class Order extends EasyPostObject { declare buyer_address?: Record | null; - declare from_address: Record; + declare from_address: Record | null; declare is_return?: boolean | null; - declare messages: Record[]; - declare rates: Parameters[0]; + declare messages: Record[] | null; + declare rates: Parameters[0] | null; declare reference?: string | null; declare return_address?: Record | null; - declare shipments: Record[]; - declare to_address: Record; + declare shipments: Record[] | null; + declare to_address: Record | null; /** * Get the lowest rate for this {@link Order}. diff --git a/src/models/pickup.ts b/src/models/pickup.ts index 20137f5fa..215391b10 100644 --- a/src/models/pickup.ts +++ b/src/models/pickup.ts @@ -7,18 +7,18 @@ import EasyPostObject from './easypost_object'; * @extends EasyPostObject */ export default class Pickup extends EasyPostObject { - declare address: Record; + declare address: Record | null; declare carrier_accounts?: Record[] | null; - declare confirmation: string; + declare confirmation: string | null; declare instructions?: string | null; declare is_account_address?: boolean | null; - declare max_datetime: string; - declare messages: Record[]; - declare min_datetime: string; - declare pickup_rates: Parameters[0]; + declare max_datetime: string | null; + declare messages: Record[] | null; + declare min_datetime: string | null; + declare pickup_rates: Parameters[0] | null; declare reference?: string | null; - declare shipment: Record; - declare status: 'unknown' | 'scheduled' | 'canceled'; + declare shipment: Record | null; + declare status: 'unknown' | 'scheduled' | 'canceled' | null; /** * Get the lowest rate for this {@link Pickup}. diff --git a/src/models/pickup_rate.ts b/src/models/pickup_rate.ts index 30e16caf8..6b9556543 100644 --- a/src/models/pickup_rate.ts +++ b/src/models/pickup_rate.ts @@ -6,9 +6,9 @@ import EasyPostObject from './easypost_object'; * @extends EasyPostObject */ export default class PickupRate extends EasyPostObject { - declare carrier: string; - declare currency: string; - declare pickup_id: string; - declare rate: string; - declare service: string; + declare carrier: string | null; + declare currency: string | null; + declare pickup_id: string | null; + declare rate: string | null; + declare service: string | null; } diff --git a/src/models/rate.ts b/src/models/rate.ts index b7026d2dc..25c9789c3 100644 --- a/src/models/rate.ts +++ b/src/models/rate.ts @@ -6,19 +6,19 @@ import EasyPostObject from './easypost_object'; * @extends EasyPostObject */ export default class Rate extends EasyPostObject { - declare billing_type: string; - declare carrier_account_id: string; - declare carrier: string; - declare currency: string; - declare delivery_date_guaranteed: boolean; - declare delivery_date: string; - declare delivery_days: number; - declare est_delivery_days: number; - declare list_currency: string; - declare list_rate: string; - declare rate: string; - declare retail_currency: string; - declare retail_rate: string; - declare service: string; - declare shipment_id: string; + declare billing_type: string | null; + declare carrier_account_id: string | null; + declare carrier: string | null; + declare currency: string | null; + declare delivery_date_guaranteed: boolean | null; + declare delivery_date: string | null; + declare delivery_days: number | null; + declare est_delivery_days: number | null; + declare list_currency: string | null; + declare list_rate: string | null; + declare rate: string | null; + declare retail_currency: string | null; + declare retail_rate: string | null; + declare service: string | null; + declare shipment_id: string | null; } diff --git a/src/models/refund.ts b/src/models/refund.ts index 4523d0262..596d165ca 100644 --- a/src/models/refund.ts +++ b/src/models/refund.ts @@ -6,9 +6,9 @@ import EasyPostObject from './easypost_object'; * @extends EasyPostObject */ export default class Refund extends EasyPostObject { - declare carrier: string; - declare confirmation_number: string; - declare shipment_id: string; - declare status: 'submitted' | 'refunded' | 'rejected'; - declare tracking_code: string; + declare carrier: string | null; + declare confirmation_number: string | null; + declare shipment_id: string | null; + declare status: 'submitted' | 'refunded' | 'rejected' | null; + declare tracking_code: string | null; } diff --git a/src/models/scan_form.ts b/src/models/scan_form.ts index 63ac37ae8..80f525611 100644 --- a/src/models/scan_form.ts +++ b/src/models/scan_form.ts @@ -6,11 +6,11 @@ import EasyPostObject from './easypost_object'; * @extends EasyPostObject */ export default class ScanForm extends EasyPostObject { - declare address: Record; - declare batch_id: string; - declare form_file_type: string; - declare form_url: string; - declare message: string; - declare status: 'creating' | 'created' | 'failed'; - declare tracking_codes: string[]; + declare address: Record | null; + declare batch_id: string | null; + declare form_file_type: string | null; + declare form_url: string | null; + declare message: string | null; + declare status: 'creating' | 'created' | 'failed' | null; + declare tracking_codes: string[] | null; } From b1e8e7a096a5fa4565a62b30d6657b8534aeef84 Mon Sep 17 00:00:00 2001 From: Justintime50 <39606064+Justintime50@users.noreply.github.com> Date: Mon, 10 Aug 2026 12:28:51 -0600 Subject: [PATCH 4/4] TSM-12 make model fields optional and nullable for first pass --- src/models/batch.ts | 12 ++++++------ src/models/order.ts | 10 +++++----- src/models/pickup.ts | 16 ++++++++-------- src/models/pickup_rate.ts | 10 +++++----- src/models/rate.ts | 30 +++++++++++++++--------------- src/models/refund.ts | 10 +++++----- src/models/scan_form.ts | 14 +++++++------- 7 files changed, 51 insertions(+), 51 deletions(-) diff --git a/src/models/batch.ts b/src/models/batch.ts index 1f5afd085..7888b9ea6 100644 --- a/src/models/batch.ts +++ b/src/models/batch.ts @@ -7,11 +7,11 @@ import EasyPostObject from './easypost_object'; */ export default class Batch extends EasyPostObject { declare label_url?: string | null; - declare num_shipments: number | null; - declare pickup: Record | null; + declare num_shipments?: number | null; + declare pickup?: Record | null; declare reference?: string | null; - declare scan_form: Record | null; - declare shipments: Record[] | null; - declare state: string | null; - declare status: Record | null; + declare scan_form?: Record | null; + declare shipments?: Record[] | null; + declare state?: string | null; + declare status?: Record | null; } diff --git a/src/models/order.ts b/src/models/order.ts index 34c106a17..57767bc37 100644 --- a/src/models/order.ts +++ b/src/models/order.ts @@ -8,14 +8,14 @@ import EasyPostObject from './easypost_object'; */ export default class Order extends EasyPostObject { declare buyer_address?: Record | null; - declare from_address: Record | null; + declare from_address?: Record | null; declare is_return?: boolean | null; - declare messages: Record[] | null; - declare rates: Parameters[0] | null; + declare messages?: Record[] | null; + declare rates?: Parameters[0] | null; declare reference?: string | null; declare return_address?: Record | null; - declare shipments: Record[] | null; - declare to_address: Record | null; + declare shipments?: Record[] | null; + declare to_address?: Record | null; /** * Get the lowest rate for this {@link Order}. diff --git a/src/models/pickup.ts b/src/models/pickup.ts index 215391b10..f1e46b70b 100644 --- a/src/models/pickup.ts +++ b/src/models/pickup.ts @@ -7,18 +7,18 @@ import EasyPostObject from './easypost_object'; * @extends EasyPostObject */ export default class Pickup extends EasyPostObject { - declare address: Record | null; + declare address?: Record | null; declare carrier_accounts?: Record[] | null; - declare confirmation: string | null; + declare confirmation?: string | null; declare instructions?: string | null; declare is_account_address?: boolean | null; - declare max_datetime: string | null; - declare messages: Record[] | null; - declare min_datetime: string | null; - declare pickup_rates: Parameters[0] | null; + declare max_datetime?: string | null; + declare messages?: Record[] | null; + declare min_datetime?: string | null; + declare pickup_rates?: Parameters[0] | null; declare reference?: string | null; - declare shipment: Record | null; - declare status: 'unknown' | 'scheduled' | 'canceled' | null; + declare shipment?: Record | null; + declare status?: 'unknown' | 'scheduled' | 'canceled' | null; /** * Get the lowest rate for this {@link Pickup}. diff --git a/src/models/pickup_rate.ts b/src/models/pickup_rate.ts index 6b9556543..7e94394ff 100644 --- a/src/models/pickup_rate.ts +++ b/src/models/pickup_rate.ts @@ -6,9 +6,9 @@ import EasyPostObject from './easypost_object'; * @extends EasyPostObject */ export default class PickupRate extends EasyPostObject { - declare carrier: string | null; - declare currency: string | null; - declare pickup_id: string | null; - declare rate: string | null; - declare service: string | null; + declare carrier?: string | null; + declare currency?: string | null; + declare pickup_id?: string | null; + declare rate?: string | null; + declare service?: string | null; } diff --git a/src/models/rate.ts b/src/models/rate.ts index 25c9789c3..85707d487 100644 --- a/src/models/rate.ts +++ b/src/models/rate.ts @@ -6,19 +6,19 @@ import EasyPostObject from './easypost_object'; * @extends EasyPostObject */ export default class Rate extends EasyPostObject { - declare billing_type: string | null; - declare carrier_account_id: string | null; - declare carrier: string | null; - declare currency: string | null; - declare delivery_date_guaranteed: boolean | null; - declare delivery_date: string | null; - declare delivery_days: number | null; - declare est_delivery_days: number | null; - declare list_currency: string | null; - declare list_rate: string | null; - declare rate: string | null; - declare retail_currency: string | null; - declare retail_rate: string | null; - declare service: string | null; - declare shipment_id: string | null; + declare billing_type?: string | null; + declare carrier_account_id?: string | null; + declare carrier?: string | null; + declare currency?: string | null; + declare delivery_date_guaranteed?: boolean | null; + declare delivery_date?: string | null; + declare delivery_days?: number | null; + declare est_delivery_days?: number | null; + declare list_currency?: string | null; + declare list_rate?: string | null; + declare rate?: string | null; + declare retail_currency?: string | null; + declare retail_rate?: string | null; + declare service?: string | null; + declare shipment_id?: string | null; } diff --git a/src/models/refund.ts b/src/models/refund.ts index 596d165ca..38c234f3c 100644 --- a/src/models/refund.ts +++ b/src/models/refund.ts @@ -6,9 +6,9 @@ import EasyPostObject from './easypost_object'; * @extends EasyPostObject */ export default class Refund extends EasyPostObject { - declare carrier: string | null; - declare confirmation_number: string | null; - declare shipment_id: string | null; - declare status: 'submitted' | 'refunded' | 'rejected' | null; - declare tracking_code: string | null; + declare carrier?: string | null; + declare confirmation_number?: string | null; + declare shipment_id?: string | null; + declare status?: 'submitted' | 'refunded' | 'rejected' | null; + declare tracking_code?: string | null; } diff --git a/src/models/scan_form.ts b/src/models/scan_form.ts index 80f525611..4c63ecd2f 100644 --- a/src/models/scan_form.ts +++ b/src/models/scan_form.ts @@ -6,11 +6,11 @@ import EasyPostObject from './easypost_object'; * @extends EasyPostObject */ export default class ScanForm extends EasyPostObject { - declare address: Record | null; - declare batch_id: string | null; - declare form_file_type: string | null; - declare form_url: string | null; - declare message: string | null; - declare status: 'creating' | 'created' | 'failed' | null; - declare tracking_codes: string[] | null; + declare address?: Record | null; + declare batch_id?: string | null; + declare form_file_type?: string | null; + declare form_url?: string | null; + declare message?: string | null; + declare status?: 'creating' | 'created' | 'failed' | null; + declare tracking_codes?: string[] | null; }