Skip to content

API Reference & Compatibility

The complete public API symbol inventory is generated automatically from package source exports:

Functions

defineEntity

Source
defineEntity<const TName extends string, const TFields extends EntityFieldMap, TIdSchema extends AnyCanonicalSchema = z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>, TRelationshipIdSchema extends AnyCanonicalSchema = z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>(options: DefineEntityOptions<TName, TFields, TIdSchema, TRelationshipIdSchema>) => EntityDefinition<TName, BindRelationshipSchemas<TFields, TRelationshipIdSchema>, TIdSchema>

Exported from: @nexload-sdk/payload-schema

Public function exported by @nexload-sdk/payload-schema.

isPayloadSchemaError

Source
isPayloadSchemaError(error: unknown) => error is PayloadSchemaError<PayloadSchemaErrorCode>
isPayloadSchemaError<TCode extends PayloadSchemaErrorCode>(error: unknown, code: TCode) => error is PayloadSchemaError<TCode>

Exported from: @nexload-sdk/payload-schema

Public function exported by @nexload-sdk/payload-schema.

Classes

PayloadSchemaError

Source
class PayloadSchemaError

Exported from: @nexload-sdk/payload-schema

Public classe exported by @nexload-sdk/payload-schema.

Constants

defaultIdSchema

Source
defaultIdSchema: z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>

Exported from: @nexload-sdk/payload-schema

Public constant exported by @nexload-sdk/payload-schema.

field

Source
field: Readonly<{ text: <TNullable extends boolean = false>(options?: TextFieldOptions<TNullable>) => FieldDefinition<"text", NullableSchema<string, TNullable>, TextField>; textarea: <TNullable extends boolean = false>(options?: TextareaFieldOptions<TNullable>) => FieldDefinition<"textarea", NullableSchema<string, TNullable>, TextareaField>; slug: <TNullable extends boolean = false>(options?: TextFieldOptions<TNullable>) => FieldDefinition<"slug", NullableSchema<string, TNullable>, TextField>; number: <TNullable extends boolean = false>(options?: NumberFieldOptions<TNullable>) => FieldDefinition<"number", NullableSchema<number, TNullable>, NumberField>; money: <TNullable extends boolean = false>(options: MoneyFieldOptions<TNullable>) => FieldDefinition<"money", NullableSchema<number, TNullable>, NumberField>; boolean: <TNullable extends boolean = false>(options?: BooleanFieldOptions<TNullable>) => FieldDefinition<"boolean", NullableSchema<boolean, TNullable>, CheckboxField>; date: <TNullable extends boolean = false>(options?: DateFieldOptions<TNullable>) => FieldDefinition<"date", NullableSchema<string, TNullable>, DateField>; select: <const TValues extends readonly string[], THasMany extends boolean = false, TNullable extends boolean = false>(options: SelectFieldOptions<TValues, THasMany, TNullable>) => FieldDefinition<"select", NullableSchema<THasMany extends true ? TValues[number][] : TValues[number], TNullable>, SelectField>; relationship: <const TRelationTo extends string | readonly string[], THasMany extends boolean = false, TNullable extends boolean = false, TIdSchema extends AnyCanonicalSchema | undefined = undefined>(options: RelationshipFieldOptions<TRelationTo, THasMany, TNullable, TIdSchema>) => RelationshipFieldDefinition<"relationship", TRelationTo, THasMany, TNullable, TIdSchema, RelationshipField>; upload: <const TRelationTo extends string | readonly string[], THasMany extends boolean = false, TNullable extends boolean = false, TIdSchema extends AnyCanonicalSchema | undefined = undefined>(options: UploadFieldOptions<TRelationTo, THasMany, TNullable, TIdSchema>) => RelationshipFieldDefinition<"upload", TRelationTo, THasMany, TNullable, TIdSchema, UploadField>; group: <const TFields extends EntityFieldMap, TNullable extends boolean = false>(options: GroupFieldOptions<TFields, TNullable>) => FieldDefinition<"group", GroupCanonicalSchema<TFields, TNullable>, NamedGroupField>; array: <const TFields extends EntityFieldMap, TNullable extends boolean = false>(options: ArrayFieldOptions<TFields, TNullable>) => FieldDefinition<"array", ArrayCanonicalSchema<TFields, TNullable>, ArrayField>; richText: <TSchema extends AnyCanonicalSchema, TNullable extends boolean = false>(options: RichTextFieldOptions<TSchema, TNullable>) => FieldDefinition<"richText", TNullable extends true ? z.ZodNullable<TSchema> : TSchema, RichTextField>; native: <TPayloadField extends PayloadDataField, TSchema extends AnyCanonicalSchema | undefined = undefined>(options: NativeFieldOptions<TPayloadField, TSchema>) => FieldDefinition<"native", TSchema, TPayloadField>; }>

