From fdd20458ddc5e9f792ffbb2046accdb7e2bec771 Mon Sep 17 00:00:00 2001 From: Michelle Bergeron Date: Fri, 5 Dec 2025 13:46:15 -0500 Subject: [PATCH 1/3] new components --- .../track-by-reference/track-by-reference.mjs | 80 +++++++++++++++++++ .../actions/track-by-tcn/track-by-tcn.mjs | 55 +++++++++++++ .../track-by-tracking-number.mjs | 46 +++++++++++ .../track-multi-piece-shipment.mjs | 55 +++++++++++++ components/fedex/fedex.app.mjs | 50 ++++++++++++ components/fedex/package.json | 2 +- 6 files changed, 287 insertions(+), 1 deletion(-) create mode 100644 components/fedex/actions/track-by-reference/track-by-reference.mjs create mode 100644 components/fedex/actions/track-by-tcn/track-by-tcn.mjs create mode 100644 components/fedex/actions/track-by-tracking-number/track-by-tracking-number.mjs create mode 100644 components/fedex/actions/track-multi-piece-shipment/track-multi-piece-shipment.mjs diff --git a/components/fedex/actions/track-by-reference/track-by-reference.mjs b/components/fedex/actions/track-by-reference/track-by-reference.mjs new file mode 100644 index 0000000000000..00365e3e1c31e --- /dev/null +++ b/components/fedex/actions/track-by-reference/track-by-reference.mjs @@ -0,0 +1,80 @@ +import fedex from "../../fedex.app.mjs"; +import { ConfigurationError } from "@pipedream/platform"; + +export default { + key: "fedex-track-by-reference", + name: "Track by Reference", + description: "Tracks a package by reference number. [See the documentation](https://developer.fedex.com/api/en-us/catalog/track/v1/docs.html#operation/Track%20by%20References)", + version: "0.0.1", + type: "action", + annotations: { + destructiveHint: false, + openWorldHint: true, + readOnlyHint: true, + }, + props: { + fedex, + value: { + type: "string", + label: "Reference Value", + description: "The reference value to track", + }, + accountNumber: { + type: "string", + label: "Account Number", + description: "The shipper's account number. Either `accountNumber` or `destinationPostalCode` and `destinationCountryCode` must be provided.", + optional: true, + }, + destinationPostalCode: { + type: "string", + label: "Destination Postal Code", + description: "The postal code of the destination. Either `accountNumber` or `destinationPostalCode` and `destinationCountryCode` must be provided.", + optional: true, + }, + destinationCountryCode: { + type: "string", + label: "Destination Country Code", + description: "The country code of the destination. Either `accountNumber` or `destinationPostalCode` and `destinationCountryCode` must be provided.", + optional: true, + }, + shipDateBegin: { + propDefinition: [ + fedex, + "shipDateBegin", + ], + }, + shipDateEnd: { + propDefinition: [ + fedex, + "shipDateEnd", + ], + }, + includeDetailedScans: { + propDefinition: [ + fedex, + "includeDetailedScans", + ], + }, + }, + async run({ $ }) { + if (!this.accountNumber && (!this.destinationPostalCode || !this.destinationCountryCode)) { + throw new ConfigurationError("Either `accountNumber` or `destinationPostalCode` and `destinationCountryCode` must be provided."); + } + const response = await this.fedex.trackByReference({ + $, + data: { + referencesInformation: { + value: this.value, + accountNumber: this.accountNumber, + destinationPostalCode: this.destinationPostalCode, + destinationCountryCode: this.destinationCountryCode, + shipDateBegin: this.shipDateBegin, + shipDateEnd: this.shipDateEnd, + }, + includeDetailedScans: this.includeDetailedScans, + }, + }); + $.export("$summary", `Tracking information for ${this.trackingNumber} retrieved successfully`); + return response; + }, +}; diff --git a/components/fedex/actions/track-by-tcn/track-by-tcn.mjs b/components/fedex/actions/track-by-tcn/track-by-tcn.mjs new file mode 100644 index 0000000000000..86dd5c5127081 --- /dev/null +++ b/components/fedex/actions/track-by-tcn/track-by-tcn.mjs @@ -0,0 +1,55 @@ +import fedex from "../../fedex.app.mjs"; + +export default { + key: "fedex-track-by-tcn", + name: "Track by TCN", + description: "Tracks a package by transportation control number. [See the documentation](https://developer.fedex.com/api/en-us/catalog/track/v1/docs.html#operation/f1f9080e8452d9ac903f562a2d2626d0)", + version: "0.0.1", + type: "action", + annotations: { + destructiveHint: false, + openWorldHint: true, + readOnlyHint: true, + }, + props: { + fedex, + value: { + type: "string", + label: "Transportation Control Number", + description: "The transportation control number to track", + }, + shipDateBegin: { + propDefinition: [ + fedex, + "shipDateBegin", + ], + }, + shipDateEnd: { + propDefinition: [ + fedex, + "shipDateEnd", + ], + }, + includeDetailedScans: { + propDefinition: [ + fedex, + "includeDetailedScans", + ], + }, + }, + async run({ $ }) { + const response = await this.fedex.trackByTrackingControlNumber({ + $, + data: { + tcnInfo: { + value: this.value, + shipDateBegin: this.shipDateBegin, + shipDateEnd: this.shipDateEnd, + }, + includeDetailedScans: this.includeDetailedScans, + }, + }); + $.export("$summary", `Tracking information for ${this.value} retrieved successfully`); + return response; + }, +}; diff --git a/components/fedex/actions/track-by-tracking-number/track-by-tracking-number.mjs b/components/fedex/actions/track-by-tracking-number/track-by-tracking-number.mjs new file mode 100644 index 0000000000000..5f6f7a9489b89 --- /dev/null +++ b/components/fedex/actions/track-by-tracking-number/track-by-tracking-number.mjs @@ -0,0 +1,46 @@ +import fedex from "../../fedex.app.mjs"; + +export default { + key: "fedex-track-by-tracking-number", + name: "Track by Tracking Number", + description: "Tracks a package by tracking number. [See the documentation](https://developer.fedex.com/api/en-us/catalog/track/v1/docs.html#operation/Track%20by%20Tracking%20Number)", + version: "0.0.1", + type: "action", + annotations: { + destructiveHint: false, + openWorldHint: true, + readOnlyHint: true, + }, + props: { + fedex, + trackingNumber: { + propDefinition: [ + fedex, + "trackingNumber", + ], + }, + includeDetailedScans: { + propDefinition: [ + fedex, + "includeDetailedScans", + ], + }, + }, + async run({ $ }) { + const response = await this.fedex.trackByTrackingNumber({ + $, + data: { + trackingInfo: [ + { + trackingNumberInfo: { + trackingNumber: this.trackingNumber, + }, + }, + ], + includeDetailedScans: this.includeDetailedScans, + }, + }); + $.export("$summary", `Tracking information for ${this.trackingNumber} retrieved successfully`); + return response; + }, +}; diff --git a/components/fedex/actions/track-multi-piece-shipment/track-multi-piece-shipment.mjs b/components/fedex/actions/track-multi-piece-shipment/track-multi-piece-shipment.mjs new file mode 100644 index 0000000000000..21c1d10701afe --- /dev/null +++ b/components/fedex/actions/track-multi-piece-shipment/track-multi-piece-shipment.mjs @@ -0,0 +1,55 @@ +import fedex from "../../fedex.app.mjs"; + +export default { + key: "fedex-track-multi-piece-shipment", + name: "Track Multi-Piece Shipment", + description: "Tracks a multi-piece shipment. [See the documentation](https://developer.fedex.com/api/en-us/catalog/track/v1/docs.html#operation/Track%20Multiple%20Piece%20Shipment)", + version: "0.0.1", + type: "action", + annotations: { + destructiveHint: false, + openWorldHint: true, + readOnlyHint: true, + }, + props: { + fedex, + associatedType: { + type: "string", + label: "Associated Type", + description: "The associated shipment type, such as MPS, Group MPS, or an outbound shipment which is linked to a return shipment", + options: [ + "OUTBOUND_LINK_TO_RETURN", + "STANDARD_MPS", + "GROUP_MPS", + ], + }, + trackingNumber: { + propDefinition: [ + fedex, + "trackingNumber", + ], + }, + includeDetailedScans: { + propDefinition: [ + fedex, + "includeDetailedScans", + ], + }, + }, + async run({ $ }) { + const response = await this.fedex.trackMultiplePieceShipment({ + $, + data: { + associatedType: this.associatedType, + masterTrackingNumberInfo: { + trackingNumberInfo: { + trackingNumber: this.trackingNumber, + }, + }, + includeDetailedScans: this.includeDetailedScans, + }, + }); + $.export("$summary", `Tracking information for ${this.trackingNumber} retrieved successfully`); + return response; + }, +}; diff --git a/components/fedex/fedex.app.mjs b/components/fedex/fedex.app.mjs index 60ec87724706f..4831f03d24601 100644 --- a/components/fedex/fedex.app.mjs +++ b/components/fedex/fedex.app.mjs @@ -178,6 +178,28 @@ export default { label: "Weights", description: "An array of weight values for each of the requested pieces of the shipment", }, + trackingNumber: { + type: "string", + label: "Tracking Number", + description: "The tracking number to track", + }, + includeDetailedScans: { + type: "boolean", + label: "Include Detailed Scans", + description: "Indicates whether to include detailed scan information in the response", + default: false, + optional: true, + }, + shipDateBegin: { + type: "string", + label: "Ship Date Begin", + description: "The beginning of the ship date range to track. Format: YYYY-MM-DD", + }, + shipDateEnd: { + type: "string", + label: "Ship Date End", + description: "The end of the ship date range to track. Format: YYYY-MM-DD", + }, }, methods: { _baseUrl() { @@ -208,5 +230,33 @@ export default { ...opts, }); }, + trackByTrackingNumber(opts = {}) { + return this._makeRequest({ + path: "/track/v1/trackingnumbers", + method: "POST", + ...opts, + }); + }, + trackByReference(opts = {}) { + return this._makeRequest({ + path: "/track/v1/referencenumbers", + method: "POST", + ...opts, + }); + }, + trackByTrackingControlNumber(opts = {}) { + return this._makeRequest({ + path: "/track/v1/tcn", + method: "POST", + ...opts, + }); + }, + trackMultiplePieceShipment(opts = {}) { + return this._makeRequest({ + path: "/track/v1/associatedshipments", + method: "POST", + ...opts, + }); + }, }, }; diff --git a/components/fedex/package.json b/components/fedex/package.json index 02f93bbb62c1d..679681dc4be2c 100644 --- a/components/fedex/package.json +++ b/components/fedex/package.json @@ -1,6 +1,6 @@ { "name": "@pipedream/fedex", - "version": "0.1.0", + "version": "0.2.0", "description": "Pipedream FedEx Components", "main": "fedex.app.mjs", "keywords": [ From ffc13de285fca886767945113a61f6eb6411ffa8 Mon Sep 17 00:00:00 2001 From: Michelle Bergeron Date: Fri, 5 Dec 2025 13:53:33 -0500 Subject: [PATCH 2/3] versions --- components/fedex/actions/create-shipment/create-shipment.mjs | 2 +- .../fedex/actions/validate-shipment/validate-shipment.mjs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/components/fedex/actions/create-shipment/create-shipment.mjs b/components/fedex/actions/create-shipment/create-shipment.mjs index a12d5259fb5ac..aad7da1cb26b1 100644 --- a/components/fedex/actions/create-shipment/create-shipment.mjs +++ b/components/fedex/actions/create-shipment/create-shipment.mjs @@ -4,7 +4,7 @@ export default { key: "fedex-create-shipment", name: "Create Shipment", description: "Create a new shipment. [See the documentation](https://developer.fedex.com/api/en-us/catalog/ship/docs.html#operation/Create%20Shipment)", - version: "0.0.2", + version: "0.0.3", annotations: { destructiveHint: false, openWorldHint: true, diff --git a/components/fedex/actions/validate-shipment/validate-shipment.mjs b/components/fedex/actions/validate-shipment/validate-shipment.mjs index fc010ffa7644d..c83262101b570 100644 --- a/components/fedex/actions/validate-shipment/validate-shipment.mjs +++ b/components/fedex/actions/validate-shipment/validate-shipment.mjs @@ -4,7 +4,7 @@ export default { key: "fedex-validate-shipment", name: "Validate Shipment", description: "Validate a shipment. [See the documentation](https://developer.fedex.com/api/en-us/catalog/ship/docs.html#operation/ShipmentPackageValidate)", - version: "0.0.2", + version: "0.0.3", annotations: { destructiveHint: false, openWorldHint: true, From 2dff498516008efadaea903aca3f8d49f0317c8b Mon Sep 17 00:00:00 2001 From: Michelle Bergeron Date: Fri, 5 Dec 2025 13:57:26 -0500 Subject: [PATCH 3/3] update --- .../fedex/actions/track-by-reference/track-by-reference.mjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/fedex/actions/track-by-reference/track-by-reference.mjs b/components/fedex/actions/track-by-reference/track-by-reference.mjs index 00365e3e1c31e..fad7d77a91ffb 100644 --- a/components/fedex/actions/track-by-reference/track-by-reference.mjs +++ b/components/fedex/actions/track-by-reference/track-by-reference.mjs @@ -74,7 +74,7 @@ export default { includeDetailedScans: this.includeDetailedScans, }, }); - $.export("$summary", `Tracking information for ${this.trackingNumber} retrieved successfully`); + $.export("$summary", `Tracking information for ${this.value} retrieved successfully`); return response; }, };