Constants
defaultIdSchema: z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>
Exported from: @nexload-sdk/payload-schema
Public constant exported by @nexload-sdk/payload-schema.
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
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.
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.
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.
interface EntityInspection { name: string, fields: EntityInspectionFieldMap }
Exported from: @nexload-sdk/payload-schema
Public interface exported by @nexload-sdk/payload-schema.
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.
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.
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.
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.
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
Sourceinterface 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
Sourceinterface 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.
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.
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
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.
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.
type DefaultIdSchema = typeof defaultIdSchema;
Exported from: @nexload-sdk/payload-schema
Public type exported by @nexload-sdk/payload-schema.
type EntityFieldMap = Readonly<Record<string, AnyFieldDefinition>>;
Exported from: @nexload-sdk/payload-schema
Public type exported by @nexload-sdk/payload-schema.
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.
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.
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.
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.
type PayloadSchemaErrorCode = keyof PayloadSchemaErrorDataMap;
Exported from: @nexload-sdk/payload-schema
Public type exported by @nexload-sdk/payload-schema.
type PayloadSchemaErrorPhase = "definition" | "internal" | "payload-compilation" | "schema-derivation";
Exported from: @nexload-sdk/payload-schema
Public type exported by @nexload-sdk/payload-schema.
SerializedPayloadSchemaError
Sourcetype 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.
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.
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.
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.
The root exports field option types, entity/context/picker types, inference helpers, and the structured error map. PayloadSchemaErrorCode is exactly keyof PayloadSchemaErrorDataMap. InferEntityField and InferEntityFields infer canonical schema outputs, not Payload documents.