@andrebuzeli/git-mcp 2.6.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.
Files changed (122) hide show
  1. package/README.md +346 -0
  2. package/dist/client.d.ts +307 -0
  3. package/dist/client.d.ts.map +1 -0
  4. package/dist/client.js +299 -0
  5. package/dist/client.js.map +1 -0
  6. package/dist/config.d.ts +299 -0
  7. package/dist/config.d.ts.map +1 -0
  8. package/dist/config.js +381 -0
  9. package/dist/config.js.map +1 -0
  10. package/dist/index.d.ts +22 -0
  11. package/dist/index.d.ts.map +1 -0
  12. package/dist/index.js +53 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/providers/base-provider.d.ts +139 -0
  15. package/dist/providers/base-provider.d.ts.map +1 -0
  16. package/dist/providers/base-provider.js +246 -0
  17. package/dist/providers/base-provider.js.map +1 -0
  18. package/dist/providers/error-handler.d.ts +51 -0
  19. package/dist/providers/error-handler.d.ts.map +1 -0
  20. package/dist/providers/error-handler.js +170 -0
  21. package/dist/providers/error-handler.js.map +1 -0
  22. package/dist/providers/gitea-provider.d.ts +68 -0
  23. package/dist/providers/gitea-provider.d.ts.map +1 -0
  24. package/dist/providers/gitea-provider.js +515 -0
  25. package/dist/providers/gitea-provider.js.map +1 -0
  26. package/dist/providers/github-provider.d.ts +68 -0
  27. package/dist/providers/github-provider.d.ts.map +1 -0
  28. package/dist/providers/github-provider.js +518 -0
  29. package/dist/providers/github-provider.js.map +1 -0
  30. package/dist/providers/index.d.ts +13 -0
  31. package/dist/providers/index.d.ts.map +1 -0
  32. package/dist/providers/index.js +41 -0
  33. package/dist/providers/index.js.map +1 -0
  34. package/dist/providers/provider-factory.d.ts +75 -0
  35. package/dist/providers/provider-factory.d.ts.map +1 -0
  36. package/dist/providers/provider-factory.js +298 -0
  37. package/dist/providers/provider-factory.js.map +1 -0
  38. package/dist/providers/types.d.ts +276 -0
  39. package/dist/providers/types.d.ts.map +1 -0
  40. package/dist/providers/types.js +7 -0
  41. package/dist/providers/types.js.map +1 -0
  42. package/dist/server.d.ts +77 -0
  43. package/dist/server.d.ts.map +1 -0
  44. package/dist/server.js +262 -0
  45. package/dist/server.js.map +1 -0
  46. package/dist/tools/actions.d.ts +272 -0
  47. package/dist/tools/actions.d.ts.map +1 -0
  48. package/dist/tools/actions.js +428 -0
  49. package/dist/tools/actions.js.map +1 -0
  50. package/dist/tools/analytics.d.ts +326 -0
  51. package/dist/tools/analytics.d.ts.map +1 -0
  52. package/dist/tools/analytics.js +473 -0
  53. package/dist/tools/analytics.js.map +1 -0
  54. package/dist/tools/branches.d.ts +461 -0
  55. package/dist/tools/branches.d.ts.map +1 -0
  56. package/dist/tools/branches.js +525 -0
  57. package/dist/tools/branches.js.map +1 -0
  58. package/dist/tools/code-review.d.ts +323 -0
  59. package/dist/tools/code-review.d.ts.map +1 -0
  60. package/dist/tools/code-review.js +552 -0
  61. package/dist/tools/code-review.js.map +1 -0
  62. package/dist/tools/commits.d.ts +488 -0
  63. package/dist/tools/commits.d.ts.map +1 -0
  64. package/dist/tools/commits.js +578 -0
  65. package/dist/tools/commits.js.map +1 -0
  66. package/dist/tools/deployments.d.ts +319 -0
  67. package/dist/tools/deployments.d.ts.map +1 -0
  68. package/dist/tools/deployments.js +355 -0
  69. package/dist/tools/deployments.js.map +1 -0
  70. package/dist/tools/files.d.ts +456 -0
  71. package/dist/tools/files.d.ts.map +1 -0
  72. package/dist/tools/files.js +531 -0
  73. package/dist/tools/files.js.map +1 -0
  74. package/dist/tools/git-sync.d.ts +177 -0
  75. package/dist/tools/git-sync.d.ts.map +1 -0
  76. package/dist/tools/git-sync.js +112 -0
  77. package/dist/tools/git-sync.js.map +1 -0
  78. package/dist/tools/issues.d.ts +579 -0
  79. package/dist/tools/issues.d.ts.map +1 -0
  80. package/dist/tools/issues.js +631 -0
  81. package/dist/tools/issues.js.map +1 -0
  82. package/dist/tools/pulls.d.ts +702 -0
  83. package/dist/tools/pulls.d.ts.map +1 -0
  84. package/dist/tools/pulls.js +730 -0
  85. package/dist/tools/pulls.js.map +1 -0
  86. package/dist/tools/releases.d.ts +495 -0
  87. package/dist/tools/releases.d.ts.map +1 -0
  88. package/dist/tools/releases.js +551 -0
  89. package/dist/tools/releases.js.map +1 -0
  90. package/dist/tools/repositories.d.ts +513 -0
  91. package/dist/tools/repositories.d.ts.map +1 -0
  92. package/dist/tools/repositories.js +634 -0
  93. package/dist/tools/repositories.js.map +1 -0
  94. package/dist/tools/security.d.ts +341 -0
  95. package/dist/tools/security.d.ts.map +1 -0
  96. package/dist/tools/security.js +394 -0
  97. package/dist/tools/security.js.map +1 -0
  98. package/dist/tools/tags.d.ts +419 -0
  99. package/dist/tools/tags.d.ts.map +1 -0
  100. package/dist/tools/tags.js +479 -0
  101. package/dist/tools/tags.js.map +1 -0
  102. package/dist/tools/users.d.ts +376 -0
  103. package/dist/tools/users.d.ts.map +1 -0
  104. package/dist/tools/users.js +495 -0
  105. package/dist/tools/users.js.map +1 -0
  106. package/dist/tools/validator.d.ts +192 -0
  107. package/dist/tools/validator.d.ts.map +1 -0
  108. package/dist/tools/validator.js +198 -0
  109. package/dist/tools/validator.js.map +1 -0
  110. package/dist/tools/version-control.d.ts +247 -0
  111. package/dist/tools/version-control.d.ts.map +1 -0
  112. package/dist/tools/version-control.js +521 -0
  113. package/dist/tools/version-control.js.map +1 -0
  114. package/dist/tools/webhooks.d.ts +478 -0
  115. package/dist/tools/webhooks.d.ts.map +1 -0
  116. package/dist/tools/webhooks.js +541 -0
  117. package/dist/tools/webhooks.js.map +1 -0
  118. package/dist/tools/workflows.d.ts +313 -0
  119. package/dist/tools/workflows.d.ts.map +1 -0
  120. package/dist/tools/workflows.js +430 -0
  121. package/dist/tools/workflows.js.map +1 -0
  122. package/package.json +58 -0
