mirror of
https://github.com/vrtmrz/obsidian-livesync.git
synced 2026-01-15 01:39:16 +00:00
### New Feature - Now we can generate a QR Code for transferring the configuration to another device.
92 lines
2.1 KiB
TypeScript
92 lines
2.1 KiB
TypeScript
import { type PluginManifest, TFile } from "../deps.ts";
|
|
import {
|
|
type DatabaseEntry,
|
|
type EntryBody,
|
|
type FilePath,
|
|
type UXFileInfoStub,
|
|
type UXInternalFileInfoStub,
|
|
} from "../lib/src/common/types.ts";
|
|
|
|
export interface PluginDataEntry extends DatabaseEntry {
|
|
deviceVaultName: string;
|
|
mtime: number;
|
|
manifest: PluginManifest;
|
|
mainJs: string;
|
|
manifestJson: string;
|
|
styleCss?: string;
|
|
// it must be encrypted.
|
|
dataJson?: string;
|
|
_conflicts?: string[];
|
|
type: "plugin";
|
|
}
|
|
|
|
export interface PluginList {
|
|
[key: string]: PluginDataEntry[];
|
|
}
|
|
|
|
export interface DevicePluginList {
|
|
[key: string]: PluginDataEntry;
|
|
}
|
|
export const PERIODIC_PLUGIN_SWEEP = 60;
|
|
|
|
export interface InternalFileInfo {
|
|
path: FilePath;
|
|
mtime: number;
|
|
ctime: number;
|
|
size: number;
|
|
deleted?: boolean;
|
|
}
|
|
|
|
export interface FileInfo {
|
|
path: FilePath;
|
|
mtime: number;
|
|
ctime: number;
|
|
size: number;
|
|
deleted?: boolean;
|
|
file: TFile;
|
|
}
|
|
|
|
export type queueItem = {
|
|
entry: EntryBody;
|
|
missingChildren: string[];
|
|
timeout?: number;
|
|
done?: boolean;
|
|
warned?: boolean;
|
|
};
|
|
|
|
export type CacheData = string | ArrayBuffer;
|
|
export type FileEventType = "CREATE" | "DELETE" | "CHANGED" | "INTERNAL";
|
|
export type FileEventArgs = {
|
|
file: UXFileInfoStub | UXInternalFileInfoStub;
|
|
cache?: CacheData;
|
|
oldPath?: string;
|
|
ctx?: any;
|
|
};
|
|
export type FileEventItem = {
|
|
type: FileEventType;
|
|
args: FileEventArgs;
|
|
key: string;
|
|
skipBatchWait?: boolean;
|
|
cancelled?: boolean;
|
|
batched?: boolean;
|
|
};
|
|
|
|
// Hidden items (Now means `chunk`)
|
|
export const CHeader = "h:";
|
|
|
|
// Plug-in Stored Container (Obsolete)
|
|
export const PSCHeader = "ps:";
|
|
export const PSCHeaderEnd = "ps;";
|
|
|
|
// Internal data Container
|
|
export const ICHeader = "i:";
|
|
export const ICHeaderEnd = "i;";
|
|
export const ICHeaderLength = ICHeader.length;
|
|
|
|
// Internal data Container (eXtended)
|
|
export const ICXHeader = "ix:";
|
|
|
|
export const FileWatchEventQueueMax = 10;
|
|
export const configURIBase = "obsidian://setuplivesync?settings=";
|
|
export const configURIBaseQR = "obsidian://setuplivesync?settingsQR=";
|