latchkey 1.0.1 → 2.0.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 (200) hide show
  1. package/README.md +27 -7
  2. package/dist/integrations/SKILL.md +9 -2
  3. package/dist/package.json +1 -1
  4. package/dist/src/apiCredentialStore.d.ts +1 -1
  5. package/dist/src/apiCredentialStore.d.ts.map +1 -1
  6. package/dist/src/apiCredentialStore.js +1 -1
  7. package/dist/src/apiCredentialStore.js.map +1 -1
  8. package/dist/src/apiCredentials.d.ts +11 -114
  9. package/dist/src/apiCredentials.d.ts.map +1 -1
  10. package/dist/src/apiCredentials.js +9 -101
  11. package/dist/src/apiCredentials.js.map +1 -1
  12. package/dist/src/apiCredentialsSerialization.d.ts +119 -0
  13. package/dist/src/apiCredentialsSerialization.d.ts.map +1 -0
  14. package/dist/src/apiCredentialsSerialization.js +90 -0
  15. package/dist/src/apiCredentialsSerialization.js.map +1 -0
  16. package/dist/src/browserConfig.d.ts +1 -5
  17. package/dist/src/browserConfig.d.ts.map +1 -1
  18. package/dist/src/browserConfig.js +2 -8
  19. package/dist/src/browserConfig.js.map +1 -1
  20. package/dist/src/cli.js +20 -0
  21. package/dist/src/cli.js.map +1 -1
  22. package/dist/src/cliCommands.d.ts +0 -1
  23. package/dist/src/cliCommands.d.ts.map +1 -1
  24. package/dist/src/cliCommands.js +50 -40
  25. package/dist/src/cliCommands.js.map +1 -1
  26. package/dist/src/config.d.ts +4 -3
  27. package/dist/src/config.d.ts.map +1 -1
  28. package/dist/src/config.js +17 -23
  29. package/dist/src/config.js.map +1 -1
  30. package/dist/src/curl.d.ts +10 -0
  31. package/dist/src/curl.d.ts.map +1 -1
  32. package/dist/src/curl.js +88 -0
  33. package/dist/src/curl.js.map +1 -1
  34. package/dist/src/encryptedStorage.d.ts +9 -0
  35. package/dist/src/encryptedStorage.d.ts.map +1 -1
  36. package/dist/src/encryptedStorage.js +12 -0
  37. package/dist/src/encryptedStorage.js.map +1 -1
  38. package/dist/src/index.d.ts +4 -2
  39. package/dist/src/index.d.ts.map +1 -1
  40. package/dist/src/index.js +4 -2
  41. package/dist/src/index.js.map +1 -1
  42. package/dist/src/migrations.d.ts +9 -0
  43. package/dist/src/migrations.d.ts.map +1 -0
  44. package/dist/src/migrations.js +77 -0
  45. package/dist/src/migrations.js.map +1 -0
  46. package/dist/src/oauthUtils.d.ts +4 -1
  47. package/dist/src/oauthUtils.d.ts.map +1 -1
  48. package/dist/src/oauthUtils.js.map +1 -1
  49. package/dist/src/playwrightUtils.d.ts +2 -2
  50. package/dist/src/playwrightUtils.d.ts.map +1 -1
  51. package/dist/src/playwrightUtils.js +4 -4
  52. package/dist/src/playwrightUtils.js.map +1 -1
  53. package/dist/src/registry.d.ts.map +1 -1
  54. package/dist/src/registry.js +18 -2
  55. package/dist/src/registry.js.map +1 -1
  56. package/dist/src/services/aws.d.ts +44 -0
  57. package/dist/src/services/aws.d.ts.map +1 -0
  58. package/dist/src/services/aws.js +237 -0
  59. package/dist/src/services/aws.js.map +1 -0
  60. package/dist/src/services/base.d.ts +14 -0
  61. package/dist/src/services/base.d.ts.map +1 -1
  62. package/dist/src/services/base.js +23 -11
  63. package/dist/src/services/base.js.map +1 -1
  64. package/dist/src/services/calendly.d.ts +12 -0
  65. package/dist/src/services/calendly.d.ts.map +1 -0
  66. package/dist/src/services/calendly.js +18 -0
  67. package/dist/src/services/calendly.js.map +1 -0
  68. package/dist/src/services/discord.d.ts +1 -0
  69. package/dist/src/services/discord.d.ts.map +1 -1
  70. package/dist/src/services/discord.js +3 -0
  71. package/dist/src/services/discord.js.map +1 -1
  72. package/dist/src/services/dropbox.d.ts +2 -1
  73. package/dist/src/services/dropbox.d.ts.map +1 -1
  74. package/dist/src/services/dropbox.js +5 -0
  75. package/dist/src/services/dropbox.js.map +1 -1
  76. package/dist/src/services/figma.d.ts +12 -0
  77. package/dist/src/services/figma.d.ts.map +1 -0
  78. package/dist/src/services/figma.js +14 -0
  79. package/dist/src/services/figma.js.map +1 -0
  80. package/dist/src/services/github.d.ts +1 -0
  81. package/dist/src/services/github.d.ts.map +1 -1
  82. package/dist/src/services/github.js +3 -0
  83. package/dist/src/services/github.js.map +1 -1
  84. package/dist/src/services/gitlab.d.ts +12 -0
  85. package/dist/src/services/gitlab.d.ts.map +1 -0
  86. package/dist/src/services/gitlab.js +14 -0
  87. package/dist/src/services/gitlab.js.map +1 -0
  88. package/dist/src/services/google/analytics.d.ts +11 -0
  89. package/dist/src/services/google/analytics.d.ts.map +1 -0
  90. package/dist/src/services/google/analytics.js +22 -0
  91. package/dist/src/services/google/analytics.js.map +1 -0
  92. package/dist/src/services/google/base.d.ts +73 -0
  93. package/dist/src/services/google/base.d.ts.map +1 -0
  94. package/dist/src/services/google/base.js +323 -0
  95. package/dist/src/services/google/base.js.map +1 -0
  96. package/dist/src/services/google/calendar.d.ts +11 -0
  97. package/dist/src/services/google/calendar.d.ts.map +1 -0
  98. package/dist/src/services/google/calendar.js +22 -0
  99. package/dist/src/services/google/calendar.js.map +1 -0
  100. package/dist/src/services/google/directions.d.ts +14 -0
  101. package/dist/src/services/google/directions.d.ts.map +1 -0
  102. package/dist/src/services/google/directions.js +49 -0
  103. package/dist/src/services/google/directions.js.map +1 -0
  104. package/dist/src/services/google/docs.d.ts +11 -0
  105. package/dist/src/services/google/docs.d.ts.map +1 -0
  106. package/dist/src/services/google/docs.js +19 -0
  107. package/dist/src/services/google/docs.js.map +1 -0
  108. package/dist/src/services/google/drive.d.ts +11 -0
  109. package/dist/src/services/google/drive.d.ts.map +1 -0
  110. package/dist/src/services/google/drive.js +19 -0
  111. package/dist/src/services/google/drive.js.map +1 -0
  112. package/dist/src/services/google/gmail.d.ts +11 -0
  113. package/dist/src/services/google/gmail.d.ts.map +1 -0
  114. package/dist/src/services/google/gmail.js +24 -0
  115. package/dist/src/services/google/gmail.js.map +1 -0
  116. package/dist/src/services/google/maps.d.ts +39 -0
  117. package/dist/src/services/google/maps.d.ts.map +1 -0
  118. package/dist/src/services/google/maps.js +94 -0
  119. package/dist/src/services/google/maps.js.map +1 -0
  120. package/dist/src/services/google/people.d.ts +11 -0
  121. package/dist/src/services/google/people.d.ts.map +1 -0
  122. package/dist/src/services/google/people.js +22 -0
  123. package/dist/src/services/google/people.js.map +1 -0
  124. package/dist/src/services/google/sheets.d.ts +11 -0
  125. package/dist/src/services/google/sheets.d.ts.map +1 -0
  126. package/dist/src/services/google/sheets.js +19 -0
  127. package/dist/src/services/google/sheets.js.map +1 -0
  128. package/dist/src/services/googleAnalytics.d.ts +11 -0
  129. package/dist/src/services/googleAnalytics.d.ts.map +1 -0
  130. package/dist/src/services/googleAnalytics.js +18 -0
  131. package/dist/src/services/googleAnalytics.js.map +1 -0
  132. package/dist/src/services/googleMaps.d.ts +12 -0
  133. package/dist/src/services/googleMaps.d.ts.map +1 -0
  134. package/dist/src/services/googleMaps.js +17 -0
  135. package/dist/src/services/googleMaps.js.map +1 -0
  136. package/dist/src/services/index.d.ts +19 -2
  137. package/dist/src/services/index.d.ts.map +1 -1
  138. package/dist/src/services/index.js +19 -2
  139. package/dist/src/services/index.js.map +1 -1
  140. package/dist/src/services/linear.d.ts +1 -0
  141. package/dist/src/services/linear.d.ts.map +1 -1
  142. package/dist/src/services/linear.js +3 -0
  143. package/dist/src/services/linear.js.map +1 -1
  144. package/dist/src/services/mailchimp.d.ts +2 -1
  145. package/dist/src/services/mailchimp.d.ts.map +1 -1
  146. package/dist/src/services/mailchimp.js +4 -3
  147. package/dist/src/services/mailchimp.js.map +1 -1
  148. package/dist/src/services/notion.d.ts +1 -0
  149. package/dist/src/services/notion.d.ts.map +1 -1
  150. package/dist/src/services/notion.js +3 -0
  151. package/dist/src/services/notion.js.map +1 -1
  152. package/dist/src/services/sentry.d.ts +14 -0
  153. package/dist/src/services/sentry.d.ts.map +1 -0
  154. package/dist/src/services/sentry.js +43 -0
  155. package/dist/src/services/sentry.js.map +1 -0
  156. package/dist/src/services/slack.d.ts +30 -1
  157. package/dist/src/services/slack.d.ts.map +1 -1
  158. package/dist/src/services/slack.js +45 -2
  159. package/dist/src/services/slack.js.map +1 -1
  160. package/dist/src/services/stripe.d.ts +12 -0
  161. package/dist/src/services/stripe.d.ts.map +1 -0
  162. package/dist/src/services/stripe.js +14 -0
  163. package/dist/src/services/stripe.js.map +1 -0
  164. package/dist/src/services/telegram.d.ts +40 -0
  165. package/dist/src/services/telegram.d.ts.map +1 -0
  166. package/dist/src/services/telegram.js +73 -0
  167. package/dist/src/services/telegram.js.map +1 -0
  168. package/dist/src/services/yelp.d.ts +12 -0
  169. package/dist/src/services/yelp.d.ts.map +1 -0
  170. package/dist/src/services/yelp.js +16 -0
  171. package/dist/src/services/yelp.js.map +1 -0
  172. package/dist/src/services/zoom.d.ts +12 -0
  173. package/dist/src/services/zoom.d.ts.map +1 -0
  174. package/dist/src/services/zoom.js +18 -0
  175. package/dist/src/services/zoom.js.map +1 -0
  176. package/dist/tests/apiCredentialStore.test.js +2 -19
  177. package/dist/tests/apiCredentialStore.test.js.map +1 -1
  178. package/dist/tests/apiCredentials.test.js +139 -178
  179. package/dist/tests/apiCredentials.test.js.map +1 -1
  180. package/dist/tests/cli.test.js +160 -260
  181. package/dist/tests/cli.test.js.map +1 -1
  182. package/dist/tests/encryptedStorage.test.js +0 -4
  183. package/dist/tests/encryptedStorage.test.js.map +1 -1
  184. package/dist/tests/encryptedStorageKeyGeneration.test.d.ts +2 -0
  185. package/dist/tests/encryptedStorageKeyGeneration.test.d.ts.map +1 -0
  186. package/dist/tests/encryptedStorageKeyGeneration.test.js +22 -0
  187. package/dist/tests/encryptedStorageKeyGeneration.test.js.map +1 -0
  188. package/dist/tests/encryption.test.js +3 -35
  189. package/dist/tests/encryption.test.js.map +1 -1
  190. package/dist/tests/migrations.test.d.ts +2 -0
  191. package/dist/tests/migrations.test.d.ts.map +1 -0
  192. package/dist/tests/migrations.test.js +164 -0
  193. package/dist/tests/migrations.test.js.map +1 -0
  194. package/dist/tests/playwrightDownload.test.js +2 -65
  195. package/dist/tests/playwrightDownload.test.js.map +1 -1
  196. package/dist/tests/registry.test.js +49 -75
  197. package/dist/tests/registry.test.js.map +1 -1
  198. package/dist/tests/servicesAgainstRecordings.test.js +1 -1
  199. package/dist/tests/servicesAgainstRecordings.test.js.map +1 -1
  200. package/package.json +1 -1
