Test explicit JavaScript module specifiers for review lint

This commit is contained in:
vorotamoroz
2026-08-14 04:40:26 +00:00
parent a4194a8978
commit 6ed7c83109
121 changed files with 322 additions and 291 deletions
@@ -1,6 +1,6 @@
import type { FilePath, UXFileInfoStub, UXFolderInfo } from "@vrtmrz/livesync-commonlib/compat/common/types";
import type { IConversionAdapter } from "@vrtmrz/livesync-commonlib/compat/serviceModules/adapters";
import type { NodeFile, NodeFolder } from "./NodeTypes";
import type { NodeFile, NodeFolder } from "./NodeTypes.js";
import { path } from "@vrtmrz/livesync-commonlib/node";
/**
@@ -1,13 +1,13 @@
import type { FilePath, UXStat } from "@vrtmrz/livesync-commonlib/compat/common/types";
import type { IFileSystemAdapter } from "@vrtmrz/livesync-commonlib/compat/serviceModules/adapters";
import { NodePathAdapter } from "./NodePathAdapter";
import { NodeTypeGuardAdapter } from "./NodeTypeGuardAdapter";
import { NodeConversionAdapter } from "./NodeConversionAdapter";
import { NodePathAdapter } from "./NodePathAdapter.js";
import { NodeTypeGuardAdapter } from "./NodeTypeGuardAdapter.js";
import { NodeConversionAdapter } from "./NodeConversionAdapter.js";
import { NodeStorageAdapter } from "@vrtmrz/livesync-commonlib/node";
import { NodeVaultAdapter } from "./NodeVaultAdapter";
import type { NodeFile, NodeFolder, NodeStat } from "./NodeTypes";
import { NodeVaultAdapter } from "./NodeVaultAdapter.js";
import type { NodeFile, NodeFolder, NodeStat } from "./NodeTypes.js";
import { path } from "@vrtmrz/livesync-commonlib/node";
import type { CliDiagnosticReporter } from "@/apps/cli/cliOutput";
import type { CliDiagnosticReporter } from "@/apps/cli/cliOutput.js";
/**
* Complete file system adapter implementation for Node.js
+1 -1
View File
@@ -1,6 +1,6 @@
import type { FilePath } from "@vrtmrz/livesync-commonlib/compat/common/types";
import type { IPathAdapter } from "@vrtmrz/livesync-commonlib/compat/serviceModules/adapters";
import type { NodeFile } from "./NodeTypes";
import type { NodeFile } from "./NodeTypes.js";
import { path } from "@vrtmrz/livesync-commonlib/node";
/**
@@ -1,5 +1,5 @@
import type { ITypeGuardAdapter } from "@vrtmrz/livesync-commonlib/compat/serviceModules/adapters";
import type { NodeFile, NodeFolder } from "./NodeTypes";
import type { NodeFile, NodeFolder } from "./NodeTypes.js";
/**
* Type guard adapter implementation for Node.js
+1 -1
View File
@@ -1,6 +1,6 @@
import type { FilePath, UXDataWriteOptions } from "@vrtmrz/livesync-commonlib/compat/common/types";
import type { IVaultAdapter } from "@vrtmrz/livesync-commonlib/compat/serviceModules/adapters";
import type { NodeFile, NodeFolder } from "./NodeTypes";
import type { NodeFile, NodeFolder } from "./NodeTypes.js";
import { NodeStorageAdapter } from "@vrtmrz/livesync-commonlib/node";
/**
+1 -1
View File
@@ -1,4 +1,4 @@
import type { LiveSyncBaseCore } from "@/LiveSyncBaseCore";
import type { LiveSyncBaseCore } from "@/LiveSyncBaseCore.js";
import { P2P_DEFAULT_SETTINGS } from "@vrtmrz/livesync-commonlib/compat/common/types";
import type { ServiceContext } from "@vrtmrz/livesync-commonlib/context";
import { LiveSyncTrysteroReplicator } from "@vrtmrz/livesync-commonlib/compat/replication/trystero/LiveSyncTrysteroReplicator";
+4 -4
View File
@@ -16,16 +16,16 @@ import {
createRemoteConfigurationId,
} from "@vrtmrz/livesync-commonlib/remote-configurations";
import { stripAllPrefixes } from "@vrtmrz/livesync-commonlib/compat/string_and_binary/path";
import type { CLICommandContext, CLIOptions } from "./types";
import { toArrayBuffer, toDatabaseRelativePath } from "./utils";
import { collectPeers, openP2PHost, parseTimeoutSeconds, syncWithPeer } from "./p2p";
import type { CLICommandContext, CLIOptions } from "./types.js";
import { toArrayBuffer, toDatabaseRelativePath } from "./utils.js";
import { collectPeers, openP2PHost, parseTimeoutSeconds, syncWithPeer } from "./p2p.js";
import { performFullScan } from "@vrtmrz/livesync-commonlib/compat/serviceFeatures/offlineScanner";
import { UnresolvedErrorManager } from "@vrtmrz/livesync-commonlib/compat/services/base/UnresolvedErrorManager";
import { compatGlobal } from "@vrtmrz/livesync-commonlib/compat/common/coreEnvFunctions";
import { fsPromises as fs, path } from "@vrtmrz/livesync-commonlib/node";
import type { LiveSyncCouchDBReplicator } from "@vrtmrz/livesync-commonlib/compat/replication/couchdb/LiveSyncReplicator";
import type { LiveSyncJournalReplicator } from "@vrtmrz/livesync-commonlib/compat/replication/journal/LiveSyncJournalReplicator";
import { writeStderrLine, writeStdoutLine } from "@/apps/cli/cliOutput";
import { writeStderrLine, writeStdoutLine } from "@/apps/cli/cliOutput.js";
function redactConnectionString(uri: string): string {
return uri.replace(/\/\/([^@/]+)@/u, "//***@");
+2 -2
View File
@@ -1,6 +1,6 @@
import { LiveSyncBaseCore } from "@/LiveSyncBaseCore";
import { LiveSyncBaseCore } from "@/LiveSyncBaseCore.js";
import type { ObsidianLiveSyncSettings } from "@vrtmrz/livesync-commonlib/compat/common/types";
import type { NodeServiceContext } from "@/apps/cli/services/NodeServiceContext";
import type { NodeServiceContext } from "@/apps/cli/services/NodeServiceContext.js";
import type { UseP2PReplicatorResult } from "@vrtmrz/livesync-commonlib/compat/replication/trystero/UseP2PReplicatorResult";
export type CLICommand =
+2 -2
View File
@@ -1,9 +1,9 @@
#!/usr/bin/env node
import { RTCPeerConnection } from "werift";
import { main } from "./main";
import { main } from "./main.js";
import { compatGlobal } from "@vrtmrz/livesync-commonlib/compat/common/coreEnvFunctions";
import { createNodeStandardIo } from "@vrtmrz/livesync-commonlib/node";
import { writeStderrLine } from "./cliOutput";
import { writeStderrLine } from "./cliOutput.js";
if (
typeof (compatGlobal as unknown as Record<string, unknown>).RTCPeerConnection === "undefined" &&
+11 -11
View File
@@ -1,7 +1,7 @@
import { NodeServiceContext, NodeServiceHub } from "./services/NodeServiceHub";
import { configureNodeLocalStorage, ensureGlobalNodeLocalStorage } from "./services/NodeLocalStorage";
import { LiveSyncBaseCore } from "@/LiveSyncBaseCore";
import { initialiseServiceModulesCLI } from "./serviceModules/CLIServiceModules";
import { NodeServiceContext, NodeServiceHub } from "./services/NodeServiceHub.js";
import { configureNodeLocalStorage, ensureGlobalNodeLocalStorage } from "./services/NodeLocalStorage.js";
import { LiveSyncBaseCore } from "@/LiveSyncBaseCore.js";
import { initialiseServiceModulesCLI } from "./serviceModules/CLIServiceModules.js";
import {
LOG_LEVEL_VERBOSE,
type LOG_LEVEL,
@@ -17,18 +17,18 @@ import {
LOG_LEVEL_URGENT,
LOG_LEVEL_NOTICE,
} from "octagonal-wheels/common/logger";
import { runCommand } from "./commands/runCommand";
import { isCLICommand } from "./commands/types";
import type { CLICommand, CLICommandContext, CLIOptions } from "./commands/types";
import { runCommand } from "./commands/runCommand.js";
import { isCLICommand } from "./commands/types.js";
import type { CLICommand, CLICommandContext, CLIOptions } from "./commands/types.js";
import { getPathFromUXFileInfo } from "@vrtmrz/livesync-commonlib/compat/common/typeUtils";
import { stripAllPrefixes } from "@vrtmrz/livesync-commonlib/compat/string_and_binary/path";
import { IgnoreRules } from "./serviceModules/IgnoreRules";
import { IgnoreRules } from "./serviceModules/IgnoreRules.js";
import { useP2PReplicatorFeature } from "@vrtmrz/livesync-commonlib/compat/replication/trystero/useP2PReplicatorFeature";
import type { UseP2PReplicatorResult } from "@vrtmrz/livesync-commonlib/compat/replication/trystero/UseP2PReplicatorResult";
import { createNodeStandardIo, fsPromises as fs, path } from "@vrtmrz/livesync-commonlib/node";
import type { StandardIo } from "@vrtmrz/livesync-commonlib/context";
import { writeStderrLine, writeStdoutLine } from "./cliOutput";
import { createDefaultCliSettings } from "./cliSettingsDefaults";
import { writeStderrLine, writeStdoutLine } from "./cliOutput.js";
import { createDefaultCliSettings } from "./cliSettingsDefaults.js";
import {
applyStoredSetting,
changedSettingKeys,
@@ -38,7 +38,7 @@ import {
preserveStoredSetting,
reconcileDurableSettings,
settingsEqual,
} from "./settingsPersistence";
} from "./settingsPersistence.js";
const SETTINGS_FILE = ".livesync/settings.json";
ensureGlobalNodeLocalStorage();
@@ -10,11 +10,11 @@ import type {
IStorageEventWatchHandlers,
} from "@vrtmrz/livesync-commonlib/compat/managers/adapters";
import type { FileEventItemSentinel } from "@vrtmrz/livesync-commonlib/compat/managers/StorageEventManager";
import type { NodeFile, NodeFolder } from "@/apps/cli/adapters/NodeTypes";
import type { NodeFile, NodeFolder } from "@/apps/cli/adapters/NodeTypes.js";
import { watch as chokidarWatch, type FSWatcher } from "chokidar";
import type { IgnoreRules } from "@/apps/cli/serviceModules/IgnoreRules";
import type { IgnoreRules } from "@/apps/cli/serviceModules/IgnoreRules.js";
import { fsPromises as fs, path, type Stats } from "@vrtmrz/livesync-commonlib/node";
import type { CliDiagnosticReporter } from "@/apps/cli/cliOutput";
import type { CliDiagnosticReporter } from "@/apps/cli/cliOutput.js";
/**
* CLI-specific type guard adapter
@@ -1,8 +1,8 @@
import { StorageEventManagerBase, type StorageEventManagerBaseDependencies } from "@vrtmrz/livesync-commonlib/compat/managers/StorageEventManager";
import { CLIStorageEventManagerAdapter } from "./CLIStorageEventManagerAdapter";
import type { IMinimumLiveSyncCommands, LiveSyncBaseCore } from "@/LiveSyncBaseCore";
import { CLIStorageEventManagerAdapter } from "./CLIStorageEventManagerAdapter.js";
import type { IMinimumLiveSyncCommands, LiveSyncBaseCore } from "@/LiveSyncBaseCore.js";
import type { ServiceContext } from "@vrtmrz/livesync-commonlib/context";
import type { IgnoreRules } from "@/apps/cli/serviceModules/IgnoreRules";
import type { IgnoreRules } from "@/apps/cli/serviceModules/IgnoreRules.js";
import { LOG_LEVEL_NOTICE } from "octagonal-wheels/common/logger";
// import type { IMinimumLiveSyncCommands } from "@vrtmrz/livesync-commonlib/compat/services/base/IService";
@@ -1,16 +1,16 @@
import type { InjectableServiceHub } from "@vrtmrz/livesync-commonlib/compat/services/implements/injectable/InjectableServiceHub";
import { ServiceRebuilder } from "@vrtmrz/livesync-commonlib/compat/serviceModules/Rebuilder";
import { ServiceFileHandler } from "@/serviceModules/FileHandler";
import { ServiceFileHandler } from "@/serviceModules/FileHandler.js";
import { StorageAccessManager } from "@vrtmrz/livesync-commonlib/compat/managers/StorageProcessingManager";
import type { LiveSyncBaseCore } from "@/LiveSyncBaseCore";
import type { LiveSyncBaseCore } from "@/LiveSyncBaseCore.js";
import type { ServiceContext } from "@vrtmrz/livesync-commonlib/context";
import { FileAccessCLI } from "./FileAccessCLI";
import { ServiceFileAccessCLI } from "./ServiceFileAccessImpl";
import { ServiceDatabaseFileAccessCLI } from "./DatabaseFileAccess";
import { StorageEventManagerCLI } from "@/apps/cli/managers/StorageEventManagerCLI";
import { FileAccessCLI } from "./FileAccessCLI.js";
import { ServiceFileAccessCLI } from "./ServiceFileAccessImpl.js";
import { ServiceDatabaseFileAccessCLI } from "./DatabaseFileAccess.js";
import { StorageEventManagerCLI } from "@/apps/cli/managers/StorageEventManagerCLI.js";
import type { ServiceModules } from "@vrtmrz/livesync-commonlib/compat/interfaces/ServiceModule";
import type { IgnoreRules } from "./IgnoreRules";
import { createFileReflectionProvenance } from "@/serviceModules/FileReflectionProvenance";
import type { IgnoreRules } from "./IgnoreRules.js";
import { createFileReflectionProvenance } from "@/serviceModules/FileReflectionProvenance.js";
/**
* Initialize service modules for CLI version
+1 -1
View File
@@ -1,5 +1,5 @@
import { FileAccessBase, type FileAccessBaseDependencies } from "@vrtmrz/livesync-commonlib/compat/serviceModules/FileAccessBase";
import { NodeFileSystemAdapter } from "@/apps/cli/adapters/NodeFileSystemAdapter";
import { NodeFileSystemAdapter } from "@/apps/cli/adapters/NodeFileSystemAdapter.js";
import { LOG_LEVEL_NOTICE } from "octagonal-wheels/common/logger";
/**
+1 -1
View File
@@ -1,6 +1,6 @@
import { Minimatch } from "minimatch";
import { fsPromises as fs, path } from "@vrtmrz/livesync-commonlib/node";
import type { CliDiagnosticReporter } from "@/apps/cli/cliOutput";
import type { CliDiagnosticReporter } from "@/apps/cli/cliOutput.js";
/**
* Loads and evaluates ignore rules from `.livesync/ignore` inside the vault.
@@ -1,5 +1,5 @@
import { ServiceFileAccessBase, type StorageAccessBaseDependencies } from "@vrtmrz/livesync-commonlib/compat/serviceModules/ServiceFileAccessBase";
import { NodeFileSystemAdapter } from "@/apps/cli/adapters/NodeFileSystemAdapter";
import { NodeFileSystemAdapter } from "@/apps/cli/adapters/NodeFileSystemAdapter.js";
/**
* CLI-specific implementation of ServiceFileAccess
+2 -2
View File
@@ -1,5 +1,5 @@
import { eventHub } from "@/common/events";
import { translateLiveSyncMessage } from "@/common/translation";
import { eventHub } from "@/common/events.js";
import { translateLiveSyncMessage } from "@/common/translation.js";
import { ServiceContext, type StandardIo } from "@vrtmrz/livesync-commonlib/context";
/** Host capabilities owned by one Self-hosted LiveSync CLI composition. */
+6 -6
View File
@@ -20,17 +20,17 @@ import { InjectableTweakValueService } from "@vrtmrz/livesync-commonlib/compat/s
import { InjectableVaultServiceCompat } from "@vrtmrz/livesync-commonlib/compat/services/implements/injectable/InjectableVaultService";
import { ControlService } from "@vrtmrz/livesync-commonlib/compat/services/base/ControlService";
import { HeadlessAPIService } from "@vrtmrz/livesync-commonlib/compat/services/implements/headless/HeadlessAPIService";
import { NodeKeyValueDBService } from "./NodeKeyValueDBService";
import { NodeSettingService } from "./NodeSettingService";
import { NodeKeyValueDBService } from "./NodeKeyValueDBService.js";
import { NodeSettingService } from "./NodeSettingService.js";
import { DatabaseService } from "@vrtmrz/livesync-commonlib/compat/services/base/DatabaseService";
import type { ObsidianLiveSyncSettings } from "@vrtmrz/livesync-commonlib/compat/common/types";
import { path as nodePath } from "@vrtmrz/livesync-commonlib/node";
import type { KeyValueDBService } from "@vrtmrz/livesync-commonlib/compat/services/base/KeyValueDBService";
import { PouchDB } from "@/apps/cli/lib/pouchdb-node";
import { NodeServiceContext } from "./NodeServiceContext";
import { setLang } from "@/common/translation";
import { PouchDB } from "@/apps/cli/lib/pouchdb-node.js";
import { NodeServiceContext } from "./NodeServiceContext.js";
import { setLang } from "@/common/translation.js";
export { NodeServiceContext } from "./NodeServiceContext";
export { NodeServiceContext } from "./NodeServiceContext.js";
class NodeAppLifecycleService<T extends ServiceContext> extends InjectableAppLifecycleService<T> {
constructor(context: T, dependencies: AppLifecycleServiceDependencies) {
+2 -2
View File
@@ -1,5 +1,5 @@
import { EVENT_SETTING_SAVED } from "@vrtmrz/livesync-commonlib/compat/events/coreEvents";
import { EVENT_REQUEST_RELOAD_SETTING_TAB } from "@/common/events";
import { EVENT_REQUEST_RELOAD_SETTING_TAB } from "@/common/events.js";
import { handlers } from "@vrtmrz/livesync-commonlib/compat/services/lib/HandlerUtils";
import type { ObsidianLiveSyncSettings } from "@vrtmrz/livesync-commonlib/compat/common/types";
import type { ServiceContext } from "@vrtmrz/livesync-commonlib/context";
@@ -9,7 +9,7 @@ import {
deleteNodeLocalStorageItem,
getNodeLocalStorageItem,
setNodeLocalStorageItem,
} from "./NodeLocalStorage";
} from "./NodeLocalStorage.js";
export class NodeSettingService<T extends ServiceContext> extends SettingService<T> {
constructor(context: T, dependencies: SettingServiceDependencies, storagePath: string) {
+1 -1
View File
@@ -1,7 +1,7 @@
import type { ObsidianLiveSyncSettings } from "@vrtmrz/livesync-commonlib/compat/common/types";
import { ConnectionStringParser } from "@vrtmrz/livesync-commonlib/compat/common/ConnectionString";
import { activateRemoteConfiguration } from "@vrtmrz/livesync-commonlib/remote-configurations";
import type { CLICommand } from "./commands/types";
import type { CLICommand } from "./commands/types.js";
const SETTINGS_WRITE_COMMANDS = new Set<CLICommand>([
"setup",
@@ -2,10 +2,10 @@
import { RTCPeerConnection } from "werift";
import { compatGlobal } from "@vrtmrz/livesync-commonlib/compat/common/coreEnvFunctions";
import { createNodeStandardIo } from "@vrtmrz/livesync-commonlib/node";
import { writeStderrLine } from "@/apps/cli/cliOutput";
import { main, type CliCommandRunner } from "@/apps/cli/main";
import { parseTimeoutSeconds } from "@/apps/cli/commands/p2p";
import { runP2PReplicatorReplacementProbe } from "./p2p-replicator-replacement";
import { writeStderrLine } from "@/apps/cli/cliOutput.js";
import { main, type CliCommandRunner } from "@/apps/cli/main.js";
import { parseTimeoutSeconds } from "@/apps/cli/commands/p2p.js";
import { runP2PReplicatorReplacementProbe } from "./p2p-replicator-replacement.js";
if (
typeof (compatGlobal as unknown as Record<string, unknown>).RTCPeerConnection === "undefined" &&
@@ -1,8 +1,8 @@
import type { FilePathWithPrefix } from "@vrtmrz/livesync-commonlib/compat/common/types";
import { LiveSyncTrysteroReplicator } from "@vrtmrz/livesync-commonlib/compat/replication/trystero/LiveSyncTrysteroReplicator";
import { compatGlobal } from "@vrtmrz/livesync-commonlib/compat/common/coreEnvFunctions";
import type { CLICommandContext } from "@/apps/cli/commands/types";
import { openP2PHost } from "@/apps/cli/commands/p2p";
import type { CLICommandContext } from "@/apps/cli/commands/types.js";
import { openP2PHost } from "@/apps/cli/commands/p2p.js";
const DEFAULT_NOTE_PATH = "p2p-replicator-replacement.md";
const DEFAULT_NOTE_CONTENT = "Replicated after replacing the active P2P replicator.";