@frontmcp/auth 0.0.1 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/README.md +11 -0
  2. package/authorization/authorization.types.d.ts +236 -0
  3. package/authorization/authorization.types.d.ts.map +1 -0
  4. package/authorization/index.d.ts +9 -0
  5. package/authorization/index.d.ts.map +1 -0
  6. package/cimd/cimd-redis.cache.d.ts +111 -0
  7. package/cimd/cimd-redis.cache.d.ts.map +1 -0
  8. package/cimd/cimd.cache.d.ts +200 -0
  9. package/cimd/cimd.cache.d.ts.map +1 -0
  10. package/cimd/cimd.errors.d.ts +124 -0
  11. package/cimd/cimd.errors.d.ts.map +1 -0
  12. package/cimd/cimd.logger.d.ts +39 -0
  13. package/cimd/cimd.logger.d.ts.map +1 -0
  14. package/cimd/cimd.service.d.ts +88 -0
  15. package/cimd/cimd.service.d.ts.map +1 -0
  16. package/cimd/cimd.types.d.ts +178 -0
  17. package/cimd/cimd.types.d.ts.map +1 -0
  18. package/cimd/cimd.validator.d.ts +49 -0
  19. package/cimd/cimd.validator.d.ts.map +1 -0
  20. package/cimd/index.d.ts +17 -0
  21. package/cimd/index.d.ts.map +1 -0
  22. package/esm/index.mjs +4001 -0
  23. package/esm/package.json +59 -0
  24. package/index.d.ts +44 -0
  25. package/index.d.ts.map +1 -0
  26. package/index.js +4131 -0
  27. package/jwks/dev-key-persistence.d.ts +70 -0
  28. package/jwks/dev-key-persistence.d.ts.map +1 -0
  29. package/jwks/index.d.ts +20 -0
  30. package/jwks/index.d.ts.map +1 -0
  31. package/jwks/jwks.service.d.ts +69 -0
  32. package/jwks/jwks.service.d.ts.map +1 -0
  33. package/jwks/jwks.types.d.ts +33 -0
  34. package/jwks/jwks.types.d.ts.map +1 -0
  35. package/jwks/jwks.utils.d.ts +5 -0
  36. package/jwks/jwks.utils.d.ts.map +1 -0
  37. package/package.json +2 -2
  38. package/session/authorization-vault.d.ts +667 -0
  39. package/session/authorization-vault.d.ts.map +1 -0
  40. package/session/authorization.store.d.ts +311 -0
  41. package/session/authorization.store.d.ts.map +1 -0
  42. package/session/index.d.ts +19 -0
  43. package/session/index.d.ts.map +1 -0
  44. package/session/storage/in-memory-authorization-vault.d.ts +53 -0
  45. package/session/storage/in-memory-authorization-vault.d.ts.map +1 -0
  46. package/session/storage/index.d.ts +17 -0
  47. package/session/storage/index.d.ts.map +1 -0
  48. package/session/storage/storage-authorization-vault.d.ts +107 -0
  49. package/session/storage/storage-authorization-vault.d.ts.map +1 -0
  50. package/session/storage/storage-token-store.d.ts +92 -0
  51. package/session/storage/storage-token-store.d.ts.map +1 -0
  52. package/session/token.store.d.ts +39 -0
  53. package/session/token.store.d.ts.map +1 -0
  54. package/session/token.vault.d.ts +33 -0
  55. package/session/token.vault.d.ts.map +1 -0
  56. package/session/utils/index.d.ts +5 -0
  57. package/session/utils/index.d.ts.map +1 -0
  58. package/session/utils/tiny-ttl-cache.d.ts +20 -0
  59. package/session/utils/tiny-ttl-cache.d.ts.map +1 -0
  60. package/session/vault-encryption.d.ts +190 -0
  61. package/session/vault-encryption.d.ts.map +1 -0
  62. package/ui/base-layout.d.ts +170 -0
  63. package/ui/base-layout.d.ts.map +1 -0
  64. package/ui/index.d.ts +10 -0
  65. package/ui/index.d.ts.map +1 -0
  66. package/ui/templates.d.ts +134 -0
  67. package/ui/templates.d.ts.map +1 -0
  68. package/utils/audience.validator.d.ts +130 -0
  69. package/utils/audience.validator.d.ts.map +1 -0
  70. package/utils/index.d.ts +8 -0
  71. package/utils/index.d.ts.map +1 -0
  72. package/utils/www-authenticate.utils.d.ts +98 -0
  73. package/utils/www-authenticate.utils.d.ts.map +1 -0
  74. package/vault/auth-providers.types.d.ts +262 -0
  75. package/vault/auth-providers.types.d.ts.map +1 -0
  76. package/vault/credential-cache.d.ts +98 -0
  77. package/vault/credential-cache.d.ts.map +1 -0
  78. package/vault/credential-helpers.d.ts +14 -0
  79. package/vault/credential-helpers.d.ts.map +1 -0
  80. package/vault/index.d.ts +10 -0
  81. package/vault/index.d.ts.map +1 -0
