From 4692c68d5d51ed166c229a73337b89f8536776fd Mon Sep 17 00:00:00 2001 From: Alexander Cerutti Date: Wed, 3 Sep 2025 00:38:40 +0200 Subject: [PATCH] Deprecated Field interface in order to rename it according to Apple name (PassFieldContent) --- src/schemas/{Field.ts => PassFieldContent.ts} | 34 ++++++++++++++++--- src/schemas/PassFields.ts | 29 +++++++++------- src/schemas/index.ts | 2 +- 3 files changed, 46 insertions(+), 19 deletions(-) rename src/schemas/{Field.ts => PassFieldContent.ts} (76%) diff --git a/src/schemas/Field.ts b/src/schemas/PassFieldContent.ts similarity index 76% rename from src/schemas/Field.ts rename to src/schemas/PassFieldContent.ts index 3387a90..a615789 100644 --- a/src/schemas/Field.ts +++ b/src/schemas/PassFieldContent.ts @@ -30,7 +30,7 @@ export type PKNumberStyleType = * @see https://developer.apple.com/documentation/walletpasses/passfieldcontent */ -export interface Field { +export interface PassFieldContent { attributedValue?: string | number | Date; changeMessage?: string; dataDetectorTypes?: PKDataDetectorType[]; @@ -47,11 +47,23 @@ export interface Field { numberStyle?: PKNumberStyleType; } -export interface FieldWithRow extends Field { +/** + * @deprecated Use `PassFieldContent` instead, + * which is the right Apple name. + */ +export type Field = PassFieldContent; + +export interface PassFieldContentWithRow extends PassFieldContent { row?: 0 | 1; } -export const Field = Joi.object().keys({ +/** + * @deprecated Use `PassFieldContent` instead, + * which is the right Apple name. + */ +export type FieldWithRow = PassFieldContentWithRow; + +export const PassFieldContent = Joi.object().keys({ attributedValue: Joi.alternatives( Joi.string().allow(""), Joi.number(), @@ -102,8 +114,20 @@ export const Field = Joi.object().keys({ }), }); -export const FieldWithRow = Field.concat( - Joi.object().keys({ +/** + * @deprecated Use `PassFieldContent` instead, + * which is the right Apple name. + */ +export const Field = PassFieldContent; + +export const PassFieldContentWithRow = PassFieldContent.concat( + Joi.object().keys({ row: Joi.number().min(0).max(1), }), ); + +/** + * @deprecated Use `PassFieldContentWithRow` instead, + * which is the right Apple name. + */ +export const FieldWithRow = PassFieldContentWithRow; diff --git a/src/schemas/PassFields.ts b/src/schemas/PassFields.ts index 331441c..7c98003 100644 --- a/src/schemas/PassFields.ts +++ b/src/schemas/PassFields.ts @@ -1,5 +1,8 @@ import Joi from "joi"; -import { Field, FieldWithRow } from "./Field.js"; +import { + PassFieldContent, + PassFieldContentWithRow, +} from "./PassFieldContent.js"; export type TransitType = | "PKTransitTypeAir" @@ -13,11 +16,11 @@ export const TransitType = Joi.string().regex( ); export interface PassFields { - auxiliaryFields: FieldWithRow[]; - backFields: Field[]; - headerFields: Field[]; - primaryFields: Field[]; - secondaryFields: Field[]; + auxiliaryFields: PassFieldContentWithRow[]; + backFields: PassFieldContent[]; + headerFields: PassFieldContent[]; + primaryFields: PassFieldContent[]; + secondaryFields: PassFieldContent[]; transitType?: TransitType; /** @@ -27,15 +30,15 @@ export interface PassFields { * * @see \ */ - additionalInfoFields?: Field[]; + additionalInfoFields?: PassFieldContent[]; } export const PassFields = Joi.object().keys({ - auxiliaryFields: Joi.array().items(FieldWithRow), - backFields: Joi.array().items(Field), - headerFields: Joi.array().items(Field), - primaryFields: Joi.array().items(Field), - secondaryFields: Joi.array().items(Field), + auxiliaryFields: Joi.array().items(PassFieldContentWithRow), + backFields: Joi.array().items(PassFieldContent), + headerFields: Joi.array().items(PassFieldContent), + primaryFields: Joi.array().items(PassFieldContent), + secondaryFields: Joi.array().items(PassFieldContent), transitType: TransitType, /** @@ -45,5 +48,5 @@ export const PassFields = Joi.object().keys({ * * @see \ */ - additionalInfoFields: Joi.array().items(Field), + additionalInfoFields: Joi.array().items(PassFieldContent), }); diff --git a/src/schemas/index.ts b/src/schemas/index.ts index 897bfee..fe7586e 100644 --- a/src/schemas/index.ts +++ b/src/schemas/index.ts @@ -1,7 +1,7 @@ export * from "./Barcode.js"; export * from "./Beacon.js"; export * from "./Location.js"; -export * from "./Field.js"; +export * from "./PassFieldContent.js"; export * from "./NFC.js"; export * from "./Semantics.js"; export * from "./PassFields.js";