termify-agent 1.0.51 → 1.0.55
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/agent.d.ts +4 -0
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +47 -1
- package/dist/agent.js.map +1 -1
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -1
- package/dist/network/wireguard-manager-macos-routes.test.d.ts +2 -0
- package/dist/network/wireguard-manager-macos-routes.test.d.ts.map +1 -0
- package/dist/network/wireguard-manager-macos-routes.test.js +19 -0
- package/dist/network/wireguard-manager-macos-routes.test.js.map +1 -0
- package/dist/network/wireguard-manager.d.ts +19 -1
- package/dist/network/wireguard-manager.d.ts.map +1 -1
- package/dist/network/wireguard-manager.js +47 -11
- package/dist/network/wireguard-manager.js.map +1 -1
- package/dist/network/wireguard-manager.test.d.ts +2 -0
- package/dist/network/wireguard-manager.test.d.ts.map +1 -0
- package/dist/network/wireguard-manager.test.js +24 -0
- package/dist/network/wireguard-manager.test.js.map +1 -0
- package/dist/ssh/platform-openssh.d.ts +16 -0
- package/dist/ssh/platform-openssh.d.ts.map +1 -0
- package/dist/ssh/platform-openssh.js +51 -0
- package/dist/ssh/platform-openssh.js.map +1 -0
- package/dist/ssh/platform-openssh.test.d.ts +2 -0
- package/dist/ssh/platform-openssh.test.d.ts.map +1 -0
- package/dist/ssh/platform-openssh.test.js +42 -0
- package/dist/ssh/platform-openssh.test.js.map +1 -0
- package/dist/ssh/system-ssh-renewal.test.d.ts +2 -0
- package/dist/ssh/system-ssh-renewal.test.d.ts.map +1 -0
- package/dist/ssh/system-ssh-renewal.test.js +42 -0
- package/dist/ssh/system-ssh-renewal.test.js.map +1 -0
- package/dist/ssh/system-ssh.d.ts +63 -0
- package/dist/ssh/system-ssh.d.ts.map +1 -0
- package/dist/ssh/system-ssh.js +343 -0
- package/dist/ssh/system-ssh.js.map +1 -0
- package/dist/ssh/system-ssh.test.d.ts +2 -0
- package/dist/ssh/system-ssh.test.d.ts.map +1 -0
- package/dist/ssh/system-ssh.test.js +189 -0
- package/dist/ssh/system-ssh.test.js.map +1 -0
- package/package.json +1 -1
|
@@ -329,9 +329,6 @@ class UnixWireGuardBackend {
|
|
|
329
329
|
throw new Error('Timeout waiting for interface ' + iface);
|
|
330
330
|
}
|
|
331
331
|
}
|
|
332
|
-
// ---------------------------------------------------------------------------
|
|
333
|
-
// WireGuardManager - high-level orchestrator
|
|
334
|
-
// ---------------------------------------------------------------------------
|
|
335
332
|
export class WireGuardManager extends EventEmitter {
|
|
336
333
|
backend = null;
|
|
337
334
|
stateStore;
|
|
@@ -339,9 +336,11 @@ export class WireGuardManager extends EventEmitter {
|
|
|
339
336
|
installResult = null;
|
|
340
337
|
interfaceName = null;
|
|
341
338
|
connectedPeers = 0;
|
|
342
|
-
|
|
339
|
+
options;
|
|
340
|
+
constructor(configDir, options = {}) {
|
|
343
341
|
super();
|
|
344
342
|
this.stateStore = new WireGuardStateStore(configDir);
|
|
343
|
+
this.options = options;
|
|
345
344
|
}
|
|
346
345
|
// -----------------------------------------------------------------------
|
|
347
346
|
// Public API
|
|
@@ -385,6 +384,19 @@ export class WireGuardManager extends EventEmitter {
|
|
|
385
384
|
return this.installResult;
|
|
386
385
|
}
|
|
387
386
|
}
|
|
387
|
+
/**
|
|
388
|
+
* Load or generate the local WireGuard identity without bringing the interface up.
|
|
389
|
+
* This lets the agent publish its public key before peer signaling starts.
|
|
390
|
+
*/
|
|
391
|
+
async ensureIdentityLoaded() {
|
|
392
|
+
if (this.identity) {
|
|
393
|
+
return this.identity;
|
|
394
|
+
}
|
|
395
|
+
const identity = await this.stateStore.ensureIdentity();
|
|
396
|
+
this.identity = identity;
|
|
397
|
+
this.interfaceName = identity.interfaceName;
|
|
398
|
+
return identity;
|
|
399
|
+
}
|
|
388
400
|
/**
|
|
389
401
|
* Set up the WireGuard interface with the agent's virtual IP.
|
|
390
402
|
*/
|
|
@@ -393,19 +405,17 @@ export class WireGuardManager extends EventEmitter {
|
|
|
393
405
|
throw new Error('WireGuard backend not initialized. Call ensureInstalled() first.');
|
|
394
406
|
}
|
|
395
407
|
try {
|
|
396
|
-
|
|
397
|
-
this.identity = await this.stateStore.ensureIdentity();
|
|
398
|
-
this.interfaceName = this.identity.interfaceName;
|
|
408
|
+
const identity = await this.ensureIdentityLoaded();
|
|
399
409
|
const config = {
|
|
400
|
-
interfaceName:
|
|
410
|
+
interfaceName: identity.interfaceName,
|
|
401
411
|
virtualIp,
|
|
402
|
-
listenPort:
|
|
412
|
+
listenPort: identity.listenPort,
|
|
403
413
|
privateKeyPath: this.stateStore.getPrivateKeyPath(),
|
|
404
|
-
privateKeyBase64:
|
|
414
|
+
privateKeyBase64: identity.privateKey,
|
|
405
415
|
};
|
|
406
416
|
await this.backend.ensureInterface(config);
|
|
407
417
|
this.emit('ready');
|
|
408
|
-
logger.info('[WG Manager] Interface ready: ' +
|
|
418
|
+
logger.info('[WG Manager] Interface ready: ' + identity.interfaceName);
|
|
409
419
|
}
|
|
410
420
|
catch (err) {
|
|
411
421
|
const message = err instanceof Error ? err.message : String(err);
|
|
@@ -422,6 +432,7 @@ export class WireGuardManager extends EventEmitter {
|
|
|
422
432
|
throw new Error('WireGuard interface not initialized.');
|
|
423
433
|
}
|
|
424
434
|
await this.backend.setPeers(this.interfaceName, peers);
|
|
435
|
+
await this.syncPeerRoutes(this.interfaceName, peers.map(peer => peer.allowedIps));
|
|
425
436
|
this.connectedPeers = peers.length;
|
|
426
437
|
logger.info('[WG Manager] Set ' + peers.length + ' peers');
|
|
427
438
|
}
|
|
@@ -433,6 +444,7 @@ export class WireGuardManager extends EventEmitter {
|
|
|
433
444
|
throw new Error('WireGuard interface not initialized.');
|
|
434
445
|
}
|
|
435
446
|
await this.backend.addPeer(this.interfaceName, peer);
|
|
447
|
+
await this.syncPeerRoutes(this.interfaceName, [peer.allowedIps]);
|
|
436
448
|
this.connectedPeers++;
|
|
437
449
|
this.emit('peer:added', peer);
|
|
438
450
|
logger.info('[WG Manager] Added peer ' + peer.agentId);
|
|
@@ -520,6 +532,9 @@ export class WireGuardManager extends EventEmitter {
|
|
|
520
532
|
connectedPeers: this.connectedPeers,
|
|
521
533
|
};
|
|
522
534
|
}
|
|
535
|
+
async syncPeerRoutesForTest(interfaceName, allowedIps) {
|
|
536
|
+
await this.syncPeerRoutes(interfaceName, allowedIps);
|
|
537
|
+
}
|
|
523
538
|
/**
|
|
524
539
|
* Get health snapshot from the running interface.
|
|
525
540
|
*/
|
|
@@ -571,5 +586,26 @@ export class WireGuardManager extends EventEmitter {
|
|
|
571
586
|
this.connectedPeers = 0;
|
|
572
587
|
this.emit('shutdown');
|
|
573
588
|
}
|
|
589
|
+
async syncPeerRoutes(interfaceName, allowedIps) {
|
|
590
|
+
const platform = this.options.platformOverride ?? osPlatform();
|
|
591
|
+
if (platform !== 'darwin') {
|
|
592
|
+
return;
|
|
593
|
+
}
|
|
594
|
+
for (const allowedIp of allowedIps) {
|
|
595
|
+
const host = allowedIp.replace(/\/\d+$/, '');
|
|
596
|
+
try {
|
|
597
|
+
await this.runExecFile('route', ['-n', 'add', '-host', host, '-interface', interfaceName]);
|
|
598
|
+
}
|
|
599
|
+
catch {
|
|
600
|
+
// Route may already exist; keep sync idempotent.
|
|
601
|
+
}
|
|
602
|
+
}
|
|
603
|
+
}
|
|
604
|
+
async runExecFile(file, args) {
|
|
605
|
+
if (this.options.execFile) {
|
|
606
|
+
return this.options.execFile(file, args);
|
|
607
|
+
}
|
|
608
|
+
return execFile(file, args);
|
|
609
|
+
}
|
|
574
610
|
}
|
|
575
611
|
//# sourceMappingURL=wireguard-manager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wireguard-manager.js","sourceRoot":"","sources":["../../src/network/wireguard-manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"wireguard-manager.js","sourceRoot":"","sources":["../../src/network/wireguard-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wireguard-manager.test.d.ts","sourceRoot":"","sources":["../../src/network/wireguard-manager.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import assert from 'node:assert/strict';
|
|
2
|
+
import { existsSync, mkdtempSync, rmSync } from 'node:fs';
|
|
3
|
+
import { tmpdir } from 'node:os';
|
|
4
|
+
import { join } from 'node:path';
|
|
5
|
+
import test from 'node:test';
|
|
6
|
+
import { WireGuardManager } from './wireguard-manager.js';
|
|
7
|
+
test('preloads a local WireGuard identity before the interface is created', async (t) => {
|
|
8
|
+
const tempDir = mkdtempSync(join(tmpdir(), 'termify-agent-wg-'));
|
|
9
|
+
t.after(() => {
|
|
10
|
+
rmSync(tempDir, { recursive: true, force: true });
|
|
11
|
+
});
|
|
12
|
+
const manager = new WireGuardManager(tempDir);
|
|
13
|
+
assert.equal(manager.getStatus().publicKey, undefined);
|
|
14
|
+
assert.equal(manager.getStatus().listenPort, undefined);
|
|
15
|
+
const identity = await manager.ensureIdentityLoaded();
|
|
16
|
+
const status = manager.getStatus();
|
|
17
|
+
assert.equal(status.interfaceName, identity.interfaceName);
|
|
18
|
+
assert.equal(status.listenPort, identity.listenPort);
|
|
19
|
+
assert.equal(status.publicKey, identity.publicKey);
|
|
20
|
+
assert.ok(status.publicKey);
|
|
21
|
+
assert.equal(existsSync(join(tempDir, 'wireguard.key')), true);
|
|
22
|
+
assert.equal(existsSync(join(tempDir, 'wireguard.json')), true);
|
|
23
|
+
});
|
|
24
|
+
//# sourceMappingURL=wireguard-manager.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wireguard-manager.test.js","sourceRoot":"","sources":["../../src/network/wireguard-manager.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,IAAI,CAAC,qEAAqE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IACtF,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAEjE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;QACX,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAE9C,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACvD,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IAExD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,oBAAoB,EAAE,CAAC;IACtD,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAEnC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;IAC3D,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;IACrD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;IACnD,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC5B,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAC/D,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAClE,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export interface OpenSSHRenderPaths {
|
|
2
|
+
userPrivateKeyPath: string;
|
|
3
|
+
userCertificatePath: string;
|
|
4
|
+
knownHostsPath: string;
|
|
5
|
+
hostPrivateKeyPath: string;
|
|
6
|
+
hostCertificatePath: string;
|
|
7
|
+
userCaPublicKeyPath: string;
|
|
8
|
+
principalsCommand?: string;
|
|
9
|
+
principalsCommandUser?: string;
|
|
10
|
+
authorizedPrincipalsFilePath?: string;
|
|
11
|
+
}
|
|
12
|
+
export declare function renderClientConfig(paths: OpenSSHRenderPaths): string;
|
|
13
|
+
export declare function renderKnownHostsCertAuthority(pattern: string, hostCaPublicKey: string): string;
|
|
14
|
+
export declare function renderSshdConfigFragment(paths: OpenSSHRenderPaths): string;
|
|
15
|
+
export declare function upsertManagedBlock(existing: string, name: string, block: string): string;
|
|
16
|
+
//# sourceMappingURL=platform-openssh.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform-openssh.d.ts","sourceRoot":"","sources":["../../src/ssh/platform-openssh.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IACjC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,4BAA4B,CAAC,EAAE,MAAM,CAAC;CACvC;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM,CAUpE;AAED,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,MAAM,CAE9F;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM,CAmB1E;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAgBxF"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
export function renderClientConfig(paths) {
|
|
2
|
+
return [
|
|
3
|
+
'Host 10.100.*',
|
|
4
|
+
` IdentityFile ${paths.userPrivateKeyPath}`,
|
|
5
|
+
` CertificateFile ${paths.userCertificatePath}`,
|
|
6
|
+
` UserKnownHostsFile ${paths.knownHostsPath}`,
|
|
7
|
+
' StrictHostKeyChecking yes',
|
|
8
|
+
' IdentitiesOnly yes',
|
|
9
|
+
'',
|
|
10
|
+
].join('\n');
|
|
11
|
+
}
|
|
12
|
+
export function renderKnownHostsCertAuthority(pattern, hostCaPublicKey) {
|
|
13
|
+
return `@cert-authority ${pattern} ${hostCaPublicKey.trimEnd()}\n`;
|
|
14
|
+
}
|
|
15
|
+
export function renderSshdConfigFragment(paths) {
|
|
16
|
+
const principalLines = paths.authorizedPrincipalsFilePath
|
|
17
|
+
? [
|
|
18
|
+
`AuthorizedPrincipalsFile ${paths.authorizedPrincipalsFilePath}`,
|
|
19
|
+
]
|
|
20
|
+
: [
|
|
21
|
+
`AuthorizedPrincipalsCommand ${paths.principalsCommand}`,
|
|
22
|
+
`AuthorizedPrincipalsCommandUser ${paths.principalsCommandUser ?? 'root'}`,
|
|
23
|
+
];
|
|
24
|
+
return [
|
|
25
|
+
'# Managed by Termify',
|
|
26
|
+
`HostKey ${paths.hostPrivateKeyPath}`,
|
|
27
|
+
`HostCertificate ${paths.hostCertificatePath}`,
|
|
28
|
+
`TrustedUserCAKeys ${paths.userCaPublicKeyPath}`,
|
|
29
|
+
...principalLines,
|
|
30
|
+
'PubkeyAuthentication yes',
|
|
31
|
+
'',
|
|
32
|
+
].join('\n');
|
|
33
|
+
}
|
|
34
|
+
export function upsertManagedBlock(existing, name, block) {
|
|
35
|
+
const start = `# >>> termify:${name} >>>`;
|
|
36
|
+
const end = `# <<< termify:${name} <<<`;
|
|
37
|
+
const managed = `${start}\n${block.trimEnd()}\n${end}\n`;
|
|
38
|
+
const pattern = new RegExp(`${escapeRegExp(start)}[\\s\\S]*?${escapeRegExp(end)}\\n?`, 'g');
|
|
39
|
+
if (pattern.test(existing)) {
|
|
40
|
+
return existing.replace(pattern, managed);
|
|
41
|
+
}
|
|
42
|
+
const trimmed = existing.trimEnd();
|
|
43
|
+
if (trimmed.length === 0) {
|
|
44
|
+
return managed;
|
|
45
|
+
}
|
|
46
|
+
return `${trimmed}\n\n${managed}`;
|
|
47
|
+
}
|
|
48
|
+
function escapeRegExp(value) {
|
|
49
|
+
return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=platform-openssh.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform-openssh.js","sourceRoot":"","sources":["../../src/ssh/platform-openssh.ts"],"names":[],"mappings":"AAYA,MAAM,UAAU,kBAAkB,CAAC,KAAyB;IAC1D,OAAO;QACL,eAAe;QACf,kBAAkB,KAAK,CAAC,kBAAkB,EAAE;QAC5C,qBAAqB,KAAK,CAAC,mBAAmB,EAAE;QAChD,wBAAwB,KAAK,CAAC,cAAc,EAAE;QAC9C,6BAA6B;QAC7B,sBAAsB;QACtB,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,OAAe,EAAE,eAAuB;IACpF,OAAO,mBAAmB,OAAO,IAAI,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,KAAyB;IAChE,MAAM,cAAc,GAAG,KAAK,CAAC,4BAA4B;QACvD,CAAC,CAAC;YACE,4BAA4B,KAAK,CAAC,4BAA4B,EAAE;SACjE;QACH,CAAC,CAAC;YACE,+BAA+B,KAAK,CAAC,iBAAiB,EAAE;YACxD,mCAAmC,KAAK,CAAC,qBAAqB,IAAI,MAAM,EAAE;SAC3E,CAAC;IAEN,OAAO;QACL,sBAAsB;QACtB,WAAW,KAAK,CAAC,kBAAkB,EAAE;QACrC,mBAAmB,KAAK,CAAC,mBAAmB,EAAE;QAC9C,qBAAqB,KAAK,CAAC,mBAAmB,EAAE;QAChD,GAAG,cAAc;QACjB,0BAA0B;QAC1B,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,QAAgB,EAAE,IAAY,EAAE,KAAa;IAC9E,MAAM,KAAK,GAAG,iBAAiB,IAAI,MAAM,CAAC;IAC1C,MAAM,GAAG,GAAG,iBAAiB,IAAI,MAAM,CAAC;IACxC,MAAM,OAAO,GAAG,GAAG,KAAK,KAAK,KAAK,CAAC,OAAO,EAAE,KAAK,GAAG,IAAI,CAAC;IACzD,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,aAAa,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAE5F,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3B,OAAO,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC;IACnC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO,GAAG,OAAO,OAAO,OAAO,EAAE,CAAC;AACpC,CAAC;AAED,SAAS,YAAY,CAAC,KAAa;IACjC,OAAO,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform-openssh.test.d.ts","sourceRoot":"","sources":["../../src/ssh/platform-openssh.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import assert from 'node:assert/strict';
|
|
2
|
+
import test from 'node:test';
|
|
3
|
+
import { renderClientConfig, renderKnownHostsCertAuthority, renderSshdConfigFragment, } from './platform-openssh.js';
|
|
4
|
+
const paths = {
|
|
5
|
+
userPrivateKeyPath: '/Users/diego/.termify/ssh/user_ed25519',
|
|
6
|
+
userCertificatePath: '/Users/diego/.termify/ssh/user_ed25519-cert.pub',
|
|
7
|
+
knownHostsPath: '/Users/diego/.termify/ssh/known_hosts',
|
|
8
|
+
hostPrivateKeyPath: '/Users/diego/.termify/ssh/host_ed25519',
|
|
9
|
+
hostCertificatePath: '/etc/termify/ssh/host_ed25519-cert.pub',
|
|
10
|
+
userCaPublicKeyPath: '/etc/termify/ssh/user_ca.pub',
|
|
11
|
+
authorizedPrincipalsFilePath: '/etc/termify/ssh/authorized_principals',
|
|
12
|
+
};
|
|
13
|
+
test('renders client config for the Termify virtual network', () => {
|
|
14
|
+
const config = renderClientConfig(paths);
|
|
15
|
+
assert.match(config, /Host 10\.100\.\*/);
|
|
16
|
+
assert.match(config, /IdentityFile \/Users\/diego\/\.termify\/ssh\/user_ed25519/);
|
|
17
|
+
assert.match(config, /CertificateFile \/Users\/diego\/\.termify\/ssh\/user_ed25519-cert\.pub/);
|
|
18
|
+
assert.match(config, /UserKnownHostsFile \/Users\/diego\/\.termify\/ssh\/known_hosts/);
|
|
19
|
+
assert.match(config, /StrictHostKeyChecking yes/);
|
|
20
|
+
assert.match(config, /IdentitiesOnly yes/);
|
|
21
|
+
});
|
|
22
|
+
test('renders known_hosts trust for the Termify host CA', () => {
|
|
23
|
+
const entry = renderKnownHostsCertAuthority('10.100.*', 'ssh-ed25519 AAAATESTCA termify-host-ca');
|
|
24
|
+
assert.equal(entry, '@cert-authority 10.100.* ssh-ed25519 AAAATESTCA termify-host-ca\n');
|
|
25
|
+
});
|
|
26
|
+
test('renders sshd fragment that trusts the Termify account CA', () => {
|
|
27
|
+
const fragment = renderSshdConfigFragment(paths);
|
|
28
|
+
assert.match(fragment, /HostKey \/Users\/diego\/\.termify\/ssh\/host_ed25519/);
|
|
29
|
+
assert.match(fragment, /TrustedUserCAKeys \/etc\/termify\/ssh\/user_ca\.pub/);
|
|
30
|
+
assert.match(fragment, /HostCertificate \/etc\/termify\/ssh\/host_ed25519-cert\.pub/);
|
|
31
|
+
assert.match(fragment, /AuthorizedPrincipalsFile \/etc\/termify\/ssh\/authorized_principals/);
|
|
32
|
+
assert.doesNotMatch(fragment, /AuthorizedPrincipalsCommand/);
|
|
33
|
+
});
|
|
34
|
+
test('renders a static authorized principals file for Windows OpenSSH', () => {
|
|
35
|
+
const fragment = renderSshdConfigFragment({
|
|
36
|
+
...paths,
|
|
37
|
+
authorizedPrincipalsFilePath: 'C:\\ProgramData\\Termify\\ssh\\authorized_principals',
|
|
38
|
+
});
|
|
39
|
+
assert.match(fragment, /AuthorizedPrincipalsFile C:\\ProgramData\\Termify\\ssh\\authorized_principals/);
|
|
40
|
+
assert.doesNotMatch(fragment, /AuthorizedPrincipalsCommand/);
|
|
41
|
+
});
|
|
42
|
+
//# sourceMappingURL=platform-openssh.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform-openssh.test.js","sourceRoot":"","sources":["../../src/ssh/platform-openssh.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EACL,kBAAkB,EAClB,6BAA6B,EAC7B,wBAAwB,GACzB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,KAAK,GAAG;IACZ,kBAAkB,EAAE,wCAAwC;IAC5D,mBAAmB,EAAE,iDAAiD;IACtE,cAAc,EAAE,uCAAuC;IACvD,kBAAkB,EAAE,wCAAwC;IAC5D,mBAAmB,EAAE,wCAAwC;IAC7D,mBAAmB,EAAE,8BAA8B;IACnD,4BAA4B,EAAE,wCAAwC;CACvE,CAAC;AAEF,IAAI,CAAC,uDAAuD,EAAE,GAAG,EAAE;IACjE,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAEzC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IACzC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,2DAA2D,CAAC,CAAC;IAClF,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,wEAAwE,CAAC,CAAC;IAC/F,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,gEAAgE,CAAC,CAAC;IACvF,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC;IAClD,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;AAC7C,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,mDAAmD,EAAE,GAAG,EAAE;IAC7D,MAAM,KAAK,GAAG,6BAA6B,CAAC,UAAU,EAAE,wCAAwC,CAAC,CAAC;IAClG,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,mEAAmE,CAAC,CAAC;AAC3F,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,0DAA0D,EAAE,GAAG,EAAE;IACpE,MAAM,QAAQ,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;IAEjD,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,sDAAsD,CAAC,CAAC;IAC/E,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,qDAAqD,CAAC,CAAC;IAC9E,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,6DAA6D,CAAC,CAAC;IACtF,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,qEAAqE,CAAC,CAAC;IAC9F,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,6BAA6B,CAAC,CAAC;AAC/D,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,iEAAiE,EAAE,GAAG,EAAE;IAC3E,MAAM,QAAQ,GAAG,wBAAwB,CAAC;QACxC,GAAG,KAAK;QACR,4BAA4B,EAAE,sDAAsD;KAC9E,CAAC,CAAC;IAEV,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,+EAA+E,CAAC,CAAC;IACxG,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,6BAA6B,CAAC,CAAC;AAC/D,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"system-ssh-renewal.test.d.ts","sourceRoot":"","sources":["../../src/ssh/system-ssh-renewal.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import assert from 'node:assert/strict';
|
|
2
|
+
import { mkdtempSync, readFileSync, rmSync } from 'node:fs';
|
|
3
|
+
import { tmpdir } from 'node:os';
|
|
4
|
+
import { join } from 'node:path';
|
|
5
|
+
import test from 'node:test';
|
|
6
|
+
import { SystemSSHManager } from './system-ssh.js';
|
|
7
|
+
function bootstrap(validForSeconds) {
|
|
8
|
+
return {
|
|
9
|
+
accountPrincipal: 'termify-account:user-123',
|
|
10
|
+
userCaPublicKey: 'ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAITestUserCa termify-user-ca',
|
|
11
|
+
hostCaPublicKey: 'ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAITestHostCa termify-host-ca',
|
|
12
|
+
userCertificate: 'ssh-ed25519-cert-v01@openssh.com AAAAUserCert termify-user-cert\n',
|
|
13
|
+
hostCertificate: 'ssh-ed25519-cert-v01@openssh.com AAAAHostCert termify-host-cert\n',
|
|
14
|
+
userValidForSeconds: validForSeconds,
|
|
15
|
+
hostValidForSeconds: validForSeconds,
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
test('marks certificates for renewal when expiration is near', async (t) => {
|
|
19
|
+
const tempDir = mkdtempSync(join(tmpdir(), 'termify-agent-ssh-renewal-'));
|
|
20
|
+
const manager = new SystemSSHManager(tempDir);
|
|
21
|
+
t.after(() => {
|
|
22
|
+
rmSync(tempDir, { recursive: true, force: true });
|
|
23
|
+
});
|
|
24
|
+
await manager.ensureLocalKeyPairs();
|
|
25
|
+
await manager.applyBootstrap(bootstrap(60));
|
|
26
|
+
assert.equal(manager.needsRenewal({ now: Date.now() + 31_000, marginMs: 30_000 }), true);
|
|
27
|
+
assert.equal(manager.needsRenewal({ now: Date.now(), marginMs: 30_000 }), false);
|
|
28
|
+
});
|
|
29
|
+
test('stores absolute expiration timestamps in bootstrap metadata', async (t) => {
|
|
30
|
+
const tempDir = mkdtempSync(join(tmpdir(), 'termify-agent-ssh-renewal-'));
|
|
31
|
+
const manager = new SystemSSHManager(tempDir);
|
|
32
|
+
const now = Date.now();
|
|
33
|
+
t.after(() => {
|
|
34
|
+
rmSync(tempDir, { recursive: true, force: true });
|
|
35
|
+
});
|
|
36
|
+
await manager.ensureLocalKeyPairs();
|
|
37
|
+
await manager.applyBootstrap(bootstrap(120), { now });
|
|
38
|
+
const metadata = JSON.parse(readFileSync(manager.getPaths().metadataPath, 'utf8'));
|
|
39
|
+
assert.equal(metadata.userExpiresAt, now + 120_000);
|
|
40
|
+
assert.equal(metadata.hostExpiresAt, now + 120_000);
|
|
41
|
+
});
|
|
42
|
+
//# sourceMappingURL=system-ssh-renewal.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"system-ssh-renewal.test.js","sourceRoot":"","sources":["../../src/ssh/system-ssh-renewal.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,IAAI,MAAM,WAAW,CAAC;AAI7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,SAAS,SAAS,CAAC,eAAuB;IACxC,OAAO;QACL,gBAAgB,EAAE,0BAA0B;QAC5C,eAAe,EAAE,iEAAiE;QAClF,eAAe,EAAE,iEAAiE;QAClF,eAAe,EAAE,mEAAmE;QACpF,eAAe,EAAE,mEAAmE;QACpF,mBAAmB,EAAE,eAAe;QACpC,mBAAmB,EAAE,eAAe;KACrC,CAAC;AACJ,CAAC;AAED,IAAI,CAAC,wDAAwD,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IACzE,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,4BAA4B,CAAC,CAAC,CAAC;IAC1E,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAE9C,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;QACX,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,CAAC,mBAAmB,EAAE,CAAC;IACpC,MAAM,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;IAE5C,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IACzF,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AACnF,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,6DAA6D,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IAC9E,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,4BAA4B,CAAC,CAAC,CAAC;IAC1E,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAEvB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;QACX,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,CAAC,mBAAmB,EAAE,CAAC;IACpC,MAAM,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IAEtD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;IACnF,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC;IACpD,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC;AACtD,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import type { AgentSshBootstrapResponse } from '@termify/shared';
|
|
2
|
+
export interface SystemSSHPaths {
|
|
3
|
+
userRootDir: string;
|
|
4
|
+
systemRootDir: string;
|
|
5
|
+
userPrivateKeyPath: string;
|
|
6
|
+
userPublicKeyPath: string;
|
|
7
|
+
userCertificatePath: string;
|
|
8
|
+
hostPrivateKeyPath: string;
|
|
9
|
+
hostPublicKeyPath: string;
|
|
10
|
+
hostCertificatePath: string;
|
|
11
|
+
userCaPublicKeyPath: string;
|
|
12
|
+
hostCaPublicKeyPath: string;
|
|
13
|
+
metadataPath: string;
|
|
14
|
+
authorizedPrincipalsPath: string;
|
|
15
|
+
knownHostsPath: string;
|
|
16
|
+
clientConfigPath: string;
|
|
17
|
+
principalsCommandPath: string;
|
|
18
|
+
}
|
|
19
|
+
export interface SystemSSHOptions {
|
|
20
|
+
userRootDir?: string;
|
|
21
|
+
systemRootDir?: string;
|
|
22
|
+
homeDir?: string;
|
|
23
|
+
sshdConfigPath?: string;
|
|
24
|
+
helperNodePath?: string;
|
|
25
|
+
helperCliPath?: string;
|
|
26
|
+
applyUserOwnership?: (filePath: string) => Promise<void>;
|
|
27
|
+
platformOverride?: NodeJS.Platform;
|
|
28
|
+
reloadSshd?: boolean;
|
|
29
|
+
}
|
|
30
|
+
export declare class SystemSSHManager {
|
|
31
|
+
private userRootDir;
|
|
32
|
+
private systemRootDir;
|
|
33
|
+
private homeDir;
|
|
34
|
+
private options;
|
|
35
|
+
constructor(userRootDirOrOptions?: string | SystemSSHOptions, homeDirArg?: string, legacyOptions?: SystemSSHOptions);
|
|
36
|
+
getPaths(): SystemSSHPaths;
|
|
37
|
+
ensureLocalKeyPairs(): Promise<{
|
|
38
|
+
userPublicKey: string;
|
|
39
|
+
hostPublicKey: string;
|
|
40
|
+
}>;
|
|
41
|
+
applyBootstrap(material: AgentSshBootstrapResponse, options?: {
|
|
42
|
+
now?: number;
|
|
43
|
+
}): Promise<void>;
|
|
44
|
+
installOpenSshIntegration(): Promise<void>;
|
|
45
|
+
fetchBootstrap(params: {
|
|
46
|
+
serverUrl: string;
|
|
47
|
+
accessToken: string;
|
|
48
|
+
hostname: string;
|
|
49
|
+
}): Promise<AgentSshBootstrapResponse>;
|
|
50
|
+
readAccountPrincipal(): string | null;
|
|
51
|
+
needsRenewal(options?: {
|
|
52
|
+
now?: number;
|
|
53
|
+
marginMs?: number;
|
|
54
|
+
}): boolean;
|
|
55
|
+
private getSshdConfigPath;
|
|
56
|
+
private readMetadata;
|
|
57
|
+
private ensureEd25519KeyPair;
|
|
58
|
+
private installPrincipalsCommandHelper;
|
|
59
|
+
private applyUserOwnership;
|
|
60
|
+
private getPlatform;
|
|
61
|
+
private reloadSshd;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=system-ssh.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"system-ssh.d.ts","sourceRoot":"","sources":["../../src/ssh/system-ssh.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAEV,yBAAyB,EAC1B,MAAM,iBAAiB,CAAC;AAmBzB,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,wBAAwB,EAAE,MAAM,CAAC;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,gBAAgB,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IACnC,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AA2ID,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAA6B;gBAEhC,oBAAoB,CAAC,EAAE,MAAM,GAAG,gBAAgB,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,aAAa,GAAE,gBAAqB;IAOvH,QAAQ,IAAI,cAAc;IAuBpB,mBAAmB,IAAI,OAAO,CAAC;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC;IAqBhF,cAAc,CAAC,QAAQ,EAAE,yBAAyB,EAAE,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAyB9F,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC;IAiE1C,cAAc,CAAC,MAAM,EAAE;QAC3B,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;KAClB,GAAG,OAAO,CAAC,yBAAyB,CAAC;IA8BtC,oBAAoB,IAAI,MAAM,GAAG,IAAI;IAKrC,YAAY,CAAC,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO;IAgBpE,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,YAAY;YASN,oBAAoB;YAepB,8BAA8B;YAe9B,kBAAkB;IAIhC,OAAO,CAAC,WAAW;YAIL,UAAU;CAiBzB"}
|