latchkey 2.7.2 → 2.8.0

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 (107) hide show
  1. package/README.md +49 -5
  2. package/dist/scripts/cryptFile.js +2 -2
  3. package/dist/scripts/cryptFile.js.map +1 -1
  4. package/dist/scripts/recordBrowserSession.js +3 -2
  5. package/dist/scripts/recordBrowserSession.js.map +1 -1
  6. package/dist/src/cli.js +5 -4
  7. package/dist/src/cli.js.map +1 -1
  8. package/dist/src/cliCommands.d.ts.map +1 -1
  9. package/dist/src/cliCommands.js +44 -6
  10. package/dist/src/cliCommands.js.map +1 -1
  11. package/dist/src/config.d.ts +29 -0
  12. package/dist/src/config.d.ts.map +1 -1
  13. package/dist/src/config.js +45 -0
  14. package/dist/src/config.js.map +1 -1
  15. package/dist/src/encryptedStorage.d.ts +9 -25
  16. package/dist/src/encryptedStorage.d.ts.map +1 -1
  17. package/dist/src/encryptedStorage.js +9 -52
  18. package/dist/src/encryptedStorage.js.map +1 -1
  19. package/dist/src/encryption.d.ts +45 -0
  20. package/dist/src/encryption.d.ts.map +1 -1
  21. package/dist/src/encryption.js +69 -0
  22. package/dist/src/encryption.js.map +1 -1
  23. package/dist/src/gateway/client.d.ts +12 -2
  24. package/dist/src/gateway/client.d.ts.map +1 -1
  25. package/dist/src/gateway/client.js +31 -4
  26. package/dist/src/gateway/client.js.map +1 -1
  27. package/dist/src/gateway/gatewayEndpoint.d.ts +11 -0
  28. package/dist/src/gateway/gatewayEndpoint.d.ts.map +1 -1
  29. package/dist/src/gateway/gatewayEndpoint.js +40 -4
  30. package/dist/src/gateway/gatewayEndpoint.js.map +1 -1
  31. package/dist/src/gateway/password.d.ts +16 -0
  32. package/dist/src/gateway/password.d.ts.map +1 -0
  33. package/dist/src/gateway/password.js +24 -0
  34. package/dist/src/gateway/password.js.map +1 -0
  35. package/dist/src/gateway/permissionPointer.d.ts +56 -0
  36. package/dist/src/gateway/permissionPointer.d.ts.map +1 -0
  37. package/dist/src/gateway/permissionPointer.js +171 -0
  38. package/dist/src/gateway/permissionPointer.js.map +1 -0
  39. package/dist/src/gateway/permissionsOverride.d.ts +56 -0
  40. package/dist/src/gateway/permissionsOverride.d.ts.map +1 -0
  41. package/dist/src/gateway/permissionsOverride.js +157 -0
  42. package/dist/src/gateway/permissionsOverride.js.map +1 -0
  43. package/dist/src/gateway/server.d.ts.map +1 -1
  44. package/dist/src/gateway/server.js +34 -1
  45. package/dist/src/gateway/server.js.map +1 -1
  46. package/dist/src/index.d.ts +2 -2
  47. package/dist/src/index.d.ts.map +1 -1
  48. package/dist/src/index.js +2 -2
  49. package/dist/src/index.js.map +1 -1
  50. package/dist/src/oauthUtils.d.ts +11 -2
  51. package/dist/src/oauthUtils.d.ts.map +1 -1
  52. package/dist/src/oauthUtils.js +25 -4
  53. package/dist/src/oauthUtils.js.map +1 -1
  54. package/dist/src/serviceRegistry.d.ts.map +1 -1
  55. package/dist/src/serviceRegistry.js +2 -1
  56. package/dist/src/serviceRegistry.js.map +1 -1
  57. package/dist/src/services/index.d.ts +1 -0
  58. package/dist/src/services/index.d.ts.map +1 -1
  59. package/dist/src/services/index.js +1 -0
  60. package/dist/src/services/index.js.map +1 -1
  61. package/dist/src/services/notion-mcp.d.ts +29 -0
  62. package/dist/src/services/notion-mcp.d.ts.map +1 -0
  63. package/dist/src/services/notion-mcp.js +156 -0
  64. package/dist/src/services/notion-mcp.js.map +1 -0
  65. package/dist/src/services/notion.d.ts +1 -1
  66. package/dist/src/services/notion.d.ts.map +1 -1
  67. package/dist/src/services/notion.js +5 -4
  68. package/dist/src/services/notion.js.map +1 -1
  69. package/dist/src/version.d.ts +1 -1
  70. package/dist/src/version.js +1 -1
  71. package/dist/tests/apiCredentialStore.test.js +2 -2
  72. package/dist/tests/apiCredentialStore.test.js.map +1 -1
  73. package/dist/tests/cli.test.js +95 -53
  74. package/dist/tests/cli.test.js.map +1 -1
  75. package/dist/tests/config.test.js +37 -0
  76. package/dist/tests/config.test.js.map +1 -1
  77. package/dist/tests/encryptedStorage.test.js +19 -39
  78. package/dist/tests/encryptedStorage.test.js.map +1 -1
  79. package/dist/tests/encryptedStorageKeyGeneration.test.js +2 -1
  80. package/dist/tests/encryptedStorageKeyGeneration.test.js.map +1 -1
  81. package/dist/tests/gateway.test.js +170 -7
  82. package/dist/tests/gateway.test.js.map +1 -1
  83. package/dist/tests/gatewayClient.test.js +74 -0
  84. package/dist/tests/gatewayClient.test.js.map +1 -1
  85. package/dist/tests/latchkeyEndpoint.test.js +7 -6
  86. package/dist/tests/latchkeyEndpoint.test.js.map +1 -1
  87. package/dist/tests/migrations.test.js +2 -2
  88. package/dist/tests/migrations.test.js.map +1 -1
  89. package/dist/tests/oauthUtils.test.d.ts +2 -0
  90. package/dist/tests/oauthUtils.test.d.ts.map +1 -0
  91. package/dist/tests/oauthUtils.test.js +63 -0
  92. package/dist/tests/oauthUtils.test.js.map +1 -0
  93. package/dist/tests/permissionPointer.test.d.ts +2 -0
  94. package/dist/tests/permissionPointer.test.d.ts.map +1 -0
  95. package/dist/tests/permissionPointer.test.js +152 -0
  96. package/dist/tests/permissionPointer.test.js.map +1 -0
  97. package/dist/tests/permissionsOverride.test.d.ts +2 -0
  98. package/dist/tests/permissionsOverride.test.d.ts.map +1 -0
  99. package/dist/tests/permissionsOverride.test.js +136 -0
  100. package/dist/tests/permissionsOverride.test.js.map +1 -0
  101. package/dist/tests/resolveEncryptionKey.test.d.ts +2 -0
  102. package/dist/tests/resolveEncryptionKey.test.d.ts.map +1 -0
  103. package/dist/tests/resolveEncryptionKey.test.js +26 -0
  104. package/dist/tests/resolveEncryptionKey.test.js.map +1 -0
  105. package/dist/tests/sharedOperations.test.js +34 -50
  106. package/dist/tests/sharedOperations.test.js.map +1 -1
  107. package/package.json +2 -2
