Библиотека для разработки расширений, компонентов и работы с данными на платформе NextBox.
npm install next-box
<script src="
https://cdn.jsdelivr.net/npm/next-box@latest/index.min.js
"></script>
import { NextBox, StorageApi, Transport } from 'next-box';
const nb = new NextBox();
nb.init((state) => {
const api = new StorageApi(state);
...
api.download()
.then((response) => response.json())
.then((result) => {
...
})
});
- Перейти на /
Transport.navigate('/', {}, '_parent')
- Изменить queryParams на текущей странице
Transport.navigate('', {'key': 'value'}, '_parent')
- Перейти на /
Transport.navigate('/', {}, '_blank')
- Перейти на / и добавить queryParams
Transport.navigate('/', {'key': 'value'}, '_blank')
- Перейти на /
Transport.navigate('/', {}, '_self')
- Перейти на / и добавить queryParams
Transport.navigate('/', {'key': 'value'}, '_self')
export declare class NextBox extends EventEmitter {
/**
* Хранит актуальное состояние подключения
*/
state?: AppState;
/**
* Метод подключения к приложению, будет вызван после получения актуального состояния
*/
init(handler?: (state: AppState) => void): void;
}
export declare class StorageApi extends Api {
/**
* Получить список файлов
*/
list(params: StorageRequestListParams): Promise<ResponseList<StorageElement>>;
/**
* Информация о файле (модель)
*/
info(path: string): Promise<StorageElement>;
/**
* Создать файл или папку
*/
create(name: string, path: string, type: 'dir' | 'file'): Promise<ResponseItem<StorageElement>>;
/**
* Удалить файл или папку
*/
delete(path: string, hard?: boolean): Promise<any>;
/**
* Возвращает полный путь для загрузки файла
*/
makeDownloadPath(path?: string, options?: MakePathOption): string;
/**
* Возвращает полный путь к изображению предварительного просмотра
*/
makeImagePreview(path?: string, options?: MakePathOption): string;
/**
* Получить тело файла
*/
download(path?: string): Promise<Response>;
/**
* Отправьте запрос на изменение файла
*/
replace(body: any, path?: string): Promise<Response | null>;
/**
* Синхронная запись в файлы
*/
liveReplace(body: any, path?: string, finalize?: () => void): void;
/**
* Загрузить файл
*/
upload(path: string, file: File): Promise<{
row: StorageElement;
}>;
/**
* Загрузить файл по URL-адресу
*/
uploadNet(path: string, url: string, overwrite?: boolean): Promise<StorageElement>;
/**
* Создать файд метаданных для расширения
*/
createMeta(name?: string, path?: string): Promise<{
row: StorageElement;
}>;
/**
* Прочитать метаданные расширения
*/
readMeta(path?: string): Promise<any>;
/**
* Сохранить метаданные расширения
*/
saveMeta(body: any, path?: string): Promise<any>;
/**
* Относительный путь (откуда вызывается редактор)
*/
relativePath(path?: string, defaultPath?: string): string;
/**
* Возвращает действительный URL-адрес в API (storage или FCA)
*/
makeApiPath(...arg: string[]): URL;
/**
* Возвращает имя метафайла расширения (берется из extenstion.name.ru)
*/
get metaName(): string;
}
export declare class UserApi extends Api {
/**
* Выход из системы
*/
logout(): Promise<void>;
/**
* Получить данные пользователя по его id
*/
get(id: number): Promise<User>;
/**
* Список пользователей
*/
list(params: RequestUserListParams): Promise<ResponseList<User>>;
/**
* Вернуть удаленного пользователя
*/
restore(id: number): Promise<void>;
/**
* Удалить пользователя
*/
delete(id: number, params?: {
hard: boolean;
}): Promise<void>;
/**
* Обновить данные пользователя
*/
update(data: UpdateUserParams): Promise<ResponseItem<User>>;
/**
* Создать нового пользователя
*/
create(data: CreateUserParams): Promise<ResponseItem<User>>;
/**
* Создать API токен
*/
createToken(data: {
name: string;
expire_in: string | null;
}): Promise<UserToken>;
/**
* Получить список пользователей
*/
listToken(params: RequestBaseParams): Promise<ResponseList<UserToken>>;
/**
* Удалить токен
*/
deleteToken(id: number): Promise<void>;
/**
* Изменить пароль
*/
changePassword(data: {
new_password: string;
old_password: string;
}): Promise<{
success: boolean;
}>;
/**
* Получить данные о себе
*/
me(): Promise<ResponseItem<User>>;
/**
* Загрузить аватар
*/
meUploadAvatar(file: Blob, fileName: string): Promise<{
file_path: string;
}>;
/**
* Удалить аватар
*/
meDeleteAvatar(): Promise<void>;
/**
* Получить список активных сессий
*/
meListSession(params: RequestBaseParams): Promise<ResponseList<UserSession>>;
/**
* Удалить сессию по id или все
*/
meDeleteSession(id?: number): Promise<void>;
}