@zero-transfer/ssh 0.4.7 → 0.4.8

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/dist/index.d.mts CHANGED
@@ -400,6 +400,10 @@ interface TlsProfile {
400
400
  * trust via `rejectUnauthorized`. Pinning is **recommended for production** when you control
401
401
  * the server and want defence-in-depth against rogue certificates issued by trusted CAs.
402
402
  *
403
+ * Cannot be combined with `rejectUnauthorized: false`: pin verification runs after the TLS
404
+ * handshake is accepted, so chain validation must stay enabled. Use `ca` for self-signed
405
+ * certificates.
406
+ *
403
407
  * @example "AA:BB:CC:DD:EE:FF:00:11:22:33:44:55:66:77:88:99:AA:BB:CC:DD:EE:FF:00:11:22:33:44:55:66:77:88:99"
404
408
  */
405
409
  pinnedFingerprint256?: string | readonly string[];
@@ -677,10 +681,42 @@ interface TransferBandwidthLimit {
677
681
  /** Optional burst allowance in bytes for token-bucket-style implementations. */
678
682
  burstBytes?: number;
679
683
  }
680
- /** Timeout policy applied by the transfer engine. */
684
+ /**
685
+ * Timeout policy applied by the transfer engine.
686
+ *
687
+ * Two timeout scopes exist with deliberately different failure semantics:
688
+ *
689
+ * - **Job scope** ({@link timeoutMs}): covers the full engine execution
690
+ * including retries. When it fires, the engine rethrows the
691
+ * {@link TimeoutError} immediately - the retry policy is never consulted.
692
+ * - **Attempt scope** ({@link attemptTimeoutMs} and {@link stallTimeoutMs}):
693
+ * covers a single attempt. When either fires, the per-attempt abort
694
+ * controller cancels the attempt and the resulting {@link TimeoutError}
695
+ * flows into the retry policy like any other attempt failure, so retryable
696
+ * timeouts are retried (with backoff) instead of failing the job.
697
+ *
698
+ * @example Retry stalled attempts, but never run longer than 10 minutes total
699
+ * ```ts
700
+ * await engine.execute(job, executor, {
701
+ * retry: createDefaultRetryPolicy(),
702
+ * timeout: { timeoutMs: 600_000, attemptTimeoutMs: 120_000, stallTimeoutMs: 30_000 },
703
+ * });
704
+ * ```
705
+ */
681
706
  interface TransferTimeoutPolicy {
682
707
  /** Maximum duration for the full engine execution, including retries, in milliseconds. */
683
708
  timeoutMs?: number;
709
+ /**
710
+ * Maximum duration for a single attempt in milliseconds. Expiry aborts only
711
+ * the active attempt; the failure flows into the retry policy.
712
+ */
713
+ attemptTimeoutMs?: number;
714
+ /**
715
+ * Maximum time without progress before an attempt is considered stalled, in
716
+ * milliseconds. The watchdog resets on every progress report; expiry aborts
717
+ * only the active attempt and the failure flows into the retry policy.
718
+ */
719
+ stallTimeoutMs?: number;
684
720
  /** Whether timeout failures are retryable. Defaults to `true`. */
685
721
  retryable?: boolean;
686
722
  }
@@ -805,15 +841,31 @@ interface TransferRetryDecisionInput {
805
841
  error: unknown;
806
842
  /** One-based attempt number that failed. */
807
843
  attempt: number;
844
+ /** Milliseconds elapsed since the engine execution started, including prior attempts and delays. */
845
+ elapsedMs: number;
808
846
  /** Job being executed. */
809
847
  job: TransferJob;
810
848
  }
811
- /** Retry policy for transfer execution. */
849
+ /**
850
+ * Retry policy for transfer execution.
851
+ *
852
+ * Use {@link createDefaultRetryPolicy} for a production-ready policy with
853
+ * exponential backoff, full jitter, and `Retry-After` support, or implement
854
+ * the hooks directly for full control.
855
+ */
812
856
  interface TransferRetryPolicy {
813
857
  /** Maximum total attempts, including the first attempt. Defaults to `1`. */
814
858
  maxAttempts?: number;
815
859
  /** Decides whether a failed attempt should be retried. Defaults to SDK retryability metadata. */
816
860
  shouldRetry?(input: TransferRetryDecisionInput): boolean;
861
+ /**
862
+ * Computes the delay before the next attempt in milliseconds.
863
+ *
864
+ * The engine sleeps for the returned duration with an abort-aware timer:
865
+ * cancelling the job during the delay rejects immediately instead of
866
+ * waiting out the backoff. Non-positive or missing values retry at once.
867
+ */
868
+ getDelayMs?(input: TransferRetryDecisionInput): number;
817
869
  /** Observes retry decisions before the next attempt starts. */
818
870
  onRetry?(input: TransferRetryDecisionInput): void;
819
871
  }
@@ -847,7 +899,12 @@ interface TransferEngineOptions {
847
899
  *
848
900
  * @example Execute a single job with a custom executor
849
901
  * ```ts
850
- * import { TransferEngine, type TransferExecutor, type TransferJob } from "@zero-transfer/sdk";
902
+ * import {
903
+ * TransferEngine,
904
+ * createDefaultRetryPolicy,
905
+ * type TransferExecutor,
906
+ * type TransferJob,
907
+ * } from "@zero-transfer/sdk";
851
908
  *
852
909
  * const engine = new TransferEngine();
853
910
  *
@@ -865,7 +922,8 @@ interface TransferEngineOptions {
865
922
  * };
866
923
  *
867
924
  * const receipt = await engine.execute(job, executor, {
868
- * retry: { maxAttempts: 3, baseDelayMs: 250 },
925
+ * retry: createDefaultRetryPolicy(),
926
+ * timeout: { stallTimeoutMs: 30_000 },
869
927
  * });
870
928
  * console.log(receipt.attempts.length); // 1 on success
871
929
  * ```
@@ -1087,6 +1145,40 @@ declare class ProviderRegistry {
1087
1145
  listCapabilities(): CapabilitySet[];
1088
1146
  }
1089
1147
 
1148
+ /**
1149
+ * Client-level execution defaults applied when a call site does not supply
1150
+ * its own value.
1151
+ *
1152
+ * Defaults are consumed by {@link runRoute}, the one-shot helpers
1153
+ * ({@link uploadFile}, {@link downloadFile}, {@link copyBetween}),
1154
+ * {@link TransferQueue} (via its `client` option), and scheduled routes fired
1155
+ * through {@link MftScheduler}. The {@link TransferEngine} primitive stays
1156
+ * fully explicit: defaults never reach `engine.execute()` directly.
1157
+ *
1158
+ * Per-call options always win over client defaults.
1159
+ *
1160
+ * Additional default slots (`verify`, `resume`, `compression`, `policy`) land
1161
+ * here as their features ship in later releases; the shape is additive.
1162
+ *
1163
+ * @example Resilient defaults for every transfer in an application
1164
+ * ```ts
1165
+ * import { createDefaultRetryPolicy, createTransferClient } from "@zero-transfer/sdk";
1166
+ *
1167
+ * const client = createTransferClient({
1168
+ * providers: [createSftpProviderFactory(), createS3ProviderFactory()],
1169
+ * defaults: {
1170
+ * retry: createDefaultRetryPolicy(),
1171
+ * timeout: { stallTimeoutMs: 30_000 },
1172
+ * },
1173
+ * });
1174
+ * ```
1175
+ */
1176
+ interface TransferClientDefaults {
1177
+ /** Default retry policy for transfers executed through this client. */
1178
+ retry?: TransferRetryPolicy;
1179
+ /** Default timeout policy for transfers executed through this client. */
1180
+ timeout?: TransferTimeoutPolicy;
1181
+ }
1090
1182
  /** Options used to create a provider-neutral transfer client. */
1091
1183
  interface TransferClientOptions {
1092
1184
  /** Existing registry to reuse. When omitted, a fresh empty registry is created. */
@@ -1095,16 +1187,20 @@ interface TransferClientOptions {
1095
1187
  providers?: ProviderFactory[];
1096
1188
  /** Structured logger used for client lifecycle records. */
1097
1189
  logger?: ZeroTransferLogger;
1190
+ /** Execution defaults applied when call sites omit their own values. */
1191
+ defaults?: TransferClientDefaults;
1098
1192
  }
1099
1193
  /** Small provider-neutral client that owns provider lookup and connection setup. */
1100
1194
  declare class TransferClient {
1101
1195
  /** Provider registry used by this client. */
1102
1196
  readonly registry: ProviderRegistry;
1197
+ /** Execution defaults applied when call sites omit their own values. */
1198
+ readonly defaults?: TransferClientDefaults;
1103
1199
  private readonly logger;
1104
1200
  /**
1105
1201
  * Creates a transfer client without opening any provider connections.
1106
1202
  *
1107
- * @param options - Optional registry, provider factories, and logger.
1203
+ * @param options - Optional registry, provider factories, logger, and execution defaults.
1108
1204
  */
1109
1205
  constructor(options?: TransferClientOptions);
1110
1206
  /**
@@ -1438,11 +1534,11 @@ interface RunRouteOptions {
1438
1534
  now?: () => Date;
1439
1535
  /** Abort signal used to cancel the route execution. */
1440
1536
  signal?: AbortSignal;
1441
- /** Retry policy forwarded to the engine. */
1537
+ /** Retry policy forwarded to the engine. Falls back to `client.defaults.retry`. */
1442
1538
  retry?: TransferRetryPolicy;
1443
1539
  /** Progress observer forwarded to the engine. */
1444
1540
  onProgress?: (event: TransferProgressEvent) => void;
1445
- /** Timeout policy forwarded to the engine. */
1541
+ /** Timeout policy forwarded to the engine. Falls back to `client.defaults.timeout`. */
1446
1542
  timeout?: TransferTimeoutPolicy;
1447
1543
  /** Optional bandwidth limit forwarded to the engine. */
1448
1544
  bandwidthLimit?: TransferBandwidthLimit;
@@ -2085,8 +2181,13 @@ interface FileZillaSite {
2085
2181
  folder: readonly string[];
2086
2182
  /** Generated connection profile. */
2087
2183
  profile: ConnectionProfile;
2088
- /** Encoded password value retained from the file, if any. */
2089
- password?: string;
2184
+ /**
2185
+ * Whether the FileZilla entry stored a password. The importer never decodes
2186
+ * or returns stored passwords; supply the credential via a
2187
+ * {@link ConnectionProfile.password | SecretSource} (for example
2188
+ * `{ env: "SITE_PASSWORD" }` or `{ path: "./secret" }`) before connecting.
2189
+ */
2190
+ hasStoredPassword: boolean;
2090
2191
  /** Logon type code preserved from the file (`0`=anonymous, `1`=normal, etc.). */
2091
2192
  logonType?: number;
2092
2193
  }
@@ -2143,16 +2244,6 @@ interface ImportWinScpSessionsResult {
2143
2244
  */
2144
2245
  declare function importWinScpSessions(ini: string): ImportWinScpSessionsResult;
2145
2246
 
2146
- /**
2147
- * Structured ZeroTransfer error hierarchy.
2148
- *
2149
- * The classes in this module preserve protocol details, retryability, command/path
2150
- * context, and machine-readable codes so application code does not need to parse
2151
- * human error messages.
2152
- *
2153
- * @module errors/ZeroTransferError
2154
- */
2155
-
2156
2247
  /**
2157
2248
  * Complete set of fields required to create a ZeroTransfer error.
2158
2249
  */
@@ -2218,6 +2309,11 @@ declare class ZeroTransferError extends Error {
2218
2309
  /**
2219
2310
  * Serializes the error into a plain object suitable for logs or API responses.
2220
2311
  *
2312
+ * `details` and `command` are passed through secret redaction so serialized
2313
+ * errors never leak credentials, signed URLs, or raw protocol commands. The
2314
+ * live {@link ZeroTransferError.details | details} property stays unredacted
2315
+ * for programmatic consumers.
2316
+ *
2221
2317
  * @returns A JSON-safe object containing public structured error fields.
2222
2318
  */
2223
2319
  toJSON(): Record<string, unknown>;
@@ -2421,6 +2517,32 @@ declare function redactValue(value: unknown): unknown;
2421
2517
  * @returns A shallow object copy with sensitive fields and nested secrets redacted.
2422
2518
  */
2423
2519
  declare function redactObject(input: Record<string, unknown>): Record<string, unknown>;
2520
+ /**
2521
+ * Strips credentials and query/fragment content from a URL before logging.
2522
+ *
2523
+ * Query strings routinely carry bearer material - SigV4 `X-Amz-Signature`
2524
+ * values, SAS tokens, signed-URL parameters - so the entire search and hash
2525
+ * segments are replaced rather than filtered key-by-key. Embedded
2526
+ * `user:password@` userinfo is removed. Origin and pathname are preserved
2527
+ * because they are what operators need to correlate a failing request.
2528
+ *
2529
+ * @param url - Absolute URL string or `URL` instance to sanitize.
2530
+ * @returns A loggable URL string, or {@link REDACTED} when the value cannot be
2531
+ * parsed as a URL (an unparsable value may still embed credentials).
2532
+ */
2533
+ declare function redactUrlForLogging(url: string | URL): string;
2534
+ /**
2535
+ * Converts an arbitrary thrown value into a JSON-safe, secret-free record.
2536
+ *
2537
+ * Structured SDK errors are serialized through their `toJSON()` (which already
2538
+ * redacts details); plain errors contribute name/message/stack-free context;
2539
+ * other values are stringified. Use this at every internal log site that
2540
+ * records a caught error.
2541
+ *
2542
+ * @param error - Caught value of unknown shape.
2543
+ * @returns A redacted, JSON-safe object describing the error.
2544
+ */
2545
+ declare function redactErrorForLogging(error: unknown): Record<string, unknown>;
2424
2546
 
2425
2547
  /** Sleep helper signature used by {@link createBandwidthThrottle}. */
2426
2548
  type BandwidthSleep = (delayMs: number, signal?: AbortSignal) => Promise<void>;
@@ -2472,6 +2594,73 @@ declare function createBandwidthThrottle(limit: TransferBandwidthLimit | undefin
2472
2594
  */
2473
2595
  declare function throttleByteIterable(source: AsyncIterable<Uint8Array>, throttle: BandwidthThrottle | undefined, signal?: AbortSignal): AsyncIterable<Uint8Array>;
2474
2596
 
2597
+ /** Options for {@link createDefaultRetryPolicy}. */
2598
+ interface DefaultRetryPolicyOptions {
2599
+ /** Maximum total attempts, including the first attempt. Defaults to `4`. */
2600
+ maxAttempts?: number;
2601
+ /** Base backoff delay before jitter in milliseconds. Defaults to `250`. */
2602
+ baseDelayMs?: number;
2603
+ /** Upper bound for a single computed backoff delay in milliseconds. Defaults to `30_000`. */
2604
+ maxDelayMs?: number;
2605
+ /**
2606
+ * Total elapsed-time budget across all attempts and delays in milliseconds.
2607
+ * Once exceeded, no further retries are attempted. Defaults to `300_000` (5 minutes).
2608
+ */
2609
+ maxElapsedMs?: number;
2610
+ /**
2611
+ * Random source in `[0, 1)` used for jitter. Defaults to `Math.random`.
2612
+ * Inject a deterministic source in tests.
2613
+ */
2614
+ random?: () => number;
2615
+ }
2616
+ /**
2617
+ * Creates the SDK's recommended retry policy for transfer execution.
2618
+ *
2619
+ * The policy retries only failures the SDK has marked as safe to retry
2620
+ * (`error.retryable === true` on a {@link ZeroTransferError}), backing off
2621
+ * exponentially with full jitter: each delay is drawn uniformly from
2622
+ * `[0, min(maxDelayMs, baseDelayMs * 2^(attempt - 1)))`, the schedule that
2623
+ * minimizes contention when many clients retry against the same server.
2624
+ *
2625
+ * Server pacing hints are honored: when the failed attempt carries
2626
+ * `details.retryAfterMs` (parsed from an HTTP `Retry-After` header on 429/503
2627
+ * responses by the web-family providers), the next delay is exactly that
2628
+ * value rather than the jittered backoff. A hint that does not fit in the
2629
+ * remaining `maxElapsedMs` budget stops retrying instead of retrying early.
2630
+ *
2631
+ * Retries also stop once `maxElapsedMs` has elapsed since execution started,
2632
+ * regardless of how many attempts remain.
2633
+ *
2634
+ * @param options - Optional overrides for attempts, delays, and the elapsed budget.
2635
+ * @returns A {@link TransferRetryPolicy} for {@link TransferEngine.execute},
2636
+ * {@link runRoute}, {@link TransferQueue}, or client-level defaults.
2637
+ *
2638
+ * @example Default policy on a one-shot helper
2639
+ * ```ts
2640
+ * import { createDefaultRetryPolicy, uploadFile } from "@zero-transfer/sdk";
2641
+ *
2642
+ * await uploadFile({
2643
+ * client,
2644
+ * destination: { path: "/uploads/report.csv", profile },
2645
+ * localPath: "./out/report.csv",
2646
+ * retry: createDefaultRetryPolicy(),
2647
+ * });
2648
+ * ```
2649
+ *
2650
+ * @example Tighter schedule for latency-sensitive work
2651
+ * ```ts
2652
+ * const retry = createDefaultRetryPolicy({
2653
+ * maxAttempts: 3,
2654
+ * baseDelayMs: 100,
2655
+ * maxDelayMs: 2_000,
2656
+ * maxElapsedMs: 15_000,
2657
+ * });
2658
+ * ```
2659
+ *
2660
+ * @see {@link TransferRetryPolicy} for the underlying hook contract.
2661
+ */
2662
+ declare function createDefaultRetryPolicy(options?: DefaultRetryPolicyOptions): TransferRetryPolicy;
2663
+
2475
2664
  /**
2476
2665
  * Transfer executor bridge for provider-backed read/write sessions.
2477
2666
  *
@@ -2627,6 +2816,12 @@ declare function summarizeTransferPlan(plan: TransferPlan): TransferPlanSummary;
2627
2816
  /** Converts executable plan steps into transfer jobs while preserving order. */
2628
2817
  declare function createTransferJobsFromPlan(plan: TransferPlan): TransferJob[];
2629
2818
 
2819
+ /**
2820
+ * Transfer queue primitives built on top of {@link TransferEngine}.
2821
+ *
2822
+ * @module transfers/TransferQueue
2823
+ */
2824
+
2630
2825
  /** Queue item lifecycle state. */
2631
2826
  type TransferQueueItemStatus = "queued" | "running" | "completed" | "failed" | "canceled";
2632
2827
  /** Resolver used when jobs do not provide an executor at enqueue time. */
@@ -2635,15 +2830,20 @@ type TransferQueueExecutorResolver = (job: TransferJob) => TransferExecutor;
2635
2830
  interface TransferQueueOptions {
2636
2831
  /** Transfer engine used to execute queued jobs. Defaults to a new engine. */
2637
2832
  engine?: TransferEngine;
2833
+ /**
2834
+ * Transfer client whose {@link TransferClientDefaults | defaults} seed the
2835
+ * queue's retry and timeout policies when not set here or per drain.
2836
+ */
2837
+ client?: TransferClient;
2638
2838
  /** Maximum jobs to execute at the same time. Defaults to `1`. */
2639
2839
  concurrency?: number;
2640
2840
  /** Default executor used for jobs that do not provide one directly. */
2641
2841
  executor?: TransferExecutor;
2642
2842
  /** Dynamic executor resolver used when no per-job executor or default executor exists. */
2643
2843
  resolveExecutor?: TransferQueueExecutorResolver;
2644
- /** Retry policy passed to engine executions. */
2844
+ /** Retry policy passed to engine executions. Falls back to `client.defaults.retry`. */
2645
2845
  retry?: TransferRetryPolicy;
2646
- /** Timeout policy passed to engine executions. */
2846
+ /** Timeout policy passed to engine executions. Falls back to `client.defaults.timeout`. */
2647
2847
  timeout?: TransferTimeoutPolicy;
2648
2848
  /** Optional throughput limit shape passed to transfer executors. */
2649
2849
  bandwidthLimit?: TransferBandwidthLimit;
@@ -3438,10 +3638,14 @@ declare function createProgressEvent(input: ProgressEventInput): TransferProgres
3438
3638
  /**
3439
3639
  * Validates that an FTP command argument cannot inject additional command lines.
3440
3640
  *
3641
+ * NUL bytes are rejected alongside CR/LF: C-string-based servers and filesystem
3642
+ * APIs truncate at the first NUL, which lets a crafted path smuggle a different
3643
+ * effective target past validation.
3644
+ *
3441
3645
  * @param value - Argument value to validate.
3442
3646
  * @param label - Human-readable argument label used in error messages.
3443
3647
  * @returns The original value when it is safe.
3444
- * @throws {@link ConfigurationError} When the value contains CR or LF characters.
3648
+ * @throws {@link ConfigurationError} When the value contains CR, LF, or NUL characters.
3445
3649
  */
3446
3650
  declare function assertSafeFtpArgument(value: string, label?: string): string;
3447
3651
  /**
@@ -3449,7 +3653,7 @@ declare function assertSafeFtpArgument(value: string, label?: string): string;
3449
3653
  *
3450
3654
  * @param input - Remote path that may contain duplicate separators or dot segments.
3451
3655
  * @returns A normalized remote path, `/` for absolute root, or `.` for an empty relative path.
3452
- * @throws {@link ConfigurationError} When the input contains unsafe CR or LF characters.
3656
+ * @throws {@link ConfigurationError} When the input contains unsafe CR, LF, or NUL characters.
3453
3657
  */
3454
3658
  declare function normalizeRemotePath(input: string): string;
3455
3659
  /**
@@ -4074,7 +4278,7 @@ interface RunSshCommandResult {
4074
4278
  * stdout, and disconnects. The TCP socket, transport, auth session, and
4075
4279
  * channel are all owned by this helper and torn down before it returns.
4076
4280
  *
4077
- * @example Run `uname -a` with a password credential
4281
+ * @example Run uname -a with a password credential
4078
4282
  * ```ts
4079
4283
  * import { runSshCommand } from "@zero-transfer/ssh";
4080
4284
  *
@@ -4088,4 +4292,4 @@ interface RunSshCommandResult {
4088
4292
  */
4089
4293
  declare function runSshCommand(options: RunSshCommandOptions): Promise<RunSshCommandResult>;
4090
4294
 
4091
- export { AbortError, type AtomicDeployActivateOperation, type AtomicDeployActivateStep, type AtomicDeployPlan, type AtomicDeployPruneStep, type AtomicDeployStrategy, type AuthenticationCapability, AuthenticationError, AuthorizationError, type BandwidthSleep, type BandwidthThrottle, type BandwidthThrottleOptions, type Base64EnvSecretSource, type BuiltInProviderId, CLASSIC_PROVIDER_IDS, type CapabilitySet, type ChecksumCapability, type ClassicProviderId, type ClientDiagnostics, type CompareRemoteManifestsOptions, ConfigurationError, type ConnectionDiagnosticTimings, type ConnectionDiagnosticsResult, ConnectionError, type ConnectionPoolOptions, type ConnectionProfile, type CopyBetweenOptions, type CreateAtomicDeployPlanOptions, type CreateRemoteBrowserOptions, type CreateRemoteManifestOptions, type CreateSyncPlanOptions, DEFAULT_SSH_ALGORITHM_PREFERENCES, type DiffRemoteTreesOptions, type DownloadFileOptions, type EnvSecretSource, type FileSecretSource, type FileZillaSite, type FriendlyTransferOptions, type FtpReplyErrorInput, type ImportFileZillaSitesResult, type ImportOpenSshConfigOptions, type ImportOpenSshConfigResult, type ImportWinScpSessionsResult, type KnownHostsEntry, type KnownHostsMarker, type ListOptions, type LocalProviderOptions, type LogLevel, type LogRecord, type LogRecordInput, type LoggerMethod, type MemoryProviderEntry, type MemoryProviderOptions, type MetadataCapability, type MkdirOptions, type NegotiatedSshAlgorithms, type OAuthAccessToken, type OAuthRefreshCallback, type OAuthTokenSecretSourceOptions, type OpenSshConfigEntry, ParseError, PathAlreadyExistsError, PathNotFoundError, PermissionDeniedError, type PooledTransferClient, type ProgressEventInput, ProtocolError, type ProviderFactory, type ProviderId, ProviderRegistry, type ProviderSelection, type ProviderTransferEndpointRole, type ProviderTransferExecutorOptions, type ProviderTransferOperations, type ProviderTransferReadRequest, type ProviderTransferReadResult, type ProviderTransferRequest, type ProviderTransferSessionResolver, type ProviderTransferSessionResolverInput, type ProviderTransferWriteRequest, type ProviderTransferWriteResult, REDACTED, REMOTE_MANIFEST_FORMAT_VERSION, type RemoteBreadcrumb, type RemoteBrowser, type RemoteBrowserFilter, type RemoteBrowserSnapshot, type RemoteEntry, type RemoteEntrySortKey, type RemoteEntrySortOrder, type RemoteEntryType, type RemoteFileAdapter, type RemoteFileEndpoint, type RemoteFileSystem, type RemoteManifest, type RemoteManifestEntry, type RemotePermissions, type RemoteProtocol, type RemoteStat, type RemoteTreeDiff, type RemoteTreeDiffEntry, type RemoteTreeDiffReason, type RemoteTreeDiffStatus, type RemoteTreeDiffSummary, type RemoteTreeEntry, type RemoteTreeFilter, type RemoveOptions, type RenameOptions, type ResolveSecretOptions, type ResolvedConnectionProfile, type ResolvedOpenSshHost, type ResolvedSshProfile, type ResolvedTlsProfile, type RmdirOptions, type RunConnectionDiagnosticsOptions, type RunSshCommandOptions, type RunSshCommandResult, type SecretProvider, type SecretSource, type SecretValue, type SpecializedErrorDetails, type SshAgentSource, type SshAlgorithmPreferences, type SshAlgorithms, SshAuthSession, SshConnectionManager, SshDataReader, SshDataWriter, SshDisconnectReason, type SshKeyboardInteractiveChallenge, type SshKeyboardInteractiveCredential, type SshKeyboardInteractiveHandler, type SshKeyboardInteractivePrompt, type SshKnownHostsSource, type SshPasswordCredential, type SshProfile, type SshPublickeyCredential, SshSessionChannel, type SshSocketFactory, type SshSocketFactoryContext, SshTransportConnection, type SshTransportConnectionOptions, SshTransportHandshake, type SshTransportHandshakeResult, type StatOptions, type SyncConflictPolicy, type SyncDeletePolicy, type SyncDirection, type SyncEndpointInput, TimeoutError, type TlsProfile, type TlsSecretSource, type TransferAttempt, type TransferAttemptError, type TransferBandwidthLimit, type TransferByteRange, TransferClient, type TransferClientOptions, type TransferDataChunk, type TransferDataSource, type TransferEndpoint, TransferEngine, type TransferEngineExecuteOptions, type TransferEngineOptions, TransferError, type TransferExecutionContext, type TransferExecutionResult, type TransferExecutor, type TransferJob, type TransferOperation, type TransferPlan, type TransferPlanAction, type TransferPlanInput, type TransferPlanStep, type TransferPlanSummary, type TransferProgressEvent, type TransferProvider, TransferQueue, type TransferQueueExecutorResolver, type TransferQueueItem, type TransferQueueItemStatus, type TransferQueueOptions, type TransferQueueRunOptions, type TransferQueueSummary, type TransferReceipt, type TransferResult, type TransferResultInput, type TransferRetryDecisionInput, type TransferRetryPolicy, type TransferSession, type TransferTimeoutPolicy, type TransferVerificationResult, UnsupportedFeatureError, type UploadFileOptions, type ValueSecretSource, VerificationError, type WalkRemoteTreeOptions, type WinScpSession, ZeroTransfer, type ZeroTransferCapabilities, ZeroTransferError, type ZeroTransferErrorDetails, type ZeroTransferLogger, type ZeroTransferOptions, assertSafeFtpArgument, basenameRemotePath, buildPublickeyCredential, buildRemoteBreadcrumbs, compareRemoteManifests, copyBetween, createAtomicDeployPlan, createBandwidthThrottle, createLocalProviderFactory, createMemoryProviderFactory, createOAuthTokenSecretSource, createPooledTransferClient, createProgressEvent, createProviderTransferExecutor, createRemoteBrowser, createRemoteManifest, createSyncPlan, createTransferClient, createTransferJobsFromPlan, createTransferPlan, createTransferResult, diffRemoteTrees, downloadFile, emitLog, errorFromFtpReply, filterRemoteEntries, importFileZillaSites, importOpenSshConfig, importWinScpSessions, isClassicProviderId, isMainModule, isSensitiveKey, joinRemotePath, matchKnownHosts, matchKnownHostsEntry, negotiateSshAlgorithms, noopLogger, normalizeRemotePath, parentRemotePath, parseKnownHosts, parseOpenSshConfig, parseRemoteManifest, redactCommand, redactConnectionProfile, redactObject, redactSecretSource, redactValue, resolveConnectionProfileSecrets, resolveOpenSshHost, resolveProviderId, resolveSecret, runConnectionDiagnostics, runSshCommand, serializeRemoteManifest, sortRemoteEntries, summarizeClientDiagnostics, summarizeTransferPlan, throttleByteIterable, uploadFile, validateConnectionProfile, walkRemoteTree };
4295
+ export { AbortError, type AtomicDeployActivateOperation, type AtomicDeployActivateStep, type AtomicDeployPlan, type AtomicDeployPruneStep, type AtomicDeployStrategy, type AuthenticationCapability, AuthenticationError, AuthorizationError, type BandwidthSleep, type BandwidthThrottle, type BandwidthThrottleOptions, type Base64EnvSecretSource, type BuiltInProviderId, CLASSIC_PROVIDER_IDS, type CapabilitySet, type ChecksumCapability, type ClassicProviderId, type ClientDiagnostics, type CompareRemoteManifestsOptions, ConfigurationError, type ConnectionDiagnosticTimings, type ConnectionDiagnosticsResult, ConnectionError, type ConnectionPoolOptions, type ConnectionProfile, type CopyBetweenOptions, type CreateAtomicDeployPlanOptions, type CreateRemoteBrowserOptions, type CreateRemoteManifestOptions, type CreateSyncPlanOptions, DEFAULT_SSH_ALGORITHM_PREFERENCES, type DefaultRetryPolicyOptions, type DiffRemoteTreesOptions, type DownloadFileOptions, type EnvSecretSource, type FileSecretSource, type FileZillaSite, type FriendlyTransferOptions, type FtpReplyErrorInput, type ImportFileZillaSitesResult, type ImportOpenSshConfigOptions, type ImportOpenSshConfigResult, type ImportWinScpSessionsResult, type KnownHostsEntry, type KnownHostsMarker, type ListOptions, type LocalProviderOptions, type LogLevel, type LogRecord, type LogRecordInput, type LoggerMethod, type MemoryProviderEntry, type MemoryProviderOptions, type MetadataCapability, type MkdirOptions, type NegotiatedSshAlgorithms, type OAuthAccessToken, type OAuthRefreshCallback, type OAuthTokenSecretSourceOptions, type OpenSshConfigEntry, ParseError, PathAlreadyExistsError, PathNotFoundError, PermissionDeniedError, type PooledTransferClient, type ProgressEventInput, ProtocolError, type ProviderFactory, type ProviderId, ProviderRegistry, type ProviderSelection, type ProviderTransferEndpointRole, type ProviderTransferExecutorOptions, type ProviderTransferOperations, type ProviderTransferReadRequest, type ProviderTransferReadResult, type ProviderTransferRequest, type ProviderTransferSessionResolver, type ProviderTransferSessionResolverInput, type ProviderTransferWriteRequest, type ProviderTransferWriteResult, REDACTED, REMOTE_MANIFEST_FORMAT_VERSION, type RemoteBreadcrumb, type RemoteBrowser, type RemoteBrowserFilter, type RemoteBrowserSnapshot, type RemoteEntry, type RemoteEntrySortKey, type RemoteEntrySortOrder, type RemoteEntryType, type RemoteFileAdapter, type RemoteFileEndpoint, type RemoteFileSystem, type RemoteManifest, type RemoteManifestEntry, type RemotePermissions, type RemoteProtocol, type RemoteStat, type RemoteTreeDiff, type RemoteTreeDiffEntry, type RemoteTreeDiffReason, type RemoteTreeDiffStatus, type RemoteTreeDiffSummary, type RemoteTreeEntry, type RemoteTreeFilter, type RemoveOptions, type RenameOptions, type ResolveSecretOptions, type ResolvedConnectionProfile, type ResolvedOpenSshHost, type ResolvedSshProfile, type ResolvedTlsProfile, type RmdirOptions, type RunConnectionDiagnosticsOptions, type RunSshCommandOptions, type RunSshCommandResult, type SecretProvider, type SecretSource, type SecretValue, type SpecializedErrorDetails, type SshAgentSource, type SshAlgorithmPreferences, type SshAlgorithms, SshAuthSession, SshConnectionManager, SshDataReader, SshDataWriter, SshDisconnectReason, type SshKeyboardInteractiveChallenge, type SshKeyboardInteractiveCredential, type SshKeyboardInteractiveHandler, type SshKeyboardInteractivePrompt, type SshKnownHostsSource, type SshPasswordCredential, type SshProfile, type SshPublickeyCredential, SshSessionChannel, type SshSocketFactory, type SshSocketFactoryContext, SshTransportConnection, type SshTransportConnectionOptions, SshTransportHandshake, type SshTransportHandshakeResult, type StatOptions, type SyncConflictPolicy, type SyncDeletePolicy, type SyncDirection, type SyncEndpointInput, TimeoutError, type TlsProfile, type TlsSecretSource, type TransferAttempt, type TransferAttemptError, type TransferBandwidthLimit, type TransferByteRange, TransferClient, type TransferClientDefaults, type TransferClientOptions, type TransferDataChunk, type TransferDataSource, type TransferEndpoint, TransferEngine, type TransferEngineExecuteOptions, type TransferEngineOptions, TransferError, type TransferExecutionContext, type TransferExecutionResult, type TransferExecutor, type TransferJob, type TransferOperation, type TransferPlan, type TransferPlanAction, type TransferPlanInput, type TransferPlanStep, type TransferPlanSummary, type TransferProgressEvent, type TransferProvider, TransferQueue, type TransferQueueExecutorResolver, type TransferQueueItem, type TransferQueueItemStatus, type TransferQueueOptions, type TransferQueueRunOptions, type TransferQueueSummary, type TransferReceipt, type TransferResult, type TransferResultInput, type TransferRetryDecisionInput, type TransferRetryPolicy, type TransferSession, type TransferTimeoutPolicy, type TransferVerificationResult, UnsupportedFeatureError, type UploadFileOptions, type ValueSecretSource, VerificationError, type WalkRemoteTreeOptions, type WinScpSession, ZeroTransfer, type ZeroTransferCapabilities, ZeroTransferError, type ZeroTransferErrorDetails, type ZeroTransferLogger, type ZeroTransferOptions, assertSafeFtpArgument, basenameRemotePath, buildPublickeyCredential, buildRemoteBreadcrumbs, compareRemoteManifests, copyBetween, createAtomicDeployPlan, createBandwidthThrottle, createDefaultRetryPolicy, createLocalProviderFactory, createMemoryProviderFactory, createOAuthTokenSecretSource, createPooledTransferClient, createProgressEvent, createProviderTransferExecutor, createRemoteBrowser, createRemoteManifest, createSyncPlan, createTransferClient, createTransferJobsFromPlan, createTransferPlan, createTransferResult, diffRemoteTrees, downloadFile, emitLog, errorFromFtpReply, filterRemoteEntries, importFileZillaSites, importOpenSshConfig, importWinScpSessions, isClassicProviderId, isMainModule, isSensitiveKey, joinRemotePath, matchKnownHosts, matchKnownHostsEntry, negotiateSshAlgorithms, noopLogger, normalizeRemotePath, parentRemotePath, parseKnownHosts, parseOpenSshConfig, parseRemoteManifest, redactCommand, redactConnectionProfile, redactErrorForLogging, redactObject, redactSecretSource, redactUrlForLogging, redactValue, resolveConnectionProfileSecrets, resolveOpenSshHost, resolveProviderId, resolveSecret, runConnectionDiagnostics, runSshCommand, serializeRemoteManifest, sortRemoteEntries, summarizeClientDiagnostics, summarizeTransferPlan, throttleByteIterable, uploadFile, validateConnectionProfile, walkRemoteTree };