@@ -0,0 +1,667 @@
1
+ /**
2
+ * Authorization Vault
3
+ *
4
+ * Secure storage for stateful authorization sessions.
5
+ * Stores provider tokens, consent selections, and session metadata.
6
+ *
7
+ * Supports multiple credential types:
8
+ * - OAuth tokens (access_token, refresh_token, scopes)
9
+ * - API Keys (key value, header name)
10
+ * - Basic Auth (username, password)
11
+ * - Private Keys (PEM/JWK format for signing)
12
+ * - Custom credentials (extensible)
13
+ *
14
+ * In stateful mode:
15
+ * - Access token is a non-rotatable key to this vault
16
+ * - All sensitive data stored server-side
17
+ * - Supports incremental authorization via links
18
+ *
19
+ * In stateless mode:
20
+ * - No vault used, all data in JWT claims
21
+ * - No incremental authorization support
22
+ */
23
+ import { z } from 'zod';
24
+ /**
25
+ * Supported credential types for app authentication
26
+ */
27
+ export declare const credentialTypeSchema: z.ZodEnum<{
28
+ custom: "custom";
29
+ oauth: "oauth";
30
+ api_key: "api_key";
31
+ basic: "basic";
32
+ bearer: "bearer";
33
+ private_key: "private_key";
34
+ mtls: "mtls";
35
+ ssh_key: "ssh_key";
36
+ service_account: "service_account";
37
+ oauth_pkce: "oauth_pkce";
38
+ }>;
39
+ export type CredentialType = z.infer<typeof credentialTypeSchema>;
40
+ /**
41
+ * OAuth credential - standard OAuth 2.0 tokens
42
+ */
43
+ export declare const oauthCredentialSchema: z.ZodObject<{
44
+ type: z.ZodLiteral<"oauth">;
45
+ accessToken: z.ZodString;
46
+ refreshToken: z.ZodOptional<z.ZodString>;
47
+ tokenType: z.ZodDefault<z.ZodString>;
48
+ expiresAt: z.ZodOptional<z.ZodNumber>;
49
+ scopes: z.ZodDefault<z.ZodArray<z.ZodString>>;
50
+ idToken: z.ZodOptional<z.ZodString>;
51
+ }, z.core.$strip>;
52
+ /**
53
+ * API Key credential - sent in header or query param
54
+ */
55
+ export declare const apiKeyCredentialSchema: z.ZodObject<{
56
+ type: z.ZodLiteral<"api_key">;
57
+ key: z.ZodString;
58
+ headerName: z.ZodDefault<z.ZodString>;
59
+ headerPrefix: z.ZodOptional<z.ZodString>;
60
+ queryParam: z.ZodOptional<z.ZodString>;
61
+ }, z.core.$strip>;
62
+ /**
63
+ * Basic Auth credential - username and password
64
+ */
65
+ export declare const basicAuthCredentialSchema: z.ZodObject<{
66
+ type: z.ZodLiteral<"basic">;
67
+ username: z.ZodString;
68
+ password: z.ZodString;
69
+ encodedValue: z.ZodOptional<z.ZodString>;
70
+ }, z.core.$strip>;
71
+ /**
72
+ * Bearer token credential - static bearer token
73
+ */
74
+ export declare const bearerCredentialSchema: z.ZodObject<{
75
+ type: z.ZodLiteral<"bearer">;
76
+ token: z.ZodString;
77
+ expiresAt: z.ZodOptional<z.ZodNumber>;
78
+ }, z.core.$strip>;
79
+ /**
80
+ * Private key credential - for JWT signing or request signing
81
+ */
82
+ export declare const privateKeyCredentialSchema: z.ZodObject<{
83
+ type: z.ZodLiteral<"private_key">;
84
+ format: z.ZodEnum<{
85
+ pem: "pem";
86
+ jwk: "jwk";
87
+ pkcs8: "pkcs8";
88
+ pkcs12: "pkcs12";
89
+ }>;
90
+ keyData: z.ZodString;
91
+ keyId: z.ZodOptional<z.ZodString>;
92
+ algorithm: z.ZodOptional<z.ZodString>;
93
+ passphrase: z.ZodOptional<z.ZodString>;
94
+ certificate: z.ZodOptional<z.ZodString>;
95
+ }, z.core.$strip>;
96
+ /**
97
+ * mTLS credential - client certificate for mutual TLS
98
+ */
99
+ export declare const mtlsCredentialSchema: z.ZodObject<{
100
+ type: z.ZodLiteral<"mtls">;
101
+ certificate: z.ZodString;
102
+ privateKey: z.ZodString;
103
+ passphrase: z.ZodOptional<z.ZodString>;
104
+ caCertificate: z.ZodOptional<z.ZodString>;
105
+ }, z.core.$strip>;
106
+ /**
107
+ * Custom credential - extensible for app-specific auth
108
+ */
109
+ export declare const customCredentialSchema: z.ZodObject<{
110
+ type: z.ZodLiteral<"custom">;
111
+ customType: z.ZodString;
112
+ data: z.ZodRecord<z.ZodString, z.ZodUnknown>;
113
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
114
+ }, z.core.$strip>;
115
+ /**
116
+ * SSH Key credential - for SSH-based authentication
117
+ */
118
+ export declare const sshKeyCredentialSchema: z.ZodObject<{
119
+ type: z.ZodLiteral<"ssh_key">;
120
+ privateKey: z.ZodString;
121
+ publicKey: z.ZodOptional<z.ZodString>;
122
+ passphrase: z.ZodOptional<z.ZodString>;
123
+ keyType: z.ZodDefault<z.ZodEnum<{
124
+ rsa: "rsa";
125
+ dsa: "dsa";
126
+ ed25519: "ed25519";
127
+ ecdsa: "ecdsa";
128
+ }>>;
129
+ fingerprint: z.ZodOptional<z.ZodString>;
130
+ username: z.ZodOptional<z.ZodString>;
131
+ }, z.core.$strip>;
132
+ /**
133
+ * Service Account credential - for cloud provider service accounts (GCP, AWS, Azure)
134
+ */
135
+ export declare const serviceAccountCredentialSchema: z.ZodObject<{
136
+ type: z.ZodLiteral<"service_account">;
137
+ provider: z.ZodEnum<{
138
+ custom: "custom";
139
+ gcp: "gcp";
140
+ aws: "aws";
141
+ azure: "azure";
142
+ }>;
143
+ credentials: z.ZodRecord<z.ZodString, z.ZodUnknown>;
144
+ projectId: z.ZodOptional<z.ZodString>;
145
+ region: z.ZodOptional<z.ZodString>;
146
+ assumeRoleArn: z.ZodOptional<z.ZodString>;
147
+ externalId: z.ZodOptional<z.ZodString>;
148
+ serviceAccountId: z.ZodOptional<z.ZodString>;
149
+ expiresAt: z.ZodOptional<z.ZodNumber>;
150
+ }, z.core.$strip>;
151
+ /**
152
+ * PKCE OAuth credential - OAuth 2.0 with PKCE for public clients
153
+ */
154
+ export declare const pkceOAuthCredentialSchema: z.ZodObject<{
155
+ type: z.ZodLiteral<"oauth_pkce">;
156
+ accessToken: z.ZodString;
157
+ refreshToken: z.ZodOptional<z.ZodString>;
158
+ tokenType: z.ZodDefault<z.ZodString>;
159
+ expiresAt: z.ZodOptional<z.ZodNumber>;
160
+ scopes: z.ZodDefault<z.ZodArray<z.ZodString>>;
161
+ idToken: z.ZodOptional<z.ZodString>;
162
+ issuer: z.ZodOptional<z.ZodString>;
163
+ }, z.core.$strip>;
164
+ /**
165
+ * Union of all credential types
166
+ */
167
+ export declare const credentialSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
168
+ type: z.ZodLiteral<"oauth">;
169
+ accessToken: z.ZodString;
170
+ refreshToken: z.ZodOptional<z.ZodString>;
171
+ tokenType: z.ZodDefault<z.ZodString>;
172
+ expiresAt: z.ZodOptional<z.ZodNumber>;
173
+ scopes: z.ZodDefault<z.ZodArray<z.ZodString>>;
174
+ idToken: z.ZodOptional<z.ZodString>;
175
+ }, z.core.$strip>, z.ZodObject<{
176
+ type: z.ZodLiteral<"api_key">;
177
+ key: z.ZodString;
178
+ headerName: z.ZodDefault<z.ZodString>;
179
+ headerPrefix: z.ZodOptional<z.ZodString>;
180
+ queryParam: z.ZodOptional<z.ZodString>;
181
+ }, z.core.$strip>, z.ZodObject<{
182
+ type: z.ZodLiteral<"basic">;
183
+ username: z.ZodString;
184
+ password: z.ZodString;
185
+ encodedValue: z.ZodOptional<z.ZodString>;
186
+ }, z.core.$strip>, z.ZodObject<{
187
+ type: z.ZodLiteral<"bearer">;
188
+ token: z.ZodString;
189
+ expiresAt: z.ZodOptional<z.ZodNumber>;
190
+ }, z.core.$strip>, z.ZodObject<{
191
+ type: z.ZodLiteral<"private_key">;
192
+ format: z.ZodEnum<{
193
+ pem: "pem";
194
+ jwk: "jwk";
195
+ pkcs8: "pkcs8";
196
+ pkcs12: "pkcs12";
197
+ }>;
198
+ keyData: z.ZodString;
199
+ keyId: z.ZodOptional<z.ZodString>;
200
+ algorithm: z.ZodOptional<z.ZodString>;
201
+ passphrase: z.ZodOptional<z.ZodString>;
202
+ certificate: z.ZodOptional<z.ZodString>;
203
+ }, z.core.$strip>, z.ZodObject<{
204
+ type: z.ZodLiteral<"mtls">;
205
+ certificate: z.ZodString;
206
+ privateKey: z.ZodString;
207
+ passphrase: z.ZodOptional<z.ZodString>;
208
+ caCertificate: z.ZodOptional<z.ZodString>;
209
+ }, z.core.$strip>, z.ZodObject<{
210
+ type: z.ZodLiteral<"custom">;
211
+ customType: z.ZodString;
212
+ data: z.ZodRecord<z.ZodString, z.ZodUnknown>;
213
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
214
+ }, z.core.$strip>, z.ZodObject<{
215
+ type: z.ZodLiteral<"ssh_key">;
216
+ privateKey: z.ZodString;
217
+ publicKey: z.ZodOptional<z.ZodString>;
218
+ passphrase: z.ZodOptional<z.ZodString>;
219
+ keyType: z.ZodDefault<z.ZodEnum<{
220
+ rsa: "rsa";
221
+ dsa: "dsa";
222
+ ed25519: "ed25519";
223
+ ecdsa: "ecdsa";
224
+ }>>;
225
+ fingerprint: z.ZodOptional<z.ZodString>;
226
+ username: z.ZodOptional<z.ZodString>;
227
+ }, z.core.$strip>, z.ZodObject<{
228
+ type: z.ZodLiteral<"service_account">;
229
+ provider: z.ZodEnum<{
230
+ custom: "custom";
231
+ gcp: "gcp";
232
+ aws: "aws";
233
+ azure: "azure";
234
+ }>;
235
+ credentials: z.ZodRecord<z.ZodString, z.ZodUnknown>;
236
+ projectId: z.ZodOptional<z.ZodString>;
237
+ region: z.ZodOptional<z.ZodString>;
238
+ assumeRoleArn: z.ZodOptional<z.ZodString>;
239
+ externalId: z.ZodOptional<z.ZodString>;
240
+ serviceAccountId: z.ZodOptional<z.ZodString>;
241
+ expiresAt: z.ZodOptional<z.ZodNumber>;
242
+ }, z.core.$strip>, z.ZodObject<{
243
+ type: z.ZodLiteral<"oauth_pkce">;
244
+ accessToken: z.ZodString;
245
+ refreshToken: z.ZodOptional<z.ZodString>;
246
+ tokenType: z.ZodDefault<z.ZodString>;
247
+ expiresAt: z.ZodOptional<z.ZodNumber>;
248
+ scopes: z.ZodDefault<z.ZodArray<z.ZodString>>;
249
+ idToken: z.ZodOptional<z.ZodString>;
250
+ issuer: z.ZodOptional<z.ZodString>;
251
+ }, z.core.$strip>], "type">;
252
+ export type OAuthCredential = z.infer<typeof oauthCredentialSchema>;
253
+ export type ApiKeyCredential = z.infer<typeof apiKeyCredentialSchema>;
254
+ export type BasicAuthCredential = z.infer<typeof basicAuthCredentialSchema>;
255
+ export type BearerCredential = z.infer<typeof bearerCredentialSchema>;
256
+ export type PrivateKeyCredential = z.infer<typeof privateKeyCredentialSchema>;
257
+ export type MtlsCredential = z.infer<typeof mtlsCredentialSchema>;
258
+ export type CustomCredential = z.infer<typeof customCredentialSchema>;
259
+ export type SshKeyCredential = z.infer<typeof sshKeyCredentialSchema>;
260
+ export type ServiceAccountCredential = z.infer<typeof serviceAccountCredentialSchema>;
261
+ export type PkceOAuthCredential = z.infer<typeof pkceOAuthCredentialSchema>;
262
+ export type Credential = z.infer<typeof credentialSchema>;
263
+ /**
264
+ * Credential stored for an app in the vault
265
+ */
266
+ export declare const appCredentialSchema: z.ZodObject<{
267
+ appId: z.ZodString;
268
+ providerId: z.ZodString;
269
+ credential: z.ZodDiscriminatedUnion<[z.ZodObject<{
270
+ type: z.ZodLiteral<"oauth">;
271
+ accessToken: z.ZodString;
272
+ refreshToken: z.ZodOptional<z.ZodString>;
273
+ tokenType: z.ZodDefault<z.ZodString>;
274
+ expiresAt: z.ZodOptional<z.ZodNumber>;
275
+ scopes: z.ZodDefault<z.ZodArray<z.ZodString>>;
276
+ idToken: z.ZodOptional<z.ZodString>;
277
+ }, z.core.$strip>, z.ZodObject<{
278
+ type: z.ZodLiteral<"api_key">;
279
+ key: z.ZodString;
280
+ headerName: z.ZodDefault<z.ZodString>;
281
+ headerPrefix: z.ZodOptional<z.ZodString>;
282
+ queryParam: z.ZodOptional<z.ZodString>;
283
+ }, z.core.$strip>, z.ZodObject<{
284
+ type: z.ZodLiteral<"basic">;
285
+ username: z.ZodString;
286
+ password: z.ZodString;
287
+ encodedValue: z.ZodOptional<z.ZodString>;
288
+ }, z.core.$strip>, z.ZodObject<{
289
+ type: z.ZodLiteral<"bearer">;
290
+ token: z.ZodString;
291
+ expiresAt: z.ZodOptional<z.ZodNumber>;
292
+ }, z.core.$strip>, z.ZodObject<{
293
+ type: z.ZodLiteral<"private_key">;
294
+ format: z.ZodEnum<{
295
+ pem: "pem";
296
+ jwk: "jwk";
297
+ pkcs8: "pkcs8";
298
+ pkcs12: "pkcs12";
299
+ }>;
300
+ keyData: z.ZodString;
301
+ keyId: z.ZodOptional<z.ZodString>;
302
+ algorithm: z.ZodOptional<z.ZodString>;
303
+ passphrase: z.ZodOptional<z.ZodString>;
304
+ certificate: z.ZodOptional<z.ZodString>;
305
+ }, z.core.$strip>, z.ZodObject<{
306
+ type: z.ZodLiteral<"mtls">;
307
+ certificate: z.ZodString;
308
+ privateKey: z.ZodString;
309
+ passphrase: z.ZodOptional<z.ZodString>;
310
+ caCertificate: z.ZodOptional<z.ZodString>;
311
+ }, z.core.$strip>, z.ZodObject<{
312
+ type: z.ZodLiteral<"custom">;
313
+ customType: z.ZodString;
314
+ data: z.ZodRecord<z.ZodString, z.ZodUnknown>;
315
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
316
+ }, z.core.$strip>, z.ZodObject<{
317
+ type: z.ZodLiteral<"ssh_key">;
318
+ privateKey: z.ZodString;
319
+ publicKey: z.ZodOptional<z.ZodString>;
320
+ passphrase: z.ZodOptional<z.ZodString>;
321
+ keyType: z.ZodDefault<z.ZodEnum<{
322
+ rsa: "rsa";
323
+ dsa: "dsa";
324
+ ed25519: "ed25519";
325
+ ecdsa: "ecdsa";
326
+ }>>;
327
+ fingerprint: z.ZodOptional<z.ZodString>;
328
+ username: z.ZodOptional<z.ZodString>;
329
+ }, z.core.$strip>, z.ZodObject<{
330
+ type: z.ZodLiteral<"service_account">;
331
+ provider: z.ZodEnum<{
332
+ custom: "custom";
333
+ gcp: "gcp";
334
+ aws: "aws";
335
+ azure: "azure";
336
+ }>;
337
+ credentials: z.ZodRecord<z.ZodString, z.ZodUnknown>;
338
+ projectId: z.ZodOptional<z.ZodString>;
339
+ region: z.ZodOptional<z.ZodString>;
340
+ assumeRoleArn: z.ZodOptional<z.ZodString>;
341
+ externalId: z.ZodOptional<z.ZodString>;
342
+ serviceAccountId: z.ZodOptional<z.ZodString>;
343
+ expiresAt: z.ZodOptional<z.ZodNumber>;
344
+ }, z.core.$strip>, z.ZodObject<{
345
+ type: z.ZodLiteral<"oauth_pkce">;
346
+ accessToken: z.ZodString;
347
+ refreshToken: z.ZodOptional<z.ZodString>;
348
+ tokenType: z.ZodDefault<z.ZodString>;
349
+ expiresAt: z.ZodOptional<z.ZodNumber>;
350
+ scopes: z.ZodDefault<z.ZodArray<z.ZodString>>;
351
+ idToken: z.ZodOptional<z.ZodString>;
352
+ issuer: z.ZodOptional<z.ZodString>;
353
+ }, z.core.$strip>], "type">;
354
+ acquiredAt: z.ZodNumber;
355
+ lastUsedAt: z.ZodOptional<z.ZodNumber>;
356
+ expiresAt: z.ZodOptional<z.ZodNumber>;
357
+ isValid: z.ZodDefault<z.ZodBoolean>;
358
+ invalidReason: z.ZodOptional<z.ZodString>;
359
+ userInfo: z.ZodOptional<z.ZodObject<{
360
+ sub: z.ZodOptional<z.ZodString>;
361
+ email: z.ZodOptional<z.ZodString>;
362
+ name: z.ZodOptional<z.ZodString>;
363
+ }, z.core.$strip>>;
364
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
365
+ }, z.core.$strip>;
366
+ export type AppCredential = z.infer<typeof appCredentialSchema>;
367
+ /**
368
+ * Consent record stored in vault
369
+ */
370
+ export declare const vaultConsentRecordSchema: z.ZodObject<{
371
+ enabled: z.ZodBoolean;
372
+ selectedToolIds: z.ZodArray<z.ZodString>;
373
+ availableToolIds: z.ZodArray<z.ZodString>;
374
+ consentedAt: z.ZodNumber;
375
+ version: z.ZodDefault<z.ZodString>;
376
+ }, z.core.$strip>;
377
+ /**
378
+ * Federated login record stored in vault
379
+ */
380
+ export declare const vaultFederatedRecordSchema: z.ZodObject<{
381
+ selectedProviderIds: z.ZodArray<z.ZodString>;
382
+ skippedProviderIds: z.ZodArray<z.ZodString>;
383
+ primaryProviderId: z.ZodOptional<z.ZodString>;
384
+ completedAt: z.ZodNumber;
385
+ }, z.core.$strip>;
386
+ /**
387
+ * Pending incremental authorization request
388
+ */
389
+ export declare const pendingIncrementalAuthSchema: z.ZodObject<{
390
+ id: z.ZodString;
391
+ appId: z.ZodString;
392
+ toolId: z.ZodOptional<z.ZodString>;
393
+ authUrl: z.ZodString;
394
+ requiredScopes: z.ZodOptional<z.ZodArray<z.ZodString>>;
395
+ elicitId: z.ZodOptional<z.ZodString>;
396
+ createdAt: z.ZodNumber;
397
+ expiresAt: z.ZodNumber;
398
+ status: z.ZodEnum<{
399
+ pending: "pending";
400
+ completed: "completed";
401
+ cancelled: "cancelled";
402
+ expired: "expired";
403
+ }>;
404
+ }, z.core.$strip>;
405
+ /**
406
+ * Authorization vault entry (the full session state)
407
+ */
408
+ export declare const authorizationVaultEntrySchema: z.ZodObject<{
409
+ id: z.ZodString;
410
+ userSub: z.ZodString;
411
+ userEmail: z.ZodOptional<z.ZodString>;
412
+ userName: z.ZodOptional<z.ZodString>;
413
+ clientId: z.ZodString;
414
+ createdAt: z.ZodNumber;
415
+ lastAccessAt: z.ZodNumber;
416
+ appCredentials: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
417
+ appId: z.ZodString;
418
+ providerId: z.ZodString;
419
+ credential: z.ZodDiscriminatedUnion<[z.ZodObject<{
420
+ type: z.ZodLiteral<"oauth">;
421
+ accessToken: z.ZodString;
422
+ refreshToken: z.ZodOptional<z.ZodString>;
423
+ tokenType: z.ZodDefault<z.ZodString>;
424
+ expiresAt: z.ZodOptional<z.ZodNumber>;
425
+ scopes: z.ZodDefault<z.ZodArray<z.ZodString>>;
426
+ idToken: z.ZodOptional<z.ZodString>;
427
+ }, z.core.$strip>, z.ZodObject<{
428
+ type: z.ZodLiteral<"api_key">;
429
+ key: z.ZodString;
430
+ headerName: z.ZodDefault<z.ZodString>;
431
+ headerPrefix: z.ZodOptional<z.ZodString>;
432
+ queryParam: z.ZodOptional<z.ZodString>;
433
+ }, z.core.$strip>, z.ZodObject<{
434
+ type: z.ZodLiteral<"basic">;
435
+ username: z.ZodString;
436
+ password: z.ZodString;
437
+ encodedValue: z.ZodOptional<z.ZodString>;
438
+ }, z.core.$strip>, z.ZodObject<{
439
+ type: z.ZodLiteral<"bearer">;
440
+ token: z.ZodString;
441
+ expiresAt: z.ZodOptional<z.ZodNumber>;
442
+ }, z.core.$strip>, z.ZodObject<{
443
+ type: z.ZodLiteral<"private_key">;
444
+ format: z.ZodEnum<{
445
+ pem: "pem";
446
+ jwk: "jwk";
447
+ pkcs8: "pkcs8";
448
+ pkcs12: "pkcs12";
449
+ }>;
450
+ keyData: z.ZodString;
451
+ keyId: z.ZodOptional<z.ZodString>;
452
+ algorithm: z.ZodOptional<z.ZodString>;
453
+ passphrase: z.ZodOptional<z.ZodString>;
454
+ certificate: z.ZodOptional<z.ZodString>;
455
+ }, z.core.$strip>, z.ZodObject<{
456
+ type: z.ZodLiteral<"mtls">;
457
+ certificate: z.ZodString;
458
+ privateKey: z.ZodString;
459
+ passphrase: z.ZodOptional<z.ZodString>;
460
+ caCertificate: z.ZodOptional<z.ZodString>;
461
+ }, z.core.$strip>, z.ZodObject<{
462
+ type: z.ZodLiteral<"custom">;
463
+ customType: z.ZodString;
464
+ data: z.ZodRecord<z.ZodString, z.ZodUnknown>;
465
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
466
+ }, z.core.$strip>, z.ZodObject<{
467
+ type: z.ZodLiteral<"ssh_key">;
468
+ privateKey: z.ZodString;
469
+ publicKey: z.ZodOptional<z.ZodString>;
470
+ passphrase: z.ZodOptional<z.ZodString>;
471
+ keyType: z.ZodDefault<z.ZodEnum<{
472
+ rsa: "rsa";
473
+ dsa: "dsa";
474
+ ed25519: "ed25519";
475
+ ecdsa: "ecdsa";
476
+ }>>;
477
+ fingerprint: z.ZodOptional<z.ZodString>;
478
+ username: z.ZodOptional<z.ZodString>;
479
+ }, z.core.$strip>, z.ZodObject<{
480
+ type: z.ZodLiteral<"service_account">;
481
+ provider: z.ZodEnum<{
482
+ custom: "custom";
483
+ gcp: "gcp";
484
+ aws: "aws";
485
+ azure: "azure";
486
+ }>;
487
+ credentials: z.ZodRecord<z.ZodString, z.ZodUnknown>;
488
+ projectId: z.ZodOptional<z.ZodString>;
489
+ region: z.ZodOptional<z.ZodString>;
490
+ assumeRoleArn: z.ZodOptional<z.ZodString>;
491
+ externalId: z.ZodOptional<z.ZodString>;
492
+ serviceAccountId: z.ZodOptional<z.ZodString>;
493
+ expiresAt: z.ZodOptional<z.ZodNumber>;
494
+ }, z.core.$strip>, z.ZodObject<{
495
+ type: z.ZodLiteral<"oauth_pkce">;
496
+ accessToken: z.ZodString;
497
+ refreshToken: z.ZodOptional<z.ZodString>;
498
+ tokenType: z.ZodDefault<z.ZodString>;
499
+ expiresAt: z.ZodOptional<z.ZodNumber>;
500
+ scopes: z.ZodDefault<z.ZodArray<z.ZodString>>;
501
+ idToken: z.ZodOptional<z.ZodString>;
502
+ issuer: z.ZodOptional<z.ZodString>;
503
+ }, z.core.$strip>], "type">;
504
+ acquiredAt: z.ZodNumber;
505
+ lastUsedAt: z.ZodOptional<z.ZodNumber>;
506
+ expiresAt: z.ZodOptional<z.ZodNumber>;
507
+ isValid: z.ZodDefault<z.ZodBoolean>;
508
+ invalidReason: z.ZodOptional<z.ZodString>;
509
+ userInfo: z.ZodOptional<z.ZodObject<{
510
+ sub: z.ZodOptional<z.ZodString>;
511
+ email: z.ZodOptional<z.ZodString>;
512
+ name: z.ZodOptional<z.ZodString>;
513
+ }, z.core.$strip>>;
514
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
515
+ }, z.core.$strip>>>;
516
+ consent: z.ZodOptional<z.ZodObject<{
517
+ enabled: z.ZodBoolean;
518
+ selectedToolIds: z.ZodArray<z.ZodString>;
519
+ availableToolIds: z.ZodArray<z.ZodString>;
520
+ consentedAt: z.ZodNumber;
521
+ version: z.ZodDefault<z.ZodString>;
522
+ }, z.core.$strip>>;
523
+ federated: z.ZodOptional<z.ZodObject<{
524
+ selectedProviderIds: z.ZodArray<z.ZodString>;
525
+ skippedProviderIds: z.ZodArray<z.ZodString>;
526
+ primaryProviderId: z.ZodOptional<z.ZodString>;
527
+ completedAt: z.ZodNumber;
528
+ }, z.core.$strip>>;
529
+ pendingAuths: z.ZodArray<z.ZodObject<{
530
+ id: z.ZodString;
531
+ appId: z.ZodString;
532
+ toolId: z.ZodOptional<z.ZodString>;
533
+ authUrl: z.ZodString;
534
+ requiredScopes: z.ZodOptional<z.ZodArray<z.ZodString>>;
535
+ elicitId: z.ZodOptional<z.ZodString>;
536
+ createdAt: z.ZodNumber;
537
+ expiresAt: z.ZodNumber;
538
+ status: z.ZodEnum<{
539
+ pending: "pending";
540
+ completed: "completed";
541
+ cancelled: "cancelled";
542
+ expired: "expired";
543
+ }>;
544
+ }, z.core.$strip>>;
545
+ authorizedAppIds: z.ZodArray<z.ZodString>;
546
+ skippedAppIds: z.ZodArray<z.ZodString>;
547
+ }, z.core.$strip>;
548
+ export type VaultConsentRecord = z.infer<typeof vaultConsentRecordSchema>;
549
+ export type VaultFederatedRecord = z.infer<typeof vaultFederatedRecordSchema>;
550
+ export type PendingIncrementalAuth = z.infer<typeof pendingIncrementalAuthSchema>;
551
+ export type AuthorizationVaultEntry = z.infer<typeof authorizationVaultEntrySchema>;
552
+ export interface AuthorizationVault {
553
+ /**
554
+ * Create a new vault entry
555
+ */
556
+ create(params: {
557
+ userSub: string;
558
+ userEmail?: string;
559
+ userName?: string;
560
+ clientId: string;
561
+ consent?: VaultConsentRecord;
562
+ federated?: VaultFederatedRecord;
563
+ authorizedAppIds?: string[];
564
+ skippedAppIds?: string[];
565
+ }): Promise<AuthorizationVaultEntry>;
566
+ /**
567
+ * Get vault entry by ID
568
+ */
569
+ get(id: string): Promise<AuthorizationVaultEntry | null>;
570
+ /**
571
+ * Update vault entry
572
+ */
573
+ update(id: string, updates: Partial<AuthorizationVaultEntry>): Promise<void>;
574
+ /**
575
+ * Delete vault entry
576
+ */
577
+ delete(id: string): Promise<void>;
578
+ /**
579
+ * Update consent in the vault
580
+ */
581
+ updateConsent(vaultId: string, consent: VaultConsentRecord): Promise<void>;
582
+ /**
583
+ * Add app to authorized list (for incremental auth)
584
+ */
585
+ authorizeApp(vaultId: string, appId: string): Promise<void>;
586
+ /**
587
+ * Create a pending incremental auth request
588
+ */
589
+ createPendingAuth(vaultId: string, params: {
590
+ appId: string;
591
+ toolId?: string;
592
+ authUrl: string;
593
+ requiredScopes?: string[];
594
+ elicitId?: string;
595
+ ttlMs?: number;
596
+ }): Promise<PendingIncrementalAuth>;
597
+ /**
598
+ * Get pending auth by ID
599
+ */
600
+ getPendingAuth(vaultId: string, pendingAuthId: string): Promise<PendingIncrementalAuth | null>;
601
+ /**
602
+ * Complete a pending incremental auth
603
+ */
604
+ completePendingAuth(vaultId: string, pendingAuthId: string): Promise<void>;
605
+ /**
606
+ * Cancel a pending incremental auth
607
+ */
608
+ cancelPendingAuth(vaultId: string, pendingAuthId: string): Promise<void>;
609
+ /**
610
+ * Check if app is authorized
611
+ */
612
+ isAppAuthorized(vaultId: string, appId: string): Promise<boolean>;
613
+ /**
614
+ * Get all pending auths for a vault
615
+ */
616
+ getPendingAuths(vaultId: string): Promise<PendingIncrementalAuth[]>;
617
+ /**
618
+ * Add an app credential to the vault
619
+ * Only stores if app is authorized AND (consent disabled OR app tools in consent)
620
+ */
621
+ addAppCredential(vaultId: string, credential: AppCredential): Promise<void>;
622
+ /**
623
+ * Remove an app credential from the vault
624
+ */
625
+ removeAppCredential(vaultId: string, appId: string, providerId: string): Promise<void>;
626
+ /**
627
+ * Get all credentials for a specific app
628
+ */
629
+ getAppCredentials(vaultId: string, appId: string): Promise<AppCredential[]>;
630
+ /**
631
+ * Get a specific credential for an app and provider
632
+ */
633
+ getCredential(vaultId: string, appId: string, providerId: string): Promise<AppCredential | null>;
634
+ /**
635
+ * Get all credentials in the vault (filtered by consent if enabled)
636
+ * @param filterByConsent If true, only returns credentials for apps with consented tools
637
+ */
638
+ getAllCredentials(vaultId: string, filterByConsent?: boolean): Promise<AppCredential[]>;
639
+ /**
640
+ * Update credential metadata (last used, validity, etc.)
641
+ */
642
+ updateCredential(vaultId: string, appId: string, providerId: string, updates: Partial<Pick<AppCredential, 'lastUsedAt' | 'isValid' | 'invalidReason' | 'expiresAt' | 'metadata'>>): Promise<void>;
643
+ /**
644
+ * Check if a credential should be stored based on consent
645
+ * Returns true if:
646
+ * - Consent is disabled, OR
647
+ * - The app has at least one tool in the consent selection
648
+ */
649
+ shouldStoreCredential(vaultId: string, appId: string, toolIds?: string[]): Promise<boolean>;
650
+ /**
651
+ * Invalidate a credential (mark as invalid without removing)
652
+ */
653
+ invalidateCredential(vaultId: string, appId: string, providerId: string, reason: string): Promise<void>;
654
+ /**
655
+ * Refresh an OAuth credential (update tokens)
656
+ */
657
+ refreshOAuthCredential(vaultId: string, appId: string, providerId: string, tokens: {
658
+ accessToken: string;
659
+ refreshToken?: string;
660
+ expiresAt?: number;
661
+ }): Promise<void>;
662
+ /**
663
+ * Cleanup expired entries and pending auths
664
+ */
665
+ cleanup(): Promise<void>;
666
+ }
667
+ //# sourceMappingURL=authorization-vault.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authorization-vault.d.ts","sourceRoot":"","sources":["../../src/session/authorization-vault.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;EAW/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAMlE;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;iBAchC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;;;iBAUjC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,yBAAyB;;;;;iBAQpC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;iBAMjC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;iBAcrC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;iBAU/B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;;iBAQjC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;iBAcjC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;iBAkBzC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;iBAgBpC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAW3B,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAC5E,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC9E,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AACtF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAC5E,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAM1D;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA2B9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE;;GAEG;AACH,eAAO,MAAM,wBAAwB;;;;;;iBAWnC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,0BAA0B;;;;;iBASrC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;iBAmBvC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA2BxC,CAAC;AAMH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAC1E,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC9E,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAClF,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAMpF,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,kBAAkB,CAAC;QAC7B,SAAS,CAAC,EAAE,oBAAoB,CAAC;QACjC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC5B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;KAC1B,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAErC;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAAC;IAEzD;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,uBAAuB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7E;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAElC;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3E;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5D;;OAEG;IACH,iBAAiB,CACf,OAAO,EAAE,MAAM,EACf,MAAM,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;QAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GACA,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAEnC;;OAEG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAAC;IAE/F;;OAEG;IACH,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3E;;OAEG;IACH,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzE;;OAEG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAElE;;OAEG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAAC;IAMpE;;;OAGG;IACH,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5E;;OAEG;IACH,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvF;;OAEG;IACH,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAE5E;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IAEjG;;;OAGG;IACH,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAExF;;OAEG;IACH,gBAAgB,CACd,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,GAAG,SAAS,GAAG,eAAe,GAAG,WAAW,GAAG,UAAU,CAAC,CAAC,GAC3G,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;;OAKG;IACH,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE5F;;OAEG;IACH,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExG;;OAEG;IACH,sBAAsB,CACpB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GACzE,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B"}