zmp-sdk
Version:
Zalo Mini App SDK
1,690 lines (1,673 loc) • 126 kB
TypeScript
import { StreamType as StreamType$1, MediaConstraints as MediaConstraints$1, PhotoConstraint as PhotoConstraint$1, PhotoFrame as PhotoFrame$1, MediaDevice as MediaDevice$1, CameraEvents as CameraEvents$1 } from '@mp-types';
/**
* @typedef {"none" | "wifi" | "cellular" | "unknown"} NetworkType
*/
declare enum NetworkType {
/** No Network */
none = "none",
/** Wi-Fi Network */
wifi = "wifi",
/** Cellular Network (2g/3g/4g) */
cellular = "cellular",
/** Uncommon network types for Android */
unknown = "unknown"
}
declare enum Events {
AppPaused = "h5.event.paused",
AppResumed = "h5.event.resumed",
NetworkChanged = "h5.event.connection.changed",
OnDataCallback = "h5.event.webview.result",
WebviewClosed = "h5.event.webview.close",
OpenApp = "h5.event.open.mp",
AppClose = "h5.event.action.close",
PaymentCallback = "payment.callback",
PaymentResult = "action.payment.result",
PaymentClose = "action.payment.close",
DownloadProgress = "h5.event.webview.download.progress"
}
declare const ACTION: {
GET_DOWNLOADED_STICKER: {
haveCallback: boolean;
};
OPEN_SHARE_STICKER: {};
OPEN_PROFILE: {
requireAccessToken: boolean;
};
OPEN_FEED_DETAIL: {};
OPEN_FRIEND_RADA: {};
OPEN_INAPP: {};
OPEN_OUTAPP: {
requireAccessToken: boolean;
};
OPEN_PAGE: {};
OPEN_PHOTODETAIL: {};
OPEN_GALARY: {};
OPEN_GAMECENTER: {};
OPEN_GAMENEWS: {};
OPEN_TAB_CONTACT: {};
OPEN_TAB_SOCIAL: {};
OPEN_FRIENDSUGGEST: {};
OPEN_GROUPLIST: {};
OPEN_NEARBY: {};
OPEN_ROOM: {};
OPEN_STICKERSTORE: {};
OPEN_CREATECHAT: {};
COPY_LINK_CATESTICKER: {};
REQUEST_BUY_STICKER: {};
OPEN_CHAT: {
requireAccessToken: boolean;
};
OPEN_TAB_CHAT: {};
OPEN_CHATGROUP: {};
OPEN_ADDFRIEND: {};
OPEN_TAB_MORE: {};
OPEN_POSTFEED: {
requireAccessToken: boolean;
};
OPEN_LOGINDEVICES: {};
OPEN_SENDSTICKER: {};
REPORT_ABUSE: {
haveCallback: boolean;
};
FOLLOW_OA: {
haveCallback: boolean;
requireAccessToken: boolean;
errorList: {
android: {
"-400": {
mapTo: {
code: number;
message: string;
};
};
};
iOS: {
"-400": {
mapTo: {
code: number;
message: string;
};
};
};
};
};
UNFOLLOW_OA: {
haveCallback: boolean;
requireAccessToken: boolean;
errorList: {
android: {
"-400": {
mapTo: {
code: number;
message: string;
};
};
};
iOS: {
"-400": {
mapTo: {
code: number;
message: string;
};
};
};
};
};
OPEN_GAMEDETAIL: {};
OPEN_SHARESHEET: {
haveCallback: boolean;
requireAccessToken: boolean;
errorList: {
android: {
"-101": {
mapTo: {
code: number;
message: string;
};
};
};
iOS: {
"-101": {
mapTo: {
code: number;
message: string;
};
};
};
};
};
REQUEST_PERMISSION_CAMERA: {
errorList: {
android: {
"-2": {
mapTo: {
code: number;
message: string;
};
};
};
iOS: {
"-2": {
mapTo: {
code: number;
message: string;
};
};
};
};
};
CHANGE_TITLE_HEADER: {
skipJump: boolean;
};
WEBVIEW_CLEARCACHE: {};
WEBVIEW_CONFIRMCACHE: {};
WEBVIEW_ISVISIBLE: {};
WEBVIEW_NETWORKTYPE: {
skipJump: boolean;
};
CHANGE_BUTTON_HEADER: {};
CREATE_OPTIONS_MENU: {
skipJump: boolean;
haveCallback: boolean;
};
CREATE_SHORTCUT: {
requireAccessToken: boolean;
};
CHANGE_ACTIONBAR_LEFTBUTTON_TYPE: {
skipJump: boolean;
haveCallback: boolean;
};
WINDOW_CLOSE: {
skipJump: boolean;
haveCallback: boolean;
};
WEBVIEW_CHECKRESERROR: {};
IAP_REQUESTPAYMENT: {
haveCallback: boolean;
};
ZBROWSER_GETSTATS: {};
ZBROWSER_JSBRIDGE: {
skipJump: boolean;
haveCallback: boolean;
};
PROMPT_AUTHENTICATION: {};
CHANGE_ACTIONBAR_COLOR: {
skipJump: boolean;
};
PROMPT_AUTHENTICATION_CHECK_STATE: {};
OPEN_APPSTORE: {};
GET_LOCATION: {
haveCallback: boolean;
errorList: {
android: {
"-1": {
mapTo: {
code: number;
message: string;
};
};
"-400": {
mapTo: {
code: number;
message: string;
};
};
};
iOS: {
"-1": {
mapTo: {
code: number;
message: string;
};
};
"-400": {
mapTo: {
code: number;
message: string;
};
};
};
};
};
QUERY_LOCATION_HIDE: {
haveCallback: boolean;
};
SHOW_TOAST: {
haveCallback: boolean;
timeout: number;
};
OPEN_APP: {};
HIDE_KEYBOARD: {};
OPEN_PHONE: {};
OPEN_QR: {};
OPEN_SMS: {};
VIEW_MYQR: {
haveCallback: boolean;
timeout: boolean;
requireAccessToken: boolean;
};
KEEP_SCREEN: {
haveCallback: boolean;
timeout: number;
};
CHANGE_AUTOROTATE: {
skipJump: boolean;
};
CHECK_APP_INSTALLED: {};
QUERY_SHOW: {};
QUERY_HIDE: {};
OPEN_INAPPRW: {};
ZALORUN_GETTRACKINGSTATUS: {
haveCallback: boolean;
};
ZALORUN_SETTRACKINGSTATUS: {
haveCallback: boolean;
};
ZALORUN_GETDAYSTEP: {
haveCallback: boolean;
};
ZALORUN_FORCESUBMITDATA: {
haveCallback: boolean;
};
ZALORUN_SETWEIGHT: {
haveCallback: boolean;
};
OPEN_PROFILE_EXT: {};
DOWNLOAD_CATE: {
haveCallback: boolean;
};
JUMP_LOGIN: {
skipJump: boolean;
whiteList: boolean;
};
OPEN_ADTIMA_ADS_INTERSTITIAL: {};
OPEN_ADTIMA_ADS: {};
GET_ADIDCLIENT: {};
SCAN_IBEACON: {};
SAVE_VIDEO_GALLERY: {
versionLive: {
iOS: number;
};
errorList: {
android: {
"-101": {
mapTo: {
code: number;
message: string;
};
needMoreDetail: boolean;
};
"-102": {
mapTo: {
code: number;
message: string;
};
needMoreDetail: boolean;
};
};
iOS: {
"-10": {
mapTo: {
code: number;
message: string;
};
needMoreDetail: boolean;
};
};
};
};
INTERACTIVE_VIBRATION: {};
SAVE_IMAGE_GALLERY: {
versionLive: {
iOS: number;
};
errorList: {
android: {
"-101": {
mapTo: {
code: number;
message: string;
};
needMoreDetail: boolean;
};
"-102": {
mapTo: {
code: number;
message: string;
};
needMoreDetail: boolean;
};
};
iOS: {
"-10": {
mapTo: {
code: number;
message: string;
};
needMoreDetail: boolean;
};
};
};
};
OPEN_MP: {
versionLive: {
iOS: number;
};
};
CHANGE_ACTIONBAR: {
haveCallback: boolean;
timeout: number;
versionLive: {
iOS: number;
};
skipJump: boolean;
};
ZBROWSER_MPDS: {
haveCallback: boolean;
timeout: number;
versionLive: {
iOS: number;
};
errorList: {
android: {
"-100": {
mapTo: {
code: number;
message: string;
};
};
"-101": {
mapTo: {
code: number;
message: string;
};
};
"-105": {
mapTo: {
code: number;
message: string;
};
};
"-106": {
mapTo: {
code: number;
message: string;
};
};
};
iOS: {
"-10": {
mapTo: {
code: number;
message: string;
};
};
"-101": {
mapTo: {
code: number;
message: string;
};
};
"-102": {
mapTo: {
code: number;
message: string;
};
};
};
};
};
ZBROWSER_MPDS_SYNC: {
versionLive: {
iOS: number;
};
errorList: {
android: {
"-100": {
mapTo: {
code: number;
message: string;
};
};
"-101": {
mapTo: {
code: number;
message: string;
};
};
"-105": {
mapTo: {
code: number;
message: string;
};
};
"-106": {
mapTo: {
code: number;
message: string;
};
};
};
iOS: {
"-10": {
mapTo: {
code: number;
message: string;
};
};
"-101": {
mapTo: {
code: number;
message: string;
};
};
"-102": {
mapTo: {
code: number;
message: string;
};
};
};
};
};
WEBVIEW_SET_RESULT: {
versionLive: {
iOS: number;
};
};
MP_GET_NUMBER: {
versionLive: {
iOS: number;
};
errorList: {
android: {
"-1": {
mapTo: {
code: number;
message: string;
};
};
"-101": {
mapTo: {
code: number;
message: string;
};
};
"-400": {
mapTo: {
code: number;
message: string;
};
};
};
iOS: {
"-1": {
mapTo: {
code: number;
message: string;
};
};
"-10": {
mapTo: {
code: number;
message: string;
};
};
"-400": {
mapTo: {
code: number;
message: string;
};
};
};
};
};
MP_OPEN_PROFILE_PICKER: {
requireAccessToken: boolean;
versionLive: {
iOS: number;
};
errorList: {
android: {
"-101": {
mapTo: {
code: number;
message: string;
};
};
};
iOS: {
"-101": {
mapTo: {
code: number;
message: string;
};
};
};
};
};
GET_SUPPORTED_ACTIONS: {
whiteList: boolean;
};
MP_JOIN_WIFI: {
haveCallback: boolean;
timeout: boolean;
versionLive: {
android: number;
iOS: number;
};
havePermission: boolean;
whiteList: boolean;
};
PICK_MEDIA: {
requireAccessToken: boolean;
versionLive: {
iOS: number;
};
errorList: {
android: {
"-101": {
mapTo: {
code: number;
message: string;
};
};
"999": {
mapTo: {
code: number;
message: string;
};
needMoreDetail: boolean;
};
};
iOS: {
"-10": {
mapTo: {
code: number;
message: string;
};
};
};
};
};
MP_CLOSE_LOADINGVIEW: {
skipJump: boolean;
};
CHANGE_BOTTOMBAR: {
haveCallback: boolean;
timeout: number;
skipJump: boolean;
};
MA_MENU_MINIMIZE: {
skipJump: boolean;
versionLive: {
iOS: number;
};
};
MA_MENU_PERMISSION: {
skipJump: boolean;
versionLive: {
iOS: number;
};
};
MA_MENU_FAVORITES: {
skipJump: boolean;
versionLive: {
iOS: number;
};
};
MP_SEND_NOTIFICATION: {
skipJump: boolean;
versionLive: {
iOS: number;
};
errorList: {
android: {
"-1": {
mapTo: {
code: number;
message: string;
};
};
"-400": {
mapTo: {
code: number;
message: string;
};
};
};
iOS: {
"-1": {
mapTo: {
code: number;
message: string;
};
};
"-400": {
mapTo: {
code: number;
message: string;
};
};
};
};
};
MP_ADD_RATING: {
skipJump: boolean;
};
MP_ADD_MYFAVORITES: {
skipJump: boolean;
};
MP_INTERACT_OA: {
skipJump: boolean;
errorList: {
android: {
"-400": {
mapTo: {
code: number;
message: string;
};
};
};
iOS: {
"-400": {
mapTo: {
code: number;
message: string;
};
};
};
};
};
MP_USER_AUTHORIZE: {
skipJump: boolean;
errorList: {
android: {
"-400": {
mapTo: {
code: number;
message: string;
};
};
};
iOS: {
"-400": {
mapTo: {
code: number;
message: string;
};
};
};
};
};
MP_SELECT_PAYMENT_METHOD: {
skipJump: boolean;
};
CHECK_NFC: {
skipJump: boolean;
versionLive: {
iOS: number;
};
errorList: {
all: {
"-1": {
mapTo: {
code: number;
message: string;
};
};
"-600": {
mapTo: {
code: number;
message: string;
};
};
"-602": {
mapTo: {
code: number;
message: string;
};
};
};
};
};
SCAN_NFC: {
skipJump: boolean;
haveCallback: boolean;
timeout: number;
errorList: {
all: {
"-1": {
mapTo: {
code: number;
message: string;
};
};
"-600": {
mapTo: {
code: number;
message: string;
};
};
"-601": {
mapTo: {
code: number;
message: string;
};
};
"-602": {
mapTo: {
code: number;
message: string;
};
};
"-603": {
mapTo: {
code: number;
message: string;
};
};
"-604": {
mapTo: {
code: number;
message: string;
};
};
"-605": {
mapTo: {
code: number;
message: string;
};
};
"-606": {
mapTo: {
code: number;
message: string;
};
};
};
};
};
MP_CONFIRM_REQUEST_PAYMENT: {
skipJump: boolean;
};
SAVE_FILE: {
versionLive: {
iOS: number;
};
skipJump: boolean;
errorList: {
android: {
"-101": {
mapTo: {
code: number;
message: string;
};
needMoreDetail: boolean;
};
"-102": {
mapTo: {
code: number;
message: string;
};
needMoreDetail: boolean;
};
};
iOS: {
"-10": {
mapTo: {
code: number;
message: string;
};
needMoreDetail: boolean;
};
};
};
};
MP_APP_LIFECYCLE_TRACKING: {
skipJump: boolean;
};
};
declare const AUTHEN_SCOPE_VALUES: readonly ["scope.userInfo", "scope.userLocation", "scope.userPhonenumber"];
declare const GET_SETTINGS_SCOPE_VALUES: readonly ["scope.userInfo", "scope.userLocation", "scope.userPhonenumber", "scope.camera", "scope.micro"];
type AsyncCallbackFailObject = {
code: number;
message?: string | undefined;
api?: string | undefined;
[key: string]: any;
};
type AsyncCallback<T = any> = {
action?: keyof typeof ACTION;
success?: ((res: T) => void) | undefined;
fail?: ((err: AsyncCallbackFailObject) => void) | undefined;
};
type AsyncVoidCallback = {
action?: keyof typeof ACTION;
success?: () => void;
fail?: ((err: AsyncCallbackFailObject) => void) | undefined;
};
type AsyncProgressCallback = {
action?: keyof typeof ACTION;
onProgress?: (progress: number) => void;
success?: () => void;
fail?: ((err: AsyncCallbackFailObject) => void) | undefined;
};
type GetLocationReturns = {
/** latitude */
latitude?: string;
/** longitude */
longitude?: string;
/** timestamp */
timestamp?: string;
/** provider */
provider?: string;
token?: string;
};
type CameraParams = {
mediaConstraints?: MediaConstraints;
canvasElement?: HTMLCanvasElement;
videoElement: HTMLVideoElement;
};
interface SystemInfo {
/** Mini app version */
version: string;
/** SDK version */
apiVersion: string;
/** Zalo version */
zaloVersion: string;
/** Client platform */
platform: string;
/** Language set in Zalo */
language: string;
/** Language set in Zalo */
zaloLanguage: string;
/** Theme set in Zalo */
zaloTheme: string;
}
type SetStorageReturns = {
errorKeys: string[];
};
type GetStorageReturns = {
[key: string]: any;
};
type StorageInfo = {
currentSize: number;
limitSize: number;
};
type RemoveStorageReturns = {
errorKeys: string[];
};
type GetUserInfoReturns = {
userInfo: {
id: string;
name: string;
avatar: string;
idByOA?: string;
isSensitive?: boolean;
followedOA?: boolean;
};
};
type GetNetworkTypeReturns = {
networkType: NetworkType;
};
type iBeaconInfo = {
/** The iBeacon device broadcast UUID. */
uuid: string;
/** The iBeacon device primary ID. */
major: string;
/** The iBeacon device secondary ID. */
minor: string;
/** The iBeacon device distance. */
distance: number;
/** The signal strength of the device. */
rssi: number;
};
type GetBeaconDiscoveryReturns = {
beacons: Array<iBeaconInfo>;
};
type ScanQRCodeReturns = {
content: string;
};
type OpenPostFeedReturns = {
status: 0 | 1;
shareType: 0 | 1 | 2;
numberOfUser: number;
};
type OpenShareSheetReturns = {
status: 0 | 2 | 1;
shareType: 0 | 2 | 1;
numberOfUser: number;
};
type RequestCameraPermissionReturns = {
userAllow: boolean;
message: string;
};
type CheckZaloCameraPermissionReturns = {
userAllow: boolean;
};
type OpenBioAuthenticationReturns = {
code: number;
message: string;
data: {
domain: string;
code: number;
message: string;
payToken: string;
};
};
type CheckStateBioAuthenticationReturns = {
bioState: string;
};
type KeepScreenReturns = {
success: boolean;
};
type OpenWebviewReturns = {
success: boolean;
};
type GetAppInfoReturns = {
description: string;
version: string;
name: string;
appUrl: string;
qrCodeUrl: string;
logoUrl?: string;
};
type GetPhoneNumberReturns = {
number?: string;
token?: string;
};
type OpenProfilePickerReturns = {
users: {
id: string;
profile: {
name: string;
avatar: string;
};
code: number;
message: string;
}[];
};
type OpenMediaPickerReturns = {
data: string;
};
/**
* Context info
*/
type ContextInfo = {
type?: string;
id?: string;
};
type GetAuthCodeReturns = {
authCode: string;
authCodeVerify: string;
};
type GetZPITokenReturns = {
utoken: string;
gtoken: string;
zpp: string;
zpt: string;
};
type ChooseImageReturns = {
filePaths: Array<string>;
tempFiles: Array<{
path: string;
size: number;
}>;
};
type CreateOrderReturns = {
orderId: string;
messageToken?: string;
transId?: string;
};
type SelectPaymentMethodReturns = {
method: string;
isCustom?: boolean;
displayName?: string;
subMethod?: string;
logo?: string;
};
type CheckTransactionReturns = {
err: number;
msg: string;
orderId: string;
transId: string;
resultCode: number;
transTime: string;
createdAt: string;
path?: string;
method: string;
isCustom: boolean;
};
type CreateOrderIAPReturns = {
orderId: string;
};
type ScopeValues = (typeof AUTHEN_SCOPE_VALUES)[number] | (typeof GET_SETTINGS_SCOPE_VALUES)[number];
type AuthorizeType<T extends ScopeValues> = Partial<{
[key in T]: boolean;
}>;
type GetSettingReturn = {
authSetting: AuthorizeType<(typeof GET_SETTINGS_SCOPE_VALUES)[number]>;
};
declare enum CameraEvents {
OnFrameCallback = "h5.event.camera.frame",
OnStartCallback = "h5.event.camera.start",
OnStopCallback = "h5.event.camera.stop"
}
declare enum FacingMode {
FRONT = "user",
BACK = "environment"
}
declare enum PhotoFormat {
WEBP = "image/webp",
PNG = "image/png",
JPEG = "image/jpeg"
}
declare enum PhotoQuality {
HIGH = "high",
NORMAL = "normal",
LOW = "low"
}
declare enum StreamType {
VIDEO = "video",
AUDIO = "audio"
}
type PhotoFrame = {
data: string;
width: number;
height: number;
};
type MediaDevice = {
kind: string;
label: string;
deviceId: string;
};
type MediaConstraints = {
width?: number;
height?: number;
facingMode?: FacingMode;
deviceId?: string;
audio?: boolean;
video?: boolean;
mirrored?: boolean;
};
type PhotoConstraint = {
width?: number;
height?: number;
format?: PhotoFormat;
quality?: PhotoQuality;
mirrored?: boolean;
useVideoSourceSize?: boolean;
minScreenshotWidth?: number;
minScreenshotHeight?: number;
};
declare function login(args?: AsyncCallback<string>): Promise<string>;
declare function getAccessToken(args?: AsyncCallback<string>): Promise<string>;
declare function getVersion(): string;
declare function getSystemInfo(): SystemInfo;
declare type Primitive = string | number | symbol | bigint | boolean | null | undefined;
declare namespace util {
type AssertEqual<T, U> = (<V>() => V extends T ? 1 : 2) extends <V>() => V extends U ? 1 : 2 ? true : false;
export const assertEqual: <A, B>(val: AssertEqual<A, B>) => AssertEqual<A, B>;
export function assertIs<T>(_arg: T): void;
export function assertNever(_x: never): never;
export type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>;
export type OmitKeys<T, K extends string> = Pick<T, Exclude<keyof T, K>>;
export type MakePartial<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
export const arrayToEnum: <T extends string, U extends [T, ...T[]]>(items: U) => { [k in U[number]]: k; };
export const getValidEnumValues: (obj: any) => any[];
export const objectValues: (obj: any) => any[];
export const objectKeys: ObjectConstructor["keys"];
export const find: <T>(arr: T[], checker: (arg: T) => any) => T | undefined;
export type identity<T> = T;
export type flatten<T> = identity<{
[k in keyof T]: T[k];
}>;
export type noUndefined<T> = T extends undefined ? never : T;
export const isInteger: NumberConstructor["isInteger"];
export function joinValues<T extends any[]>(array: T, separator?: string): string;
export const jsonStringifyReplacer: (_: string, value: any) => any;
export {};
}
declare const ZodParsedType: {
function: "function";
number: "number";
string: "string";
nan: "nan";
integer: "integer";
float: "float";
boolean: "boolean";
date: "date";
bigint: "bigint";
symbol: "symbol";
undefined: "undefined";
null: "null";
array: "array";
object: "object";
unknown: "unknown";
promise: "promise";
void: "void";
never: "never";
map: "map";
set: "set";
};
declare type ZodParsedType = keyof typeof ZodParsedType;
declare type allKeys<T> = T extends any ? keyof T : never;
declare type typeToFlattenedError<T, U = string> = {
formErrors: U[];
fieldErrors: {
[P in allKeys<T>]?: U[];
};
};
declare const ZodIssueCode: {
invalid_type: "invalid_type";
invalid_literal: "invalid_literal";
custom: "custom";
invalid_union: "invalid_union";
invalid_union_discriminator: "invalid_union_discriminator";
invalid_enum_value: "invalid_enum_value";
unrecognized_keys: "unrecognized_keys";
invalid_arguments: "invalid_arguments";
invalid_return_type: "invalid_return_type";
invalid_date: "invalid_date";
invalid_string: "invalid_string";
too_small: "too_small";
too_big: "too_big";
invalid_intersection_types: "invalid_intersection_types";
not_multiple_of: "not_multiple_of";
not_finite: "not_finite";
};
declare type ZodIssueCode = keyof typeof ZodIssueCode;
declare type ZodIssueBase = {
path: (string | number)[];
message?: string;
};
interface ZodInvalidTypeIssue extends ZodIssueBase {
code: typeof ZodIssueCode.invalid_type;
expected: ZodParsedType;
received: ZodParsedType;
}
interface ZodInvalidLiteralIssue extends ZodIssueBase {
code: typeof ZodIssueCode.invalid_literal;
expected: unknown;
received: unknown;
}
interface ZodUnrecognizedKeysIssue extends ZodIssueBase {
code: typeof ZodIssueCode.unrecognized_keys;
keys: string[];
}
interface ZodInvalidUnionIssue extends ZodIssueBase {
code: typeof ZodIssueCode.invalid_union;
unionErrors: ZodError[];
}
interface ZodInvalidUnionDiscriminatorIssue extends ZodIssueBase {
code: typeof ZodIssueCode.invalid_union_discriminator;
options: Primitive[];
}
interface ZodInvalidEnumValueIssue extends ZodIssueBase {
received: string | number;
code: typeof ZodIssueCode.invalid_enum_value;
options: (string | number)[];
}
interface ZodInvalidArgumentsIssue extends ZodIssueBase {
code: typeof ZodIssueCode.invalid_arguments;
argumentsError: ZodError;
}
interface ZodInvalidReturnTypeIssue extends ZodIssueBase {
code: typeof ZodIssueCode.invalid_return_type;
returnTypeError: ZodError;
}
interface ZodInvalidDateIssue extends ZodIssueBase {
code: typeof ZodIssueCode.invalid_date;
}
declare type StringValidation = "email" | "url" | "uuid" | "regex" | "cuid" | "cuid2" | "datetime" | {
startsWith: string;
} | {
endsWith: string;
};
interface ZodInvalidStringIssue extends ZodIssueBase {
code: typeof ZodIssueCode.invalid_string;
validation: StringValidation;
}
interface ZodTooSmallIssue extends ZodIssueBase {
code: typeof ZodIssueCode.too_small;
minimum: number;
inclusive: boolean;
exact?: boolean;
type: "array" | "string" | "number" | "set" | "date";
}
interface ZodTooBigIssue extends ZodIssueBase {
code: typeof ZodIssueCode.too_big;
maximum: number;
inclusive: boolean;
exact?: boolean;
type: "array" | "string" | "number" | "set" | "date";
}
interface ZodInvalidIntersectionTypesIssue extends ZodIssueBase {
code: typeof ZodIssueCode.invalid_intersection_types;
}
interface ZodNotMultipleOfIssue extends ZodIssueBase {
code: typeof ZodIssueCode.not_multiple_of;
multipleOf: number;
}
interface ZodNotFiniteIssue extends ZodIssueBase {
code: typeof ZodIssueCode.not_finite;
}
interface ZodCustomIssue extends ZodIssueBase {
code: typeof ZodIssueCode.custom;
params?: {
[k: string]: any;
};
}
declare type ZodIssueOptionalMessage = ZodInvalidTypeIssue | ZodInvalidLiteralIssue | ZodUnrecognizedKeysIssue | ZodInvalidUnionIssue | ZodInvalidUnionDiscriminatorIssue | ZodInvalidEnumValueIssue | ZodInvalidArgumentsIssue | ZodInvalidReturnTypeIssue | ZodInvalidDateIssue | ZodInvalidStringIssue | ZodTooSmallIssue | ZodTooBigIssue | ZodInvalidIntersectionTypesIssue | ZodNotMultipleOfIssue | ZodNotFiniteIssue | ZodCustomIssue;
declare type ZodIssue = ZodIssueOptionalMessage & {
fatal?: boolean;
message: string;
};
declare type ZodFormattedError<T, U = string> = {
_errors: U[];
} & (NonNullable<T> extends [any, ...any[]] ? {
[K in keyof NonNullable<T>]?: ZodFormattedError<NonNullable<T>[K], U>;
} : NonNullable<T> extends any[] ? {
[k: number]: ZodFormattedError<NonNullable<T>[number], U>;
} : NonNullable<T> extends object ? {
[K in keyof NonNullable<T>]?: ZodFormattedError<NonNullable<T>[K], U>;
} : unknown);
declare class ZodError<T = any> extends Error {
issues: ZodIssue[];
get errors(): ZodIssue[];
constructor(issues: ZodIssue[]);
format(): ZodFormattedError<T>;
format<U>(mapper: (issue: ZodIssue) => U): ZodFormattedError<T, U>;
static create: (issues: ZodIssue[]) => ZodError<any>;
toString(): string;
get message(): string;
get isEmpty(): boolean;
addIssue: (sub: ZodIssue) => void;
addIssues: (subs?: ZodIssue[]) => void;
flatten(): typeToFlattenedError<T>;
flatten<U>(mapper?: (issue: ZodIssue) => U): typeToFlattenedError<T, U>;
get formErrors(): typeToFlattenedError<T, string>;
}
declare type stripPath<T extends object> = T extends any ? util.OmitKeys<T, "path"> : never;
declare type IssueData = stripPath<ZodIssueOptionalMessage> & {
path?: (string | number)[];
fatal?: boolean;
};
declare type ErrorMapCtx = {
defaultError: string;
data: any;
};
declare type ZodErrorMap = (issue: ZodIssueOptionalMessage, _ctx: ErrorMapCtx) => {
message: string;
};
declare type ParseParams = {
path: (string | number)[];
errorMap: ZodErrorMap;
async: boolean;
};
declare type ParsePathComponent = string | number;
declare type ParsePath = ParsePathComponent[];
interface ParseContext {
readonly common: {
readonly issues: ZodIssue[];
readonly contextualErrorMap?: ZodErrorMap;
readonly async: boolean;
};
readonly path: ParsePath;
readonly schemaErrorMap?: ZodErrorMap;
readonly parent: ParseContext | null;
readonly data: any;
readonly parsedType: ZodParsedType;
}
declare type ParseInput = {
data: any;
path: (string | number)[];
parent: ParseContext;
};
declare class ParseStatus {
value: "aborted" | "dirty" | "valid";
dirty(): void;
abort(): void;
static mergeArray(status: ParseStatus, results: SyncParseReturnType<any>[]): SyncParseReturnType;
static mergeObjectAsync(status: ParseStatus, pairs: {
key: ParseReturnType<any>;
value: ParseReturnType<any>;
}[]): Promise<SyncParseReturnType<any>>;
static mergeObjectSync(status: ParseStatus, pairs: {
key: SyncParseReturnType<any>;
value: SyncParseReturnType<any>;
alwaysSet?: boolean;
}[]): SyncParseReturnType;
}
declare type INVALID = {
status: "aborted";
};
declare const INVALID: INVALID;
declare type DIRTY<T> = {
status: "dirty";
value: T;
};
declare const DIRTY: <T>(value: T) => DIRTY<T>;
declare type OK<T> = {
status: "valid";
value: T;
};
declare const OK: <T>(value: T) => OK<T>;
declare type SyncParseReturnType<T = any> = OK<T> | DIRTY<T> | INVALID;
declare type AsyncParseReturnType<T> = Promise<SyncParseReturnType<T>>;
declare type ParseReturnType<T> = SyncParseReturnType<T> | AsyncParseReturnType<T>;
declare namespace enumUtil {
type UnionToIntersectionFn<T> = (T extends unknown ? (k: () => T) => void : never) extends (k: infer Intersection) => void ? Intersection : never;
type GetUnionLast<T> = UnionToIntersectionFn<T> extends () => infer Last ? Last : never;
type UnionToTuple<T, Tuple extends unknown[] = []> = [T] extends [never] ? Tuple : UnionToTuple<Exclude<T, GetUnionLast<T>>, [GetUnionLast<T>, ...Tuple]>;
type CastToStringTuple<T> = T extends [string, ...string[]] ? T : never;
export type UnionToTupleString<T> = CastToStringTuple<UnionToTuple<T>>;
export {};
}
declare namespace errorUtil {
type ErrMessage = string | {
message?: string;
};
const errToObj: (message?: ErrMessage | undefined) => {
message?: string | undefined;
};
const toString: (message?: ErrMessage | undefined) => string | undefined;
}
declare namespace partialUtil {
type DeepPartial<T extends ZodTypeAny> = T extends ZodObject<infer Shape, infer Params, infer Catchall> ? ZodObject<{
[k in keyof Shape]: ZodOptional<DeepPartial<Shape[k]>>;
}, Params, Catchall> : T extends ZodArray<infer Type, infer Card> ? ZodArray<DeepPartial<Type>, Card> : T extends ZodOptional<infer Type> ? ZodOptional<DeepPartial<Type>> : T extends ZodNullable<infer Type> ? ZodNullable<DeepPartial<Type>> : T extends ZodTuple<infer Items> ? {
[k in keyof Items]: Items[k] extends ZodTypeAny ? DeepPartial<Items[k]> : never;
} extends infer PI ? PI extends ZodTupleItems ? ZodTuple<PI> : never : never : T;
}
declare type RefinementCtx = {
addIssue: (arg: IssueData) => void;
path: (string | number)[];
};
declare type ZodRawShape = {
[k: string]: ZodTypeAny;
};
declare type ZodTypeAny = ZodType<any, any, any>;
declare type TypeOf<T extends ZodType<any, any, any>> = T["_output"];
declare type input<T extends ZodType<any, any, any>> = T["_input"];
declare type output<T extends ZodType<any, any, any>> = T["_output"];
declare type CustomErrorParams = Partial<util.Omit<ZodCustomIssue, "code">>;
interface ZodTypeDef {
errorMap?: ZodErrorMap;
description?: string;
}
declare type RawCreateParams = {
errorMap?: ZodErrorMap;
invalid_type_error?: string;
required_error?: string;
description?: string;
} | undefined;
declare type SafeParseSuccess<Output> = {
success: true;
data: Output;
};
declare type SafeParseError<Input> = {
success: false;
error: ZodError<Input>;
};
declare type SafeParseReturnType<Input, Output> = SafeParseSuccess<Output> | SafeParseError<Input>;
declare abstract class ZodType<Output = any, Def extends ZodTypeDef = ZodTypeDef, Input = Output> {
readonly _type: Output;
readonly _output: Output;
readonly _input: Input;
readonly _def: Def;
get description(): string | undefined;
abstract _parse(input: ParseInput): ParseReturnType<Output>;
_getType(input: ParseInput): string;
_getOrReturnCtx(input: ParseInput, ctx?: ParseContext | undefined): ParseContext;
_processInputParams(input: ParseInput): {
status: ParseStatus;
ctx: ParseContext;
};
_parseSync(input: ParseInput): SyncParseReturnType<Output>;
_parseAsync(input: ParseInput): AsyncParseReturnType<Output>;
parse(data: unknown, params?: Partial<ParseParams>): Output;
safeParse(data: unknown, params?: Partial<ParseParams>): SafeParseReturnType<Input, Output>;
parseAsync(data: unknown, params?: Partial<ParseParams>): Promise<Output>;
safeParseAsync(data: unknown, params?: Partial<ParseParams>): Promise<SafeParseReturnType<Input, Output>>;
/** Alias of safeParseAsync */
spa: (data: unknown, params?: Partial<ParseParams> | undefined) => Promise<SafeParseReturnType<Input, Output>>;
refine<RefinedOutput extends Output>(check: (arg: Output) => arg is RefinedOutput, message?: string | CustomErrorParams | ((arg: Output) => CustomErrorParams)): ZodEffects<this, RefinedOutput, Input>;
refine(check: (arg: Output) => unknown | Promise<unknown>, message?: string | CustomErrorParams | ((arg: Output) => CustomErrorParams)): ZodEffects<this, Output, Input>;
refinement<RefinedOutput extends Output>(check: (arg: Output) => arg is RefinedOutput, refinementData: IssueData | ((arg: Output, ctx: RefinementCtx) => IssueData)): ZodEffects<this, RefinedOutput, Input>;
refinement(check: (arg: Output) => boolean, refinementData: IssueData | ((arg: Output, ctx: RefinementCtx) => IssueData)): ZodEffects<this, Output, Input>;
_refinement(refinement: RefinementEffect<Output>["refinement"]): ZodEffects<this, Output, Input>;
superRefine<RefinedOutput extends Output>(refinement: (arg: Output, ctx: RefinementCtx) => arg is RefinedOutput): ZodEffects<this, RefinedOutput, Input>;
superRefine(refinement: (arg: Output, ctx: RefinementCtx) => void): ZodEffects<this, Output, Input>;
constructor(def: Def);
optional(): ZodOptional<this>;
nullable(): ZodNullable<this>;
nullish(): ZodOptional<ZodNullable<this>>;
array(): ZodArray<this>;
promise(): ZodPromise<this>;
or<T extends ZodTypeAny>(option: T): ZodUnion<[this, T]>;
and<T extends ZodTypeAny>(incoming: T): ZodIntersection<this, T>;
transform<NewOut>(transform: (arg: Output, ctx: RefinementCtx) => NewOut | Promise<NewOut>): ZodEffects<this, NewOut>;
default(def: util.noUndefined<Input>): ZodDefault<this>;
default(def: () => util.noUndefined<Input>): ZodDefault<this>;
brand<B extends string | number | symbol>(brand?: B): ZodBranded<this, B>;
catch(def: Output): ZodCatch<this>;
catch(def: () => Output): ZodCatch<this>;
describe(description: string): this;
pipe<T extends ZodTypeAny>(target: T): ZodPipeline<this, T>;
isOptional(): boolean;
isNullable(): boolean;
}
declare type ZodStringCheck = {
kind: "min";
value: number;
message?: string;
} | {
kind: "max";
value: number;
message?: string;
} | {
kind: "length";
value: number;
message?: string;
} | {
kind: "email";
message?: string;
} | {
kind: "url";
message?: string;
} | {
kind: "uuid";
message?: string;
} | {
kind: "cuid";
message?: string;
} | {
kind: "cuid2";
message?: string;
} | {
kind: "startsWith";
value: string;
message?: string;
} | {
kind: "endsWith";
value: string;
message?: string;
} | {
kind: "regex";
regex: RegExp;
message?: string;
} | {
kind: "trim";
message?: string;
} | {
kind: "datetime";
offset: boolean;
precision: number | null;
message?: string;
};
interface ZodStringDef extends ZodTypeDef {
checks: ZodStringCheck[];
typeName: ZodFirstPartyTypeKind.ZodString;
coerce: boolean;
}
declare class ZodString extends ZodType<string, ZodStringDef> {
_parse(input: ParseInput): ParseReturnType<string>;
protected _regex: (regex: RegExp, validation: StringValidation, message?: errorUtil.ErrMessage | undefined) => ZodEffects<this, string, string>;
_addCheck(check: ZodStringCheck): ZodString;
email(message?: errorUtil.ErrMessage): ZodString;
url(message?: errorUtil.ErrMessage): ZodString;
uuid(message?: errorUtil.ErrMessage): ZodString;
cuid(message?: errorUtil.ErrMessage): ZodString;
cuid2(message?: errorUtil.ErrMessage): ZodString;
datetime(options?: string | {
message?: string | undefined;
precision?: number | null;
offset?: boolean;
}): ZodString;
regex(regex: RegExp, message?: errorUtil.ErrMessage): ZodString;
startsWith(value: string, message?: errorUtil.ErrMessage): ZodString;
endsWith(value: string, message?: errorUtil.ErrMessage): ZodString;
min(minLength: number, message?: errorUtil.ErrMessage): ZodString;
max(maxLength: number, message?: errorUtil.ErrMessage): ZodString;
length(len: number, message?: errorUtil.ErrMessage): ZodString;
/**
* @deprecated Use z.string().min(1) instead.
* @see {@link ZodString.min}
*/
nonempty: (message?: errorUtil.ErrMessage | undefined) => ZodString;
trim: () => ZodString;
get isDatetime(): boolean;
get isEmail(): boolean;
get isURL(): boolean;
get isUUID(): boolean;
get isCUID(): boolean;
get isCUID2(): boolean;
get minLength(): number | null;
get maxLength(): number | null;
static create: (params?: ({
errorMap?: ZodErrorMap | undefined;
invalid_type_error?: string | undefined;
required_error?: string | undefined;
description?: string | undefined;
} & {
coerce?: true | undefined;
}) | undefined) => ZodString;
}
declare type ZodNumberCheck = {
kind: "min";
value: number;
inclusive: boolean;
message?: string;
} | {
kind: "max";
value: number;
inclusive: boolean;
message?: string;
} | {
kind: "int";
message?: string;
} | {
kind: "multipleOf";
value: number;
message?: string;
} | {
kind: "finite";
message?: string;
};
interface ZodNumberDef extends ZodTypeDef {
checks: ZodNumberCheck[];
typeName: ZodFirstPartyTypeKind.ZodNumber;
coerce: boolean;
}
declare class ZodNumber extends ZodType<number, ZodNumberDef> {
_parse(input: ParseInput): ParseReturnType<number>;
static create: (params?: ({
errorMap?: ZodErrorMap | undefined;
invalid_type_error?: string | undefined;
required_error?: string | undefined;
description?: string | undefined;
} & {
coerce?: boolean | undefined;
}) | undefined) => ZodNumber;
gte(value: number, message?: errorUtil.ErrMessage): ZodNumber;
min: (value: number, message?: errorUtil.ErrMessage | undefined) => ZodNumber;
gt(value: number, message?: errorUtil.ErrMessage): ZodNumber;
lte(value: number, message?: errorUtil.ErrMessage): ZodNumber;
max: (value: number, message?: errorUtil.ErrMessage | undefined) => ZodNumber;
lt(value: number, message?: errorUtil.ErrMessage): ZodNumber;
protected setLimit(kind: "min" | "max", value: number, inclusive: boolean, message?: string): ZodNumber;
_addCheck(check: ZodNumberCheck): ZodNumber;
int(message?: errorUtil.ErrMessage): ZodNumber;
positive(message?: errorUtil.ErrMessage): ZodNumber;
negative(message?: errorUtil.ErrMessage): ZodNumber;
nonpositive(message?: errorUtil.ErrMessage): ZodNumber;
nonnegative(message?: errorUtil.ErrMessage): ZodNumber;
multipleOf(value: number, message?: errorUtil.ErrMessage): ZodNumber;
finite(message?: errorUtil.ErrMessage): ZodNumber;
step: (value: number, message?: errorUtil.ErrMessage | undefined) => ZodNumber;
get minValue(): number | null;
get maxValue(): number | null;
get isInt(): boolean;
get isFinite(): boolean;
}
interface ZodBooleanDef extends ZodTypeDef {
typeName: ZodFirstPartyTypeKind.ZodBoolean;
coerce: boolean;
}
declare class ZodBoolean extends ZodType<boolean, ZodBooleanDef> {
_parse(input: ParseInput): ParseReturnType<boolean>;
static create: (params?: ({
errorMap?: ZodErrorMap | undefined;
invalid_type_error?: string | undefined;
required_error?: string | undefined;
description?: string | undefined;
} & {
coerce?: boolean | undefined;
}) | undefined) => ZodBoolean;
}
interface ZodAnyDef extends ZodTypeDef {
typeName: ZodFirstPartyTypeKind.ZodAny;
}
declare class ZodAny extends ZodType<any, ZodAnyDef> {
_any: true;
_parse(input: ParseInput): ParseReturnType<this["_output"]>;
static create: (params?: RawCreateParams) => ZodAny;
}
interface ZodUnknownDef extends ZodTypeDef {
typeName: ZodFirstPartyTypeKind.ZodUnknown;
}
declare class ZodUnknown extends ZodType<unknown, ZodUnknownDef> {
_unknown: true;
_parse(input: ParseInput): ParseReturnType<this["_output"]>;
static create: (params?: RawCreateParams) => ZodUnknown;
}
interface ZodVoidDef extends ZodTypeDef {
typeName: ZodFirstPartyTypeKind.ZodVoid;
}
declare class ZodVoid extends ZodType<void, ZodVoidDef> {
_parse(input: ParseInput): ParseReturnType<this["_output"]>;
static create: (params?: RawCreateParams) => ZodVoid;
}
interface ZodArrayDef<T extends ZodTypeAny = ZodTypeAny> extends ZodTypeDef {
type: T;
typeName: ZodFirstPartyTypeKind.ZodArray;
exactLength: {
value: number;
message?: string;
} | null;
minLength: {
value: number;
message?: string;
} | null;
maxLength: {
value: number;
message?: string;
} | null;
}
declare type ArrayCardinality = "many" | "atleastone";
declare type arrayOutputType<T extends ZodTypeAny, Cardinality extends ArrayCardinality = "many"> = Cardinality extends "atleastone" ? [T["_output"], ...T["_output"][]] : T["_output"][];
declare class ZodArray<T extends ZodTypeAny, Cardinality extends ArrayCardinality = "many"> extends ZodType<arrayOutputType<T, Cardinality>, ZodArrayDef<T>, Cardinality extends "atleastone" ? [T["_input"], ...T["_input"][]] : T["_input"][]> {
_parse(input: ParseInput): ParseReturnType<this["_output"]>;
get element(): T;
min(minLength: number, message?: error