import {z} from 'zod' export type GetApiShippingCarrierArgs = {page?: number | undefined, pageSize?: number | undefined, sort?: string | undefined}; export type GetApiShippingCarrierOptions = {baseUrl: string, APIToken?: string | undefined, fetch?: typeof fetch | undefined}; export const shippingCarrier = z.object({id: z.string().optional(), version: z.string().optional(), active: z.boolean().optional(), cashOnDeliveryBankAccountId: z.string().optional(), cashOnDeliveryCurrencyId: z.string().optional(), createdDate: z.number().int().optional(), declaredValueAmount: z.string().optional(), declaredValueCurrencyId: z.string().optional(), dhlGoGreenPlusService: z.boolean().optional(), dhlPostalDeliveredDutyPaidService: z.boolean().optional(), dhlPremiumInternationalService: z.boolean().optional(), ecommerceShippingCarrier: z.enum(["AUSTRIAN_POST", "CARGO_INTERNATIONAL", "DACHSER", "DB_SCHENKER", "DEUTSCHE_POST", "DHL", "DHL_EXPRESS", "DPD", "FEDEX", "GLS", "GO", "HERMES", "ILOXX", "KUEHNE_NAGEL", "OTHER", "PARCEL_ONE", "POSTE_ITALIANE", "TNT", "UPS"]).optional(), height: z.number().int().optional(), internalShippingCarrier: z.enum(["ANGEL_DE", "AUSTRIAN_POST_EMS", "AUSTRIAN_POST_PLUS_INTERNATIONAL", "AUSTRIAN_POST_PREMIUM", "AUSTRIAN_POST_PREMIUM_SELECT", "AUSTRIAN_POST_RETURNS", "AUSTRIAN_POST_STANDARD", "CARGO_INTERNATIONAL_EXPRESS", "CARGO_INTERNATIONAL_STANDARD", "DEUTSCHE_POST_STANDARD", "DHL_1_MAN_HANDLING_RETURN", "DHL_2_MAN_HANDLING_RETURN", "DHL_COMPLETE_RETURN_PARCEL_CONNECT", "DHL_DE_ECOMMERCE_RETURN", "DHL_DE_RETOURE", "DHL_EUROPAKET", "DHL_EUROPAKET_EV", "DHL_EXPRESS_ECONOMY_SELECT", "DHL_EXPRESS_ONE_DAY", "DHL_EXPRESS_ONE_DAY_EARLY", "DHL_KLEINPAKET", "DHL_KLEINPAKET_EV", "DHL_PAKET_EV", "DHL_PAKET_INTERNATIONAL_EV", "DHL_RETURNS", "DHL_RETURNS_EV", "DHL_STANDARD", "DHL_WARENPOST", "DHL_WARENPOST_INTERNATIONAL_EV", "DPD_AT_RETURN_RETURN", "DPD_CLASSIC_RETURN", "DPD_EXPRESS_ONE_DAY", "DPD_EXPRESS_ONE_DAY_EARLY", "DPD_LOCAL_RETURN", "DPD_RETURN", "DPD_RETURNS", "DPD_STANDARD", "FEDEX_DOMESTIC_RETURN", "FEDEX_EUROPE_RETURN", "FEDEX_EXPRESS_ONE_DAY_EARLY", "FEDEX_INTERNATIONALCONNECT_RETURNS", "FEDEX_INTERNATIONAL_ECONOMY", "FEDEX_INTERNATIONAL_ECONOMY_RETURNS", "FEDEX_INTERNATIONAL_PRIORITY", "FEDEX_INTERNATIONAL_PRIORITY_RETURNS", "FEDEX_PRIORITY_RETURNS", "FEDEX_STANDARD", "FEDEX_STANDARD_RETURNS", "GLS_DE_BUSINESS_PARCEL_RETURN", "GLS_DE_EUROBUSINESS_RETURN", "GLS_ES_BUSINESSSMALLPARCEL_RETURN", "GLS_EU_RETURN", "GLS_EXPRESS_ONE_DAY", "GLS_PICK_AND_SHIP", "GLS_RETURNS", "GLS_STANDARD", "GO_ONE_DAY", "HERMES_DE_RETURN", "HERMES_RETURNS", "HERMES_STANDARD", "ILOXX_STANDARD", "PARCEL_ONE", "POSTNL_PAKJEGEMAK", "POSTNL_PAKJEGEMAK_AGECHECK_18", "POSTNL_SMALL_HOME_ADDRESS_ONLY_SIGNATURE", "POSTNL_SMALL_SIGNATURE", "POSTNL_STANDARD_HOME_ADDRESS_ONLY_SIGNATURE", "POSTNL_STANDARD_HOME_ADDRESS_ONLY_SIGNATURE_EVE", "POSTNL_STANDARD_SIGNATURE", "SENDCLOUD_LETTERRETURN", "TNT_ONE_DAY", "TNT_ONE_DAY_EARLY", "UPS_EXPEDITED", "UPS_EXPRESS_1200", "UPS_EXPRESS_ONE_DAY", "UPS_EXPRESS_ONE_DAY_EARLY", "UPS_EXPRESS_SAVER_RETURN", "UPS_RETURNS", "UPS_STANDARD", "UPS_STANDARD_RETURN"]).optional(), lastModifiedDate: z.number().int().optional(), length: z.number().int().optional(), name: z.string(), packagingWeight: z.string().optional(), positionNumber: z.number().int().optional(), saturdayDelivery: z.boolean().optional(), sendcloudContractId: z.string().optional(), sendcloudContractName: z.string().optional(), shippingCarrierAddition: z.string().optional(), shippingLabelsCount: z.number().int().optional(), shippingServiceProviderType: z.enum(["DHL", "SENDCLOUD", "SHIPCLOUD", "STANDARD"]), trackingUrl: z.string().optional(), width: z.number().int().optional()}); export const getApiShippingCarrierResponse = z.object({result: z.array(shippingCarrier).optional()}); export const validateResponse = async ( schema: { readonly '~standard': { readonly validate: (value: unknown) => ({ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }) | Promise<{ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }> } }, value: unknown ): Promise => { const result = await schema['~standard'].validate(value) if (result.issues !== undefined) { const detail = result.issues .map(({ message, path }) => path?.length ? `${path.map((segment) => String(typeof segment === 'object' ? segment.key : segment)).join('.')}: ${message}` : message ) .join('; ') throw new Error(`Response does not match the schema: ${detail}`, { cause: { issues: result.issues } }) } return result.value }; /** * query shippingCarrier * * GET /shippingCarrier */ export const getApiShippingCarrier = async (args: GetApiShippingCarrierArgs, options: GetApiShippingCarrierOptions) => { const {baseUrl, fetch: fetchFn = fetch, APIToken} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('accept', "application/json") if (args.page != null) query.append("page", String(args.page)) if (args.pageSize != null) query.append("pageSize", String(args.pageSize)) if (args.sort != null) query.append("sort", String(args.sort)) if (APIToken !== undefined) headers.set("AuthenticationToken", APIToken) const url = `${baseUrl.replace(/\/+$/, '')}/shippingCarrier${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "GET", headers}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return validateResponse(getApiShippingCarrierResponse, await res.json()) };