mirror of
https://github.com/vrtmrz/obsidian-livesync.git
synced 2026-03-06 18:08:48 +00:00
Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4048186bb5 | ||
|
|
2b94fd9139 | ||
|
|
ec72ece86d | ||
|
|
e394a994c5 | ||
|
|
aa23b6a39a |
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"id": "obsidian-livesync",
|
||||
"name": "Self-hosted LiveSync",
|
||||
"version": "0.25.14",
|
||||
"version": "0.25.16",
|
||||
"minAppVersion": "0.9.12",
|
||||
"description": "Community implementation of self-hosted livesync. Reflect your vault changes to some other devices immediately. Please make sure to disable other synchronize solutions to avoid content corruption or duplication.",
|
||||
"author": "vorotamoroz",
|
||||
|
||||
54
package-lock.json
generated
54
package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "obsidian-livesync",
|
||||
"version": "0.25.14",
|
||||
"version": "0.25.16",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "obsidian-livesync",
|
||||
"version": "0.25.14",
|
||||
"version": "0.25.16",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@aws-sdk/client-s3": "^3.808.0",
|
||||
@@ -23,7 +23,7 @@
|
||||
"octagonal-wheels": "^0.1.38",
|
||||
"qrcode-generator": "^1.4.4",
|
||||
"svelte-check": "^4.1.7",
|
||||
"trystero": "^0.21.7",
|
||||
"trystero": "github:vrtmrz/trystero#9e892a93ec14eeb57ce806d272fbb7c3935256d8",
|
||||
"xxhash-wasm-102": "npm:xxhash-wasm@^1.0.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
@@ -8752,9 +8752,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/path-scurry/node_modules/lru-cache": {
|
||||
"version": "11.1.0",
|
||||
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.1.0.tgz",
|
||||
"integrity": "sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==",
|
||||
"version": "11.2.1",
|
||||
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.1.tgz",
|
||||
"integrity": "sha512-r8LA6i4LP4EeWOhqBaZZjDWwehd1xUJPCJd9Sv300H0ZmcUER4+JPh7bqqZeqs1o5pgtgvXm+d9UGrB5zZGDiQ==",
|
||||
"dev": true,
|
||||
"license": "ISC",
|
||||
"engines": {
|
||||
@@ -10365,20 +10365,29 @@
|
||||
}
|
||||
},
|
||||
"node_modules/trystero": {
|
||||
"version": "0.21.7",
|
||||
"resolved": "https://registry.npmjs.org/trystero/-/trystero-0.21.7.tgz",
|
||||
"integrity": "sha512-SdpxC9Q29bDBUdIWvkELHvOlmpelHAbjgclXR6cPeUWeLkbyY8ku2ZCJjozO4L2CLOMiclOoMKdmtpYLAwZvIw==",
|
||||
"version": "0.21.8",
|
||||
"resolved": "git+ssh://git@github.com/vrtmrz/trystero.git#9e892a93ec14eeb57ce806d272fbb7c3935256d8",
|
||||
"integrity": "sha512-LUlmTTSxgomyYvU1K05snl18+GLAxqO4W8P9lePLbRnZVJyGZUVXMM4/aW9384GtIf0VLJquloWqz9PriJZg2w==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@noble/secp256k1": "^1.7.1",
|
||||
"@noble/secp256k1": "^3.0.0",
|
||||
"@supabase/supabase-js": "^2.49.8",
|
||||
"@waku/discovery": "^0.0.8",
|
||||
"@waku/sdk": "^0.0.31",
|
||||
"firebase": "^12.0.0",
|
||||
"firebase": "^12.2.1",
|
||||
"libp2p": "^2.8.8",
|
||||
"mqtt": "^5.13.0"
|
||||
}
|
||||
},
|
||||
"node_modules/trystero/node_modules/@noble/secp256k1": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-3.0.0.tgz",
|
||||
"integrity": "sha512-NJBaR352KyIvj3t6sgT/+7xrNyF9Xk9QlLSIqUGVUYlsnDTAUqY8LOmwpcgEx4AMJXRITQ5XEVHD+mMaPfr3mg==",
|
||||
"license": "MIT",
|
||||
"funding": {
|
||||
"url": "https://paulmillr.com/funding/"
|
||||
}
|
||||
},
|
||||
"node_modules/ts-api-utils": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.0.1.tgz",
|
||||
@@ -17147,9 +17156,9 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"lru-cache": {
|
||||
"version": "11.1.0",
|
||||
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.1.0.tgz",
|
||||
"integrity": "sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==",
|
||||
"version": "11.2.1",
|
||||
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.1.tgz",
|
||||
"integrity": "sha512-r8LA6i4LP4EeWOhqBaZZjDWwehd1xUJPCJd9Sv300H0ZmcUER4+JPh7bqqZeqs1o5pgtgvXm+d9UGrB5zZGDiQ==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
@@ -18229,17 +18238,24 @@
|
||||
}
|
||||
},
|
||||
"trystero": {
|
||||
"version": "0.21.7",
|
||||
"resolved": "https://registry.npmjs.org/trystero/-/trystero-0.21.7.tgz",
|
||||
"integrity": "sha512-SdpxC9Q29bDBUdIWvkELHvOlmpelHAbjgclXR6cPeUWeLkbyY8ku2ZCJjozO4L2CLOMiclOoMKdmtpYLAwZvIw==",
|
||||
"version": "git+ssh://git@github.com/vrtmrz/trystero.git#9e892a93ec14eeb57ce806d272fbb7c3935256d8",
|
||||
"integrity": "sha512-LUlmTTSxgomyYvU1K05snl18+GLAxqO4W8P9lePLbRnZVJyGZUVXMM4/aW9384GtIf0VLJquloWqz9PriJZg2w==",
|
||||
"from": "trystero@github:vrtmrz/trystero#9e892a93ec14eeb57ce806d272fbb7c3935256d8",
|
||||
"requires": {
|
||||
"@noble/secp256k1": "^1.7.1",
|
||||
"@noble/secp256k1": "^3.0.0",
|
||||
"@supabase/supabase-js": "^2.49.8",
|
||||
"@waku/discovery": "^0.0.8",
|
||||
"@waku/sdk": "^0.0.31",
|
||||
"firebase": "^12.0.0",
|
||||
"firebase": "^12.2.1",
|
||||
"libp2p": "^2.8.8",
|
||||
"mqtt": "^5.13.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"@noble/secp256k1": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-3.0.0.tgz",
|
||||
"integrity": "sha512-NJBaR352KyIvj3t6sgT/+7xrNyF9Xk9QlLSIqUGVUYlsnDTAUqY8LOmwpcgEx4AMJXRITQ5XEVHD+mMaPfr3mg=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"ts-api-utils": {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "obsidian-livesync",
|
||||
"version": "0.25.14",
|
||||
"version": "0.25.16",
|
||||
"description": "Reflect your vault changes to some other devices immediately. Please make sure to disable other synchronize solutions to avoid content corruption or duplication.",
|
||||
"main": "main.js",
|
||||
"type": "module",
|
||||
@@ -95,7 +95,7 @@
|
||||
"octagonal-wheels": "^0.1.38",
|
||||
"qrcode-generator": "^1.4.4",
|
||||
"svelte-check": "^4.1.7",
|
||||
"trystero": "^0.21.7",
|
||||
"trystero": "github:vrtmrz/trystero#9e892a93ec14eeb57ce806d272fbb7c3935256d8",
|
||||
"xxhash-wasm-102": "npm:xxhash-wasm@^1.0.2"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -174,6 +174,13 @@ export class P2PReplicator
|
||||
if (this.settings.P2P_Enabled && this.settings.P2P_AutoStart) {
|
||||
setTimeout(() => void this.open(), 100);
|
||||
}
|
||||
const rep = this._replicatorInstance;
|
||||
rep?.allowReconnection();
|
||||
return Promise.resolve(true);
|
||||
}
|
||||
$everyBeforeSuspendProcess(): Promise<boolean> {
|
||||
const rep = this._replicatorInstance;
|
||||
rep?.disconnectFromServer();
|
||||
return Promise.resolve(true);
|
||||
}
|
||||
}
|
||||
|
||||
2
src/lib
2
src/lib
Submodule src/lib updated: f21001fcb2...c00f62f060
@@ -209,8 +209,8 @@ export class ModuleMigration extends AbstractModule implements ICoreModule {
|
||||
const messageUnrecoverable =
|
||||
unrecoverable.length > 0
|
||||
? $msg("moduleMigration.fix0256.messageUnrecoverable", {
|
||||
filesNotRecoverable: unrecoverable.map((e) => `- ${fileInfo(e)}`).join("\n"),
|
||||
})
|
||||
filesNotRecoverable: unrecoverable.map((e) => `- ${fileInfo(e)}`).join("\n"),
|
||||
})
|
||||
: "";
|
||||
|
||||
const message = $msg("moduleMigration.fix0256.message", {
|
||||
|
||||
@@ -140,6 +140,7 @@ export class ModuleObsidianSettings extends AbstractObsidianModule implements IO
|
||||
jwtSub: settings.jwtSub,
|
||||
useRequestAPI: settings.useRequestAPI,
|
||||
bucketPrefix: settings.bucketPrefix,
|
||||
forcePathStyle: settings.forcePathStyle,
|
||||
};
|
||||
settings.encryptedCouchDBConnection = await this.encryptConfigurationItem(
|
||||
JSON.stringify(connectionSetting),
|
||||
|
||||
@@ -859,26 +859,7 @@ export class ObsidianLiveSyncSettingTab extends PluginSettingTab {
|
||||
}
|
||||
|
||||
getMinioJournalSyncClient() {
|
||||
const id = this.plugin.settings.accessKey;
|
||||
const key = this.plugin.settings.secretKey;
|
||||
const bucket = this.plugin.settings.bucket;
|
||||
const prefix = this.plugin.settings.bucketPrefix;
|
||||
const region = this.plugin.settings.region;
|
||||
const endpoint = this.plugin.settings.endpoint;
|
||||
const useCustomRequestHandler = this.plugin.settings.useCustomRequestHandler;
|
||||
const customHeaders = this.plugin.settings.bucketCustomHeaders;
|
||||
return new JournalSyncMinio(
|
||||
id,
|
||||
key,
|
||||
endpoint,
|
||||
bucket,
|
||||
prefix,
|
||||
this.plugin.simpleStore,
|
||||
this.plugin,
|
||||
useCustomRequestHandler,
|
||||
region,
|
||||
customHeaders
|
||||
);
|
||||
return new JournalSyncMinio(this.plugin.settings, this.plugin.simpleStore, this.plugin);
|
||||
}
|
||||
async resetRemoteBucket() {
|
||||
const minioJournal = this.getMinioJournalSyncClient();
|
||||
|
||||
@@ -320,6 +320,7 @@ The pane also can be launched by \`P2P Replicator\` command from the Command Pal
|
||||
syncWarnMinio.addClass("op-warn-info");
|
||||
|
||||
new Setting(paneEl).autoWireText("endpoint", { holdValue: true });
|
||||
new Setting(paneEl).autoWireToggle("forcePathStyle", { holdValue: true });
|
||||
new Setting(paneEl).autoWireText("accessKey", { holdValue: true });
|
||||
|
||||
new Setting(paneEl).autoWireText("secretKey", {
|
||||
|
||||
39
updates.md
39
updates.md
@@ -1,3 +1,22 @@
|
||||
## 0.25.16
|
||||
|
||||
4th September, 2025
|
||||
|
||||
### Improved
|
||||
- Improved connectivity for P2P connections
|
||||
- The connection to the signalling server can now be disconnected while in the background or when explicitly disconnected.
|
||||
- These features use a patch that has not been incorporated upstream.
|
||||
- This patch is available at [vrtmrz/trystero](https://github.com/vrtmrz/trystero).
|
||||
|
||||
## 0.25.15
|
||||
|
||||
3rd September, 2025
|
||||
|
||||
### Improved
|
||||
|
||||
- Now we can configure `forcePathStyle` for bucket synchronisation (#707).
|
||||
|
||||
|
||||
## 0.25.14
|
||||
|
||||
2nd September, 2025
|
||||
@@ -54,26 +73,6 @@
|
||||
- Some files have been moved to better reflect their purpose and improve maintainability.
|
||||
- The extensive LiveSyncLocalDB has been split into separate files for each role.
|
||||
|
||||
## 0.25.9
|
||||
|
||||
20th August, 2025
|
||||
|
||||
### Fixed
|
||||
|
||||
- CORS Checking messages now use replacements.
|
||||
- Configuring CORS setting via the UI now respects the existing rules.
|
||||
- Now startup-checking works correctly again, performs migration check serially and then it will also fix starting LiveSync or start-up sync. (#696)
|
||||
- Statusline in editor now supported 'Bases'.
|
||||
|
||||
## 0.25.8
|
||||
|
||||
18th August, 2025
|
||||
|
||||
### New feature
|
||||
|
||||
- Insecure chunk detection has been implemented.
|
||||
- A notification dialogue will be shown if any insecure chunks are detected; these may have been created by v0.25.6 due to its issue. If this dialogue appears, please ensure you rebuild the database after backing it up.
|
||||
|
||||
### Fixed
|
||||
|
||||
- Unexpected `Failed to obtain PBKDF2 salt` or similar errors during bucket-synchronisation no longer occur.
|
||||
|
||||
@@ -11,6 +11,25 @@ As a result, this is the first time in a while that forward compatibility has be
|
||||
|
||||
---
|
||||
|
||||
## 0.25.9
|
||||
|
||||
20th August, 2025
|
||||
|
||||
### Fixed
|
||||
|
||||
- CORS Checking messages now use replacements.
|
||||
- Configuring CORS setting via the UI now respects the existing rules.
|
||||
- Now startup-checking works correctly again, performs migration check serially and then it will also fix starting LiveSync or start-up sync. (#696)
|
||||
- Statusline in editor now supported 'Bases'.
|
||||
|
||||
## 0.25.8
|
||||
|
||||
18th August, 2025
|
||||
|
||||
### New feature
|
||||
|
||||
- Insecure chunk detection has been implemented.
|
||||
- A notification dialogue will be shown if any insecure chunks are detected; these may have been created by v0.25.6 due to its issue. If this dialogue appears, please ensure you rebuild the database after backing it up.
|
||||
|
||||
## 0.25.7
|
||||
|
||||
|
||||
Reference in New Issue
Block a user