@@ -13,8 +13,8 @@ import { Config } from '../src/config.js';
13
13
  import { servicesList, servicesInfo, authList, authBrowser, authBrowserPrepare, UnknownServiceError, PreparationRequiredError, } from '../src/sharedOperations.js';
14
14
  import { BrowserFlowsNotSupportedError } from '../src/playwrightUtils.js';
15
15
  const TEST_ENCRYPTION_KEY = 'dGVzdGtleXRlc3RrZXl0ZXN0a2V5dGVzdGtleXRlc3Q=';
16
- async function writeSecureFile(path, content) {
17
- const storage = await EncryptedStorage.create({ encryptionKeyOverride: TEST_ENCRYPTION_KEY });
16
+ function writeSecureFile(path, content) {
17
+ const storage = new EncryptedStorage(TEST_ENCRYPTION_KEY);
18
18
  storage.writeFile(path, content);
19
19
  }
20
20
  function createMockService(overrides = {}) {
@@ -51,49 +51,47 @@ describe('operations', () => {
51
51
  afterEach(() => {
52
52
  rmSync(tempDir, { recursive: true, force: true });
53
53
  });
54
- async function createApiCredentialStore(credentialsData = {}) {
54
+ function createApiCredentialStore(credentialsData = {}) {
55
55
  const storePath = join(tempDir, 'credentials.json');
56
- await writeSecureFile(storePath, JSON.stringify(credentialsData));
57
- const encryptedStorage = await EncryptedStorage.create({
58
- encryptionKeyOverride: TEST_ENCRYPTION_KEY,
59
- });
56
+ writeSecureFile(storePath, JSON.stringify(credentialsData));
57
+ const encryptedStorage = new EncryptedStorage(TEST_ENCRYPTION_KEY);
60
58
  return new ApiCredentialStore(storePath, encryptedStorage);
61
59
  }
62
60
  describe('servicesList', () => {
63
- it('should return sorted service names', async () => {
61
+ it('should return sorted service names', () => {
64
62
  const serviceA = createMockService({ name: 'zzz-service' });
65
63
  const serviceB = createMockService({ name: 'aaa-service' });
66
64
  const registry = new ServiceRegistry([serviceA, serviceB]);
67
- const store = await createApiCredentialStore();
65
+ const store = createApiCredentialStore();
68
66
  const config = createMockConfig();
69
67
  const result = servicesList(registry, store, config, {});
70
68
  expect(result).toEqual(['aaa-service', 'zzz-service']);
71
69
  });
72
- it('should filter to builtin services only', async () => {
70
+ it('should filter to builtin services only', () => {
73
71
  const builtinService = createMockService({ name: 'slack' });
74
72
  const registeredService = new RegisteredService('my-gitlab', 'https://gitlab.example.com');
75
73
  const registry = new ServiceRegistry([builtinService]);
76
74
  registry.addService(registeredService);
77
- const store = await createApiCredentialStore();
75
+ const store = createApiCredentialStore();
78
76
  const config = createMockConfig();
79
77
  const result = servicesList(registry, store, config, { builtin: true });
80
78
  expect(result).toContain('slack');
81
79
  expect(result).not.toContain('my-gitlab');
82
80
  });
83
- it('should filter to viable services with stored credentials', async () => {
81
+ it('should filter to viable services with stored credentials', () => {
84
82
  const service = createMockService({ name: 'slack', getSession: undefined });
85
83
  const registry = new ServiceRegistry([service]);
86
- const store = await createApiCredentialStore({
84
+ const store = createApiCredentialStore({
87
85
  slack: { objectType: 'slack', token: 'test-token', dCookie: 'test-cookie' },
88
86
  });
89
87
  const config = createMockConfig({ browserDisabled: true });
90
88
  const result = servicesList(registry, store, config, { viable: true });
91
89
  expect(result).toContain('slack');
92
90
  });
93
- it('should exclude non-viable services without credentials or browser', async () => {
91
+ it('should exclude non-viable services without credentials or browser', () => {
94
92
  const service = createMockService({ name: 'nologin', getSession: undefined });
95
93
  const registry = new ServiceRegistry([service]);
96
- const store = await createApiCredentialStore({});
94
+ const store = createApiCredentialStore({});
97
95
  const config = createMockConfig();
98
96
  const result = servicesList(registry, store, config, { viable: true });
99
97
  expect(result).not.toContain('nologin');
@@ -103,7 +101,7 @@ describe('operations', () => {
103
101
  it('should return service info', async () => {
104
102
  const service = createMockService();
105
103
  const registry = new ServiceRegistry([service]);
106
- const store = await createApiCredentialStore();
104
+ const store = createApiCredentialStore();
107
105
  const config = createMockConfig();
108
106
  const info = await servicesInfo(registry, store, config, 'slack');
109
107
  expect(info.type).toBe('built-in');
@@ -115,14 +113,14 @@ describe('operations', () => {
115
113
  });
116
114
  it('should throw UnknownServiceError for unknown service', async () => {
117
115
  const registry = new ServiceRegistry([]);
118
- const store = await createApiCredentialStore();
116
+ const store = createApiCredentialStore();
119
117
  const config = createMockConfig();
120
118
  await expect(servicesInfo(registry, store, config, 'unknown')).rejects.toThrow(UnknownServiceError);
121
119
  });
122
120
  it('should exclude browser from authOptions when browser disabled', async () => {
123
121
  const service = createMockService();
124
122
  const registry = new ServiceRegistry([service]);
125
- const store = await createApiCredentialStore();
123
+ const store = createApiCredentialStore();
126
124
  const config = createMockConfig({ browserDisabled: true });
127
125
  const info = await servicesInfo(registry, store, config, 'slack');
128
126
  expect(info.authOptions).toEqual(['set']);
@@ -131,7 +129,7 @@ describe('operations', () => {
131
129
  const registeredService = new RegisteredService('my-gitlab', 'https://gitlab.example.com');
132
130
  const registry = new ServiceRegistry([]);
133
131
  registry.addService(registeredService);
134
- const store = await createApiCredentialStore();
132
+ const store = createApiCredentialStore();
135
133
  const config = createMockConfig();
136
134
  const info = await servicesInfo(registry, store, config, 'my-gitlab');
137
135
  expect(info.type).toBe('user-registered');
@@ -141,7 +139,7 @@ describe('operations', () => {
141
139
  it('should return stored credentials with status', async () => {
142
140
  const service = createMockService();
143
141
  const registry = new ServiceRegistry([service]);
144
- const store = await createApiCredentialStore({
142
+ const store = createApiCredentialStore({
145
143
  slack: { objectType: 'slack', token: 'test-token', dCookie: 'test-cookie' },
146
144
  });
147
145
  const result = await authList(registry, store);
@@ -152,13 +150,13 @@ describe('operations', () => {
152
150
  });
153
151
  it('should return empty object when no credentials stored', async () => {
154
152
  const registry = new ServiceRegistry([]);
155
- const store = await createApiCredentialStore({});
153
+ const store = createApiCredentialStore({});
156
154
  const result = await authList(registry, store);
157
155
  expect(Object.keys(result)).toHaveLength(0);
158
156
  });
159
157
  it('should treat unknown services as valid', async () => {
160
158
  const registry = new ServiceRegistry([]);
161
- const store = await createApiCredentialStore({
159
+ const store = createApiCredentialStore({
162
160
  unknown: { objectType: 'rawCurl', curlArguments: ['-H', 'X-Token: secret'] },
163
161
  });
164
162
  const result = await authList(registry, store);
@@ -171,20 +169,16 @@ describe('operations', () => {
171
169
  describe('authBrowser', () => {
172
170
  it('should throw UnknownServiceError for unknown service', async () => {
173
171
  const registry = new ServiceRegistry([]);
174
- const store = await createApiCredentialStore();
175
- const encryptedStorage = await EncryptedStorage.create({
176
- encryptionKeyOverride: TEST_ENCRYPTION_KEY,
177
- });
172
+ const store = createApiCredentialStore();
173
+ const encryptedStorage = new EncryptedStorage(TEST_ENCRYPTION_KEY);
178
174
  const config = createMockConfig();
179
175
  await expect(authBrowser(registry, store, encryptedStorage, config, 'unknown')).rejects.toThrow(UnknownServiceError);
180
176
  });
181
177
  it('should throw BrowserFlowsNotSupportedError when service has no browser support', async () => {
182
178
  const service = createMockService({ getSession: undefined });
183
179
  const registry = new ServiceRegistry([service]);
184
- const store = await createApiCredentialStore();
185
- const encryptedStorage = await EncryptedStorage.create({
186
- encryptionKeyOverride: TEST_ENCRYPTION_KEY,
187
- });
180
+ const store = createApiCredentialStore();
181
+ const encryptedStorage = new EncryptedStorage(TEST_ENCRYPTION_KEY);
188
182
  const config = createMockConfig();
189
183
  await expect(authBrowser(registry, store, encryptedStorage, config, 'slack')).rejects.toThrow(BrowserFlowsNotSupportedError);
190
184
  });
@@ -196,10 +190,8 @@ describe('operations', () => {
196
190
  }),
197
191
  });
198
192
  const registry = new ServiceRegistry([service]);
199
- const store = await createApiCredentialStore({});
200
- const encryptedStorage = await EncryptedStorage.create({
201
- encryptionKeyOverride: TEST_ENCRYPTION_KEY,
202
- });
193
+ const store = createApiCredentialStore({});
194
+ const encryptedStorage = new EncryptedStorage(TEST_ENCRYPTION_KEY);
203
195
  const config = createMockConfig();
204
196
  await expect(authBrowser(registry, store, encryptedStorage, config, 'slack')).rejects.toThrow(PreparationRequiredError);
205
197
  });
@@ -207,10 +199,8 @@ describe('operations', () => {
207
199
  describe('authBrowserPrepare', () => {
208
200
  it('should throw UnknownServiceError for unknown service', async () => {
209
201
  const registry = new ServiceRegistry([]);
210
- const store = await createApiCredentialStore();
211
- const encryptedStorage = await EncryptedStorage.create({
212
- encryptionKeyOverride: TEST_ENCRYPTION_KEY,
213
- });
202
+ const store = createApiCredentialStore();
203
+ const encryptedStorage = new EncryptedStorage(TEST_ENCRYPTION_KEY);
214
204
  const config = createMockConfig();
215
205
  await expect(authBrowserPrepare(registry, store, encryptedStorage, config, 'unknown')).rejects.toThrow(UnknownServiceError);
216
206
  });
@@ -222,10 +212,8 @@ describe('operations', () => {
222
212
  }),
223
213
  });
224
214
  const registry = new ServiceRegistry([service]);
225
- const store = await createApiCredentialStore();
226
- const encryptedStorage = await EncryptedStorage.create({
227
- encryptionKeyOverride: TEST_ENCRYPTION_KEY,
228
- });
215
+ const store = createApiCredentialStore();
216
+ const encryptedStorage = new EncryptedStorage(TEST_ENCRYPTION_KEY);
229
217
  const config = createMockConfig();
230
218
  const result = await authBrowserPrepare(registry, store, encryptedStorage, config, 'slack');
231
219
  expect(result.alreadyPrepared).toBe(true);
@@ -238,12 +226,10 @@ describe('operations', () => {
238
226
  }),
239
227
  });
240
228
  const registry = new ServiceRegistry([service]);
241
- const store = await createApiCredentialStore({
229
+ const store = createApiCredentialStore({
242
230
  slack: { objectType: 'slack', token: 'test-token', dCookie: 'test-cookie' },
243
231
  });
244
- const encryptedStorage = await EncryptedStorage.create({
245
- encryptionKeyOverride: TEST_ENCRYPTION_KEY,
246
- });
232
+ const encryptedStorage = new EncryptedStorage(TEST_ENCRYPTION_KEY);
247
233
  const config = createMockConfig();
248
234
  const result = await authBrowserPrepare(registry, store, encryptedStorage, config, 'slack');
249
235
  expect(result.alreadyPrepared).toBe(true);
@@ -251,10 +237,8 @@ describe('operations', () => {
251
237
  it('should return alreadyPrepared true when service has no getSession', async () => {
252
238
  const service = createMockService({ getSession: undefined });
253
239
  const registry = new ServiceRegistry([service]);
254
- const store = await createApiCredentialStore();
255
- const encryptedStorage = await EncryptedStorage.create({
256
- encryptionKeyOverride: TEST_ENCRYPTION_KEY,
257
- });
240
+ const store = createApiCredentialStore();
241
+ const encryptedStorage = new EncryptedStorage(TEST_ENCRYPTION_KEY);
258
242
  const config = createMockConfig();
259
243
  const result = await authBrowserPrepare(registry, store, encryptedStorage, config, 'slack');
260
244
  expect(result.alreadyPrepared).toBe(true);
@@ -1 +1 @@
1
- {"version":3,"file":"sharedOperations.test.js","sourceRoot":"","sources":["../../tests/sharedOperations.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sharedOperations.test.js","sourceRoot":"","sources":["../../tests/sharedOperations.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "latchkey",
3
- "version": "2.7.2",
3
+ "version": "2.8.0",
4
4
  "description": "A CLI tool that injects API credentials into curl requests to third-party services",
5
5
  "author": "Imbue <hynek@imbue.com>",
6
6
  "repository": {
@@ -58,7 +58,7 @@
58
58
  "node": ">=20"
59
59
  },
60
60
  "dependencies": {
61
- "@imbue-ai/detent": "^1.1.5",
61
+ "@imbue-ai/detent": "^1.2.0",
62
62
  "@napi-rs/keyring": "^1.2.0",
63
63
  "commander": "^12.0.0",
64
64
  "playwright": "^1.58.2",