latchkey 0.1.3 → 0.1.4

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.
Files changed (42) hide show
  1. package/README.md +17 -1
  2. package/dist/scripts/recordBrowserSession.js +1 -1
  3. package/dist/scripts/recordBrowserSession.js.map +1 -1
  4. package/dist/src/browserConfig.d.ts +30 -27
  5. package/dist/src/browserConfig.d.ts.map +1 -1
  6. package/dist/src/browserConfig.js +125 -94
  7. package/dist/src/browserConfig.js.map +1 -1
  8. package/dist/src/cli.js +1 -1
  9. package/dist/src/cliCommands.d.ts.map +1 -1
  10. package/dist/src/cliCommands.js +54 -6
  11. package/dist/src/cliCommands.js.map +1 -1
  12. package/dist/src/config.d.ts +1 -0
  13. package/dist/src/config.d.ts.map +1 -1
  14. package/dist/src/config.js +5 -0
  15. package/dist/src/config.js.map +1 -1
  16. package/dist/src/playwrightDownload.d.ts +44 -0
  17. package/dist/src/playwrightDownload.d.ts.map +1 -0
  18. package/dist/src/playwrightDownload.js +222 -0
  19. package/dist/src/playwrightDownload.js.map +1 -0
  20. package/dist/src/playwrightUtils.d.ts +7 -1
  21. package/dist/src/playwrightUtils.d.ts.map +1 -1
  22. package/dist/src/playwrightUtils.js +14 -8
  23. package/dist/src/playwrightUtils.js.map +1 -1
  24. package/dist/src/services/base.d.ts +2 -1
  25. package/dist/src/services/base.d.ts.map +1 -1
  26. package/dist/src/services/base.js +3 -3
  27. package/dist/src/services/base.js.map +1 -1
  28. package/dist/tests/cli.test.js +16 -3
  29. package/dist/tests/cli.test.js.map +1 -1
  30. package/dist/tests/playwrightDownload.test.d.ts +2 -0
  31. package/dist/tests/playwrightDownload.test.d.ts.map +1 -0
  32. package/dist/tests/playwrightDownload.test.js +131 -0
  33. package/dist/tests/playwrightDownload.test.js.map +1 -0
  34. package/package.json +1 -2
  35. package/dist/scripts/encryptFile.d.ts +0 -21
  36. package/dist/scripts/encryptFile.d.ts.map +0 -1
  37. package/dist/scripts/encryptFile.js +0 -101
  38. package/dist/scripts/encryptFile.js.map +0 -1
  39. package/dist/src/browserState.d.ts +0 -8
  40. package/dist/src/browserState.d.ts.map +0 -1
  41. package/dist/src/browserState.js +0 -21
  42. package/dist/src/browserState.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/services/base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/services/base.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { describe, it, expect, beforeEach, afterEach, vi } from 'vitest';
2
- import { mkdtempSync, rmSync, existsSync } from 'node:fs';
2
+ import { mkdtempSync, rmSync, existsSync, writeFileSync } from 'node:fs';
3
3
  import { join } from 'node:path';
4
4
  import { tmpdir } from 'node:os';
5
5
  import { execSync } from 'node:child_process';