package/README.md CHANGED
@@ -139,6 +139,25 @@ so you can use the same interface you are used to. The return
139
139
  code, stdout and stderr are passed back from curl to the caller
140
140
  of `latchkey`.
141
141
 
142
+ ### Indirect credentials
143
+
144
+ Some services can't express their credentials as static curl
145
+ arguments. For example:
146
+
147
+ - AWS requires a signature that changes with each request.
148
+ - Telegram expects bot tokens to be directly part of the URL.
149
+
150
+ In similar cases, when supported, you can use the `latchkey auth set-nocurl` command, e.g.
151
+ like this:
152
+
153
+ ```
154
+ latchkey auth set-nocurl telegram <bot-token>
155
+ ```
156
+
157
+ Latchkey will then modify subsequent `latchkey curl` requests as
158
+ needed. You can find more information (including the expected
159
+ signature) by calling `latchkey services info <service_name>`.
160
+
142
161
  ### Remembering API credentials
143
162
 
144
163
  Your API credentials and browser state are encrypted and stored
@@ -200,14 +219,8 @@ latchkey auth clear
200
219
  You can set these environment variables to override certain
201
220
  defaults:
202
221
 
203
- - `LATCHKEY_STORE`: path to the (typically encrypted) file
204
- containing stored API credentials
205
- - `LATCHKEY_BROWSER_STATE`: path to the (typically encrypted) file
206
- containing the state (cookies, local storage, etc.) of
207
- the browser used for the login popup
222
+ - `LATCHKEY_DIRECTORY`: path to the directory where Latchkey stores its data (defaults to `~/.latchkey`)
208
223
  - `LATCHKEY_CURL`: path to the curl binary
