feat(v2.1.0): upgrade Aura Courier MCP with 4 couriers (Steadfast, Pathao, RedX, Paperfly), multi-client configs, Glama badge & AI fraud engine

This commit is contained in:
2026-09-02 03:34:33 +06:00
commit 3503977764
60 changed files with 4692 additions and 0 deletions
+80
View File
@@ -0,0 +1,80 @@
import axios from "axios";
export class SteadfastAdapter {
courierName = "steadfast";
client;
enabled;
constructor(apiKey, secretKey, baseUrl) {
this.enabled = Boolean(apiKey && secretKey);
this.client = axios.create({
baseURL: baseUrl,
headers: {
"Api-Key": apiKey,
"Secret-Key": secretKey,
"Content-Type": "application/json",
},
timeout: 10000,
});
}
isConfigured() {
return this.enabled;
}
async createParcel(req) {
if (!this.enabled) {
throw new Error("Steadfast Courier credentials (API-Key / Secret-Key) are not configured.");
}
const payload = {
invoice: req.invoice,
recipient_name: req.recipient_name,
recipient_phone: req.recipient_phone,
recipient_address: req.recipient_address,
cod_amount: req.cod_amount,
note: req.note || "Aura AI automated dispatch",
};
const response = await this.client.post("/create_order", payload);
const data = response.data;
if (data.status !== 200 && data.status !== "success") {
throw new Error(`Steadfast API error: ${JSON.stringify(data.errors || data.message || data)}`);
}
const consignment = data.consignment || {};
return {
success: true,
courier: "steadfast",
tracking_code: consignment.tracking_code || String(consignment.consignment_id),
consignment_id: consignment.consignment_id,
invoice: consignment.invoice || req.invoice,
status: consignment.status || "in_review",
cod_amount: req.cod_amount,
delivery_fee: consignment.delivery_fee,
created_at: consignment.created_at || new Date().toISOString(),
raw_response: data,
};
}
async trackParcel(trackingCode) {
if (!this.enabled) {
throw new Error("Steadfast Courier credentials are not configured.");
}
const response = await this.client.get(`/status_by_trackingcode/${encodeURIComponent(trackingCode)}`);
const data = response.data;
return {
success: true,
courier: "steadfast",
tracking_code: trackingCode,
status: data.delivery_status || "unknown",
updated_at: data.updated_at || new Date().toISOString(),
raw_response: data,
};
}
async getBalance() {
if (!this.enabled) {
throw new Error("Steadfast Courier credentials are not configured.");
}
const response = await this.client.get("/get_balance");
const data = response.data;
return {
success: true,
courier: "steadfast",
current_balance: Number(data.current_balance || 0),
raw_response: data,
};
}
}