Exported from: @nexload-sdk/payload-schema

Public constant exported by @nexload-sdk/payload-schema.

Interfaces

ArrayFieldOptions

Source
interface ArrayFieldOptions<TFields extends EntityFieldMap, TNullable extends boolean = false> {
  fields: TFields
  required?: boolean
  nullable?: TNullable
  minRows?: number
  maxRows?: number
  defaultValue?: unknown
  dynamicDefaultValue?: DynamicDefaultValue<unknown>
  payload?: NativePayloadExtras<ArrayField, "fields" | "maxRows" | "minRows">
}

Exported from: @nexload-sdk/payload-schema

Public interface exported by @nexload-sdk/payload-schema.

DefineEntityOptions

Source
interface DefineEntityOptions<
  TName extends string,
  TFields extends EntityFieldMap,
  TIdSchema extends AnyCanonicalSchema,
  TRelationshipIdSchema extends AnyCanonicalSchema
> {
  name: TName
  fields: TFields
  idSchema?: TIdSchema
  relationshipIdSchema?: TRelationshipIdSchema
}

Exported from: @nexload-sdk/payload-schema

Public interface exported by @nexload-sdk/payload-schema.

EntityDefinition

Source
interface EntityDefinition<
  TName extends string,
  TFields extends EntityFieldMap,
  TIdSchema extends AnyCanonicalSchema
> {
  readonly name: TName
  readonly idSchema: TIdSchema
  readonly fields: TFields
  readonly payload: EntityPayloadFacade<TFields>
  schema<TSchema extends AnyCanonicalSchema>(factory: (context: EntitySchemaContext<TFields>) => TSchema): TSchema
  inspect(): EntityInspection
}

Exported from: @nexload-sdk/payload-schema

Public interface exported by @nexload-sdk/payload-schema.

EntityInspection

Source
interface EntityInspection { name: string, fields: EntityInspectionFieldMap }

Exported from: @nexload-sdk/payload-schema

Public interface exported by @nexload-sdk/payload-schema.

EntitySchemaContext

Source
interface EntitySchemaContext<TFields extends EntityFieldMap> {
  readonly fields: CanonicalSchemaMap<TFields>
  readonly pick: EntitySchemaPicker<TFields>
  readonly z: typeof import("zod").z
}

Exported from: @nexload-sdk/payload-schema

Public interface exported by @nexload-sdk/payload-schema.

EntitySchemaPicker

Source
interface EntitySchemaPicker<TFields extends EntityFieldMap> {
  <
    const TKeys extends readonly (keyof CanonicalSchemaMap<TFields>)[],
    const TOptional extends readonly SelectedKey<TKeys>[] | "all" | undefined = undefined,
    const TRequired extends readonly SelectedKey<TKeys>[] | undefined = undefined
  >(
    keys: TKeys,
    options?: SchemaPickOptions<SelectedKey<TKeys>, TOptional, TRequired>,
  ): ZodObjectForPickedFields<TFields, TKeys, TOptional, TRequired>
}

Exported from: @nexload-sdk/payload-schema

Public interface exported by @nexload-sdk/payload-schema.

FieldDefinition

Source
interface FieldDefinition<
  TKind extends string,
  TSchema extends AnyCanonicalSchema | undefined,
  TPayloadField extends PayloadDataField
> {
  readonly kind: TKind
  readonly schema: TSchema
  readonly __payloadFieldType?: TPayloadField
}

Exported from: @nexload-sdk/payload-schema

Public interface exported by @nexload-sdk/payload-schema.

GroupFieldOptions

