UNPKG

bknd

Version:

Lightweight Firebase/Supabase alternative built to run anywhere — incl. Next.js, React Router, Astro, Cloudflare, Bun, Node, AWS Lambda & more.

116 lines (115 loc) 4.68 kB
import type { AppEntity, FileUploadedEventData } from ".."; import type { Entity, EntityManager } from "../data/entities"; import { Storage } from "../media/storage/Storage"; import { Module } from "../modules/Module"; import { type FieldSchema } from "../data/prototype"; import { type TAppMediaConfig } from "./media-schema"; export type MediaFields = typeof AppMedia.mediaFields; export type MediaFieldSchema = FieldSchema<typeof AppMedia.mediaFields>; declare module ".." { interface Media extends AppEntity, MediaFieldSchema { } interface DB { media: Media; } } export declare class AppMedia extends Module<Required<TAppMediaConfig>> { private _storage?; options: { body_max_size: number | null; }; build(): Promise<void>; getSchema(): import("jsonv-ts").ObjectSchema<{ readonly enabled: import("jsonv-ts").Schema<{ readonly default: false; }, boolean, boolean> & { readonly default: false; }; readonly basepath: import("jsonv-ts").StringSchema<{ readonly default: "/api/media"; }> & { readonly default: "/api/media"; }; readonly entity_name: import("jsonv-ts").StringSchema<{ readonly default: "media"; }> & { readonly default: "media"; }; readonly storage: import("jsonv-ts").ObjectSchema<{ readonly body_max_size: {} & import("jsonv-ts").Schema<import("jsonv-ts").ISchemaOptions, number | undefined, number | undefined>; }, import("jsonv-ts").Merge<{ readonly default: {}; } & { additionalProperties: false; }>>; readonly adapter: { default?: any; enum?: (readonly any[] | any[]) | undefined; const?: any; anyOf: import("jsonv-ts").ObjectSchema<{ readonly type: import("jsonv-ts").Schema<import("jsonv-ts").ILiteralOptions, string, string> & import("jsonv-ts").Merge<import("jsonv-ts").ILiteralOptions & { const: string; }>; readonly config: import("jsonv-ts").Schema<import("jsonv-ts").ISchemaOptions, unknown, unknown>; }, import("jsonv-ts").Merge<{ readonly title: string; readonly description: string | undefined; } & { additionalProperties: false; }>>[]; } & import("jsonv-ts").Schema<import("jsonv-ts").ISchemaOptions, { config?: unknown; type: string; } | undefined, never>; }, import("jsonv-ts").Merge<{ readonly default: {}; } & { additionalProperties: false; }>>; get basepath(): string; get storage(): Storage; uploadedEventDataToMediaPayload(info: FileUploadedEventData): MediaFieldSchema; static mediaFields: { path: import("../data/fields").TextField<true>; folder: import("../data/fields").BooleanField<false> & { required: () => import("../data/fields").BooleanField<true>; }; mime_type: import("../data/fields").TextField<false> & { required: () => import("../data/fields").TextField<true>; }; size: import("../data/fields").NumberField<false> & { required: () => import("../data/fields").NumberField<true>; }; scope: import("../data/fields").TextField<false> & { required: () => import("../data/fields").TextField<true>; }; etag: import("../data/fields").TextField<false> & { required: () => import("../data/fields").TextField<true>; }; modified_at: import("../data/fields").DateField<false> & { required: () => import("../data/fields").DateField<true>; }; reference: import("../data/fields").TextField<false> & { required: () => import("../data/fields").TextField<true>; }; entity_id: import("../data/fields").TextField<false> & { required: () => import("../data/fields").TextField<true>; }; metadata: import("../data/fields").JsonField<false, object> & { required: () => import("../data/fields").JsonField<true, object>; }; }; getMediaEntity(forceCreate?: boolean): Entity<"media", typeof AppMedia.mediaFields>; get em(): EntityManager; private setupListeners; getOverwritePaths(): RegExp[]; toJSON(secrets?: boolean): { adapter: any; enabled: boolean; basepath: string; entity_name: string; storage: { body_max_size?: number | undefined; }; }; }