UNPKG

@simpleapps-com/augur-api

Version:

TypeScript client library for Augur microservices API endpoints

294 lines 13.9 kB
"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