Source
interface GroupFieldOptions<TFields extends EntityFieldMap, TNullable extends boolean = false> {
  fields: TFields
  required?: boolean
  nullable?: TNullable
  defaultValue?: unknown
  dynamicDefaultValue?: DynamicDefaultValue<unknown>
  payload?: NativePayloadExtras<NamedGroupField, "fields">
}

Exported from: @nexload-sdk/payload-schema

Public interface exported by @nexload-sdk/payload-schema.

NativeFieldOptions

Source
interface NativeFieldOptions<
  TPayloadField extends PayloadDataField,
  TSchema extends AnyCanonicalSchema | undefined = undefined
> {
  payload: Omit<TPayloadField, "defaultValue" | "name">
  schema?: TSchema
  defaultValue?: TSchema extends AnyCanonicalSchema ? z.input<TSchema> : never
  dynamicDefaultValue?: Extract<DefaultValue, (...args: never[]) => unknown>
}

Exported from: @nexload-sdk/payload-schema

Public interface exported by @nexload-sdk/payload-schema.

PayloadSchemaErrorDataMap

Source
interface PayloadSchemaErrorDataMap {
  INVALID_ENTITY_NAME: { received: string }
  INVALID_FIELD_NAME: { entity?: string, field: string }
  RESERVED_FIELD_NAME: { entity?: string, field: string, reservedName: string }
  INVALID_FIELD_CONFIGURATION: { entity?: string, fieldPath: string, fieldKind: string, reason: string }
  INVALID_CONSTRAINT_RANGE: {
    entity?: string
    fieldPath: string
    constraint: string
    minimum?: number | string
    maximum?: number | string
  }
  INVALID_DEFAULT_VALUE: { entity?: string, fieldPath: string, fieldKind: string, issues: SafeIssueSummary[] }
  CONFLICTING_DEFAULT_CONFIGURATION: {
    entity?: string
    fieldPath: string
    fieldType: string
    configuredDefaults: readonly ["defaultValue", "dynamicDefaultValue"]
  }
  EMPTY_SELECT_VALUES: { entity?: string, fieldPath: string }
  INVALID_RELATIONSHIP_CONFIGURATION: {
    entity?: string
    fieldPath: string
    reason: string
    relationTo?: string[]
  }
  INVALID_NESTED_FIELD_CONFIGURATION: {
    entity?: string
    fieldPath: string
    reason: string
    blockingFieldPath?: string
  }
  ASYNC_CANONICAL_SCHEMA_UNSUPPORTED: { entity?: string, fieldPath: string, fieldKind: string }
  RESERVED_PAYLOAD_OPTION: { entity?: string, fieldPath: string, fieldKind: string, option: string }
  DUPLICATE_PAYLOAD_FIELD_NAME: { entity: string, payloadName: string, fieldPaths: string[] }
  INVALID_PAYLOAD_FIELD: { entity: string, fieldPath: string, fieldKind: string, reason: string }
  PAYLOAD_COMPILATION_FAILED: {
    entity: string
    fieldPath?: string
    fieldKind?: string
    operation: "all" | "field" | "pick"
    causeName?: string
  }
  UNKNOWN_FIELD: { entity: string, field: string, availableFields: string[] }
  SCHEMA_UNAVAILABLE: {
    entity: string
    fieldPath: string
    fieldKind: string
    reason: "native-without-schema" | "schema-less-descendant"
    blockingFieldPath?: string
  }
  INVALID_SCHEMA_FACTORY_RESULT: { entity: string, receivedType: string }
  SCHEMA_DERIVATION_FAILED: { entity: string, causeName?: string }
  INTERNAL_INVARIANT_VIOLATION: { invariant: string, entity?: string, fieldPath?: string }
}

Exported from: @nexload-sdk/payload-schema

Public interface exported by @nexload-sdk/payload-schema.

RelationshipFieldOptions

Source
interface RelationshipFieldOptions<
  TRelationTo extends string | readonly string[],
  THasMany extends boolean = false,
  TNullable extends boolean = false,
  TIdSchema extends AnyCanonicalSchema | undefined = undefined
> {
  relationTo: TRelationTo
  hasMany?: THasMany
  required?: boolean
  nullable?: TNullable
  idSchema?: TIdSchema
  defaultValue?: MaybeNullable<
    RelationshipValueForOptions<TRelationTo, THasMany, TIdSchema>,
    TNullable
  >
  dynamicDefaultValue?: DynamicDefaultValue<unknown>
  payload?: NativePayloadExtras<RelationshipField, "hasMany" | "relationTo">
}

