latchkey 3.13.1 → 3.15.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 +28 -1
  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/cli.js +13 -2
  15. package/dist/src/cli.js.map +1 -1
  16. package/dist/src/cliCommands.d.ts +15 -7
  17. package/dist/src/cliCommands.d.ts.map +1 -1
  18. package/dist/src/cliCommands.js +56 -25
  19. package/dist/src/cliCommands.js.map +1 -1
  20. package/dist/src/config.d.ts +10 -0
  21. package/dist/src/config.d.ts.map +1 -1
  22. package/dist/src/config.js +15 -0
  23. package/dist/src/config.js.map +1 -1
  24. package/dist/src/configDataStore.d.ts +3 -0
  25. package/dist/src/configDataStore.d.ts.map +1 -1
  26. package/dist/src/configDataStore.js +1 -0
  27. package/dist/src/configDataStore.js.map +1 -1
  28. package/dist/src/curlInjection.d.ts +15 -4
  29. package/dist/src/curlInjection.d.ts.map +1 -1
  30. package/dist/src/curlInjection.js +16 -6
  31. package/dist/src/curlInjection.js.map +1 -1
  32. package/dist/src/diagnosticHeaders.d.ts +19 -0
  33. package/dist/src/diagnosticHeaders.d.ts.map +1 -0
  34. package/dist/src/diagnosticHeaders.js +20 -0
  35. package/dist/src/diagnosticHeaders.js.map +1 -0
  36. package/dist/src/errorMessages.d.ts.map +1 -1
  37. package/dist/src/errorMessages.js +35 -1
  38. package/dist/src/errorMessages.js.map +1 -1
  39. package/dist/src/gateway/gatewayEndpoint.d.ts.map +1 -1
  40. package/dist/src/gateway/gatewayEndpoint.js +11 -4
  41. package/dist/src/gateway/gatewayEndpoint.js.map +1 -1
  42. package/dist/src/gateway/headerEncoding.d.ts +22 -0
  43. package/dist/src/gateway/headerEncoding.d.ts.map +1 -0
  44. package/dist/src/gateway/headerEncoding.js +26 -0
  45. package/dist/src/gateway/headerEncoding.js.map +1 -0
  46. package/dist/src/gateway/server.d.ts.map +1 -1
  47. package/dist/src/gateway/server.js +5 -2
  48. package/dist/src/gateway/server.js.map +1 -1
  49. package/dist/src/index.d.ts +2 -2
  50. package/dist/src/index.d.ts.map +1 -1
  51. package/dist/src/index.js +1 -1
  52. package/dist/src/index.js.map +1 -1
  53. package/dist/src/migrations.d.ts.map +1 -1
  54. package/dist/src/migrations.js +8 -8
  55. package/dist/src/migrations.js.map +1 -1
  56. package/dist/src/oauthUtils.d.ts +17 -0
  57. package/dist/src/oauthUtils.d.ts.map +1 -1
  58. package/dist/src/oauthUtils.js +22 -1
  59. package/dist/src/oauthUtils.js.map +1 -1
  60. package/dist/src/pluginSdk.d.ts +117 -0
  61. package/dist/src/pluginSdk.d.ts.map +1 -0
  62. package/dist/src/pluginSdk.js +97 -0
  63. package/dist/src/pluginSdk.js.map +1 -0
  64. package/dist/src/plugins.d.ts +74 -0
  65. package/dist/src/plugins.d.ts.map +1 -0
  66. package/dist/src/plugins.js +221 -0
  67. package/dist/src/plugins.js.map +1 -0
  68. package/dist/src/serviceRegistry.d.ts +2 -2
  69. package/dist/src/serviceRegistry.d.ts.map +1 -1
  70. package/dist/src/serviceRegistry.js +3 -3
  71. package/dist/src/serviceRegistry.js.map +1 -1
  72. package/dist/src/services/aws.d.ts +2 -1
  73. package/dist/src/services/aws.d.ts.map +1 -1
  74. package/dist/src/services/aws.js +4 -2
  75. package/dist/src/services/aws.js.map +1 -1
  76. package/dist/src/services/core/base.d.ts +42 -2
  77. package/dist/src/services/core/base.d.ts.map +1 -1
  78. package/dist/src/services/core/base.js +48 -1
  79. package/dist/src/services/core/base.js.map +1 -1
  80. package/dist/src/services/dropbox.d.ts.map +1 -1
  81. package/dist/src/services/dropbox.js +2 -2
  82. package/dist/src/services/dropbox.js.map +1 -1
  83. package/dist/src/services/fastmail.d.ts +4 -19
  84. package/dist/src/services/fastmail.d.ts.map +1 -1
  85. package/dist/src/services/fastmail.js +17 -22
  86. package/dist/src/services/fastmail.js.map +1 -1
  87. package/dist/src/services/google/base.d.ts +8 -3
  88. package/dist/src/services/google/base.d.ts.map +1 -1
  89. package/dist/src/services/google/base.js +23 -13
  90. package/dist/src/services/google/base.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 +2 -1
  111. package/dist/src/services/zoom.d.ts.map +1 -1
  112. package/dist/src/services/zoom.js +4 -2
  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/cli.test.js +97 -1
  121. package/dist/tests/cli.test.js.map +1 -1
  122. package/dist/tests/config.test.js +7 -0
  123. package/dist/tests/config.test.js.map +1 -1
  124. package/dist/tests/diagnosticHeaders.test.d.ts +2 -0
  125. package/dist/tests/diagnosticHeaders.test.d.ts.map +1 -0
  126. package/dist/tests/diagnosticHeaders.test.js +22 -0
  127. package/dist/tests/diagnosticHeaders.test.js.map +1 -0
  128. package/dist/tests/errorMessages.test.d.ts +6 -0
  129. package/dist/tests/errorMessages.test.d.ts.map +1 -0
  130. package/dist/tests/errorMessages.test.js +31 -0
  131. package/dist/tests/errorMessages.test.js.map +1 -0
  132. package/dist/tests/gateway.test.js +65 -4
  133. package/dist/tests/gateway.test.js.map +1 -1
  134. package/dist/tests/gatewayExtensions.test.js +5 -2
  135. package/dist/tests/gatewayExtensions.test.js.map +1 -1
  136. package/dist/tests/headerEncoding.test.d.ts +5 -0
  137. package/dist/tests/headerEncoding.test.d.ts.map +1 -0
  138. package/dist/tests/headerEncoding.test.js +40 -0
  139. package/dist/tests/headerEncoding.test.js.map +1 -0
  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 +16 -2
