commit
c9d7a86a27
11 changed files with 32 additions and 14 deletions
8
backend/Cargo.lock
generated
8
backend/Cargo.lock
generated
|
|
@ -1479,7 +1479,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "reconcile"
|
name = "reconcile"
|
||||||
version = "0.0.18"
|
version = "0.0.19"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"insta",
|
"insta",
|
||||||
"pretty_assertions",
|
"pretty_assertions",
|
||||||
|
|
@ -1489,7 +1489,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "reconcile-fuzz"
|
name = "reconcile-fuzz"
|
||||||
version = "0.0.18"
|
version = "0.0.19"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"libfuzzer-sys",
|
"libfuzzer-sys",
|
||||||
"reconcile",
|
"reconcile",
|
||||||
|
|
@ -2104,7 +2104,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "sync_lib"
|
name = "sync_lib"
|
||||||
version = "0.0.18"
|
version = "0.0.19"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"base64 0.22.1",
|
"base64 0.22.1",
|
||||||
"console_error_panic_hook",
|
"console_error_panic_hook",
|
||||||
|
|
@ -2117,7 +2117,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "sync_server"
|
name = "sync_server"
|
||||||
version = "0.0.18"
|
version = "0.0.19"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"aide",
|
"aide",
|
||||||
"anyhow",
|
"anyhow",
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "reconcile-fuzz"
|
name = "reconcile-fuzz"
|
||||||
version = "0.0.18"
|
version = "0.0.19"
|
||||||
publish = false
|
publish = false
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "reconcile"
|
name = "reconcile"
|
||||||
version = "0.0.18"
|
version = "0.0.19"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "sync_lib"
|
name = "sync_lib"
|
||||||
version = "0.0.18"
|
version = "0.0.19"
|
||||||
authors = ["Andras Schmelczer <andras@schmelczer.dev>"]
|
authors = ["Andras Schmelczer <andras@schmelczer.dev>"]
|
||||||
edition = "2018"
|
edition = "2018"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "sync_server"
|
name = "sync_server"
|
||||||
version = "0.0.18"
|
version = "0.0.19"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"id": "vault-link",
|
"id": "vault-link",
|
||||||
"name": "VaultLink",
|
"name": "VaultLink",
|
||||||
"version": "0.0.18",
|
"version": "0.0.19",
|
||||||
"minAppVersion": "0.0.0",
|
"minAppVersion": "0.0.0",
|
||||||
"description": "Self-hosted synchronization and collaboration for your Vault.",
|
"description": "Self-hosted synchronization and collaboration for your Vault.",
|
||||||
"author": "Andras Schmelczer",
|
"author": "Andras Schmelczer",
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"id": "vault-link",
|
"id": "vault-link",
|
||||||
"name": "VaultLink",
|
"name": "VaultLink",
|
||||||
"version": "0.0.18",
|
"version": "0.0.19",
|
||||||
"minAppVersion": "0.0.0",
|
"minAppVersion": "0.0.0",
|
||||||
"description": "Self-hosted synchronization and collaboration for your Vault.",
|
"description": "Self-hosted synchronization and collaboration for your Vault.",
|
||||||
"author": "Andras Schmelczer",
|
"author": "Andras Schmelczer",
|
||||||
|
|
|
||||||
6
plugin/package-lock.json
generated
6
plugin/package-lock.json
generated
|
|
@ -1,12 +1,12 @@
|
||||||
{
|
{
|
||||||
"name": "vault-link-obsidian-plugin",
|
"name": "vault-link-obsidian-plugin",
|
||||||
"version": "0.0.18",
|
"version": "0.0.19",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "vault-link-obsidian-plugin",
|
"name": "vault-link-obsidian-plugin",
|
||||||
"version": "0.0.18",
|
"version": "0.0.19",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/jest": "^29.5.14",
|
"@types/jest": "^29.5.14",
|
||||||
|
|
@ -46,7 +46,7 @@
|
||||||
},
|
},
|
||||||
"../backend/sync_lib/pkg": {
|
"../backend/sync_lib/pkg": {
|
||||||
"name": "sync_lib",
|
"name": "sync_lib",
|
||||||
"version": "0.0.18",
|
"version": "0.0.19",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/@ampproject/remapping": {
|
"node_modules/@ampproject/remapping": {
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "vault-link-obsidian-plugin",
|
"name": "vault-link-obsidian-plugin",
|
||||||
"version": "0.0.18",
|
"version": "0.0.19",
|
||||||
"description": "This is a sample plugin for Obsidian (https://obsidian.md)",
|
"description": "This is a sample plugin for Obsidian (https://obsidian.md)",
|
||||||
"main": "main.js",
|
"main": "main.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|
|
||||||
|
|
@ -9,28 +9,40 @@ export class ObsidianFileOperations implements FileOperations {
|
||||||
|
|
||||||
public async listAllFiles(): Promise<RelativePath[]> {
|
public async listAllFiles(): Promise<RelativePath[]> {
|
||||||
console.log("before getFiles");
|
console.log("before getFiles");
|
||||||
|
await sleep(1000);
|
||||||
|
|
||||||
const files = this.vault.getFiles();
|
const files = this.vault.getFiles();
|
||||||
console.log("after getFiles");
|
console.log("after getFiles");
|
||||||
|
await sleep(1000);
|
||||||
|
|
||||||
console.log(files);
|
console.log(files);
|
||||||
return files.map((file) => file.path);
|
return files.map((file) => file.path);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async read(path: RelativePath): Promise<Uint8Array> {
|
public async read(path: RelativePath): Promise<Uint8Array> {
|
||||||
console.log("before readBinary");
|
console.log("before readBinary");
|
||||||
|
await sleep(1000);
|
||||||
|
|
||||||
const result = new Uint8Array(
|
const result = new Uint8Array(
|
||||||
await this.vault.adapter.readBinary(normalizePath(path))
|
await this.vault.adapter.readBinary(normalizePath(path))
|
||||||
);
|
);
|
||||||
console.log("after readBinary");
|
console.log("after readBinary");
|
||||||
|
await sleep(1000);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async getModificationTime(path: RelativePath): Promise<Date> {
|
public async getModificationTime(path: RelativePath): Promise<Date> {
|
||||||
console.log("before stat");
|
console.log("before stat");
|
||||||
|
await sleep(1000);
|
||||||
|
|
||||||
const file = await this.vault.adapter.stat(normalizePath(path));
|
const file = await this.vault.adapter.stat(normalizePath(path));
|
||||||
if (!file) {
|
if (!file) {
|
||||||
throw new Error(`File not found: ${path}`);
|
throw new Error(`File not found: ${path}`);
|
||||||
}
|
}
|
||||||
console.log("after stat");
|
console.log("after stat");
|
||||||
|
await sleep(1000);
|
||||||
|
|
||||||
return new Date(file.mtime);
|
return new Date(file.mtime);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -300,13 +300,17 @@ export class Syncer {
|
||||||
`Document metadata not found for ${relativePath}. This implies a corrupt local database. Consider resetting the plugin's sync history.`
|
`Document metadata not found for ${relativePath}. This implies a corrupt local database. Consider resetting the plugin's sync history.`
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
await sleep(1000);
|
||||||
console.log("about to read", relativePath);
|
console.log("about to read", relativePath);
|
||||||
|
await sleep(1000);
|
||||||
|
|
||||||
const contentBytes = await this.operations.read(relativePath);
|
const contentBytes = await this.operations.read(relativePath);
|
||||||
console.log("has read", relativePath);
|
console.log("has read", relativePath);
|
||||||
|
await sleep(1000);
|
||||||
|
|
||||||
let contentHash = hash(contentBytes);
|
let contentHash = hash(contentBytes);
|
||||||
console.log("has hashed", relativePath);
|
console.log("has hashed", relativePath);
|
||||||
|
await sleep(1000);
|
||||||
|
|
||||||
if (
|
if (
|
||||||
localMetadata.hash === contentHash &&
|
localMetadata.hash === contentHash &&
|
||||||
|
|
@ -322,6 +326,7 @@ export class Syncer {
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log("about to send", relativePath);
|
console.log("about to send", relativePath);
|
||||||
|
await sleep(1000);
|
||||||
|
|
||||||
const response = await this.syncService.put({
|
const response = await this.syncService.put({
|
||||||
documentId: localMetadata.documentId,
|
documentId: localMetadata.documentId,
|
||||||
|
|
@ -332,6 +337,7 @@ export class Syncer {
|
||||||
});
|
});
|
||||||
|
|
||||||
console.log("has sent", relativePath);
|
console.log("has sent", relativePath);
|
||||||
|
await sleep(1000);
|
||||||
|
|
||||||
this.history.addHistoryEntry({
|
this.history.addHistoryEntry({
|
||||||
status: SyncStatus.SUCCESS,
|
status: SyncStatus.SUCCESS,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue