latchkey 3.14.0 → 3.16.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 (156) hide show
  1. package/README.md +10 -0
  2. package/dist/src/apiCredentials/base.d.ts +53 -5
  3. package/dist/src/apiCredentials/base.d.ts.map +1 -1
  4. package/dist/src/apiCredentials/base.js +43 -9
  5. package/dist/src/apiCredentials/base.js.map +1 -1
  6. package/dist/src/apiCredentials/serialization.d.ts +11 -139
  7. package/dist/src/apiCredentials/serialization.d.ts.map +1 -1
  8. package/dist/src/apiCredentials/serialization.js +53 -81
  9. package/dist/src/apiCredentials/serialization.js.map +1 -1
  10. package/dist/src/apiCredentials/store.d.ts +7 -2
  11. package/dist/src/apiCredentials/store.d.ts.map +1 -1
  12. package/dist/src/apiCredentials/store.js +18 -8
  13. package/dist/src/apiCredentials/store.js.map +1 -1
  14. package/dist/src/browserStateImport.d.ts +50 -0
  15. package/dist/src/browserStateImport.d.ts.map +1 -0
  16. package/dist/src/browserStateImport.js +260 -0
  17. package/dist/src/browserStateImport.js.map +1 -0
  18. package/dist/src/cli.js +13 -2
  19. package/dist/src/cli.js.map +1 -1
  20. package/dist/src/cliCommands.d.ts +15 -7
  21. package/dist/src/cliCommands.d.ts.map +1 -1
  22. package/dist/src/cliCommands.js +64 -16
  23. package/dist/src/cliCommands.js.map +1 -1
  24. package/dist/src/config.d.ts +10 -0
  25. package/dist/src/config.d.ts.map +1 -1
  26. package/dist/src/config.js +15 -0
  27. package/dist/src/config.js.map +1 -1
  28. package/dist/src/configDataStore.d.ts +3 -0
  29. package/dist/src/configDataStore.d.ts.map +1 -1
  30. package/dist/src/configDataStore.js +1 -0
  31. package/dist/src/configDataStore.js.map +1 -1
  32. package/dist/src/curlInjection.d.ts +2 -0
  33. package/dist/src/curlInjection.d.ts.map +1 -1
  34. package/dist/src/curlInjection.js +12 -6
  35. package/dist/src/curlInjection.js.map +1 -1
  36. package/dist/src/diagnosticHeaders.d.ts +19 -0
  37. package/dist/src/diagnosticHeaders.d.ts.map +1 -0
  38. package/dist/src/diagnosticHeaders.js +20 -0
  39. package/dist/src/diagnosticHeaders.js.map +1 -0
  40. package/dist/src/gateway/gatewayEndpoint.d.ts.map +1 -1
  41. package/dist/src/gateway/gatewayEndpoint.js +1 -0
  42. package/dist/src/gateway/gatewayEndpoint.js.map +1 -1
  43. package/dist/src/gateway/server.js +1 -1
  44. package/dist/src/gateway/server.js.map +1 -1
  45. package/dist/src/index.d.ts +3 -3
  46. package/dist/src/index.d.ts.map +1 -1
  47. package/dist/src/index.js +2 -2
  48. package/dist/src/index.js.map +1 -1
  49. package/dist/src/migrations.d.ts.map +1 -1
  50. package/dist/src/migrations.js +8 -8
  51. package/dist/src/migrations.js.map +1 -1
  52. package/dist/src/oauthUtils.d.ts +17 -0
  53. package/dist/src/oauthUtils.d.ts.map +1 -1
  54. package/dist/src/oauthUtils.js +22 -1
  55. package/dist/src/oauthUtils.js.map +1 -1
  56. package/dist/src/pluginSdk.d.ts +118 -0
  57. package/dist/src/pluginSdk.d.ts.map +1 -0
  58. package/dist/src/pluginSdk.js +98 -0
  59. package/dist/src/pluginSdk.js.map +1 -0
  60. package/dist/src/plugins.d.ts +74 -0
  61. package/dist/src/plugins.d.ts.map +1 -0
  62. package/dist/src/plugins.js +221 -0
  63. package/dist/src/plugins.js.map +1 -0
  64. package/dist/src/serviceRegistry.d.ts +2 -2
  65. package/dist/src/serviceRegistry.d.ts.map +1 -1
  66. package/dist/src/serviceRegistry.js +3 -3
  67. package/dist/src/serviceRegistry.js.map +1 -1
  68. package/dist/src/services/aws.d.ts +2 -1
  69. package/dist/src/services/aws.d.ts.map +1 -1
  70. package/dist/src/services/aws.js +4 -2
  71. package/dist/src/services/aws.js.map +1 -1
  72. package/dist/src/services/core/base.d.ts +53 -3
  73. package/dist/src/services/core/base.d.ts.map +1 -1
  74. package/dist/src/services/core/base.js +63 -3
  75. package/dist/src/services/core/base.js.map +1 -1
  76. package/dist/src/services/dropbox.d.ts.map +1 -1
  77. package/dist/src/services/dropbox.js +2 -2
  78. package/dist/src/services/dropbox.js.map +1 -1
  79. package/dist/src/services/fastmail.d.ts +4 -19
  80. package/dist/src/services/fastmail.d.ts.map +1 -1
  81. package/dist/src/services/fastmail.js +17 -22
  82. package/dist/src/services/fastmail.js.map +1 -1
  83. package/dist/src/services/google/base.d.ts +8 -3
  84. package/dist/src/services/google/base.d.ts.map +1 -1
  85. package/dist/src/services/google/base.js +23 -13
  86. package/dist/src/services/google/base.js.map +1 -1
  87. package/dist/src/services/index.d.ts +1 -1
  88. package/dist/src/services/index.d.ts.map +1 -1
  89. package/dist/src/services/index.js +1 -1
  90. package/dist/src/services/index.js.map +1 -1
  91. package/dist/src/services/notion-mcp.d.ts +16 -16
  92. package/dist/src/services/notion-mcp.d.ts.map +1 -1
  93. package/dist/src/services/notion-mcp.js +36 -21
  94. package/dist/src/services/notion-mcp.js.map +1 -1
  95. package/dist/src/services/ramp.d.ts.map +1 -1
  96. package/dist/src/services/ramp.js +2 -2
  97. package/dist/src/services/ramp.js.map +1 -1
  98. package/dist/src/services/slack.d.ts +2 -1
  99. package/dist/src/services/slack.d.ts.map +1 -1
  100. package/dist/src/services/slack.js +4 -2
  101. package/dist/src/services/slack.js.map +1 -1
  102. package/dist/src/services/tailscale.d.ts +2 -1
  103. package/dist/src/services/tailscale.d.ts.map +1 -1
  104. package/dist/src/services/tailscale.js +4 -2
  105. package/dist/src/services/tailscale.js.map +1 -1
  106. package/dist/src/services/telegram.d.ts +2 -1
  107. package/dist/src/services/telegram.d.ts.map +1 -1
  108. package/dist/src/services/telegram.js +4 -2
  109. package/dist/src/services/telegram.js.map +1 -1
  110. package/dist/src/services/zoom.d.ts +7 -5
  111. package/dist/src/services/zoom.d.ts.map +1 -1
  112. package/dist/src/services/zoom.js +11 -8
  113. package/dist/src/services/zoom.js.map +1 -1
  114. package/dist/src/version.d.ts +1 -1
  115. package/dist/src/version.js +1 -1
  116. package/dist/tests/apiCredentialStore.test.js +54 -1
  117. package/dist/tests/apiCredentialStore.test.js.map +1 -1
  118. package/dist/tests/apiCredentials.test.js +73 -12
  119. package/dist/tests/apiCredentials.test.js.map +1 -1
  120. package/dist/tests/browserStateImport.test.d.ts +2 -0
  121. package/dist/tests/browserStateImport.test.d.ts.map +1 -0
  122. package/dist/tests/browserStateImport.test.js +88 -0
  123. package/dist/tests/browserStateImport.test.js.map +1 -0
  124. package/dist/tests/cli.test.js +33 -1
  125. package/dist/tests/cli.test.js.map +1 -1
  126. package/dist/tests/config.test.js +7 -0
  127. package/dist/tests/config.test.js.map +1 -1
  128. package/dist/tests/diagnosticHeaders.test.d.ts +2 -0
  129. package/dist/tests/diagnosticHeaders.test.d.ts.map +1 -0
  130. package/dist/tests/diagnosticHeaders.test.js +22 -0
  131. package/dist/tests/diagnosticHeaders.test.js.map +1 -0
  132. package/dist/tests/followupFailureRecovery.test.d.ts +11 -0
  133. package/dist/tests/followupFailureRecovery.test.d.ts.map +1 -0
  134. package/dist/tests/followupFailureRecovery.test.js +101 -0
  135. package/dist/tests/followupFailureRecovery.test.js.map +1 -0
  136. package/dist/tests/gateway.test.js +25 -4
  137. package/dist/tests/gateway.test.js.map +1 -1
  138. package/dist/tests/gatewayExtensions.test.js +5 -2
  139. package/dist/tests/gatewayExtensions.test.js.map +1 -1
  140. package/dist/tests/latchkeyEndpoint.test.js +8 -6
  141. package/dist/tests/latchkeyEndpoint.test.js.map +1 -1
  142. package/dist/tests/notion-mcp.test.d.ts +2 -0
  143. package/dist/tests/notion-mcp.test.d.ts.map +1 -0
  144. package/dist/tests/notion-mcp.test.js +16 -0
  145. package/dist/tests/notion-mcp.test.js.map +1 -0
  146. package/dist/tests/oauthUtils.test.js +23 -1
  147. package/dist/tests/oauthUtils.test.js.map +1 -1
  148. package/dist/tests/plugins.test.d.ts +2 -0
  149. package/dist/tests/plugins.test.d.ts.map +1 -0
  150. package/dist/tests/plugins.test.js +506 -0
  151. package/dist/tests/plugins.test.js.map +1 -0
  152. package/dist/tests/sharedOperations.test.js +63 -2
  153. package/dist/tests/sharedOperations.test.js.map +1 -1
  154. package/dist/tests/tailscale.test.js +1 -3
  155. package/dist/tests/tailscale.test.js.map +1 -1
  156. package/package.json +15 -1
