@simpleapps-com/augur-api
Version:
TypeScript client library for Augur microservices API endpoints
294 lines • 13.9 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ShipviaRatesLtlResponseSchema = exports.ShipviaRatesResponseSchema = exports.ShipviaRatesDataSchema = exports.ShipviaRateResultSchema = exports.ShipviaRatesLtlParamsSchema = exports.ShipviaRatesParamsSchema = exports.SpeedshipFreightResponseSchema = exports.SpeedshipFreightResultSchema = exports.FreightDetailedResultSchema = exports.FreightSummaryResultSchema = exports.FreightRateResultSchema = exports.SpeedshipFreightRequestParamsSchema = exports.PingResponseSchema = exports.HealthCheckResponseSchema = void 0;
const zod_1 = require("zod");
const schemas_1 = require("../../core/schemas");
// Health check schemas
exports.HealthCheckResponseSchema = (0, schemas_1.BaseResponseSchema)(zod_1.z.string());
// Ping response schema
exports.PingResponseSchema = (0, schemas_1.BaseResponseSchema)(zod_1.z.string());
// Speedship freight request parameters schema
exports.SpeedshipFreightRequestParamsSchema = zod_1.z
.object({
// Required shipping origin information
fromAddressLine: zod_1.z.string().min(1, 'From address line is required'),
fromCity: zod_1.z.string().min(1, 'From city is required'),
fromCompanyName: zod_1.z.string().min(1, 'From company name is required'),
fromCountryCode: zod_1.z.string().min(1, 'From country code is required'),
fromFirstName: zod_1.z.string().min(1, 'From first name is required'),
fromLastName: zod_1.z.string().min(1, 'From last name is required'),
fromPhone: zod_1.z.string().min(1, 'From phone is required'),
fromPostalCode: zod_1.z.string().min(1, 'From postal code is required'),
fromState: zod_1.z.string().min(1, 'From state is required'),
// Required shipping destination information
toAddressLine: zod_1.z.string().min(1, 'To address line is required'),
toCity: zod_1.z.string().min(1, 'To city is required'),
toCompanyName: zod_1.z.string().min(1, 'To company name is required'),
toCountryCode: zod_1.z.string().min(1, 'To country code is required'),
toFirstName: zod_1.z.string().min(1, 'To first name is required'),
toLastName: zod_1.z.string().min(1, 'To last name is required'),
toPhone: zod_1.z.string().min(1, 'To phone is required'),
toPostalCode: zod_1.z.string().min(1, 'To postal code is required'),
toRegion: zod_1.z.string().min(1, 'To region is required'),
// Required package and shipment details
dimensionUnit: zod_1.z.string().min(1, 'Dimension unit is required'),
packageLength: zod_1.z.number().positive('Package length must be positive'),
packageWidth: zod_1.z.number().positive('Package width must be positive'),
productType: zod_1.z.string().min(1, 'Product type is required'),
quantity: zod_1.z.number().positive('Quantity must be positive'),
responseFormat: zod_1.z.enum(['summary', 'detailed', 'cheapest', 'vendor']),
totalWeight: zod_1.z.number().positive('Total weight must be positive'),
weightUnit: zod_1.z.string().min(1, 'Weight unit is required'),
// Optional package dimensions
packageHeight: zod_1.z.number().positive().optional(),
// Optional shipping preferences and instructions
deliveryInstructions: zod_1.z.string().optional(),
pickupInstructions: zod_1.z.string().optional(),
international: zod_1.z.boolean().optional(),
// Optional handling charges
handlingCharge: zod_1.z.number().min(0).optional(),
handlingChargeUnit: zod_1.z.enum(['PERCENT', 'AMOUNT']).optional(),
// Additional metadata
serviceType: zod_1.z.string().optional(),
transitTime: zod_1.z.string().optional(),
insuranceValue: zod_1.z.number().min(0).optional(),
signatureRequired: zod_1.z.boolean().optional(),
specialServices: zod_1.z.array(zod_1.z.string()).optional(),
})
.passthrough();
// Freight rate result schema
exports.FreightRateResultSchema = zod_1.z
.object({
// Core rate information
carrier: zod_1.z.string().optional(),
service: zod_1.z.string().optional(),
serviceCode: zod_1.z.string().optional(),
serviceName: zod_1.z.string().optional(),
// Pricing details
baseRate: zod_1.z.number().optional(),
totalRate: zod_1.z.number().optional(),
discountedRate: zod_1.z.number().optional(),
finalRate: zod_1.z.number().optional(),
currency: zod_1.z.string().optional(),
// Additional charges breakdown
fuelSurcharge: zod_1.z.number().optional(),
accessorialCharges: zod_1.z.number().optional(),
handlingFee: zod_1.z.number().optional(),
insuranceFee: zod_1.z.number().optional(),
taxes: zod_1.z.number().optional(),
// Service details
transitTime: zod_1.z.string().optional(),
transitDays: zod_1.z.number().optional(),
deliveryDate: zod_1.z.string().optional(),
pickupDate: zod_1.z.string().optional(),
// Service capabilities
trackingAvailable: zod_1.z.boolean().optional(),
signatureRequired: zod_1.z.boolean().optional(),
insuranceAvailable: zod_1.z.boolean().optional(),
// Dimensional information
weightLimit: zod_1.z.number().optional(),
dimensionLimits: zod_1.z
.object({
length: zod_1.z.number().optional(),
width: zod_1.z.number().optional(),
height: zod_1.z.number().optional(),
})
.optional(),
// Zone and routing information
zone: zod_1.z.string().optional(),
originZip: zod_1.z.string().optional(),
destinationZip: zod_1.z.string().optional(),
distance: zod_1.z.number().optional(),
// Carrier specific information
carrierCode: zod_1.z.string().optional(),
carrierName: zod_1.z.string().optional(),
carrierLogo: zod_1.z.string().optional(),
carrierRating: zod_1.z.number().optional(),
// Service levels and features
serviceLevel: zod_1.z.enum(['standard', 'expedited', 'overnight', 'ground', 'express']).optional(),
guaranteedDelivery: zod_1.z.boolean().optional(),
saturdayDelivery: zod_1.z.boolean().optional(),
residentialDelivery: zod_1.z.boolean().optional(),
// Additional metadata
quoteId: zod_1.z.string().optional(),
validUntil: zod_1.z.string().optional(),
specialInstructions: zod_1.z.array(zod_1.z.string()).optional(),
restrictions: zod_1.z.array(zod_1.z.string()).optional(),
// Performance metrics
reliability: zod_1.z.number().min(0).max(100).optional(),
onTimePerformance: zod_1.z.number().min(0).max(100).optional(),
customerRating: zod_1.z.number().min(0).max(5).optional(),
// Environmental impact
carbonFootprint: zod_1.z.number().optional(),
ecoFriendly: zod_1.z.boolean().optional(),
// Business terms
terms: zod_1.z.string().optional(),
paymentOptions: zod_1.z.array(zod_1.z.string()).optional(),
cancellationPolicy: zod_1.z.string().optional(),
})
.passthrough();
// Summary freight response for summary format
exports.FreightSummaryResultSchema = zod_1.z
.object({
// Summary information
totalOptions: zod_1.z.number().optional(),
cheapestRate: zod_1.z.number().optional(),
fastestService: zod_1.z.string().optional(),
averageRate: zod_1.z.number().optional(),
// Quick comparison
priceRange: zod_1.z
.object({
min: zod_1.z.number().optional(),
max: zod_1.z.number().optional(),
})
.optional(),
// Service availability
carriersAvailable: zod_1.z.array(zod_1.z.string()).optional(),
servicesAvailable: zod_1.z.array(zod_1.z.string()).optional(),
// Recommendations
recommended: zod_1.z
.object({
cheapest: exports.FreightRateResultSchema.optional(),
fastest: exports.FreightRateResultSchema.optional(),
balanced: exports.FreightRateResultSchema.optional(),
})
.optional(),
})
.passthrough();
// Detailed freight response for detailed format
exports.FreightDetailedResultSchema = zod_1.z
.object({
// Complete rate breakdown
rates: zod_1.z.array(exports.FreightRateResultSchema).optional(),
// Comparison analysis
comparison: zod_1.z
.object({
cheapest: exports.FreightRateResultSchema.optional(),
fastest: exports.FreightRateResultSchema.optional(),
mostReliable: exports.FreightRateResultSchema.optional(),
})
.optional(),
// Market analysis
marketAnalysis: zod_1.z
.object({
averageMarketRate: zod_1.z.number().optional(),
competitiveRating: zod_1.z.string().optional(),
priceIndex: zod_1.z.number().optional(),
})
.optional(),
// Route information
routeDetails: zod_1.z
.object({
distance: zod_1.z.number().optional(),
estimatedTransitTime: zod_1.z.string().optional(),
routeOptimization: zod_1.z.string().optional(),
})
.optional(),
})
.passthrough();
// Union type for different response formats
exports.SpeedshipFreightResultSchema = zod_1.z.union([
exports.FreightRateResultSchema,
exports.FreightSummaryResultSchema,
exports.FreightDetailedResultSchema,
zod_1.z.array(exports.FreightRateResultSchema),
]);
// Response schemas
exports.SpeedshipFreightResponseSchema = (0, schemas_1.BaseResponseSchema)(exports.SpeedshipFreightResultSchema);
// ============================================================================
// ShipVia Schemas
// ============================================================================
// ShipVia rates request parameters schema
exports.ShipviaRatesParamsSchema = zod_1.z
.object({
// Required parameters
fromPostalCode: zod_1.z.string().min(1, 'From postal code is required'),
toPostalCode: zod_1.z.string().min(1, 'To postal code is required'),
totalWeight: zod_1.z.number().positive('Total weight must be positive'),
weightUnit: zod_1.z.string().min(1, 'Weight unit is required'),
locationId: zod_1.z.number().int('Location ID must be an integer'),
// Optional parameters
fromCountryCode: zod_1.z.string().optional(),
toCountryCode: zod_1.z.string().optional(),
shipDate: zod_1.z.string().optional(),
packageType: zod_1.z.string().optional(),
quantity: zod_1.z.number().positive().optional(),
length: zod_1.z.number().positive().optional(),
width: zod_1.z.number().positive().optional(),
height: zod_1.z.number().positive().optional(),
dimensionUnit: zod_1.z.string().optional(),
declaredValue: zod_1.z.number().min(0).optional(),
isResidential: zod_1.z.boolean().optional(),
})
.passthrough();
// ShipVia LTL rates request parameters schema (extends standard rates with commodity info)
exports.ShipviaRatesLtlParamsSchema = zod_1.z
.object({
// Required parameters (same as standard rates)
fromPostalCode: zod_1.z.string().min(1, 'From postal code is required'),
toPostalCode: zod_1.z.string().min(1, 'To postal code is required'),
totalWeight: zod_1.z.number().positive('Total weight must be positive'),
weightUnit: zod_1.z.string().min(1, 'Weight unit is required'),
locationId: zod_1.z.number().int('Location ID must be an integer'),
// LTL-specific required parameters
commodityClass: zod_1.z.string().min(1, 'Commodity class is required for LTL'),
commodityDescription: zod_1.z.string().min(1, 'Commodity description is required for LTL'),
packagingType: zod_1.z.string().min(1, 'Packaging type is required for LTL'),
// Optional parameters
fromCountryCode: zod_1.z.string().optional(),
toCountryCode: zod_1.z.string().optional(),
shipDate: zod_1.z.string().optional(),
quantity: zod_1.z.number().positive().optional(),
length: zod_1.z.number().positive().optional(),
width: zod_1.z.number().positive().optional(),
height: zod_1.z.number().positive().optional(),
dimensionUnit: zod_1.z.string().optional(),
declaredValue: zod_1.z.number().min(0).optional(),
isResidential: zod_1.z.boolean().optional(),
liftgateRequired: zod_1.z.boolean().optional(),
insideDelivery: zod_1.z.boolean().optional(),
limitedAccessPickup: zod_1.z.boolean().optional(),
limitedAccessDelivery: zod_1.z.boolean().optional(),
})
.passthrough();
// ShipVia rate result schema
exports.ShipviaRateResultSchema = zod_1.z
.object({
// Carrier and service info
carrier: zod_1.z.string().optional(),
carrierCode: zod_1.z.string().optional(),
carrierName: zod_1.z.string().optional(),
service: zod_1.z.string().optional(),
serviceCode: zod_1.z.string().optional(),
serviceName: zod_1.z.string().optional(),
shipViaId: zod_1.z.number().optional(),
// Pricing
rate: zod_1.z.number().optional(),
baseRate: zod_1.z.number().optional(),
totalRate: zod_1.z.number().optional(),
discountedRate: zod_1.z.number().optional(),
currency: zod_1.z.string().optional(),
// Additional charges
fuelSurcharge: zod_1.z.number().optional(),
accessorialCharges: zod_1.z.number().optional(),
handlingFee: zod_1.z.number().optional(),
// Transit info
transitTime: zod_1.z.string().optional(),
transitDays: zod_1.z.number().optional(),
deliveryDate: zod_1.z.string().optional(),
estimatedDelivery: zod_1.z.string().optional(),
// Zone info
zone: zod_1.z.string().optional(),
originZip: zod_1.z.string().optional(),
destinationZip: zod_1.z.string().optional(),
// LTL specific fields
commodityClass: zod_1.z.string().optional(),
guaranteed: zod_1.z.boolean().optional(),
})
.passthrough();
// ShipVia rates data schema (array of results)
exports.ShipviaRatesDataSchema = zod_1.z.array(exports.ShipviaRateResultSchema);
// ShipVia rates response schemas
exports.ShipviaRatesResponseSchema = (0, schemas_1.BaseResponseSchema)(exports.ShipviaRatesDataSchema);
exports.ShipviaRatesLtlResponseSchema = (0, schemas_1.BaseResponseSchema)(exports.ShipviaRatesDataSchema);
//# sourceMappingURL=schemas.js.map