commit 8cffa38ebae2a46b7c8e855c7b21a124e35adc89 Author: fyears <1142836+fyears@users.noreply.github.com> Date: Thu Mar 10 23:52:56 2022 +0800 bypass more cors for onedrive commit 1b59ac1e58032099068aab55d22ef96c6396f203 Author: fyears <1142836+fyears@users.noreply.github.com> Date: Wed Mar 9 23:58:28 2022 +0800 change wordings for webdav cors commit 73142eb18b59fff20839680e866f51cfcb0a6226 Author: fyears <1142836+fyears@users.noreply.github.com> Date: Wed Mar 9 23:38:58 2022 +0800 remove cors hint for webdav commit 7dbb0b49d50e529b2b72e55ea2c8503ba7fa9268 Author: fyears <1142836+fyears@users.noreply.github.com> Date: Wed Mar 9 23:31:54 2022 +0800 fix webdav commit c28c4e19720a56230d483acf306463d42e619fa4 Author: fyears <1142836+fyears@users.noreply.github.com> Date: Wed Mar 9 23:31:35 2022 +0800 remove more headers commit 4eeae7043fa68d669a5c23c5549c14c1260ce638 Author: fyears <1142836+fyears@users.noreply.github.com> Date: Wed Mar 9 23:18:32 2022 +0800 polish cors hints for s3 commit d9e55a91a1c413e9419cd6b30a3a6e3b403d483b Author: fyears <1142836+fyears@users.noreply.github.com> Date: Wed Mar 9 22:40:37 2022 +0800 fix format commit b780a3eb4e37b05b8e8b92d6a2f9283b3459d738 Author: fyears <1142836+fyears@users.noreply.github.com> Date: Wed Mar 9 22:37:02 2022 +0800 finally correctly inject requestUrl into s3 commit 6a55a1a43d7653d65579ab88aa816e5d54cd276a Author: fyears <1142836+fyears@users.noreply.github.com> Date: Wed Mar 9 22:33:18 2022 +0800 to arraybuffer from view commit 2f2607b4f0a3d9db5943528ced57cb2fdb419607 Author: fyears <1142836+fyears@users.noreply.github.com> Date: Wed Mar 9 13:31:22 2022 +0800 add split ranges commit ea24da24dea83fdb770e7e391cf8a2e4fea78d0d Author: fyears <1142836+fyears@users.noreply.github.com> Date: Sun Mar 6 22:57:50 2022 +0800 add settings of bypassing for s3 commit 2f099dc8ca1e66ea137b28dd329be50968734ba6 Author: fyears <1142836+fyears@users.noreply.github.com> Date: Sun Mar 6 22:38:07 2022 +0800 use api ver var commit 74c7ce2449a88cbe7c7f50cbb687b36ff3732c04 Author: fyears <1142836+fyears@users.noreply.github.com> Date: Sun Mar 6 22:37:25 2022 +0800 correct way to inject s3 commit f29945d73132d21b2c44472ec2cafc06b9d71e8f Author: fyears <1142836+fyears@users.noreply.github.com> Date: Tue Mar 1 00:09:57 2022 +0800 add new http handler commit d55104cb08e168cbcc243cf901cbd7f46f2e324b Author: fyears <1142836+fyears@users.noreply.github.com> Date: Mon Feb 28 22:59:55 2022 +0800 add types for patch commit 50b79ade7188ee7dfab9c1d03119585db358ba6f Author: fyears <1142836+fyears@users.noreply.github.com> Date: Mon Feb 28 08:25:19 2022 +0800 remove verbose commit 83f0e71aa15aa7586f6d4e105cd77c25c2e113ce Author: fyears <1142836+fyears@users.noreply.github.com> Date: Mon Feb 28 08:25:04 2022 +0800 patch webdav!
122 lines
3.2 KiB
TypeScript
122 lines
3.2 KiB
TypeScript
/**
|
|
* Only type defs here.
|
|
* To avoid circular dependency.
|
|
*/
|
|
|
|
export type SUPPORTED_SERVICES_TYPE = "s3" | "webdav" | "dropbox" | "onedrive";
|
|
|
|
export interface S3Config {
|
|
s3Endpoint: string;
|
|
s3Region: string;
|
|
s3AccessKeyID: string;
|
|
s3SecretAccessKey: string;
|
|
s3BucketName: string;
|
|
bypassCorsLocally?: boolean;
|
|
}
|
|
|
|
export interface DropboxConfig {
|
|
accessToken: string;
|
|
clientID: string;
|
|
refreshToken: string;
|
|
accessTokenExpiresInSeconds: number;
|
|
accessTokenExpiresAtTime: number;
|
|
accountID: string;
|
|
username: string;
|
|
credentialsShouldBeDeletedAtTime?: number;
|
|
}
|
|
|
|
export type WebdavAuthType = "digest" | "basic";
|
|
|
|
export interface WebdavConfig {
|
|
address: string;
|
|
username: string;
|
|
password: string;
|
|
authType: WebdavAuthType;
|
|
manualRecursive: boolean;
|
|
}
|
|
|
|
export interface OnedriveConfig {
|
|
accessToken: string;
|
|
clientID: string;
|
|
authority: string;
|
|
refreshToken: string;
|
|
accessTokenExpiresInSeconds: number;
|
|
accessTokenExpiresAtTime: number;
|
|
deltaLink: string;
|
|
username: string;
|
|
credentialsShouldBeDeletedAtTime?: number;
|
|
}
|
|
|
|
export interface RemotelySavePluginSettings {
|
|
s3: S3Config;
|
|
webdav: WebdavConfig;
|
|
dropbox: DropboxConfig;
|
|
onedrive: OnedriveConfig;
|
|
password: string;
|
|
serviceType: SUPPORTED_SERVICES_TYPE;
|
|
currLogLevel?: string;
|
|
vaultRandomID?: string;
|
|
autoRunEveryMilliseconds?: number;
|
|
initRunAfterMilliseconds?: number;
|
|
agreeToUploadExtraMetadata?: boolean;
|
|
concurrency?: number;
|
|
}
|
|
|
|
export interface RemoteItem {
|
|
key: string;
|
|
lastModified: number;
|
|
size: number;
|
|
remoteType: SUPPORTED_SERVICES_TYPE;
|
|
etag?: string;
|
|
}
|
|
|
|
export const COMMAND_URI = "remotely-save";
|
|
export const COMMAND_CALLBACK = "remotely-save-cb";
|
|
export const COMMAND_CALLBACK_ONEDRIVE = "remotely-save-cb-onedrive";
|
|
export const COMMAND_CALLBACK_DROPBOX = "remotely-save-cb-dropbox";
|
|
|
|
export interface UriParams {
|
|
func?: string;
|
|
vault?: string;
|
|
ver?: string;
|
|
data?: string;
|
|
}
|
|
|
|
// 80 days
|
|
export const OAUTH2_FORCE_EXPIRE_MILLISECONDS = 1000 * 60 * 60 * 24 * 80;
|
|
|
|
type DecisionTypeForFile =
|
|
| "skipUploading" // special, mtimeLocal === mtimeRemote
|
|
| "uploadLocalDelHistToRemote" // "delLocalIfExists && delRemoteIfExists && cleanLocalDelHist && uploadLocalDelHistToRemote"
|
|
| "keepRemoteDelHist" // "delLocalIfExists && delRemoteIfExists && cleanLocalDelHist && keepRemoteDelHist"
|
|
| "uploadLocalToRemote" // "skipLocal && uploadLocalToRemote && cleanLocalDelHist && cleanRemoteDelHist"
|
|
| "downloadRemoteToLocal"; // "downloadRemoteToLocal && skipRemote && cleanLocalDelHist && cleanRemoteDelHist"
|
|
|
|
type DecisionTypeForFolder =
|
|
| "createFolder"
|
|
| "uploadLocalDelHistToRemoteFolder"
|
|
| "keepRemoteDelHistFolder"
|
|
| "skipFolder";
|
|
|
|
export type DecisionType = DecisionTypeForFile | DecisionTypeForFolder;
|
|
|
|
export interface FileOrFolderMixedState {
|
|
key: string;
|
|
existLocal?: boolean;
|
|
existRemote?: boolean;
|
|
mtimeLocal?: number;
|
|
mtimeRemote?: number;
|
|
deltimeLocal?: number;
|
|
deltimeRemote?: number;
|
|
sizeLocal?: number;
|
|
sizeRemote?: number;
|
|
changeMtimeUsingMapping?: boolean;
|
|
decision?: DecisionType;
|
|
decisionBranch?: number;
|
|
syncDone?: "done";
|
|
remoteEncryptedKey?: string;
|
|
}
|
|
|
|
export const API_VER_STAT_FOLDER = "0.13.27";
|
|
export const API_VER_REQURL = "0.13.26";
|