209
- - `LATCHKEY_CONFIG`: path to the configuration file
210
- (defaults to `~/.latchkey/config.json`)
211
224
  - `LATCHKEY_KEYRING_SERVICE_NAME`, `LATCHKEY_KEYRING_ACCOUNT_NAME`: identifiers that are used to store the encryption password in your keyring
212
225
  - `LATCHKEY_ENCRYPTION_KEY`: override the encryption key, e.g. when a keyring is not available. Example: `export LATCHKEY_ENCRYPTION_KEY="$(openssl rand -base64 32)"`
213
226
  - `LATCHKEY_DISABLE_BROWSER`: when set (to any non-empty value), disables the browser login flow; commands that would trigger a browser login (`auth browser`, `auth browser-prepare`) will fail with an error instead
@@ -222,3 +235,10 @@ the browser used for the login popup
222
235
  - Using agents for automated access may be prohibited by some services' ToS.
223
236
  - We reserve the right to change the license of future releases of Latchkey.
224
237
  - Latchkey was not tested on Windows.
238
+
239
+ ## Currently supported services
240
+
241
+ Latchkey currently offers varying levels of support for the
242
+ following services: AWS, Calendly, Discord, Dropbox, Figma, GitHub, GitLab,
243
+ Gmail, Google Analytics, Google Calendar, Google Docs, Google Drive, Google Sheets,
244
+ Linear, Mailchimp, Notion, Sentry, Slack, Stripe, Telegram, Yelp, Zoom, and more.
@@ -68,10 +68,17 @@ latchkey services info slack
68
68
  Returns auth options, credentials status, and developer notes