@@ -1,6 +1,7 @@
1
1
  import { describe, it, expect } from 'vitest';
2
- import { AuthorizationBearer, AuthorizationBare, RawCurlCredentials, } from '../src/apiCredentials/base.js';
3
- import { deserializeCredentials, serializeCredentials, ApiCredentialsSchema, } from '../src/apiCredentials/serialization.js';
2
+ import { z } from 'zod';
3
+ import { AuthorizationBearer, AuthorizationBare, OAuthCredentials, RawCurlCredentials, } from '../src/apiCredentials/base.js';
4
+ import { ApiCredentialsSerializationError, BUILTIN_API_CREDENTIALS_TYPES, deserializeCredentials, serializeCredentials, } from '../src/apiCredentials/serialization.js';
4
5
  import { SlackApiCredentials } from '../src/services/slack.js';
5
6
  import { TelegramBotCredentials } from '../src/services/telegram.js';
6
7
  import { AwsCredentials, AwsRequestBodyNotAvailableError, AwsRequestBodyNotSignableError, } from '../src/services/aws.js';
@@ -247,6 +248,10 @@ describe('serialization roundtrip', () => {
247
248
  name: 'GoogleApiKeyCredentials',
248
249
  credentials: () => new GoogleApiKeyCredentials('AIzaSyTestKey123'),
249
250
  },
251
+ {
252
+ name: 'OAuthCredentials with a prepared redirect URI',
253
+ credentials: () => new OAuthCredentials('client-id', 'client-secret', 'access-token', 'refresh-token', new Date(Date.now() + 3600_000).toISOString(), undefined, 'https://example.com/oauth-callback/'),
254
+ },
250
255
  {
251
256
  name: 'ZoomServerToServerCredentials',
252
257
  credentials: () => new ZoomServerToServerCredentials('account-id', 'client-id', 'client-secret', 'access-token', new Date(Date.now() + 3600_000).toISOString()),
@@ -260,18 +265,74 @@ describe('serialization roundtrip', () => {
260
265
  expect(deserialized).toBeInstanceOf(original.constructor);
261
266
  expect(serializeCredentials(deserialized)).toEqual(serialized);
262
267
  });
263
- it(`should validate ${name} with ApiCredentialsSchema`, () => {
264
- const original = createCredentials();
265
- const serialized = serializeCredentials(original);
266
- expect(ApiCredentialsSchema.safeParse(serialized).success).toBe(true);
267
- });
268
268
  }
269
- it('should reject invalid object type', () => {
270
- const result = ApiCredentialsSchema.safeParse({
271
- objectType: 'invalid',
272
- token: 'test',
269
+ it('should keep a prepared redirect URI through serialize/deserialize', () => {
270
+ const original = new OAuthCredentials('client-id', '', undefined, undefined, undefined, undefined, 'https://example.com/oauth-callback/');
271
+ const deserialized = deserializeCredentials(serializeCredentials(original));
272
+ expect(deserialized.redirectUri).toBe('https://example.com/oauth-callback/');
273
+ });
274
+ it('should leave the redirect URI unset for credentials stored without one', () => {
275
+ const deserialized = deserializeCredentials(serializeCredentials(new OAuthCredentials('client-id', 'client-secret')));
276
+ expect(deserialized.redirectUri).toBeUndefined();
277
+ });
278
+ it('should reject data of an unknown object type', () => {
279
+ expect(() => deserializeCredentials({ objectType: 'invalid', token: 'test' })).toThrow(new ApiCredentialsSerializationError("Unknown credential type 'invalid'. Credentials of a type defined by a plugin " +
280
+ 'can only be used while that plugin is installed.'));
281
+ });
282
+ it('should reject data without an object type', () => {
283
+ expect(() => deserializeCredentials({ token: 'test' })).toThrow(ApiCredentialsSerializationError);
284
+ });
285
+ it('should reject data that does not match the schema of its object type', () => {
286
+ expect(() => deserializeCredentials({ objectType: 'authorizationBearer' })).toThrow(/Invalid 'authorizationBearer' credential data/);
287
+ });
288
+ it('should refuse to serialize credentials that are never stored', () => {
289
+ const transient = {
290
+ objectType: 'transient',
291
+ injectIntoCurlCall: (curlArguments) => Promise.resolve(curlArguments),
292
+ isExpired: () => undefined,
293
+ };
294
+ expect(() => serializeCredentials(transient)).toThrow("Credentials of type 'transient' are never stored.");
295
+ });
296
+ describe('with a custom credentials type', () => {
297
+ const CustomCredentialsSchema = z.object({
298
+ objectType: z.literal('custom'),
299
+ secret: z.string(),
300
+ });
301
+ class CustomCredentials {
302
+ secret;
303
+ static objectType = 'custom';
304
+ objectType = CustomCredentials.objectType;
305
+ constructor(secret) {
306
+ this.secret = secret;
307
+ }
308
+ static fromJSON(data) {
309
+ return new CustomCredentials(CustomCredentialsSchema.parse(data).secret);
310
+ }
311
+ injectIntoCurlCall(curlArguments) {
312
+ return Promise.resolve(['-H', `X-Secret: ${this.secret}`, ...curlArguments]);
313
+ }
314
+ isExpired() {
315
+ return undefined;
316
+ }
317
+ toJSON() {
318
+ return { objectType: this.objectType, secret: this.secret };
319
+ }
320
+ }
321
+ const apiCredentialsTypes = [...BUILTIN_API_CREDENTIALS_TYPES, CustomCredentials];
322
+ it('round-trips through serialize and deserialize when the type is known', () => {
323
+ const serialized = serializeCredentials(new CustomCredentials('s3cret'), apiCredentialsTypes);
324
+ const restored = deserializeCredentials(serialized, apiCredentialsTypes);
325
+ expect(restored).toBeInstanceOf(CustomCredentials);
326
+ expect(restored.secret).toBe('s3cret');
327
+ });
328
+ it('refuses to serialize credentials whose type is not registered', () => {
329
+ expect(() => serializeCredentials(new CustomCredentials('s3cret'))).toThrow("Unknown credential type 'custom'. A plugin defining its own credentials class " +
330
+ "has to list its type in 'apiCredentialsTypes'.");
331
+ });
332
+ it('still reads the built-in types', () => {
333
+ const restored = deserializeCredentials(serializeCredentials(new AuthorizationBearer('t')), apiCredentialsTypes);
334
+ expect(restored).toBeInstanceOf(AuthorizationBearer);
273
335
  });
274
- expect(result.success).toBe(false);
275
336
  });
276
337
  });
277
338
  //# sourceMappingURL=apiCredentials.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"apiCredentials.test.js","sourceRoot":"","sources":["../../tests/apiCredentials.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apiCredentials.test.js","sourceRoot":"","sources":["../../tests/apiCredentials.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=browserStateImport.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browserStateImport.test.d.ts","sourceRoot":"","sources":["../../tests/browserStateImport.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,88 @@
1
+ import { mkdirSync, mkdtempSync, rmSync, writeFileSync } from 'node:fs';
2
+ import { tmpdir } from 'node:os';
3
+ import { join } from 'node:path';
4
+ import { describe, expect, it } from 'vitest';
5
+ import { collectLoginOrigins, InvalidBrowserStateError, measureCopiedUserDataSizeInBytes, mergeBrowserStorageStates, parseBrowserStorageState, } from '../src/browserStateImport.js';
6
+ function cookie(name, domain, value) {
7
+ return {
8
+ name,
9
+ value,
10
+ domain,
11
+ path: '/',
12
+ expires: -1,
13
+ httpOnly: true,
14
+ secure: true,
15
+ sameSite: 'Lax',
16
+ };
17
+ }
18
+ describe('mergeBrowserStorageStates', () => {
19
+ it('keeps cookies from both states and prefers imported ones', () => {
20
+ const existing = {
21
+ cookies: [cookie('session', 'example.com', 'old'), cookie('other', 'example.com', 'kept')],
22
+ origins: [{ origin: 'https://example.com', localStorage: [{ name: 'a', value: 'old' }] }],
23
+ };
24
+ const imported = {
25
+ cookies: [cookie('session', 'example.com', 'new'), cookie('session', 'example.org', 'x')],
26
+ origins: [{ origin: 'https://example.com', localStorage: [{ name: 'a', value: 'new' }] }],
27
+ };
28
+ const merged = mergeBrowserStorageStates(existing, imported);
29
+ expect(merged.cookies).toEqual([
30
+ cookie('session', 'example.com', 'new'),
31
+ cookie('other', 'example.com', 'kept'),
32
+ cookie('session', 'example.org', 'x'),
33
+ ]);
34
+ expect(merged.origins).toEqual([
35
+ { origin: 'https://example.com', localStorage: [{ name: 'a', value: 'new' }] },
36
+ ]);
37
+ });
38
+ });
39
+ describe('parseBrowserStorageState', () => {
40
+ it('parses a stored state', () => {
41
+ const state = {
42
+ cookies: [cookie('session', 'example.com', 'value')],
43
+ origins: [],
44
+ };
45
+ expect(parseBrowserStorageState(JSON.stringify(state))).toEqual(state);
46
+ });
47
+ it('fills in missing sections', () => {
48
+ expect(parseBrowserStorageState('{}')).toEqual({ cookies: [], origins: [] });
49
+ });
50
+ it('rejects invalid JSON', () => {
51
+ expect(() => parseBrowserStorageState('not json')).toThrow(InvalidBrowserStateError);
52
+ });
53
+ });
54
+ describe('collectLoginOrigins', () => {
55
+ it('returns the distinct web origins of the login URLs', () => {
56
+ const services = [
57
+ { loginUrl: 'https://example.com/login' },
58
+ { loginUrl: 'https://example.com/other' },
59
+ { loginUrl: 'http://localhost:8080/sign-in' },
60
+ { loginUrl: '' },
61
+ { loginUrl: 'mailto:someone@example.com' },
62
+ ];
63
+ expect(collectLoginOrigins(services)).toEqual(['http://localhost:8080', 'https://example.com']);
64
+ });
65
+ });
66
+ describe('measureCopiedUserDataSizeInBytes', () => {
67
+ it('counts only the copied paths', () => {
68
+ const userDataDirectory = mkdtempSync(join(tmpdir(), 'latchkey-chrome-user-data-test-'));
69
+ try {
70
+ mkdirSync(join(userDataDirectory, 'Default', 'Network'), { recursive: true });
71
+ mkdirSync(join(userDataDirectory, 'Default', 'Local Storage', 'leveldb'), {
72
+ recursive: true,
73
+ });
74
+ mkdirSync(join(userDataDirectory, 'Default', 'Cache'), { recursive: true });
75
+ mkdirSync(join(userDataDirectory, 'OptGuideOnDeviceModel'), { recursive: true });
76
+ writeFileSync(join(userDataDirectory, 'Local State'), 'a'.repeat(10));
77
+ writeFileSync(join(userDataDirectory, 'Default', 'Network', 'Cookies'), 'b'.repeat(20));
78
+ writeFileSync(join(userDataDirectory, 'Default', 'Local Storage', 'leveldb', '000003.log'), 'c'.repeat(30));
79
+ writeFileSync(join(userDataDirectory, 'Default', 'Cache', 'data_0'), 'd'.repeat(1000));
80
+ writeFileSync(join(userDataDirectory, 'OptGuideOnDeviceModel', 'model'), 'e'.repeat(1000));
81
+ expect(measureCopiedUserDataSizeInBytes(userDataDirectory)).toBe(60);
82
+ }
83
+ finally {
84
+ rmSync(userDataDirectory, { recursive: true, force: true });
85
+ }
86
+ });
87
+ });
88
+ //# sourceMappingURL=browserStateImport.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browserStateImport.test.js","sourceRoot":"","sources":["../../tests/browserStateImport.test.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { describe, it, expect, beforeEach, afterEach, vi } from 'vitest';
2
+ import { BUILTIN_API_CREDENTIALS_TYPES } from '../src/apiCredentials/serialization.js';
2
3
  import { mkdirSync, mkdtempSync, readFileSync, rmSync, writeFileSync, existsSync } from 'node:fs';
3
4
  import { join } from 'node:path';
4
5
  import { tmpdir } from 'node:os';
@@ -339,6 +340,9 @@ describe('CLI commands with dependency injection', () => {
339
340
  get extensionsDirectoryPath() {
340
341
  return join(directory, 'extensions');
341
342
  },
343
+ get pluginsDirectoryPath() {
344
+ return join(directory, 'plugins');
345
+ },
342
346
  curlCommand: overrides.curlCommand ?? defaultConfig.curlCommand,
343
347
  encryptionKeyOverride: overrides.encryptionKeyOverride ?? TEST_ENCRYPTION_KEY,
344
348
  serviceName: overrides.serviceName ?? defaultConfig.serviceName,
@@ -350,6 +354,7 @@ describe('CLI commands with dependency injection', () => {
350
354
  permissionsDoNotUseBuiltinSchemas: overrides.permissionsDoNotUseBuiltinSchemas ?? false,
351
355
  passthroughUnknown: overrides.passthroughUnknown ?? false,
352
356
  hideBuiltinServices: overrides.hideBuiltinServices ?? [],
357
+ diagnosticHeaders: overrides.diagnosticHeaders ?? false,
353
358
  gatewayUrl: overrides.gatewayUrl ?? null,
354
359
  gatewayListenHost: overrides.gatewayListenHost ?? 'localhost',
355
360
  gatewayListenPort: overrides.gatewayListenPort ?? 1989,
@@ -366,7 +371,8 @@ describe('CLI commands with dependency injection', () => {
366
371
  const mockRegistry = new ServiceRegistry([mockSlackService]);
367
372
  return {
368
373
  registry: mockRegistry,
369
- builtinServices: [mockSlackService],
374
+ baseServices: [mockSlackService],
375
+ apiCredentialsTypes: BUILTIN_API_CREDENTIALS_TYPES,
370
376
  config: createMockConfig(),
371
377
  runCurl: (args) => {
372
378
  capturedArgs.push(...args);
@@ -1660,6 +1666,31 @@ describe('CLI commands with dependency injection', () => {
1660
1666
  expect(exitCode).toBe(1);
1661
1667
  expect(errorLogs.some((line) => line.includes('google-drive'))).toBe(true);
1662
1668
  });
1669
+ it('should report the matched service to curl when diagnostic headers are on', async () => {
1670
+ writeSecureFile(join(tempDir, 'credentials.json'), JSON.stringify(nestAccounts({
1671
+ slack: { objectType: 'rawCurl', curlArguments: ['-H', 'X-Custom: header'] },
1672
+ })));
1673
+ const deps = createMockDependencies({
1674
+ config: createMockConfig({ diagnosticHeaders: true }),
1675
+ });
1676
+ await runCommand(['curl', 'https://slack.com/api/test'], deps);
1677
+ expect(exitCode).toBe(0);
1678
+ expect(capturedArgs).toEqual([
1679
+ '-H',
1680
+ 'X-Latchkey-Matched-Service: slack',
1681
+ '-H',
1682
+ 'X-Custom: header',
1683
+ 'https://slack.com/api/test',
1684
+ ]);
1685
+ });
1686
+ it('should not report a matched service for a request that passes through', async () => {
1687
+ const deps = createMockDependencies({
1688
+ config: createMockConfig({ passthroughUnknown: true, diagnosticHeaders: true }),
1689
+ });
1690
+ await runCommand(['curl', 'https://unknown-api.example.com/test'], deps);
1691
+ expect(exitCode).toBe(0);
1692
+ expect(capturedArgs).toEqual(['https://unknown-api.example.com/test']);
1693
+ });
1663
1694
  it('should pass through unknown service when passthroughUnknown is enabled', async () => {
1664
1695
  const deps = createMockDependencies({
1665
1696
  config: createMockConfig({ passthroughUnknown: true }),
@@ -2806,6 +2837,7 @@ describe('CLI commands with dependency injection', () => {
2806
2837
  ['gateway', ['gateway']],
2807
2838
  ['ensure-browser', ['ensure-browser']],
2808
2839
  ['auth re-encrypt', ['auth', 're-encrypt', '/tmp/does-not-matter-dir']],
2840
+ ['auth import-chrome', ['auth', 'import-chrome']],
2809
2841
  ])('refuses to run `%s` in gateway mode', async (_name, argv) => {
2810
2842
  const deps = createMockDependencies({
2811
2843
  config: createMockConfig({ gatewayUrl: GATEWAY_URL }),