shipflow 0.1.0 → 0.1.1
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.
- package/dist/carriers/aramex/adapter.d.ts +82 -0
- package/dist/carriers/aramex/adapter.d.ts.map +1 -0
- package/dist/carriers/aramex/index.d.ts +9 -0
- package/dist/carriers/aramex/index.d.ts.map +1 -0
- package/dist/carriers/aramex/index.js +661 -0
- package/dist/carriers/aramex/index.js.map +12 -0
- package/dist/carriers/aramex/mappers.d.ts +68 -0
- package/dist/carriers/aramex/mappers.d.ts.map +1 -0
- package/dist/carriers/aramex/services.d.ts +74 -0
- package/dist/carriers/aramex/services.d.ts.map +1 -0
- package/dist/carriers/aramex/types.d.ts +302 -0
- package/dist/carriers/aramex/types.d.ts.map +1 -0
- package/dist/carriers/aymakan/adapter.d.ts +3 -2
- package/dist/carriers/aymakan/adapter.d.ts.map +1 -1
- package/dist/carriers/aymakan/index.js +54 -43
- package/dist/carriers/aymakan/index.js.map +4 -4
- package/dist/carriers/aymakan/mappers.d.ts.map +1 -1
- package/dist/carriers/aymakan/types.d.ts +4 -6
- package/dist/carriers/aymakan/types.d.ts.map +1 -1
- package/dist/carriers/base.d.ts +2 -2
- package/dist/carriers/base.d.ts.map +1 -1
- package/dist/carriers/smsaexpress/adapter.d.ts +1 -1
- package/dist/carriers/smsaexpress/adapter.d.ts.map +1 -1
- package/dist/carriers/smsaexpress/index.js +12 -8
- package/dist/carriers/smsaexpress/index.js.map +4 -4
- package/dist/carriers/smsaexpress/mappers.d.ts.map +1 -1
- package/dist/core/http.d.ts.map +1 -1
- package/dist/core/schemas.d.ts +3 -3
- package/dist/core/types.d.ts +1 -1
- package/dist/core/types.d.ts.map +1 -1
- package/dist/{index-x8sk1kw9.js → index-qjtxhwzv.js} +5 -3
- package/dist/{index-x8sk1kw9.js.map → index-qjtxhwzv.js.map} +5 -5
- package/dist/index.js +1 -1
- package/package.json +8 -3
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Aramex Carrier Adapter
|
|
3
|
+
* Implementation of the CarrierAdapter interface for the Aramex JSON Shipping
|
|
4
|
+
* Services API v2.
|
|
5
|
+
*
|
|
6
|
+
* Key differences from the other carriers:
|
|
7
|
+
* - Auth is a `ClientInfo` object sent in EVERY request body (not headers).
|
|
8
|
+
* - The four Aramex services (Shipping, Tracking, RateCalculator, Location)
|
|
9
|
+
* live on different base URLs, so the adapter holds one HttpClient per service.
|
|
10
|
+
* - Errors use the "Fake 200 OK" pattern (HTTP 200 + `HasErrors`/`Notifications`),
|
|
11
|
+
* surfaced via the shared HttpClient's `errorExtractor` hook on every call.
|
|
12
|
+
*/
|
|
13
|
+
import type { CarrierConfig, City, CreateShipmentInput, Location, Pickup, PickupRequest, Rate, Shipment, TrackingResult } from "../../core/types.js";
|
|
14
|
+
import { BaseCarrierAdapter } from "../base.js";
|
|
15
|
+
export interface AramexConfig extends CarrierConfig {
|
|
16
|
+
credentials: {
|
|
17
|
+
userName: string;
|
|
18
|
+
password: string;
|
|
19
|
+
accountNumber: string;
|
|
20
|
+
accountPin: string;
|
|
21
|
+
accountEntity: string;
|
|
22
|
+
accountCountryCode: string;
|
|
23
|
+
};
|
|
24
|
+
/** API source channel (default 24). */
|
|
25
|
+
source?: number;
|
|
26
|
+
/** ClientInfo version (default "v1.0"). */
|
|
27
|
+
version?: string;
|
|
28
|
+
/** Company name used when an address has no company set. */
|
|
29
|
+
companyName?: string;
|
|
30
|
+
/**
|
|
31
|
+
* Optional override for the Location service base URL. Live Aramex WSDLs
|
|
32
|
+
* disagree on the production Location host (ws.aramex.net vs anfe02.aramex.com);
|
|
33
|
+
* set this if your account is provisioned on a different host.
|
|
34
|
+
*/
|
|
35
|
+
locationBaseUrl?: string;
|
|
36
|
+
}
|
|
37
|
+
export declare class AramexAdapter extends BaseCarrierAdapter {
|
|
38
|
+
readonly name = "aramex";
|
|
39
|
+
readonly supportedCountries: string[];
|
|
40
|
+
private shippingHttp;
|
|
41
|
+
private trackingHttp;
|
|
42
|
+
private rateHttp;
|
|
43
|
+
private locationHttp;
|
|
44
|
+
constructor(config: AramexConfig);
|
|
45
|
+
protected getBaseUrl(): string;
|
|
46
|
+
/** Derive a sibling service base URL by swapping the `/Shipping/` segment. */
|
|
47
|
+
private serviceBase;
|
|
48
|
+
private get aramexConfig();
|
|
49
|
+
private buildClientInfo;
|
|
50
|
+
/**
|
|
51
|
+
* Extracts the Aramex "Fake 200 OK" error (envelope-level `HasErrors` +
|
|
52
|
+
* `Notifications`). Passed to every request so the HttpClient raises APIError.
|
|
53
|
+
*/
|
|
54
|
+
private static aramexErrorExtractor;
|
|
55
|
+
private static notificationsToErrors;
|
|
56
|
+
protected executeCreateShipment(input: CreateShipmentInput): Promise<Shipment>;
|
|
57
|
+
/**
|
|
58
|
+
* Create multiple shipments in a single request. Aramex's `CreateShipments`
|
|
59
|
+
* operation is natively batch — it takes a `Shipments` array and returns one
|
|
60
|
+
* processed result per shipment, in request order.
|
|
61
|
+
*
|
|
62
|
+
* Fails loud: if ANY shipment in the batch errors, an `APIError` is thrown
|
|
63
|
+
* whose `raw` holds the full response, so already-created AWBs remain
|
|
64
|
+
* recoverable (the unified `Shipment` type has no per-item error channel).
|
|
65
|
+
*/
|
|
66
|
+
createBulkShipments(inputs: CreateShipmentInput[]): Promise<Shipment[]>;
|
|
67
|
+
/**
|
|
68
|
+
* Aramex's classic Shipping Services API has no shipment-cancellation
|
|
69
|
+
* endpoint, so this is unsupported. (Pickups can be cancelled via cancelPickup.)
|
|
70
|
+
*/
|
|
71
|
+
cancelShipment(_trackingNumber: string): Promise<boolean>;
|
|
72
|
+
getLabel(trackingNumber: string, _format?: "PDF" | "ZPL" | "PNG"): Promise<string>;
|
|
73
|
+
track(trackingNumber: string): Promise<TrackingResult>;
|
|
74
|
+
trackMultiple(trackingNumbers: string[]): Promise<TrackingResult[]>;
|
|
75
|
+
trackByReference(reference: string): Promise<TrackingResult>;
|
|
76
|
+
getRates(input: CreateShipmentInput): Promise<Rate[]>;
|
|
77
|
+
createPickup(input: PickupRequest): Promise<Pickup>;
|
|
78
|
+
cancelPickup(pickupId: string | number): Promise<boolean>;
|
|
79
|
+
getCities(countryCode?: string): Promise<City[]>;
|
|
80
|
+
getDropoffLocations(countryCode?: string): Promise<Location[]>;
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/carriers/aramex/adapter.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;GAWG;AAYH,OAAO,KAAK,EACV,aAAa,EACb,IAAI,EACJ,mBAAmB,EACnB,QAAQ,EACR,MAAM,EACN,aAAa,EACb,IAAI,EACJ,QAAQ,EACR,cAAc,EACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAqD7C,MAAM,WAAW,YAAa,SAAQ,aAAa;IACjD,WAAW,EAAE;QACX,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC;QACnB,aAAa,EAAE,MAAM,CAAC;QACtB,kBAAkB,EAAE,MAAM,CAAC;KAC5B,CAAC;IACF,uCAAuC;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2CAA2C;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4DAA4D;IAC5D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,qBAAa,aAAc,SAAQ,kBAAkB;IACnD,QAAQ,CAAC,IAAI,YAAY;IACzB,QAAQ,CAAC,kBAAkB,WAWzB;IAEF,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,YAAY,CAAa;gBAErB,MAAM,EAAE,YAAY;IAuBhC,SAAS,CAAC,UAAU,IAAI,MAAM;IAM9B,8EAA8E;IAC9E,OAAO,CAAC,WAAW;IAInB,OAAO,KAAK,YAAY,GAEvB;IAED,OAAO,CAAC,eAAe;IAQvB;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAyBnC,OAAO,CAAC,MAAM,CAAC,qBAAqB;cAcpB,qBAAqB,CACnC,KAAK,EAAE,mBAAmB,GACzB,OAAO,CAAC,QAAQ,CAAC;IA6CpB;;;;;;;;OAQG;IACG,mBAAmB,CACvB,MAAM,EAAE,mBAAmB,EAAE,GAC5B,OAAO,CAAC,QAAQ,EAAE,CAAC;IAwDtB;;;OAGG;IACH,cAAc,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQnD,QAAQ,CACZ,cAAc,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAC9B,OAAO,CAAC,MAAM,CAAC;IA4BZ,KAAK,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAYtD,aAAa,CAAC,eAAe,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAkBnE,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAU5D,QAAQ,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IA4BrD,YAAY,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;IAgCnD,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAoBzD,SAAS,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAehD,mBAAmB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;CAcrE"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Aramex Carrier Exports
|
|
3
|
+
* Import from 'shipflow/carriers/aramex' for tree-shaking.
|
|
4
|
+
*/
|
|
5
|
+
export { AramexAdapter, type AramexConfig } from "./adapter.js";
|
|
6
|
+
export { AramexProductGroup, AramexProductType, AramexPaymentType, AramexService, AramexStatusCodes, type AramexProductGroupType, type AramexProductTypeCode, type AramexPaymentTypeCode, } from "./services.js";
|
|
7
|
+
export { buildClientInfo, mapAramexStatus, statusFromDescription, parseAramexDate, type AramexCredentials, } from "./mappers.js";
|
|
8
|
+
export type { AramexClientInfo, AramexCreateShipmentsRequest, AramexCreateShipmentsResponse, AramexProcessedShipment, AramexShipmentLabel, AramexPrintLabelResponse, AramexTrackShipmentsRequest, AramexTrackShipmentsResponse, AramexTrackingResult, AramexCalculateRateRequest, AramexCalculateRateResponse, AramexCreatePickupRequest, AramexCreatePickupResponse, AramexCancelPickupRequest, AramexFetchCitiesResponse, AramexFetchOfficesResponse, } from "./types.js";
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/carriers/aramex/index.ts"],"names":[],"mappings":"AACA;;;GAGG;AAGH,OAAO,EAAE,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,WAAW,CAAC;AAG7D,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,GAC3B,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,eAAe,EACf,KAAK,iBAAiB,GACvB,MAAM,WAAW,CAAC;AAGnB,YAAY,EACV,gBAAgB,EAChB,4BAA4B,EAC5B,6BAA6B,EAC7B,uBAAuB,EACvB,mBAAmB,EACnB,wBAAwB,EACxB,2BAA2B,EAC3B,4BAA4B,EAC5B,oBAAoB,EACpB,0BAA0B,EAC1B,2BAA2B,EAC3B,yBAAyB,EACzB,0BAA0B,EAC1B,yBAAyB,EACzB,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,SAAS,CAAC"}
|