Exported from: @nexload-sdk/payload-schema

Public interface exported by @nexload-sdk/payload-schema.

RichTextFieldOptions

Source
interface RichTextFieldOptions<
  TSchema extends AnyCanonicalSchema,
  TNullable extends boolean = false
> {
  schema: TSchema
  required?: boolean
  nullable?: TNullable
  defaultValue?: MaybeNullable<z.input<TSchema>, TNullable>
  dynamicDefaultValue?: DynamicDefaultValue<MaybeNullable<z.input<TSchema>, TNullable>>
  payload?: NativePayloadExtras<RichTextField>
}

Exported from: @nexload-sdk/payload-schema

Public interface exported by @nexload-sdk/payload-schema.

SelectFieldOptions

Source
interface SelectFieldOptions<
  TValues extends readonly string[],
  THasMany extends boolean = false,
  TNullable extends boolean = false
> {
  values: TValues
  labels?: Partial<Record<TValues[number], string>>
  hasMany?: THasMany
  required?: boolean
  nullable?: TNullable
  defaultValue?: MaybeNullable<THasMany extends true ? TValues[number][] : TValues[number], TNullable>
  dynamicDefaultValue?: DynamicDefaultValue<
    MaybeNullable<THasMany extends true ? TValues[number][] : TValues[number], TNullable>
  >
  payload?: NativePayloadExtras<SelectField, "hasMany" | "options">
}

Exported from: @nexload-sdk/payload-schema

Public interface exported by @nexload-sdk/payload-schema.

Types

BooleanFieldOptions

Source
type BooleanFieldOptions<TNullable extends boolean = false> = CommonFieldOptions<
  boolean,
  TNullable,
  NativePayloadExtras<CheckboxField>
>;

Exported from: @nexload-sdk/payload-schema

Public type exported by @nexload-sdk/payload-schema.

DateFieldOptions

Source
type DateFieldOptions<TNullable extends boolean = false> = CommonFieldOptions<
  string,
  TNullable,
  NativePayloadExtras<DateField>
> & { minimum?: string, maximum?: string };

Exported from: @nexload-sdk/payload-schema

Public type exported by @nexload-sdk/payload-schema.

DefaultIdSchema

Source
type DefaultIdSchema = typeof defaultIdSchema;

Exported from: @nexload-sdk/payload-schema

Public type exported by @nexload-sdk/payload-schema.

EntityFieldMap

Source
type EntityFieldMap = Readonly<Record<string, AnyFieldDefinition>>;

Exported from: @nexload-sdk/payload-schema

Public type exported by @nexload-sdk/payload-schema.

InferEntityField

Source
type InferEntityField<TField extends FieldDefinition<string, AnyCanonicalSchema, PayloadDataField>>
  = z.infer<TField["schema"]>;

Exported from: @nexload-sdk/payload-schema

Public type exported by @nexload-sdk/payload-schema.

InferEntityFields

Source
type InferEntityFields<TEntity extends EntityDefinition<string, EntityFieldMap, AnyCanonicalSchema>> = {
  [TKey in keyof TEntity["fields"]]: TEntity["fields"][TKey]["schema"] extends AnyCanonicalSchema
    ? z.infer<TEntity["fields"][TKey]["schema"]>
    : never
};

Exported from: @nexload-sdk/payload-schema

Public type exported by @nexload-sdk/payload-schema.

MoneyFieldOptions

Source
type MoneyFieldOptions<TNullable extends boolean = false> = Omit<
  NumberFieldOptions<TNullable>,
  "integer" | "safe"
> & { currency: string };

Exported from: @nexload-sdk/payload-schema

Public type exported by @nexload-sdk/payload-schema.

NumberFieldOptions

Source
type NumberFieldOptions<TNullable extends boolean = false> = CommonFieldOptions<
  number,
  TNullable,
  NativePayloadExtras<NumberField, "max" | "min">
> & {
  integer?: boolean
  safe?: boolean
  minimum?: number
  maximum?: number
  multipleOf?: number
};

Exported from: @nexload-sdk/payload-schema

Public type exported by @nexload-sdk/payload-schema.

