UNPKG

@shipengine/connect-carrier-api

Version:

This is the typescript/javascript definitions for carrier api

64 lines 3.98 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CarrierSchema = void 0; const tslib_1 = require("tslib"); const account_modals_1 = require("./account-modals"); const package_type_1 = require("./package-type"); const shipping_service_1 = require("./shipping-service"); const shipping_option_1 = require("./shipping-option"); const country_association_1 = require("./country-association"); const carrier_attributes_1 = require("./carrier-attributes"); const label_formats_1 = require("./label-formats"); const label_sizes_1 = require("./label-sizes"); const confirmation_type_1 = require("./confirmation-type"); const joi_1 = tslib_1.__importDefault(require("joi")); const native_rating_configuration_1 = require("./native-rating-configuration"); const file_exists_1 = require("./custom-validators/file-exists"); const zone_1 = require("./zone"); const connect_runtime_1 = require("@shipengine/connect-runtime"); const package_rating_group_1 = require("./package-rating-group"); const account_connection_specification_1 = require("./account-connection-specification"); const normalized_errors_1 = require("./normalized-errors"); exports.CarrierSchema = joi_1.default.object({ AccountModals: account_modals_1.AccountModalsSchema.required(), PackageTypes: joi_1.default.array().optional().items(package_type_1.PackageTypeSchema).unique('Id'), ShippingServices: joi_1.default.array().optional().items(shipping_service_1.ShippingServiceSchema).unique('Id'), ShippingOptions: shipping_option_1.ShippingOptionDictionarySchema.optional(), DefaultSupportedCountries: joi_1.default.array() .optional() .items(country_association_1.CountryAssociationSchema) .unique('FromCountry'), DefaultLabelSizes: joi_1.default.array().optional().items(label_sizes_1.LabelSizesEnumSchema).unique(), LabelFormats: joi_1.default.array().optional().items(label_formats_1.LabelFormatsEnumSchema).unique(), DefaultConfirmationTypes: confirmation_type_1.ConfirmationDictionarySchema.optional(), CarrierAttributes: joi_1.default.array().optional().items(carrier_attributes_1.CarrierAttributeEnumSchema).unique(), TrackingUrl: joi_1.default.string() .optional() .pattern(new RegExp(/^((http|https):\/\/)([^\/\s]+)\.([^(.:)\/\s]+)((\/\w+)*\/?)([\w\-\.]+[^#?\s]+)(.*)?(#[\w\-]+)?$/)) .message('Invalid TrackingUrl') .max(200), CarrierUrl: joi_1.default.string().optional().uri().max(100), Description: joi_1.default.string().optional().max(250), Name: joi_1.default.string().required().max(50), ApiCode: joi_1.default.string().optional().pattern(connect_runtime_1.ApiCodeRegex, connect_runtime_1.ApiCodeValidationMessage), Id: joi_1.default.string().uuid().required(), Images: joi_1.default.object({ Icon: joi_1.default.string() .required() .custom(file_exists_1.fileExists, 'icon exists') .pattern(new RegExp('^.*.(svg)$')) .message('Images.Icon must be a svg file.'), Logo: joi_1.default.string() .required() .custom(file_exists_1.fileExists, 'logo exists') .pattern(new RegExp('^.*.(svg)$')) .message('Images.Logo must be a svg file.'), }).required(), NativeRating: native_rating_configuration_1.NativeRatingConfigurationSchema.optional(), DocumentTemplate: joi_1.default.string().optional().custom(file_exists_1.fileExists, 'template exists'), Zones: joi_1.default.array().optional().items(zone_1.ZoneSchema).unique('ApiCode'), PackageRatingGroups: joi_1.default.array().optional().items(package_rating_group_1.PackageRatingGroupSchema).unique('Id'), AccountConnection: account_connection_specification_1.AccountConnectionSpecificationSchema.optional(), ErrorLibrary: normalized_errors_1.NormalizedErrorsConfigurationSchema.optional(), }).with('DocumentTemplate', 'ApiCode'); //# sourceMappingURL=carrier.js.map