diff --git a/src/apps/cli/adapters/NodeConversionAdapter.ts b/src/apps/cli/adapters/NodeConversionAdapter.ts index 044abe2..a11b280 100644 --- a/src/apps/cli/adapters/NodeConversionAdapter.ts +++ b/src/apps/cli/adapters/NodeConversionAdapter.ts @@ -1,5 +1,5 @@ import * as path from "path"; -import type { UXFileInfoStub, UXFolderInfo } from "@lib/common/types"; +import type { UXFileInfoStub, UXFolderInfo } from "@lib/common/models/fileaccess.type"; import type { IConversionAdapter } from "@lib/serviceModules/adapters"; import type { NodeFile, NodeFolder } from "./NodeTypes"; diff --git a/src/apps/cli/adapters/NodeFileSystemAdapter.ts b/src/apps/cli/adapters/NodeFileSystemAdapter.ts index 34d434e..9412704 100644 --- a/src/apps/cli/adapters/NodeFileSystemAdapter.ts +++ b/src/apps/cli/adapters/NodeFileSystemAdapter.ts @@ -1,6 +1,7 @@ import * as fs from "fs/promises"; import * as path from "path"; -import type { FilePath, UXStat } from "@lib/common/types"; +import type { FilePath } from "@lib/common/models/db.type"; +import type { UXStat } from "@lib/common/models/fileaccess.type"; import type { IFileSystemAdapter } from "@lib/serviceModules/adapters"; import { NodePathAdapter } from "./NodePathAdapter"; import { NodeTypeGuardAdapter } from "./NodeTypeGuardAdapter"; diff --git a/src/apps/cli/adapters/NodePathAdapter.ts b/src/apps/cli/adapters/NodePathAdapter.ts index fdad06a..6b3c3de 100644 --- a/src/apps/cli/adapters/NodePathAdapter.ts +++ b/src/apps/cli/adapters/NodePathAdapter.ts @@ -1,5 +1,5 @@ import * as path from "path"; -import type { FilePath } from "@lib/common/types"; +import type { FilePath } from "@lib/common/models/db.type"; import type { IPathAdapter } from "@lib/serviceModules/adapters"; import type { NodeFile } from "./NodeTypes"; diff --git a/src/apps/cli/adapters/NodeStorageAdapter.ts b/src/apps/cli/adapters/NodeStorageAdapter.ts index 1ed5685..d84486a 100644 --- a/src/apps/cli/adapters/NodeStorageAdapter.ts +++ b/src/apps/cli/adapters/NodeStorageAdapter.ts @@ -1,6 +1,6 @@ import * as fs from "fs/promises"; import * as path from "path"; -import type { UXDataWriteOptions } from "@lib/common/types"; +import type { UXDataWriteOptions } from "@lib/common/models/fileaccess.type"; import type { IStorageAdapter } from "@lib/serviceModules/adapters"; import type { NodeStat } from "./NodeTypes"; diff --git a/src/apps/cli/adapters/NodeTypes.ts b/src/apps/cli/adapters/NodeTypes.ts index ca083c5..177a19b 100644 --- a/src/apps/cli/adapters/NodeTypes.ts +++ b/src/apps/cli/adapters/NodeTypes.ts @@ -1,5 +1,5 @@ -import type { FilePath, UXStat } from "@lib/common/types"; - +import type { FilePath } from "@lib/common/models/db.type"; +import type { UXStat } from "@lib/common/models/fileaccess.type"; /** * Node.js file representation */ diff --git a/src/apps/cli/adapters/NodeVaultAdapter.ts b/src/apps/cli/adapters/NodeVaultAdapter.ts index e313f39..064952e 100644 --- a/src/apps/cli/adapters/NodeVaultAdapter.ts +++ b/src/apps/cli/adapters/NodeVaultAdapter.ts @@ -1,6 +1,6 @@ import * as fs from "fs/promises"; import * as path from "path"; -import type { UXDataWriteOptions } from "@lib/common/types"; +import type { UXDataWriteOptions } from "@lib/common/models/fileaccess.type"; import type { IVaultAdapter } from "@lib/serviceModules/adapters"; import type { NodeFile, NodeFolder, NodeStat } from "./NodeTypes"; diff --git a/src/apps/cli/commands/p2p.ts b/src/apps/cli/commands/p2p.ts index e3297ee..9c1606d 100644 --- a/src/apps/cli/commands/p2p.ts +++ b/src/apps/cli/commands/p2p.ts @@ -1,8 +1,7 @@ -import type { LiveSyncBaseCore } from "../../../LiveSyncBaseCore"; -import { P2P_DEFAULT_SETTINGS } from "@lib/common/types"; -import type { ServiceContext } from "@lib/services/base/ServiceBase"; +import { P2P_DEFAULT_SETTINGS } from "@lib/common/models/setting.const.defaults"; import { LiveSyncTrysteroReplicator } from "@lib/replication/trystero/LiveSyncTrysteroReplicator"; -import { addP2PEventHandlers } from "@lib/replication/trystero/addP2PEventHandlers"; +import type { ServiceContext } from "@lib/services/base/ServiceBase"; +import type { LiveSyncBaseCore } from "../../../LiveSyncBaseCore"; type CLIP2PPeer = { peerId: string; name: string; diff --git a/src/apps/cli/commands/runCommand.ts b/src/apps/cli/commands/runCommand.ts index 74ee8ab..0cd3193 100644 --- a/src/apps/cli/commands/runCommand.ts +++ b/src/apps/cli/commands/runCommand.ts @@ -1,23 +1,20 @@ +import { decodeSettingsFromSetupURI } from "@lib/API/processSetting"; +import { ConnectionStringParser } from "@lib/common/ConnectionString"; +import { MILESTONE_DOCID } from "@lib/common/models/db.const"; +import type { FilePathWithPrefix } from "@lib/common/models/db.type"; +import { REMOTE_COUCHDB, REMOTE_MINIO } from "@lib/common/models/setting.const"; +import { DEFAULT_SETTINGS } from "@lib/common/models/setting.const.defaults"; +import type { ObsidianLiveSyncSettings } from "@lib/common/models/setting.type"; +import { configURIBase } from "@lib/common/models/shared.const"; +import { performFullScan } from "@lib/serviceFeatures/offlineScanner"; +import { activateRemoteConfiguration, createRemoteConfigurationId } from "@lib/serviceFeatures/remoteConfig"; +import { UnresolvedErrorManager } from "@lib/services/base/UnresolvedErrorManager"; +import { stripAllPrefixes } from "@lib/string_and_binary/path"; import * as fs from "fs/promises"; import * as path from "path"; -import { decodeSettingsFromSetupURI } from "@lib/API/processSetting"; -import { configURIBase } from "@lib/common/models/shared.const"; -import { - DEFAULT_SETTINGS, - MILESTONE_DOCID, - type FilePathWithPrefix, - type ObsidianLiveSyncSettings, - REMOTE_COUCHDB, - REMOTE_MINIO, -} from "@lib/common/types"; -import { ConnectionStringParser } from "@lib/common/ConnectionString"; -import { activateRemoteConfiguration, createRemoteConfigurationId } from "@lib/serviceFeatures/remoteConfig"; -import { stripAllPrefixes } from "@lib/string_and_binary/path"; +import { collectPeers, openP2PHost, parseTimeoutSeconds, syncWithPeer } from "./p2p"; import type { CLICommandContext, CLIOptions } from "./types"; import { promptForPassphrase, readStdinAsUtf8, toArrayBuffer, toDatabaseRelativePath } from "./utils"; -import { collectPeers, openP2PHost, parseTimeoutSeconds, syncWithPeer } from "./p2p"; -import { performFullScan } from "@lib/serviceFeatures/offlineScanner"; -import { UnresolvedErrorManager } from "@lib/services/base/UnresolvedErrorManager"; function redactConnectionString(uri: string): string { return uri.replace(/\/\/([^@/]+)@/u, "//***@"); diff --git a/src/apps/cli/commands/runCommand.unit.spec.ts b/src/apps/cli/commands/runCommand.unit.spec.ts index 3d02951..256a0ab 100644 --- a/src/apps/cli/commands/runCommand.unit.spec.ts +++ b/src/apps/cli/commands/runCommand.unit.spec.ts @@ -1,11 +1,12 @@ -import * as path from "path"; -import * as fs from "fs/promises"; -import * as os from "os"; import * as processSetting from "@lib/API/processSetting"; import { ConnectionStringParser } from "@lib/common/ConnectionString"; +import { REMOTE_COUCHDB, REMOTE_MINIO, REMOTE_P2P } from "@lib/common/models/setting.const"; +import { DEFAULT_SETTINGS } from "@lib/common/models/setting.const.defaults"; import { configURIBase } from "@lib/common/models/shared.const"; -import { DEFAULT_SETTINGS, REMOTE_COUCHDB, REMOTE_MINIO, REMOTE_P2P } from "@lib/common/types"; -import { describe, expect, it, vi, beforeEach, afterEach } from "vitest"; +import * as fs from "fs/promises"; +import * as os from "os"; +import * as path from "path"; +import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; import { runCommand } from "./runCommand"; import type { CLIOptions } from "./types"; import * as commandUtils from "./utils"; diff --git a/src/apps/cli/commands/types.ts b/src/apps/cli/commands/types.ts index 88c6cde..725bdf1 100644 --- a/src/apps/cli/commands/types.ts +++ b/src/apps/cli/commands/types.ts @@ -1,7 +1,6 @@ -import { LiveSyncBaseCore } from "../../../LiveSyncBaseCore"; +import type { ObsidianLiveSyncSettings } from "@lib/common/models/setting.type"; import { ServiceContext } from "@lib/services/base/ServiceBase"; -import type { ObsidianLiveSyncSettings } from "@lib/common/types"; - +import { LiveSyncBaseCore } from "../../../LiveSyncBaseCore"; export type CLICommand = | "daemon" | "sync" diff --git a/src/apps/cli/main.ts b/src/apps/cli/main.ts index 9f827bd..db88848 100644 --- a/src/apps/cli/main.ts +++ b/src/apps/cli/main.ts @@ -9,7 +9,10 @@ import { NodeServiceContext, NodeServiceHub } from "./services/NodeServiceHub"; import { configureNodeLocalStorage, ensureGlobalNodeLocalStorage } from "./services/NodeLocalStorage"; import { LiveSyncBaseCore } from "../../LiveSyncBaseCore"; import { initialiseServiceModulesCLI } from "./serviceModules/CLIServiceModules"; -import { DEFAULT_SETTINGS, LOG_LEVEL_VERBOSE, type LOG_LEVEL, type ObsidianLiveSyncSettings } from "@lib/common/types"; +import { DEFAULT_SETTINGS } from "@lib/common/models/setting.const.defaults"; +import type { LOG_LEVEL } from "@lib/common/logger"; +import { LOG_LEVEL_VERBOSE } from "@lib/common/logger"; +import type { ObsidianLiveSyncSettings } from "@lib/common/models/setting.type"; import type { InjectableServiceHub } from "@lib/services/implements/injectable/InjectableServiceHub"; import type { InjectableSettingService } from "@lib/services/implements/injectable/InjectableSettingService"; import { diff --git a/src/apps/cli/managers/CLIStorageEventManagerAdapter.ts b/src/apps/cli/managers/CLIStorageEventManagerAdapter.ts index f6bc9e0..388efab 100644 --- a/src/apps/cli/managers/CLIStorageEventManagerAdapter.ts +++ b/src/apps/cli/managers/CLIStorageEventManagerAdapter.ts @@ -1,20 +1,20 @@ -import type { FilePath, UXFileInfoStub, UXInternalFileInfoStub } from "@lib/common/types"; -import type { FileEventItem } from "@lib/common/types"; -import type { IStorageEventManagerAdapter } from "@lib/managers/adapters"; +import type { FilePath } from "@lib/common/models/db.type"; +import type { FileEventItem, UXFileInfoStub, UXInternalFileInfoStub } from "@lib/common/models/fileaccess.type"; import type { - IStorageEventTypeGuardAdapter, - IStorageEventPersistenceAdapter, - IStorageEventWatchAdapter, - IStorageEventStatusAdapter, IStorageEventConverterAdapter, + IStorageEventManagerAdapter, + IStorageEventPersistenceAdapter, + IStorageEventStatusAdapter, + IStorageEventTypeGuardAdapter, + IStorageEventWatchAdapter, IStorageEventWatchHandlers, } from "@lib/managers/adapters"; import type { FileEventItemSentinel } from "@lib/managers/StorageEventManager"; -import type { NodeFile, NodeFolder } from "../adapters/NodeTypes"; +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 { watch as chokidarWatch, type FSWatcher } from "chokidar"; +import type { NodeFile, NodeFolder } from "../adapters/NodeTypes"; import type { IgnoreRules } from "../serviceModules/IgnoreRules"; /** diff --git a/src/apps/cli/managers/CLIStorageEventManagerAdapter.unit.spec.ts b/src/apps/cli/managers/CLIStorageEventManagerAdapter.unit.spec.ts index 5af69a9..8d14df7 100644 --- a/src/apps/cli/managers/CLIStorageEventManagerAdapter.unit.spec.ts +++ b/src/apps/cli/managers/CLIStorageEventManagerAdapter.unit.spec.ts @@ -1,5 +1,5 @@ -import { describe, expect, it, vi, beforeEach } from "vitest"; import type { IStorageEventWatchHandlers } from "@lib/managers/adapters"; +import { beforeEach, describe, expect, it, vi } from "vitest"; import type { NodeFile } from "../adapters/NodeTypes"; // ── chokidar mock ────────────────────────────────────────────────────────────── diff --git a/src/apps/cli/managers/StorageEventManagerCLI.ts b/src/apps/cli/managers/StorageEventManagerCLI.ts index 7838ef3..3680770 100644 --- a/src/apps/cli/managers/StorageEventManagerCLI.ts +++ b/src/apps/cli/managers/StorageEventManagerCLI.ts @@ -1,8 +1,8 @@ import { StorageEventManagerBase, type StorageEventManagerBaseDependencies } from "@lib/managers/StorageEventManager"; -import { CLIStorageEventManagerAdapter } from "./CLIStorageEventManagerAdapter"; -import type { IMinimumLiveSyncCommands, LiveSyncBaseCore } from "../../../LiveSyncBaseCore"; import type { ServiceContext } from "@lib/services/base/ServiceBase"; +import type { IMinimumLiveSyncCommands, LiveSyncBaseCore } from "../../../LiveSyncBaseCore"; import type { IgnoreRules } from "../serviceModules/IgnoreRules"; +import { CLIStorageEventManagerAdapter } from "./CLIStorageEventManagerAdapter"; // import type { IMinimumLiveSyncCommands } from "@lib/services/base/IService"; export class StorageEventManagerCLI extends StorageEventManagerBase { diff --git a/src/apps/cli/serviceModules/CLIServiceModules.ts b/src/apps/cli/serviceModules/CLIServiceModules.ts index 50d185a..834d8c2 100644 --- a/src/apps/cli/serviceModules/CLIServiceModules.ts +++ b/src/apps/cli/serviceModules/CLIServiceModules.ts @@ -1,15 +1,15 @@ -import type { InjectableServiceHub } from "@lib/services/implements/injectable/InjectableServiceHub"; -import { ServiceRebuilder } from "@lib/serviceModules/Rebuilder"; -import { ServiceFileHandler } from "../../../serviceModules/FileHandler"; -import { StorageAccessManager } from "@lib/managers/StorageProcessingManager"; -import type { LiveSyncBaseCore } from "../../../LiveSyncBaseCore"; -import type { ServiceContext } from "@lib/services/base/ServiceBase"; -import { FileAccessCLI } from "./FileAccessCLI"; -import { ServiceFileAccessCLI } from "./ServiceFileAccessImpl"; -import { ServiceDatabaseFileAccessCLI } from "./DatabaseFileAccess"; -import { StorageEventManagerCLI } from "../managers/StorageEventManagerCLI"; import type { ServiceModules } from "@lib/interfaces/ServiceModule"; +import { StorageAccessManager } from "@lib/managers/StorageProcessingManager"; +import { ServiceRebuilder } from "@lib/serviceModules/Rebuilder"; +import type { ServiceContext } from "@lib/services/base/ServiceBase"; +import type { InjectableServiceHub } from "@lib/services/implements/injectable/InjectableServiceHub"; +import type { LiveSyncBaseCore } from "../../../LiveSyncBaseCore"; +import { ServiceFileHandler } from "../../../serviceModules/FileHandler"; +import { StorageEventManagerCLI } from "../managers/StorageEventManagerCLI"; +import { ServiceDatabaseFileAccessCLI } from "./DatabaseFileAccess"; +import { FileAccessCLI } from "./FileAccessCLI"; import type { IgnoreRules } from "./IgnoreRules"; +import { ServiceFileAccessCLI } from "./ServiceFileAccessImpl"; /** * Initialize service modules for CLI version diff --git a/src/apps/cli/serviceModules/DatabaseFileAccess.ts b/src/apps/cli/serviceModules/DatabaseFileAccess.ts index 583a9f5..be8a805 100644 --- a/src/apps/cli/serviceModules/DatabaseFileAccess.ts +++ b/src/apps/cli/serviceModules/DatabaseFileAccess.ts @@ -1,8 +1,8 @@ +import type { DatabaseFileAccess } from "@lib/interfaces/DatabaseFileAccess"; import { ServiceDatabaseFileAccessBase, type ServiceDatabaseFileAccessDependencies, } from "@lib/serviceModules/ServiceDatabaseFileAccessBase"; -import type { DatabaseFileAccess } from "@lib/interfaces/DatabaseFileAccess"; /** * CLI-specific implementation of ServiceDatabaseFileAccess diff --git a/src/apps/cli/services/NodeKeyValueDBService.ts b/src/apps/cli/services/NodeKeyValueDBService.ts index 10b1626..3d99191 100644 --- a/src/apps/cli/services/NodeKeyValueDBService.ts +++ b/src/apps/cli/services/NodeKeyValueDBService.ts @@ -1,14 +1,13 @@ import { LOG_LEVEL_NOTICE, LOG_LEVEL_VERBOSE } from "@lib/common/logger"; import type { KeyValueDatabase } from "@lib/interfaces/KeyValueDatabase"; -import type { IKeyValueDBService } from "@lib/services/base/IService"; +import type { IKeyValueDBService, IVaultService } from "@lib/services/base/IService"; import { ServiceBase, type ServiceContext } from "@lib/services/base/ServiceBase"; import type { InjectableAppLifecycleService } from "@lib/services/implements/injectable/InjectableAppLifecycleService"; import type { InjectableDatabaseEventService } from "@lib/services/implements/injectable/InjectableDatabaseEventService"; -import type { IVaultService } from "@lib/services/base/IService"; -import type { SimpleStore } from "octagonal-wheels/databases/SimpleStoreBase"; 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"; const NODE_KV_TYPED_KEY = "__nodeKvType"; const NODE_KV_VALUES_KEY = "values"; diff --git a/src/apps/cli/services/NodeServiceHub.ts b/src/apps/cli/services/NodeServiceHub.ts index 2aaa093..f28d25f 100644 --- a/src/apps/cli/services/NodeServiceHub.ts +++ b/src/apps/cli/services/NodeServiceHub.ts @@ -1,10 +1,11 @@ import type { AppLifecycleService, AppLifecycleServiceDependencies } from "@lib/services/base/AppLifecycleService"; +import { ControlService } from "@lib/services/base/ControlService"; +import type { IControlService } from "@lib/services/base/IService"; import { ServiceContext } from "@lib/services/base/ServiceBase"; -import * as nodePath from "node:path"; -import { ConfigServiceBrowserCompat } from "@lib/services/implements/browser/ConfigServiceBrowserCompat"; import { SvelteDialogManagerBase, type ComponentHasResult } from "@lib/services/implements/base/SvelteDialog"; import { UIService } from "@lib/services/implements/base/UIService"; -import { InjectableServiceHub } from "@lib/services/implements/injectable/InjectableServiceHub"; +import { ConfigServiceBrowserCompat } from "@lib/services/implements/browser/ConfigServiceBrowserCompat"; +import { HeadlessAPIService } from "@lib/services/implements/headless/HeadlessAPIService"; import { InjectableAppLifecycleService } from "@lib/services/implements/injectable/InjectableAppLifecycleService"; import { InjectableConflictService } from "@lib/services/implements/injectable/InjectableConflictService"; import { InjectableDatabaseEventService } from "@lib/services/implements/injectable/InjectableDatabaseEventService"; @@ -13,18 +14,17 @@ import { PathServiceCompat } from "@lib/services/implements/injectable/Injectabl import { InjectableRemoteService } from "@lib/services/implements/injectable/InjectableRemoteService"; import { InjectableReplicationService } from "@lib/services/implements/injectable/InjectableReplicationService"; import { InjectableReplicatorService } from "@lib/services/implements/injectable/InjectableReplicatorService"; +import { InjectableServiceHub } from "@lib/services/implements/injectable/InjectableServiceHub"; import { InjectableTestService } from "@lib/services/implements/injectable/InjectableTestService"; import { InjectableTweakValueService } from "@lib/services/implements/injectable/InjectableTweakValueService"; import { InjectableVaultServiceCompat } from "@lib/services/implements/injectable/InjectableVaultService"; -import { ControlService } from "@lib/services/base/ControlService"; -import type { IControlService } from "@lib/services/base/IService"; -import { HeadlessAPIService } from "@lib/services/implements/headless/HeadlessAPIService"; +import * as nodePath from "node:path"; // import { HeadlessDatabaseService } from "@lib/services/implements/headless/HeadlessDatabaseService"; +import type { ObsidianLiveSyncSettings } from "@lib/common/models/setting.type"; +import { DatabaseService } from "@lib/services/base/DatabaseService"; import type { ServiceInstances } from "@lib/services/ServiceHub"; import { NodeKeyValueDBService } from "./NodeKeyValueDBService"; import { NodeSettingService } from "./NodeSettingService"; -import { DatabaseService } from "@lib/services/base/DatabaseService"; -import type { ObsidianLiveSyncSettings } from "@lib/common/types"; export class NodeServiceContext extends ServiceContext { databasePath: string; diff --git a/src/apps/cli/services/NodeSettingService.ts b/src/apps/cli/services/NodeSettingService.ts index 0859183..778e6ff 100644 --- a/src/apps/cli/services/NodeSettingService.ts +++ b/src/apps/cli/services/NodeSettingService.ts @@ -1,10 +1,10 @@ -import { EVENT_SETTING_SAVED } from "@lib/events/coreEvents"; import { EVENT_REQUEST_RELOAD_SETTING_TAB } from "@/common/events"; +import type { ObsidianLiveSyncSettings } from "@lib/common/models/setting.type"; +import { EVENT_SETTING_SAVED } from "@lib/events/coreEvents"; import { eventHub } from "@lib/hub/hub"; -import { handlers } from "@lib/services/lib/HandlerUtils"; -import type { ObsidianLiveSyncSettings } from "@lib/common/types"; import type { ServiceContext } from "@lib/services/base/ServiceBase"; import { SettingService, type SettingServiceDependencies } from "@lib/services/base/SettingService"; +import { handlers } from "@lib/services/lib/HandlerUtils"; import { configureNodeLocalStorage, deleteNodeLocalStorageItem, diff --git a/src/lib b/src/lib index ee45b07..42397d0 160000 --- a/src/lib +++ b/src/lib @@ -1 +1 @@ -Subproject commit ee45b07b7f94fd36266806a6e59a673828c79a43 +Subproject commit 42397d0bdffef840e15b0844b587b7d3f2c368cb diff --git a/utilsdeno/refactor-import-utils.ts b/utilsdeno/refactor-import-utils.ts index 721421b..96e45df 100644 --- a/utilsdeno/refactor-import-utils.ts +++ b/utilsdeno/refactor-import-utils.ts @@ -11,6 +11,7 @@ if (isDryRun) { ); } +// const project = new Project({ tsConfigFilePath: "../src/apps/cli/tsconfig.json" }); const project = new Project({ tsConfigFilePath: "../tsconfig.json" }); const importMap = new Map(); diff --git a/utilsdeno/refactor-imports.ts b/utilsdeno/refactor-imports.ts index f8a9de7..b7d7a6a 100644 --- a/utilsdeno/refactor-imports.ts +++ b/utilsdeno/refactor-imports.ts @@ -11,6 +11,7 @@ if (isDryRun) { ); } +// const project = new Project({ tsConfigFilePath: "../src/apps/cli/tsconfig.json" }); const project = new Project({ tsConfigFilePath: "../tsconfig.json" }); const importMap = new Map();