113 lines
3.4 KiB
TypeScript
113 lines
3.4 KiB
TypeScript
///////////////////////////////////////////////////////////
|
|
// PRO
|
|
//////////////////////////////////////////////////////////
|
|
|
|
export const COMMAND_CALLBACK_PRO = "remotely-save-cb-pro";
|
|
export const PRO_CLIENT_ID = process.env.DEFAULT_REMOTELYSAVE_CLIENT_ID;
|
|
export const PRO_WEBSITE = process.env.DEFAULT_REMOTELYSAVE_WEBSITE;
|
|
|
|
export type PRO_FEATURE_TYPE =
|
|
| "feature-smart_conflict"
|
|
| "feature-google_drive"
|
|
| "feature-box"
|
|
| "feature-pcloud"
|
|
| "feature-yandex_disk";
|
|
|
|
export interface FeatureInfo {
|
|
featureName: PRO_FEATURE_TYPE;
|
|
enableAtTimeMs: bigint;
|
|
expireAtTimeMs: bigint;
|
|
}
|
|
|
|
export interface ProConfig {
|
|
email?: string;
|
|
refreshToken?: string;
|
|
accessToken: string;
|
|
accessTokenExpiresInMs: number;
|
|
accessTokenExpiresAtTimeMs: number;
|
|
enabledProFeatures: FeatureInfo[];
|
|
credentialsShouldBeDeletedAtTimeMs?: number;
|
|
}
|
|
|
|
///////////////////////////////////////////////////////////
|
|
// smart conflict
|
|
//////////////////////////////////////////////////////////
|
|
|
|
export const MERGABLE_SIZE = 1000 * 1000; // 1 MB
|
|
|
|
///////////////////////////////////////////////////////////
|
|
// Google Drive
|
|
//////////////////////////////////////////////////////////
|
|
|
|
export interface GoogleDriveConfig {
|
|
accessToken: string;
|
|
accessTokenExpiresInMs: number;
|
|
accessTokenExpiresAtTimeMs: number;
|
|
refreshToken: string;
|
|
remoteBaseDir?: string;
|
|
credentialsShouldBeDeletedAtTimeMs?: number;
|
|
scope: "https://www.googleapis.com/auth/drive.file";
|
|
kind: "googledrive";
|
|
}
|
|
|
|
export const DEFAULT_GOOGLEDRIVE_CLIENT_ID =
|
|
process.env.DEFAULT_GOOGLEDRIVE_CLIENT_ID;
|
|
export const DEFAULT_GOOGLEDRIVE_CLIENT_SECRET =
|
|
process.env.DEFAULT_GOOGLEDRIVE_CLIENT_SECRET;
|
|
|
|
///////////////////////////////////////////////////////////
|
|
// box
|
|
//////////////////////////////////////////////////////////
|
|
|
|
export const COMMAND_CALLBACK_BOX = "remotely-save-cb-box";
|
|
export const BOX_CLIENT_ID = process.env.DEFAULT_BOX_CLIENT_ID;
|
|
export const BOX_CLIENT_SECRET = process.env.DEFAULT_BOX_CLIENT_SECRET;
|
|
|
|
export interface BoxConfig {
|
|
accessToken: string;
|
|
accessTokenExpiresInMs: number;
|
|
accessTokenExpiresAtTimeMs: number;
|
|
refreshToken: string;
|
|
remoteBaseDir?: string;
|
|
credentialsShouldBeDeletedAtTimeMs?: number;
|
|
kind: "box";
|
|
}
|
|
|
|
///////////////////////////////////////////////////////////
|
|
// pCloud
|
|
//////////////////////////////////////////////////////////
|
|
|
|
export const COMMAND_CALLBACK_PCLOUD = "remotely-save-cb-pcloud";
|
|
export const PCLOUD_CLIENT_ID = process.env.DEFAULT_PCLOUD_CLIENT_ID;
|
|
export const PCLOUD_CLIENT_SECRET = process.env.DEFAULT_PCLOUD_CLIENT_SECRET;
|
|
|
|
export interface PCloudConfig {
|
|
accessToken: string;
|
|
hostname: "eapi.pcloud.com" | "api.pcloud.com";
|
|
locationid: 1 | 2;
|
|
remoteBaseDir?: string;
|
|
credentialsShouldBeDeletedAtTimeMs?: number;
|
|
emptyFile: "skip" | "error";
|
|
kind: "pcloud";
|
|
}
|
|
|
|
///////////////////////////////////////////////////////////
|
|
// Yandex Disk
|
|
//////////////////////////////////////////////////////////
|
|
|
|
export const COMMAND_CALLBACK_YANDEXDISK = "remotely-save-cb-yandexdisk";
|
|
export const YANDEXDISK_CLIENT_ID = process.env.DEFAULT_YANDEXDISK_CLIENT_ID;
|
|
export const YANDEXDISK_CLIENT_SECRET =
|
|
process.env.DEFAULT_YANDEXDISK_CLIENT_SECRET;
|
|
|
|
export interface YandexDiskConfig {
|
|
accessToken: string;
|
|
accessTokenExpiresInMs: number;
|
|
accessTokenExpiresAtTimeMs: number;
|
|
refreshToken: string;
|
|
remoteBaseDir?: string;
|
|
credentialsShouldBeDeletedAtTimeMs?: number;
|
|
scope: string;
|
|
kind: "yandexdisk";
|
|
}
|