@awcp/transport-sshfs 0.0.0-dev-202601301521 → 0.0.1

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.
@@ -2,36 +2,8 @@ import { spawn } from 'node:child_process';
2
2
  import { writeFile, unlink, mkdir, stat } from 'node:fs/promises';
3
3
  import { join } from 'node:path';
4
4
  import { MountFailedError, DependencyMissingError } from '@awcp/core';
5
- export const DEFAULT_TEMP_KEY_DIR = '/tmp/awcp/client-keys';
5
+ const DEFAULT_TEMP_KEY_DIR = '/tmp/awcp/client-keys';
6
6
  const DEFAULT_MOUNT_TIMEOUT = 30000;
7
- /**
8
- * Build SSHFS command arguments
9
- */
10
- export function buildSshfsArgs(params, keyPath, certPath, defaultOptions) {
11
- const { host, port, user } = params.endpoint;
12
- const remoteSpec = `${user}@${host}:${params.exportLocator}`;
13
- const options = {
14
- ...defaultOptions,
15
- ...params.options,
16
- };
17
- const args = [
18
- remoteSpec,
19
- params.mountPoint,
20
- '-o', `IdentityFile=${keyPath}`,
21
- '-o', `CertificateFile=${certPath}`,
22
- '-o', `Port=${port}`,
23
- '-o', 'StrictHostKeyChecking=no',
24
- '-o', 'UserKnownHostsFile=/dev/null',
25
- '-o', 'reconnect',
26
- '-o', 'ServerAliveInterval=15',
27
- '-o', 'ServerAliveCountMax=3',
28
- '-o', 'noappledouble',
29
- ];
30
- for (const [key, value] of Object.entries(options)) {
31
- args.push('-o', `${key}=${value}`);
32
- }
33
- return args;
34
- }
35
7
  /**
36
8
  * SSHFS Mount Client
37
9
  *
@@ -43,12 +15,6 @@ export class SshfsMountClient {
43
15
  constructor(config) {
44
16
  this.config = config ?? {};
45
17
  }
46
- /**
47
- * Get active mounts (for testing)
48
- */
49
- getActiveMounts() {
50
- return this.activeMounts;
51
- }
52
18
  /**
53
19
  * Check if sshfs is available
54
20
  */
@@ -85,24 +51,6 @@ export class SshfsMountClient {
85
51
  });
86
52
  });
87
53
  }
88
- /**
89
- * Write credential files to disk
90
- */
91
- async writeCredentialFiles(tempKeyDir, credential) {
92
- await mkdir(tempKeyDir, { recursive: true });
93
- const keyPath = join(tempKeyDir, `mount-${Date.now()}`);
94
- const certPath = `${keyPath}-cert.pub`;
95
- await writeFile(keyPath, credential.privateKey, { mode: 0o600 });
96
- await writeFile(certPath, credential.certificate, { mode: 0o644 });
97
- return { keyPath, certPath };
98
- }
99
- /**
100
- * Clean up credential files
101
- */
102
- async cleanupCredentialFiles(keyPath, certPath) {
103
- await unlink(keyPath).catch(() => { });
104
- await unlink(certPath).catch(() => { });
105
- }
106
54
  /**
107
55
  * Mount a remote filesystem
108
56
  */
@@ -113,9 +61,34 @@ export class SshfsMountClient {
113
61
  throw new DependencyMissingError('sshfs', 'Install sshfs: brew install macfuse && brew install sshfs (macOS) or apt install sshfs (Linux)');
114
62
  }
115
63
  const tempKeyDir = this.config.tempKeyDir ?? DEFAULT_TEMP_KEY_DIR;
