UNPKG

filestack-js

Version:

Official JavaScript library for Filestack

1,648 lines 75.1 kB
export declare enum Align { left = "left", right = "right", center = "center", bottom = "bottom", top = "top", faces = "faces", middle = "middle" } /** * Align */ export type AlignOptions = Align | [Align.top | Align.middle | Align.bottom, Align.left | Align.center | Align.right]; /** * Fit enum */ export declare enum FitOptions { clip = "clip", crop = "crop", scale = "scale", max = "max" } /** * Blur enum */ export declare enum BlurMode { linear = "linear", gaussian = "gaussian" } /** * Shapes enum */ export declare enum ShapeType { oval = "oval", rect = "rect" } /** * Noise type enum */ export declare enum NoiseType { none = "none", low = "low", medium = "medium", high = "high" } /** * Style type enum */ export declare enum StyleType { artwork = "artwork", photo = "photo" } /** * Color space enum */ export declare enum ColorspaceType { RGB = "RGB", CMYK = "CMYK", Input = "Input" } /** * Crop faces options enum */ export declare enum CropfacesType { thumb = "thumb", crop = "crop", fill = "fill" } /** * Watermark postion options enum */ export declare enum ImageWatermarkPosition { top = "top", middle = "middle", bottom = "bottom", left = "left", center = "center", right = "right" } /** * SmartCrop options enum */ export declare enum SmartCropMode { face = "face", auto = "auto" } /** * Convert to format */ export declare enum AudioTypes { libmp3lame = "libmp3lame", libvorbis = "libvorbis", libfdk_aac = "libfdk_aac", dib_ac3 = "dib_ac3", pcm_s16le = "pcm_s16le", mp2 = "mp2", ac3 = "ac3", eac3 = "eac3" } /** * Convert to format */ export declare enum VideoTypes { h264 = "h264", h264_hi = "h264.hi", webm = "webm", 'webm-hi' = "webm.hi", ogg = "ogg", 'ogg-hi' = "ogg.hi", 'hls-variant' = "hls.variant", mp3 = "mp3", oga = "oga", m4a = "m4a", aac = "aac", hls = "hls.variant.audio" } export declare enum URLScreenshotAgent { desktop = "desktop", mobile = "mobile" } export declare enum URLScreenshotMode { all = "all", window = "window" } export declare enum URLScreenshotOrientation { portrait = "portrait", landscape = "landscape" } /** * Video storage location */ export declare enum Locations { s3 = "s3", azure = "azure", gcs = "gcs", rackspace = "rackspace", dropbox = "dropbox" } export declare enum VideoAccess { private = "private", public = "public" } export declare enum VideoAccessMode { preserve = "preserve", constrain = "constrain", letterbox = "letterbox", pad = "pad", crop = "crop" } export interface StoreBaseParams { location?: string; path?: string; container?: string; region?: string; access?: string; disableStorageKey?: boolean; } /** * Available options for store transformations * * @export * @interface StoreParams */ export type StoreParams = StoreBaseParams & { filename?: string; base64decode?: boolean; }; export interface AnimationParams { delay?: number; loop?: number; width?: number; height?: number; fit?: FitOptions; align?: AlignOptions; background?: string; } export interface ResizeParams { width?: number; height?: number; fit?: FitOptions; align?: AlignOptions; } export interface CropParams { dim: [number, number, number, number]; } export interface RotateParams { deg: number | string; color?: string; background?: string; } export interface DetectFacesParams { minsize?: number; maxsize?: number; color?: string; export?: boolean; } export interface CropFacesParams { mode?: CropfacesType; width?: number; height?: number; faces?: number | string; buffer?: number; } export interface PixelateFacesParams { faces?: number | string; minsize?: number; maxsize?: number; buffer?: number; amount?: number; blur?: number; type?: ShapeType; } export interface BlurFacesParams { faces?: number | string; minsize?: number; maxsize?: number; buffer?: number; amount?: number; blur?: number; type?: ShapeType; } export interface RoundedCornersParams { radius?: number; blur?: number; background?: string; } export interface VignetteParams { amount?: number; blurmode?: BlurMode; background?: string; } export interface PolaroidParams { color?: string; rotate?: number; background?: string; } export interface TornEdgesParams { spread?: [number, number]; background?: string; } export interface ShadowParams { blur?: number; opacity?: number; vector?: [number, number]; color?: string; background?: string; } export interface CircleParams { background?: string; } export interface BorderParams { width?: number; color?: string; background?: string; } export interface CompressParams { metadata?: boolean; } export interface WatermarkParams { file: string; size?: number; position?: ImageWatermarkPosition | ImageWatermarkPosition[]; } export interface ProgressiveJpgParams { quality: number; metadata: boolean; } export interface SmartCropParams { mode: SmartCropMode; width: number; height: number; } export interface SharpenParams { amount: number; } export interface BlurParams { amount: number; } export interface BlackwhiteParams { threshold: number; } export interface SepiaParams { tone: number; } export interface PixelateParams { amount: number; } export interface OilPaintParams { amount: number; } export interface ModulateParams { brightness?: number; hue?: number; saturation?: number; } export interface PartialPixelateParams { amount?: number; blur?: number; type?: ShapeType; objects?: [[number, number, number, number]]; } export interface PartialBlurParams { amount: number; blur?: number; type?: ShapeType; objects?: [[number, number, number, number]]; } export interface CollageParams { margin?: number; width?: number; height?: number; color?: string; fit?: FitOptions; files: [string]; } export interface UpscaleParams { upscale?: boolean; noise?: NoiseType; style?: StyleType; } export interface AsciiParams { background?: string; foreground?: string; colored?: boolean; size?: number; reverse?: boolean; } export interface QualityParams { value: number; } export interface SecurityParams { policy: string; signature?: string; } export interface OutputParams { format: string; colorspace?: string; strip?: boolean; quality?: number; page?: number; compress?: boolean; density?: number; background?: string; secure?: boolean; docinfo?: boolean; pageformat?: string; pageorientation?: string; } export interface CacheParams { cache?: boolean; expiry: number; } export interface VideoConvertParams { aspect_mode: VideoAccessMode; preset?: VideoTypes; force?: boolean; title?: string; extname?: string; filename?: string; location?: Locations; path?: string; access?: VideoAccess; container?: string; audio_bitrate?: number; audio_codec?: AudioTypes; upscale: boolean; video_bitrate?: number; audio_sample_rate?: number; audio_channels?: number; clip_length?: string; clip_offset?: string; width?: number; height?: number; two_pass?: boolean; fps?: number; keyframe_interval?: number; watermark_url?: string; watermark_top?: number; watermark_bottom?: number; watermark_right?: number; watermark_left?: number; watermark_width?: number; watermark_height?: number; } export interface URLScreenshotParams { agent?: URLScreenshotAgent; width?: number; height?: number; mode?: URLScreenshotMode; delay?: number; orientation?: URLScreenshotOrientation; device?: string; } export declare enum EnhancePreset { auto = "auto", vivid = "vivid", beautify = "beautify", beautifyPlus = "beautify_plus", fixDark = "fix_dark", fixNoise = "fix_noise", fixTint = "fix_tint", outdor = "outdoor", fireworks = "fireworks" } export interface EnhanceParams { preset?: EnhancePreset; } export interface PdfInfoParams { colorinfo?: boolean; } export interface PdfConvertParams { pageorientation?: string; pageformat?: string; pages?: (string | number)[]; } export interface FallbackParams { handle: string; cache?: number; } export interface MinifyCssParams { gzip?: boolean; level?: number; } export interface MinifyJsParams { gzip?: boolean; use_babel_polyfill?: boolean; keep_fn_name?: boolean; keep_class_name?: boolean; mangle?: boolean; merge_vars?: boolean; remove_console?: boolean; remove_undefined?: boolean; targets?: null | string; } /** * Class for handling filelinks. For now its supports all filestack transforms. * It outputs transform url or array of transforms * @example * const link = new Filelink('handle or externalUrl', 'apikey'); * link.flip().flop().store(); * * console.log(link.toString()); * // enable base64 support * link.setBase64(true) * * console.log(link.toString()); * * @export * @class Filelink */ export declare class Filelink { /** * Validator instance * * @private * @memberof Filelink */ private static validator; /** * Applied transforms array * * @private * @memberof Filelink */ private transforms; /** * Handle or multiple handles in array * * @private * @memberof Filelink */ private source; /** * Application key * * @private * @type {string} * @memberof Filelink */ private apikey; /** * Is base64 support is enabled * * @private * @type {boolean} * @memberof Filelink */ private b64; /** * should use a validator to check params of every task * @private * @type {boolean} * @memberof Filelink */ private useValidator; /** * Custom CNAME * * @private * @type {string} * @memberof Filelink */ private cname; /** * Overwrite domain (test purposes) * * @private * @type {string} * @memberof Filelink */ private customDomain; /** * Class for generating tranformation urls * @param {(string | string[])} source - handle or multiple handles (i.e. for collage) * @param {string} [apikey] - your apikey - required for all external sources * * @memberof Filelink */ constructor(source: string | string[], apikey?: string); /** * Enable new base64 link support to avoid problems with special chars in link * * @param {boolean} flag * @returns * @memberof Filelink */ setBase64(flag: boolean): this; /** * Switch the useValidator flag * * @param {boolean} flag * @returns * @memberof Filelink */ setUseValidator(flag: boolean): this; /** * Set cname for transformation link * * @param {string} cname * @returns * @memberof Filelink */ setCname(cname: string): this; /** * Set custom domain. Used for test purpose. It will be removed when after client.transform * * @param {string} domain * @returns * @memberof Filelink */ setCustomDomain(domain: string): this; setSource(source: string | string[]): void; /** * Returns JSONSchema form transformations params * * @returns * @memberof Filelink */ getValidationSchema(): { $schema: string; title: string; description: string; type: string; additionalProperties: boolean; properties: { flip: { type: string; additionalProperties: boolean; }; auto_image: { type: string; additionalProperties: boolean; }; no_metadata: { type: string; additionalProperties: boolean; }; compress: { additionalProperties: boolean; oneOf: ({ type: string; properties?: undefined; } | { type: string; properties: { metadata: { type: string; default: boolean; }; }; })[]; }; flop: { type: string; additionalProperties: boolean; }; enhance: { default: boolean; oneOf: ({ type: string; additionalProperties?: undefined; properties?: undefined; } | { type: string; additionalProperties: boolean; properties: { preset: { type: string; enum: string[]; }; }; })[]; }; redeye: { type: string; additionalProperties: boolean; }; monochrome: { type: string; additionalProperties: boolean; /** * Watermark postion options enum */ }; negative: { type: string; additionalProperties: boolean; }; tags: { type: string; additionalProperties: boolean; }; sfw: { type: string; additionalProperties: boolean; }; imagesize: { type: string; additionalProperties: boolean; }; smart_crop: { width: { type: string; minimum: number; maximum: number; }; height: { type: string; minimum: number; maximum: number; }; mode: { type: string; default: string; enum: string[]; }; }; animate: { type: string; properties: { delay: { type: string; minimum: number; maximum: number; default: number; }; loop: { type: string; minimum: number; maximum: number; default: number; }; width: { type: string; minimum: number; maximum: number; }; height: { type: string; minimum: number; maximum: number; }; fit: { type: string; default: string; enum: string[]; }; background: { $ref: string; default: string; }; align: { $ref: string; default: string; }; }; }; metadata: { type: string; params: { type: string; items: { type: string; enum: string[]; }; minItems: number; uniqueItems: boolean; additionalItems: boolean; }; additionalProperties: boolean; }; resize: { type: string; properties: { width: { type: string; minimum: number; maximum: number; }; height: { type: string; minimum: number; maximum: number; }; fit: { type: string; enum: string[]; default: string; }; align: { $ref: string; default: string; }; }; additionalProperties: boolean; anyOf: { required: string[]; }[]; }; crop: { type: string; properties: { dim: { type: string; additionalItems: boolean; minItems: number; items: { type: string; minimum: number; maximum: number; }[]; }; }; required: string[]; }; rotate: { type: string; properties: { deg: { oneOf: ({ type: string; enum: string[]; minimum?: undefined; maximum?: undefined; } | { type: string; minimum: number; maximum: number; enum?: undefined; })[]; }; exif: { type: string; }; background: { $ref: string; default: string; }; }; additionalProperties: boolean; }; detect_faces: { oneOf: ({ type: string; properties?: undefined; additionalProperties?: undefined; } | { type: string; properties: { maxsize: { type: string; minimum: number; maximum: number; default: number; }; minsize: { type: string; minimum: number; maximum: number; default: number; }; export: { type: string; }; color: { $ref: string; default: string; }; }; additionalProperties: boolean; })[]; }; crop_faces: { oneOf: ({ type: string; properties?: undefined; additionalProperties?: undefined; } | { type: string; properties: { faces: { default: number; $ref: string; }; width: { type: string; minimum: number; maximum: number; }; height: { type: string; minimum: number; maximum: number; }; maxsize: { type: string; minimum: number; maximum: number; default: number; }; minsize: { type: string; minimum: number; maximum: number; default: number; }; buffer: { type: string; minimum: number; maximum: number; }; mode: { type: string; enum: string[]; default: string; }; }; additionalProperties: boolean; })[]; }; pixelate_faces: { oneOf: ({ type: string; properties?: undefined; additionalProperties?: undefined; } | { type: string; properties: { faces: { $ref: string; default: string; }; maxsize: { type: string; minimum: number; maximum: number; default: number; }; minsize: { type: string; minimum: number; maximum: number; default: number; }; buffer: { type: string; minimum: number; maximum: number; }; amount: { type: string; minimum: number; maximum: number; default: number; }; blur: { type: string; minimum: number; maximum: number; default: number; }; type: { type: string; enum: string[]; default: string; }; }; additionalProperties: boolean; })[]; }; blur_faces: { oneOf: ({ type: string; properties?: undefined; additionalProperties?: undefined; } | { type: string; properties: { faces: { $ref: string; default: string; }; maxsize: { type: string; minimum: number; maximum: number; default: number; }; minsize: { type: string; minimum: number; maximum: number; default: number; }; buffer: { type: string; minimum: number; maximum: number; }; amount: { type: string; minimum: number; maximum: number; default: number; }; blur: { type: string; minimum: number; maximum: number; default: number; }; type: { type: string; enum: string[]; default: string; }; }; additionalProperties: boolean; })[]; }; rounded_corners: { oneOf: ({ type: string; properties?: undefined; additionalProperties?: undefined; } | { type: string; properties: { radius: { oneOf: ({ type: string; minimum: number; maximum: number; enum?: undefined; } | { type: string; enum: string[]; minimum?: undefined; maximum?: undefined; })[]; }; blur: { type: string; minimum: number; maximum: number; default: number; }; background: { $ref: string; }; }; additionalProperties: boolean; })[]; }; vignette: { oneOf: ({ type: string; properties?: undefined; additionalProperties?: undefined; } | { type: string; properties: { amount: { type: string; minimum: number; maximum: number; default: number; }; blurmode: { type: string; enum: string[]; default: string; }; background: { $ref: string; }; }; additionalProperties: boolean; })[]; }; polaroid: { oneOf: ({ type: string; properties?: undefined; additionalProperties?: undefined; } | { type: string; properties: { /** * Overwrite domain (test purposes) * * @private * @type {string} * @memberof Filelink */ rotate: { type: string; minimum: number; maximum: number; }; color: { $ref: string; default: string; }; background: { $ref: string; }; }; additionalProperties: boolean; })[]; }; torn_edges: { oneOf: ({ type: string; properties?: undefined; additionalProperties?: undefined; } | { type: string; properties: { spread: { type: string; additionalItems: boolean; minItems: number; items: { type: string; minimum: number; maximum: number; default: number; }[]; }; background: { $ref: string; }; }; additionalProperties: boolean; })[]; }; shadow: { oneOf: ({ type: string; properties?: undefined; additionalProperties?: undefined; } | { type: string; properties: { blur: { type: string; minimum: number; maximum: number; default: number; }; opacity: { type: string; minimum: number; maximum: number; default: number; }; vector: { type: string; additionalItems: boolean; minItems: number; items: { type: string; minimum: number; maximum: number; default: number; }[]; }; color: { $ref: string; }; background: { $ref: string; }; }; additionalProperties: boolean; })[]; }; circle: { oneOf: ({ type: string; properties?: undefined; additionalProperties?: undefined; } | { type: string; properties: { background: { $ref: string; }; }; additionalProperties: boolean; })[]; }; border: { oneOf: ({ type: string; properties?: undefined; additionalProperties?: undefined; } | { type: string; properties: { color: { $ref: string; }; background: { $ref: string; }; width: { type: string; minimum: number; maximum: number; }; }; additionalProperties: boolean; })[]; }; sharpen: { oneOf: ({ type: string; properties?: undefined; additionalProperties?: undefined; } | { type: string; properties: { amount: { type: string; minimum: number; maximum: number; default: number; }; }; additionalProperties: boolean; })[]; }; blur: { oneOf: ({ type: string; properties?: undefined; additionalProperties?: undefined; } | { type: string; properties: { amount: { type: string; minimum: number; maximum: number; default: number; }; }; additionalProperties: boolean; })[]; }; blackwhite: { oneOf: ({ type: string; properties?: undefined; additionalProperties?: undefined; } | { type: string; properties: { threshold: { type: string; minimum: number; maximum: number; default: number; }; }; additionalProperties: boolean; })[]; }; sepia: { oneOf: ({ type: string; properties?: undefined; additionalProperties?: undefined; } | { type: string; properties: { tone: { type: string; minimum: number; maximum: number; default: number; }; }; additionalProperties: boolean; })[]; }; pixelate: { oneOf: ({ type: string; properties?: undefined; additionalProperties?: undefined; } | { type: string; properties: { amount: { type: string; minimum: number; maximum: number; default: number; }; }; additionalProperties: boolean; })[]; }; oil_paint: { oneOf: ({ type: string; properties?: undefined; additionalProperties?: undefined; } | { type: string; properties: { amount: { type: string; minimum: number; maximum: number; default: number; }; }; additionalProperties: boolean; })[]; }; modulate: { oneOf: ({ type: string; properties?: undefined; additionalProperties?: undefined; } | { type: string; properties: { brightness: { type: string; minimum: number; maximum: number; default: number; }; saturation: { type: string; minimum: number; maximum: number; default: number; }; hue: { type: string; minimum: number; maximum: number; default: number; }; }; additionalProperties: boolean; })[]; }; ascii: { oneOf: ({ type: string; properties?: undefined; additionalProperties?: undefined; } | { type: string; properties: { foreground: { $ref: string; default: string; }; /** * Adds Progressive JPEG transformation * * @see https://www.filestack.com/docs/api/processing/#progressive-jpeg * @returns this * @memberof Filelink */ background: { $ref: string; default: string; }; colored: { type: string; default: boolean; }; size: { type: string; minimum: number; /** * Adds imagesize transformation * * @see https://www.filestack.com/docs/api/processing/#smart-crop * @returns this * @memberof Filelink */ maximum: number; default: number; }; reverse: { type: string; default: boolean; }; }; additionalProperties: boolean; })[]; }; collage: { type: string; properties: { files: { type: string; minItems: number; items: { type: string; }[]; }; margin: { type: string; minimum: number; maximum: number; default: number; }; width: { type: string; minimum: number; maximum: number; }; height: { type: string; minimum: number; maximum: number; }; color: { $ref: string; default: string; }; fit: { type: string; enum: string[]; }; autorotate: { type: string; default: boolean; }; }; required: string[]; additionalProperties: boolean; }; urlscreenshot: { oneOf: ({ type: string; properties?: undefined; additionalProperties?: undefined; } | { type: string; properties: { agent: { type: string; enum: string[]; default: string; }; width: { type: string; minimum: number; maximum: number; default: number; }; height: { type: string; minimum: number; maximum: number; default: number; }; mode: { type: string; enum: string[]; default: string; }; delay: { type: string; minimum: number; maximum: number; default: number; }; orientation: { type: string; enum: string[]; default: string; }; device: { type: string; default: string; }; }; additionalProperties: boolean; })[]; }; upscale: { oneOf: ({ type: string; properties?: undefined; additionalProperties?: undefined; } | { type: string; properties: { noise: { type: string; enum: string[]; default: string; }; upscale: { type: string; default: boolean; }; style: { type: string; enum: string[]; default: string; }; }; additionalProperties: boolean; })[]; }; output: { type: string; additionalProperties: boolean; properties: { format: { type: string; enum: string[]; }; page: { type: string; minimum: number; maximum: number; }; density: { type: string; minimum: number; maximum: number; }; compress: { type: string; }; quality: { oneOf: ({ type: string; enum: string[]; minimum?: undefined; maximum?: undefined; default?: undefined; } | { type: string; minimum: number; maximum: number; default: number; enum?: undefined; })[]; }; secure: { type: string; default: boolean; }; docinfo: { type: string; default: boolean; }; strip: { type: string; default: boolean; }; colorspace: { type: string; enum: string[]; default: string; }; background: { $ref: string; }; pageformat: { type: string; enum: string[]; }; pageorientation: { type: string; enum: string[]; }; }; }; pjpg: { oneOf: ({ type: string; additionalProperties?: undefined; properties?: undefined; } | { type: string; additionalProperties: boolean; properties: { quality: { type: string; minimum: number; maximum: number; }; metadata: { type: string; default: boolean; }; }; })[]; }; quality: { type: string; additionalProperties: boolean; properties: { value: { type: string; minimum: number; maximum: number; }; }; }; cache: { oneOf: ({ type: string; properties?: undefined; } | { type: string; properties: { expiry: { type: string; }; }; })[]; }; video_convert: { type: string; additionalProperties: boolean; properties: { width: { type: string; minimum: number; maximum: number; }; height: { type: string; minimum: number; maximum: number; }; preset: { type: string; }; force: { type: string; }; title: { type: string; }; extname: { type: string; }; upscale: { type: string; }; aspect_mode: { type: string; enum: string[]; default: string; }; audio_sample_rate: { type: string; minimum: number; maximum: number; }; two_pass: { type: string; }; video_bitrate: { type: string; minimum: number; maximum: number; }; fps: { type: string; minimum: number; maximum: number; }; keyframe_interval: { type: string; minimum: number; maximum: number; }; audio_bitrate: { type: string; minimum: number; maximum: number; }; audio_codec: { type: string; }; audio_channels: { type: string; minimum: number; maximum: number; /** * Adds circle transformation * * @see https://www.filestack.com/docs/api/processing/#circle * @param {(CircleParams | boolean)} params * @returns this * @memberof Filelink */ }; clip_length: { type: string; pattern: stri