scp-next 1.0.20 → 1.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -1
- package/README.md +81 -27
- package/dist/cli/index.js +1732 -1371
- package/dist/cli/index.js.map +1 -1
- package/dist/index.cjs +1204 -928
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +50 -5
- package/dist/index.d.ts +50 -5
- package/dist/index.js +1193 -883
- package/dist/index.js.map +1 -1
- package/guides/ARCHITECTURE.md +88 -0
- package/guides/mazey-candidates.md +364 -0
- package/package.json +44 -12
- package/docs/ARCHITECTURE.md +0 -55
- /package/{docs → guides}/release-notes/introducing-scp-next-v1.0.14.md +0 -0
- /package/{docs → guides}/release-notes/introducing-scp-next-v1.0.19-en.md +0 -0
- /package/{docs → guides}/release-notes/introducing-scp-next-v1.0.19-zh.md +0 -0
- /package/{docs → guides}/release-notes/introducing-scp-next-v1.0.2.md +0 -0
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/cli/index.ts","../../src/client/client.ts","../../src/client/transport.ts","../../src/security/redact.ts","../../src/errors/index.ts","../../src/security/host-verification.ts","../../src/paths/local-path.ts","../../src/client/walk.ts","../../src/paths/remote-path.ts","../../src/config/validation.ts","../../src/client/download.ts","../../src/client/upload.ts","../../src/cli/commands/download.ts","../../src/cli/operands.ts","../../src/cli/commands/shared.ts","../../src/config/environment.ts","../../src/config/load-config.ts","../../src/config/resolve-config.ts","../../src/config/jobs.ts","../../src/config/profiles.ts","../../src/cli/output.ts","../../src/cli/commands/run.ts","../../src/cli/commands/upload.ts"],"sourcesContent":["import { readFileSync, realpathSync } from \"node:fs\";\nimport { dirname, resolve } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\nimport { Command, CommanderError } from \"commander\";\n\nimport { download } from \"../client/download.js\";\nimport { upload } from \"../client/upload.js\";\nimport { ScpNextError } from \"../errors/index.js\";\nimport { formatErrorMessage } from \"../security/redact.js\";\nimport { createDownloadCommand } from \"./commands/download.js\";\nimport { createRunCommand } from \"./commands/run.js\";\nimport { createUploadCommand } from \"./commands/upload.js\";\nimport type { Output } from \"./output.js\";\nimport type { TransferHandlers } from \"./commands/shared.js\";\n\nexport interface RunCliOptions {\n argv?: string[];\n cwd?: string;\n output?: Output;\n handlers?: TransferHandlers;\n}\n\nfunction readPackageVersion(currentModuleUrl = import.meta.url): string {\n const currentFile = fileURLToPath(currentModuleUrl);\n const packageJsonPath = resolve(dirname(currentFile), \"..\", \"..\", \"package.json\");\n const packageJson = JSON.parse(readFileSync(packageJsonPath, \"utf8\")) as { version?: string };\n return packageJson.version ?? \"0.0.0\";\n}\n\nexport function isCliEntrypoint(\n currentModuleUrl = import.meta.url,\n argv: string[] = process.argv\n): boolean {\n const executedFile = argv[1];\n if (!executedFile) {\n return false;\n }\n\n try {\n return realpathSync(fileURLToPath(currentModuleUrl)) === realpathSync(executedFile);\n } catch {\n return false;\n }\n}\n\nexport async function runCli(options: RunCliOptions = {}): Promise<number> {\n const output = options.output ?? { stdout: process.stdout, stderr: process.stderr };\n const cwd = options.cwd ?? process.cwd();\n const handlers = options.handlers ?? { upload, download };\n const program = new Command();\n\n program\n .name(\"scp-next\")\n .description(\"Secure file transfers over SSH using SFTP\")\n .version(readPackageVersion())\n .configureOutput({\n writeOut: (message) => output.stdout.write(message),\n writeErr: (message) => output.stderr.write(message)\n })\n .configureHelp({\n subcommandTerm: (command) => `${command.name()} ${command.usage()}`\n })\n .showHelpAfterError()\n .exitOverride();\n\n program.addCommand(createUploadCommand(handlers, output, cwd));\n program.addCommand(createDownloadCommand(handlers, output, cwd));\n program.addCommand(createRunCommand(handlers, output, cwd));\n\n try {\n await program.parseAsync(options.argv ?? process.argv, { from: \"node\" });\n return 0;\n } catch (error) {\n if (error instanceof CommanderError) {\n if (error.code === \"commander.helpDisplayed\" || error.code === \"commander.version\") {\n return 0;\n }\n output.stderr.write(`${formatErrorMessage(error.message)}\\n`);\n return error.exitCode || 1;\n }\n\n const verbose = (options.argv ?? process.argv).includes(\"--verbose\");\n if (error instanceof ScpNextError) {\n output.stderr.write(`Error: ${formatErrorMessage(error.message)}\\n`);\n if (verbose && error.cause instanceof Error) {\n output.stderr.write(`${formatErrorMessage(error.cause.stack ?? error.cause.message)}\\n`);\n }\n return 1;\n }\n\n output.stderr.write(`Error: ${formatErrorMessage(error)}\\n`);\n if (verbose && error instanceof Error && error.stack) {\n output.stderr.write(`${formatErrorMessage(error.stack)}\\n`);\n }\n return 1;\n }\n}\n\nif (isCliEntrypoint()) {\n void runCli().then((exitCode) => {\n process.exitCode = exitCode;\n });\n}\n","import { access, mkdir, stat } from \"node:fs/promises\";\nimport path from \"node:path\";\n\nimport { Ssh2SftpTransport } from \"./transport.js\";\nimport type { SftpTransport } from \"./transport.js\";\nimport { walkLocalFiles, walkRemoteFiles } from \"./walk.js\";\nimport { TransferError, ValidationError } from \"../errors/index.js\";\nimport { getLocalPathKind, resolveLocalPath } from \"../paths/local-path.js\";\nimport { normalizeRemotePath, remoteDirname, remoteJoin } from \"../paths/remote-path.js\";\nimport type {\n DownloadOptions,\n ScpNextClient,\n ScpServerOptions,\n TransferOptions,\n UploadOptions\n} from \"../types/index.js\";\nimport {\n validateDownloadOptions,\n validateServerOptions,\n validateUploadOptions\n} from \"../config/validation.js\";\n\nexport interface ScpNextClientDependencies {\n transport?: SftpTransport;\n}\n\nfunction percentage(transferredBytes: number, totalBytes?: number): number | undefined {\n if (!totalBytes || totalBytes <= 0) {\n return undefined;\n }\n return Math.min(100, Math.round((transferredBytes / totalBytes) * 100));\n}\n\nfunction mergeOptions<T extends TransferOptions>(\n serverOptions: ScpServerOptions,\n transferOptions: T | undefined\n): ScpServerOptions & T {\n return { ...serverOptions, ...(transferOptions ?? {}) } as ScpServerOptions & T;\n}\n\nfunction shouldCreateDirectories(options: TransferOptions): boolean {\n return options.createDirectories ?? true;\n}\n\nfunction hasTrailingPathSeparator(inputPath: string): boolean {\n return /[\\\\/]$/.test(inputPath);\n}\n\nfunction trimmedRemoteDirectory(remotePath: string): string {\n return remotePath.replace(/\\/+$/g, \"\") || \"/\";\n}\n\nfunction remoteBasename(remotePath: string): string {\n return path.posix.basename(trimmedRemoteDirectory(remotePath));\n}\n\nasync function isExistingLocalDirectory(localPath: string): Promise<boolean> {\n try {\n return (await stat(localPath)).isDirectory();\n } catch {\n return false;\n }\n}\n\nasync function ensureLocalDirectory(localPath: string, createParents = false): Promise<void> {\n try {\n const stats = await stat(localPath);\n if (stats.isDirectory()) {\n return;\n }\n throw new TransferError(`Local destination already exists and is not a directory: ${localPath}`, {\n context: { localPath }\n });\n } catch (error) {\n if (error instanceof TransferError) {\n throw error;\n }\n await mkdir(localPath, { recursive: createParents });\n }\n}\n\nexport class ScpNextClientImpl implements ScpNextClient {\n private readonly serverOptions: ScpServerOptions;\n private readonly transport: SftpTransport;\n private connected = false;\n\n constructor(serverOptions: ScpServerOptions, dependencies: ScpNextClientDependencies = {}) {\n this.serverOptions = serverOptions;\n this.transport = dependencies.transport ?? new Ssh2SftpTransport();\n }\n\n async connect(): Promise<void> {\n await validateServerOptions(this.serverOptions);\n await this.transport.connect(this.serverOptions);\n this.connected = true;\n }\n\n async upload(\n localPath: string,\n remotePath: string,\n options: TransferOptions = {}\n ): Promise<void> {\n const uploadOptions: UploadOptions = {\n ...mergeOptions(this.serverOptions, options),\n localPath,\n remotePath\n };\n await validateUploadOptions(uploadOptions);\n\n if (options.dryRun) {\n return;\n }\n\n await this.ensureConnected();\n await this.uploadWithTransport(uploadOptions);\n }\n\n async download(\n remotePath: string,\n localPath: string,\n options: TransferOptions = {}\n ): Promise<void> {\n const downloadOptions: DownloadOptions = {\n ...mergeOptions(this.serverOptions, options),\n remotePath,\n localPath\n };\n await validateDownloadOptions(downloadOptions);\n\n if (options.dryRun) {\n return;\n }\n\n await this.ensureConnected();\n await this.downloadWithTransport(downloadOptions);\n }\n\n async close(): Promise<void> {\n if (this.connected) {\n await this.transport.close();\n this.connected = false;\n }\n }\n\n private async ensureConnected(): Promise<void> {\n if (!this.connected) {\n await this.connect();\n }\n }\n\n private async uploadWithTransport(options: UploadOptions): Promise<void> {\n const localKind = await getLocalPathKind(options.localPath);\n const remotePath = normalizeRemotePath(options.remotePath);\n\n if (localKind === \"directory\" && !options.recursive) {\n throw new ValidationError(\"Uploading a directory requires recursive mode.\");\n }\n\n if (localKind === \"file\") {\n const destinationFile = await this.resolveRemoteDestinationForLocalFile(options, remotePath);\n const totalBytes = undefined;\n await this.transport.uploadFile(resolveLocalPath(options.localPath), destinationFile, (step) => {\n options.onProgress?.({\n operation: \"upload\",\n source: options.localPath,\n destination: options.remotePath,\n transferredBytes: step.transferredBytes,\n totalBytes: step.totalBytes || totalBytes,\n percentage: percentage(step.transferredBytes, step.totalBytes),\n currentFile: options.localPath\n });\n });\n return;\n }\n\n const files = await walkLocalFiles(options.localPath);\n const totalBytes = files.reduce((sum, file) => sum + file.size, 0);\n let completedBytes = 0;\n let completedFiles = 0;\n const destinationRoot = await this.resolveRemoteDestinationForLocalDirectory(\n options,\n remotePath\n );\n\n for (const file of files) {\n const destinationFile = remoteJoin(\n destinationRoot,\n file.relativePath.split(path.sep).join(\"/\")\n );\n await this.ensureRemoteParent(destinationFile, true);\n await this.assertRemoteOverwrite(destinationFile, options.overwrite);\n\n await this.transport.uploadFile(file.absolutePath, destinationFile, (step) => {\n const transferredBytes = completedBytes + step.transferredBytes;\n options.onProgress?.({\n operation: \"upload\",\n source: options.localPath,\n destination: options.remotePath,\n transferredBytes,\n totalBytes,\n percentage: percentage(transferredBytes, totalBytes),\n currentFile: file.relativePath,\n completedFiles,\n totalFiles: files.length\n });\n });\n\n completedBytes += file.size;\n completedFiles += 1;\n }\n }\n\n private async resolveRemoteDestinationForLocalFile(\n options: UploadOptions,\n remotePath: string\n ): Promise<string> {\n const remoteKind = await this.transport.exists(remotePath);\n const isDirectoryLikeDestination = remoteKind === \"d\" || remotePath.endsWith(\"/\");\n\n if (!isDirectoryLikeDestination) {\n await this.ensureRemoteParent(remotePath, shouldCreateDirectories(options));\n await this.assertRemoteOverwrite(remotePath, options.overwrite);\n return remotePath;\n }\n\n if (remoteKind && remoteKind !== \"d\") {\n throw new TransferError(`Remote destination already exists and is not a directory: ${remotePath}`, {\n context: { remotePath }\n });\n }\n\n const remoteDirectory = remotePath.replace(/\\/+$/g, \"\") || \"/\";\n if (!remoteKind) {\n if (!shouldCreateDirectories(options)) {\n throw new TransferError(`Remote destination directory does not exist: ${remoteDirectory}`, {\n context: { remotePath }\n });\n }\n await this.transport.mkdir(remoteDirectory, true);\n }\n\n const destinationFile = remoteJoin(\n remoteDirectory,\n path.basename(resolveLocalPath(options.localPath))\n );\n await this.assertRemoteOverwrite(destinationFile, options.overwrite);\n return destinationFile;\n }\n\n private async resolveRemoteDestinationForLocalDirectory(\n options: UploadOptions,\n remotePath: string\n ): Promise<string> {\n const remoteKind = await this.transport.exists(remotePath);\n const isDirectoryLikeDestination = remoteKind === \"d\" || remotePath.endsWith(\"/\");\n const localDirectoryName = path.basename(resolveLocalPath(options.localPath));\n\n if (remoteKind && remoteKind !== \"d\") {\n throw new TransferError(`Remote destination already exists and is not a directory: ${remotePath}`, {\n context: { remotePath }\n });\n }\n\n if (isDirectoryLikeDestination) {\n const remoteDirectory = trimmedRemoteDirectory(remotePath);\n if (!remoteKind) {\n if (!shouldCreateDirectories(options)) {\n throw new TransferError(`Remote destination directory does not exist: ${remoteDirectory}`, {\n context: { remotePath }\n });\n }\n await this.transport.mkdir(remoteDirectory, true);\n }\n\n const destinationRoot = remoteJoin(remoteDirectory, localDirectoryName);\n await this.ensureRemoteDirectory(destinationRoot);\n return destinationRoot;\n }\n\n if (!remoteKind) {\n if (!shouldCreateDirectories(options)) {\n throw new TransferError(`Remote destination directory does not exist: ${remotePath}`, {\n context: { remotePath }\n });\n }\n await this.transport.mkdir(remotePath, true);\n }\n\n return remotePath;\n }\n\n private async downloadWithTransport(options: DownloadOptions): Promise<void> {\n const remotePath = normalizeRemotePath(options.remotePath);\n const remoteKind = await this.transport.exists(remotePath);\n\n if (!remoteKind) {\n throw new TransferError(`Remote path does not exist: ${options.remotePath}`, {\n context: { remotePath: options.remotePath }\n });\n }\n\n if (remoteKind === \"d\") {\n if (!options.recursive) {\n throw new ValidationError(\"Downloading a directory requires recursive mode.\");\n }\n await this.downloadDirectory(options);\n return;\n }\n\n await this.downloadSingleFile(options, remotePath);\n }\n\n private async downloadSingleFile(options: DownloadOptions, remotePath: string): Promise<void> {\n const localPath = await this.resolveLocalDestinationForRemoteFile(options, remotePath);\n await this.assertLocalOverwrite(localPath, options.overwrite);\n if (shouldCreateDirectories(options)) {\n await mkdir(path.dirname(localPath), { recursive: true });\n }\n await this.transport.downloadFile(remotePath, localPath, (step) => {\n options.onProgress?.({\n operation: \"download\",\n source: options.remotePath,\n destination: options.localPath,\n transferredBytes: step.transferredBytes,\n totalBytes: step.totalBytes,\n percentage: percentage(step.transferredBytes, step.totalBytes),\n currentFile: options.remotePath\n });\n });\n }\n\n private async downloadDirectory(options: DownloadOptions): Promise<void> {\n const remotePath = normalizeRemotePath(options.remotePath);\n const localRoot = await this.resolveLocalDestinationForRemoteDirectory(options, remotePath);\n const files = await walkRemoteFiles(this.transport, remotePath);\n const totalBytes = files.reduce((sum, file) => sum + file.size, 0);\n let completedBytes = 0;\n let completedFiles = 0;\n\n await ensureLocalDirectory(localRoot, shouldCreateDirectories(options));\n\n for (const file of files) {\n const localFile = path.join(localRoot, ...file.relativePath.split(\"/\"));\n await this.assertLocalOverwrite(localFile, options.overwrite);\n await mkdir(path.dirname(localFile), { recursive: true });\n await this.transport.downloadFile(file.remotePath, localFile, (step) => {\n const transferredBytes = completedBytes + step.transferredBytes;\n options.onProgress?.({\n operation: \"download\",\n source: options.remotePath,\n destination: options.localPath,\n transferredBytes,\n totalBytes,\n percentage: percentage(transferredBytes, totalBytes),\n currentFile: file.relativePath,\n completedFiles,\n totalFiles: files.length\n });\n });\n completedBytes += file.size;\n completedFiles += 1;\n }\n }\n\n private async resolveLocalDestinationForRemoteFile(\n options: DownloadOptions,\n remotePath: string\n ): Promise<string> {\n const localDestination = resolveLocalPath(options.localPath);\n const isDirectoryLikeDestination =\n hasTrailingPathSeparator(options.localPath) || (await isExistingLocalDirectory(localDestination));\n\n if (!isDirectoryLikeDestination) {\n return localDestination;\n }\n\n if (!(await isExistingLocalDirectory(localDestination))) {\n if (!shouldCreateDirectories(options)) {\n throw new TransferError(`Local destination directory does not exist: ${localDestination}`, {\n context: { localPath: options.localPath }\n });\n }\n await mkdir(localDestination, { recursive: true });\n }\n\n return path.join(localDestination, remoteBasename(remotePath));\n }\n\n private async resolveLocalDestinationForRemoteDirectory(\n options: DownloadOptions,\n remotePath: string\n ): Promise<string> {\n const localDestination = resolveLocalPath(options.localPath);\n const isDirectoryLikeDestination =\n hasTrailingPathSeparator(options.localPath) || (await isExistingLocalDirectory(localDestination));\n\n if (!isDirectoryLikeDestination) {\n return localDestination;\n }\n\n if (!(await isExistingLocalDirectory(localDestination))) {\n if (!shouldCreateDirectories(options)) {\n throw new TransferError(`Local destination directory does not exist: ${localDestination}`, {\n context: { localPath: options.localPath }\n });\n }\n await mkdir(localDestination, { recursive: true });\n }\n\n return path.join(localDestination, remoteBasename(remotePath));\n }\n\n private async ensureRemoteParent(remotePath: string, createDirectories = false): Promise<void> {\n const parent = remoteDirname(remotePath);\n if (parent === \".\" || parent === \"/\") {\n return;\n }\n\n if (createDirectories) {\n await this.transport.mkdir(parent, true);\n return;\n }\n\n const exists = await this.transport.exists(parent);\n if (exists !== \"d\") {\n throw new TransferError(`Remote destination parent does not exist: ${parent}`, {\n context: { remotePath }\n });\n }\n }\n\n private async ensureRemoteDirectory(remotePath: string): Promise<void> {\n const exists = await this.transport.exists(remotePath);\n if (exists && exists !== \"d\") {\n throw new TransferError(`Remote destination already exists and is not a directory: ${remotePath}`, {\n context: { remotePath }\n });\n }\n if (!exists) {\n await this.transport.mkdir(remotePath, true);\n }\n }\n\n private async assertRemoteOverwrite(remotePath: string, overwrite = false): Promise<void> {\n if (overwrite) {\n return;\n }\n const exists = await this.transport.exists(remotePath);\n if (exists) {\n throw new TransferError(\n `Remote destination already exists: ${remotePath}. Use --overwrite to overwrite it.`,\n {\n context: { remotePath }\n }\n );\n }\n }\n\n private async assertLocalOverwrite(localPath: string, overwrite = false): Promise<void> {\n if (overwrite) {\n return;\n }\n\n try {\n await access(localPath);\n throw new TransferError(`Local destination already exists: ${localPath}`, {\n context: { localPath }\n });\n } catch (error) {\n if (error instanceof TransferError) {\n throw error;\n }\n }\n }\n}\n\nexport function createClient(options: ScpServerOptions): ScpNextClient {\n return new ScpNextClientImpl(options);\n}\n","import { readFile } from \"node:fs/promises\";\n\nimport SftpClient from \"ssh2-sftp-client\";\nimport type {\n ConnectOptions as SftpConnectOptions,\n FileInfo,\n TransferOptions as SftpTransferOptions\n} from \"ssh2-sftp-client\";\n\nimport {\n ConnectionError,\n HostVerificationError,\n TransferError,\n toScpNextError\n} from \"../errors/index.js\";\nimport { createHostVerifier, resolveAllowedFingerprints } from \"../security/host-verification.js\";\nimport { formatErrorMessage } from \"../security/redact.js\";\nimport type { ScpServerOptions } from \"../types/index.js\";\nimport { expandHome } from \"../paths/local-path.js\";\n\nexport interface RemoteFileInfo {\n type: \"-\" | \"d\" | \"l\";\n name: string;\n size: number;\n}\n\nexport interface TransferStep {\n transferredBytes: number;\n chunkBytes: number;\n totalBytes: number;\n}\n\nexport interface SftpTransport {\n connect(options: ScpServerOptions): Promise<void>;\n close(): Promise<void>;\n exists(remotePath: string): Promise<false | \"-\" | \"d\" | \"l\">;\n mkdir(remotePath: string, recursive?: boolean): Promise<void>;\n list(remotePath: string): Promise<RemoteFileInfo[]>;\n uploadFile(\n localPath: string,\n remotePath: string,\n onStep?: (step: TransferStep) => void\n ): Promise<void>;\n downloadFile(\n remotePath: string,\n localPath: string,\n onStep?: (step: TransferStep) => void\n ): Promise<void>;\n}\n\nfunction toRemoteFileInfo(info: FileInfo): RemoteFileInfo {\n return {\n type: info.type,\n name: info.name,\n size: info.size\n };\n}\n\nexport class Ssh2SftpTransport implements SftpTransport {\n private readonly client: SftpClient;\n\n constructor(name = \"scp-next\") {\n this.client = new SftpClient(name, {\n error: () => undefined,\n end: () => undefined,\n close: () => undefined\n });\n }\n\n async connect(options: ScpServerOptions): Promise<void> {\n const allowedFingerprints = await resolveAllowedFingerprints(options);\n const hostVerifier = createHostVerifier(allowedFingerprints);\n\n const connectOptions: SftpConnectOptions = {};\n if (options.host !== undefined) connectOptions.host = options.host;\n if (options.port !== undefined) connectOptions.port = options.port;\n if (options.username !== undefined) connectOptions.username = options.username;\n if (options.password !== undefined) connectOptions.password = options.password;\n if (options.privateKey !== undefined) {\n connectOptions.privateKey = options.privateKey;\n } else if (options.privateKeyFile) {\n connectOptions.privateKey = await readFile(expandHome(options.privateKeyFile), \"utf8\");\n }\n if (options.passphrase !== undefined) connectOptions.passphrase = options.passphrase;\n const agent = options.agent ?? process.env.SSH_AUTH_SOCK;\n if (agent !== undefined) {\n connectOptions.agent = agent;\n }\n if (options.timeout !== undefined) connectOptions.readyTimeout = options.timeout;\n if (hostVerifier) {\n connectOptions.hostHash = \"sha256\";\n connectOptions.hostVerifier = hostVerifier;\n }\n\n try {\n await this.client.connect(connectOptions);\n } catch (error) {\n const converted = toScpNextError(error);\n if (converted instanceof HostVerificationError) {\n throw new HostVerificationError(\n `SSH host verification failed during connection: ${formatErrorMessage(\n error\n )}.${hostVerificationTroubleshooting(options.host)}`,\n { cause: error, context: connectionContext(options) }\n );\n }\n if (isLikelyHostVerificationFailure(error)) {\n throw new HostVerificationError(\n `SSH host verification failed during connection.${hostVerificationTroubleshooting(\n options.host\n )}`,\n { cause: error, context: connectionContext(options) }\n );\n }\n throw new ConnectionError(`Unable to connect to SSH server: ${formatErrorMessage(error)}`, {\n cause: error,\n context: connectionContext(options)\n });\n }\n }\n\n async close(): Promise<void> {\n await this.client.end();\n }\n\n async exists(remotePath: string): Promise<false | \"-\" | \"d\" | \"l\"> {\n return this.client.exists(remotePath);\n }\n\n async mkdir(remotePath: string, recursive = true): Promise<void> {\n await this.client.mkdir(remotePath, recursive);\n }\n\n async list(remotePath: string): Promise<RemoteFileInfo[]> {\n const files = await this.client.list(remotePath);\n return files.map(toRemoteFileInfo);\n }\n\n async uploadFile(\n localPath: string,\n remotePath: string,\n onStep?: (step: TransferStep) => void\n ): Promise<void> {\n try {\n await this.client.fastPut(localPath, remotePath, this.transferOptions(onStep));\n } catch (error) {\n throw new TransferError(`Upload failed for ${localPath}: ${formatErrorMessage(error)}`, {\n cause: error,\n context: { localPath, remotePath }\n });\n }\n }\n\n async downloadFile(\n remotePath: string,\n localPath: string,\n onStep?: (step: TransferStep) => void\n ): Promise<void> {\n try {\n await this.client.fastGet(remotePath, localPath, this.transferOptions(onStep));\n } catch (error) {\n throw new TransferError(`Download failed for ${remotePath}: ${formatErrorMessage(error)}`, {\n cause: error,\n context: { remotePath, localPath }\n });\n }\n }\n\n private transferOptions(onStep?: (step: TransferStep) => void): SftpTransferOptions | undefined {\n if (!onStep) {\n return undefined;\n }\n return {\n step(transferredBytes, chunkBytes, totalBytes) {\n onStep({ transferredBytes, chunkBytes, totalBytes });\n }\n };\n }\n}\n\nfunction connectionContext(options: ScpServerOptions): Record<string, unknown> {\n return {\n host: options.host,\n port: options.port,\n username: options.username\n };\n}\n\nfunction isLikelyHostVerificationFailure(error: unknown): boolean {\n const message = error instanceof Error ? error.message.toLowerCase() : String(error).toLowerCase();\n return (\n message.includes(\"host\") &&\n (message.includes(\"verif\") ||\n message.includes(\"fingerprint\") ||\n message.includes(\"host key\") ||\n message.includes(\"key mismatch\") ||\n message.includes(\"denied\"))\n );\n}\n\nfunction hostVerificationTroubleshooting(host: string | undefined): string {\n const displayHost = host ?? \"<host>\";\n return [\n \"\",\n \"\",\n \"Typical fix:\",\n ` ssh ${displayHost}`,\n \"\",\n \"If plain ssh works but scp-next fails, check that the host entry is available in\",\n \"`~/.ssh/known_hosts` for the same host and port used by scp-next. For non-default ports,\",\n \"OpenSSH usually stores entries as `[host]:port`.\",\n \"You can also configure hostFingerprint or knownHostsFile explicitly.\"\n ].join(\"\\n\");\n}\n","const SENSITIVE_KEYS = [\n \"password\",\n \"passphrase\",\n \"privatekey\",\n \"privatekeyfile\",\n \"token\",\n \"authorization\",\n \"credential\",\n \"secret\"\n];\n\nconst PRIVATE_KEY_PATTERN =\n /-----BEGIN [A-Z ]*PRIVATE KEY-----[\\s\\S]*?-----END [A-Z ]*PRIVATE KEY-----/g;\n\nfunction isSensitiveKey(key: string): boolean {\n const normalized = key.replace(/[-_\\s]/g, \"\").toLowerCase();\n return SENSITIVE_KEYS.some((sensitive) => normalized.includes(sensitive));\n}\n\nexport function redactSensitiveValues(value: unknown): unknown {\n if (typeof value === \"string\") {\n return value.replace(PRIVATE_KEY_PATTERN, \"[REDACTED]\");\n }\n\n if (Array.isArray(value)) {\n const redacted: unknown[] = value.map((item: unknown) => redactSensitiveValues(item));\n return redacted;\n }\n\n if (value && typeof value === \"object\") {\n const redacted: Record<string, unknown> = {};\n for (const [key, nestedValue] of Object.entries(value)) {\n redacted[key] = isSensitiveKey(key) ? \"[REDACTED]\" : redactSensitiveValues(nestedValue);\n }\n return redacted;\n }\n\n return value;\n}\n\nexport function formatErrorMessage(error: unknown): string {\n if (error instanceof Error) {\n return String(redactSensitiveValues(error.message));\n }\n return String(redactSensitiveValues(error));\n}\n","import { redactSensitiveValues } from \"../security/redact.js\";\n\nexport type ScpNextErrorCode =\n | \"SCP_NEXT_ERROR\"\n | \"SCP_NEXT_CONFIGURATION_ERROR\"\n | \"SCP_NEXT_VALIDATION_ERROR\"\n | \"SCP_NEXT_AUTHENTICATION_ERROR\"\n | \"SCP_NEXT_CONNECTION_ERROR\"\n | \"SCP_NEXT_TRANSFER_ERROR\"\n | \"SCP_NEXT_FILESYSTEM_ERROR\"\n | \"SCP_NEXT_HOST_VERIFICATION_ERROR\";\n\nexport interface ScpNextErrorOptions {\n code?: ScpNextErrorCode;\n cause?: unknown;\n context?: Record<string, unknown>;\n}\n\nexport class ScpNextError extends Error {\n readonly code: ScpNextErrorCode;\n readonly context: Record<string, unknown>;\n\n constructor(message: string, options: ScpNextErrorOptions = {}) {\n super(message, { cause: options.cause });\n this.name = new.target.name;\n this.code = options.code ?? \"SCP_NEXT_ERROR\";\n this.context = redactSensitiveValues(options.context ?? {}) as Record<string, unknown>;\n }\n}\n\nexport class ConfigurationError extends ScpNextError {\n constructor(message: string, options: Omit<ScpNextErrorOptions, \"code\"> = {}) {\n super(message, { ...options, code: \"SCP_NEXT_CONFIGURATION_ERROR\" });\n }\n}\n\nexport class ValidationError extends ScpNextError {\n constructor(message: string, options: Omit<ScpNextErrorOptions, \"code\"> = {}) {\n super(message, { ...options, code: \"SCP_NEXT_VALIDATION_ERROR\" });\n }\n}\n\nexport class AuthenticationError extends ScpNextError {\n constructor(message: string, options: Omit<ScpNextErrorOptions, \"code\"> = {}) {\n super(message, { ...options, code: \"SCP_NEXT_AUTHENTICATION_ERROR\" });\n }\n}\n\nexport class ConnectionError extends ScpNextError {\n constructor(message: string, options: Omit<ScpNextErrorOptions, \"code\"> = {}) {\n super(message, { ...options, code: \"SCP_NEXT_CONNECTION_ERROR\" });\n }\n}\n\nexport class TransferError extends ScpNextError {\n constructor(message: string, options: Omit<ScpNextErrorOptions, \"code\"> = {}) {\n super(message, { ...options, code: \"SCP_NEXT_TRANSFER_ERROR\" });\n }\n}\n\nexport class FileSystemError extends ScpNextError {\n constructor(message: string, options: Omit<ScpNextErrorOptions, \"code\"> = {}) {\n super(message, { ...options, code: \"SCP_NEXT_FILESYSTEM_ERROR\" });\n }\n}\n\nexport class HostVerificationError extends ScpNextError {\n constructor(message: string, options: Omit<ScpNextErrorOptions, \"code\"> = {}) {\n super(message, { ...options, code: \"SCP_NEXT_HOST_VERIFICATION_ERROR\" });\n }\n}\n\nexport function toScpNextError(error: unknown): ScpNextError {\n if (error instanceof ScpNextError) {\n return error;\n }\n\n const message = error instanceof Error ? error.message : \"Unexpected scp-next error.\";\n const lowerMessage = message.toLowerCase();\n\n if (lowerMessage.includes(\"authentication\") || lowerMessage.includes(\"permission denied\")) {\n return new AuthenticationError(\"SSH authentication failed.\", { cause: error });\n }\n\n if (\n lowerMessage.includes(\"host verification\") ||\n lowerMessage.includes(\"host key\") ||\n lowerMessage.includes(\"fingerprint\") ||\n (lowerMessage.includes(\"host\") && lowerMessage.includes(\"denied\"))\n ) {\n return new HostVerificationError(\"SSH host verification failed.\", { cause: error });\n }\n\n if (\n lowerMessage.includes(\"timed out\") ||\n lowerMessage.includes(\"connection\") ||\n lowerMessage.includes(\"econn\")\n ) {\n return new ConnectionError(\"SSH connection failed.\", { cause: error });\n }\n\n return new TransferError(String(redactSensitiveValues(message)), { cause: error });\n}\n","import { createHash } from \"node:crypto\";\nimport { access, readFile } from \"node:fs/promises\";\n\nimport { HostVerificationError } from \"../errors/index.js\";\nimport { expandHome } from \"../paths/local-path.js\";\n\nfunction normalizeFingerprint(fingerprint: string): string {\n return fingerprint\n .trim()\n .replace(/^SHA256:/i, \"\")\n .replace(/^sha256:/i, \"\")\n .replace(/=+$/g, \"\");\n}\n\nfunction isHexFingerprint(fingerprint: string): boolean {\n return /^[0-9a-f]+$/i.test(fingerprint);\n}\n\nfunction fingerprintCandidates(fingerprint: string): string[] {\n const normalized = normalizeFingerprint(fingerprint);\n const candidates = new Set([normalized]);\n\n if (isHexFingerprint(normalized)) {\n candidates.add(normalized.toLowerCase());\n } else {\n try {\n candidates.add(Buffer.from(normalized, \"base64\").toString(\"hex\"));\n } catch {\n // Keep the original normalized value when it is not valid base64.\n }\n }\n\n return [...candidates];\n}\n\nexport function isFingerprintMatch(actual: string, expected: string): boolean {\n const normalizedActual = normalizeFingerprint(actual);\n const normalizedExpected = normalizeFingerprint(expected);\n if (normalizedActual === normalizedExpected) {\n return true;\n }\n return (\n isHexFingerprint(normalizedActual) &&\n isHexFingerprint(normalizedExpected) &&\n normalizedActual.toLowerCase() === normalizedExpected.toLowerCase()\n );\n}\n\nexport interface HostVerifierConfig {\n host?: string | undefined;\n port?: number | undefined;\n hostFingerprint?: string | undefined;\n knownHostsFile?: string | undefined;\n}\n\nfunction hostVerificationHint(host: string): string {\n return [\n \"\",\n \"Typical fix:\",\n ` ssh ${host}`,\n \"\",\n \"If you trust the host key, accept it and retry the scp-next command.\",\n \"Alternatively configure hostFingerprint or knownHostsFile explicitly.\"\n ].join(\"\\n\");\n}\n\nexport async function resolveAllowedFingerprints(\n options: HostVerifierConfig\n): Promise<Set<string>> {\n const fingerprints = new Set<string>();\n const knownHostsFile = options.knownHostsFile ?? \"~/.ssh/known_hosts\";\n\n if (!options.host) {\n throw new HostVerificationError(\"A host is required for SSH host verification.\");\n }\n\n if (options.hostFingerprint) {\n for (const fingerprint of fingerprintCandidates(options.hostFingerprint)) {\n fingerprints.add(fingerprint);\n }\n }\n\n try {\n await access(expandHome(knownHostsFile));\n const content = await readFile(expandHome(knownHostsFile), \"utf8\");\n for (const line of content.split(/\\r?\\n/)) {\n const trimmed = line.trim();\n if (!trimmed || trimmed.startsWith(\"#\") || trimmed.startsWith(\"@\")) {\n continue;\n }\n\n const [hosts, algorithm, key] = trimmed.split(/\\s+/);\n const hostPatterns = hosts?.split(\",\") ?? [];\n const portHost = options.port ? `[${options.host}]:${options.port}` : undefined;\n const matchesHost =\n hostPatterns.includes(options.host) || Boolean(portHost && hostPatterns.includes(portHost));\n if (!hosts || !algorithm || !key || !matchesHost) {\n continue;\n }\n\n const keyBuffer = Buffer.from(key, \"base64\");\n fingerprints.add(createHash(\"sha256\").update(keyBuffer).digest(\"base64\").replace(/=+$/g, \"\"));\n fingerprints.add(createHash(\"sha256\").update(keyBuffer).digest(\"hex\"));\n }\n } catch (error) {\n if (options.knownHostsFile || !options.hostFingerprint) {\n throw new HostVerificationError(\n \"SSH host verification requires hostFingerprint or an accessible knownHostsFile.\",\n { cause: error, context: { knownHostsFile } }\n );\n }\n }\n\n if (fingerprints.size === 0) {\n throw new HostVerificationError(\n `SSH host verification failed before connecting: no matching host fingerprint was configured.${hostVerificationHint(\n options.host\n )}`\n );\n }\n\n return fingerprints;\n}\n\nexport function createHostVerifier(allowedFingerprints: Set<string>) {\n return (hashedKey: string): boolean => {\n for (const expected of allowedFingerprints) {\n if (isFingerprintMatch(hashedKey, expected)) {\n return true;\n }\n }\n return false;\n };\n}\n","import { constants } from \"node:fs\";\nimport { access, mkdir, stat } from \"node:fs/promises\";\nimport os from \"node:os\";\nimport path from \"node:path\";\n\nimport { FileSystemError, ValidationError } from \"../errors/index.js\";\n\nexport function expandHome(inputPath: string): string {\n if (inputPath === \"~\") {\n return os.homedir();\n }\n if (inputPath.startsWith(`~${path.sep}`) || inputPath.startsWith(\"~/\")) {\n return path.join(os.homedir(), inputPath.slice(2));\n }\n return inputPath;\n}\n\nexport function resolveLocalPath(inputPath: string, baseDir = process.cwd()): string {\n const expanded = expandHome(inputPath);\n return path.isAbsolute(expanded) ? path.normalize(expanded) : path.resolve(baseDir, expanded);\n}\n\nexport async function assertLocalPathExists(inputPath: string): Promise<void> {\n try {\n await access(resolveLocalPath(inputPath), constants.F_OK);\n } catch (error) {\n throw new FileSystemError(`Local path does not exist: ${inputPath}`, {\n cause: error,\n context: { path: inputPath }\n });\n }\n}\n\nexport async function assertLocalFileReadable(inputPath: string): Promise<void> {\n try {\n await access(resolveLocalPath(inputPath), constants.R_OK);\n } catch (error) {\n throw new FileSystemError(`Local file is not readable: ${inputPath}`, {\n cause: error,\n context: { path: inputPath }\n });\n }\n}\n\nexport async function assertDownloadDestination(inputPath: string, createDirectories = false) {\n const resolved = resolveLocalPath(inputPath);\n const parent = path.dirname(resolved);\n\n if (createDirectories) {\n await mkdir(parent, { recursive: true });\n return;\n }\n\n try {\n await access(parent, constants.W_OK);\n } catch (error) {\n throw new FileSystemError(`Local destination parent does not exist or is not writable: ${parent}`, {\n cause: error,\n context: { path: inputPath }\n });\n }\n}\n\nexport async function getLocalPathKind(inputPath: string): Promise<\"file\" | \"directory\"> {\n const stats = await stat(resolveLocalPath(inputPath));\n if (stats.isDirectory()) {\n return \"directory\";\n }\n if (stats.isFile()) {\n return \"file\";\n }\n throw new ValidationError(`Local path must be a file or directory: ${inputPath}`, {\n context: { path: inputPath }\n });\n}\n\nexport async function getLocalFileSize(inputPath: string): Promise<number> {\n const stats = await stat(resolveLocalPath(inputPath));\n return stats.size;\n}\n","import { readdir, stat } from \"node:fs/promises\";\nimport path from \"node:path\";\n\nimport type { RemoteFileInfo, SftpTransport } from \"./transport.js\";\nimport { resolveLocalPath } from \"../paths/local-path.js\";\nimport { remoteJoin } from \"../paths/remote-path.js\";\n\nexport interface LocalFileEntry {\n absolutePath: string;\n relativePath: string;\n size: number;\n}\n\nexport async function walkLocalFiles(rootPath: string): Promise<LocalFileEntry[]> {\n const resolvedRoot = resolveLocalPath(rootPath);\n const stats = await stat(resolvedRoot);\n\n if (stats.isFile()) {\n return [\n {\n absolutePath: resolvedRoot,\n relativePath: path.basename(resolvedRoot),\n size: stats.size\n }\n ];\n }\n\n const files: LocalFileEntry[] = [];\n\n async function visit(directory: string): Promise<void> {\n const entries = await readdir(directory, { withFileTypes: true });\n for (const entry of entries) {\n const absolutePath = path.join(directory, entry.name);\n if (entry.isDirectory()) {\n await visit(absolutePath);\n } else if (entry.isFile()) {\n const entryStats = await stat(absolutePath);\n files.push({\n absolutePath,\n relativePath: path.relative(resolvedRoot, absolutePath),\n size: entryStats.size\n });\n }\n }\n }\n\n await visit(resolvedRoot);\n return files;\n}\n\nexport interface RemoteFileEntry {\n remotePath: string;\n relativePath: string;\n size: number;\n}\n\nexport async function walkRemoteFiles(\n transport: SftpTransport,\n rootPath: string\n): Promise<RemoteFileEntry[]> {\n const rootEntries = await transport.list(rootPath);\n const files: RemoteFileEntry[] = [];\n\n async function visit(directory: string, relativeBase: string, entries: RemoteFileInfo[]): Promise<void> {\n for (const entry of entries) {\n const fullPath = remoteJoin(directory, entry.name);\n const relativePath = relativeBase ? remoteJoin(relativeBase, entry.name) : entry.name;\n if (entry.type === \"d\") {\n await visit(fullPath, relativePath, await transport.list(fullPath));\n } else if (entry.type === \"-\") {\n files.push({\n remotePath: fullPath,\n relativePath,\n size: entry.size\n });\n }\n }\n }\n\n await visit(rootPath, \"\", rootEntries);\n return files;\n}\n","import path from \"node:path\";\n\nimport { ValidationError } from \"../errors/index.js\";\n\nexport function assertRemotePath(inputPath: string, label = \"remote path\"): void {\n if (!inputPath || inputPath.trim().length === 0) {\n throw new ValidationError(`Invalid ${label}: remote paths must not be empty.`, {\n context: { path: inputPath }\n });\n }\n}\n\nexport function normalizeRemotePath(inputPath: string): string {\n assertRemotePath(inputPath);\n return path.posix.normalize(inputPath.replace(/\\\\/g, \"/\"));\n}\n\nexport function restoreMsysConvertedRemotePath(inputPath: string): string {\n const normalized = inputPath.replace(/\\\\/g, \"/\");\n const match = /^[A-Za-z]:\\/(?:Program Files\\/Git|Program Files \\(x86\\)\\/Git|Git|msys64)\\/(.+)$/i.exec(\n normalized\n );\n\n return match ? `/${match[1]}` : inputPath;\n}\n\nexport function remoteJoin(...parts: string[]): string {\n const joined = path.posix.join(...parts);\n assertRemotePath(joined);\n return joined;\n}\n\nexport function remoteDirname(inputPath: string): string {\n assertRemotePath(inputPath);\n return path.posix.dirname(inputPath);\n}\n","import { access } from \"node:fs/promises\";\n\nimport { ValidationError } from \"../errors/index.js\";\nimport { assertDownloadDestination, assertLocalPathExists, resolveLocalPath } from \"../paths/local-path.js\";\nimport { assertRemotePath } from \"../paths/remote-path.js\";\nimport type { DownloadOptions, ScpServerOptions, UploadOptions } from \"../types/index.js\";\n\nfunction validatePort(port: number | undefined): void {\n if (port === undefined) {\n return;\n }\n if (!Number.isInteger(port) || port < 1 || port > 65535) {\n throw new ValidationError(\"Port must be an integer between 1 and 65535.\", {\n context: { port }\n });\n }\n}\n\nfunction validateTimeout(timeout: number | undefined): void {\n if (timeout === undefined) {\n return;\n }\n if (!Number.isFinite(timeout) || timeout <= 0) {\n throw new ValidationError(\"Timeout must be a positive number.\", {\n context: { timeout }\n });\n }\n}\n\nexport async function validateServerOptions(options: ScpServerOptions): Promise<void> {\n if (!options.host) {\n throw new ValidationError(\"Host is required.\");\n }\n if (!options.username) {\n throw new ValidationError(\"Username is required.\");\n }\n\n validatePort(options.port);\n validateTimeout(options.timeout);\n\n if (options.privateKeyFile) {\n try {\n await access(resolveLocalPath(options.privateKeyFile));\n } catch (error) {\n throw new ValidationError(`Private key file does not exist: ${options.privateKeyFile}`, {\n cause: error,\n context: { privateKeyFile: options.privateKeyFile }\n });\n }\n }\n\n const hasAuthentication =\n Boolean(options.password) ||\n Boolean(options.privateKey) ||\n Boolean(options.privateKeyFile) ||\n Boolean(options.agent) ||\n Boolean(process.env.SSH_AUTH_SOCK);\n\n if (!hasAuthentication) {\n throw new ValidationError(\n \"Authentication is required. Provide a password, private key, private key file, or SSH agent.\"\n );\n }\n}\n\nexport async function validateUploadOptions(options: UploadOptions): Promise<void> {\n if (!options.localPath) {\n throw new ValidationError(\"Missing localPath.\");\n }\n if (!options.remotePath) {\n throw new ValidationError(\"Missing remotePath.\");\n }\n assertRemotePath(options.remotePath, \"remotePath\");\n validateTimeout(options.timeout);\n await assertLocalPathExists(options.localPath);\n\n if (!options.dryRun) {\n await validateServerOptions(options);\n }\n}\n\nexport async function validateDownloadOptions(options: DownloadOptions): Promise<void> {\n if (!options.remotePath) {\n throw new ValidationError(\"Missing remotePath.\");\n }\n if (!options.localPath) {\n throw new ValidationError(\"Missing localPath.\");\n }\n assertRemotePath(options.remotePath, \"remotePath\");\n validateTimeout(options.timeout);\n await assertDownloadDestination(options.localPath, options.createDirectories ?? true);\n\n if (!options.dryRun) {\n await validateServerOptions(options);\n }\n}\n","import { ScpNextClientImpl } from \"./client.js\";\nimport type { DownloadOptions } from \"../types/index.js\";\n\nexport async function download(options: DownloadOptions): Promise<void> {\n const client = new ScpNextClientImpl(options);\n try {\n await client.download(options.remotePath, options.localPath, options);\n } finally {\n await client.close();\n }\n}\n","import { ScpNextClientImpl } from \"./client.js\";\nimport type { UploadOptions } from \"../types/index.js\";\n\nexport async function upload(options: UploadOptions): Promise<void> {\n const client = new ScpNextClientImpl(options);\n try {\n await client.upload(options.localPath, options.remotePath, options);\n } finally {\n await client.close();\n }\n}\n","import { Command } from \"commander\";\n\nimport { assertSourceDestination } from \"../operands.js\";\nimport type { Output } from \"../output.js\";\nimport {\n addTransferOptions,\n executeResolvedTransfer,\n resolveForCli,\n type RawCommandOptions,\n type TransferHandlers\n} from \"./shared.js\";\n\nexport function createDownloadCommand(handlers: TransferHandlers, output: Output, cwd: string): Command {\n const command = new Command(\"download\")\n .description(\"Download a remote source path to a local destination path\")\n .usage(\"<source> <destination> [options]\")\n .argument(\"[source]\", \"Remote file or directory path\")\n .argument(\"[destination]\", \"Local file or directory\")\n .action(async (source: string | undefined, destination: string | undefined, options: RawCommandOptions) => {\n assertSourceDestination(\"download\", source, destination);\n const resolved = await resolveForCli({\n operation: \"download\",\n source,\n destination,\n options,\n cwd\n });\n await executeResolvedTransfer(resolved, handlers, output, options);\n });\n\n addTransferOptions(command);\n return command;\n}\n","import { ValidationError } from \"../errors/index.js\";\nimport type { TransferOperation } from \"../types/index.js\";\n\nexport function usageFor(operation: TransferOperation): string {\n return `scp-next ${operation} <source> <destination> [options]`;\n}\n\nexport function assertSourceDestination(\n operation: TransferOperation,\n source?: string,\n destination?: string\n): asserts source is string {\n if (!source) {\n throw new ValidationError(`Missing source path.\\n\\nUsage:\\n ${usageFor(operation)}`);\n }\n if (!destination) {\n throw new ValidationError(`Missing destination path.\\n\\nUsage:\\n ${usageFor(operation)}`);\n }\n}\n","import { Option } from \"commander\";\n\nimport { readEnvironment } from \"../../config/environment.js\";\nimport { loadConfig } from \"../../config/load-config.js\";\nimport {\n resolveTransferConfig,\n type CliTransferOptions\n} from \"../../config/resolve-config.js\";\nimport type { Output } from \"../output.js\";\nimport { createProgressReporter, verbosePlan, writeDryRun } from \"../output.js\";\nimport type {\n DownloadOptions,\n ResolvedTransferConfig,\n TransferOperation,\n UploadOptions\n} from \"../../types/index.js\";\n\nexport interface RawCommandOptions {\n host?: string;\n port?: number;\n username?: string;\n password?: string;\n privateKey?: string;\n privateKeyFile?: string;\n passphrase?: string;\n config?: string;\n profile?: string;\n recursive?: boolean;\n overwrite?: boolean;\n createDirectories?: boolean;\n dryRun?: boolean;\n timeout?: number;\n verbose?: boolean;\n quiet?: boolean;\n}\n\nexport interface TransferHandlers {\n upload(options: UploadOptions): Promise<void>;\n download(options: DownloadOptions): Promise<void>;\n}\n\nexport function addTransferOptions(command: { option: (flags: string, description: string) => unknown; addOption: (option: Option) => unknown }) {\n command.option(\"--host <host>\", \"SSH server host\");\n command.addOption(new Option(\"--port <port>\", \"SSH server port\").argParser(parseInteger));\n command.option(\"--username <username>\", \"SSH username\");\n command.option(\"--password <password>\", \"SSH password (prefer environment variables or key files)\");\n command.option(\"--private-key <privateKey>\", \"Private-key content\");\n command.option(\"--private-key-file <privateKeyFile>\", \"Private-key file path\");\n command.option(\"--passphrase <passphrase>\", \"Private-key passphrase\");\n command.option(\"--config <path>\", \"Configuration file path\");\n command.option(\"--profile <name>\", \"Named server profile\");\n command.option(\"--recursive\", \"Transfer directories recursively\");\n command.option(\"--overwrite\", \"Overwrite existing destination files\");\n command.option(\"--create-directories\", \"Create missing destination directories\");\n command.option(\"--no-create-directories\", \"Do not create missing destination directories\");\n command.option(\"--dry-run\", \"Resolve and validate without connecting or transferring\");\n command.addOption(new Option(\"--timeout <milliseconds>\", \"Connection/operation timeout\").argParser(parseInteger));\n command.option(\"--verbose\", \"Print verbose diagnostic output\");\n command.option(\"--quiet\", \"Disable progress and non-error output\");\n return command;\n}\n\nfunction parseInteger(value: string): number {\n const parsed = Number.parseInt(value, 10);\n if (!Number.isFinite(parsed)) {\n throw new Error(\"Expected a number.\");\n }\n return parsed;\n}\n\nfunction toCliOptions(options: RawCommandOptions): CliTransferOptions {\n return {\n host: options.host,\n port: options.port,\n username: options.username,\n password: options.password,\n privateKey: options.privateKey,\n privateKeyFile: options.privateKeyFile,\n passphrase: options.passphrase,\n profile: options.profile,\n recursive: options.recursive,\n overwrite: options.overwrite,\n createDirectories: options.createDirectories,\n dryRun: options.dryRun,\n timeout: options.timeout\n };\n}\n\nexport async function resolveForCli(input: {\n operation?: TransferOperation | undefined;\n source?: string | undefined;\n destination?: string | undefined;\n jobName?: string | undefined;\n options: RawCommandOptions;\n cwd: string;\n}): Promise<ResolvedTransferConfig> {\n const loaded = await loadConfig(input.options.config, input.cwd);\n return resolveTransferConfig({\n operation: input.operation,\n source: input.source,\n destination: input.destination,\n jobName: input.jobName,\n cli: toCliOptions(input.options),\n env: readEnvironment(),\n config: loaded.config,\n configDirectory: loaded.directory,\n cwd: input.cwd\n });\n}\n\nexport async function executeResolvedTransfer(\n config: ResolvedTransferConfig,\n handlers: TransferHandlers,\n output: Output,\n commandOptions: RawCommandOptions\n): Promise<void> {\n if (commandOptions.verbose) {\n verbosePlan(output, config);\n }\n\n if (config.dryRun) {\n if (!commandOptions.quiet) {\n writeDryRun(output, config);\n }\n return;\n }\n\n const onProgress = createProgressReporter(output, commandOptions.quiet);\n\n if (config.operation === \"upload\") {\n const uploadOptions: UploadOptions = {\n ...config,\n localPath: config.source,\n remotePath: config.destination\n };\n if (onProgress) uploadOptions.onProgress = onProgress;\n await handlers.upload(uploadOptions);\n return;\n }\n\n const downloadOptions: DownloadOptions = {\n ...config,\n remotePath: config.source,\n localPath: config.destination\n };\n if (onProgress) downloadOptions.onProgress = onProgress;\n await handlers.download(downloadOptions);\n}\n","import type { ScpServerOptions } from \"../types/index.js\";\n\nexport interface EnvironmentConfig extends ScpServerOptions {\n profile?: string;\n}\n\nfunction parseInteger(value: string | undefined, name: string): number | undefined {\n if (!value) {\n return undefined;\n }\n\n const parsed = Number.parseInt(value, 10);\n if (!Number.isFinite(parsed)) {\n throw new Error(`${name} must be a number.`);\n }\n return parsed;\n}\n\nexport function readEnvironment(\n env: NodeJS.ProcessEnv = process.env\n): EnvironmentConfig {\n const result: EnvironmentConfig = {};\n\n if (env.SCP_NEXT_HOST) result.host = env.SCP_NEXT_HOST;\n if (env.SCP_NEXT_PORT) {\n const port = parseInteger(env.SCP_NEXT_PORT, \"SCP_NEXT_PORT\");\n if (port !== undefined) result.port = port;\n }\n if (env.SCP_NEXT_USERNAME) result.username = env.SCP_NEXT_USERNAME;\n if (env.SCP_NEXT_PASSWORD) result.password = env.SCP_NEXT_PASSWORD;\n if (env.SCP_NEXT_PRIVATE_KEY) result.privateKey = env.SCP_NEXT_PRIVATE_KEY;\n if (env.SCP_NEXT_PRIVATE_KEY_FILE) result.privateKeyFile = env.SCP_NEXT_PRIVATE_KEY_FILE;\n if (env.SCP_NEXT_PASSPHRASE) result.passphrase = env.SCP_NEXT_PASSPHRASE;\n if (env.SCP_NEXT_TIMEOUT) {\n const timeout = parseInteger(env.SCP_NEXT_TIMEOUT, \"SCP_NEXT_TIMEOUT\");\n if (timeout !== undefined) result.timeout = timeout;\n }\n if (env.SCP_NEXT_PROFILE) result.profile = env.SCP_NEXT_PROFILE;\n\n return result;\n}\n","import { access, readFile } from \"node:fs/promises\";\nimport path from \"node:path\";\n\nimport { z } from \"zod\";\n\nimport { ConfigurationError } from \"../errors/index.js\";\nimport type { ScpNextConfig } from \"../types/index.js\";\nimport { resolveLocalPath } from \"../paths/local-path.js\";\n\nexport const CONFIG_FILENAMES = [\"scp-next.config.json\", \".scp-nextrc\", \".scp-nextrc.json\"] as const;\n\nconst serverSchema = z.object({\n host: z.string().optional(),\n port: z.number().int().optional(),\n username: z.string().optional(),\n password: z.string().optional(),\n privateKey: z.string().optional(),\n privateKeyFile: z.string().optional(),\n passphrase: z.string().optional(),\n agent: z.string().optional(),\n timeout: z.number().int().optional(),\n hostFingerprint: z.string().optional(),\n knownHostsFile: z.string().optional()\n});\n\nconst transferSchema = z.object({\n recursive: z.boolean().optional(),\n overwrite: z.boolean().optional(),\n createDirectories: z.boolean().optional(),\n dryRun: z.boolean().optional(),\n timeout: z.number().int().optional()\n});\n\nconst jobSchema = transferSchema.extend({\n operation: z.enum([\"upload\", \"download\"]),\n profile: z.string().optional(),\n source: z.string(),\n destination: z.string()\n});\n\nconst configSchema = serverSchema\n .extend({\n defaultProfile: z.string().optional(),\n server: serverSchema.optional(),\n transfer: transferSchema.optional(),\n profiles: z.record(serverSchema).optional(),\n jobs: z.record(jobSchema).optional()\n })\n .passthrough();\n\nexport interface LoadedConfig {\n config: ScpNextConfig;\n path?: string;\n directory: string;\n}\n\nasync function fileExists(filePath: string): Promise<boolean> {\n try {\n await access(filePath);\n return true;\n } catch {\n return false;\n }\n}\n\nexport async function findConfigFile(cwd = process.cwd()): Promise<string | undefined> {\n for (const filename of CONFIG_FILENAMES) {\n const candidate = path.resolve(cwd, filename);\n if (await fileExists(candidate)) {\n return candidate;\n }\n }\n return undefined;\n}\n\nexport async function loadConfig(\n explicitPath?: string,\n cwd = process.cwd()\n): Promise<LoadedConfig> {\n const configPath = explicitPath ? resolveLocalPath(explicitPath, cwd) : await findConfigFile(cwd);\n\n if (!configPath) {\n return { config: {}, directory: cwd };\n }\n\n let raw: string;\n try {\n raw = await readFile(configPath, \"utf8\");\n } catch (error) {\n throw new ConfigurationError(`Unable to read configuration file: ${configPath}`, {\n cause: error,\n context: { path: configPath }\n });\n }\n\n try {\n const parsed = JSON.parse(raw) as unknown;\n const result = configSchema.safeParse(parsed);\n if (!result.success) {\n throw new ConfigurationError(`Invalid configuration file: ${result.error.message}`, {\n context: { path: configPath }\n });\n }\n\n return {\n config: result.data,\n path: configPath,\n directory: path.dirname(configPath)\n };\n } catch (error) {\n if (error instanceof ConfigurationError) {\n throw error;\n }\n throw new ConfigurationError(`Invalid JSON in configuration file: ${configPath}`, {\n cause: error,\n context: { path: configPath }\n });\n }\n}\n","import path from \"node:path\";\n\nimport { selectJob } from \"./jobs.js\";\nimport { selectProfile } from \"./profiles.js\";\nimport type { EnvironmentConfig } from \"./environment.js\";\nimport type {\n ResolvedTransferConfig,\n ScpNextConfig,\n ScpServerOptions,\n TransferJob,\n TransferOperation,\n TransferOptions\n} from \"../types/index.js\";\nimport { resolveLocalPath } from \"../paths/local-path.js\";\nimport { restoreMsysConvertedRemotePath } from \"../paths/remote-path.js\";\n\nexport interface CliTransferOptions extends ScpServerOptions, Omit<TransferOptions, \"onProgress\"> {\n profile?: string | undefined;\n}\n\nexport interface ResolveTransferInput {\n operation?: TransferOperation | undefined;\n source?: string | undefined;\n destination?: string | undefined;\n cli?: CliTransferOptions | undefined;\n env?: EnvironmentConfig | undefined;\n config?: ScpNextConfig | undefined;\n configDirectory?: string | undefined;\n cwd?: string | undefined;\n jobName?: string | undefined;\n}\n\nconst DEFAULT_TRANSFER: Omit<ResolvedTransferConfig, \"operation\" | \"source\" | \"destination\"> = {\n port: 22,\n recursive: false,\n overwrite: false,\n createDirectories: true,\n dryRun: false\n};\n\nfunction assignDefined<T extends object>(target: T, source: object | undefined): T {\n if (!source) {\n return target;\n }\n\n for (const [key, value] of Object.entries(source as Record<string, unknown>)) {\n if (value !== undefined) {\n Object.assign(target, { [key]: value });\n }\n }\n\n return target;\n}\n\nfunction rootServer(config: ScpNextConfig): ScpServerOptions {\n const result: ScpServerOptions = {};\n assignDefined(result, config.server);\n assignDefined(result, {\n host: config.host,\n port: config.port,\n username: config.username,\n password: config.password,\n privateKey: config.privateKey,\n privateKeyFile: config.privateKeyFile,\n passphrase: config.passphrase,\n agent: config.agent,\n timeout: config.timeout,\n hostFingerprint: config.hostFingerprint,\n knownHostsFile: config.knownHostsFile\n });\n return result;\n}\n\nfunction jobTransfer(job: TransferJob | undefined): Omit<TransferOptions, \"onProgress\"> {\n const result: Omit<TransferOptions, \"onProgress\"> = {};\n if (!job) {\n return result;\n }\n return assignDefined(result, {\n recursive: job.recursive,\n overwrite: job.overwrite,\n createDirectories: job.createDirectories,\n dryRun: job.dryRun,\n timeout: job.timeout\n });\n}\n\nfunction resolveConfigRelatedPaths(\n resolved: ResolvedTransferConfig,\n operation: TransferOperation,\n configDirectory: string\n): ResolvedTransferConfig {\n const next = { ...resolved };\n\n if (next.privateKeyFile && !next.privateKeyFile.startsWith(\"~\")) {\n next.privateKeyFile = path.isAbsolute(next.privateKeyFile)\n ? next.privateKeyFile\n : resolveLocalPath(next.privateKeyFile, configDirectory);\n }\n\n if (next.knownHostsFile && !next.knownHostsFile.startsWith(\"~\")) {\n next.knownHostsFile = path.isAbsolute(next.knownHostsFile)\n ? next.knownHostsFile\n : resolveLocalPath(next.knownHostsFile, configDirectory);\n }\n\n if (operation === \"upload\" && !next.source.startsWith(\"~\")) {\n next.source = path.isAbsolute(next.source)\n ? next.source\n : resolveLocalPath(next.source, configDirectory);\n }\n\n if (operation === \"download\" && !next.destination.startsWith(\"~\")) {\n next.destination = path.isAbsolute(next.destination)\n ? next.destination\n : resolveLocalPath(next.destination, configDirectory);\n }\n\n return next;\n}\n\nexport function resolveTransferConfig(input: ResolveTransferInput): ResolvedTransferConfig {\n const config = input.config ?? {};\n const env = input.env ?? {};\n const cli = input.cli ?? {};\n const configDirectory = input.configDirectory ?? process.cwd();\n const cwd = input.cwd ?? process.cwd();\n const job = input.jobName ? selectJob(config, input.jobName) : undefined;\n const operation = input.operation ?? job?.operation;\n\n if (!operation) {\n throw new Error(\"Transfer operation is required.\");\n }\n\n const selectedProfileName =\n cli.profile ?? env.profile ?? job?.profile ?? config.defaultProfile;\n const profile = selectProfile(config, selectedProfileName);\n\n const resolved: ResolvedTransferConfig = {\n ...DEFAULT_TRANSFER,\n operation,\n source: job?.source ?? \"\",\n destination: job?.destination ?? \"\"\n };\n\n assignDefined(resolved, jobTransfer(job));\n assignDefined(resolved, config.transfer);\n assignDefined(resolved, rootServer(config));\n assignDefined(resolved, profile);\n assignDefined(resolved, {\n host: env.host,\n port: env.port,\n username: env.username,\n password: env.password,\n privateKey: env.privateKey,\n privateKeyFile: env.privateKeyFile,\n passphrase: env.passphrase,\n timeout: env.timeout\n });\n assignDefined(resolved, {\n source: input.source,\n destination: input.destination\n });\n assignDefined(resolved, cli);\n\n if (selectedProfileName) {\n resolved.profile = selectedProfileName;\n }\n\n const pathResolved = resolveConfigRelatedPaths(resolved, operation, configDirectory);\n\n if (input.source && operation === \"upload\") {\n pathResolved.source = resolveLocalPath(input.source, cwd);\n }\n\n if (operation === \"upload\") {\n pathResolved.destination = restoreMsysConvertedRemotePath(pathResolved.destination);\n }\n\n if (operation === \"download\") {\n pathResolved.source = restoreMsysConvertedRemotePath(pathResolved.source);\n }\n\n if (input.destination && operation === \"download\") {\n pathResolved.destination = resolveLocalPath(input.destination, cwd);\n }\n\n return pathResolved;\n}\n","import { ConfigurationError } from \"../errors/index.js\";\nimport type { ScpNextConfig, TransferJob } from \"../types/index.js\";\n\nexport function selectJob(config: ScpNextConfig, jobName: string): TransferJob {\n const job = config.jobs?.[jobName];\n if (!job) {\n throw new ConfigurationError(`Unknown job: ${jobName}`, {\n context: { job: jobName }\n });\n }\n return job;\n}\n","import { ConfigurationError } from \"../errors/index.js\";\nimport type { ScpNextConfig, ScpServerOptions } from \"../types/index.js\";\n\nexport function selectProfile(\n config: ScpNextConfig,\n profileName?: string\n): ScpServerOptions | undefined {\n if (!profileName) {\n return undefined;\n }\n\n const profile = config.profiles?.[profileName];\n if (!profile) {\n throw new ConfigurationError(`Unknown profile: ${profileName}`, {\n context: { profile: profileName }\n });\n }\n\n return profile;\n}\n","import type { ResolvedTransferConfig, TransferProgress } from \"../types/index.js\";\nimport { redactSensitiveValues } from \"../security/redact.js\";\n\nexport interface Output {\n stdout: NodeJS.WritableStream & { isTTY?: boolean };\n stderr: NodeJS.WritableStream & { isTTY?: boolean };\n}\n\nexport function writeDryRun(output: Output, config: ResolvedTransferConfig): void {\n const destination =\n config.operation === \"upload\"\n ? `${config.username ?? \"user\"}@${config.host ?? \"host\"}:${config.destination}`\n : config.destination;\n\n output.stdout.write(`Dry run: ${config.operation}\\n`);\n output.stdout.write(`Source: ${config.source}\\n`);\n output.stdout.write(`Destination: ${destination}\\n`);\n output.stdout.write(`Recursive: ${config.recursive ? \"yes\" : \"no\"}\\n`);\n output.stdout.write(`Overwrite: ${config.overwrite ? \"yes\" : \"no\"}\\n`);\n}\n\nexport function createProgressReporter(\n output: Output,\n quiet?: boolean\n): ((progress: TransferProgress) => void) | undefined {\n if (quiet || !output.stderr.isTTY) {\n return undefined;\n }\n\n const minimumUpdateIntervalMs = 500;\n let lastLineLength = 0;\n let lastPercentage: number | undefined;\n let lastWriteAt = 0;\n let completed = false;\n\n return (progress) => {\n if (completed) {\n return;\n }\n\n const now = Date.now();\n const totalBytes = progress.totalBytes;\n const isComplete =\n progress.percentage === 100 ||\n (totalBytes !== undefined && totalBytes > 0 && progress.transferredBytes >= totalBytes);\n const percentageChanged =\n progress.percentage !== undefined && progress.percentage !== lastPercentage;\n\n if (\n !isComplete &&\n !percentageChanged &&\n lastWriteAt !== 0 &&\n now - lastWriteAt < minimumUpdateIntervalMs\n ) {\n return;\n }\n\n const total = progress.totalBytes ? formatBytes(progress.totalBytes) : \"?\";\n const transferred = formatBytes(progress.transferredBytes);\n const percentage = progress.percentage === undefined ? \"\" : ` (${progress.percentage}%)`;\n const currentFile = progress.currentFile ? `: ${progress.currentFile}` : \"\";\n const line = `${progress.operation === \"upload\" ? \"Uploading\" : \"Downloading\"}${currentFile} ${transferred} / ${total}${percentage}`;\n const padding = \" \".repeat(Math.max(0, lastLineLength - line.length));\n output.stderr.write(`\\r${line}${padding}`);\n\n lastLineLength = line.length;\n lastPercentage = progress.percentage;\n lastWriteAt = now;\n\n if (isComplete) {\n output.stderr.write(\"\\n\");\n completed = true;\n }\n };\n}\n\nexport function verbosePlan(output: Output, config: ResolvedTransferConfig): void {\n output.stderr.write(\n `${JSON.stringify(\n redactSensitiveValues({\n operation: config.operation,\n host: config.host,\n port: config.port,\n username: config.username,\n source: config.source,\n destination: config.destination,\n recursive: config.recursive,\n overwrite: config.overwrite,\n createDirectories: config.createDirectories,\n dryRun: config.dryRun\n }),\n null,\n 2\n )}\\n`\n );\n}\n\nfunction formatBytes(bytes: number): string {\n if (bytes < 1024) {\n return `${bytes} B`;\n }\n const units = [\"KB\", \"MB\", \"GB\", \"TB\"];\n let value = bytes / 1024;\n let unitIndex = 0;\n while (value >= 1024 && unitIndex < units.length - 1) {\n value /= 1024;\n unitIndex += 1;\n }\n return `${value.toFixed(1)} ${units[unitIndex]}`;\n}\n","import { Command } from \"commander\";\n\nimport type { Output } from \"../output.js\";\nimport {\n addTransferOptions,\n executeResolvedTransfer,\n resolveForCli,\n type RawCommandOptions,\n type TransferHandlers\n} from \"./shared.js\";\n\nexport function createRunCommand(handlers: TransferHandlers, output: Output, cwd: string): Command {\n const command = new Command(\"run\")\n .description(\"Run a configured transfer job\")\n .usage(\"<job> [source] [destination] [options]\")\n .argument(\"<job>\", \"Configured job name\")\n .argument(\"[source]\", \"Optional source override\")\n .argument(\"[destination]\", \"Optional destination override\")\n .action(\n async (\n jobName: string,\n source: string | undefined,\n destination: string | undefined,\n options: RawCommandOptions\n ) => {\n const resolved = await resolveForCli({\n source,\n destination,\n jobName,\n options,\n cwd\n });\n await executeResolvedTransfer(resolved, handlers, output, options);\n }\n );\n\n addTransferOptions(command);\n return command;\n}\n","import { Command } from \"commander\";\n\nimport { assertSourceDestination } from \"../operands.js\";\nimport type { Output } from \"../output.js\";\nimport {\n addTransferOptions,\n executeResolvedTransfer,\n resolveForCli,\n type RawCommandOptions,\n type TransferHandlers\n} from \"./shared.js\";\n\nexport function createUploadCommand(handlers: TransferHandlers, output: Output, cwd: string): Command {\n const command = new Command(\"upload\")\n .description(\"Upload a local source path to a remote destination path\")\n .usage(\"<source> <destination> [options]\")\n .argument(\"[source]\", \"Local file or directory\")\n .argument(\"[destination]\", \"Remote file or directory path\")\n .action(async (source: string | undefined, destination: string | undefined, options: RawCommandOptions) => {\n assertSourceDestination(\"upload\", source, destination);\n const resolved = await resolveForCli({\n operation: \"upload\",\n source,\n destination,\n options,\n cwd\n });\n await executeResolvedTransfer(resolved, handlers, output, options);\n });\n\n addTransferOptions(command);\n return command;\n}\n"],"mappings":"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","names":["Command","access","mkdir","stat","path","readFile","access","access","readFile","stat","path","path","path","stat","path","access","access","path","stat","mkdir","totalBytes","access","access","readFile","path","access","path","readFile","path","path","percentage","parseInteger","Command","Command","Command","Command","Command"]}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/security/redact.ts","../../src/errors/index.ts","../../src/paths/local-path.ts","../../src/security/host-verification.ts","../../src/client/ssh-options.ts","../../src/client/transport.ts","../../src/client/command-executor.ts","../../src/paths/remote-path.ts","../../src/client/walk.ts","../../src/config/post-upload-commands.ts","../../src/config/validation.ts","../../src/client/client.ts","../../src/client/download.ts","../../src/client/upload.ts","../../src/cli/operands.ts","../../src/config/environment.ts","../../src/config/load-config.ts","../../src/config/jobs.ts","../../src/config/profiles.ts","../../src/config/resolve-config.ts","../../src/cli/output.ts","../../src/cli/commands/shared.ts","../../src/cli/commands/download.ts","../../src/cli/commands/run.ts","../../src/cli/commands/upload.ts","../../src/cli/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["parseInteger"],"mappings":"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"}
|