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
*/
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<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(
Joi.string().allow(""),
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),
}),
);
/**
* @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 { 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 \<undiclosed>
*/
additionalInfoFields?: Field[];
additionalInfoFields?: PassFieldContent[];
}
export const PassFields = Joi.object<PassFields>().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<PassFields>().keys({
*
* @see \<undiclosed>
*/
additionalInfoFields: Joi.array().items(Field),
additionalInfoFields: Joi.array().items(PassFieldContent),
});

View File

@@ -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";