@@ -0,0 +1,376 @@
1
+ import { z } from 'zod';
2
+ import { VcsOperations } from '../providers/index.js';
3
+ /**
4
+ * Tool: users
5
+ *
6
+ * DESCRIÇÃO:
7
+ * Gerenciamento de usuários com suporte multi-provider (GitHub e Gitea)
8
+ *
9
+ * FUNCIONALIDADES:
10
+ * - Obtenção de usuário atual
11
+ * - Obtenção de usuário específico
12
+ * - Busca de usuários
13
+ * - Listagem de organizações
14
+ * - Listagem de repositórios
15
+ * - Informações de perfil
16
+ *
17
+ * USO:
18
+ * - Para autenticação e perfil
19
+ * - Para busca de usuários
20
+ * - Para gerenciamento de acesso
21
+ * - Para colaboração
22
+ *
23
+ * RECOMENDAÇÕES:
24
+ * - Use apenas permissões necessárias
25
+ * - Evite expor dados sensíveis
26
+ * - Monitore uso da API
27
+ * - Respeite limites de rate
28
+ */
29
+ /**
30
+ * Schema de validação para entrada da tool users
31
+ *
32
+ * VALIDAÇÕES:
33
+ * - action: Ação obrigatória (get, list, search, orgs, repos)
34
+ * - Parâmetros específicos por ação
35
+ * - Validação de tipos e formatos
36
+ *
37
+ * RECOMENDAÇÕES:
38
+ * - Sempre valide entrada antes de usar
39
+ * - Use parâmetros opcionais adequadamente
40
+ * - Documente parâmetros obrigatórios
41
+ */
42
+ declare const UsersInputSchema: z.ZodObject<{
43
+ action: z.ZodEnum<["get", "list", "search", "orgs", "repos"]>;
44
+ provider: z.ZodOptional<z.ZodEnum<["gitea", "github", "both"]>>;
45
+ username: z.ZodOptional<z.ZodString>;
46
+ current: z.ZodOptional<z.ZodBoolean>;
47
+ query: z.ZodOptional<z.ZodString>;
48
+ page: z.ZodOptional<z.ZodNumber>;
49
+ limit: z.ZodOptional<z.ZodNumber>;
50
+ repo_type: z.ZodOptional<z.ZodEnum<["all", "owner", "member", "collaborator"]>>;
51
+ sort: z.ZodOptional<z.ZodEnum<["created", "updated", "pushed", "full_name"]>>;
52
+ direction: z.ZodOptional<z.ZodEnum<["asc", "desc"]>>;
53
+ }, "strip", z.ZodTypeAny, {
54
+ action: "get" | "list" | "search" | "orgs" | "repos";
55
+ provider?: "gitea" | "github" | "both" | undefined;
56
+ sort?: "full_name" | "updated" | "created" | "pushed" | undefined;
57
+ username?: string | undefined;
58
+ page?: number | undefined;
59
+ limit?: number | undefined;
60
+ query?: string | undefined;
61
+ current?: boolean | undefined;
62
+ repo_type?: "all" | "owner" | "member" | "collaborator" | undefined;
63
+ direction?: "desc" | "asc" | undefined;
64
+ }, {
65
+ action: "get" | "list" | "search" | "orgs" | "repos";
66
+ provider?: "gitea" | "github" | "both" | undefined;
67
+ sort?: "full_name" | "updated" | "created" | "pushed" | undefined;
68
+ username?: string | undefined;
69
+ page?: number | undefined;
70
+ limit?: number | undefined;
71
+ query?: string | undefined;
72
+ current?: boolean | undefined;
73
+ repo_type?: "all" | "owner" | "member" | "collaborator" | undefined;
74
+ direction?: "desc" | "asc" | undefined;
75
+ }>;
76
+ export type UsersInput = z.infer<typeof UsersInputSchema>;
77
+ /**
78
+ * Schema de saída padronizado
79
+ *
80
+ * ESTRUTURA:
81
+ * - success: Status da operação
82
+ * - action: Ação executada
83
+ * - message: Mensagem descritiva
84
+ * - data: Dados retornados (opcional)
85
+ * - error: Detalhes do erro (opcional)
86
+ */
87
+ declare const UsersResultSchema: z.ZodObject<{
88
+ success: z.ZodBoolean;
89
+ action: z.ZodString;
90
+ message: z.ZodString;
91
+ data: z.ZodOptional<z.ZodAny>;
92
+ error: z.ZodOptional<z.ZodString>;
93
+ }, "strip", z.ZodTypeAny, {
94
+ message: string;
95
+ action: string;
96
+ success: boolean;
97
+ error?: string | undefined;
98
+ data?: any;
99
+ }, {
100
+ message: string;
101
+ action: string;
102
+ success: boolean;
103
+ error?: string | undefined;
104
+ data?: any;
105
+ }>;
106
+ export type UsersResult = z.infer<typeof UsersResultSchema>;
107
+ /**
108
+ * Tool: users
109
+ *
110
+ * DESCRIÇÃO:
111
+ * Gerenciamento completo de usuários Gitea com múltiplas ações
112
+ *
113
+ * ACTIONS DISPONÍVEIS:
114
+ *
115
+ * 1. get - Obter informações de usuário
116
+ * Parâmetros:
117
+ * - username (opcional): Nome de usuário específico
118
+ * - current (opcional): Se true, obtém usuário atual autenticado
119
+ *
120
+ * 2. list - Listar usuários
121
+ * Parâmetros:
122
+ * - page (opcional): Página da listagem (padrão: 1)
123
+ * - limit (opcional): Itens por página (padrão: 30, máximo: 100)
124
+ *
125
+ * 3. search - Buscar usuários
126
+ * Parâmetros:
127
+ * - query (obrigatório): Termo de busca
128
+ * - page (opcional): Página da busca (padrão: 1)
129
+ * - limit (opcional): Itens por página (padrão: 30, máximo: 100)
130
+ *
131
+ * 4. orgs - Obter organizações do usuário
132
+ * Parâmetros:
133
+ * - username (obrigatório): Nome de usuário
134
+ * - page (opcional): Página da listagem (padrão: 1)
135
+ * - limit (opcional): Itens por página (padrão: 30, máximo: 100)
136
+ *
137
+ * 5. repos - Listar repositórios do usuário
138
+ * Parâmetros:
139
+ * - username (obrigatório): Nome de usuário
140
+ * - repo_type (opcional): Tipo de repositório (all, owner, member, collaborator) - padrão: all
141
+ * - sort (opcional): Ordenação (created, updated, pushed, full_name) - padrão: created
142
+ * - direction (opcional): Direção (asc, desc) - padrão: desc
143
+ * - page (opcional): Página da listagem (padrão: 1)
144
+ * - limit (opcional): Itens por página (padrão: 30, máximo: 100)
145
+ *
146
+ * RECOMENDAÇÕES DE USO:
147
+ * - Respeite privacidade dos usuários
148
+ * - Use apenas para operações necessárias
149
+ * - Monitore uso de permissões
150
+ * - Mantenha logs de acesso
151
+ * - Use filtros adequados para listagens
152
+ * - Verifique permissões antes de acessar dados
153
+ */
154
+ export declare const usersTool: {
155
+ name: string;
156
+ description: string;
157
+ inputSchema: {
158
+ type: string;
159
+ properties: {
160
+ action: {
161
+ type: string;
162
+ enum: string[];
163
+ description: string;
164
+ };
165
+ provider: {
166
+ type: string;
167
+ description: string;
168
+ };
169
+ username: {
170
+ type: string;
171
+ description: string;
172
+ };
173
+ current: {
174
+ type: string;
175
+ description: string;
176
+ };
177
+ query: {
178
+ type: string;
179
+ description: string;
180
+ };
181
+ page: {
182
+ type: string;
183
+ description: string;
184
+ minimum: number;
185
+ };
186
+ limit: {
187
+ type: string;
188
+ description: string;
189
+ minimum: number;
190
+ maximum: number;
191
+ };
192
+ repo_type: {
193
+ type: string;
194
+ enum: string[];
195
+ description: string;
196
+ };
197
+ sort: {
198
+ type: string;
199
+ enum: string[];
200
+ description: string;
201
+ };
202
+ direction: {
203
+ type: string;
204
+ enum: string[];
205
+ description: string;
206
+ };
207
+ };
208
+ required: string[];
209
+ };
210
+ /**
211
+ * Handler principal da tool users
212
+ *
213
+ * FUNCIONALIDADE:
214
+ * - Valida entrada usando Zod schema
215
+ * - Roteia para método específico baseado na ação
216
+ * - Trata erros de forma uniforme
217
+ * - Retorna resultado padronizado
218
+ *
219
+ * FLUXO:
220
+ * 1. Validação de entrada
221
+ * 2. Seleção do provider
222
+ * 3. Roteamento por ação
223
+ * 4. Execução do método específico
224
+ * 5. Tratamento de erros
225
+ * 6. Retorno de resultado
226
+ *
227
+ * TRATAMENTO DE ERROS:
228
+ * - Validação: erro de schema
229
+ * - Execução: erro da operação
230
+ * - Roteamento: ação não suportada
231
+ *
232
+ * RECOMENDAÇÕES:
233
+ * - Sempre valide entrada antes de processar
234
+ * - Trate erros específicos adequadamente
235
+ * - Log detalhes de erro para debug
236
+ * - Retorne mensagens de erro úteis
237
+ */
238
+ handler(input: UsersInput): Promise<UsersResult>;
239
+ /**
240
+ * Obtém informações de um usuário específico
241
+ *
242
+ * FUNCIONALIDADE:
243
+ * - Retorna informações completas do usuário
244
+ * - Suporta usuário atual ou específico
245
+ * - Inclui perfil, estatísticas e metadados
246
+ *
247
+ * PARÂMETROS OBRIGATÓRIOS:
248
+ * - Nenhum (se current=true) ou username
249
+ *
250
+ * PARÂMETROS OPCIONAIS:
251
+ * - current: Se true, obtém usuário atual autenticado
252
+ * - username: Nome de usuário específico
253
+ *
254
+ * VALIDAÇÕES:
255
+ * - current=true OU username deve ser fornecido
256
+ * - Usuário deve existir (se username fornecido)
257
+ * - Usuário deve ter permissão de acesso
258
+ *
259
+ * RECOMENDAÇÕES:
260
+ * - Use para obter informações de perfil
261
+ * - Verifique permissões antes de acessar
262
+ * - Respeite configurações de privacidade
263
+ * - Monitore uso de dados sensíveis
264
+ */
265
+ getUser(params: UsersInput, provider: VcsOperations): Promise<UsersResult>;
266
+ /**
267
+ * Lista usuários do sistema
268
+ *
269
+ * FUNCIONALIDADE:
270
+ * - Lista usuários com paginação
271
+ * - Retorna informações básicas de cada usuário
272
+ * - Suporta filtros de paginação
273
+ *
274
+ * PARÂMETROS OPCIONAIS:
275
+ * - page: Página da listagem (padrão: 1)
276
+ * - limit: Itens por página (padrão: 30, máximo: 100)
277
+ *
278
+ * VALIDAÇÕES:
279
+ * - Page deve ser >= 1
280
+ * - Limit deve ser entre 1 e 100
281
+ * - Usuário deve ter permissão de listagem
282
+ *
283
+ * RECOMENDAÇÕES:
284
+ * - Use paginação para sistemas grandes
285
+ * - Monitore número total de usuários
286
+ * - Verifique permissões de acesso
287
+ * - Mantenha logs de listagem
288
+ */
289
+ listUsers(params: UsersInput, provider: VcsOperations): Promise<UsersResult>;
290
+ /**
291
+ * Busca usuários por critérios específicos
292
+ *
293
+ * FUNCIONALIDADE:
294
+ * - Busca usuários por nome ou email
295
+ * - Suporta paginação
296
+ * - Retorna resultados relevantes
297
+ *
298
+ * PARÂMETROS OBRIGATÓRIOS:
299
+ * - query: Termo de busca
300
+ *
301
+ * PARÂMETROS OPCIONAIS:
302
+ * - page: Página da busca (padrão: 1)
303
+ * - limit: Itens por página (padrão: 30, máximo: 100)
304
+ *
305
+ * VALIDAÇÕES:
306
+ * - Query deve ser fornecido
307
+ * - Query deve ter pelo menos 3 caracteres
308
+ * - Usuário deve ter permissão de busca
309
+ *
310
+ * RECOMENDAÇÕES:
311
+ * - Use termos de busca específicos
312
+ * - Combine com filtros de paginação
313
+ * - Analise relevância dos resultados
314
+ * - Respeite configurações de privacidade
315
+ */
316
+ searchUsers(params: UsersInput, provider: VcsOperations): Promise<UsersResult>;
317
+ /**
318
+ * Obtém organizações de um usuário específico
319
+ *
320
+ * FUNCIONALIDADE:
321
+ * - Lista organizações do usuário
322
+ * - Suporta paginação
323
+ * - Retorna informações básicas das organizações
324
+ *
325
+ * PARÂMETROS OBRIGATÓRIOS:
326
+ * - username: Nome de usuário
327
+ *
328
+ * PARÂMETROS OPCIONAIS:
329
+ * - page: Página da listagem (padrão: 1)
330
+ * - limit: Itens por página (padrão: 30, máximo: 100)
331
+ *
332
+ * VALIDAÇÕES:
333
+ * - Username deve ser fornecido
334
+ * - Usuário deve existir
335
+ * - Usuário deve ter permissão de acesso
336
+ *
337
+ * RECOMENDAÇÕES:
338
+ * - Use para gerenciar membros de organizações
339
+ * - Verifique permissões antes de acessar
340
+ * - Monitore acesso a dados organizacionais
341
+ * - Mantenha logs de consulta
342
+ */
343
+ getUserOrganizations(params: UsersInput, provider: VcsOperations): Promise<UsersResult>;
344
+ /**
345
+ * Lista repositórios de um usuário específico
346
+ *
347
+ * FUNCIONALIDADE:
348
+ * - Lista repositórios com filtros
349
+ * - Suporta diferentes tipos de repositório
350
+ * - Permite ordenação e paginação
351
+ *
352
+ * PARÂMETROS OBRIGATÓRIOS:
353
+ * - username: Nome de usuário
354
+ *
355
+ * PARÂMETROS OPCIONAIS:
356
+ * - repo_type: Tipo de repositório (all, owner, member, collaborator) - padrão: all
357
+ * - sort: Ordenação (created, updated, pushed, full_name) - padrão: created
358
+ * - direction: Direção (asc, desc) - padrão: desc
359
+ * - page: Página da listagem (padrão: 1)
360
+ * - limit: Itens por página (padrão: 30, máximo: 100)
361
+ *
362
+ * VALIDAÇÕES:
363
+ * - Username deve ser fornecido
364
+ * - Usuário deve existir
365
+ * - Usuário deve ter permissão de acesso
366
+ *
367
+ * RECOMENDAÇÕES:
368
+ * - Use filtros adequados para organização
369
+ * - Monitore acesso a repositórios
370
+ * - Verifique permissões antes de listar
371
+ * - Mantenha logs de consulta
372
+ */
373
+ getUserRepositories(params: UsersInput, provider: VcsOperations): Promise<UsersResult>;
374
+ };
375
+ export {};
376
+ //# sourceMappingURL=users.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"users.d.ts","sourceRoot":"","sources":["../../src/tools/users.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAyB,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE7E;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH;;;;;;;;;;;;GAYG;AACH,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmBpB,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D;;;;;;;;;GASG;AACH,QAAA,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;EAMrB,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAwBpB;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;mBACkB,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;IAqCtD;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;oBACmB,UAAU,YAAY,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC;IAkChF;;;;;;;;;;;;;;;;;;;;;;OAsBG;sBACqB,UAAU,YAAY,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC;IAsBlF;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;wBACuB,UAAU,YAAY,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC;IAgCpF;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;iCACgC,UAAU,YAAY,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC;IAmC7F;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;gCAC+B,UAAU,YAAY,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC;CAyC7F,CAAC"}