fix a bit some, node-importing is now barrelled into one file.

This commit is contained in:
vorotamoroz
2026-06-12 10:13:10 +01:00
parent edb857f50d
commit 8764f447f9
21 changed files with 42 additions and 36 deletions
+1 -1
View File
@@ -25,7 +25,7 @@ export declare class EntryManager {
setting: ISettingService; setting: ISettingService;
path: IPathService; path: IPathService;
}; };
serviceModules: {}; serviceModules: never;
}; };
get isOnDemandChunkEnabled(): boolean; get isOnDemandChunkEnabled(): boolean;
isTargetFile(filenameSrc: string): boolean; isTargetFile(filenameSrc: string): boolean;
@@ -57,7 +57,6 @@ export type AllReplicationClientStatus = {
export declare class TrysteroReplicator { export declare class TrysteroReplicator {
_env: ReplicatorHostEnv; _env: ReplicatorHostEnv;
server?: P2PHost; server?: P2PHost;
replicationStatus(): {};
get settings(): import("@lib/common/models/setting.type").P2PSyncSetting; get settings(): import("@lib/common/models/setting.type").P2PSyncSetting;
get db(): PouchDB.Database<EntryDoc>; get db(): PouchDB.Database<EntryDoc>;
get deviceName(): string; get deviceName(): string;
+9
View File
@@ -4,9 +4,18 @@ try {
fs.rmSync("./_types", { recursive: true, force: true }); fs.rmSync("./_types", { recursive: true, force: true });
console.log("[Postbuild] Generating type definitions for fallback..."); console.log("[Postbuild] Generating type definitions for fallback...");
execSync("npx tsc -p tsconfig.types.json", { stdio: "inherit" }); execSync("npx tsc -p tsconfig.types.json", { stdio: "inherit" });
console.log("[Postbuild] Type definitions generated successfully."); console.log("[Postbuild] Type definitions generated successfully.");
} catch (error) { } catch (error) {
// Ignore compiler errors from tsc so that pre-existing type errors in the submodule // Ignore compiler errors from tsc so that pre-existing type errors in the submodule
// do not block the build from succeeding. // do not block the build from succeeding.
console.warn("[Postbuild] Type definitions generated with some compilation warnings."); console.warn("[Postbuild] Type definitions generated with some compilation warnings.");
} }
try {
console.log("[Postbuild] Type definitions generated successfully. Adding ignore comments...");
execSync("Deno run -A ./utilsdeno/types-add-ignore.ts", { stdio: "inherit" });
console.log("[Postbuild] Ignore comments added successfully.");
} catch (error) {
console.warn("[Postbuild] Failed to add ignore comments to type definitions.");
}
@@ -1,4 +1,4 @@
import * as path from "path"; import { nodePath as path } from "@cli/lib/nodeModules";
import type { UXFileInfoStub, UXFolderInfo } from "@lib/common/models/fileaccess.type"; import type { UXFileInfoStub, UXFolderInfo } from "@lib/common/models/fileaccess.type";
import type { IConversionAdapter } from "@lib/serviceModules/adapters"; import type { IConversionAdapter } from "@lib/serviceModules/adapters";
import type { NodeFile, NodeFolder } from "./NodeTypes"; import type { NodeFile, NodeFolder } from "./NodeTypes";
@@ -1,5 +1,4 @@
import * as fs from "fs/promises"; import { nodePath as path, fs } from "@cli/lib/nodeModules";
import * as path from "path";
import type { FilePath } from "@lib/common/models/db.type"; import type { FilePath } from "@lib/common/models/db.type";
import type { UXStat } from "@lib/common/models/fileaccess.type"; import type { UXStat } from "@lib/common/models/fileaccess.type";
import type { IFileSystemAdapter } from "@lib/serviceModules/adapters"; import type { IFileSystemAdapter } from "@lib/serviceModules/adapters";
+1 -1
View File
@@ -1,4 +1,4 @@
import * as path from "path"; import { nodePath as path } from "@cli/lib/nodeModules";
import type { FilePath } from "@lib/common/models/db.type"; import type { FilePath } from "@lib/common/models/db.type";
import type { IPathAdapter } from "@lib/serviceModules/adapters"; import type { IPathAdapter } from "@lib/serviceModules/adapters";
import type { NodeFile } from "./NodeTypes"; import type { NodeFile } from "./NodeTypes";
+1 -2
View File
@@ -1,5 +1,4 @@
import * as fs from "fs/promises"; import { nodePath as path, fs } from "@cli/lib/nodeModules";
import * as path from "path";
import type { UXDataWriteOptions } from "@lib/common/models/fileaccess.type"; import type { UXDataWriteOptions } from "@lib/common/models/fileaccess.type";
import type { IStorageAdapter } from "@lib/serviceModules/adapters"; import type { IStorageAdapter } from "@lib/serviceModules/adapters";
import type { NodeStat } from "./NodeTypes"; import type { NodeStat } from "./NodeTypes";
+1 -2
View File
@@ -1,5 +1,4 @@
import * as fs from "fs/promises"; import { nodePath as path, fs } from "@cli/lib/nodeModules";
import * as path from "path";
import type { UXDataWriteOptions } from "@lib/common/models/fileaccess.type"; import type { UXDataWriteOptions } from "@lib/common/models/fileaccess.type";
import type { IVaultAdapter } from "@lib/serviceModules/adapters"; import type { IVaultAdapter } from "@lib/serviceModules/adapters";
import type { NodeFile, NodeFolder } from "./NodeTypes"; import type { NodeFile, NodeFolder } from "./NodeTypes";
+2 -1
View File
@@ -2,13 +2,14 @@ import { P2P_DEFAULT_SETTINGS } from "@lib/common/models/setting.const.defaults"
import { LiveSyncTrysteroReplicator } from "@lib/replication/trystero/LiveSyncTrysteroReplicator"; import { LiveSyncTrysteroReplicator } from "@lib/replication/trystero/LiveSyncTrysteroReplicator";
import type { ServiceContext } from "@lib/services/base/ServiceBase"; import type { ServiceContext } from "@lib/services/base/ServiceBase";
import type { LiveSyncBaseCore } from "@/LiveSyncBaseCore"; import type { LiveSyncBaseCore } from "@/LiveSyncBaseCore";
import { compatGlobal } from "@lib/common/coreEnvFunctions";
type CLIP2PPeer = { type CLIP2PPeer = {
peerId: string; peerId: string;
name: string; name: string;
}; };
function delay(ms: number): Promise<void> { function delay(ms: number): Promise<void> {
return new Promise((resolve) => setTimeout(resolve, ms)); return new Promise((resolve) => compatGlobal.setTimeout(resolve, ms));
} }
export function parseTimeoutSeconds(value: string, commandName: string): number { export function parseTimeoutSeconds(value: string, commandName: string): number {
+5 -5
View File
@@ -10,14 +10,14 @@ import { performFullScan } from "@lib/serviceFeatures/offlineScanner";
import { activateRemoteConfiguration, createRemoteConfigurationId } from "@lib/serviceFeatures/remoteConfig"; import { activateRemoteConfiguration, createRemoteConfigurationId } from "@lib/serviceFeatures/remoteConfig";
import { UnresolvedErrorManager } from "@lib/services/base/UnresolvedErrorManager"; import { UnresolvedErrorManager } from "@lib/services/base/UnresolvedErrorManager";
import { stripAllPrefixes } from "@lib/string_and_binary/path"; import { stripAllPrefixes } from "@lib/string_and_binary/path";
import * as fs from "fs/promises"; import { nodePath as path, fs } from "@cli/lib/nodeModules";
import * as path from "path";
import { collectPeers, openP2PHost, parseTimeoutSeconds, syncWithPeer } from "./p2p"; import { collectPeers, openP2PHost, parseTimeoutSeconds, syncWithPeer } from "./p2p";
import type { CLICommandContext, CLIOptions } from "./types"; import type { CLICommandContext, CLIOptions } from "./types";
import { promptForPassphrase, readStdinAsUtf8, toArrayBuffer, toDatabaseRelativePath } from "./utils"; import { promptForPassphrase, readStdinAsUtf8, toArrayBuffer, toDatabaseRelativePath } from "./utils";
import type { EntryMilestoneInfo } from "@lib/common/models/db.definition"; import type { EntryMilestoneInfo } from "@lib/common/models/db.definition";
import type { LiveSyncCouchDBReplicator } from "@lib/replication/couchdb/LiveSyncReplicator"; import type { LiveSyncCouchDBReplicator } from "@lib/replication/couchdb/LiveSyncReplicator";
import type { LiveSyncJournalReplicator } from "@lib/replication/journal/LiveSyncJournalReplicator"; import type { LiveSyncJournalReplicator } from "@lib/replication/journal/LiveSyncJournalReplicator";
import { compatGlobal } from "@lib/common/coreEnvFunctions";
function redactConnectionString(uri: string): string { function redactConnectionString(uri: string): string {
return uri.replace(/\/\/([^@/]+)@/u, "//***@"); return uri.replace(/\/\/([^@/]+)@/u, "//***@");
@@ -156,11 +156,11 @@ export async function runCommand(options: CLIOptions, context: CLICommandContext
); );
} }
} }
pollTimer = setTimeout(poll as unknown as () => void, currentIntervalMs); pollTimer = compatGlobal.setTimeout(poll as unknown as () => void, currentIntervalMs);
}; };
let pollTimer: ReturnType<typeof setTimeout> = setTimeout(poll as unknown as () => void, currentIntervalMs); let pollTimer: number = compatGlobal.setTimeout(poll as unknown as () => void, currentIntervalMs);
core.services.appLifecycle.onUnload.addHandler(async () => { core.services.appLifecycle.onUnload.addHandler(async () => {
clearTimeout(pollTimer); compatGlobal.clearTimeout(pollTimer);
return await Promise.resolve(true); return await Promise.resolve(true);
}); });
} else { } else {
+1 -3
View File
@@ -1,6 +1,4 @@
import * as path from "path"; import { nodePath as path, readline } from "@cli/lib/nodeModules";
import * as readline from "node:readline/promises";
export function toArrayBuffer(data: Buffer): ArrayBuffer { export function toArrayBuffer(data: Buffer): ArrayBuffer {
return data.buffer.slice(data.byteOffset, data.byteOffset + data.byteLength) as ArrayBuffer; return data.buffer.slice(data.byteOffset, data.byteOffset + data.byteLength) as ArrayBuffer;
} }
+6
View File
@@ -0,0 +1,6 @@
import * as nodePath from "node:path";
import * as nodeFs from "node:fs";
import * as fs from "node:fs/promises";
import * as readline from "node:readline/promises";
import type { Stats } from "node:fs";
export { nodePath, nodeFs, fs, readline, type Stats };
+2 -3
View File
@@ -3,9 +3,8 @@
* Command-line version of Self-hosted LiveSync plugin for syncing vaults without Obsidian * Command-line version of Self-hosted LiveSync plugin for syncing vaults without Obsidian
*/ */
import * as fs from "fs/promises"; import { nodePath as path, fs, nodeFs as fsSync } from "@cli/lib/nodeModules";
import * as fsSync from "fs";
import * as path from "path";
import { NodeServiceContext, NodeServiceHub } from "./services/NodeServiceHub"; import { NodeServiceContext, NodeServiceHub } from "./services/NodeServiceHub";
import { configureNodeLocalStorage, ensureGlobalNodeLocalStorage } from "./services/NodeLocalStorage"; import { configureNodeLocalStorage, ensureGlobalNodeLocalStorage } from "./services/NodeLocalStorage";
import { LiveSyncBaseCore } from "@/LiveSyncBaseCore"; import { LiveSyncBaseCore } from "@/LiveSyncBaseCore";
@@ -1,3 +1,4 @@
import { nodePath as path, fs, type Stats } from "@cli/lib/nodeModules";
import type { FilePath } from "@lib/common/models/db.type"; import type { FilePath } from "@lib/common/models/db.type";
import type { FileEventItem, UXFileInfoStub, UXInternalFileInfoStub } from "@lib/common/models/fileaccess.type"; import type { FileEventItem, UXFileInfoStub, UXInternalFileInfoStub } from "@lib/common/models/fileaccess.type";
import type { import type {
@@ -11,9 +12,6 @@ import type {
} from "@lib/managers/adapters"; } from "@lib/managers/adapters";
import type { FileEventItemSentinel } from "@lib/managers/StorageEventManager"; import type { FileEventItemSentinel } from "@lib/managers/StorageEventManager";
import { watch as chokidarWatch, type FSWatcher } from "chokidar"; import { watch as chokidarWatch, type FSWatcher } from "chokidar";
import type { Stats } from "fs";
import * as fs from "fs/promises";
import * as path from "path";
import type { NodeFile, NodeFolder } from "@cli/adapters/NodeTypes"; import type { NodeFile, NodeFolder } from "@cli/adapters/NodeTypes";
import type { IgnoreRules } from "@cli/serviceModules/IgnoreRules"; import type { IgnoreRules } from "@cli/serviceModules/IgnoreRules";
+1 -3
View File
@@ -1,6 +1,4 @@
import * as fs from "fs/promises"; import { fs, nodePath as path } from "@cli/lib/nodeModules";
import * as path from "path";
import { minimatch } from "minimatch"; import { minimatch } from "minimatch";
/** /**
@@ -1,3 +1,4 @@
import { nodeFs, nodePath } from "@cli/lib/nodeModules";
import { LOG_LEVEL_NOTICE, LOG_LEVEL_VERBOSE } from "@lib/common/logger"; import { LOG_LEVEL_NOTICE, LOG_LEVEL_VERBOSE } from "@lib/common/logger";
import type { KeyValueDatabase } from "@lib/interfaces/KeyValueDatabase"; import type { KeyValueDatabase } from "@lib/interfaces/KeyValueDatabase";
import type { IKeyValueDBService, IVaultService } from "@lib/services/base/IService"; import type { IKeyValueDBService, IVaultService } from "@lib/services/base/IService";
@@ -5,8 +6,6 @@ import { ServiceBase, type ServiceContext } from "@lib/services/base/ServiceBase
import type { InjectableAppLifecycleService } from "@lib/services/implements/injectable/InjectableAppLifecycleService"; import type { InjectableAppLifecycleService } from "@lib/services/implements/injectable/InjectableAppLifecycleService";
import type { InjectableDatabaseEventService } from "@lib/services/implements/injectable/InjectableDatabaseEventService"; import type { InjectableDatabaseEventService } from "@lib/services/implements/injectable/InjectableDatabaseEventService";
import { createInstanceLogFunction } from "@lib/services/lib/logUtils"; import { createInstanceLogFunction } from "@lib/services/lib/logUtils";
import * as nodeFs from "node:fs";
import * as nodePath from "node:path";
import type { SimpleStore } from "octagonal-wheels/databases/SimpleStoreBase"; import type { SimpleStore } from "octagonal-wheels/databases/SimpleStoreBase";
const NODE_KV_TYPED_KEY = "__nodeKvType"; const NODE_KV_TYPED_KEY = "__nodeKvType";
+1 -2
View File
@@ -1,5 +1,4 @@
import * as nodeFs from "node:fs"; import { nodeFs, nodePath } from "@cli/lib/nodeModules";
import * as nodePath from "node:path";
type LocalStorageShape = { type LocalStorageShape = {
getItem(key: string): string | null; getItem(key: string): string | null;
+2 -1
View File
@@ -18,13 +18,14 @@ import { InjectableServiceHub } from "@lib/services/implements/injectable/Inject
import { InjectableTestService } from "@lib/services/implements/injectable/InjectableTestService"; import { InjectableTestService } from "@lib/services/implements/injectable/InjectableTestService";
import { InjectableTweakValueService } from "@lib/services/implements/injectable/InjectableTweakValueService"; import { InjectableTweakValueService } from "@lib/services/implements/injectable/InjectableTweakValueService";
import { InjectableVaultServiceCompat } from "@lib/services/implements/injectable/InjectableVaultService"; import { InjectableVaultServiceCompat } from "@lib/services/implements/injectable/InjectableVaultService";
import * as nodePath from "node:path";
// import { HeadlessDatabaseService } from "@lib/services/implements/headless/HeadlessDatabaseService"; // import { HeadlessDatabaseService } from "@lib/services/implements/headless/HeadlessDatabaseService";
import type { ObsidianLiveSyncSettings } from "@lib/common/models/setting.type"; import type { ObsidianLiveSyncSettings } from "@lib/common/models/setting.type";
import { DatabaseService } from "@lib/services/base/DatabaseService"; import { DatabaseService } from "@lib/services/base/DatabaseService";
import type { ServiceInstances } from "@lib/services/ServiceHub"; import type { ServiceInstances } from "@lib/services/ServiceHub";
import { NodeKeyValueDBService } from "./NodeKeyValueDBService"; import { NodeKeyValueDBService } from "./NodeKeyValueDBService";
import { NodeSettingService } from "./NodeSettingService"; import { NodeSettingService } from "./NodeSettingService";
import { nodePath } from "@cli/lib/nodeModules";
export class NodeServiceContext extends ServiceContext { export class NodeServiceContext extends ServiceContext {
databasePath: string; databasePath: string;
+2 -1
View File
@@ -19,6 +19,7 @@ import { SetupManager } from "@/modules/features/SetupManager";
import { useSetupManagerHandlersFeature } from "@/serviceFeatures/setupObsidian/setupManagerHandlers"; import { useSetupManagerHandlersFeature } from "@/serviceFeatures/setupObsidian/setupManagerHandlers";
import { useP2PReplicatorCommands } from "@lib/replication/trystero/useP2PReplicatorCommands"; import { useP2PReplicatorCommands } from "@lib/replication/trystero/useP2PReplicatorCommands";
import { useP2PReplicatorFeature } from "@lib/replication/trystero/useP2PReplicatorFeature"; import { useP2PReplicatorFeature } from "@lib/replication/trystero/useP2PReplicatorFeature";
import { compatGlobal } from "@lib/common/coreEnvFunctions";
const SETTINGS_DIR = ".livesync"; const SETTINGS_DIR = ".livesync";
const SETTINGS_FILE = "settings.json"; const SETTINGS_FILE = "settings.json";
@@ -103,7 +104,7 @@ class LiveSyncWebApp {
console.log("[AppLifecycle] Restart requested"); console.log("[AppLifecycle] Restart requested");
await this.shutdown(); await this.shutdown();
await this.initialize(); await this.initialize();
setTimeout(() => { compatGlobal.setTimeout(() => {
window.location.reload(); window.location.reload();
}, 1000); }, 1000);
})(); })();
+2 -1
View File
@@ -34,6 +34,7 @@ import { SimpleStoreIDBv2 } from "octagonal-wheels/databases/SimpleStoreIDBv2";
import type { BrowserAPIService } from "@lib/services/implements/browser/BrowserAPIService"; import type { BrowserAPIService } from "@lib/services/implements/browser/BrowserAPIService";
import type { InjectableSettingService } from "@lib/services/implements/injectable/InjectableSettingService"; import type { InjectableSettingService } from "@lib/services/implements/injectable/InjectableSettingService";
import { LiveSyncTrysteroReplicator } from "@lib/replication/trystero/LiveSyncTrysteroReplicator"; import { LiveSyncTrysteroReplicator } from "@lib/replication/trystero/LiveSyncTrysteroReplicator";
import { compatGlobal } from "@lib/common/coreEnvFunctions";
function addToList(item: string, list: string) { function addToList(item: string, list: string) {
return unique( return unique(
@@ -153,7 +154,7 @@ export class P2PReplicatorShim implements P2PReplicatorBase {
this._initP2PReplicator(); this._initP2PReplicator();
setTimeout(() => { compatGlobal.setTimeout(() => {
if (this.settings.P2P_AutoStart && this.settings.P2P_Enabled) { if (this.settings.P2P_AutoStart && this.settings.P2P_Enabled) {
void this.open(); void this.open();
} }
+1 -1
View File
@@ -35,7 +35,7 @@ function processFile(filePath: string) {
return updatedSourceText; return updatedSourceText;
} }
const targetDir = `../_types/`; const targetDir = `./_types/`;
async function processDir(dirPath: string) { async function processDir(dirPath: string) {
for await (const entry of Deno.readDir(dirPath)) { for await (const entry of Deno.readDir(dirPath)) {