69
69
  about the service. If `browser` is not present in the
70
70
  `authOptions` field, the service requires the user to directly
71
- set API credentials via `latchkey auth set` before making
72
- requests.
71
+ set API credentials via `latchkey auth set` or `latchkey auth
72
+ set-nocurl` before making requests.
73
73
 
74
74
  ## Notes
75
75
 
76
76
  - All curl arguments are passed through unchanged
77
77
  - Return code, stdout and stderr are passed back from curl
78
+
79
+ ## Currently supported services
80
+
81
+ Latchkey currently offers varying levels of support for the
82
+ following services: AWS, Calendly, Discord, Dropbox, Figma, GitHub, GitLab,
83
+ Gmail, Google Analytics, Google Calendar, Google Docs, Google Drive, Google Sheets,
84
+ Linear, Mailchimp, Notion, Sentry, Slack, Stripe, Telegram, Yelp, Zoom, and more.
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "latchkey",
3
- "version": "1.0.1",
3
+ "version": "2.0.0",
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": {
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * API credential store for persisting and loading API credentials.
3
3
  */
4
- import { ApiCredentials } from './apiCredentials.js';
4
+ import type { ApiCredentials } from './apiCredentials.js';
5
5
  import { EncryptedStorage } from './encryptedStorage.js';
