Deprecated Field interface in order to rename it according to Apple name (PassFieldContent)

This commit is contained in:
Alexander Cerutti
2025-09-03 00:38:40 +02:00
parent fe288c0113
commit 4692c68d5d
3 changed files with 46 additions and 19 deletions

View File

@@ -30,7 +30,7 @@ export type PKNumberStyleType =
* @see https://developer.apple.com/documentation/walletpasses/passfieldcontent * @see https://developer.apple.com/documentation/walletpasses/passfieldcontent
*/ */
export interface Field { export interface PassFieldContent {
attributedValue?: string | number | Date; attributedValue?: string | number | Date;
changeMessage?: string; changeMessage?: string;
dataDetectorTypes?: PKDataDetectorType[]; dataDetectorTypes?: PKDataDetectorType[];
@@ -47,11 +47,23 @@ export interface Field {
numberStyle?: PKNumberStyleType; 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; row?: 0 | 1;
} }
export const Field = Joi.object<Field>().keys({ /**
* @deprecated Use `PassFieldContent` instead,
* which is the right Apple name.
*/
export type FieldWithRow = PassFieldContentWithRow;
export const PassFieldContent = Joi.object<Field>().keys({
attributedValue: Joi.alternatives( attributedValue: Joi.alternatives(
Joi.string().allow(""), Joi.string().allow(""),
Joi.number(), Joi.number(),
@@ -102,8 +114,20 @@ export const Field = Joi.object<Field>().keys({
}), }),
}); });
export const FieldWithRow = Field.concat( /**
Joi.object<FieldWithRow>().keys({ * @deprecated Use `PassFieldContent` instead,
* which is the right Apple name.
*/
export const Field = PassFieldContent;
export const PassFieldContentWithRow = PassFieldContent.concat(
Joi.object<PassFieldContentWithRow>().keys({
row: Joi.number().min(0).max(1), row: Joi.number().min(0).max(1),
}), }),
); );
/**
* @deprecated Use `PassFieldContentWithRow` instead,
* which is the right Apple name.
*/
export const FieldWithRow = PassFieldContentWithRow;

View File

@@ -1,5 +1,8 @@
import Joi from "joi"; import Joi from "joi";
import { Field, FieldWithRow } from "./Field.js"; import {
PassFieldContent,
PassFieldContentWithRow,
} from "./PassFieldContent.js";
export type TransitType = export type TransitType =
| "PKTransitTypeAir" | "PKTransitTypeAir"
@@ -13,11 +16,11 @@ export const TransitType = Joi.string().regex(
); );
export interface PassFields { export interface PassFields {
auxiliaryFields: FieldWithRow[]; auxiliaryFields: PassFieldContentWithRow[];
backFields: Field[]; backFields: PassFieldContent[];
headerFields: Field[]; headerFields: PassFieldContent[];
primaryFields: Field[]; primaryFields: PassFieldContent[];
secondaryFields: Field[]; secondaryFields: PassFieldContent[];
transitType?: TransitType; transitType?: TransitType;
/** /**
@@ -27,15 +30,15 @@ export interface PassFields {
* *
* @see \<undiclosed> * @see \<undiclosed>
*/ */
additionalInfoFields?: Field[]; additionalInfoFields?: PassFieldContent[];
} }
export const PassFields = Joi.object<PassFields>().keys({ export const PassFields = Joi.object<PassFields>().keys({
auxiliaryFields: Joi.array().items(FieldWithRow), auxiliaryFields: Joi.array().items(PassFieldContentWithRow),
backFields: Joi.array().items(Field), backFields: Joi.array().items(PassFieldContent),
headerFields: Joi.array().items(Field), headerFields: Joi.array().items(PassFieldContent),
primaryFields: Joi.array().items(Field), primaryFields: Joi.array().items(PassFieldContent),
secondaryFields: Joi.array().items(Field), secondaryFields: Joi.array().items(PassFieldContent),
transitType: TransitType, transitType: TransitType,
/** /**
@@ -45,5 +48,5 @@ export const PassFields = Joi.object<PassFields>().keys({
* *
* @see \<undiclosed> * @see \<undiclosed>
*/ */
additionalInfoFields: Joi.array().items(Field), additionalInfoFields: Joi.array().items(PassFieldContent),
}); });

View File

@@ -1,7 +1,7 @@
export * from "./Barcode.js"; export * from "./Barcode.js";
export * from "./Beacon.js"; export * from "./Beacon.js";
export * from "./Location.js"; export * from "./Location.js";
export * from "./Field.js"; export * from "./PassFieldContent.js";
export * from "./NFC.js"; export * from "./NFC.js";
export * from "./Semantics.js"; export * from "./Semantics.js";
export * from "./PassFields.js"; export * from "./PassFields.js";