wranglebot
Version:
open source media asset management
336 lines • 13.6 kB
TypeScript
import User from "./accounts/User.js";
import { Volume } from "./drives/Volume.js";
import { Thumbnail } from "./library/Thumbnail.js";
import MetaLibrary from "./library/MetaLibrary.js";
import { MetaFile } from "./library/MetaFile.js";
import Task from "./media/Task.js";
import { MetaCopy } from "./library/MetaCopy.js";
import { TranscodeTask } from "./transcode/TranscodeTask.js";
import createTaskOptions from "./library/createTaskOptions.js";
import analyseMetaFileOptions from "./library/analyseMetaFileOptions.js";
import MetaLibraryOptions from "./library/MetaLibraryOptions.js";
import MetaLibraryUpdateOptions from "./library/MetaLibraryUpdateOptions.js";
import FolderOptions from "./library/FolderOptions.js";
import Transaction from "./database/Transaction.js";
import CancelToken from "./library/CancelToken.js";
import WrangleBotOptions from "./WrangleBotOptions.js";
import EventEmitter from "events";
import { config } from "./system/index.js";
import { DriveBot } from "./drives/DriveBot.js";
import { DB as Database } from "./database/DB.js";
interface ReturnObject {
status: 200 | 400 | 500 | 404;
message?: string;
result?: any;
}
declare class WrangleBot extends EventEmitter {
static OPEN: string;
static CLOSED: string;
pingInterval: any;
ping: any;
driveBot: DriveBot;
accountManager: {
users: Set<User>;
salt: string;
init(): Promise<void>;
addOneUser(options: import("./accounts/createUserOptions.js").default): User;
updateUserConfig(user: User, config: any): void;
removeOneUser(user: any): boolean;
getAllUsers(filters?: {}): User[];
getOneUser(username: any): User | undefined;
addRole(user: User, role: any): boolean;
setRoles(user: User, roles: any): boolean;
removeRole(user: User, role: any): boolean;
hasRole(user: User, roles: any): boolean;
changePassword(user: User, password: any): any;
changeEmail(user: User, email: any): any;
changeFirstName(user: User, firstName: any): any;
changeLastName(user: User, lastName: any): any;
updateUser(user: User, options: any): any;
allowAccess(user: any, library: any): boolean;
revokeAccess(user: any, library: any): boolean;
resetPassword(user: User): any;
checkAuth(username: any, password: any): boolean;
};
finder: {
cryptr: import("cryptr");
supportedPlatforms: {
darwin: string;
linux: string;
};
platform: NodeJS.Platform;
pathToVolumes: string;
isMac(): boolean;
isLinux(): boolean;
openInFinder(path: any, callback: any): void;
getDisks(): Promise<any[]>;
getMountPoint(pathToElement: any): string;
getFolders(sourcePath: any, limit: any, index?: number): any;
getPathToUserData(subPath?: string): string;
access(pathToElement: any): boolean;
isReachable(path: any): boolean;
existsSync(pathToElement: any): boolean;
exists(pathToElement: any): boolean;
check(...elements: any[]): boolean;
mkdirSync(pathToNewFolder: any, options?: {}): boolean;
statSync(pathToElement: any): import("fs").Stats;
lstatSync(pathToElement: any): import("fs").Stats;
createReadStream(pathToElement: any, options: any): import("fs").ReadStream;
createWriteStream(pathToElement: any, options?: {}): import("fs").WriteStream;
readdirSync(pathToFolder: any): string[];
readFile(pathToElement: any): Promise<unknown>;
writeFile(pathToNewElement: any, content: any, callback: any): void;
writeFileSync(pathToElement: any, content: any, options?: undefined): any;
save(fileName: any, content: any, encrypt?: boolean): boolean;
saveAsync(fileName: any, content: any, encrypt?: boolean): Promise<unknown>;
encrypt(data: any): string;
decrypt(data: any): string;
load(fileName: any, decrypt?: boolean): any;
readFileSync(pathToElement: any): Buffer<ArrayBufferLike>;
parseFileSync(pathToElement: any): any;
rmSync(pathToElementToRemove: any): void;
basename(pathToElement: any): string;
label(pathToElement: any): string;
extname(pathToElement: any): string;
dirname(pathToElement: any): string;
join(...paths: any[]): string;
watch(pathToFolder: any, callback: any): import("fs").FSWatcher;
checkDiskSpace(pathToDevice: any): Promise<unknown>;
eject(pathToDevice: any, callback: any): void;
getFileType(filename: any): "video" | "video-raw" | "audio" | "photo" | "sidecar";
getContentOfFolder(pathToFolder: any, options?: {
showHidden: boolean;
filters: "both" | "files" | "folders";
recursive: boolean;
depth: Number;
}): string[];
isDirectory(path: any): boolean;
isDir(...elements: any[]): boolean;
rename(pathToElement: any, newName: any): void;
copy(pathToElement: any, newPath: any): void;
move(pathToElement: any, newFolder: any): void;
renameAndMove(pathToElement: any, newName: any, newFolder: any): boolean;
getVolumePath(stringToParse: any): string;
getVolumeName(pathToElement: any): any;
};
ML: any;
config: {
appName: string;
versionNumber: string;
cryptr: import("cryptr");
pathToConfigFile: string;
appDataLocation: string;
config: any;
build(appDataLocation?: string): void;
getPathToUserData(): string;
set(key: any, value: any, encrypt?: boolean): void;
setConfig(key: any, value: any): void;
get(key: any, decrypt?: boolean): any;
getConfig(key: any): any;
save(): void;
};
status: string;
index: {
libraries: MetaLibrary[];
metaFiles: {
[key: string]: MetaFile;
};
metaCopies: {
[key: string]: MetaCopy;
};
copyTasks: {
[key: string]: Task;
};
transcodes: {
[key: string]: TranscodeTask;
};
};
private thirdPartyExtensions;
private servers;
db: Database | any;
constructor();
open(options: WrangleBotOptions): Promise<this | null>;
close(): Promise<string>;
private startServer;
$emit(event: string, ...args: any[]): Promise<boolean>;
private runCustomScript;
private loadExtensions;
getAvailableLibraries(): any;
private addOneLibrary;
private removeOneLibrary;
private getOneLibrary;
private loadOneLibrary;
private unloadOneLibrary;
handleVolumeMount(volume: any): void;
handleVolumeUnmount(volume: any): void;
generateThumbnails(library: any, metaFiles: any, callback?: (progress: any) => void, finishCallback?: (success: any) => void): Promise<boolean>;
private generateThumbnail;
private getManyTransactions;
removeFromRuntime(list: any, item: any): 1 | -1 | undefined;
addToRuntime(list: any, item: any): 1 | 0 | -1;
error(message: any): any;
notify(title: any, message: any): void;
get query(): {
library: {
many: (filters?: {}) => {
fetch: () => Promise<MetaLibrary[]>;
};
one: (libraryId: string) => {
fetch(): MetaLibrary;
put: (options: MetaLibraryUpdateOptions) => Boolean;
delete: () => Boolean;
scan: () => Promise<Task | false>;
transactions: {
one: (id: string) => {
fetch: () => Transaction;
};
many: (filter?: {}) => {
fetch: () => Transaction[];
};
};
metafiles: {
one: (metaFileId: string) => {
fetch(): MetaFile;
delete: () => Boolean;
thumbnails: {
one: (id: string) => {
fetch: () => Thumbnail;
};
many: (filters: any) => {
fetch: () => Thumbnail[];
analyse: (options: any) => Promise<{
response: string;
cost: number;
}>;
};
first: {
fetch: () => Thumbnail;
};
center: {
fetch: () => Thumbnail;
};
last: {
fetch: () => Thumbnail;
};
generate: () => Promise<Boolean>;
};
metacopies: {
one: (metaCopyId: any) => {
fetch(): MetaCopy;
delete: (options?: {
deleteFile: boolean;
}) => boolean;
};
many: (filters?: {}) => {
fetch: () => MetaCopy[];
};
post: (options: any) => Promise<MetaCopy>;
};
metadata: {
put: (options: any) => Boolean;
};
analyse: (options: analyseMetaFileOptions) => Promise<{
response: Object;
}>;
};
many: (filters: any) => {
fetch: () => MetaFile[];
export: {
report: (options: any) => Promise<Boolean>;
};
};
post: (metafile: MetaFile | Object | string) => Promise<MetaFile>;
};
tasks: {
one: (id: any) => {
fetch(): Task;
run: (callback: Function, cancelToken: CancelToken) => Promise<Task>;
put: (options: any) => Promise<true | Error>;
delete: () => Promise<true | undefined>;
};
many: (filters?: {}) => {
fetch(): Task[];
delete: () => Promise<unknown>;
};
post: (options: {
label: string;
jobs: {
source: string;
destinations?: string[] | null;
}[];
}) => Promise<Task>;
generate: (options: createTaskOptions) => Promise<Task>;
};
transcodes: {
one: (id: any) => {
fetch(): TranscodeTask;
run: (callback: Function, cancelToken: CancelToken) => Promise<void>;
delete: () => Boolean;
};
many: () => {
fetch(): TranscodeTask[];
};
post: (files: MetaFile[], options: any) => Promise<TranscodeTask>;
};
folders: {
put: (options: FolderOptions) => Promise<Boolean>;
};
};
post: (options: MetaLibraryOptions) => Promise<MetaLibrary>;
load: (name: string) => Promise<ReturnObject>;
unload: (name: string) => {
status: number;
message: string;
};
};
users: {
one: (options: {
id: string;
}) => {
fetch(): User;
put: (options: any) => any;
allow: (libraryName: string) => boolean;
revoke: (libraryName: string) => boolean;
reset: () => any;
};
many: (filters?: {}) => {
fetch: Function;
};
post: (options: any) => Promise<User>;
};
volumes: {
one: (id: any) => {
fetch(): Volume;
eject: () => Promise<unknown>;
};
many: () => {
fetch(): Promise<Volume[]>;
};
};
transactions: {
one: (id: any) => void;
many: (filter: any) => {
fetch: () => Promise<any>;
};
};
};
get utility(): {
index: (pathToFolder: any, types: any) => Promise<import("./media/Index.js").default>;
list: (pathToFolder: any, options: {
showHidden: boolean;
filters: "both" | "files" | "folders";
recursive: boolean;
depth: Number;
}) => string[];
uuid(): any;
luts(): string[];
};
private applyTransaction;
private applyTransactionUpdateOne;
private applyTransactionInsertMany;
private applyTransactionRemoveOne;
}
declare const wb: WrangleBot;
export default wb;
export { WrangleBot, config };
//# sourceMappingURL=WrangleBot.d.ts.map