6
6
  export declare class ApiCredentialStoreError extends Error {
7
7
  constructor(message: string);
@@ -1 +1 @@
1
- {"version":3,"file":"apiCredentialStore.d.ts","sourceRoot":"","sources":["../../src/apiCredentialStore.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,cAAc,EAIf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,qBAAa,uBAAwB,SAAQ,KAAK;gBACpC,OAAO,EAAE,MAAM;CAI5B;AAID,qBAAa,kBAAkB;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;gBAExC,IAAI,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB;IAK5D,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,aAAa;IAUrB,GAAG,CAAC,WAAW,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAiB/C,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,GAAG,IAAI;IAM/D,MAAM,IAAI,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC;IAe7C,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;CASrC"}
1
+ {"version":3,"file":"apiCredentialStore.d.ts","sourceRoot":"","sources":["../../src/apiCredentialStore.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAM1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,qBAAa,uBAAwB,SAAQ,KAAK;gBACpC,OAAO,EAAE,MAAM;CAI5B;AAID,qBAAa,kBAAkB;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;gBAExC,IAAI,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB;IAK5D,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,aAAa;IAUrB,GAAG,CAAC,WAAW,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAiB/C,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,GAAG,IAAI;IAM/D,MAAM,IAAI,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC;IAe7C,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;CASrC"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * API credential store for persisting and loading API credentials.
3
3
  */
4
- import { ApiCredentialsSchema, deserializeCredentials, serializeCredentials, } from './apiCredentials.js';
4
+ import { ApiCredentialsSchema, deserializeCredentials, serializeCredentials, } from './apiCredentialsSerialization.js';
5
5
  export class ApiCredentialStoreError extends Error {
6
6
  constructor(message) {
7
7
  super(message);
@@ -1 +1 @@
1
- {"version":3,"file":"apiCredentialStore.js","sourceRoot":"","sources":["../../src/apiCredentialStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apiCredentialStore.js","sourceRoot":"","sources":["../../src/apiCredentialStore.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  /**
2
- * Serialized API credentials types and utilities.
3
- *
2
+ * Base API credentials types and generic credential implementations.
4
3
  */
5
4
  import { z } from 'zod';
6
5
  export declare enum ApiCredentialStatus {
@@ -10,11 +9,15 @@ export declare enum ApiCredentialStatus {
10
9
  }
11
10
  /**
12
11
  * Base interface for all API credentials.
13
- * Each credential type must specify how to convert itself to curl arguments.
12
+ * Each credential type must specify how to inject itself into a curl call.
14
13
  */
15
14
  export interface ApiCredentials {
16
15
  readonly objectType: string;
17
- asCurlArguments(): readonly string[];
16
+ /**
17
+ * Inject credentials into a curl call by modifying the given arguments array.
18
+ * Implementations may add headers, change the URL, or transform arguments in any way.
19
+ */
20
+ injectIntoCurlCall(curlArguments: readonly string[]): readonly string[];
18
21
  /**
19
22
  * Check if the credentials are expired.
20
23
  * Returns true if expired, false if valid, or undefined if expiration is unknown.
@@ -39,7 +42,7 @@ export declare class AuthorizationBearer implements ApiCredentials {
39
42
  readonly objectType: "authorizationBearer";
40
43
  readonly token: string;
41
44
  constructor(token: string);
42
- asCurlArguments(): readonly string[];
45
+ injectIntoCurlCall(curlArguments: readonly string[]): readonly string[];
43
46
  isExpired(): boolean | undefined;
44
47
  toJSON(): AuthorizationBearerData;
45
48
  static fromJSON(data: AuthorizationBearerData): AuthorizationBearer;
@@ -62,38 +65,11 @@ export declare class AuthorizationBare implements ApiCredentials {
62
65
  readonly objectType: "authorizationBare";
63
66
  readonly token: string;
64
67
  constructor(token: string);
65
- asCurlArguments(): readonly string[];
68
+ injectIntoCurlCall(curlArguments: readonly string[]): readonly string[];
66
69
  isExpired(): boolean | undefined;
67
70
  toJSON(): AuthorizationBareData;
68
71
  static fromJSON(data: AuthorizationBareData): AuthorizationBare;
69
72
  }
70
- /**
71
- * Slack-specific credentials (token + d cookie).
72
- */
73
- export declare const SlackApiCredentialsSchema: z.ZodObject<{
74
- objectType: z.ZodLiteral<"slack">;
75
- token: z.ZodString;
76
- dCookie: z.ZodString;
77
- }, "strip", z.ZodTypeAny, {
78
- objectType: "slack";
79
- token: string;
80
- dCookie: string;
81
- }, {
82
- objectType: "slack";
83
- token: string;
84
- dCookie: string;
85
- }>;
86
- export type SlackApiCredentialsData = z.infer<typeof SlackApiCredentialsSchema>;
87
- export declare class SlackApiCredentials implements ApiCredentials {
88
- readonly objectType: "slack";
89
- readonly token: string;
90
- readonly dCookie: string;
91
- constructor(token: string, dCookie: string);
92
- asCurlArguments(): readonly string[];
93
- isExpired(): boolean | undefined;
94
- toJSON(): SlackApiCredentialsData;
95
- static fromJSON(data: SlackApiCredentialsData): SlackApiCredentials;
96
- }
97
73
  /**
98
74
  * Raw curl arguments stored directly as credentials.
99
75
  * Allows users to manually set arbitrary curl arguments for a service.
@@ -113,7 +89,7 @@ export declare class RawCurlCredentials implements ApiCredentials {
113
89
  readonly objectType: "rawCurl";
114
90
  readonly curlArguments: readonly string[];
115
91
  constructor(curlArguments: readonly string[]);
116
- asCurlArguments(): readonly string[];
92
+ injectIntoCurlCall(curlArguments: readonly string[]): readonly string[];
117
93
  isExpired(): boolean | undefined;
118
94
  toJSON(): RawCurlCredentialsData;
119
95
  static fromJSON(data: RawCurlCredentialsData): RawCurlCredentials;
@@ -159,7 +135,7 @@ export declare class OAuthCredentials implements ApiCredentials {
159
135
  readonly accessTokenExpiresAt?: string;
160
136
  readonly refreshTokenExpiresAt?: string;
161
137
  constructor(clientId: string, clientSecret: string, accessToken?: string, refreshToken?: string, accessTokenExpiresAt?: string, refreshTokenExpiresAt?: string);
162
- asCurlArguments(): readonly string[];
138
+ injectIntoCurlCall(curlArguments: readonly string[]): readonly string[];
163
139
  isExpired(): boolean | undefined;
164
140
  toJSON(): OAuthCredentialsData;
165
141
  static fromJSON(data: OAuthCredentialsData): OAuthCredentials;
@@ -167,83 +143,4 @@ export declare class OAuthCredentials implements ApiCredentials {
167
143
  export declare class ApiCredentialsUsageError extends Error {
168
144
  constructor(message: string);
169
145
  }
170
- /**
171
- * Union schema for all credential types.
172
- */
173
- export declare const ApiCredentialsSchema: z.ZodDiscriminatedUnion<"objectType", [z.ZodObject<{
174
- objectType: z.ZodLiteral<"authorizationBearer">;
175
- token: z.ZodString;
176
- }, "strip", z.ZodTypeAny, {
177
- objectType: "authorizationBearer";
178
- token: string;
179
- }, {
180
- objectType: "authorizationBearer";
181
- token: string;
182
- }>, z.ZodObject<{
183
- objectType: z.ZodLiteral<"authorizationBare">;
184
- token: z.ZodString;
185
- }, "strip", z.ZodTypeAny, {
186
- objectType: "authorizationBare";
187
- token: string;
188
- }, {
189
- objectType: "authorizationBare";
190
- token: string;
191
- }>, z.ZodObject<{
192
- objectType: z.ZodLiteral<"slack">;
193
- token: z.ZodString;
194
- dCookie: z.ZodString;
195
- }, "strip", z.ZodTypeAny, {
196
- objectType: "slack";
197
- token: string;
198
- dCookie: string;
199
- }, {
200
- objectType: "slack";
201
- token: string;
202
- dCookie: string;
203
- }>, z.ZodObject<{
204
- objectType: z.ZodLiteral<"oauth">;
205
- accessToken: z.ZodOptional<z.ZodString>;
206
- refreshToken: z.ZodOptional<z.ZodString>;
207
- clientId: z.ZodString;
208
- clientSecret: z.ZodString;
209
- accessTokenExpiresAt: z.ZodOptional<z.ZodString>;
210
- refreshTokenExpiresAt: z.ZodOptional<z.ZodString>;
211
- }, "strip", z.ZodTypeAny, {
212
- objectType: "oauth";
213
- clientId: string;
214
- clientSecret: string;
215
- accessToken?: string | undefined;
216
- refreshToken?: string | undefined;
217
- accessTokenExpiresAt?: string | undefined;
218
- refreshTokenExpiresAt?: string | undefined;
219
- }, {
220
- objectType: "oauth";
221
- clientId: string;
222
- clientSecret: string;
223
- accessToken?: string | undefined;
224
- refreshToken?: string | undefined;
225
- accessTokenExpiresAt?: string | undefined;
226
- refreshTokenExpiresAt?: string | undefined;
227
- }>, z.ZodObject<{
228
- objectType: z.ZodLiteral<"rawCurl">;
229
- curlArguments: z.ZodArray<z.ZodString, "many">;
230
- }, "strip", z.ZodTypeAny, {
231
- objectType: "rawCurl";
232
- curlArguments: string[];
233
- }, {
234
- objectType: "rawCurl";
235
- curlArguments: string[];
236
- }>]>;
237
- export type ApiCredentialsData = z.infer<typeof ApiCredentialsSchema>;
238
- /**
239
- * Deserialize credentials from JSON data.
240
- */
241
- export declare function deserializeCredentials(data: ApiCredentialsData): ApiCredentials;
242
- /**
243
- * Serialize credentials to JSON data.
244
- */
245
- export declare function serializeCredentials(credentials: ApiCredentials): ApiCredentialsData;
246
- export declare class ApiCredentialsSerializationError extends Error {
247
- constructor(message: string);
248
- }
249
146
  //# sourceMappingURL=apiCredentials.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"apiCredentials.d.ts","sourceRoot":"","sources":["../../src/apiCredentials.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apiCredentials.d.ts","sourceRoot":"","sources":["../../src/apiCredentials.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  /**
2
- * Serialized API credentials types and utilities.
3
- *
2
+ * Base API credentials types and generic credential implementations.
4
3
  */
5
4
  import { z } from 'zod';
6
5
  export var ApiCredentialStatus;
@@ -22,8 +21,8 @@ export class AuthorizationBearer {
22
21
  constructor(token) {
23
22
  this.token = token;
24
23
  }
25
- asCurlArguments() {
26
- return ['-H', `Authorization: Bearer ${this.token}`];
24
+ injectIntoCurlCall(curlArguments) {
25
+ return ['-H', `Authorization: Bearer ${this.token}`, ...curlArguments];
27
26
  }
28
27
  isExpired() {
29
28
  return undefined;
@@ -51,8 +50,8 @@ export class AuthorizationBare {
51
50
  constructor(token) {
52
51
  this.token = token;
53
52
  }
54
- asCurlArguments() {
55
- return ['-H', `Authorization: ${this.token}`];
53
+ injectIntoCurlCall(curlArguments) {
54
+ return ['-H', `Authorization: ${this.token}`, ...curlArguments];
56
55
  }
57
56
  isExpired() {
58
57
  return undefined;
@@ -67,39 +66,6 @@ export class AuthorizationBare {
67
66
  return new AuthorizationBare(data.token);
68
67
  }
69
68
  }
70
- /**
71
- * Slack-specific credentials (token + d cookie).
72
- */
73
- export const SlackApiCredentialsSchema = z.object({
74
- objectType: z.literal('slack'),
75
- token: z.string(),
76
- dCookie: z.string(),
77
- });
78
- export class SlackApiCredentials {
79
- objectType = 'slack';
80
- token;
81
- dCookie;
82
- constructor(token, dCookie) {
83
- this.token = token;
84
- this.dCookie = dCookie;
85
- }
86
- asCurlArguments() {
87
- return ['-H', `Authorization: Bearer ${this.token}`, '-H', `Cookie: d=${this.dCookie}`];
88
- }
89
- isExpired() {
90
- return undefined;
91
- }
92
- toJSON() {
93
- return {
94
- objectType: this.objectType,
95
- token: this.token,
96
- dCookie: this.dCookie,
97
- };
98
- }
99
- static fromJSON(data) {
100
- return new SlackApiCredentials(data.token, data.dCookie);
101
- }
102
- }
103
69
  /**
104
70
  * Raw curl arguments stored directly as credentials.
105
71
  * Allows users to manually set arbitrary curl arguments for a service.
@@ -114,8 +80,8 @@ export class RawCurlCredentials {
114
80
  constructor(curlArguments) {
115
81
  this.curlArguments = curlArguments;
116
82
  }
117
- asCurlArguments() {
118
- return this.curlArguments;
83
+ injectIntoCurlCall(curlArguments) {
84
+ return [...this.curlArguments, ...curlArguments];
119
85
  }
120
86
  isExpired() {
121
87
  return undefined;
@@ -161,11 +127,11 @@ export class OAuthCredentials {
161
127
  this.accessTokenExpiresAt = accessTokenExpiresAt;
162
128
  this.refreshTokenExpiresAt = refreshTokenExpiresAt;
163
129
  }
164
- asCurlArguments() {
130
+ injectIntoCurlCall(curlArguments) {
165
131
  if (this.accessToken === undefined) {
166
132
  throw new ApiCredentialsUsageError('OAuth credentials missing access token. Run login to obtain access tokens.');
167
133
  }
168
- return ['-H', `Authorization: Bearer ${this.accessToken}`];
134
+ return ['-H', `Authorization: Bearer ${this.accessToken}`, ...curlArguments];
169
135
  }
170
136
  isExpired() {
171
137
  if (this.accessTokenExpiresAt === undefined) {
@@ -196,62 +162,4 @@ export class ApiCredentialsUsageError extends Error {
196
162
  this.name = 'ApiCredentialsUsageError';
197
163
  }
198
164
  }
199
- /**
200
- * Union schema for all credential types.
201
- */
202
- export const ApiCredentialsSchema = z.discriminatedUnion('objectType', [
203
- AuthorizationBearerSchema,
204
- AuthorizationBareSchema,
205
- SlackApiCredentialsSchema,
206
- OAuthCredentialsSchema,
207
- RawCurlCredentialsSchema,
208
- ]);
209
- /**
210
- * Deserialize credentials from JSON data.
211
- */
212
- export function deserializeCredentials(data) {
213
- switch (data.objectType) {
214
- case 'authorizationBearer':
215
- return AuthorizationBearer.fromJSON(data);
216
- case 'authorizationBare':
217
- return AuthorizationBare.fromJSON(data);
218
- case 'slack':
219
- return SlackApiCredentials.fromJSON(data);
220
- case 'oauth':
221
- return OAuthCredentials.fromJSON(data);
222
- case 'rawCurl':
223
- return RawCurlCredentials.fromJSON(data);
224
- default: {
225
- const exhaustiveCheck = data;
226
- throw new ApiCredentialsSerializationError(`Unknown credential type: ${exhaustiveCheck.objectType}`);
227
- }
228
- }
229
- }
230
- /**
231
- * Serialize credentials to JSON data.
232
- */
233
- export function serializeCredentials(credentials) {
234
- if (credentials instanceof AuthorizationBearer) {
235
- return credentials.toJSON();
236
- }
237
- if (credentials instanceof AuthorizationBare) {
238
- return credentials.toJSON();
239
- }
240
- if (credentials instanceof SlackApiCredentials) {
241
- return credentials.toJSON();
242
- }
243
- if (credentials instanceof OAuthCredentials) {
244
- return credentials.toJSON();
245
- }
246
- if (credentials instanceof RawCurlCredentials) {
247
- return credentials.toJSON();
248
- }
249
- throw new ApiCredentialsSerializationError(`Unknown credential type: ${credentials.objectType}`);
250
- }
251
- export class ApiCredentialsSerializationError extends Error {
252
- constructor(message) {
253
- super(message);
254
- this.name = 'ApiCredentialsSerializationError';
255
- }
256
- }
257
165
  //# sourceMappingURL=apiCredentials.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"apiCredentials.js","sourceRoot":"","sources":["../../src/apiCredentials.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apiCredentials.js","sourceRoot":"","sources":["../../src/apiCredentials.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,119 @@
1
+ /**
2
+ * Serialization and deserialization of API credentials.
3
+ *
4
+ * This module is separate from apiCredentials.ts to avoid circular dependencies:
5
+ * service files import base types from apiCredentials.ts, and this module imports
6
+ * from both apiCredentials.ts and service files.
7
+ */
8
+ import { z } from 'zod';
9
+ import { type ApiCredentials } from './apiCredentials.js';
10
+ /**
11
+ * Union schema for all credential types.
12
+ */
13
+ export declare const ApiCredentialsSchema: z.ZodDiscriminatedUnion<"objectType", [z.ZodObject<{
14
+ objectType: z.ZodLiteral<"authorizationBearer">;
15
+ token: z.ZodString;
16
+ }, "strip", z.ZodTypeAny, {
17
+ objectType: "authorizationBearer";
18
+ token: string;
19
+ }, {
20
+ objectType: "authorizationBearer";
21
+ token: string;
22
+ }>, z.ZodObject<{
23
+ objectType: z.ZodLiteral<"authorizationBare">;
24
+ token: z.ZodString;
25
+ }, "strip", z.ZodTypeAny, {
26
+ objectType: "authorizationBare";
27
+ token: string;
28
+ }, {
29
+ objectType: "authorizationBare";
30
+ token: string;
31
+ }>, z.ZodObject<{
32
+ objectType: z.ZodLiteral<"slack">;
33
+ token: z.ZodString;
34
+ dCookie: z.ZodString;
35
+ }, "strip", z.ZodTypeAny, {
36
+ objectType: "slack";
37
+ token: string;
38
+ dCookie: string;
39
+ }, {
40
+ objectType: "slack";
41
+ token: string;
42
+ dCookie: string;
43
+ }>, z.ZodObject<{
44
+ objectType: z.ZodLiteral<"oauth">;
45
+ accessToken: z.ZodOptional<z.ZodString>;
46
+ refreshToken: z.ZodOptional<z.ZodString>;
47
+ clientId: z.ZodString;
48
+ clientSecret: z.ZodString;
49
+ accessTokenExpiresAt: z.ZodOptional<z.ZodString>;
50
+ refreshTokenExpiresAt: z.ZodOptional<z.ZodString>;
51
+ }, "strip", z.ZodTypeAny, {
52
+ objectType: "oauth";
53
+ clientId: string;
54
+ clientSecret: string;
55
+ accessToken?: string | undefined;
56
+ refreshToken?: string | undefined;
57
+ accessTokenExpiresAt?: string | undefined;
58
+ refreshTokenExpiresAt?: string | undefined;
59
+ }, {
60
+ objectType: "oauth";
61
+ clientId: string;
62
+ clientSecret: string;
63
+ accessToken?: string | undefined;
64
+ refreshToken?: string | undefined;
65
+ accessTokenExpiresAt?: string | undefined;
66
+ refreshTokenExpiresAt?: string | undefined;
67
+ }>, z.ZodObject<{
68
+ objectType: z.ZodLiteral<"rawCurl">;
69
+ curlArguments: z.ZodArray<z.ZodString, "many">;
70
+ }, "strip", z.ZodTypeAny, {
71
+ objectType: "rawCurl";
72
+ curlArguments: string[];
73
+ }, {
74
+ objectType: "rawCurl";
75
+ curlArguments: string[];
76
+ }>, z.ZodObject<{
77
+ objectType: z.ZodLiteral<"telegramBot">;
78
+ token: z.ZodString;
79
+ }, "strip", z.ZodTypeAny, {
80
+ objectType: "telegramBot";
81
+ token: string;
82
+ }, {
83
+ objectType: "telegramBot";
84
+ token: string;
85
+ }>, z.ZodObject<{
86
+ objectType: z.ZodLiteral<"aws">;
87
+ accessKeyId: z.ZodString;
88
+ secretAccessKey: z.ZodString;
89
+ }, "strip", z.ZodTypeAny, {
90
+ objectType: "aws";
91
+ accessKeyId: string;
92
+ secretAccessKey: string;
93
+ }, {
94
+ objectType: "aws";
95
+ accessKeyId: string;
96
+ secretAccessKey: string;
97
+ }>, z.ZodObject<{
98
+ objectType: z.ZodLiteral<"googleApiKey">;
99
+ apiKey: z.ZodString;
100
+ }, "strip", z.ZodTypeAny, {
101
+ objectType: "googleApiKey";
102
+ apiKey: string;
103
+ }, {
104
+ objectType: "googleApiKey";
105
+ apiKey: string;
106
+ }>]>;
107
+ export type ApiCredentialsData = z.infer<typeof ApiCredentialsSchema>;
108
+ /**
109
+ * Deserialize credentials from JSON data.
110
+ */
111
+ export declare function deserializeCredentials(data: ApiCredentialsData): ApiCredentials;
112
+ /**
113
+ * Serialize credentials to JSON data.
114
+ */
115
+ export declare function serializeCredentials(credentials: ApiCredentials): ApiCredentialsData;
116
+ export declare class ApiCredentialsSerializationError extends Error {
117
+ constructor(message: string);
118
+ }
119
+ //# sourceMappingURL=apiCredentialsSerialization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apiCredentialsSerialization.d.ts","sourceRoot":"","sources":["../../src/apiCredentialsSerialization.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,KAAK,cAAc,EASpB,MAAM,qBAAqB,CAAC;AAM7B;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAS/B,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAEtE;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,kBAAkB,GAAG,cAAc,CAyB/E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,cAAc,GAAG,kBAAkB,CA0BpF;AAED,qBAAa,gCAAiC,SAAQ,KAAK;gBAC7C,OAAO,EAAE,MAAM;CAI5B"}