diff --git a/src/schemas/Semantics.ts b/src/schemas/Semantics.ts index 3c59a21..d407924 100644 --- a/src/schemas/Semantics.ts +++ b/src/schemas/Semantics.ts @@ -32,16 +32,6 @@ declare namespace SemanticTagType { longitude: number; } - /** - * For newly-introduced event tickets - * in iOS 18 - */ - - interface RelevantDate { - startDate: string; - endDate: string; - } - interface Seat { seatSection?: string; seatRow?: string; @@ -73,15 +63,6 @@ const PersonNameComponent = phoneticRepresentation: Joi.string(), }); -/** - * Minimum supported version: iOS 18 - */ - -const RelevantDate = Joi.object().keys({ - startDate: Joi.string().required(), - endDate: Joi.string().required(), -}); - const SeatSemantics = Joi.object().keys({ seatSection: Joi.string(), seatRow: Joi.string(), @@ -182,8 +163,6 @@ export interface Semantics { performerNames?: string[]; priorityStatus?: string; - relevantDates?: SemanticTagType.RelevantDate[]; - seats?: SemanticTagType.Seat[]; securityScreening?: string; silenceRequested?: boolean; @@ -302,8 +281,6 @@ export const Semantics = Joi.object().keys({ performerNames: Joi.array().items(Joi.string()), priorityStatus: Joi.string(), - relevantDates: Joi.array().items(RelevantDate), - seats: Joi.array().items(SeatSemantics), securityScreening: Joi.string(), silenceRequested: Joi.boolean(), diff --git a/src/schemas/index.ts b/src/schemas/index.ts index 63b642b..9945b1b 100644 --- a/src/schemas/index.ts +++ b/src/schemas/index.ts @@ -33,6 +33,26 @@ export const PreferredStyleSchemes = Joi.array().items( "eventTicket", ) satisfies Joi.Schema; +/** + * For newly-introduced event tickets + * in iOS 18 + */ + +interface RelevantDate { + startDate: string; + endDate: string; +} + +/** + * Minimum supported version: iOS 18 + */ + +const RelevantDate = Joi.object().keys({ + startDate: Joi.string().required(), + endDate: Joi.string().required(), +}); + + export interface FileBuffers { [key: string]: Buffer; } @@ -66,6 +86,9 @@ export interface PassProps { beacons?: Beacon[]; barcodes?: Barcode[]; relevantDate?: string; + + relevantDates?: RelevantDate[]; + expirationDate?: string; locations?: Location[]; @@ -122,6 +145,7 @@ type PassMethodsProps = | "beacons" | "barcodes" | "relevantDate" + | "relevantDates" | "expirationDate" | "locations" | "preferredStyleSchemes"; @@ -150,6 +174,7 @@ export const PassPropsFromMethods = Joi.object({ beacons: Joi.array().items(Beacon), barcodes: Joi.array().items(Barcode), relevantDate: Joi.string().isoDate(), + relevantDates: Joi.array().items(RelevantDate), expirationDate: Joi.string().isoDate(), locations: Joi.array().items(Location), preferredStyleSchemes: PreferredStyleSchemes,