@@ -117,6 +117,7 @@ describe('CLI commands with dependency injection', () => {
117
117
  return {
118
118
  credentialStorePath: overrides.credentialStorePath ?? join(tempDir, 'credentials.json'),
119
119
  browserStatePath: overrides.browserStatePath ?? join(tempDir, 'browser_state.json'),
120
+ configPath: overrides.configPath ?? join(tempDir, 'config.json'),
120
121
  curlCommand: overrides.curlCommand ?? defaultConfig.curlCommand,
121
122
  encryptionKeyOverride: overrides.encryptionKeyOverride ?? TEST_ENCRYPTION_KEY,
122
123
  serviceName: overrides.serviceName ?? defaultConfig.serviceName,
@@ -422,7 +423,19 @@ describe('CLI commands with dependency injection', () => {
422
423
  it('should call login when no credentials in store', async () => {
423
424
  const storePath = join(tempDir, 'credentials.json');
424
425
  const browserStatePath = join(tempDir, 'browser_state.json');
426
+ const configPath = join(tempDir, 'config.json');
427
+ const fakeBrowserPath = join(tempDir, 'fake-browser');
425
428
  writeSecureFile(storePath, '{}');
429
+ // Create a fake browser executable so loadBrowserConfig validation passes
430
+ writeFileSync(fakeBrowserPath, '#!/bin/sh\necho fake', { mode: 0o755 });
431
+ // Create a config file so the command doesn't fail
432
+ writeFileSync(configPath, JSON.stringify({
433
+ browser: {
434
+ executablePath: fakeBrowserPath,
435
+ source: 'system',
436
+ discoveredAt: new Date().toISOString(),
437
+ },
438
+ }), { mode: 0o600 });
426
439
  const mockLogin = vi
427
440
  .fn()
428
441
  .mockResolvedValue(new SlackApiCredentials('new-token', 'new-cookie'));
@@ -436,10 +449,10 @@ describe('CLI commands with dependency injection', () => {
436
449
  };
437
450
  const deps = createMockDependencies({
438
451
  registry: new Registry([mockSlackService]),
439
- config: createMockConfig({ credentialStorePath: storePath, browserStatePath }),
452
+ config: createMockConfig({ credentialStorePath: storePath, browserStatePath, configPath }),
440
453
  });
441
454
  await runCommand(['curl', 'https://slack.com/api/test'], deps);
442
- expect(mockLogin).toHaveBeenCalledWith(expect.any(EncryptedStorage), browserStatePath);
455
+ expect(mockLogin).toHaveBeenCalledWith(expect.any(EncryptedStorage), expect.any(Object));
443
456
  expect(capturedArgs).toContain('Authorization: Bearer new-token');
444
457
  });
445
458
  });
@@ -1 +1 @@
1
- {"version":3,"file":"cli.test.js","sourceRoot":"","sources":["../../tests/cli.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.test.js","sourceRoot":"","sources":["../../tests/cli.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=playwrightDownload.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"playwrightDownload.test.d.ts","sourceRoot":"","sources":["../../tests/playwrightDownload.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,131 @@
1
+ import { describe, it, expect, beforeEach, afterEach } from 'vitest';
2
+ import { mkdtempSync, rmSync, writeFileSync, existsSync, statSync } from 'node:fs';
3
+ import { tmpdir, platform } from 'node:os';
4
+ import { join } from 'node:path';
5
+ import { getChromiumExecutable, downloadFile, extractZip, setExecutablePermissions, BrowserDownloadError, BrowserExtractionError, } from '../src/playwrightDownload.js';
6
+ describe('playwrightDownload', () => {
7
+ describe('getChromiumExecutable', () => {
8
+ it('should return Chromium executable info from Playwright registry', () => {
9
+ const executable = getChromiumExecutable();
10
+ expect(executable).toBeDefined();
11
+ expect(executable.name).toBe('chromium');
12
+ expect(executable.directory).toBeDefined();
13
+ expect(typeof executable.directory).toBe('string');
14
+ expect(executable.executablePath.bind(executable)).toBeDefined();
15
+ expect(typeof executable.executablePath).toBe('function');
16
+ });
17
+ it('should return download URLs for Chromium', () => {
18
+ const executable = getChromiumExecutable();
19
+ expect(executable.downloadURLs).toBeDefined();
20
+ expect(Array.isArray(executable.downloadURLs)).toBe(true);
21
+ expect(executable.downloadURLs.length).toBeGreaterThan(0);
22
+ // Each URL should be a valid HTTPS URL
23
+ for (const url of executable.downloadURLs) {
24
+ expect(url).toMatch(/^https:\/\//);
25
+ expect(url).toContain('chromium');
26
+ }
27
+ });
28
+ it('should return an executable path function', () => {
29
+ const executable = getChromiumExecutable();
30
+ const path = executable.executablePath('javascript');
31
+ expect(path).toBeDefined();
32
+ expect(typeof path).toBe('string');
33
+ expect(path.length).toBeGreaterThan(0);
34
+ });
35
+ });
36
+ describe('downloadFile', () => {
37
+ let tempDir;
38
+ beforeEach(() => {
39
+ tempDir = mkdtempSync(join(tmpdir(), 'latchkey-download-test-'));
40
+ });
41
+ afterEach(() => {
42
+ rmSync(tempDir, { recursive: true, force: true });
43
+ });
44
+ it('should download a file from HTTPS URL', async () => {
45
+ const destinationPath = join(tempDir, 'test-file.txt');
46
+ // Use a small, reliable test URL
47
+ await downloadFile('https://httpbin.org/robots.txt', destinationPath);
48
+ expect(existsSync(destinationPath)).toBe(true);
49
+ const stats = statSync(destinationPath);
50
+ expect(stats.size).toBeGreaterThan(0);
51
+ }, 30000);
52
+ it('should throw BrowserDownloadError for non-existent URL', async () => {
53
+ const destinationPath = join(tempDir, 'test-file.txt');
54
+ await expect(downloadFile('https://httpbin.org/status/404', destinationPath)).rejects.toThrow(BrowserDownloadError);
55
+ }, 30000);
56
+ it('should create parent directories if they do not exist', async () => {
57
+ const nestedPath = join(tempDir, 'nested', 'directory', 'test-file.txt');
58
+ await downloadFile('https://httpbin.org/robots.txt', nestedPath);
59
+ expect(existsSync(nestedPath)).toBe(true);
60
+ }, 30000);
61
+ it('should handle redirects', async () => {
62
+ const destinationPath = join(tempDir, 'redirected-file.txt');
63
+ // httpbin.org/redirect-to redirects to the specified URL
64
+ await downloadFile('https://httpbin.org/redirect-to?url=https%3A%2F%2Fhttpbin.org%2Frobots.txt', destinationPath);
65
+ expect(existsSync(destinationPath)).toBe(true);
66
+ }, 30000);
67
+ });
68
+ describe('extractZip', () => {
69
+ let tempDir;
70
+ beforeEach(() => {
71
+ tempDir = mkdtempSync(join(tmpdir(), 'latchkey-extract-test-'));
72
+ });
73
+ afterEach(() => {
74
+ rmSync(tempDir, { recursive: true, force: true });
75
+ });
76
+ it('should create destination directory if it does not exist', async () => {
77
+ const destinationDir = join(tempDir, 'non-existent-dir');
78
+ // This will fail because there's no valid zip, but the directory should be created
79
+ try {
80
+ await extractZip(join(tempDir, 'fake.zip'), destinationDir);
81
+ }
82
+ catch {
83
+ // Expected to fail, but directory should exist
84
+ }
85
+ expect(existsSync(destinationDir)).toBe(true);
86
+ });
87
+ });
88
+ describe('setExecutablePermissions', () => {
89
+ let tempDir;
90
+ beforeEach(() => {
91
+ tempDir = mkdtempSync(join(tmpdir(), 'latchkey-permissions-test-'));
92
+ });
93
+ afterEach(() => {
94
+ rmSync(tempDir, { recursive: true, force: true });
95
+ });
96
+ it('should set executable permissions on a file (non-Windows)', () => {
97
+ if (platform() === 'win32') {
98
+ // Skip on Windows as file permissions work differently
99
+ return;
100
+ }
101
+ const filePath = join(tempDir, 'test-executable');
102
+ writeFileSync(filePath, '#!/bin/sh\necho "test"', { mode: 0o644 });
103
+ setExecutablePermissions(filePath);
104
+ const stats = statSync(filePath);
105
+ // Check that the file is executable (at least owner execute bit)
106
+ expect(stats.mode & 0o100).toBe(0o100);
107
+ });
108
+ it('should not throw if file does not exist', () => {
109
+ const nonExistentPath = join(tempDir, 'non-existent-file');
110
+ // Should not throw
111
+ expect(() => {
112
+ setExecutablePermissions(nonExistentPath);
113
+ }).not.toThrow();
114
+ });
115
+ });
116
+ describe('error classes', () => {
117
+ it('BrowserDownloadError should have correct name', () => {
118
+ const error = new BrowserDownloadError('test message');
119
+ expect(error.name).toBe('BrowserDownloadError');
120
+ expect(error.message).toBe('test message');
121
+ expect(error instanceof Error).toBe(true);
122
+ });
123
+ it('BrowserExtractionError should have correct name', () => {
124
+ const error = new BrowserExtractionError('test message');
125
+ expect(error.name).toBe('BrowserExtractionError');
126
+ expect(error.message).toBe('test message');
127
+ expect(error instanceof Error).toBe(true);
128
+ });
129
+ });
130
+ });
131
+ //# sourceMappingURL=playwrightDownload.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"playwrightDownload.test.js","sourceRoot":"","sources":["../../tests/playwrightDownload.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "latchkey",
3
- "version": "0.1.3",
3
+ "version": "0.1.4",
4
4
  "description": "A CLI tool that injects API credentials into curl requests for known third-party services",
5
5
  "author": "Imbue <hynek@imbue.com>",
6
6
  "repository": {
@@ -23,7 +23,6 @@
23
23
  "LICENSE"
24
24
  ],
25
25
  "scripts": {
26
- "postinstall": "npx playwright install chromium",
27
26
  "prepublishOnly": "npm run build",
28
27
  "build": "tsc",
29
28
  "dev": "tsc --watch",
@@ -1,21 +0,0 @@
1
- #!/usr/bin/env npx tsx
2
- /**
3
- * CLI tool for encrypting and decrypting latchkey files.
4
- *
5
- * This is a developer utility for inspecting and modifying encrypted
6
- * credential and browser state files.
7
- *
8
- * Usage:
9
- * npx tsx scripts/encryptFile.ts decrypt <file> # Decrypt file to stdout
10
- * npx tsx scripts/encryptFile.ts encrypt <file> # Encrypt file in place
11
- *
12
- * The encryption key is sourced from:
13
- * 1. LATCHKEY_ENCRYPTION_KEY environment variable
14
- * 2. System keychain
15
- *
16
- * Examples:
17
- * npx tsx scripts/encryptFile.ts decrypt ~/.latchkey/credentials.json
18
- * npx tsx scripts/encryptFile.ts encrypt ~/.latchkey/credentials.json
19
- */
20
- export {};
21
- //# sourceMappingURL=encryptFile.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"encryptFile.d.ts","sourceRoot":"","sources":["../../scripts/encryptFile.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;GAiBG"}
@@ -1,101 +0,0 @@
1
- #!/usr/bin/env npx tsx
2
- /**
3
- * CLI tool for encrypting and decrypting latchkey files.
4
- *
5
- * This is a developer utility for inspecting and modifying encrypted
6
- * credential and browser state files.
7
- *
8
- * Usage:
9
- * npx tsx scripts/encryptFile.ts decrypt <file> # Decrypt file to stdout
10
- * npx tsx scripts/encryptFile.ts encrypt <file> # Encrypt file in place
11
- *
12
- * The encryption key is sourced from:
13
- * 1. LATCHKEY_ENCRYPTION_KEY environment variable
14
- * 2. System keychain
15
- *
16
- * Examples:
17
- * npx tsx scripts/encryptFile.ts decrypt ~/.latchkey/credentials.json
18
- * npx tsx scripts/encryptFile.ts encrypt ~/.latchkey/credentials.json
19
- */
20
- import { program } from 'commander';
21
- import { existsSync, readFileSync, writeFileSync } from 'node:fs';
22
- import { CONFIG } from '../src/config.js';
23
- import { EncryptedStorage } from '../src/encryptedStorage.js';
24
- import { encrypt, generateKey } from '../src/encryption.js';
25
- import { isKeychainAvailable, retrieveFromKeychain } from '../src/keychain.js';
26
- const ENCRYPTED_FILE_PREFIX = 'LATCHKEY_ENCRYPTED:';
27
- function getEncryptionKey() {
28
- // 1. Check environment variable via Config
29
- if (CONFIG.encryptionKeyOverride) {
30
- return CONFIG.encryptionKeyOverride;
31
- }
32
- // 2. Check keychain
33
- if (isKeychainAvailable(CONFIG.serviceName, CONFIG.accountName)) {
34
- const keychainKey = retrieveFromKeychain(CONFIG.serviceName, CONFIG.accountName);
35
- if (keychainKey) {
36
- return keychainKey;
37
- }
38
- }
39
- console.error(`\
40
- Error: No encryption key available.
41
- Set LATCHKEY_ENCRYPTION_KEY or ensure the system keychain has a stored key.
42
-
43
- To generate a new key:
44
- export LATCHKEY_ENCRYPTION_KEY="${generateKey()}"`);
45
- process.exit(1);
46
- }
47
- function decryptCommand(filePath) {
48
- if (!existsSync(filePath)) {
49
- console.error(`Error: File not found: ${filePath}`);
50
- process.exit(1);
51
- }
52
- const storage = new EncryptedStorage({
53
- serviceName: CONFIG.serviceName,
54
- accountName: CONFIG.accountName,
55
- });
56
- const content = storage.readFile(filePath);
57
- if (content === null) {
58
- console.error(`Error: Could not read file: ${filePath}`);
59
- process.exit(1);
60
- }
61
- // Output to stdout
62
- process.stdout.write(content);
63
- }
64
- function encryptCommand(filePath) {
65
- if (!existsSync(filePath)) {
66
- console.error(`Error: File not found: ${filePath}`);
67
- process.exit(1);
68
- }
69
- const content = readFileSync(filePath, 'utf-8');
70
- if (content.startsWith(ENCRYPTED_FILE_PREFIX)) {
71
- console.error(`Error: File is already encrypted: ${filePath}`);
72
- process.exit(1);
73
- }
74
- const key = getEncryptionKey();
75
- const encryptedData = encrypt(content, key);
76
- const dataToWrite = ENCRYPTED_FILE_PREFIX + encryptedData;
77
- writeFileSync(filePath, dataToWrite, { encoding: 'utf-8', mode: 0o600 });
78
- console.error(`Encrypted: ${filePath}`);
79
- }
80
- program.name('encryptFile').description(`\
81
- CLI tool for encrypting and decrypting latchkey files.
82
-
83
- The encryption key is sourced from:
84
- 1. LATCHKEY_ENCRYPTION_KEY environment variable
85
- 2. System keychain`);
86
- program
87
- .command('decrypt')
88
- .description('Decrypt file and print to stdout')
89
- .argument('<file>', 'Path to the encrypted file')
90
- .action((filePath) => {
91
- decryptCommand(filePath);
92
- });
93
- program
94
- .command('encrypt')
95
- .description('Encrypt an unencrypted file in place')
96
- .argument('<file>', 'Path to the file to encrypt')
97
- .action((filePath) => {
98
- encryptCommand(filePath);
99
- });
100
- program.parse();
101
- //# sourceMappingURL=encryptFile.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"encryptFile.js","sourceRoot":"","sources":["../../scripts/encryptFile.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- /**
2
- * Browser state management utilities.
3
- */
4
- /**
5
- * Get the browser state path from the LATCHKEY_BROWSER_STATE environment variable.
6
- */
7
- export declare function getBrowserStatePath(): string | null;
8
- //# sourceMappingURL=browserState.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"browserState.d.ts","sourceRoot":"","sources":["../../src/browserState.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,GAAG,IAAI,CAUnD"}
@@ -1,21 +0,0 @@
1
- /**
2
- * Browser state management utilities.
3
- */
4
- import { homedir } from 'node:os';
5
- import { resolve } from 'node:path';
6
- const LATCHKEY_BROWSER_STATE_ENV_VAR = 'LATCHKEY_BROWSER_STATE';
7
- /**
8
- * Get the browser state path from the LATCHKEY_BROWSER_STATE environment variable.
9
- */
10
- export function getBrowserStatePath() {
11
- const envValue = process.env[LATCHKEY_BROWSER_STATE_ENV_VAR];
12
- if (envValue) {
13
- // Expand ~ to home directory
14
- if (envValue.startsWith('~')) {
15
- return resolve(homedir(), envValue.slice(2));
16
- }
17
- return resolve(envValue);
18
- }
19
- return null;
20
- }
21
- //# sourceMappingURL=browserState.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"browserState.js","sourceRoot":"","sources":["../../src/browserState.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,8BAA8B,GAAG,wBAAwB,CAAC;AAEhE;;GAEG;AACH,MAAM,UAAU,mBAAmB;IACjC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;IAC7D,IAAI,QAAQ,EAAE,CAAC;QACb,6BAA6B;QAC7B,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,OAAO,OAAO,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}