@gala-chain/launchpad-sdk
Version:
TypeScript SDK for Gala Launchpad Backend API - Production-ready DeFi token launchpad integration with wallet-based authentication, GalaChain trading, and comprehensive user operations. 100% tested (22/22 endpoints working).
83 lines • 3.05 kB
TypeScript
/**
* File Upload Zod Schemas
*
* Validation schemas for file uploads (images, documents).
* Replaces manual FILE_UPLOAD_CONSTRAINTS with type-safe Zod schemas.
*/
import { z } from 'zod';
/**
* Allowed image file extensions
*/
export declare const IMAGE_EXTENSIONS: readonly [".png", ".jpg", ".jpeg", ".gif", ".webp", ".svg"];
/**
* File upload validation schema
* Validates file size, type, and filename
*/
export declare const fileUploadSchema: z.ZodObject<{
/** File object (browser File or Node.js Buffer) */
file: z.ZodUnion<[z.ZodType<File, z.ZodTypeDef, File>, z.ZodType<Buffer<ArrayBufferLike>, z.ZodTypeDef, Buffer<ArrayBufferLike>>]>;
/** Filename with extension */
name: z.ZodString;
/** File size in bytes */
size: z.ZodNumber;
/** MIME type for image files */
type: z.ZodEnum<["image/png", "image/jpg", "image/jpeg", "image/gif", "image/webp", "image/svg+xml"]>;
}, "strip", z.ZodTypeAny, {
type: "image/png" | "image/jpg" | "image/jpeg" | "image/gif" | "image/webp" | "image/svg+xml";
name: string;
file: File | Buffer<ArrayBufferLike>;
size: number;
}, {
type: "image/png" | "image/jpg" | "image/jpeg" | "image/gif" | "image/webp" | "image/svg+xml";
name: string;
file: File | Buffer<ArrayBufferLike>;
size: number;
}>;
/**
* Browser File object validation
* For client-side file uploads
*/
export declare const browserFileSchema: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodType<File, z.ZodTypeDef, File>, File, File>, File, File>, File, File>;
/**
* Node.js Buffer validation
* For server-side file uploads
*/
export declare const bufferFileSchema: z.ZodEffects<z.ZodType<Buffer<ArrayBufferLike>, z.ZodTypeDef, Buffer<ArrayBufferLike>>, Buffer<ArrayBufferLike>, Buffer<ArrayBufferLike>>;
/**
* Flexible file schema - accepts both File and Buffer
*/
export declare const flexibleFileSchema: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodType<File, z.ZodTypeDef, File>, File, File>, File, File>, File, File>, z.ZodEffects<z.ZodType<Buffer<ArrayBufferLike>, z.ZodTypeDef, Buffer<ArrayBufferLike>>, Buffer<ArrayBufferLike>, Buffer<ArrayBufferLike>>]>;
/**
* Image extension schema
*/
export declare const imageExtensionSchema: z.ZodEnum<[".png", ".jpg", ".jpeg", ".gif", ".webp", ".svg"]>;
/**
* Validate filename has allowed image extension
*/
export declare const imageFilenameSchema: z.ZodEffects<z.ZodString, string, string>;
/**
* Type for file upload objects with file, name, size, and type properties
*/
export type FileUpload = {
file: File | Buffer;
name: string;
size: number;
type: string;
};
/**
* Type for browser File objects
*/
export type BrowserFile = File;
/**
* Type for Node.js Buffer objects used as files
*/
export type BufferFile = Buffer;
/**
* Type for flexible file objects (either File or Buffer)
*/
export type FlexibleFile = File | Buffer;
/**
* Type for allowed image extensions
*/
export type ImageExtension = z.infer<typeof imageExtensionSchema>;
//# sourceMappingURL=files.d.ts.map