116
- const { keyPath, certPath } = await this.writeCredentialFiles(tempKeyDir, params.credential);
64
+ await mkdir(tempKeyDir, { recursive: true });
65
+ // Write credential to temp file
66
+ const keyPath = join(tempKeyDir, `mount-${Date.now()}`);
67
+ await writeFile(keyPath, params.credential, { mode: 0o600 });
117
68
  try {
118
- const args = buildSshfsArgs(params, keyPath, certPath, this.config.defaultOptions);
69
+ // Build sshfs command
70
+ const { host, port, user } = params.endpoint;
71
+ const remoteSpec = `${user}@${host}:${params.exportLocator}`;
72
+ const options = {
73
+ ...this.config.defaultOptions,
74
+ ...params.options,
75
+ };
76
+ const args = [
77
+ remoteSpec,
78
+ params.mountPoint,
79
+ '-o', `IdentityFile=${keyPath}`,
80
+ '-o', `Port=${port}`,
81
+ '-o', 'StrictHostKeyChecking=no',
82
+ '-o', 'UserKnownHostsFile=/dev/null',
83
+ '-o', 'reconnect',
84
+ '-o', 'ServerAliveInterval=15',
85
+ '-o', 'ServerAliveCountMax=3',
86
+ '-o', 'noappledouble', // Prevent macOS ._* metadata files
87
+ ];
88
+ // Add custom options
89
+ for (const [key, value] of Object.entries(options)) {
90
+ args.push('-o', `${key}=${value}`);
91
+ }
119
92
  console.log(`[SSHFS] Mounting: sshfs ${args.join(' ')}`);
120
93
  // Execute mount (SSHFS will daemonize and exit immediately on success)
121
94
  await this.execMount(args, params.mountPoint);
@@ -123,12 +96,11 @@ export class SshfsMountClient {
123
96
  this.activeMounts.set(params.mountPoint, {
124
97
  mountPoint: params.mountPoint,
125
98
  keyPath,
126
- certPath,
127
99
  });
128
100
  }
129
101
  catch (error) {
130
- // Cleanup key and cert on failure
131
- await this.cleanupCredentialFiles(keyPath, certPath);
102
+ // Cleanup key on failure
103
+ await unlink(keyPath).catch(() => { });
132
104
  throw error;
133
105
  }
134
106
  }
