integrate-sdk 0.8.28 → 0.8.30-dev.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.
- package/dist/adapters/auto-routes.js +397 -0
- package/dist/adapters/index.js +397 -0
- package/dist/adapters/nextjs.js +397 -0
- package/dist/adapters/node.js +397 -0
- package/dist/adapters/svelte-kit.js +397 -0
- package/dist/adapters/tanstack-start.js +397 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +434 -1
- package/dist/oauth.js +397 -0
- package/dist/server.js +406 -0
- package/dist/src/client.d.ts +10 -1
- package/dist/src/client.d.ts.map +1 -1
- package/dist/src/index.d.ts +18 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/integrations/airtable-client.d.ts +260 -0
- package/dist/src/integrations/airtable-client.d.ts.map +1 -0
- package/dist/src/integrations/airtable.d.ts +37 -0
- package/dist/src/integrations/airtable.d.ts.map +1 -0
- package/dist/src/integrations/gcal-client.d.ts +370 -0
- package/dist/src/integrations/gcal-client.d.ts.map +1 -0
- package/dist/src/integrations/gcal.d.ts +37 -0
- package/dist/src/integrations/gcal.d.ts.map +1 -0
- package/dist/src/integrations/linear-client.d.ts +309 -0
- package/dist/src/integrations/linear-client.d.ts.map +1 -0
- package/dist/src/integrations/linear.d.ts +37 -0
- package/dist/src/integrations/linear.d.ts.map +1 -0
- package/dist/src/integrations/outlook-client.d.ts +433 -0
- package/dist/src/integrations/outlook-client.d.ts.map +1 -0
- package/dist/src/integrations/outlook.d.ts +37 -0
- package/dist/src/integrations/outlook.d.ts.map +1 -0
- package/dist/src/integrations/slack-client.d.ts +271 -0
- package/dist/src/integrations/slack-client.d.ts.map +1 -0
- package/dist/src/integrations/slack.d.ts +37 -0
- package/dist/src/integrations/slack.d.ts.map +1 -0
- package/dist/src/integrations/stripe-client.d.ts +412 -0
- package/dist/src/integrations/stripe-client.d.ts.map +1 -0
- package/dist/src/integrations/stripe.d.ts +37 -0
- package/dist/src/integrations/stripe.d.ts.map +1 -0
- package/dist/src/integrations/todoist-client.d.ts +253 -0
- package/dist/src/integrations/todoist-client.d.ts.map +1 -0
- package/dist/src/integrations/todoist.d.ts +37 -0
- package/dist/src/integrations/todoist.d.ts.map +1 -0
- package/dist/src/integrations/vercel-client.d.ts +278 -0
- package/dist/src/integrations/vercel-client.d.ts.map +1 -0
- package/dist/src/integrations/vercel.d.ts +37 -0
- package/dist/src/integrations/vercel.d.ts.map +1 -0
- package/dist/src/integrations/zendesk-client.d.ts +395 -0
- package/dist/src/integrations/zendesk-client.d.ts.map +1 -0
- package/dist/src/integrations/zendesk.d.ts +39 -0
- package/dist/src/integrations/zendesk.d.ts.map +1 -0
- package/dist/src/server.d.ts +9 -0
- package/dist/src/server.d.ts.map +1 -1
- package/index.ts +18 -0
- package/package.json +2 -2
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Airtable Integration Client Types
|
|
3
|
+
* Fully typed interface for Airtable integration methods
|
|
4
|
+
*/
|
|
5
|
+
import type { MCPToolCallResponse } from "../protocol/messages.js";
|
|
6
|
+
/**
|
|
7
|
+
* Airtable Base
|
|
8
|
+
*/
|
|
9
|
+
export interface AirtableBase {
|
|
10
|
+
id: string;
|
|
11
|
+
name: string;
|
|
12
|
+
permissionLevel: "none" | "read" | "comment" | "edit" | "create";
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Airtable Table
|
|
16
|
+
*/
|
|
17
|
+
export interface AirtableTable {
|
|
18
|
+
id: string;
|
|
19
|
+
name: string;
|
|
20
|
+
description?: string;
|
|
21
|
+
primaryFieldId: string;
|
|
22
|
+
fields: AirtableField[];
|
|
23
|
+
views: Array<{
|
|
24
|
+
id: string;
|
|
25
|
+
name: string;
|
|
26
|
+
type: string;
|
|
27
|
+
}>;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Airtable Field
|
|
31
|
+
*/
|
|
32
|
+
export interface AirtableField {
|
|
33
|
+
id: string;
|
|
34
|
+
name: string;
|
|
35
|
+
type: string;
|
|
36
|
+
description?: string;
|
|
37
|
+
options?: Record<string, unknown>;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Airtable Record
|
|
41
|
+
*/
|
|
42
|
+
export interface AirtableRecord {
|
|
43
|
+
id: string;
|
|
44
|
+
createdTime: string;
|
|
45
|
+
fields: Record<string, unknown>;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Airtable Integration Client Interface
|
|
49
|
+
* Provides type-safe methods for all Airtable operations
|
|
50
|
+
*/
|
|
51
|
+
export interface AirtableIntegrationClient {
|
|
52
|
+
/**
|
|
53
|
+
* List all accessible bases
|
|
54
|
+
*
|
|
55
|
+
* @example
|
|
56
|
+
* ```typescript
|
|
57
|
+
* const bases = await client.airtable.listBases({});
|
|
58
|
+
* ```
|
|
59
|
+
*/
|
|
60
|
+
listBases(params?: {
|
|
61
|
+
/** Offset for pagination */
|
|
62
|
+
offset?: string;
|
|
63
|
+
}): Promise<MCPToolCallResponse>;
|
|
64
|
+
/**
|
|
65
|
+
* Get a specific base
|
|
66
|
+
*
|
|
67
|
+
* @example
|
|
68
|
+
* ```typescript
|
|
69
|
+
* const base = await client.airtable.getBase({
|
|
70
|
+
* baseId: "appXXXXXXXXXXXXXX"
|
|
71
|
+
* });
|
|
72
|
+
* ```
|
|
73
|
+
*/
|
|
74
|
+
getBase(params: {
|
|
75
|
+
/** Base ID */
|
|
76
|
+
baseId: string;
|
|
77
|
+
}): Promise<MCPToolCallResponse>;
|
|
78
|
+
/**
|
|
79
|
+
* List tables in a base
|
|
80
|
+
*
|
|
81
|
+
* @example
|
|
82
|
+
* ```typescript
|
|
83
|
+
* const tables = await client.airtable.listTables({
|
|
84
|
+
* baseId: "appXXXXXXXXXXXXXX"
|
|
85
|
+
* });
|
|
86
|
+
* ```
|
|
87
|
+
*/
|
|
88
|
+
listTables(params: {
|
|
89
|
+
/** Base ID */
|
|
90
|
+
baseId: string;
|
|
91
|
+
}): Promise<MCPToolCallResponse>;
|
|
92
|
+
/**
|
|
93
|
+
* Get a specific table schema
|
|
94
|
+
*
|
|
95
|
+
* @example
|
|
96
|
+
* ```typescript
|
|
97
|
+
* const table = await client.airtable.getTable({
|
|
98
|
+
* baseId: "appXXXXXXXXXXXXXX",
|
|
99
|
+
* tableId: "tblXXXXXXXXXXXXXX"
|
|
100
|
+
* });
|
|
101
|
+
* ```
|
|
102
|
+
*/
|
|
103
|
+
getTable(params: {
|
|
104
|
+
/** Base ID */
|
|
105
|
+
baseId: string;
|
|
106
|
+
/** Table ID or name */
|
|
107
|
+
tableId: string;
|
|
108
|
+
}): Promise<MCPToolCallResponse>;
|
|
109
|
+
/**
|
|
110
|
+
* List records in a table
|
|
111
|
+
*
|
|
112
|
+
* @example
|
|
113
|
+
* ```typescript
|
|
114
|
+
* const records = await client.airtable.listRecords({
|
|
115
|
+
* baseId: "appXXXXXXXXXXXXXX",
|
|
116
|
+
* tableId: "tblXXXXXXXXXXXXXX",
|
|
117
|
+
* maxRecords: 100
|
|
118
|
+
* });
|
|
119
|
+
* ```
|
|
120
|
+
*/
|
|
121
|
+
listRecords(params: {
|
|
122
|
+
/** Base ID */
|
|
123
|
+
baseId: string;
|
|
124
|
+
/** Table ID or name */
|
|
125
|
+
tableId: string;
|
|
126
|
+
/** Fields to include */
|
|
127
|
+
fields?: string[];
|
|
128
|
+
/** Filter by formula */
|
|
129
|
+
filterByFormula?: string;
|
|
130
|
+
/** Maximum records to return */
|
|
131
|
+
maxRecords?: number;
|
|
132
|
+
/** Page size */
|
|
133
|
+
pageSize?: number;
|
|
134
|
+
/** Sort configuration */
|
|
135
|
+
sort?: Array<{
|
|
136
|
+
field: string;
|
|
137
|
+
direction?: "asc" | "desc";
|
|
138
|
+
}>;
|
|
139
|
+
/** View ID or name */
|
|
140
|
+
view?: string;
|
|
141
|
+
/** Cell format */
|
|
142
|
+
cellFormat?: "json" | "string";
|
|
143
|
+
/** Time zone */
|
|
144
|
+
timeZone?: string;
|
|
145
|
+
/** User locale */
|
|
146
|
+
userLocale?: string;
|
|
147
|
+
/** Offset for pagination */
|
|
148
|
+
offset?: string;
|
|
149
|
+
}): Promise<MCPToolCallResponse>;
|
|
150
|
+
/**
|
|
151
|
+
* Get a specific record
|
|
152
|
+
*
|
|
153
|
+
* @example
|
|
154
|
+
* ```typescript
|
|
155
|
+
* const record = await client.airtable.getRecord({
|
|
156
|
+
* baseId: "appXXXXXXXXXXXXXX",
|
|
157
|
+
* tableId: "tblXXXXXXXXXXXXXX",
|
|
158
|
+
* recordId: "recXXXXXXXXXXXXXX"
|
|
159
|
+
* });
|
|
160
|
+
* ```
|
|
161
|
+
*/
|
|
162
|
+
getRecord(params: {
|
|
163
|
+
/** Base ID */
|
|
164
|
+
baseId: string;
|
|
165
|
+
/** Table ID or name */
|
|
166
|
+
tableId: string;
|
|
167
|
+
/** Record ID */
|
|
168
|
+
recordId: string;
|
|
169
|
+
/** Cell format */
|
|
170
|
+
cellFormat?: "json" | "string";
|
|
171
|
+
/** Time zone */
|
|
172
|
+
timeZone?: string;
|
|
173
|
+
/** User locale */
|
|
174
|
+
userLocale?: string;
|
|
175
|
+
}): Promise<MCPToolCallResponse>;
|
|
176
|
+
/**
|
|
177
|
+
* Create a new record
|
|
178
|
+
*
|
|
179
|
+
* @example
|
|
180
|
+
* ```typescript
|
|
181
|
+
* const record = await client.airtable.createRecord({
|
|
182
|
+
* baseId: "appXXXXXXXXXXXXXX",
|
|
183
|
+
* tableId: "tblXXXXXXXXXXXXXX",
|
|
184
|
+
* fields: {
|
|
185
|
+
* "Name": "John Doe",
|
|
186
|
+
* "Email": "john@example.com"
|
|
187
|
+
* }
|
|
188
|
+
* });
|
|
189
|
+
* ```
|
|
190
|
+
*/
|
|
191
|
+
createRecord(params: {
|
|
192
|
+
/** Base ID */
|
|
193
|
+
baseId: string;
|
|
194
|
+
/** Table ID or name */
|
|
195
|
+
tableId: string;
|
|
196
|
+
/** Record fields */
|
|
197
|
+
fields: Record<string, unknown>;
|
|
198
|
+
/** Whether to typecast values */
|
|
199
|
+
typecast?: boolean;
|
|
200
|
+
}): Promise<MCPToolCallResponse>;
|
|
201
|
+
/**
|
|
202
|
+
* Update an existing record
|
|
203
|
+
*
|
|
204
|
+
* @example
|
|
205
|
+
* ```typescript
|
|
206
|
+
* await client.airtable.updateRecord({
|
|
207
|
+
* baseId: "appXXXXXXXXXXXXXX",
|
|
208
|
+
* tableId: "tblXXXXXXXXXXXXXX",
|
|
209
|
+
* recordId: "recXXXXXXXXXXXXXX",
|
|
210
|
+
* fields: {
|
|
211
|
+
* "Status": "Completed"
|
|
212
|
+
* }
|
|
213
|
+
* });
|
|
214
|
+
* ```
|
|
215
|
+
*/
|
|
216
|
+
updateRecord(params: {
|
|
217
|
+
/** Base ID */
|
|
218
|
+
baseId: string;
|
|
219
|
+
/** Table ID or name */
|
|
220
|
+
tableId: string;
|
|
221
|
+
/** Record ID */
|
|
222
|
+
recordId: string;
|
|
223
|
+
/** Fields to update */
|
|
224
|
+
fields: Record<string, unknown>;
|
|
225
|
+
/** Whether to typecast values */
|
|
226
|
+
typecast?: boolean;
|
|
227
|
+
}): Promise<MCPToolCallResponse>;
|
|
228
|
+
/**
|
|
229
|
+
* Search for records using a formula
|
|
230
|
+
*
|
|
231
|
+
* @example
|
|
232
|
+
* ```typescript
|
|
233
|
+
* const results = await client.airtable.searchRecords({
|
|
234
|
+
* baseId: "appXXXXXXXXXXXXXX",
|
|
235
|
+
* tableId: "tblXXXXXXXXXXXXXX",
|
|
236
|
+
* filterByFormula: "FIND('John', {Name})"
|
|
237
|
+
* });
|
|
238
|
+
* ```
|
|
239
|
+
*/
|
|
240
|
+
searchRecords(params: {
|
|
241
|
+
/** Base ID */
|
|
242
|
+
baseId: string;
|
|
243
|
+
/** Table ID or name */
|
|
244
|
+
tableId: string;
|
|
245
|
+
/** Airtable formula to filter records */
|
|
246
|
+
filterByFormula: string;
|
|
247
|
+
/** Fields to include in results */
|
|
248
|
+
fields?: string[];
|
|
249
|
+
/** Maximum records to return */
|
|
250
|
+
maxRecords?: number;
|
|
251
|
+
/** Sort configuration */
|
|
252
|
+
sort?: Array<{
|
|
253
|
+
field: string;
|
|
254
|
+
direction?: "asc" | "desc";
|
|
255
|
+
}>;
|
|
256
|
+
/** View ID or name */
|
|
257
|
+
view?: string;
|
|
258
|
+
}): Promise<MCPToolCallResponse>;
|
|
259
|
+
}
|
|
260
|
+
//# sourceMappingURL=airtable-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"airtable-client.d.ts","sourceRoot":"","sources":["../../../src/integrations/airtable-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Airtable Integration
|
|
3
|
+
* Enables Airtable tools with OAuth configuration
|
|
4
|
+
*/
|
|
5
|
+
import type { MCPIntegration } from "./types.js";
|
|
6
|
+
/**
|
|
7
|
+
* Airtable integration configuration
|
|
8
|
+
*
|
|
9
|
+
* SERVER-SIDE: Automatically reads AIRTABLE_CLIENT_ID and AIRTABLE_CLIENT_SECRET from environment.
|
|
10
|
+
* You can override by providing explicit clientId and clientSecret values.
|
|
11
|
+
* CLIENT-SIDE: Omit clientId and clientSecret when using createMCPClient()
|
|
12
|
+
*/
|
|
13
|
+
export interface AirtableIntegrationConfig {
|
|
14
|
+
/** Airtable OAuth client ID (defaults to AIRTABLE_CLIENT_ID env var) */
|
|
15
|
+
clientId?: string;
|
|
16
|
+
/** Airtable OAuth client secret (defaults to AIRTABLE_CLIENT_SECRET env var) */
|
|
17
|
+
clientSecret?: string;
|
|
18
|
+
/** Additional OAuth scopes (default: ['data.records:read', 'data.records:write', 'schema.bases:read']) */
|
|
19
|
+
scopes?: string[];
|
|
20
|
+
/** OAuth redirect URI */
|
|
21
|
+
redirectUri?: string;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Default Airtable tools that this integration enables
|
|
25
|
+
* These should match the tool names exposed by your MCP server
|
|
26
|
+
*/
|
|
27
|
+
declare const AIRTABLE_TOOLS: readonly ["airtable_list_bases", "airtable_get_base", "airtable_list_tables", "airtable_get_table", "airtable_list_records", "airtable_get_record", "airtable_create_record", "airtable_update_record", "airtable_search_records"];
|
|
28
|
+
export declare function airtableIntegration(config?: AirtableIntegrationConfig): MCPIntegration<"airtable">;
|
|
29
|
+
/**
|
|
30
|
+
* Export tool names for type inference
|
|
31
|
+
*/
|
|
32
|
+
export type AirtableTools = typeof AIRTABLE_TOOLS[number];
|
|
33
|
+
/**
|
|
34
|
+
* Export Airtable client types
|
|
35
|
+
*/
|
|
36
|
+
export type { AirtableIntegrationClient } from "./airtable-client.js";
|
|
37
|
+
//# sourceMappingURL=airtable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"airtable.d.ts","sourceRoot":"","sources":["../../../src/integrations/airtable.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAe,MAAM,YAAY,CAAC;AAG9D;;;;;;GAMG;AACH,MAAM,WAAW,yBAAyB;IACxC,wEAAwE;IACxE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gFAAgF;IAChF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0GAA0G;IAC1G,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,yBAAyB;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,QAAA,MAAM,cAAc,oOAUV,CAAC;AAGX,wBAAgB,mBAAmB,CAAC,MAAM,GAAE,yBAA8B,GAAG,cAAc,CAAC,UAAU,CAAC,CAyBtG;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC;AAE1D;;GAEG;AACH,YAAY,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,370 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Google Calendar Integration Client Types
|
|
3
|
+
* Fully typed interface for Google Calendar integration methods
|
|
4
|
+
*/
|
|
5
|
+
import type { MCPToolCallResponse } from "../protocol/messages.js";
|
|
6
|
+
/**
|
|
7
|
+
* Google Calendar
|
|
8
|
+
*/
|
|
9
|
+
export interface GcalCalendar {
|
|
10
|
+
id: string;
|
|
11
|
+
summary: string;
|
|
12
|
+
description?: string;
|
|
13
|
+
location?: string;
|
|
14
|
+
timeZone?: string;
|
|
15
|
+
summaryOverride?: string;
|
|
16
|
+
colorId?: string;
|
|
17
|
+
backgroundColor?: string;
|
|
18
|
+
foregroundColor?: string;
|
|
19
|
+
hidden?: boolean;
|
|
20
|
+
selected?: boolean;
|
|
21
|
+
accessRole: "freeBusyReader" | "reader" | "writer" | "owner";
|
|
22
|
+
defaultReminders?: Array<{
|
|
23
|
+
method: "email" | "popup";
|
|
24
|
+
minutes: number;
|
|
25
|
+
}>;
|
|
26
|
+
primary?: boolean;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Google Calendar Event
|
|
30
|
+
*/
|
|
31
|
+
export interface GcalEvent {
|
|
32
|
+
id: string;
|
|
33
|
+
status?: "confirmed" | "tentative" | "cancelled";
|
|
34
|
+
htmlLink?: string;
|
|
35
|
+
created?: string;
|
|
36
|
+
updated?: string;
|
|
37
|
+
summary?: string;
|
|
38
|
+
description?: string;
|
|
39
|
+
location?: string;
|
|
40
|
+
colorId?: string;
|
|
41
|
+
creator?: {
|
|
42
|
+
id?: string;
|
|
43
|
+
email?: string;
|
|
44
|
+
displayName?: string;
|
|
45
|
+
self?: boolean;
|
|
46
|
+
};
|
|
47
|
+
organizer?: {
|
|
48
|
+
id?: string;
|
|
49
|
+
email?: string;
|
|
50
|
+
displayName?: string;
|
|
51
|
+
self?: boolean;
|
|
52
|
+
};
|
|
53
|
+
start: {
|
|
54
|
+
date?: string;
|
|
55
|
+
dateTime?: string;
|
|
56
|
+
timeZone?: string;
|
|
57
|
+
};
|
|
58
|
+
end: {
|
|
59
|
+
date?: string;
|
|
60
|
+
dateTime?: string;
|
|
61
|
+
timeZone?: string;
|
|
62
|
+
};
|
|
63
|
+
endTimeUnspecified?: boolean;
|
|
64
|
+
recurrence?: string[];
|
|
65
|
+
recurringEventId?: string;
|
|
66
|
+
originalStartTime?: {
|
|
67
|
+
date?: string;
|
|
68
|
+
dateTime?: string;
|
|
69
|
+
timeZone?: string;
|
|
70
|
+
};
|
|
71
|
+
transparency?: "opaque" | "transparent";
|
|
72
|
+
visibility?: "default" | "public" | "private" | "confidential";
|
|
73
|
+
iCalUID?: string;
|
|
74
|
+
sequence?: number;
|
|
75
|
+
attendees?: GcalAttendee[];
|
|
76
|
+
attendeesOmitted?: boolean;
|
|
77
|
+
hangoutLink?: string;
|
|
78
|
+
conferenceData?: {
|
|
79
|
+
createRequest?: {
|
|
80
|
+
requestId: string;
|
|
81
|
+
conferenceSolutionKey?: {
|
|
82
|
+
type: string;
|
|
83
|
+
};
|
|
84
|
+
status?: {
|
|
85
|
+
statusCode: string;
|
|
86
|
+
};
|
|
87
|
+
};
|
|
88
|
+
entryPoints?: Array<{
|
|
89
|
+
entryPointType: string;
|
|
90
|
+
uri?: string;
|
|
91
|
+
label?: string;
|
|
92
|
+
pin?: string;
|
|
93
|
+
accessCode?: string;
|
|
94
|
+
meetingCode?: string;
|
|
95
|
+
passcode?: string;
|
|
96
|
+
password?: string;
|
|
97
|
+
}>;
|
|
98
|
+
conferenceSolution?: {
|
|
99
|
+
key?: {
|
|
100
|
+
type: string;
|
|
101
|
+
};
|
|
102
|
+
name?: string;
|
|
103
|
+
iconUri?: string;
|
|
104
|
+
};
|
|
105
|
+
conferenceId?: string;
|
|
106
|
+
};
|
|
107
|
+
reminders?: {
|
|
108
|
+
useDefault: boolean;
|
|
109
|
+
overrides?: Array<{
|
|
110
|
+
method: "email" | "popup";
|
|
111
|
+
minutes: number;
|
|
112
|
+
}>;
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Google Calendar Attendee
|
|
117
|
+
*/
|
|
118
|
+
export interface GcalAttendee {
|
|
119
|
+
id?: string;
|
|
120
|
+
email: string;
|
|
121
|
+
displayName?: string;
|
|
122
|
+
organizer?: boolean;
|
|
123
|
+
self?: boolean;
|
|
124
|
+
resource?: boolean;
|
|
125
|
+
optional?: boolean;
|
|
126
|
+
responseStatus?: "needsAction" | "declined" | "tentative" | "accepted";
|
|
127
|
+
comment?: string;
|
|
128
|
+
additionalGuests?: number;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Google Calendar Integration Client Interface
|
|
132
|
+
* Provides type-safe methods for all Google Calendar operations
|
|
133
|
+
*/
|
|
134
|
+
export interface GcalIntegrationClient {
|
|
135
|
+
/**
|
|
136
|
+
* List calendars
|
|
137
|
+
*
|
|
138
|
+
* @example
|
|
139
|
+
* ```typescript
|
|
140
|
+
* const calendars = await client.gcal.listCalendars({});
|
|
141
|
+
* ```
|
|
142
|
+
*/
|
|
143
|
+
listCalendars(params?: {
|
|
144
|
+
/** Maximum number of entries returned */
|
|
145
|
+
maxResults?: number;
|
|
146
|
+
/** Token for pagination */
|
|
147
|
+
pageToken?: string;
|
|
148
|
+
/** Whether to include deleted calendars */
|
|
149
|
+
showDeleted?: boolean;
|
|
150
|
+
/** Whether to show hidden calendars */
|
|
151
|
+
showHidden?: boolean;
|
|
152
|
+
}): Promise<MCPToolCallResponse>;
|
|
153
|
+
/**
|
|
154
|
+
* Get a specific calendar
|
|
155
|
+
*
|
|
156
|
+
* @example
|
|
157
|
+
* ```typescript
|
|
158
|
+
* const calendar = await client.gcal.getCalendar({
|
|
159
|
+
* calendarId: "primary"
|
|
160
|
+
* });
|
|
161
|
+
* ```
|
|
162
|
+
*/
|
|
163
|
+
getCalendar(params: {
|
|
164
|
+
/** Calendar ID (use 'primary' for the user's primary calendar) */
|
|
165
|
+
calendarId: string;
|
|
166
|
+
}): Promise<MCPToolCallResponse>;
|
|
167
|
+
/**
|
|
168
|
+
* List events in a calendar
|
|
169
|
+
*
|
|
170
|
+
* @example
|
|
171
|
+
* ```typescript
|
|
172
|
+
* const events = await client.gcal.listEvents({
|
|
173
|
+
* calendarId: "primary",
|
|
174
|
+
* timeMin: new Date().toISOString()
|
|
175
|
+
* });
|
|
176
|
+
* ```
|
|
177
|
+
*/
|
|
178
|
+
listEvents(params: {
|
|
179
|
+
/** Calendar ID */
|
|
180
|
+
calendarId: string;
|
|
181
|
+
/** Lower bound for event's end time (ISO 8601) */
|
|
182
|
+
timeMin?: string;
|
|
183
|
+
/** Upper bound for event's start time (ISO 8601) */
|
|
184
|
+
timeMax?: string;
|
|
185
|
+
/** Maximum number of events returned */
|
|
186
|
+
maxResults?: number;
|
|
187
|
+
/** Token for pagination */
|
|
188
|
+
pageToken?: string;
|
|
189
|
+
/** Free text search terms */
|
|
190
|
+
q?: string;
|
|
191
|
+
/** Whether to include deleted events */
|
|
192
|
+
showDeleted?: boolean;
|
|
193
|
+
/** Whether to expand recurring events */
|
|
194
|
+
singleEvents?: boolean;
|
|
195
|
+
/** Order of events returned */
|
|
196
|
+
orderBy?: "startTime" | "updated";
|
|
197
|
+
}): Promise<MCPToolCallResponse>;
|
|
198
|
+
/**
|
|
199
|
+
* Get a specific event
|
|
200
|
+
*
|
|
201
|
+
* @example
|
|
202
|
+
* ```typescript
|
|
203
|
+
* const event = await client.gcal.getEvent({
|
|
204
|
+
* calendarId: "primary",
|
|
205
|
+
* eventId: "event123"
|
|
206
|
+
* });
|
|
207
|
+
* ```
|
|
208
|
+
*/
|
|
209
|
+
getEvent(params: {
|
|
210
|
+
/** Calendar ID */
|
|
211
|
+
calendarId: string;
|
|
212
|
+
/** Event ID */
|
|
213
|
+
eventId: string;
|
|
214
|
+
/** Time zone for the response */
|
|
215
|
+
timeZone?: string;
|
|
216
|
+
}): Promise<MCPToolCallResponse>;
|
|
217
|
+
/**
|
|
218
|
+
* Create a new event
|
|
219
|
+
*
|
|
220
|
+
* @example
|
|
221
|
+
* ```typescript
|
|
222
|
+
* const event = await client.gcal.createEvent({
|
|
223
|
+
* calendarId: "primary",
|
|
224
|
+
* summary: "Team Meeting",
|
|
225
|
+
* start: { dateTime: "2024-01-15T10:00:00-07:00" },
|
|
226
|
+
* end: { dateTime: "2024-01-15T11:00:00-07:00" }
|
|
227
|
+
* });
|
|
228
|
+
* ```
|
|
229
|
+
*/
|
|
230
|
+
createEvent(params: {
|
|
231
|
+
/** Calendar ID */
|
|
232
|
+
calendarId: string;
|
|
233
|
+
/** Event summary/title */
|
|
234
|
+
summary: string;
|
|
235
|
+
/** Event description */
|
|
236
|
+
description?: string;
|
|
237
|
+
/** Event location */
|
|
238
|
+
location?: string;
|
|
239
|
+
/** Event start time */
|
|
240
|
+
start: {
|
|
241
|
+
/** All-day event date (yyyy-MM-dd) */
|
|
242
|
+
date?: string;
|
|
243
|
+
/** Event start datetime (RFC 3339) */
|
|
244
|
+
dateTime?: string;
|
|
245
|
+
/** Time zone */
|
|
246
|
+
timeZone?: string;
|
|
247
|
+
};
|
|
248
|
+
/** Event end time */
|
|
249
|
+
end: {
|
|
250
|
+
/** All-day event end date (yyyy-MM-dd) */
|
|
251
|
+
date?: string;
|
|
252
|
+
/** Event end datetime (RFC 3339) */
|
|
253
|
+
dateTime?: string;
|
|
254
|
+
/** Time zone */
|
|
255
|
+
timeZone?: string;
|
|
256
|
+
};
|
|
257
|
+
/** Attendees to invite */
|
|
258
|
+
attendees?: Array<{
|
|
259
|
+
email: string;
|
|
260
|
+
displayName?: string;
|
|
261
|
+
optional?: boolean;
|
|
262
|
+
}>;
|
|
263
|
+
/** Whether to send notifications to attendees */
|
|
264
|
+
sendUpdates?: "all" | "externalOnly" | "none";
|
|
265
|
+
/** Recurrence rules (RRULE format) */
|
|
266
|
+
recurrence?: string[];
|
|
267
|
+
/** Whether to create a conference */
|
|
268
|
+
conferenceDataVersion?: 0 | 1;
|
|
269
|
+
}): Promise<MCPToolCallResponse>;
|
|
270
|
+
/**
|
|
271
|
+
* Update an existing event
|
|
272
|
+
*
|
|
273
|
+
* @example
|
|
274
|
+
* ```typescript
|
|
275
|
+
* await client.gcal.updateEvent({
|
|
276
|
+
* calendarId: "primary",
|
|
277
|
+
* eventId: "event123",
|
|
278
|
+
* summary: "Updated Meeting Title"
|
|
279
|
+
* });
|
|
280
|
+
* ```
|
|
281
|
+
*/
|
|
282
|
+
updateEvent(params: {
|
|
283
|
+
/** Calendar ID */
|
|
284
|
+
calendarId: string;
|
|
285
|
+
/** Event ID */
|
|
286
|
+
eventId: string;
|
|
287
|
+
/** Event summary/title */
|
|
288
|
+
summary?: string;
|
|
289
|
+
/** Event description */
|
|
290
|
+
description?: string;
|
|
291
|
+
/** Event location */
|
|
292
|
+
location?: string;
|
|
293
|
+
/** Event start time */
|
|
294
|
+
start?: {
|
|
295
|
+
date?: string;
|
|
296
|
+
dateTime?: string;
|
|
297
|
+
timeZone?: string;
|
|
298
|
+
};
|
|
299
|
+
/** Event end time */
|
|
300
|
+
end?: {
|
|
301
|
+
date?: string;
|
|
302
|
+
dateTime?: string;
|
|
303
|
+
timeZone?: string;
|
|
304
|
+
};
|
|
305
|
+
/** Attendees */
|
|
306
|
+
attendees?: Array<{
|
|
307
|
+
email: string;
|
|
308
|
+
displayName?: string;
|
|
309
|
+
optional?: boolean;
|
|
310
|
+
}>;
|
|
311
|
+
/** Whether to send notifications */
|
|
312
|
+
sendUpdates?: "all" | "externalOnly" | "none";
|
|
313
|
+
}): Promise<MCPToolCallResponse>;
|
|
314
|
+
/**
|
|
315
|
+
* Delete an event
|
|
316
|
+
*
|
|
317
|
+
* @example
|
|
318
|
+
* ```typescript
|
|
319
|
+
* await client.gcal.deleteEvent({
|
|
320
|
+
* calendarId: "primary",
|
|
321
|
+
* eventId: "event123"
|
|
322
|
+
* });
|
|
323
|
+
* ```
|
|
324
|
+
*/
|
|
325
|
+
deleteEvent(params: {
|
|
326
|
+
/** Calendar ID */
|
|
327
|
+
calendarId: string;
|
|
328
|
+
/** Event ID */
|
|
329
|
+
eventId: string;
|
|
330
|
+
/** Whether to send notifications */
|
|
331
|
+
sendUpdates?: "all" | "externalOnly" | "none";
|
|
332
|
+
}): Promise<MCPToolCallResponse>;
|
|
333
|
+
/**
|
|
334
|
+
* List attendees for an event
|
|
335
|
+
*
|
|
336
|
+
* @example
|
|
337
|
+
* ```typescript
|
|
338
|
+
* const attendees = await client.gcal.listAttendees({
|
|
339
|
+
* calendarId: "primary",
|
|
340
|
+
* eventId: "event123"
|
|
341
|
+
* });
|
|
342
|
+
* ```
|
|
343
|
+
*/
|
|
344
|
+
listAttendees(params: {
|
|
345
|
+
/** Calendar ID */
|
|
346
|
+
calendarId: string;
|
|
347
|
+
/** Event ID */
|
|
348
|
+
eventId: string;
|
|
349
|
+
}): Promise<MCPToolCallResponse>;
|
|
350
|
+
/**
|
|
351
|
+
* Quickly add an event using natural language
|
|
352
|
+
*
|
|
353
|
+
* @example
|
|
354
|
+
* ```typescript
|
|
355
|
+
* const event = await client.gcal.quickAdd({
|
|
356
|
+
* calendarId: "primary",
|
|
357
|
+
* text: "Meeting with John tomorrow at 3pm"
|
|
358
|
+
* });
|
|
359
|
+
* ```
|
|
360
|
+
*/
|
|
361
|
+
quickAdd(params: {
|
|
362
|
+
/** Calendar ID */
|
|
363
|
+
calendarId: string;
|
|
364
|
+
/** Text describing the event in natural language */
|
|
365
|
+
text: string;
|
|
366
|
+
/** Whether to send notifications */
|
|
367
|
+
sendUpdates?: "all" | "externalOnly" | "none";
|
|
368
|
+
}): Promise<MCPToolCallResponse>;
|
|
369
|
+
}
|
|
370
|
+
//# sourceMappingURL=gcal-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gcal-client.d.ts","sourceRoot":"","sources":["../../../src/integrations/gcal-client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEnE;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,gBAAgB,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC7D,gBAAgB,CAAC,EAAE,KAAK,CAAC;QACvB,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC;QAC1B,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,WAAW,GAAG,WAAW,GAAG,WAAW,CAAC;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE;QACR,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,OAAO,CAAC;KAChB,CAAC;IACF,SAAS,CAAC,EAAE;QACV,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,OAAO,CAAC;KAChB,CAAC;IACF,KAAK,EAAE;QACL,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,GAAG,EAAE;QACH,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,YAAY,CAAC,EAAE,QAAQ,GAAG,aAAa,CAAC;IACxC,UAAU,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,cAAc,CAAC;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;IAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE;QACf,aAAa,CAAC,EAAE;YACd,SAAS,EAAE,MAAM,CAAC;YAClB,qBAAqB,CAAC,EAAE;gBACtB,IAAI,EAAE,MAAM,CAAC;aACd,CAAC;YACF,MAAM,CAAC,EAAE;gBACP,UAAU,EAAE,MAAM,CAAC;aACpB,CAAC;SACH,CAAC;QACF,WAAW,CAAC,EAAE,KAAK,CAAC;YAClB,cAAc,EAAE,MAAM,CAAC;YACvB,GAAG,CAAC,EAAE,MAAM,CAAC;YACb,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,GAAG,CAAC,EAAE,MAAM,CAAC;YACb,UAAU,CAAC,EAAE,MAAM,CAAC;YACpB,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;SACnB,CAAC,CAAC;QACH,kBAAkB,CAAC,EAAE;YACnB,GAAG,CAAC,EAAE;gBACJ,IAAI,EAAE,MAAM,CAAC;aACd,CAAC;YACF,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,OAAO,CAAC,EAAE,MAAM,CAAC;SAClB,CAAC;QACF,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,SAAS,CAAC,EAAE;QACV,UAAU,EAAE,OAAO,CAAC;QACpB,SAAS,CAAC,EAAE,KAAK,CAAC;YAChB,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC;YAC1B,OAAO,EAAE,MAAM,CAAC;SACjB,CAAC,CAAC;KACJ,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,aAAa,GAAG,UAAU,GAAG,WAAW,GAAG,UAAU,CAAC;IACvE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;;;;OAOG;IACH,aAAa,CAAC,MAAM,CAAC,EAAE;QACrB,yCAAyC;QACzC,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,2BAA2B;QAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,2CAA2C;QAC3C,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,uCAAuC;QACvC,UAAU,CAAC,EAAE,OAAO,CAAC;KACtB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEjC;;;;;;;;;OASG;IACH,WAAW,CAAC,MAAM,EAAE;QAClB,kEAAkE;QAClE,UAAU,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEjC;;;;;;;;;;OAUG;IACH,UAAU,CAAC,MAAM,EAAE;QACjB,kBAAkB;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,kDAAkD;QAClD,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,oDAAoD;QACpD,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,wCAAwC;QACxC,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,2BAA2B;QAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,6BAA6B;QAC7B,CAAC,CAAC,EAAE,MAAM,CAAC;QACX,wCAAwC;QACxC,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,yCAAyC;QACzC,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,+BAA+B;QAC/B,OAAO,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;KACnC,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEjC;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,MAAM,EAAE;QACf,kBAAkB;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,eAAe;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,iCAAiC;QACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEjC;;;;;;;;;;;;OAYG;IACH,WAAW,CAAC,MAAM,EAAE;QAClB,kBAAkB;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,0BAA0B;QAC1B,OAAO,EAAE,MAAM,CAAC;QAChB,wBAAwB;QACxB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,qBAAqB;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,uBAAuB;QACvB,KAAK,EAAE;YACL,sCAAsC;YACtC,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,sCAAsC;YACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,gBAAgB;YAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;SACnB,CAAC;QACF,qBAAqB;QACrB,GAAG,EAAE;YACH,0CAA0C;YAC1C,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,oCAAoC;YACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,gBAAgB;YAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;SACnB,CAAC;QACF,0BAA0B;QAC1B,SAAS,CAAC,EAAE,KAAK,CAAC;YAChB,KAAK,EAAE,MAAM,CAAC;YACd,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;SACpB,CAAC,CAAC;QACH,iDAAiD;QACjD,WAAW,CAAC,EAAE,KAAK,GAAG,cAAc,GAAG,MAAM,CAAC;QAC9C,sCAAsC;QACtC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QACtB,qCAAqC;QACrC,qBAAqB,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;KAC/B,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEjC;;;;;;;;;;;OAWG;IACH,WAAW,CAAC,MAAM,EAAE;QAClB,kBAAkB;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,eAAe;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,0BAA0B;QAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,wBAAwB;QACxB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,qBAAqB;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,uBAAuB;QACvB,KAAK,CAAC,EAAE;YACN,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;SACnB,CAAC;QACF,qBAAqB;QACrB,GAAG,CAAC,EAAE;YACJ,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;SACnB,CAAC;QACF,gBAAgB;QAChB,SAAS,CAAC,EAAE,KAAK,CAAC;YAChB,KAAK,EAAE,MAAM,CAAC;YACd,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;SACpB,CAAC,CAAC;QACH,oCAAoC;QACpC,WAAW,CAAC,EAAE,KAAK,GAAG,cAAc,GAAG,MAAM,CAAC;KAC/C,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEjC;;;;;;;;;;OAUG;IACH,WAAW,CAAC,MAAM,EAAE;QAClB,kBAAkB;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,eAAe;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,oCAAoC;QACpC,WAAW,CAAC,EAAE,KAAK,GAAG,cAAc,GAAG,MAAM,CAAC;KAC/C,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEjC;;;;;;;;;;OAUG;IACH,aAAa,CAAC,MAAM,EAAE;QACpB,kBAAkB;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,eAAe;QACf,OAAO,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEjC;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,MAAM,EAAE;QACf,kBAAkB;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,oDAAoD;QACpD,IAAI,EAAE,MAAM,CAAC;QACb,oCAAoC;QACpC,WAAW,CAAC,EAAE,KAAK,GAAG,cAAc,GAAG,MAAM,CAAC;KAC/C,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;CAClC"}
|