@andrebuzeli/git-mcp 2.12.5 → 2.12.6

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 (55) hide show
  1. package/dist/tools/actions.d.ts +5 -5
  2. package/dist/tools/analytics.d.ts +5 -5
  3. package/dist/tools/branches.d.ts +6 -6
  4. package/dist/tools/branches.js +3 -3
  5. package/dist/tools/branches.js.map +1 -1
  6. package/dist/tools/code-review.d.ts +10 -10
  7. package/dist/tools/code-review.js +3 -3
  8. package/dist/tools/code-review.js.map +1 -1
  9. package/dist/tools/commits.d.ts +6 -6
  10. package/dist/tools/commits.js +4 -4
  11. package/dist/tools/commits.js.map +1 -1
  12. package/dist/tools/deployments.d.ts +5 -5
  13. package/dist/tools/files.d.ts +6 -6
  14. package/dist/tools/files.js +4 -4
  15. package/dist/tools/files.js.map +1 -1
  16. package/dist/tools/issues.d.ts +6 -6
  17. package/dist/tools/issues.js +3 -3
  18. package/dist/tools/issues.js.map +1 -1
  19. package/dist/tools/pulls.d.ts +6 -6
  20. package/dist/tools/pulls.js +3 -3
  21. package/dist/tools/pulls.js.map +1 -1
  22. package/dist/tools/releases.d.ts +9 -9
  23. package/dist/tools/releases.js +4 -4
  24. package/dist/tools/releases.js.map +1 -1
  25. package/dist/tools/repositories.d.ts +6 -6
  26. package/dist/tools/repositories.js +3 -3
  27. package/dist/tools/repositories.js.map +1 -1
  28. package/dist/tools/security.d.ts +5 -5
  29. package/dist/tools/tags.d.ts +6 -6
  30. package/dist/tools/tags.js +3 -3
  31. package/dist/tools/tags.js.map +1 -1
  32. package/dist/tools/validator.d.ts +22 -22
  33. package/dist/tools/validator.js +1 -1
  34. package/dist/tools/validator.js.map +1 -1
  35. package/dist/tools/webhooks.d.ts +6 -6
  36. package/dist/tools/webhooks.js +3 -3
  37. package/dist/tools/webhooks.js.map +1 -1
  38. package/dist/tools/workflows.d.ts +5 -5
  39. package/package.json +3 -3
  40. package/dist/tools/auto-user-detection.d.ts +0 -103
  41. package/dist/tools/auto-user-detection.d.ts.map +0 -1
  42. package/dist/tools/auto-user-detection.js +0 -134
  43. package/dist/tools/auto-user-detection.js.map +0 -1
  44. package/dist/tools/permission-checker.d.ts +0 -42
  45. package/dist/tools/permission-checker.d.ts.map +0 -1
  46. package/dist/tools/permission-checker.js +0 -164
  47. package/dist/tools/permission-checker.js.map +0 -1
  48. package/dist/tools/permissions.d.ts +0 -127
  49. package/dist/tools/permissions.d.ts.map +0 -1
  50. package/dist/tools/permissions.js +0 -199
  51. package/dist/tools/permissions.js.map +0 -1
  52. package/dist/tools/user-helper.d.ts +0 -14
  53. package/dist/tools/user-helper.d.ts.map +0 -1
  54. package/dist/tools/user-helper.js +0 -38
  55. package/dist/tools/user-helper.js.map +0 -1
