0.24.0.dev-rc3

This commit is contained in:
vorotamoroz
2024-10-17 10:19:08 +01:00
parent 095a3d20fb
commit 7ca5ac5ac7
10 changed files with 59 additions and 49 deletions

View File

@@ -1,7 +1,7 @@
{ {
"id": "obsidian-livesync", "id": "obsidian-livesync",
"name": "Self-hosted LiveSync", "name": "Self-hosted LiveSync",
"version": "0.24.0.dev-rc2", "version": "0.24.0.dev-rc3",
"minAppVersion": "0.9.12", "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.", "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", "author": "vorotamoroz",

4
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{ {
"name": "obsidian-livesync", "name": "obsidian-livesync",
"version": "0.24.0.dev-rc2", "version": "0.24.0.dev-rc3",
"lockfileVersion": 2, "lockfileVersion": 2,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "obsidian-livesync", "name": "obsidian-livesync",
"version": "0.24.0.dev-rc2", "version": "0.24.0.dev-rc3",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@aws-sdk/client-s3": "^3.645.0", "@aws-sdk/client-s3": "^3.645.0",

View File

@@ -1,6 +1,6 @@
{ {
"name": "obsidian-livesync", "name": "obsidian-livesync",
"version": "0.24.0.dev-rc2", "version": "0.24.0.dev-rc3",
"description": "Reflect your vault changes to some other devices immediately. Please make sure to disable other synchronize solutions to avoid content corruption or duplication.", "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", "main": "main.js",
"type": "module", "type": "module",

View File

@@ -343,7 +343,7 @@ export class ConfigSync extends LiveSyncCommands implements IObsidianModule {
get useSyncPluginEtc() { get useSyncPluginEtc() {
return this.plugin.settings.usePluginEtc; return this.plugin.settings.usePluginEtc;
} }
$isThisModuleEnabled() { _isThisModuleEnabled() {
return this.plugin.settings.usePluginSync; return this.plugin.settings.usePluginSync;
} }
@@ -352,7 +352,7 @@ export class ConfigSync extends LiveSyncCommands implements IObsidianModule {
pluginList: IPluginDataExDisplay[] = []; pluginList: IPluginDataExDisplay[] = [];
showPluginSyncModal() { showPluginSyncModal() {
if (!this.$isThisModuleEnabled()) { if (!this._isThisModuleEnabled()) {
return; return;
} }
if (this.pluginDialog) { if (this.pluginDialog) {
@@ -417,7 +417,7 @@ export class ConfigSync extends LiveSyncCommands implements IObsidianModule {
return this.getFileCategory(filePath) != ""; return this.getFileCategory(filePath) != "";
} }
async $everyOnDatabaseInitialized(showNotice: boolean) { async $everyOnDatabaseInitialized(showNotice: boolean) {
if (!this.$isThisModuleEnabled()) return true; if (!this._isThisModuleEnabled()) return true;
try { try {
Logger("Scanning customizations..."); Logger("Scanning customizations...");
await this.scanAllConfigFiles(showNotice); await this.scanAllConfigFiles(showNotice);
@@ -429,7 +429,7 @@ export class ConfigSync extends LiveSyncCommands implements IObsidianModule {
return true; return true;
} }
async $everyBeforeReplicate(showNotice: boolean) { async $everyBeforeReplicate(showNotice: boolean) {
if (!this.$isThisModuleEnabled()) return true; if (!this._isThisModuleEnabled()) return true;
if (this.settings.autoSweepPlugins) { if (this.settings.autoSweepPlugins) {
await this.scanAllConfigFiles(showNotice); await this.scanAllConfigFiles(showNotice);
return true; return true;
@@ -437,8 +437,8 @@ export class ConfigSync extends LiveSyncCommands implements IObsidianModule {
return true; return true;
} }
async $everyOnResumeProcess(): Promise<boolean> { async $everyOnResumeProcess(): Promise<boolean> {
if (!this.$isThisModuleEnabled()) return true; if (!this._isThisModuleEnabled()) return true;
if (this.$isMainSuspended()) { if (this._isMainSuspended()) {
return true; return true;
} }
if (this.settings.autoSweepPlugins) { if (this.settings.autoSweepPlugins) {
@@ -449,7 +449,7 @@ export class ConfigSync extends LiveSyncCommands implements IObsidianModule {
} }
$everyAfterResumeProcess(): Promise<boolean> { $everyAfterResumeProcess(): Promise<boolean> {
const q = activeDocument.querySelector(`.livesync-ribbon-showcustom`); const q = activeDocument.querySelector(`.livesync-ribbon-showcustom`);
q?.toggleClass("sls-hidden", !this.$isThisModuleEnabled()); q?.toggleClass("sls-hidden", !this._isThisModuleEnabled());
return Promise.resolve(true); return Promise.resolve(true);
} }
async reloadPluginList(showMessage: boolean) { async reloadPluginList(showMessage: boolean) {
@@ -754,7 +754,7 @@ export class ConfigSync extends LiveSyncCommands implements IObsidianModule {
} }
async updatePluginList(showMessage: boolean, updatedDocumentPath?: FilePathWithPrefix): Promise<void> { async updatePluginList(showMessage: boolean, updatedDocumentPath?: FilePathWithPrefix): Promise<void> {
if (!this.$isThisModuleEnabled()) { if (!this._isThisModuleEnabled()) {
this.pluginScanProcessor.clearQueue(); this.pluginScanProcessor.clearQueue();
this.pluginList = []; this.pluginList = [];
pluginList.set(this.pluginList) pluginList.set(this.pluginList)
@@ -1019,10 +1019,10 @@ export class ConfigSync extends LiveSyncCommands implements IObsidianModule {
} }
async $anyModuleParsedReplicationResultItem(docs: PouchDB.Core.ExistingDocument<EntryDoc>) { async $anyModuleParsedReplicationResultItem(docs: PouchDB.Core.ExistingDocument<EntryDoc>) {
if (!docs._id.startsWith(ICXHeader)) return undefined; if (!docs._id.startsWith(ICXHeader)) return undefined;
if (this.$isThisModuleEnabled()) { if (this._isThisModuleEnabled()) {
await this.updatePluginList(false, (docs as AnyEntry).path ? (docs as AnyEntry).path : this.getPath((docs as AnyEntry))); await this.updatePluginList(false, (docs as AnyEntry).path ? (docs as AnyEntry).path : this.getPath((docs as AnyEntry)));
} }
if (this.$isThisModuleEnabled() && this.plugin.settings.notifyPluginOrSettingUpdated) { if (this._isThisModuleEnabled() && this.plugin.settings.notifyPluginOrSettingUpdated) {
if (!this.pluginDialog || (this.pluginDialog && !this.pluginDialog.isOpened())) { if (!this.pluginDialog || (this.pluginDialog && !this.pluginDialog.isOpened())) {
const fragment = createFragment((doc) => { const fragment = createFragment((doc) => {
doc.createEl("span", undefined, (a) => { doc.createEl("span", undefined, (a) => {
@@ -1063,9 +1063,9 @@ export class ConfigSync extends LiveSyncCommands implements IObsidianModule {
} }
async $everyRealizeSettingSyncMode(): Promise<boolean> { async $everyRealizeSettingSyncMode(): Promise<boolean> {
this.periodicPluginSweepProcessor?.disable(); this.periodicPluginSweepProcessor?.disable();
if (!this.$isMainReady) return true; if (!this._isMainReady) return true;
if (!this.$isMainSuspended()) return true; if (!this._isMainSuspended()) return true;
if (!this.$isThisModuleEnabled()) return true; if (!this._isThisModuleEnabled()) return true;
if (this.settings.autoSweepPlugins) { if (this.settings.autoSweepPlugins) {
await this.scanAllConfigFiles(false); await this.scanAllConfigFiles(false);
} }
@@ -1323,9 +1323,9 @@ export class ConfigSync extends LiveSyncCommands implements IObsidianModule {
} }
async watchVaultRawEventsAsync(path: FilePath) { async watchVaultRawEventsAsync(path: FilePath) {
// if (!this.$isMainReady) return true; if (!this._isMainReady) return true;
// if (!this.$isMainSuspended()) return true; if (!this._isMainSuspended()) return true;
if (!this.$isThisModuleEnabled()) return true; if (!this._isThisModuleEnabled()) return true;
if (!this.isTargetPath(path)) return false; if (!this.isTargetPath(path)) return false;
const stat = await this.plugin.storageAccess.statHidden(path); const stat = await this.plugin.storageAccess.statHidden(path);
// Make sure that target is a file. // Make sure that target is a file.

View File

@@ -14,11 +14,11 @@ import type { IObsidianModule } from "../../modules/AbstractObsidianModule.ts";
export class HiddenFileSync extends LiveSyncCommands implements IObsidianModule { export class HiddenFileSync extends LiveSyncCommands implements IObsidianModule {
$isThisModuleEnabled() { _isThisModuleEnabled() {
return this.plugin.settings.syncInternalFiles; return this.plugin.settings.syncInternalFiles;
} }
periodicInternalFileScanProcessor: PeriodicProcessor = new PeriodicProcessor(this.plugin, async () => this.$isThisModuleEnabled() && this.$isDatabaseReady() && await this.syncInternalFilesAndDatabase("push", false)); periodicInternalFileScanProcessor: PeriodicProcessor = new PeriodicProcessor(this.plugin, async () => this._isThisModuleEnabled() && this._isDatabaseReady() && await this.syncInternalFilesAndDatabase("push", false));
get kvDB() { get kvDB() {
return this.plugin.kvDB; return this.plugin.kvDB;
@@ -39,7 +39,7 @@ export class HiddenFileSync extends LiveSyncCommands implements IObsidianModule
}); });
} }
async $everyOnDatabaseInitialized(showNotice: boolean) { async $everyOnDatabaseInitialized(showNotice: boolean) {
if (this.$isThisModuleEnabled()) { if (this._isThisModuleEnabled()) {
try { try {
Logger("Synchronizing hidden files..."); Logger("Synchronizing hidden files...");
await this.syncInternalFilesAndDatabase("push", showNotice); await this.syncInternalFilesAndDatabase("push", showNotice);
@@ -52,7 +52,7 @@ export class HiddenFileSync extends LiveSyncCommands implements IObsidianModule
return true; return true;
} }
async $everyBeforeReplicate(showNotice: boolean) { async $everyBeforeReplicate(showNotice: boolean) {
if (this.$isThisModuleEnabled() && this.$isDatabaseReady() && this.settings.syncInternalFilesBeforeReplication && !this.settings.watchInternalFileChanges) { if (this._isThisModuleEnabled() && this._isDatabaseReady() && this.settings.syncInternalFilesBeforeReplication && !this.settings.watchInternalFileChanges) {
await this.syncInternalFilesAndDatabase("push", showNotice); await this.syncInternalFilesAndDatabase("push", showNotice);
} }
return true; return true;
@@ -61,22 +61,22 @@ export class HiddenFileSync extends LiveSyncCommands implements IObsidianModule
async $everyOnResumeProcess(): Promise<boolean> { async $everyOnResumeProcess(): Promise<boolean> {
this.periodicInternalFileScanProcessor?.disable(); this.periodicInternalFileScanProcessor?.disable();
if (this.$isMainSuspended()) if (this._isMainSuspended())
return true; return true;
if (this.$isThisModuleEnabled()) { if (this._isThisModuleEnabled()) {
await this.syncInternalFilesAndDatabase("safe", false); await this.syncInternalFilesAndDatabase("safe", false);
} }
this.periodicInternalFileScanProcessor.enable(this.$isThisModuleEnabled() && this.settings.syncInternalFilesInterval ? (this.settings.syncInternalFilesInterval * 1000) : 0); this.periodicInternalFileScanProcessor.enable(this._isThisModuleEnabled() && this.settings.syncInternalFilesInterval ? (this.settings.syncInternalFilesInterval * 1000) : 0);
return true return true
} }
$everyRealizeSettingSyncMode(): Promise<boolean> { $everyRealizeSettingSyncMode(): Promise<boolean> {
this.periodicInternalFileScanProcessor?.disable(); this.periodicInternalFileScanProcessor?.disable();
if (this.$isMainSuspended()) if (this._isMainSuspended())
return Promise.resolve(true); return Promise.resolve(true);
if (!this.plugin.isReady) if (!this.plugin.isReady)
return Promise.resolve(true); return Promise.resolve(true);
this.periodicInternalFileScanProcessor.enable(this.$isThisModuleEnabled() && this.settings.syncInternalFilesInterval ? (this.settings.syncInternalFilesInterval * 1000) : 0); this.periodicInternalFileScanProcessor.enable(this._isThisModuleEnabled() && this.settings.syncInternalFilesInterval ? (this.settings.syncInternalFilesInterval * 1000) : 0);
return Promise.resolve(true); return Promise.resolve(true);
} }
@@ -98,7 +98,7 @@ export class HiddenFileSync extends LiveSyncCommands implements IObsidianModule
return await this.watchVaultRawEventsAsync(path); return await this.watchVaultRawEventsAsync(path);
} }
async watchVaultRawEventsAsync(path: FilePath): Promise<boolean | undefined> { async watchVaultRawEventsAsync(path: FilePath): Promise<boolean | undefined> {
if (!this.$isThisModuleEnabled()) return false; if (!this._isThisModuleEnabled()) return false;
if (!isInternalMetadata(path)) return false; if (!isInternalMetadata(path)) return false;
// Exclude files handled by customization sync // Exclude files handled by customization sync
@@ -274,7 +274,7 @@ export class HiddenFileSync extends LiveSyncCommands implements IObsidianModule
} }
async $anyProcessOptionalSyncFiles(doc: LoadedEntry): Promise<boolean | undefined> { async $anyProcessOptionalSyncFiles(doc: LoadedEntry): Promise<boolean | undefined> {
if (isInternalMetadata(doc._id) && this.$isThisModuleEnabled()) { if (isInternalMetadata(doc._id) && this._isThisModuleEnabled()) {
//system file //system file
const filename = getPath(doc); const filename = getPath(doc);
if (await this.plugin.$$isTargetFile(filename)) { if (await this.plugin.$$isTargetFile(filename)) {

View File

@@ -31,13 +31,13 @@ export abstract class LiveSyncCommands {
abstract onunload(): void; abstract onunload(): void;
abstract onload(): void | Promise<void>; abstract onload(): void | Promise<void>;
$isMainReady() { _isMainReady() {
return this.plugin.$isMainReady(); return this.plugin._isMainReady();
} }
$isMainSuspended() { _isMainSuspended() {
return this.plugin.$isMainSuspended(); return this.plugin._isMainSuspended();
} }
$isDatabaseReady() { _isDatabaseReady() {
return this.plugin.$isDatabaseReady(); return this.plugin._isDatabaseReady();
} }
} }

View File

@@ -618,10 +618,10 @@ export default class ObsidianLiveSyncPlugin extends Plugin implements LiveSyncLo
$everyModuleTestMultiDevice(): Promise<boolean> { return InterceptiveEvery; } $everyModuleTestMultiDevice(): Promise<boolean> { return InterceptiveEvery; }
$$addTestResult(name: string, key: string, result: boolean, summary?: string, message?: string): void { throwShouldBeOverridden(); } $$addTestResult(name: string, key: string, result: boolean, summary?: string, message?: string): void { throwShouldBeOverridden(); }
$isMainReady(): boolean { return this.isReady; } _isMainReady(): boolean { return this.isReady; }
$isMainSuspended(): boolean { return this.suspended; } _isMainSuspended(): boolean { return this.suspended; }
$isThisModuleEnabled(): boolean { return true; } _isThisModuleEnabled(): boolean { return true; }
$isDatabaseReady(): boolean { return this.localDatabase.isReady; } _isDatabaseReady(): boolean { return this.localDatabase.isReady; }
$anyGetAppId(): Promise<string | undefined> { return InterceptiveAny; } $anyGetAppId(): Promise<string | undefined> { return InterceptiveAny; }
} }

View File

@@ -38,18 +38,18 @@ export abstract class AbstractObsidianModule extends AbstractModule {
saveSettings = this.plugin.saveSettings.bind(this.plugin); saveSettings = this.plugin.saveSettings.bind(this.plugin);
$isMainReady() { _isMainReady() {
return this.core.$isMainReady(); return this.core._isMainReady();
} }
$isMainSuspended() { _isMainSuspended() {
return this.core.$isMainSuspended(); return this.core._isMainSuspended();
} }
$isDatabaseReady() { _isDatabaseReady() {
return this.core.$isDatabaseReady(); return this.core._isDatabaseReady();
} }
//should be overridden //should be overridden
$isThisModuleEnabled() { _isThisModuleEnabled() {
return true return true
} }
} }

View File

@@ -9,9 +9,12 @@ import { writable } from "svelte/store";
export class ModuleDev extends AbstractObsidianModule implements IObsidianModule { export class ModuleDev extends AbstractObsidianModule implements IObsidianModule {
$everyOnloadStart(): Promise<boolean> {
__onMissingTranslation(() => { });
return Promise.resolve(true);
}
$everyOnloadAfterLoadSettings(): Promise<boolean> { $everyOnloadAfterLoadSettings(): Promise<boolean> {
if (!this.settings.enableDebugTools) return Promise.resolve(true); if (!this.settings.enableDebugTools) return Promise.resolve(true);
__onMissingTranslation(() => { });
// eslint-disable-next-line no-unused-labels // eslint-disable-next-line no-unused-labels
__onMissingTranslation((key) => { __onMissingTranslation((key) => {
const now = new Date(); const now = new Date();

View File

@@ -23,6 +23,13 @@ Thank you, and I hope your troubles will be resolved!
--- ---
## 0.24.0.dev-rc3
### Fixed
- No longer Missing Translation Warning is shown in the console.
- Fixed the issue where some functions were not working properly (`_` started functions).
## 0.24.0.dev-rc2 ## 0.24.0.dev-rc2
### Fixed ### Fixed