UNPKG

passkit-generator

Version:

The easiest way to generate custom Apple Wallet passes in Node.js

63 lines 6.35 kB
import Joi from "joi"; import { PassFieldContent } from "./PassFieldContent.js"; import { Semantics } from "./Semantics.js"; import { URL_REGEX } from "./regexps.js"; const ImageURLEntry = Joi.object({ SHA256: Joi.string().required(), URL: Joi.string().regex(URL_REGEX).required(), scale: Joi.number().default(1), size: Joi.number().max(2 * 1024 * 1024), // 2 megabytes max }); const Image = Joi.object({ URLs: Joi.array().items(ImageURLEntry), reuseExisting: Joi.boolean(), }); const Images = Joi.object({ headerImage: Image, venueMap: Image, }); const URLs = Joi.object({ accessibilityURL: Joi.string().regex(URL_REGEX), addOnURL: Joi.string().regex(URL_REGEX), bagPolicyURL: Joi.string().regex(URL_REGEX), /** * Joi's email schema validates email TLDs and only allows TLDs that are registered in the IANA Registry. * This also requires NodeJS runtime to work (even though can be enabled client side, but discouraged) * Reference - https://github.com/hapijs/joi/issues/2390 */ contactVenueEmail: Joi.string().email({ tlds: false }), contactVenuePhoneNumber: Joi.string(), contactVenueWebsite: Joi.string().regex(URL_REGEX), directionsInformationURL: Joi.string().regex(URL_REGEX), merchandiseURL: Joi.string().regex(URL_REGEX), orderFoodURL: Joi.string().regex(URL_REGEX), parkingInformationURL: Joi.string().regex(URL_REGEX), purchaseParkingURL: Joi.string().regex(URL_REGEX), sellURL: Joi.string().regex(URL_REGEX), transferURL: Joi.string().regex(URL_REGEX), transitInformationURL: Joi.string().regex(URL_REGEX), }); const DateInformation = Joi.object({ date: Joi.alternatives(Joi.string().isoDate(), Joi.date().iso()).required(), ignoreTimeComponents: Joi.boolean(), isAllDay: Joi.boolean(), isUnannounced: Joi.boolean(), isUndetermined: Joi.boolean(), timeZone: Joi.string(), }); export const UpcomingPassInformationEntry = Joi.object({ URLs: URLs, additionalInfoFields: Joi.array().items(PassFieldContent), auxiliaryStoreIdentifiers: Joi.array().items(Joi.number()), backfields: Joi.array().items(PassFieldContent), dateInformation: DateInformation, identifier: Joi.string().required(), images: Images, isActive: Joi.boolean(), name: Joi.string().required(), semantics: Semantics.concat(Joi.object({ venuePlaceID: Joi.string(), })), type: Joi.string().valid("event").required(), }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXBjb21pbmdQYXNzSW5mb3JtYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2NoZW1hcy9VcGNvbWluZ1Bhc3NJbmZvcm1hdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEdBQUcsTUFBTSxLQUFLLENBQUM7QUFDdEIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFvQnpDLE1BQU0sYUFBYSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQWdCO0lBQy9DLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQy9CLEdBQUcsRUFBRSxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUM3QyxLQUFLLEVBQUUsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDOUIsSUFBSSxFQUFFLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxJQUFJLENBQUMsRUFBRSxrQkFBa0I7Q0FDM0QsQ0FBQyxDQUFDO0FBY0gsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBUTtJQUMvQixJQUFJLEVBQUUsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUM7SUFDdEMsYUFBYSxFQUFFLEdBQUcsQ0FBQyxPQUFPLEVBQUU7Q0FDNUIsQ0FBQyxDQUFDO0FBY0gsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBUztJQUNqQyxXQUFXLEVBQUUsS0FBSztJQUNsQixRQUFRLEVBQUUsS0FBSztDQUNmLENBQUMsQ0FBQztB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