@@ -1,134 +0,0 @@
1
- "use strict";
2
- /**
3
- * Auto-detecção de usuário para tools
4
- *
5
- * Este módulo fornece funções para auto-detectar o usuário atual
6
- * baseado no token de autenticação, evitando a necessidade de
7
- * passar owner/username em cada tool call.
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.AUTO_USER_CONFIG = void 0;
11
- exports.applyAutoUserDetection = applyAutoUserDetection;
12
- exports.applyAutoUserForTool = applyAutoUserForTool;
13
- const user_helper_js_1 = require("./user-helper.js");
14
- /**
15
- * Aplica auto-detecção de usuário aos parâmetros
16
- *
17
- * @param params Parâmetros da tool
18
- * @param actionsForOwner Ações que requerem owner
19
- * @param actionsForUsername Ações que requerem username
20
- * @returns Parâmetros atualizados com usuário auto-detectado
21
- */
22
- async function applyAutoUserDetection(params, actionsForOwner = [], actionsForUsername = [], action) {
23
- const updatedParams = { ...params };
24
- try {
25
- // Auto-detectar owner se necessário
26
- if (!updatedParams.owner && action && actionsForOwner.includes(action)) {
27
- updatedParams.owner = await (0, user_helper_js_1.getCurrentUser)(updatedParams.provider);
28
- }
29
- // Auto-detectar username se necessário
30
- if (!updatedParams.username && action && actionsForUsername.includes(action)) {
31
- updatedParams.username = await (0, user_helper_js_1.getCurrentUser)(updatedParams.provider);
32
- }
33
- // Para ações de list, se nem username nem owner foram fornecidos, usa owner como fallback
34
- if (action === 'list' && !updatedParams.username && !updatedParams.owner) {
35
- updatedParams.username = await (0, user_helper_js_1.getCurrentUser)(updatedParams.provider);
36
- }
37
- return updatedParams;
38
- }
39
- catch (error) {
40
- const errorMessage = error instanceof Error ? error.message : String(error);
41
- if (action && actionsForOwner.includes(action)) {
42
- throw new Error(`Owner é obrigatório para a ação '${action}' e não foi possível auto-detectar o usuário atual. Erro: ${errorMessage}`);
43
- }
44
- if (action && actionsForUsername.includes(action)) {
45
- throw new Error(`Username é obrigatório para a ação '${action}' e não foi possível auto-detectar o usuário atual. Erro: ${errorMessage}`);
46
- }
47
- throw error;
48
- }
49
- }
50
- /**
51
- * Configurações padrão para auto-detecção por tool
52
- */
53
- exports.AUTO_USER_CONFIG = {
54
- repositories: {
55
- ownerActions: ['get', 'update', 'delete', 'fork', 'archive', 'transfer'],
56
- usernameActions: ['list']
57
- },
58
- branches: {
59
- ownerActions: ['create', 'list', 'get', 'delete', 'merge', 'compare'],
60
- usernameActions: []
61
- },
62
- files: {
63
- ownerActions: ['get', 'create', 'update', 'delete', 'list'],
64
- usernameActions: []
65
- },
66
- commits: {
67
- ownerActions: ['list', 'get', 'create', 'compare', 'search'],
68
- usernameActions: []
69
- },
70
- issues: {
71
- ownerActions: ['create', 'list', 'get', 'update', 'close', 'comment', 'search'],
72
- usernameActions: []
73
- },
74
- pulls: {
75
- ownerActions: ['create', 'list', 'get', 'update', 'merge', 'close', 'review', 'search'],
76
- usernameActions: []
77
- },
78
- releases: {
79
- ownerActions: ['create', 'list', 'get', 'update', 'delete', 'publish'],
80
- usernameActions: []
81
- },
82
- tags: {
83
- ownerActions: ['create', 'list', 'get', 'delete', 'search'],
84
- usernameActions: []
85
- },
86
- users: {
87
- ownerActions: [],
88
- usernameActions: ['get', 'list', 'search']
89
- },
90
- webhooks: {
91
- ownerActions: ['create', 'list', 'get', 'update', 'delete'],
92
- usernameActions: []
93
- },
94
- workflows: {
95
- ownerActions: ['list', 'create', 'trigger', 'status', 'logs', 'disable', 'enable'],
96
- usernameActions: []
97
- },
98
- actions: {
99
- ownerActions: ['list-runs', 'cancel', 'rerun', 'artifacts', 'secrets', 'jobs', 'download-artifact'],
100
- usernameActions: []
101
- },
102
- deployments: {
103
- ownerActions: ['list', 'create', 'status', 'environments', 'rollback', 'delete'],
104
- usernameActions: []
105
- },
106
- security: {
107
- ownerActions: ['scan', 'vulnerabilities', 'alerts', 'policies', 'compliance', 'dependencies', 'advisories'],
108
- usernameActions: []
109
- },
110
- analytics: {
111
- ownerActions: ['traffic', 'contributors', 'activity', 'performance', 'reports', 'trends', 'insights'],
112
- usernameActions: []
113
- },
114
- 'code-review': {
115
- ownerActions: ['analyze', 'review-file', 'review-commit', 'review-pr', 'generate-report', 'apply-suggestions'],
116
- usernameActions: []
117
- }
118
- };
119
- /**
120
- * Aplica auto-detecção para uma tool específica
121
- *
122
- * @param toolName Nome da tool
123
- * @param params Parâmetros da tool
124
- * @param action Ação sendo executada
125
- * @returns Parâmetros atualizados
126
- */
127
- async function applyAutoUserForTool(toolName, params, action) {
128
- const config = exports.AUTO_USER_CONFIG[toolName];
129
- if (!config) {
130
- return params;
131
- }
132
- return applyAutoUserDetection(params, config.ownerActions, config.usernameActions, action);
133
- }
134
- //# sourceMappingURL=auto-user-detection.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auto-user-detection.js","sourceRoot":"","sources":["../../src/tools/auto-user-detection.ts"],"names":[],"mappings":"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"}
@@ -1,42 +0,0 @@
1
- /**
2
- * Verificador de permissões para tokens
3
- *
4
- * Este módulo verifica se o token configurado tem permissões
5
- * adequadas para acessar repositórios privados e públicos.
6
- */
7
- /**
8
- * Interface para resultado de verificação de permissões
9
- */
10
- export interface PermissionCheckResult {
11
- success: boolean;
12
- provider: string;
13
- user: string;
14
- permissions: {
15
- publicRepos: boolean;
16
- privateRepos: boolean;
17
- writeAccess: boolean;
18
- adminAccess: boolean;
19
- };
20
- errors: string[];
21
- }
22
- /**
23
- * Verifica as permissões do token atual
24
- *
25
- * @param provider Nome do provider (opcional, usa padrão se não fornecido)
26
- * @returns Resultado da verificação de permissões
27
- */
28
- export declare function checkTokenPermissions(provider?: string): Promise<PermissionCheckResult>;
29
- /**
30
- * Gera relatório de permissões em formato legível
31
- *
32
- * @param result Resultado da verificação de permissões
33
- * @returns Relatório formatado
34
- */
35
- export declare function generatePermissionReport(result: PermissionCheckResult): string;
36
- /**
37
- * Verifica permissões para todos os providers configurados
38
- *
39
- * @returns Array com resultados de todos os providers
40
- */
41
- export declare function checkAllProvidersPermissions(): Promise<PermissionCheckResult[]>;
42
- //# sourceMappingURL=permission-checker.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"permission-checker.d.ts","sourceRoot":"","sources":["../../src/tools/permission-checker.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE;QACX,WAAW,EAAE,OAAO,CAAC;QACrB,YAAY,EAAE,OAAO,CAAC;QACtB,WAAW,EAAE,OAAO,CAAC;QACrB,WAAW,EAAE,OAAO,CAAC;KACtB,CAAC;IACF,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAmG7F;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,qBAAqB,GAAG,MAAM,CAmC9E;AAED;;;;GAIG;AACH,wBAAsB,4BAA4B,IAAI,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAUrF"}
@@ -1,164 +0,0 @@
1
- "use strict";
2
- /**
3
- * Verificador de permissões para tokens
4
- *
5
- * Este módulo verifica se o token configurado tem permissões
6
- * adequadas para acessar repositórios privados e públicos.
7
- */
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.checkTokenPermissions = checkTokenPermissions;
10
- exports.generatePermissionReport = generatePermissionReport;
11
- exports.checkAllProvidersPermissions = checkAllProvidersPermissions;
12
- const index_js_1 = require("../providers/index.js");
13
- /**
14
- * Verifica as permissões do token atual
15
- *
16
- * @param provider Nome do provider (opcional, usa padrão se não fornecido)
17
- * @returns Resultado da verificação de permissões
18
- */
19
- async function checkTokenPermissions(provider) {
20
- const result = {
21
- success: false,
22
- provider: provider || 'default',
23
- user: '',
24
- permissions: {
25
- publicRepos: false,
26
- privateRepos: false,
27
- writeAccess: false,
28
- adminAccess: false
29
- },
30
- errors: []
31
- };
32
- try {
33
- // Obter o provider
34
- const providerInstance = provider
35
- ? index_js_1.globalProviderFactory.getProvider(provider)
36
- : index_js_1.globalProviderFactory.getDefaultProvider();
37
- if (!providerInstance) {
38
- result.errors.push(`Provider '${provider}' não encontrado`);
39
- return result;
40
- }
41
- result.provider = providerInstance.config?.name || provider || 'unknown';
42
- // 1. Verificar se consegue obter informações do usuário atual
43
- try {
44
- const userInfo = await providerInstance.getCurrentUser();
45
- result.user = userInfo.login;
46
- result.permissions.publicRepos = true; // Se conseguiu obter usuário, tem acesso básico
47
- }
48
- catch (error) {
49
- result.errors.push(`Falha ao obter informações do usuário: ${error instanceof Error ? error.message : String(error)}`);
50
- return result;
51
- }
52
- // 2. Tentar listar repositórios do usuário (inclui privados se tiver permissão)
53
- try {
54
- const repositories = await providerInstance.listRepositories(result.user, 1, 10);
55
- // Verificar se há repositórios privados na lista
56
- const hasPrivateRepos = repositories.some(repo => repo.private);
57
- result.permissions.privateRepos = hasPrivateRepos;
58
- if (repositories.length > 0) {
59
- result.permissions.writeAccess = true; // Se conseguiu listar, provavelmente tem write access
60
- }
61
- }
62
- catch (error) {
63
- result.errors.push(`Falha ao listar repositórios: ${error instanceof Error ? error.message : String(error)}`);
64
- }
65
- // 3. Tentar obter um repositório específico (teste de read access)
66
- try {
67
- const testRepo = await providerInstance.getRepository(result.user, 'test-repo-12345');
68
- // Se chegou aqui, conseguiu acessar (mesmo que seja um repositório inexistente)
69
- result.permissions.publicRepos = true;
70
- }
71
- catch (error) {
72
- // Erro esperado se o repositório não existir, mas indica que tem permissão de read
73
- if (error instanceof Error && !error.message.includes('Not found')) {
74
- result.errors.push(`Falha ao testar acesso a repositório: ${error.message}`);
75
- }
76
- }
77
- // 4. Verificar permissões de admin (tentar criar um repositório de teste)
78
- try {
79
- const testRepoName = `permission-test-${Date.now()}`;
80
- const testRepo = await providerInstance.createRepository(testRepoName, 'Teste de permissões', true);
81
- // Se conseguiu criar, tem permissões de admin
82
- result.permissions.adminAccess = true;
83
- result.permissions.privateRepos = true;
84
- result.permissions.writeAccess = true;
85
- // Limpar o repositório de teste
86
- try {
87
- await providerInstance.deleteRepository(result.user, testRepoName);
88
- }
89
- catch (cleanupError) {
90
- result.errors.push(`Aviso: Repositório de teste '${testRepoName}' criado mas não foi possível deletar`);
91
- }
92
- }
93
- catch (error) {
94
- if (error instanceof Error && error.message.includes('already exists')) {
95
- // Repositório já existe, mas isso indica que tem permissões de admin
96
- result.permissions.adminAccess = true;
97
- result.permissions.privateRepos = true;
98
- result.permissions.writeAccess = true;
99
- }
100
- else {
101
- result.errors.push(`Sem permissões de admin: ${error instanceof Error ? error.message : String(error)}`);
102
- }
103
- }
104
- // Determinar sucesso geral
105
- result.success = result.permissions.publicRepos && result.permissions.privateRepos && result.permissions.writeAccess;
106
- }
107
- catch (error) {
108
- result.errors.push(`Erro geral na verificação: ${error instanceof Error ? error.message : String(error)}`);
109
- }
110
- return result;
111
- }
112
- /**
113
- * Gera relatório de permissões em formato legível
114
- *
115
- * @param result Resultado da verificação de permissões
116
- * @returns Relatório formatado
117
- */
118
- function generatePermissionReport(result) {
119
- let report = `\n=== RELATÓRIO DE PERMISSÕES ===\n`;
120
- report += `Provider: ${result.provider}\n`;
121
- report += `Usuário: ${result.user}\n`;
122
- report += `Status: ${result.success ? '✅ SUCESSO' : '❌ PROBLEMAS DETECTADOS'}\n\n`;
123
- report += `PERMISSÕES:\n`;
124
- report += `• Repositórios públicos: ${result.permissions.publicRepos ? '✅' : '❌'}\n`;
125
- report += `• Repositórios privados: ${result.permissions.privateRepos ? '✅' : '❌'}\n`;
126
- report += `• Acesso de escrita: ${result.permissions.writeAccess ? '✅' : '❌'}\n`;
127
- report += `• Acesso de admin: ${result.permissions.adminAccess ? '✅' : '❌'}\n\n`;
128
- if (result.errors.length > 0) {
129
- report += `ERROS DETECTADOS:\n`;
130
- result.errors.forEach((error, index) => {
131
- report += `${index + 1}. ${error}\n`;
132
- });
133
- report += `\n`;
134
- }
135
- if (!result.success) {
136
- report += `RECOMENDAÇÕES:\n`;
137
- if (!result.permissions.privateRepos) {
138
- report += `• Verifique se o token tem permissões para acessar repositórios privados\n`;
139
- }
140
- if (!result.permissions.writeAccess) {
141
- report += `• Verifique se o token tem permissões de escrita (write)\n`;
142
- }
143
- if (!result.permissions.adminAccess) {
144
- report += `• Para operações completas, o token precisa de permissões de admin\n`;
145
- }
146
- report += `• Consulte a documentação do seu provider (Gitea/GitHub) para configurar permissões adequadas\n`;
147
- }
148
- return report;
149
- }
150
- /**
151
- * Verifica permissões para todos os providers configurados
152
- *
153
- * @returns Array com resultados de todos os providers
154
- */
155
- async function checkAllProvidersPermissions() {
156
- const results = [];
157
- const providers = index_js_1.globalProviderFactory.listProviders();
158
- for (const providerName of providers) {
159
- const result = await checkTokenPermissions(providerName);
160
- results.push(result);
161
- }
162
- return results;
163
- }
164
- //# sourceMappingURL=permission-checker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"permission-checker.js","sourceRoot":"","sources":["../../src/tools/permission-checker.ts"],"names":[],"mappings":"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"}
@@ -1,127 +0,0 @@
1
- import { z } from 'zod';
2
- /**
3
- * Tool: permissions
4
- *
5
- * DESCRIÇÃO:
6
- * Verificação de permissões de tokens para Gitea e GitHub
7
- *
8
- * FUNCIONALIDADES:
9
- * - Verificar permissões de token específico
10
- * - Verificar todos os providers configurados
11
- * - Gerar relatórios de permissões
12
- * - Validar acesso a repositórios privados
13
- *
14
- * USO:
15
- * - Para validar configuração de tokens
16
- * - Para diagnosticar problemas de acesso
17
- * - Para verificar permissões antes de operações críticas
18
- * - Para auditoria de segurança
19
- *
20
- * RECOMENDAÇÕES:
21
- * - Execute regularmente para validar tokens
22
- * - Verifique antes de operações em massa
23
- * - Monitore mudanças de permissões
24
- * - Mantenha logs de verificações
25
- */
26
- /**
27
- * Schema de validação para entrada da tool permissions
28
- */
29
- declare const PermissionsInputSchema: z.ZodObject<{
30
- action: z.ZodEnum<["check", "check-all", "report"]>;
31
- provider: z.ZodOptional<z.ZodString>;
32
- generateReport: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
33
- }, "strip", z.ZodTypeAny, {
34
- action: "check" | "check-all" | "report";
35
- generateReport: boolean;
36
- provider?: string | undefined;
37
- }, {
38
- action: "check" | "check-all" | "report";
39
- provider?: string | undefined;
40
- generateReport?: boolean | undefined;
41
- }>;
42
- export type PermissionsInput = z.infer<typeof PermissionsInputSchema>;
43
- declare const PermissionsResultSchema: z.ZodObject<{
44
- success: z.ZodBoolean;
45
- action: z.ZodString;
46
- message: z.ZodString;
47
- data: z.ZodOptional<z.ZodAny>;
48
- error: z.ZodOptional<z.ZodString>;
49
- }, "strip", z.ZodTypeAny, {
50
- message: string;
51
- action: string;
52
- success: boolean;
53
- error?: string | undefined;
54
- data?: any;
55
- }, {
56
- message: string;
57
- action: string;
58
- success: boolean;
59
- error?: string | undefined;
60
- data?: any;
61
- }>;
62
- export type PermissionsResult = z.infer<typeof PermissionsResultSchema>;
63
- /**
64
- * Tool: permissions
65
- *
66
- * ACTIONS DISPONÍVEIS:
67
- *
68
- * 1. check - Verificar permissões de um provider específico
69
- * Parâmetros:
70
- * - provider (opcional): Provider específico para verificar
71
- * - generateReport (opcional): Gerar relatório formatado (padrão: true)
72
- *
73
- * 2. check-all - Verificar permissões de todos os providers
74
- * Parâmetros:
75
- * - generateReport (opcional): Gerar relatório formatado (padrão: true)
76
- *
77
- * 3. report - Gerar apenas relatório das últimas verificações
78
- * Parâmetros:
79
- * - provider (opcional): Provider específico
80
- *
81
- * RECOMENDAÇÕES DE USO:
82
- * - Use 'check-all' para auditoria completa
83
- * - Use 'check' para verificação específica
84
- * - Use 'report' para visualizar resultados
85
- * - Execute regularmente para monitoramento
86
- */
87
- export declare const permissionsTool: {
88
- name: string;
89
- description: string;
90
- inputSchema: {
91
- type: string;
92
- properties: {
93
- action: {
94
- type: string;
95
- enum: string[];
96
- description: string;
97
- };
98
- provider: {
99
- type: string;
100
- description: string;
101
- };
102
- generateReport: {
103
- type: string;
104
- description: string;
105
- };
106
- };
107
- required: string[];
108
- };
109
- /**
110
- * Handler principal da tool permissions
111
- */
112
- handler(input: PermissionsInput): Promise<PermissionsResult>;
113
- /**
114
- * Verifica permissões de um provider específico
115
- */
116
- checkProviderPermissions(params: PermissionsInput): Promise<PermissionsResult>;
117
- /**
118
- * Verifica permissões de todos os providers
119
- */
120
- checkAllProviders(params: PermissionsInput): Promise<PermissionsResult>;
121
- /**
122
- * Gera relatório de verificações
123
- */
124
- generateReport(params: PermissionsInput): Promise<PermissionsResult>;
125
- };
126
- export {};
127
- //# sourceMappingURL=permissions.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../src/tools/permissions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH;;GAEG;AACH,QAAA,MAAM,sBAAsB;;;;;;;;;;;;EAI1B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAGtE,QAAA,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;EAM3B,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;IAiB1B;;OAEG;mBACkB,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAwBlE;;OAEG;qCACoC,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAyBpF;;OAEG;8BAC6B,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAkC7E;;OAEG;2BAC0B,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;CA2B3E,CAAC"}