UNPKG

bknd

Version:

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

71 lines (70 loc) 3.07 kB
import { type AppEntity } from "../core"; import type { Entity, EntityManager } from "../data"; import { type FileUploadedEventData, Storage } from "../media"; import { Module } from "../modules/Module"; import { type FieldSchema } from "../data/prototype"; import { type mediaConfigSchema } from "./media-schema"; export type MediaFieldSchema = FieldSchema<typeof AppMedia.mediaFields>; declare module "../core" { interface Media extends AppEntity, MediaFieldSchema { } interface DB { media: Media; } } export declare class AppMedia extends Module<typeof mediaConfigSchema> { private _storage?; build(): Promise<void>; getSchema(): import("@sinclair/typebox").TObject<{ enabled: import("@sinclair/typebox").TBoolean; basepath: import("@sinclair/typebox").TString; entity_name: import("@sinclair/typebox").TString; storage: import("@sinclair/typebox").TObject<{ body_max_size: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>; }>; adapter: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<import("@sinclair/typebox").TObject<{ type: import("@sinclair/typebox").TLiteral<string>; config: import("@sinclair/typebox").TObject<import("@sinclair/typebox").TProperties>; }>[]>>; }>; get basepath(): string; get storage(): Storage; uploadedEventDataToMediaPayload(info: FileUploadedEventData): MediaFieldSchema; static mediaFields: { path: import("../data").TextField<true>; folder: import("../data").BooleanField<false> & { required: () => import("../data").BooleanField<true>; }; mime_type: import("../data").TextField<false> & { required: () => import("../data").TextField<true>; }; size: import("../data").NumberField<false> & { required: () => import("../data").NumberField<true>; }; scope: import("../data").TextField<false> & { required: () => import("../data").TextField<true>; }; etag: import("../data").TextField<false> & { required: () => import("../data").TextField<true>; }; modified_at: import("../data").DateField<false> & { required: () => import("../data").DateField<true>; }; reference: import("../data").TextField<false> & { required: () => import("../data").TextField<true>; }; entity_id: import("../data").NumberField<false> & { required: () => import("../data").NumberField<true>; }; metadata: import("../data").JsonField<false, object> & { required: () => import("../data").JsonField<true, object>; }; }; getMediaEntity(forceCreate?: boolean): Entity<"media", typeof AppMedia.mediaFields>; get em(): EntityManager; private setupListeners; getOverwritePaths(): RegExp[]; toJSON(secrets?: boolean): (ReturnType<this["getSchema"]> & { params: []; })["static"]; }