PayloadSchemaErrorCode

Source
type PayloadSchemaErrorCode = keyof PayloadSchemaErrorDataMap;

Exported from: @nexload-sdk/payload-schema

Public type exported by @nexload-sdk/payload-schema.

PayloadSchemaErrorPhase

Source
type PayloadSchemaErrorPhase = "definition" | "internal" | "payload-compilation" | "schema-derivation";

Exported from: @nexload-sdk/payload-schema

Public type exported by @nexload-sdk/payload-schema.

SerializedPayloadSchemaError

Source
type SerializedPayloadSchemaError<TCode extends PayloadSchemaErrorCode = PayloadSchemaErrorCode> = {
  name: "PayloadSchemaError"
  code: TCode
  phase: PayloadSchemaErrorPhase
  message: string
  data: PayloadSchemaErrorDataMap[TCode]
};

Exported from: @nexload-sdk/payload-schema

Public type exported by @nexload-sdk/payload-schema.

TextFieldOptions

Source
type TextFieldOptions<TNullable extends boolean = false> = CommonFieldOptions<
  string,
  TNullable,
  NativePayloadExtras<TextField, "maxLength" | "minLength">
> & {
  trim?: boolean
  lowercase?: boolean
  uppercase?: boolean
  minLength?: number
  maxLength?: number
  pattern?: RegExp
};

Exported from: @nexload-sdk/payload-schema

Public type exported by @nexload-sdk/payload-schema.

TextareaFieldOptions

Source
type TextareaFieldOptions<TNullable extends boolean = false> = CommonFieldOptions<
  string,
  TNullable,
  NativePayloadExtras<TextareaField, "maxLength" | "minLength">
> & Omit<TextFieldOptions<TNullable>, keyof CommonFieldOptions<string, TNullable, unknown> | "payload">;

Exported from: @nexload-sdk/payload-schema

Public type exported by @nexload-sdk/payload-schema.

UploadFieldOptions

Source
type UploadFieldOptions<
  TRelationTo extends string | readonly string[],
  THasMany extends boolean = false,
  TNullable extends boolean = false,
  TIdSchema extends AnyCanonicalSchema | undefined = undefined
> = Omit<RelationshipFieldOptions<TRelationTo, THasMany, TNullable, TIdSchema>, "payload"> & { payload?: NativePayloadExtras<UploadField, "hasMany" | "relationTo"> };

Exported from: @nexload-sdk/payload-schema

Public type exported by @nexload-sdk/payload-schema.


FactoryCore OptionsDefault Value SupportOutput Payload Type
field.text()required, trim, lowercase, uppercase, minLength, maxLength, patternStatic & DynamicTextField
field.slug()required, minLength, maxLength, Unicode NFKC normalizationStatic & DynamicTextField
field.textarea()required, trim, minLength, maxLengthStatic & DynamicTextareaField
field.number()required, integer, safe, minimum, maximum, multipleOfStatic & DynamicNumberField
field.money()currency, minimum, maximum (Always safe integer minor units)Static & DynamicNumberField
field.boolean()required (Payload checkbox)Static & DynamicCheckboxField
field.date()required, minimum, maximum (ISO string with timezone offset)Static & DynamicDateField
field.select()values, labels, hasMany (Validated unique non-empty enums)Static & DynamicSelectField
field.relationship()relationTo, hasMany, idSchema (Single or polymorphic)Static & DynamicRelationshipField
field.upload()relationTo, hasMany, idSchemaStatic & DynamicUploadField
field.group()fields (Nested EntityFieldMap), required, nullableStatic & DynamicNamedGroupField
field.array()fields, minRows, maxRows, required, nullableStatic & DynamicArrayField
field.richText()schema (Explicit AST Zod schema validator required)Static & DynamicRichTextField
field.native()payload, schema (Escape hatch for custom/unsupported types)Dynamic (Static requires schema)Any Payload data field

Runtime / EngineVersion RequirementVerification Status
Node.js>=20.9.0Verified on Node 20 & 22
Payload CMS>=3.85.0 <4.0.0Verified on Payload 3.86.0
Zod>=4.0.0 <5.0.0Verified on Zod 4.4.3
Module FormatESM onlyServer and configuration safe
Side EffectsfalseFully tree-shakeable