@shipengine/connect-carrier-api
Version:
This is the typescript/javascript definitions for carrier api
68 lines • 4.16 kB
JavaScript
"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");
const enums_1 = require("./enums");
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(),
TrackingSubscriptionLevel: joi_1.default.string()
.valid(...Object.values(enums_1.TrackingSubscriptionLevel))
.optional(),
}).with('DocumentTemplate', 'ApiCode');
//# sourceMappingURL=carrier.js.map