zotero-bridge 1.0.1

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * ZoteroBridge - MCP Server for Zotero SQLite Database
4
+ *
5
+ * A Model Context Protocol server that provides direct access to Zotero's
6
+ * SQLite database for collection management, tagging, PDF reading, and more.
7
+ *
8
+ * @author Combjellyshen
9
+ * @version 1.0.0
10
+ */
11
+ export {};
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;GAQG"}
package/dist/index.js ADDED
@@ -0,0 +1,504 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * ZoteroBridge - MCP Server for Zotero SQLite Database
4
+ *
5
+ * A Model Context Protocol server that provides direct access to Zotero's
6
+ * SQLite database for collection management, tagging, PDF reading, and more.
7
+ *
8
+ * @author Combjellyshen
9
+ * @version 1.0.0
10
+ */
11
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
12
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
13
+ import { CallToolRequestSchema, ListToolsRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
14
+ import { z } from 'zod';
15
+ import { ZoteroDatabase } from './database.js';
16
+ import { PDFProcessor } from './pdf.js';
17
+ import { toolDefinitions, listCollectionsSchema, getCollectionSchema, createCollectionSchema, renameCollectionSchema, moveCollectionSchema, deleteCollectionSchema, getSubcollectionsSchema, listTagsSchema, addTagSchema, removeTagSchema, getItemTagsSchema, createTagSchema, searchItemsSchema, getItemDetailsSchema, addItemToCollectionSchema, removeItemFromCollectionSchema, getCollectionItemsSchema, getItemAbstractSchema, setItemAbstractSchema, getItemNotesSchema, addItemNoteSchema, extractPDFTextSchema, getPDFSummarySchema, getItemPDFsSchema, searchPDFSchema, generateAbstractFromPDFSchema, getDatabaseInfoSchema, rawQuerySchema,
18
+ // New schemas
19
+ findByDOISchema, findByISBNSchema, findByIdentifierSchema, getItemAnnotationsSchema, getAttachmentAnnotationsSchema, getAnnotationsByTypeSchema, getAnnotationsByColorSchema, searchAnnotationsSchema, searchFulltextSchema, getFulltextContentSchema, searchFulltextWithContextSchema, getRelatedItemsSchema, findSimilarByTagsSchema, findSimilarByCreatorsSchema, findSimilarByCollectionSchema } from './tools.js';
20
+ // Server configuration
21
+ const SERVER_NAME = 'zotero-bridge';
22
+ const SERVER_VERSION = '1.0.0';
23
+ // Parse command line arguments
24
+ function parseArgs() {
25
+ const args = process.argv.slice(2);
26
+ let dbPath;
27
+ let readonly = false;
28
+ for (let i = 0; i < args.length; i++) {
29
+ if (args[i] === '--db' || args[i] === '-d') {
30
+ dbPath = args[i + 1];
31
+ i++;
32
+ }
33
+ else if (args[i] === '--readonly' || args[i] === '-r') {
34
+ readonly = true;
35
+ }
36
+ else if (args[i] === '--help' || args[i] === '-h') {
37
+ console.log(`
38
+ ZoteroBridge - MCP Server for Zotero SQLite Database
39
+
40
+ Usage: zotero-bridge [options]
41
+
42
+ Options:
43
+ -d, --db <path> Path to zotero.sqlite database
44
+ -r, --readonly Open database in read-only mode
45
+ -h, --help Show this help message
46
+
47
+ Example:
48
+ zotero-bridge --db ~/Zotero/zotero.sqlite
49
+ zotero-bridge --readonly
50
+ `);
51
+ process.exit(0);
52
+ }
53
+ }
54
+ return { dbPath, readonly };
55
+ }
56
+ // Initialize the server
57
+ async function main() {
58
+ const { dbPath, readonly } = parseArgs();
59
+ // Initialize database
60
+ const db = new ZoteroDatabase(dbPath, readonly);
61
+ await db.connect(); // Connect to database
62
+ const pdf = new PDFProcessor(db);
63
+ // Create MCP server
64
+ const server = new Server({
65
+ name: SERVER_NAME,
66
+ version: SERVER_VERSION,
67
+ }, {
68
+ capabilities: {
69
+ tools: {},
70
+ },
71
+ });
72
+ // Handle tool listing
73
+ server.setRequestHandler(ListToolsRequestSchema, async () => {
74
+ return {
75
+ tools: toolDefinitions.map(tool => ({
76
+ name: tool.name,
77
+ description: tool.description,
78
+ inputSchema: {
79
+ type: 'object',
80
+ properties: Object.fromEntries(Object.entries(tool.inputSchema.shape || {}).map(([key, value]) => {
81
+ const zodType = value;
82
+ const schema = zodToJsonSchema(zodType);
83
+ return [key, {
84
+ ...schema,
85
+ description: zodType.description || ''
86
+ }];
87
+ })),
88
+ required: Object.entries(tool.inputSchema.shape || {})
89
+ .filter(([_, value]) => !value.isOptional())
90
+ .map(([key]) => key)
91
+ }
92
+ }))
93
+ };
94
+ });
95
+ // Handle tool calls
96
+ server.setRequestHandler(CallToolRequestSchema, async (request) => {
97
+ const { name, arguments: args } = request.params;
98
+ try {
99
+ let result;
100
+ switch (name) {
101
+ // ============================================
102
+ // Collection Tools
103
+ // ============================================
104
+ case 'list_collections': {
105
+ const params = listCollectionsSchema.parse(args);
106
+ result = db.getCollections(params.libraryID);
107
+ break;
108
+ }
109
+ case 'get_collection': {
110
+ const params = getCollectionSchema.parse(args);
111
+ if (params.collectionID) {
112
+ result = db.getCollectionById(params.collectionID);
113
+ }
114
+ else if (params.name) {
115
+ result = db.getCollectionByName(params.name, params.libraryID);
116
+ }
117
+ else {
118
+ throw new Error('Either collectionID or name is required');
119
+ }
120
+ break;
121
+ }
122
+ case 'create_collection': {
123
+ const params = createCollectionSchema.parse(args);
124
+ const collectionID = db.createCollection(params.name, params.parentCollectionID || null, params.libraryID);
125
+ result = { success: true, collectionID };
126
+ break;
127
+ }
128
+ case 'rename_collection': {
129
+ const params = renameCollectionSchema.parse(args);
130
+ const success = db.renameCollection(params.collectionID, params.newName);
131
+ result = { success };
132
+ break;
133
+ }
134
+ case 'move_collection': {
135
+ const params = moveCollectionSchema.parse(args);
136
+ const success = db.moveCollection(params.collectionID, params.newParentID);
137
+ result = { success };
138
+ break;
139
+ }
140
+ case 'delete_collection': {
141
+ const params = deleteCollectionSchema.parse(args);
142
+ const success = db.deleteCollection(params.collectionID);
143
+ result = { success };
144
+ break;
145
+ }
146
+ case 'get_subcollections': {
147
+ const params = getSubcollectionsSchema.parse(args);
148
+ result = db.getSubcollections(params.parentCollectionID);
149
+ break;
150
+ }
151
+ // ============================================
152
+ // Tag Tools
153
+ // ============================================
154
+ case 'list_tags': {
155
+ listTagsSchema.parse(args);
156
+ result = db.getTags();
157
+ break;
158
+ }
159
+ case 'add_tag': {
160
+ const params = addTagSchema.parse(args);
161
+ const success = db.addTagToItem(params.itemID, params.tagName, params.type);
162
+ result = { success };
163
+ break;
164
+ }
165
+ case 'remove_tag': {
166
+ const params = removeTagSchema.parse(args);
167
+ const success = db.removeTagFromItem(params.itemID, params.tagName);
168
+ result = { success };
169
+ break;
170
+ }
171
+ case 'get_item_tags': {
172
+ const params = getItemTagsSchema.parse(args);
173
+ result = db.getItemTags(params.itemID);
174
+ break;
175
+ }
176
+ case 'create_tag': {
177
+ const params = createTagSchema.parse(args);
178
+ const tagID = db.createTag(params.name, params.type);
179
+ result = { success: true, tagID };
180
+ break;
181
+ }
182
+ // ============================================
183
+ // Item Tools
184
+ // ============================================
185
+ case 'search_items': {
186
+ const params = searchItemsSchema.parse(args);
187
+ result = db.searchItems(params.query, params.limit, params.libraryID);
188
+ break;
189
+ }
190
+ case 'get_item_details': {
191
+ const params = getItemDetailsSchema.parse(args);
192
+ if (params.itemID) {
193
+ result = db.getItemDetails(params.itemID);
194
+ }
195
+ else if (params.itemKey) {
196
+ const item = db.getItemByKey(params.itemKey);
197
+ if (item) {
198
+ result = db.getItemDetails(item.itemID);
199
+ }
200
+ else {
201
+ result = null;
202
+ }
203
+ }
204
+ else {
205
+ throw new Error('Either itemID or itemKey is required');
206
+ }
207
+ break;
208
+ }
209
+ case 'add_item_to_collection': {
210
+ const params = addItemToCollectionSchema.parse(args);
211
+ const success = db.addItemToCollection(params.itemID, params.collectionID);
212
+ result = { success };
213
+ break;
214
+ }
215
+ case 'remove_item_from_collection': {
216
+ const params = removeItemFromCollectionSchema.parse(args);
217
+ const success = db.removeItemFromCollection(params.itemID, params.collectionID);
218
+ result = { success };
219
+ break;
220
+ }
221
+ case 'get_collection_items': {
222
+ const params = getCollectionItemsSchema.parse(args);
223
+ result = db.getCollectionItems(params.collectionID);
224
+ break;
225
+ }
226
+ // ============================================
227
+ // Abstract/Note Tools
228
+ // ============================================
229
+ case 'get_item_abstract': {
230
+ const params = getItemAbstractSchema.parse(args);
231
+ result = { abstract: db.getItemAbstract(params.itemID) };
232
+ break;
233
+ }
234
+ case 'set_item_abstract': {
235
+ const params = setItemAbstractSchema.parse(args);
236
+ const success = db.setItemAbstract(params.itemID, params.abstract);
237
+ result = { success };
238
+ break;
239
+ }
240
+ case 'get_item_notes': {
241
+ const params = getItemNotesSchema.parse(args);
242
+ result = db.getItemNotes(params.itemID);
243
+ break;
244
+ }
245
+ case 'add_item_note': {
246
+ const params = addItemNoteSchema.parse(args);
247
+ const noteID = db.addItemNote(params.itemID, params.content, params.title);
248
+ result = { success: true, noteID };
249
+ break;
250
+ }
251
+ // ============================================
252
+ // PDF Tools
253
+ // ============================================
254
+ case 'extract_pdf_text': {
255
+ const params = extractPDFTextSchema.parse(args);
256
+ result = await pdf.extractTextFromAttachment(params.attachmentItemID);
257
+ break;
258
+ }
259
+ case 'get_pdf_summary': {
260
+ const params = getPDFSummarySchema.parse(args);
261
+ result = await pdf.getPDFSummary(params.attachmentItemID);
262
+ break;
263
+ }
264
+ case 'get_item_pdfs': {
265
+ const params = getItemPDFsSchema.parse(args);
266
+ const attachments = db.getPDFAttachments(params.parentItemID);
267
+ result = attachments.map(att => ({
268
+ ...att,
269
+ fullPath: db.getAttachmentPath(att.itemID)
270
+ }));
271
+ break;
272
+ }
273
+ case 'search_pdf': {
274
+ const params = searchPDFSchema.parse(args);
275
+ const content = await pdf.extractTextFromAttachment(params.attachmentItemID);
276
+ if (content) {
277
+ result = pdf.searchInPDF(content, params.query, params.caseSensitive);
278
+ }
279
+ else {
280
+ result = [];
281
+ }
282
+ break;
283
+ }
284
+ case 'generate_abstract_from_pdf': {
285
+ const params = generateAbstractFromPDFSchema.parse(args);
286
+ const content = await pdf.extractTextFromAttachment(params.attachmentItemID);
287
+ if (!content) {
288
+ throw new Error('Could not extract PDF content');
289
+ }
290
+ const abstract = pdf.generateSimpleSummary(content, params.maxLength);
291
+ if (params.saveToItem) {
292
+ // Get parent item ID from attachment
293
+ const attDetails = db.query('SELECT parentItemID FROM itemAttachments WHERE itemID = ?', [params.attachmentItemID])[0];
294
+ if (attDetails?.parentItemID) {
295
+ db.setItemAbstract(attDetails.parentItemID, abstract);
296
+ }
297
+ }
298
+ result = { abstract, length: abstract.length };
299
+ break;
300
+ }
301
+ // ============================================
302
+ // Utility Tools
303
+ // ============================================
304
+ case 'get_database_info': {
305
+ getDatabaseInfoSchema.parse(args);
306
+ result = {
307
+ path: db.getPath(),
308
+ storagePath: db.getStoragePath(),
309
+ readonly,
310
+ collectionsCount: db.getCollections().length,
311
+ tagsCount: db.getTags().length
312
+ };
313
+ break;
314
+ }
315
+ case 'raw_query': {
316
+ const params = rawQuerySchema.parse(args);
317
+ // Security check - only allow SELECT queries
318
+ if (!params.sql.trim().toUpperCase().startsWith('SELECT')) {
319
+ throw new Error('Only SELECT queries are allowed');
320
+ }
321
+ result = db.query(params.sql, params.params);
322
+ break;
323
+ }
324
+ // ============================================
325
+ // Identifier Tools (DOI/ISBN)
326
+ // ============================================
327
+ case 'find_by_doi': {
328
+ const params = findByDOISchema.parse(args);
329
+ result = db.findItemByDOI(params.doi);
330
+ break;
331
+ }
332
+ case 'find_by_isbn': {
333
+ const params = findByISBNSchema.parse(args);
334
+ result = db.findItemByISBN(params.isbn);
335
+ break;
336
+ }
337
+ case 'find_by_identifier': {
338
+ const params = findByIdentifierSchema.parse(args);
339
+ result = db.findItemByIdentifier(params.identifier, params.type);
340
+ break;
341
+ }
342
+ // ============================================
343
+ // Annotation Tools
344
+ // ============================================
345
+ case 'get_item_annotations': {
346
+ const params = getItemAnnotationsSchema.parse(args);
347
+ result = db.getItemAnnotations(params.itemID);
348
+ break;
349
+ }
350
+ case 'get_attachment_annotations': {
351
+ const params = getAttachmentAnnotationsSchema.parse(args);
352
+ result = db.getAttachmentAnnotations(params.attachmentID);
353
+ break;
354
+ }
355
+ case 'get_annotations_by_type': {
356
+ const params = getAnnotationsByTypeSchema.parse(args);
357
+ result = db.getAnnotationsByType(params.itemID, params.types);
358
+ break;
359
+ }
360
+ case 'get_annotations_by_color': {
361
+ const params = getAnnotationsByColorSchema.parse(args);
362
+ result = db.getAnnotationsByColor(params.itemID, params.colors);
363
+ break;
364
+ }
365
+ case 'search_annotations': {
366
+ const params = searchAnnotationsSchema.parse(args);
367
+ result = db.searchAnnotations(params.query, params.itemID);
368
+ break;
369
+ }
370
+ // ============================================
371
+ // Fulltext Search Tools
372
+ // ============================================
373
+ case 'search_fulltext': {
374
+ const params = searchFulltextSchema.parse(args);
375
+ result = db.searchFulltext(params.query, params.libraryID);
376
+ break;
377
+ }
378
+ case 'get_fulltext_content': {
379
+ const params = getFulltextContentSchema.parse(args);
380
+ result = { content: db.getFulltextContent(params.attachmentID) };
381
+ break;
382
+ }
383
+ case 'search_fulltext_with_context': {
384
+ const params = searchFulltextWithContextSchema.parse(args);
385
+ result = db.searchFulltextWithContext(params.query, params.contextLength, params.libraryID);
386
+ break;
387
+ }
388
+ // ============================================
389
+ // Related/Similar Items Tools
390
+ // ============================================
391
+ case 'get_related_items': {
392
+ const params = getRelatedItemsSchema.parse(args);
393
+ result = db.getRelatedItems(params.itemID);
394
+ break;
395
+ }
396
+ case 'find_similar_by_tags': {
397
+ const params = findSimilarByTagsSchema.parse(args);
398
+ result = db.findSimilarByTags(params.itemID, params.minSharedTags);
399
+ break;
400
+ }
401
+ case 'find_similar_by_creators': {
402
+ const params = findSimilarByCreatorsSchema.parse(args);
403
+ result = db.findSimilarByCreators(params.itemID);
404
+ break;
405
+ }
406
+ case 'find_similar_by_collection': {
407
+ const params = findSimilarByCollectionSchema.parse(args);
408
+ result = db.findSimilarByCollection(params.itemID);
409
+ break;
410
+ }
411
+ default:
412
+ throw new Error(`Unknown tool: ${name}`);
413
+ }
414
+ return {
415
+ content: [
416
+ {
417
+ type: 'text',
418
+ text: JSON.stringify(result, null, 2)
419
+ }
420
+ ]
421
+ };
422
+ }
423
+ catch (error) {
424
+ const errorMessage = error instanceof Error ? error.message : String(error);
425
+ return {
426
+ content: [
427
+ {
428
+ type: 'text',
429
+ text: JSON.stringify({ error: errorMessage })
430
+ }
431
+ ],
432
+ isError: true
433
+ };
434
+ }
435
+ });
436
+ // Start the server
437
+ const transport = new StdioServerTransport();
438
+ await server.connect(transport);
439
+ // Handle shutdown
440
+ process.on('SIGINT', () => {
441
+ db.disconnect();
442
+ process.exit(0);
443
+ });
444
+ process.on('SIGTERM', () => {
445
+ db.disconnect();
446
+ process.exit(0);
447
+ });
448
+ console.error(`ZoteroBridge MCP Server v${SERVER_VERSION} started`);
449
+ console.error(`Database: ${db.getPath()}`);
450
+ }
451
+ // Helper function to convert Zod type to JSON Schema
452
+ function zodToJsonSchema(zodType) {
453
+ // Unwrap optional, default, and nullable types
454
+ if (zodType instanceof z.ZodOptional) {
455
+ return zodToJsonSchema(zodType._def.innerType);
456
+ }
457
+ if (zodType instanceof z.ZodDefault) {
458
+ return zodToJsonSchema(zodType._def.innerType);
459
+ }
460
+ if (zodType instanceof z.ZodNullable) {
461
+ return zodToJsonSchema(zodType._def.innerType);
462
+ }
463
+ // Handle basic types
464
+ if (zodType instanceof z.ZodString) {
465
+ return { type: 'string' };
466
+ }
467
+ if (zodType instanceof z.ZodNumber) {
468
+ return { type: 'number' };
469
+ }
470
+ if (zodType instanceof z.ZodBoolean) {
471
+ return { type: 'boolean' };
472
+ }
473
+ // Handle array types - MUST include items
474
+ if (zodType instanceof z.ZodArray) {
475
+ const elementType = zodType._def.type;
476
+ const itemSchema = zodToJsonSchema(elementType);
477
+ // If items schema is empty (from ZodAny), use a more explicit schema
478
+ if (Object.keys(itemSchema).length === 0) {
479
+ return {
480
+ type: 'array',
481
+ items: { type: 'string' } // Default to string for any type to ensure valid JSON Schema
482
+ };
483
+ }
484
+ return {
485
+ type: 'array',
486
+ items: itemSchema
487
+ };
488
+ }
489
+ // Handle object types
490
+ if (zodType instanceof z.ZodObject) {
491
+ return { type: 'object' };
492
+ }
493
+ // Handle ZodAny - return empty object (accepts any value)
494
+ if (zodType instanceof z.ZodAny) {
495
+ return {};
496
+ }
497
+ // Default to string
498
+ return { type: 'string' };
499
+ }
500
+ main().catch((error) => {
501
+ console.error('Fatal error:', error);
502
+ process.exit(1);
503
+ });
504
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/pdf.d.ts ADDED
@@ -0,0 +1,57 @@
1
+ /**
2
+ * ZoteroBridge - PDF Processing Module
3
+ *
4
+ * Handles PDF text extraction and content analysis
5
+ *
6
+ * @author Combjellyshen
7
+ */
8
+ import { ZoteroDatabase } from './database.js';
9
+ export interface PDFContent {
10
+ text: string;
11
+ numPages: number;
12
+ info: Record<string, any>;
13
+ metadata: Record<string, any> | null;
14
+ }
15
+ export interface PDFSummary {
16
+ itemID: number;
17
+ title: string;
18
+ numPages: number;
19
+ wordCount: number;
20
+ preview: string;
21
+ path: string;
22
+ }
23
+ export declare class PDFProcessor {
24
+ private db;
25
+ constructor(db: ZoteroDatabase);
26
+ /**
27
+ * Extract text from a PDF file
28
+ */
29
+ extractText(pdfPath: string): Promise<PDFContent>;
30
+ /**
31
+ * Extract text from a PDF attachment by item ID
32
+ */
33
+ extractTextFromAttachment(attachmentItemID: number): Promise<PDFContent | null>;
34
+ /**
35
+ * Extract text from all PDF attachments of a parent item
36
+ */
37
+ extractTextFromItem(parentItemID: number): Promise<Map<number, PDFContent>>;
38
+ /**
39
+ * Get a summary of a PDF attachment
40
+ */
41
+ getPDFSummary(attachmentItemID: number): Promise<PDFSummary | null>;
42
+ /**
43
+ * Generate an abstract/summary from PDF content
44
+ * This is a simple extraction - for AI-generated summaries,
45
+ * use the extracted text with an LLM
46
+ */
47
+ generateSimpleSummary(content: PDFContent, maxLength?: number): string;
48
+ /**
49
+ * Search for text within PDF content
50
+ */
51
+ searchInPDF(content: PDFContent, query: string, caseSensitive?: boolean): string[];
52
+ /**
53
+ * Get PDF info/metadata
54
+ */
55
+ getPDFInfo(pdfPath: string): Promise<Record<string, any>>;
56
+ }
57
+ //# sourceMappingURL=pdf.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdf.d.ts","sourceRoot":"","sources":["../src/pdf.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;CACtC;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,EAAE,CAAiB;gBAEf,EAAE,EAAE,cAAc;IAI9B;;OAEG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAgBvD;;OAEG;IACG,yBAAyB,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAUrF;;OAEG;IACG,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAmBjF;;OAEG;IACG,aAAa,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IA0BzE;;;;OAIG;IACH,qBAAqB,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,GAAE,MAAa,GAAG,MAAM;IAwB5E;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,GAAE,OAAe,GAAG,MAAM,EAAE;IAoBzF;;OAEG;IACG,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAQhE"}