@@ -2,12 +2,38 @@ import { describe, it, expect, beforeEach, afterEach } from 'vitest';
2
2
  import { mkdtempSync, rmSync, existsSync, readFileSync } from 'node:fs';
3
3
  import { join } from 'node:path';
4
4
  import { tmpdir } from 'node:os';
5
- import { AmbiguousAccountError, ApiCredentialStore } from '../src/apiCredentials/store.js';
5
+ import { AmbiguousAccountError, ApiCredentialStore, ApiCredentialStoreError, } from '../src/apiCredentials/store.js';
6
6
  import { AuthorizationBearer, AuthorizationBare, OAuthCredentials, } from '../src/apiCredentials/base.js';
7
+ import { BUILTIN_API_CREDENTIALS_TYPES } from '../src/apiCredentials/serialization.js';
8
+ import { z } from 'zod';
7
9
  import { SlackApiCredentials } from '../src/services/slack.js';
8
10
  import { EncryptedStorage } from '../src/encryptedStorage.js';
9
11
  import { generateKey } from '../src/encryption.js';
10
12
  describe('ApiCredentialStore', () => {
13
+ const PluginCredentialsSchema = z.object({
14
+ objectType: z.literal('pluginToken'),
15
+ token: z.string(),
16
+ });
17
+ class PluginCredentials {
18
+ token;
19
+ static objectType = 'pluginToken';
20
+ objectType = PluginCredentials.objectType;
21
+ constructor(token) {
22
+ this.token = token;
23
+ }
24
+ static fromJSON(data) {
25
+ return new PluginCredentials(PluginCredentialsSchema.parse(data).token);
26
+ }
27
+ injectIntoCurlCall(curlArguments) {
28
+ return Promise.resolve(['-H', `X-Token: ${this.token}`, ...curlArguments]);
29
+ }
30
+ isExpired() {
31
+ return undefined;
32
+ }
33
+ toJSON() {
34
+ return { objectType: this.objectType, token: this.token };
35
+ }
36
+ }
11
37
  let tempDir;
12
38
  let storePath;
13
39
  let encryptedStorage;
@@ -24,6 +50,14 @@ describe('ApiCredentialStore', () => {
24
50
  const store = new ApiCredentialStore(storePath, encryptedStorage);
25
51
  expect(store.get('slack')).toBeNull();
26
52
  });
53
+ it('reports credentials of a type it does not know, like those of an uninstalled plugin', () => {
54
+ encryptedStorage.writeFile(storePath, JSON.stringify({
55
+ credentials: { spotify: { '': { objectType: 'spotifySession', sp_dc: 'x' } } },
56
+ }));
57
+ const store = new ApiCredentialStore(storePath, encryptedStorage);
58
+ expect(() => store.get('spotify')).toThrow(new ApiCredentialStoreError("Invalid credential data for service spotify: Unknown credential type 'spotifySession'. " +
59
+ 'Credentials of a type defined by a plugin can only be used while that plugin is installed.'));
60
+ });
27
61
  it('should return null for non-existent service', () => {
28
62
  const store = new ApiCredentialStore(storePath, encryptedStorage);
29
63
  store.save('discord', new AuthorizationBare('token'));
@@ -55,6 +89,25 @@ describe('ApiCredentialStore', () => {
55
89
  expect(retrieved.dCookie).toBe('d-cookie');
56
90
  });
57
91
  });
92
+ describe('credentials types', () => {
93
+ it('stores and reads back credentials of a type it was given', () => {
94
+ const store = new ApiCredentialStore(storePath, encryptedStorage, [
95
+ ...BUILTIN_API_CREDENTIALS_TYPES,
96
+ PluginCredentials,
97
+ ]);
98
+ store.save('plugin-service', new PluginCredentials('t'));
99
+ const restored = store.get('plugin-service');
100
+ expect(restored).toBeInstanceOf(PluginCredentials);
101
+ expect(restored.token).toBe('t');
102
+ });
103
+ it('refuses to store credentials of a type it was not given', () => {
104
+ const store = new ApiCredentialStore(storePath, encryptedStorage);
105
+ expect(() => {
106
+ store.save('plugin-service', new PluginCredentials('t'));
107
+ }).toThrow("Unknown credential type 'pluginToken'");
108
+ expect(existsSync(storePath)).toBe(false);
109
+ });
110
+ });
58
111
  describe('save', () => {
59
112
  it('should create the store file if it does not exist', () => {
60
113
  const store = new ApiCredentialStore(storePath, encryptedStorage);
@@ -1 +1 @@
1
- {"version":3,"file":"apiCredentialStore.test.js","sourceRoot":"","sources":["../../tests/apiCredentialStore.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apiCredentialStore.test.js","sourceRoot":"","sources":["../../tests/apiCredentialStore.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACxE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAEL,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,6BAA6B,EAAE,MAAM,wCAAwC,CAAC;AACvF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;QACvC,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;QACpC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;KAClB,CAAC,CAAC;IAEH,MAAM,iBAAiB;QAIA;QAHrB,MAAM,CAAU,UAAU,GAAG,aAAsB,CAAC;QAC3C,UAAU,GAAG,iBAAiB,CAAC,UAAU,CAAC;QAEnD,YAAqB,KAAa;YAAb,UAAK,GAAL,KAAK,CAAQ;QAAG,CAAC;QAEtC,MAAM,CAAC,QAAQ,CAAC,IAAa;YAC3B,OAAO,IAAI,iBAAiB,CAAC,uBAAuB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;QAC1E,CAAC;QAED,kBAAkB,CAAC,aAAgC;YACjD,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,YAAY,IAAI,CAAC,KAAK,EAAE,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC;QAC7E,CAAC;QAED,SAAS;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM;YACJ,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;QAC5D,CAAC;;IAGH,IAAI,OAAe,CAAC;IACpB,IAAI,SAAiB,CAAC;IACtB,IAAI,gBAAkC,CAAC;IAEvC,UAAU,CAAC,GAAG,EAAE;QACd,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC;QACxD,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;QAC9C,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE;QACnB,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;YACxD,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;YAClE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qFAAqF,EAAE,GAAG,EAAE;YAC7F,gBAAgB,CAAC,SAAS,CACxB,SAAS,EACT,IAAI,CAAC,SAAS,CAAC;gBACb,WAAW,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,gBAAgB,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE;aAC/E,CAAC,CACH,CAAC;YACF,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;YAClE,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CACxC,IAAI,uBAAuB,CACzB,yFAAyF;gBACvF,4FAA4F,CAC/F,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACrD,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;YAClE,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;YACtD,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;YAC/D,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;YAClE,MAAM,WAAW,GAAG,IAAI,mBAAmB,CAAC,YAAY,CAAC,CAAC;YAC1D,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;YAElC,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACtC,MAAM,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;YACtD,MAAM,CAAE,SAAiC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAC7D,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;YAClE,MAAM,WAAW,GAAG,IAAI,iBAAiB,CAAC,eAAe,CAAC,CAAC;YAC3D,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;YAEnC,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACvC,MAAM,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;YACpD,MAAM,CAAE,SAA+B,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACvE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACnD,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;YAClE,MAAM,WAAW,GAAG,IAAI,mBAAmB,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;YACtE,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YAEjC,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACrC,MAAM,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;YACtD,MAAM,CAAE,SAAiC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACpE,MAAM,CAAE,SAAiC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACjC,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;YAClE,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC,SAAS,EAAE,gBAAgB,EAAE;gBAChE,GAAG,6BAA6B;gBAChC,iBAAiB;aAClB,CAAC,CAAC;YACH,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC;YAEzD,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;YAC7C,MAAM,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;YACnD,MAAM,CAAE,QAA8B,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;YACjE,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;YAClE,MAAM,CAAC,GAAG,EAAE;gBACV,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3D,CAAC,CAAC,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAC;YACpD,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;QACpB,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;YAC3D,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;YAClE,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC;YACvD,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;YAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,kBAAkB,CAAC,CAAC;YACvE,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;YACnE,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC;YACvD,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;YACpE,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;YAClE,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,mBAAmB,CAAC,WAAW,CAAC,CAAC,CAAC;YAC3D,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,mBAAmB,CAAC,WAAW,CAAC,CAAC,CAAC;YAE3D,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACtC,MAAM,CAAE,SAAiC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACrE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;YACpD,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;YAClE,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,mBAAmB,CAAC,cAAc,CAAC,CAAC,CAAC;YAC9D,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,iBAAiB,CAAC,eAAe,CAAC,CAAC,CAAC;YAE9D,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YAC3C,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC7C,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;YAClE,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC;YAEvD,MAAM,OAAO,GAAG,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YACjD,yEAAyE;YACzE,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;QACtB,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACtD,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;YAClE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC5D,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;YAClE,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC;YACvD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1C,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACtD,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;YAClE,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,mBAAmB,CAAC,cAAc,CAAC,CAAC,CAAC;YAC9D,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,iBAAiB,CAAC,eAAe,CAAC,CAAC,CAAC;YAE9D,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAEvB,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;YACvC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC9C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;QAC5B,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;YAC1D,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;YAClE,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC1D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAC7D,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;YAClE,KAAK,CAAC,eAAe,CAAC,cAAc,EAAE,IAAI,gBAAgB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC,CAAC;YAE1F,MAAM,SAAS,GAAG,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;YACvD,MAAM,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;YACnD,MAAM,CAAE,SAA8B,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACnE,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACzD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;YACtE,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;YAClE,KAAK,CAAC,eAAe,CAAC,cAAc,EAAE,IAAI,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC;YACpF,KAAK,CAAC,eAAe,CAAC,cAAc,EAAE,IAAI,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC;YAEpF,MAAM,CAAE,KAAK,CAAC,cAAc,CAAC,cAAc,CAAsB,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7F,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;YAC1D,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;YAClE,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAErD,KAAK,CAAC,eAAe,CAAC,cAAc,EAAE,IAAI,gBAAgB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC,CAAC;YAC1F,KAAK,CAAC,eAAe,CAAC,QAAQ,EAAE,IAAI,gBAAgB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC,CAAC;YACpF,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC;YAEtD,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,wBAAwB,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC;QAC3F,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC5D,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;YAClE,KAAK,CAAC,eAAe,CAAC,cAAc,EAAE,IAAI,gBAAgB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC,CAAC;YAE1F,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC7C,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACvD,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;YAC9C,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;YAClE,KAAK,CAAC,eAAe,CAAC,cAAc,EAAE,IAAI,gBAAgB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC,CAAC;YAC1F,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,mBAAmB,CAAC,OAAO,CAAC,EAAE,kBAAkB,CAAC,CAAC;YAEjF,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChD,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;YACjE,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YAE5D,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjD,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC9D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC5D,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;YAClE,KAAK,CAAC,eAAe,CAAC,cAAc,EAAE,IAAI,gBAAgB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC,CAAC;YAC1F,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,mBAAmB,CAAC,GAAG,CAAC,EAAE,eAAe,CAAC,CAAC;YAC1E,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,mBAAmB,CAAC,GAAG,CAAC,EAAE,eAAe,CAAC,CAAC;YAE1E,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnD,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACvD,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC1D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACtD,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;YAClE,KAAK,CAAC,eAAe,CAAC,cAAc,EAAE,IAAI,gBAAgB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC,CAAC;YAE1F,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnD,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC1D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;YACrE,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;YAClE,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC;YAEtD,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpD,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC5C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;QACxB,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;YAC3D,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;YAClE,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,mBAAmB,CAAC,eAAe,CAAC,CAAC,CAAC;YAC/D,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,mBAAmB,CAAC,YAAY,CAAC,EAAE,kBAAkB,CAAC,CAAC;YAEhF,MAAM,CAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAyB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACrF,MAAM,CAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,kBAAkB,CAAyB,CAAC,KAAK,CAAC,CAAC,IAAI,CACjF,YAAY,CACb,CAAC;YACF,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,qBAAqB,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAChE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;YACvD,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;YAClE,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAEjD,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,mBAAmB,CAAC,eAAe,CAAC,CAAC,CAAC;YAC/D,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,mBAAmB,CAAC,YAAY,CAAC,EAAE,kBAAkB,CAAC,CAAC;YAEhF,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,kBAAkB,CAAC,CAAC,CAAC;QACrF,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;YAC3C,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;gBACrE,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;gBAClE,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,mBAAmB,CAAC,OAAO,CAAC,EAAE,kBAAkB,CAAC,CAAC;gBAC3E,MAAM,CAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAyB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3E,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,oFAAoF,EAAE,GAAG,EAAE;gBAC5F,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;gBAClE,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,mBAAmB,CAAC,GAAG,CAAC,EAAE,eAAe,CAAC,CAAC;gBACpE,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,mBAAmB,CAAC,GAAG,CAAC,EAAE,eAAe,CAAC,CAAC;gBACpE,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;YACnE,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;gBACrE,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;gBAClE,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,mBAAmB,CAAC,KAAK,CAAC,EAAE,kBAAkB,CAAC,CAAC;gBACzE,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;gBAErD,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;gBACnE,MAAM,CAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,kBAAkB,CAAyB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC7F,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,uEAAuE,EAAE,GAAG,EAAE;gBAC/E,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;gBAClE,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC;gBACvD,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACrD,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,kFAAkF,EAAE,GAAG,EAAE;gBAC1F,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;gBAClE,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,mBAAmB,CAAC,GAAG,CAAC,EAAE,eAAe,CAAC,CAAC;gBACpE,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,mBAAmB,CAAC,GAAG,CAAC,EAAE,eAAe,CAAC,CAAC;gBACpE,MAAM,CAAC,GAAG,EAAE;oBACV,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC;gBACrD,CAAC,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;YACpC,CAAC,CAAC,CAAC;YAEH,mEAAmE;YACnE,uEAAuE;YACvE,sBAAsB;YACtB,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;gBACvE,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;gBAClE,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,mBAAmB,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC7D,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,mBAAmB,CAAC,GAAG,CAAC,EAAE,eAAe,CAAC,CAAC;gBAEpE,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CACvC,0EAA0E;oBACxE,0CAA0C,CAC7C,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;gBAC3C,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;gBAClE,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,mBAAmB,CAAC,GAAG,CAAC,EAAE,eAAe,CAAC,CAAC;gBACpE,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,mBAAmB,CAAC,GAAG,CAAC,EAAE,eAAe,CAAC,CAAC;gBAEpE,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CACvC,sEAAsE;oBACpE,2DAA2D,CAC9D,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;YACtB,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;gBAC5D,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;gBAClE,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,mBAAmB,CAAC,GAAG,CAAC,EAAE,eAAe,CAAC,CAAC;gBACpE,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,mBAAmB,CAAC,GAAG,CAAC,EAAE,eAAe,CAAC,CAAC;gBAEpE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC3D,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;gBACxD,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YAC9D,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;gBAC1E,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;gBAClE,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,mBAAmB,CAAC,GAAG,CAAC,EAAE,eAAe,CAAC,CAAC;gBAEpE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC3D,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACnD,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;gBACjE,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;gBAClE,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,mBAAmB,CAAC,GAAG,CAAC,EAAE,eAAe,CAAC,CAAC;gBAEpE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC1C,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACnD,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,uFAAuF,EAAE,GAAG,EAAE;gBAC/F,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;gBAClE,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,mBAAmB,CAAC,GAAG,CAAC,EAAE,eAAe,CAAC,CAAC;gBACpE,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,mBAAmB,CAAC,GAAG,CAAC,EAAE,eAAe,CAAC,CAAC;gBACpE,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;YACtE,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;gBAC7D,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;gBAClE,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,mBAAmB,CAAC,GAAG,CAAC,EAAE,eAAe,CAAC,CAAC;gBACpE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpE,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;YACtB,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;gBAClE,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;gBAClE,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC;gBACzD,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,mBAAmB,CAAC,MAAM,CAAC,EAAE,kBAAkB,CAAC,CAAC;gBAC1E,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,iBAAiB,CAAC,eAAe,CAAC,CAAC,CAAC;gBAE9D,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;gBAC3B,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;gBAC9D,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,kBAAkB,CAAC,CAAC,CAAC;gBAChF,MAAM,CAAE,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC,GAAG,CAAC,kBAAkB,CAAyB,CAAC,KAAK,CAAC,CAAC,IAAI,CACpF,MAAM,CACP,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -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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"}
@@ -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);
@@ -808,6 +814,16 @@ describe('CLI commands with dependency injection', () => {
808
814
  expect(errorLogs.join('\n')).toContain("No credentials found for slack (account 'missing@example.com')");
809
815
  expect(errorLogs.join('\n')).toContain('latchkey --account missing@example.com auth browser slack');
810
816
  });
817
+ it('shell-quotes an account that needs it in the suggested commands', async () => {
818
+ // A Notion account is named after its workspace, so it routinely holds
819
+ // spaces and typographic punctuation. The suggested commands have to
820
+ // survive a copy-paste into the shell.
821
+ writeMultiAccountStore({ 'jane@example.com:Jane\u2019s Space': 'workspace' });
822
+ const deps = createMockDependencies();
823
+ await runCommand(['--account', 'Jane\u2019s Space', 'curl', 'https://slack.com/api/test'], deps);
824
+ expect(exitCode).toBe(1);
825
+ expect(errorLogs.join('\n')).toContain('latchkey --account "Jane\u2019s Space" auth browser slack');
826
+ });
811
827
  it('auth clear keeps the preparation without --all', async () => {
812
828
  const storePath = join(tempDir, 'credentials.json');
813
829
  writeSecureFile(storePath, JSON.stringify({
@@ -887,6 +903,61 @@ describe('CLI commands with dependency injection', () => {
887
903
  expect(errorLogs.join('\n')).toContain('--account option is not supported');
888
904
  });
889
905
  });
906
+ describe('--dry-run option', () => {
907
+ it('curl reports the injecting service instead of sending the request', async () => {
908
+ const storePath = join(tempDir, 'credentials.json');
909
+ writeSecureFile(storePath, JSON.stringify(nestAccounts({
910
+ slack: { objectType: 'slack', token: 'stored-token', dCookie: 'stored-cookie' },
911
+ })));
912
+ const deps = createMockDependencies();
913
+ await runCommand(['--dry-run', 'curl', 'https://slack.com/api/test'], deps);
914
+ expect(exitCode).toBe(0);
915
+ expect(capturedArgs).toEqual([]);
916
+ expect(logs).toHaveLength(1);
917
+ expect(JSON.parse(logs[0] ?? '')).toEqual({
918
+ credentialsInjected: true,
919
+ service: 'slack',
920
+ });
921
+ });
922
+ it('curl reports no injection for a passed-through request', async () => {
923
+ const deps = createMockDependencies({
924
+ config: createMockConfig({ passthroughUnknown: true }),
925
+ });
926
+ await runCommand(['--dry-run', 'curl', 'https://unknown-api.example.com/test'], deps);
927
+ expect(exitCode).toBe(0);
928
+ expect(capturedArgs).toEqual([]);
929
+ expect(JSON.parse(logs[0] ?? '')).toEqual({
930
+ credentialsInjected: false,
931
+ service: null,
932
+ });
933
+ });
934
+ it('curl still fails when no credentials can be injected', async () => {
935
+ const deps = createMockDependencies();
936
+ await runCommand(['--dry-run', 'curl', 'https://slack.com/api/test'], deps);
937
+ expect(exitCode).toBe(1);
938
+ expect(logs).toHaveLength(0);
939
+ expect(capturedArgs).toEqual([]);
940
+ });
941
+ it('rejects --dry-run in gateway mode', async () => {
942
+ const deps = createMockDependencies({
943
+ config: createMockConfig({ gatewayUrl: 'http://localhost:9000' }),
944
+ });
945
+ await runCommand(['--dry-run', 'curl', 'https://slack.com/api/test'], deps);
946
+ expect(exitCode).toBe(1);
947
+ expect(capturedArgs).toEqual([]);
948
+ expect(errorLogs.join('\n')).toContain('--dry-run option is not supported in gateway mode');
949
+ });
950
+ it.each([
951
+ ['auth', 'list'],
952
+ ['services', 'list'],
953
+ ['auth', 'set', 'slack', '-H', 'X-Token: secret'],
954
+ ])('rejects --dry-run for the unsupported command: %s %s', async (...commandArgs) => {
955
+ const deps = createMockDependencies();
956
+ await runCommand(['--dry-run', ...commandArgs], deps);
957
+ expect(exitCode).toBe(1);
958
+ expect(errorLogs.join('\n')).toContain('--dry-run option is not supported');
959
+ });
960
+ });
890
961
  describe('auth list command', () => {
891
962
  it('should list stored credentials with their status', async () => {
892
963
  const storePath = join(tempDir, 'credentials.json');
@@ -1595,6 +1666,31 @@ describe('CLI commands with dependency injection', () => {
1595
1666
  expect(exitCode).toBe(1);
1596
1667
  expect(errorLogs.some((line) => line.includes('google-drive'))).toBe(true);
1597
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
+ });
1598
1694
  it('should pass through unknown service when passthroughUnknown is enabled', async () => {
1599
1695
  const deps = createMockDependencies({
1600
1696
  config: createMockConfig({ passthroughUnknown: true }),