@@ -157,9 +129,9 @@ export class SshfsMountClient {
157
129
  if (!success) {
158
130
  console.warn(`Failed to unmount ${mountPoint}, may need manual cleanup`);
159
131
  }
160
- // Cleanup key and certificate files
132
+ // Cleanup
161
133
  if (activeMount) {
162
- await this.cleanupCredentialFiles(activeMount.keyPath, activeMount.certPath);
134
+ await unlink(activeMount.keyPath).catch(() => { });
163
135
  this.activeMounts.delete(mountPoint);
164
136
  }
165
137
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sshfs-client.js","sourceRoot":"","sources":["../../src/executor/sshfs-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sshfs-client.js","sourceRoot":"","sources":["../../src/executor/sshfs-client.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -3,8 +3,6 @@
3
3
  *
4
4
  * SSHFS Transport implementation for AWCP data plane
5
5
  */
6
- export { SshfsTransport } from './sshfs-transport.js';
7
- export type { SshfsTransportConfig, SshfsDelegatorConfig, SshfsExecutorConfig, CredentialManagerConfig, GeneratedCredential, SshfsMountConfig, MountParams, ActiveMount, SshfsMountInfo, SshCredential, SshEndpoint, } from './types.js';
8
- export { CredentialManager } from './delegator/index.js';
9
- export { SshfsMountClient, DEFAULT_TEMP_KEY_DIR, buildSshfsArgs } from './executor/index.js';
6
+ export { CredentialManager, type CredentialManagerConfig, type GeneratedCredential, } from './delegator/index.js';
7
+ export { SshfsMountClient, type SshfsMountConfig, type MountParams, } from './executor/index.js';
10
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,YAAY,EACV,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,uBAAuB,EACvB,mBAAmB,EACnB,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,cAAc,EACd,aAAa,EACb,WAAW,GACZ,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,iBAAiB,EACjB,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,GACzB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,gBAAgB,EAChB,KAAK,gBAAgB,EACrB,KAAK,WAAW,GACjB,MAAM,qBAAqB,CAAC"}
package/dist/index.js CHANGED
@@ -3,9 +3,8 @@
3
3
  *
4
4
  * SSHFS Transport implementation for AWCP data plane
5
5
  */
6
- // Main transport adapter
7
- export { SshfsTransport } from './sshfs-transport.js';
8
- // Lower-level components (for advanced use cases)
9
- export { CredentialManager } from './delegator/index.js';
10
- export { SshfsMountClient, DEFAULT_TEMP_KEY_DIR, buildSshfsArgs } from './executor/index.js';
6
+ // Delegator-side exports
7
+ export { CredentialManager, } from './delegator/index.js';
8
+ // Executor-side exports
9
+ export { SshfsMountClient, } from './executor/index.js';
11
10
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,yBAAyB;AACzB,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAiBtD,kDAAkD;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,yBAAyB;AACzB,OAAO,EACL,iBAAiB,GAGlB,MAAM,sBAAsB,CAAC;AAE9B,wBAAwB;AACxB,OAAO,EACL,gBAAgB,GAGjB,MAAM,qBAAqB,CAAC"}
package/package.json CHANGED
@@ -1,13 +1,10 @@
1
1
  {
2
2
  "name": "@awcp/transport-sshfs",
3
- "version": "0.0.0-dev-202601301521",
3
+ "version": "0.0.1",
4
4
  "description": "AWCP SSHFS Transport - SSH/SFTP based data plane implementation",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "types": "./dist/index.d.ts",
8
- "bin": {
9
- "awcp-sshfs": "./bin/awcp-sshfs.js"
10
- },
11
8
  "exports": {
12
9
  ".": {
13
10
  "types": "./dist/index.d.ts",
@@ -24,7 +21,6 @@
24
21
  },
25
22
  "files": [
26
23
  "dist",
27
- "bin",
28
24
  "README.md"
29
25
  ],
30
26
  "scripts": {
@@ -34,7 +30,7 @@
34
30
  "test:watch": "vitest"
35
31
  },
36
32
  "dependencies": {
37
- "@awcp/core": "0.0.0-dev-202601301521"
33
+ "@awcp/core": "^0.0.1"
38
34
  },
39
35
  "keywords": [
40
36
  "awcp",
@@ -1,13 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * AWCP SSHFS Transport Setup CLI
4
- *
5
- * Configures SSH certificate authentication for AWCP.
6
- *
7
- * Usage:
8
- * npx @awcp/transport-sshfs setup # Check and guide
9
- * npx @awcp/transport-sshfs setup --auto # Auto-configure (needs sudo)
10
- * npx @awcp/transport-sshfs setup --check # Check only
11
- */
12
- export {};
13
- //# sourceMappingURL=setup.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/cli/setup.ts"],"names":[],"mappings":";AACA;;;;;;;;;GASG"}
package/dist/cli/setup.js DELETED
@@ -1,286 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * AWCP SSHFS Transport Setup CLI
4
- *
5
- * Configures SSH certificate authentication for AWCP.
6
- *
7
- * Usage:
8
- * npx @awcp/transport-sshfs setup # Check and guide
9
- * npx @awcp/transport-sshfs setup --auto # Auto-configure (needs sudo)
10
- * npx @awcp/transport-sshfs setup --check # Check only
11
- */
12
- import { spawn, execSync } from 'node:child_process';
13
- import { access, mkdir, readFile, constants } from 'node:fs/promises';
14
- import { join } from 'node:path';
15
- import { homedir, platform } from 'node:os';
16
- import * as net from 'node:net';
17
- const CA_KEY_PATH = join(homedir(), '.awcp', 'ca');
18
- const SSHD_CONFIG_PATH = '/etc/ssh/sshd_config';
19
- /**
20
- * Print colored output
21
- */
22
- function print(message) {
23
- console.log(message);
24
- }
25
- function printStatus(name, status, message) {
26
- const icon = status === 'ok' ? '✓' : status === 'missing' ? '✗' : '!';
27
- const color = status === 'ok' ? '\x1b[32m' : status === 'missing' ? '\x1b[31m' : '\x1b[33m';
28
- console.log(` ${color}[${icon}]\x1b[0m ${name.padEnd(20)} ${message}`);
29
- }
30
- /**
31
- * Check if a command exists
32
- */
33
- async function commandExists(cmd) {
34
- try {
35
- execSync(`which ${cmd}`, { stdio: 'ignore' });
36
- return true;
37
- }
38
- catch {
39
- return false;
40
- }
41
- }
42
- /**
43
- * Check if sshd is running
44
- */
45
- /**
46
- * Check if sshd is running by trying to connect to port 22
47
- */
48
- async function isSshdRunning() {
49
- return new Promise((resolve) => {
50
- const socket = new net.Socket();
51
- socket.setTimeout(2000);
52
- socket.on('connect', () => {
53
- socket.destroy();
54
- resolve(true);
55
- });
56
- socket.on('timeout', () => {
57
- socket.destroy();
58
- resolve(false);
59
- });
60
- socket.on('error', () => {
61
- resolve(false);
62
- });
63
- socket.connect(22, 'localhost');
64
- });
65
- }
66
- /**
67
- * Check if sshd_config has TrustedUserCAKeys configured
68
- */
69
- async function isSshdConfigured() {
70
- try {
71
- const content = await readFile(SSHD_CONFIG_PATH, 'utf-8');
72
- const caKeyPub = `${CA_KEY_PATH}.pub`;
73
- return content.includes(`TrustedUserCAKeys`) && content.includes(caKeyPub);
74
- }
75
- catch {
76
- return false;
77
- }
78
- }
79
- /**
80
- * Check if CA key exists
81
- */
82
- async function caKeyExists() {
83
- try {
84
- await access(CA_KEY_PATH, constants.R_OK);
85
- return true;
86
- }
87
- catch {
88
- return false;
89
- }
90
- }
91
- /**
92
- * Generate CA key pair
93
- */
94
- async function generateCaKey() {
95
- const caDir = join(CA_KEY_PATH, '..');
96
- await mkdir(caDir, { recursive: true, mode: 0o700 });
97
- return new Promise((resolve, reject) => {
98
- const proc = spawn('ssh-keygen', [
99
- '-t', 'ed25519',
100
- '-f', CA_KEY_PATH,
101
- '-N', '',
102
- '-C', 'awcp-ca',
103
- ], { stdio: 'inherit' });
104
- proc.on('close', (code) => {
105
- if (code === 0)
106
- resolve();
107
- else
108
- reject(new Error(`ssh-keygen failed with code ${code}`));
109
- });
110
- proc.on('error', reject);
111
- });
112
- }
113
- /**
114
- * Configure sshd (requires sudo)
115
- */
116
- async function configureSshd() {
117
- const caKeyPub = `${CA_KEY_PATH}.pub`;
118
- print('\n Configuring sshd (requires sudo)...');
119
- // Add TrustedUserCAKeys to sshd_config
120
- execSync(`echo "TrustedUserCAKeys ${caKeyPub}" | sudo tee -a ${SSHD_CONFIG_PATH}`, {
121
- stdio: 'inherit',
122
- });
123
- // Restart sshd
124
- if (platform() === 'darwin') {
125
- execSync('sudo launchctl stop com.openssh.sshd', { stdio: 'inherit' });
126
- }
127
- else {
128
- execSync('sudo systemctl restart sshd || sudo systemctl restart ssh', { stdio: 'inherit' });
129
- }
130
- }
131
- /**
132
- * Run all checks
133
- */
134
- async function runChecks() {
135
- const results = [];
136
- // Check ssh-keygen
137
- const hasSshKeygen = await commandExists('ssh-keygen');
138
- results.push({
139
- name: 'ssh-keygen',
140
- status: hasSshKeygen ? 'ok' : 'missing',
141
- message: hasSshKeygen ? 'found' : 'not found',
142
- hint: 'Install OpenSSH client',
143
- });
144
- // Check sshfs
145
- const hasSshfs = await commandExists('sshfs');
146
- results.push({
147
- name: 'sshfs',
148
- status: hasSshfs ? 'ok' : 'missing',
149
- message: hasSshfs ? 'found' : 'not found',
150
- hint: platform() === 'darwin'
151
- ? 'Install: brew install macfuse && brew install sshfs'
152
- : 'Install: sudo apt install sshfs',
153
- });
154
- // Check sshd
155
- const sshdRunning = await isSshdRunning();
156
- results.push({
157
- name: 'sshd',
158
- status: sshdRunning ? 'ok' : 'missing',
159
- message: sshdRunning ? 'running' : 'not running',
160
- hint: platform() === 'darwin'
161
- ? 'Enable: System Settings → General → Sharing → Remote Login'
162
- : 'Install & start: sudo apt install openssh-server && sudo systemctl start sshd',
163
- });
164
- // Check CA key
165
- const hasCaKey = await caKeyExists();
166
- results.push({
167
- name: 'CA key',
168
- status: hasCaKey ? 'ok' : 'missing',
169
- message: hasCaKey ? `exists at ${CA_KEY_PATH}` : 'not found',
170
- hint: 'Will be auto-generated',
171
- });
172
- // Check sshd config (only if CA key exists)
173
- if (hasCaKey) {
174
- const sshdConfigured = await isSshdConfigured();
175
- results.push({
176
- name: 'sshd TrustedUserCAKeys',
177
- status: sshdConfigured ? 'ok' : 'missing',
178
- message: sshdConfigured ? 'configured' : 'not configured',
179
- hint: `Add to ${SSHD_CONFIG_PATH}: TrustedUserCAKeys ${CA_KEY_PATH}.pub`,
180
- });
181
- }
182
- return results;
183
- }
184
- /**
185
- * Print setup instructions
186
- */
187
- function printInstructions(results) {
188
- const missing = results.filter(r => r.status === 'missing');
189
- if (missing.length === 0) {
190
- print('\n \x1b[32m✓ All checks passed! AWCP is ready to use.\x1b[0m\n');
191
- return;
192
- }
193
- print('\n \x1b[33mSetup required:\x1b[0m\n');
194
- for (const result of missing) {
195
- if (result.hint) {
196
- print(` • ${result.name}: ${result.hint}`);
197
- }
198
- }
199
- // Print auto command hint
200
- const needsSshdConfig = missing.some(r => r.name === 'sshd TrustedUserCAKeys');
201
- const needsCaKey = missing.some(r => r.name === 'CA key');
202
- if (needsCaKey || needsSshdConfig) {
203
- print('\n Or run with --auto to configure automatically:');
204
- print(' npx @awcp/transport-sshfs setup --auto\n');
205
- }
206
- }
207
- /**
208
- * Main setup function
209
- */
210
- async function setup(options) {
211
- print('');
212
- print('╔════════════════════════════════════════════════════════════╗');
213
- print('║ AWCP SSHFS Transport Setup ║');
214
- print('╚════════════════════════════════════════════════════════════╝');
215
- print('');
216
- print(' Checking dependencies...');
217
- print('');
218
- const results = await runChecks();
219
- for (const result of results) {
220
- printStatus(result.name, result.status, result.message);
221
- }
222
- if (options.check) {
223
- const allOk = results.every(r => r.status === 'ok');
224
- process.exit(allOk ? 0 : 1);
225
- }
226
- if (options.auto) {
227
- // Auto-configure
228
- const needsCaKey = results.some(r => r.name === 'CA key' && r.status === 'missing');
229
- const needsSshdConfig = results.some(r => r.name === 'sshd TrustedUserCAKeys' && r.status === 'missing');
230
- if (needsCaKey) {
231
- print('\n Generating CA key pair...');
232
- await generateCaKey();
233
- printStatus('CA key', 'ok', `generated at ${CA_KEY_PATH}`);
234
- }
235
- if (needsSshdConfig || needsCaKey) {
236
- // Re-check if sshd config is needed after CA key generation
237
- const sshdConfigured = await isSshdConfigured();
238
- if (!sshdConfigured) {
239
- await configureSshd();
240
- printStatus('sshd TrustedUserCAKeys', 'ok', 'configured');
241
- }
242
- }
243
- print('\n \x1b[32m✓ Setup complete! AWCP is ready to use.\x1b[0m\n');
244
- }
245
- else {
246
- printInstructions(results);
247
- }
248
- }
249
- /**
250
- * Parse CLI arguments and run
251
- */
252
- async function main() {
253
- const args = process.argv.slice(2);
254
- // Handle help
255
- if (args.includes('--help') || args.includes('-h')) {
256
- print(`
257
- AWCP SSHFS Transport Setup
258
-
259
- Usage:
260
- npx @awcp/transport-sshfs setup [options]
261
-
262
- Options:
263
- --auto Auto-configure everything (requires sudo for sshd config)
264
- --check Check only, don't print setup instructions
265
- --help Show this help message
266
-
267
- Examples:
268
- npx @awcp/transport-sshfs setup # Check and show instructions
269
- npx @awcp/transport-sshfs setup --auto # Auto-configure
270
- `);
271
- process.exit(0);
272
- }
273
- const options = {
274
- auto: args.includes('--auto'),
275
- check: args.includes('--check'),
276
- };
277
- try {
278
- await setup(options);
279
- }
280
- catch (error) {
281
- console.error('\n \x1b[31mError:\x1b[0m', error instanceof Error ? error.message : error);
282
- process.exit(1);
283
- }
284
- }
285
- main();
286
- //# sourceMappingURL=setup.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/cli/setup.ts"],"names":[],"mappings":"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"}
@@ -1,24 +0,0 @@
1
- /**
2
- * SSHFS Transport Adapter
3
- *
4
- * Implements TransportAdapter interface for SSHFS transport.
5
- */
6
- import type { TransportAdapter, TransportPrepareParams, TransportPrepareResult, TransportSetupParams, TransportTeardownParams, DependencyCheckResult } from '@awcp/core';
7
- import type { SshfsTransportConfig } from './types.js';
8
- export declare class SshfsTransport implements TransportAdapter {
9
- readonly type: "sshfs";
10
- private config;
11
- private credentialManager?;
12
- private mountClient?;
13
- constructor(config?: SshfsTransportConfig);
14
- prepare(params: TransportPrepareParams): Promise<TransportPrepareResult>;
15
- cleanup(delegationId: string): Promise<void>;
16
- checkDependency(): Promise<DependencyCheckResult>;
17
- setup(params: TransportSetupParams): Promise<string>;
18
- teardown(params: TransportTeardownParams): Promise<void>;
19
- private ensureMountClient;
20
- unmountAll(): Promise<void>;
21
- revokeAllCredentials(): Promise<void>;
22
- cleanupStaleKeyFiles(): Promise<number>;
23
- }
24
- //# sourceMappingURL=sshfs-transport.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sshfs-transport.d.ts","sourceRoot":"","sources":["../src/sshfs-transport.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,gBAAgB,EAChB,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,EAEtB,MAAM,YAAY,CAAC;AAGpB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvD,qBAAa,cAAe,YAAW,gBAAgB;IACrD,QAAQ,CAAC,IAAI,EAAG,OAAO,CAAU;IAEjC,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,iBAAiB,CAAC,CAAoB;IAC9C,OAAO,CAAC,WAAW,CAAC,CAAmB;gBAE3B,MAAM,GAAE,oBAAyB;IAMvC,OAAO,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IA8BxE,OAAO,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM5C,eAAe,IAAI,OAAO,CAAC,qBAAqB,CAAC;IAYjD,KAAK,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC;IAoBpD,QAAQ,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;IAM9D,OAAO,CAAC,iBAAiB;IAUnB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrC,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC;CAG9C"}