@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,634 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.repositoriesTool = void 0;
4
+ const zod_1 = require("zod");
5
+ const index_js_1 = require("../providers/index.js");
6
+ const validator_js_1 = require("./validator.js");
7
+ /**
8
+ * Tool: repositories
9
+ *
10
+ * DESCRIÇÃO:
11
+ * Gerenciamento completo de repositórios Gitea com múltiplas ações
12
+ *
13
+ * FUNCIONALIDADES:
14
+ * - Criação de repositórios
15
+ * - Listagem e busca
16
+ * - Atualização e configuração
17
+ * - Fork e clonagem
18
+ * - Exclusão e arquivamento
19
+ *
20
+ * USO:
21
+ * - Para gerenciar repositórios de projetos
22
+ * - Para automatizar criação de repositórios
23
+ * - Para backup e migração
24
+ * - Para organização de código
25
+ *
26
+ * RECOMENDAÇÕES:
27
+ * - Use nomes descritivos para repositórios
28
+ * - Configure visibilidade adequada
29
+ * - Mantenha descrições atualizadas
30
+ * - Use templates quando possível
31
+ */
32
+ /**
33
+ * Schema de validação para entrada da tool repositories
34
+ *
35
+ * VALIDAÇÕES:
36
+ * - action: Ação obrigatória (create, list, get, update, delete, fork, search)
37
+ * - Parâmetros específicos por ação
38
+ * - Validação de tipos e formatos
39
+ *
40
+ * RECOMENDAÇÕES:
41
+ * - Sempre valide entrada antes de usar
42
+ * - Use parâmetros opcionais adequadamente
43
+ * - Documente parâmetros obrigatórios
44
+ */
45
+ const RepositoriesInputSchema = zod_1.z.object({
46
+ action: zod_1.z.enum(['create', 'list', 'get', 'update', 'delete', 'fork', 'search', 'clone', 'archive', 'transfer', 'template', 'mirror']),
47
+ // Parâmetros comuns
48
+ owner: validator_js_1.CommonSchemas.owner.optional(),
49
+ repo: validator_js_1.CommonSchemas.repo.optional(),
50
+ provider: validator_js_1.CommonSchemas.provider,
51
+ page: validator_js_1.CommonSchemas.page,
52
+ limit: validator_js_1.CommonSchemas.limit,
53
+ // Para create
54
+ name: validator_js_1.CommonSchemas.shortString,
55
+ description: validator_js_1.CommonSchemas.mediumString,
56
+ private: validator_js_1.CommonSchemas.boolean,
57
+ auto_init: validator_js_1.CommonSchemas.boolean,
58
+ gitignores: validator_js_1.CommonSchemas.shortString,
59
+ license: validator_js_1.CommonSchemas.shortString,
60
+ readme: validator_js_1.CommonSchemas.longString,
61
+ default_branch: validator_js_1.CommonSchemas.branch,
62
+ // Para list
63
+ username: validator_js_1.CommonSchemas.shortString,
64
+ // Para update
65
+ new_name: validator_js_1.CommonSchemas.shortString,
66
+ new_description: validator_js_1.CommonSchemas.mediumString,
67
+ new_private: validator_js_1.CommonSchemas.boolean,
68
+ archived: validator_js_1.CommonSchemas.boolean,
69
+ // Para fork
70
+ organization: validator_js_1.CommonSchemas.shortString,
71
+ // Para search
72
+ query: validator_js_1.CommonSchemas.mediumString,
73
+ // Para clone
74
+ clone_url: validator_js_1.CommonSchemas.mediumString,
75
+ local_path: validator_js_1.CommonSchemas.mediumString,
76
+ // Para archive/unarchive
77
+ archive_status: validator_js_1.CommonSchemas.boolean,
78
+ // Para transfer
79
+ new_owner: validator_js_1.CommonSchemas.shortString,
80
+ // Para template
81
+ template_owner: validator_js_1.CommonSchemas.shortString,
82
+ template_repo: validator_js_1.CommonSchemas.shortString,
83
+ include_all_branches: validator_js_1.CommonSchemas.boolean,
84
+ // Para mirror
85
+ mirror_url: validator_js_1.CommonSchemas.mediumString,
86
+ mirror_username: validator_js_1.CommonSchemas.shortString,
87
+ mirror_password: validator_js_1.CommonSchemas.shortString,
88
+ }).refine((data) => {
89
+ // Validações customizadas
90
+ if (data.action === 'create' && !data.name) {
91
+ throw new Error('Name is required for create action');
92
+ }
93
+ if (['get', 'update', 'delete', 'fork', 'archive', 'transfer'].includes(data.action)) {
94
+ if (!data.owner || !data.repo) {
95
+ throw new Error('Owner and repo are required for this action');
96
+ }
97
+ }
98
+ if (data.action === 'list' && !data.username && !data.owner) {
99
+ throw new Error('Username or owner is required for list action');
100
+ }
101
+ if (data.action === 'search' && !data.query) {
102
+ throw new Error('Query is required for search action');
103
+ }
104
+ if (data.action === 'template' && (!data.template_owner || !data.template_repo)) {
105
+ throw new Error('Template owner and repo are required for template action');
106
+ }
107
+ if (data.action === 'clone' && !data.clone_url) {
108
+ throw new Error('Clone URL is required for clone action');
109
+ }
110
+ if (data.action === 'mirror' && !data.mirror_url) {
111
+ throw new Error('Mirror URL is required for mirror action');
112
+ }
113
+ return true;
114
+ });
115
+ // Schema de saída
116
+ const RepositoriesResultSchema = zod_1.z.object({
117
+ success: zod_1.z.boolean(),
118
+ action: zod_1.z.string(),
119
+ message: zod_1.z.string(),
120
+ data: zod_1.z.any().optional(),
121
+ error: zod_1.z.string().optional()
122
+ });
123
+ /**
124
+ * Tool: repositories
125
+ *
126
+ * DESCRIÇÃO:
127
+ * Gerenciamento completo de repositórios Gitea com múltiplas ações
128
+ *
129
+ * ACTIONS DISPONÍVEIS:
130
+ *
131
+ * 1. create - Criar novo repositório
132
+ * Parâmetros:
133
+ * - name (obrigatório): Nome do repositório
134
+ * - description (opcional): Descrição do repositório
135
+ * - private (opcional): Repositório privado (padrão: false)
136
+ * - auto_init (opcional): Inicializar com README (padrão: false)
137
+ * - gitignores (opcional): Template de .gitignore
138
+ * - license (opcional): Template de licença
139
+ * - readme (opcional): Conteúdo do README
140
+ * - default_branch (opcional): Branch padrão
141
+ *
142
+ * 2. list - Listar repositórios
143
+ * Parâmetros:
144
+ * - username (opcional): Usuário específico (padrão: usuário atual)
145
+ * - page (opcional): Página da listagem (padrão: 1)
146
+ * - limit (opcional): Itens por página (padrão: 30)
147
+ *
148
+ * 3. get - Obter detalhes do repositório
149
+ * Parâmetros:
150
+ * - owner (obrigatório): Proprietário do repositório
151
+ * - repo (obrigatório): Nome do repositório
152
+ *
153
+ * 4. update - Atualizar repositório
154
+ * Parâmetros:
155
+ * - owner (obrigatório): Proprietário do repositório
156
+ * - repo (obrigatório): Nome do repositório
157
+ * - new_name (opcional): Novo nome
158
+ * - new_description (opcional): Nova descrição
159
+ * - new_private (opcional): Nova visibilidade
160
+ * - archived (opcional): Status de arquivamento
161
+ *
162
+ * 5. delete - Deletar repositório
163
+ * Parâmetros:
164
+ * - owner (obrigatório): Proprietário do repositório
165
+ * - repo (obrigatório): Nome do repositório
166
+ *
167
+ * 6. fork - Fazer fork do repositório
168
+ * Parâmetros:
169
+ * - owner (obrigatório): Proprietário do repositório original
170
+ * - repo (obrigatório): Nome do repositório original
171
+ * - organization (opcional): Organização de destino
172
+ *
173
+ * 7. search - Buscar repositórios
174
+ * Parâmetros:
175
+ * - query (obrigatório): Termo de busca
176
+ * - page (opcional): Página da busca (padrão: 1)
177
+ * - limit (opcional): Itens por página (padrão: 30)
178
+ *
179
+ * RECOMENDAÇÕES DE USO:
180
+ * - Use nomes descritivos para repositórios
181
+ * - Configure visibilidade adequada para o projeto
182
+ * - Mantenha descrições atualizadas
183
+ * - Use templates para projetos similares
184
+ * - Configure branch padrão adequada
185
+ * - Use paginação para listas grandes
186
+ */
187
+ exports.repositoriesTool = {
188
+ name: 'repositories',
189
+ description: 'Manage repositories with 12 comprehensive actions: create, list, get, update, delete, fork, search, clone, archive, transfer, template, mirror. Full GitHub + Gitea support with advanced operations. Usage: list requires username OR owner; get/update/delete require owner+repo; create requires name; search requires query; clone requires clone_url; template requires template_owner+template_repo; mirror requires mirror_url. Best practices: initialize with README/LICENSE/.gitignore, set default branch, use tags for stable releases.',
190
+ inputSchema: {
191
+ type: 'object',
192
+ properties: {
193
+ action: {
194
+ type: 'string',
195
+ enum: ['create', 'list', 'get', 'update', 'delete', 'fork', 'search', 'clone', 'archive', 'transfer', 'template', 'mirror'],
196
+ description: 'Action to perform on repositories'
197
+ },
198
+ owner: { type: 'string', description: 'Repository owner' },
199
+ repo: { type: 'string', description: 'Repository name' },
200
+ provider: { type: 'string', description: 'Specific provider (github, gitea) or use default' },
201
+ name: { type: 'string', description: 'Repository name for creation' },
202
+ description: { type: 'string', description: 'Repository description' },
203
+ private: { type: 'boolean', description: 'Private repository' },
204
+ auto_init: { type: 'boolean', description: 'Auto initialize with README' },
205
+ gitignores: { type: 'string', description: 'Gitignore template' },
206
+ license: { type: 'string', description: 'License template' },
207
+ readme: { type: 'string', description: 'README content' },
208
+ default_branch: { type: 'string', description: 'Default branch name' },
209
+ username: { type: 'string', description: 'Username for listing repos' },
210
+ page: { type: 'number', description: 'Page number', minimum: 1 },
211
+ limit: { type: 'number', description: 'Items per page', minimum: 1, maximum: 100 },
212
+ new_name: { type: 'string', description: 'New repository name' },
213
+ new_description: { type: 'string', description: 'New repository description' },
214
+ new_private: { type: 'boolean', description: 'New privacy setting' },
215
+ archived: { type: 'boolean', description: 'Archive status' },
216
+ organization: { type: 'string', description: 'Organization for fork' },
217
+ query: { type: 'string', description: 'Search query' },
218
+ clone_url: { type: 'string', description: 'Repository clone URL' },
219
+ local_path: { type: 'string', description: 'Local path for clone' },
220
+ archive_status: { type: 'boolean', description: 'Archive status' },
221
+ new_owner: { type: 'string', description: 'New owner for transfer' },
222
+ template_owner: { type: 'string', description: 'Template repository owner' },
223
+ template_repo: { type: 'string', description: 'Template repository name' },
224
+ include_all_branches: { type: 'boolean', description: 'Include all branches from template' },
225
+ mirror_url: { type: 'string', description: 'Mirror repository URL' },
226
+ mirror_username: { type: 'string', description: 'Mirror username' },
227
+ mirror_password: { type: 'string', description: 'Mirror password' }
228
+ },
229
+ required: ['action']
230
+ },
231
+ /**
232
+ * Handler principal da tool repositories
233
+ *
234
+ * FUNCIONALIDADE:
235
+ * - Valida entrada usando Zod schema
236
+ * - Roteia para método específico baseado na ação
237
+ * - Trata erros de forma uniforme
238
+ * - Retorna resultado padronizado
239
+ *
240
+ * FLUXO:
241
+ * 1. Validação de entrada
242
+ * 2. Roteamento por ação
243
+ * 3. Execução do método específico
244
+ * 4. Tratamento de erros
245
+ * 5. Retorno de resultado
246
+ *
247
+ * TRATAMENTO DE ERROS:
248
+ * - Validação: erro de schema
249
+ * - Execução: erro da operação
250
+ * - Roteamento: ação não suportada
251
+ *
252
+ * RECOMENDAÇÕES:
253
+ * - Sempre valide entrada antes de processar
254
+ * - Trate erros específicos adequadamente
255
+ * - Log detalhes de erro para debug
256
+ * - Retorne mensagens de erro úteis
257
+ */
258
+ async handler(input) {
259
+ try {
260
+ const params = RepositoriesInputSchema.parse(input);
261
+ // Obter o provider correto
262
+ const provider = params.provider
263
+ ? index_js_1.globalProviderFactory.getProvider(params.provider)
264
+ : index_js_1.globalProviderFactory.getDefaultProvider();
265
+ if (!provider) {
266
+ throw new Error(`Provider '${params.provider}' não encontrado`);
267
+ }
268
+ switch (params.action) {
269
+ case 'create':
270
+ return await this.createRepository(params, provider);
271
+ case 'list':
272
+ return await this.listRepositories(params, provider);
273
+ case 'get':
274
+ return await this.getRepository(params, provider);
275
+ case 'update':
276
+ return await this.updateRepository(params, provider);
277
+ case 'delete':
278
+ return await this.deleteRepository(params, provider);
279
+ case 'fork':
280
+ return await this.forkRepository(params, provider);
281
+ case 'search':
282
+ return await this.searchRepositories(params, provider);
283
+ case 'clone':
284
+ return await this.cloneRepository(params, provider);
285
+ case 'archive':
286
+ return await this.archiveRepository(params, provider);
287
+ case 'transfer':
288
+ return await this.transferRepository(params, provider);
289
+ case 'template':
290
+ return await this.createFromTemplate(params, provider);
291
+ case 'mirror':
292
+ return await this.mirrorRepository(params, provider);
293
+ default:
294
+ throw new Error(`Ação não suportada: ${params.action}`);
295
+ }
296
+ }
297
+ catch (error) {
298
+ return {
299
+ success: false,
300
+ action: input.action,
301
+ message: 'Erro na operação de repositórios',
302
+ error: error instanceof Error ? error.message : String(error)
303
+ };
304
+ }
305
+ },
306
+ /**
307
+ * Cria um novo repositório
308
+ *
309
+ * FUNCIONALIDADE:
310
+ * - Valida parâmetros obrigatórios
311
+ * - Configura dados padrão
312
+ * - Chama API do provider para criação
313
+ * - Retorna resultado formatado
314
+ *
315
+ * PARÂMETROS OBRIGATÓRIOS:
316
+ * - name: Nome do repositório
317
+ *
318
+ * PARÂMETROS OPCIONAIS:
319
+ * - description: Descrição do repositório
320
+ * - private: Visibilidade (padrão: false)
321
+ * - auto_init: Inicializar com README (padrão: false)
322
+ * - gitignores: Template de .gitignore
323
+ * - license: Template de licença
324
+ * - readme: Conteúdo do README
325
+ * - default_branch: Branch padrão (padrão: main)
326
+ *
327
+ * VALIDAÇÕES:
328
+ * - Nome obrigatório
329
+ * - Nome único no usuário/organização
330
+ * - Permissões adequadas
331
+ *
332
+ * RECOMENDAÇÕES:
333
+ * - Use nomes descritivos e únicos
334
+ * - Configure visibilidade adequada
335
+ * - Inicialize com README para projetos novos
336
+ * - Use templates para consistência
337
+ */
338
+ async createRepository(params, provider) {
339
+ try {
340
+ if (!params.name) {
341
+ throw new Error('Nome do repositório é obrigatório');
342
+ }
343
+ const repository = await provider.createRepository(params.name, params.description, params.private || false);
344
+ return {
345
+ success: true,
346
+ action: 'create',
347
+ message: `Repositório '${params.name}' criado com sucesso`,
348
+ data: repository
349
+ };
350
+ }
351
+ catch (error) {
352
+ throw new Error(`Falha ao criar repositório: ${error instanceof Error ? error.message : String(error)}`);
353
+ }
354
+ },
355
+ async listRepositories(params, provider) {
356
+ try {
357
+ const page = params.page || 1;
358
+ const limit = params.limit || 30;
359
+ const repositories = await provider.listRepositories(params.username, page, limit);
360
+ return {
361
+ success: true,
362
+ action: 'list',
363
+ message: `${repositories.length} repositórios encontrados`,
364
+ data: {
365
+ repositories,
366
+ page,
367
+ limit,
368
+ total: repositories.length
369
+ }
370
+ };
371
+ }
372
+ catch (error) {
373
+ throw new Error(`Falha ao listar repositórios: ${error instanceof Error ? error.message : String(error)}`);
374
+ }
375
+ },
376
+ async getRepository(params, provider) {
377
+ try {
378
+ if (!params.owner || !params.repo) {
379
+ throw new Error('Owner e nome do repositório são obrigatórios');
380
+ }
381
+ const repository = await provider.getRepository(params.owner, params.repo);
382
+ return {
383
+ success: true,
384
+ action: 'get',
385
+ message: `Repositório '${params.owner}/${params.repo}' obtido com sucesso`,
386
+ data: repository
387
+ };
388
+ }
389
+ catch (error) {
390
+ throw new Error(`Falha ao obter repositório: ${error instanceof Error ? error.message : String(error)}`);
391
+ }
392
+ },
393
+ async updateRepository(params, provider) {
394
+ try {
395
+ if (!params.owner || !params.repo) {
396
+ throw new Error('Owner e nome do repositório são obrigatórios');
397
+ }
398
+ const updateData = {};
399
+ if (params.new_name)
400
+ updateData.name = params.new_name;
401
+ if (params.new_description !== undefined)
402
+ updateData.description = params.new_description;
403
+ if (params.new_private !== undefined)
404
+ updateData.private = params.new_private;
405
+ if (params.archived !== undefined)
406
+ updateData.archived = params.archived;
407
+ if (Object.keys(updateData).length === 0) {
408
+ throw new Error('Nenhum campo para atualizar foi fornecido');
409
+ }
410
+ const repository = await provider.updateRepository(params.owner, params.repo, updateData);
411
+ return {
412
+ success: true,
413
+ action: 'update',
414
+ message: `Repositório '${params.owner}/${params.repo}' atualizado com sucesso`,
415
+ data: repository
416
+ };
417
+ }
418
+ catch (error) {
419
+ throw new Error(`Falha ao atualizar repositório: ${error instanceof Error ? error.message : String(error)}`);
420
+ }
421
+ },
422
+ async deleteRepository(params, provider) {
423
+ try {
424
+ if (!params.owner || !params.repo) {
425
+ throw new Error('Owner e nome do repositório são obrigatórios');
426
+ }
427
+ await provider.deleteRepository(params.owner, params.repo);
428
+ return {
429
+ success: true,
430
+ action: 'delete',
431
+ message: `Repositório '${params.owner}/${params.repo}' deletado com sucesso`,
432
+ data: { deleted: true }
433
+ };
434
+ }
435
+ catch (error) {
436
+ throw new Error(`Falha ao deletar repositório: ${error instanceof Error ? error.message : String(error)}`);
437
+ }
438
+ },
439
+ async forkRepository(params, provider) {
440
+ try {
441
+ if (!params.owner || !params.repo) {
442
+ throw new Error('Owner e nome do repositório são obrigatórios');
443
+ }
444
+ const repository = await provider.forkRepository(params.owner, params.repo, params.organization);
445
+ return {
446
+ success: true,
447
+ action: 'fork',
448
+ message: `Fork do repositório '${params.owner}/${params.repo}' criado com sucesso`,
449
+ data: repository
450
+ };
451
+ }
452
+ catch (error) {
453
+ throw new Error(`Falha ao fazer fork do repositório: ${error instanceof Error ? error.message : String(error)}`);
454
+ }
455
+ },
456
+ async searchRepositories(params, provider) {
457
+ try {
458
+ if (!params.query) {
459
+ throw new Error('Query de busca é obrigatória');
460
+ }
461
+ const page = params.page || 1;
462
+ const limit = params.limit || 30;
463
+ const repositories = await provider.searchRepositories(params.query, page, limit);
464
+ return {
465
+ success: true,
466
+ action: 'search',
467
+ message: `${repositories.length} repositórios encontrados para '${params.query}'`,
468
+ data: {
469
+ repositories,
470
+ query: params.query,
471
+ page,
472
+ limit,
473
+ total: repositories.length
474
+ }
475
+ };
476
+ }
477
+ catch (error) {
478
+ throw new Error(`Falha ao buscar repositórios: ${error instanceof Error ? error.message : String(error)}`);
479
+ }
480
+ },
481
+ /**
482
+ * Clona repositório localmente
483
+ */
484
+ async cloneRepository(params, provider) {
485
+ try {
486
+ if (!provider.cloneRepository) {
487
+ return {
488
+ success: false,
489
+ action: 'clone',
490
+ message: 'Funcionalidade não suportada por este provider',
491
+ error: 'Provider não implementa cloneRepository'
492
+ };
493
+ }
494
+ const result = await provider.cloneRepository({
495
+ owner: params.owner,
496
+ repo: params.repo,
497
+ clone_url: params.clone_url,
498
+ local_path: params.local_path
499
+ });
500
+ return {
501
+ success: true,
502
+ action: 'clone',
503
+ message: `Repositório clonado com sucesso`,
504
+ data: result
505
+ };
506
+ }
507
+ catch (error) {
508
+ throw new Error(`Falha ao clonar repositório: ${error}`);
509
+ }
510
+ },
511
+ /**
512
+ * Arquiva/desarquiva repositório
513
+ */
514
+ async archiveRepository(params, provider) {
515
+ try {
516
+ if (!provider.archiveRepository) {
517
+ return {
518
+ success: false,
519
+ action: 'archive',
520
+ message: 'Funcionalidade não suportada por este provider',
521
+ error: 'Provider não implementa archiveRepository'
522
+ };
523
+ }
524
+ const result = await provider.archiveRepository({
525
+ owner: params.owner,
526
+ repo: params.repo,
527
+ archived: params.archive_status ?? true
528
+ });
529
+ return {
530
+ success: true,
531
+ action: 'archive',
532
+ message: `Repositório ${params.archive_status ? 'arquivado' : 'desarquivado'} com sucesso`,
533
+ data: result
534
+ };
535
+ }
536
+ catch (error) {
537
+ throw new Error(`Falha ao arquivar repositório: ${error}`);
538
+ }
539
+ },
540
+ /**
541
+ * Transfere repositório para outro owner
542
+ */
543
+ async transferRepository(params, provider) {
544
+ try {
545
+ if (!provider.transferRepository) {
546
+ return {
547
+ success: false,
548
+ action: 'transfer',
549
+ message: 'Funcionalidade não suportada por este provider',
550
+ error: 'Provider não implementa transferRepository'
551
+ };
552
+ }
553
+ const result = await provider.transferRepository({
554
+ owner: params.owner,
555
+ repo: params.repo,
556
+ new_owner: params.new_owner
557
+ });
558
+ return {
559
+ success: true,
560
+ action: 'transfer',
561
+ message: `Repositório transferido para ${params.new_owner} com sucesso`,
562
+ data: result
563
+ };
564
+ }
565
+ catch (error) {
566
+ throw new Error(`Falha ao transferir repositório: ${error}`);
567
+ }
568
+ },
569
+ /**
570
+ * Cria repositório a partir de template
571
+ */
572
+ async createFromTemplate(params, provider) {
573
+ try {
574
+ if (!provider.createFromTemplate) {
575
+ return {
576
+ success: false,
577
+ action: 'template',
578
+ message: 'Funcionalidade não suportada por este provider',
579
+ error: 'Provider não implementa createFromTemplate'
580
+ };
581
+ }
582
+ const result = await provider.createFromTemplate({
583
+ template_owner: params.template_owner,
584
+ template_repo: params.template_repo,
585
+ owner: params.owner,
586
+ name: params.name,
587
+ description: params.description,
588
+ private: params.private,
589
+ include_all_branches: params.include_all_branches
590
+ });
591
+ return {
592
+ success: true,
593
+ action: 'template',
594
+ message: `Repositório criado a partir do template com sucesso`,
595
+ data: result
596
+ };
597
+ }
598
+ catch (error) {
599
+ throw new Error(`Falha ao criar repositório a partir do template: ${error}`);
600
+ }
601
+ },
602
+ /**
603
+ * Configura espelhamento de repositório
604
+ */
605
+ async mirrorRepository(params, provider) {
606
+ try {
607
+ if (!provider.mirrorRepository) {
608
+ return {
609
+ success: false,
610
+ action: 'mirror',
611
+ message: 'Funcionalidade não suportada por este provider',
612
+ error: 'Provider não implementa mirrorRepository'
613
+ };
614
+ }
615
+ const result = await provider.mirrorRepository({
616
+ owner: params.owner,
617
+ repo: params.repo,
618
+ mirror_url: params.mirror_url,
619
+ mirror_username: params.mirror_username,
620
+ mirror_password: params.mirror_password
621
+ });
622
+ return {
623
+ success: true,
624
+ action: 'mirror',
625
+ message: `Espelhamento configurado com sucesso`,
626
+ data: result
627
+ };
628
+ }
629
+ catch (error) {
630
+ throw new Error(`Falha ao configurar espelhamento: ${error}`);
631
+ }
632
+ }
633
+ };
634
+ //# sourceMappingURL=repositories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repositories.js","sourceRoot":"","sources":["../../src/tools/repositories.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,oDAA6E;AAC7E,iDAA2E;AAE3E;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH;;;;;;;;;;;;GAYG;AACH,MAAM,uBAAuB,GAAG,OAAC,CAAC,MAAM,CAAC;IACvC,MAAM,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IAErI,oBAAoB;IACpB,KAAK,EAAE,4BAAa,CAAC,KAAK,CAAC,QAAQ,EAAE;IACrC,IAAI,EAAE,4BAAa,CAAC,IAAI,CAAC,QAAQ,EAAE;IACnC,QAAQ,EAAE,4BAAa,CAAC,QAAQ;IAChC,IAAI,EAAE,4BAAa,CAAC,IAAI;IACxB,KAAK,EAAE,4BAAa,CAAC,KAAK;IAE1B,cAAc;IACd,IAAI,EAAE,4BAAa,CAAC,WAAW;IAC/B,WAAW,EAAE,4BAAa,CAAC,YAAY;IACvC,OAAO,EAAE,4BAAa,CAAC,OAAO;IAC9B,SAAS,EAAE,4BAAa,CAAC,OAAO;IAChC,UAAU,EAAE,4BAAa,CAAC,WAAW;IACrC,OAAO,EAAE,4BAAa,CAAC,WAAW;IAClC,MAAM,EAAE,4BAAa,CAAC,UAAU;IAChC,cAAc,EAAE,4BAAa,CAAC,MAAM;IAEpC,YAAY;IACZ,QAAQ,EAAE,4BAAa,CAAC,WAAW;IAEnC,cAAc;IACd,QAAQ,EAAE,4BAAa,CAAC,WAAW;IACnC,eAAe,EAAE,4BAAa,CAAC,YAAY;IAC3C,WAAW,EAAE,4BAAa,CAAC,OAAO;IAClC,QAAQ,EAAE,4BAAa,CAAC,OAAO;IAE/B,YAAY;IACZ,YAAY,EAAE,4BAAa,CAAC,WAAW;IAEvC,cAAc;IACd,KAAK,EAAE,4BAAa,CAAC,YAAY;IAEjC,aAAa;IACb,SAAS,EAAE,4BAAa,CAAC,YAAY;IACrC,UAAU,EAAE,4BAAa,CAAC,YAAY;IAEtC,yBAAyB;IACzB,cAAc,EAAE,4BAAa,CAAC,OAAO;IAErC,gBAAgB;IAChB,SAAS,EAAE,4BAAa,CAAC,WAAW;IAEpC,gBAAgB;IAChB,cAAc,EAAE,4BAAa,CAAC,WAAW;IACzC,aAAa,EAAE,4BAAa,CAAC,WAAW;IACxC,oBAAoB,EAAE,4BAAa,CAAC,OAAO;IAE3C,cAAc;IACd,UAAU,EAAE,4BAAa,CAAC,YAAY;IACtC,eAAe,EAAE,4BAAa,CAAC,WAAW;IAC1C,eAAe,EAAE,4BAAa,CAAC,WAAW;CAC3C,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;IACjB,0BAA0B;IAC1B,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IACD,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACrF,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAC5D,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;QAChF,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC9E,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QACjD,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9D,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC,CAAC;AAIH,kBAAkB;AAClB,MAAM,wBAAwB,GAAG,OAAC,CAAC,MAAM,CAAC;IACxC,OAAO,EAAE,OAAC,CAAC,OAAO,EAAE;IACpB,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE;IAClB,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE;IACnB,IAAI,EAAE,OAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACxB,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC7B,CAAC,CAAC;AAIH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;AACU,QAAA,gBAAgB,GAAG;IAC9B,IAAI,EAAE,cAAc;IACpB,WAAW,EAAE,qhBAAqhB;IACliB,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC;gBAC3H,WAAW,EAAE,mCAAmC;aACjD;YACD,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE;YAC1D,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE;YACxD,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kDAAkD,EAAE;YAC7F,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,8BAA8B,EAAE;YACrE,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wBAAwB,EAAE;YACtE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,oBAAoB,EAAE;YAC/D,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,6BAA6B,EAAE;YAC1E,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE;YACjE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE;YAC5D,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE;YACzD,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qBAAqB,EAAE;YACtE,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4BAA4B,EAAE;YACvE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,EAAE;YAChE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE;YAClF,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qBAAqB,EAAE;YAChE,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4BAA4B,EAAE;YAC9E,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,qBAAqB,EAAE;YACpE,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAE;YAC5D,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uBAAuB,EAAE;YACtE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE;YACtD,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sBAAsB,EAAE;YAClE,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sBAAsB,EAAE;YACnE,cAAc,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAE;YAClE,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wBAAwB,EAAE;YACpE,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2BAA2B,EAAE;YAC5E,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,0BAA0B,EAAE;YAC1E,oBAAoB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,oCAAoC,EAAE;YAC5F,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uBAAuB,EAAE;YACpE,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE;YACnE,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE;SACpE;QACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;KACrB;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,KAAK,CAAC,OAAO,CAAC,KAAwB;QACpC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,uBAAuB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAEpD,2BAA2B;YAC3B,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ;gBAC9B,CAAC,CAAC,gCAAqB,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC;gBACpD,CAAC,CAAC,gCAAqB,CAAC,kBAAkB,EAAE,CAAC;YAE/C,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,aAAa,MAAM,CAAC,QAAQ,kBAAkB,CAAC,CAAC;YAClE,CAAC;YAED,QAAQ,MAAM,CAAC,MAAM,EAAE,CAAC;gBACtB,KAAK,QAAQ;oBACX,OAAO,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACvD,KAAK,MAAM;oBACT,OAAO,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACvD,KAAK,KAAK;oBACR,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACpD,KAAK,QAAQ;oBACX,OAAO,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACvD,KAAK,QAAQ;oBACX,OAAO,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACvD,KAAK,MAAM;oBACT,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACrD,KAAK,QAAQ;oBACX,OAAO,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACzD,KAAK,OAAO;oBACV,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACtD,KAAK,SAAS;oBACZ,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACxD,KAAK,UAAU;oBACb,OAAO,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACzD,KAAK,UAAU;oBACb,OAAO,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACzD,KAAK,QAAQ;oBACX,OAAO,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACvD;oBACE,MAAM,IAAI,KAAK,CAAC,uBAAuB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,OAAO,EAAE,kCAAkC;gBAC3C,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACH,KAAK,CAAC,gBAAgB,CAAC,MAAyB,EAAE,QAAuB;QACvE,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;YACvD,CAAC;YAED,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,gBAAgB,CAChD,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,OAAO,IAAI,KAAK,CACxB,CAAC;YAEF,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,QAAQ;gBAChB,OAAO,EAAE,gBAAgB,MAAM,CAAC,IAAI,sBAAsB;gBAC1D,IAAI,EAAE,UAAU;aACjB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,+BAA+B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC3G,CAAC;IACH,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,MAAyB,EAAE,QAAuB;QACvE,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC;YAC9B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;YAEjC,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YAEnF,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,GAAG,YAAY,CAAC,MAAM,2BAA2B;gBAC1D,IAAI,EAAE;oBACJ,YAAY;oBACZ,IAAI;oBACJ,KAAK;oBACL,KAAK,EAAE,YAAY,CAAC,MAAM;iBAC3B;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,iCAAiC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC7G,CAAC;IACH,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,MAAyB,EAAE,QAAuB;QACpE,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBAClC,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;YAClE,CAAC;YAED,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YAE3E,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,gBAAgB,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,sBAAsB;gBAC1E,IAAI,EAAE,UAAU;aACjB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,+BAA+B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC3G,CAAC;IACH,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,MAAyB,EAAE,QAAuB;QACvE,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBAClC,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;YAClE,CAAC;YAED,MAAM,UAAU,GAAQ,EAAE,CAAC;YAC3B,IAAI,MAAM,CAAC,QAAQ;gBAAE,UAAU,CAAC,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC;YACvD,IAAI,MAAM,CAAC,eAAe,KAAK,SAAS;gBAAE,UAAU,CAAC,WAAW,GAAG,MAAM,CAAC,eAAe,CAAC;YAC1F,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS;gBAAE,UAAU,CAAC,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC;YAC9E,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS;gBAAE,UAAU,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;YAEzE,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzC,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;YAC/D,CAAC;YAED,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAE1F,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,QAAQ;gBAChB,OAAO,EAAE,gBAAgB,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,0BAA0B;gBAC9E,IAAI,EAAE,UAAU;aACjB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,mCAAmC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC/G,CAAC;IACH,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,MAAyB,EAAE,QAAuB;QACvE,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBAClC,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;YAClE,CAAC;YAED,MAAM,QAAQ,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YAE3D,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,QAAQ;gBAChB,OAAO,EAAE,gBAAgB,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,wBAAwB;gBAC5E,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;aACxB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,iCAAiC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC7G,CAAC;IACH,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,MAAyB,EAAE,QAAuB;QACrE,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBAClC,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;YAClE,CAAC;YAED,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;YAEjG,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,wBAAwB,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,sBAAsB;gBAClF,IAAI,EAAE,UAAU;aACjB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,uCAAuC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACnH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,MAAyB,EAAE,QAAuB;QACzE,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAClD,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC;YAC9B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;YAEjC,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YAElF,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,QAAQ;gBAChB,OAAO,EAAE,GAAG,YAAY,CAAC,MAAM,mCAAmC,MAAM,CAAC,KAAK,GAAG;gBACjF,IAAI,EAAE;oBACJ,YAAY;oBACZ,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,IAAI;oBACJ,KAAK;oBACL,KAAK,EAAE,YAAY,CAAC,MAAM;iBAC3B;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,iCAAiC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC7G,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CAAC,MAAyB,EAAE,QAAuB;QACtE,IAAI,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;gBAC9B,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,MAAM,EAAE,OAAO;oBACf,OAAO,EAAE,gDAAgD;oBACzD,KAAK,EAAE,yCAAyC;iBACjD,CAAC;YACJ,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC;gBAC5C,KAAK,EAAE,MAAM,CAAC,KAAM;gBACpB,IAAI,EAAE,MAAM,CAAC,IAAK;gBAClB,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,UAAU,EAAE,MAAM,CAAC,UAAU;aAC9B,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,OAAO;gBACf,OAAO,EAAE,iCAAiC;gBAC1C,IAAI,EAAE,MAAM;aACb,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,gCAAgC,KAAK,EAAE,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CAAC,MAAyB,EAAE,QAAuB;QACxE,IAAI,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC;gBAChC,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,MAAM,EAAE,SAAS;oBACjB,OAAO,EAAE,gDAAgD;oBACzD,KAAK,EAAE,2CAA2C;iBACnD,CAAC;YACJ,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,iBAAiB,CAAC;gBAC9C,KAAK,EAAE,MAAM,CAAC,KAAM;gBACpB,IAAI,EAAE,MAAM,CAAC,IAAK;gBAClB,QAAQ,EAAE,MAAM,CAAC,cAAc,IAAI,IAAI;aACxC,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,SAAS;gBACjB,OAAO,EAAE,eAAe,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc,cAAc;gBAC1F,IAAI,EAAE,MAAM;aACb,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,kCAAkC,KAAK,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB,CAAC,MAAyB,EAAE,QAAuB;QACzE,IAAI,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE,CAAC;gBACjC,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,MAAM,EAAE,UAAU;oBAClB,OAAO,EAAE,gDAAgD;oBACzD,KAAK,EAAE,4CAA4C;iBACpD,CAAC;YACJ,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,kBAAkB,CAAC;gBAC/C,KAAK,EAAE,MAAM,CAAC,KAAM;gBACpB,IAAI,EAAE,MAAM,CAAC,IAAK;gBAClB,SAAS,EAAE,MAAM,CAAC,SAAU;aAC7B,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,UAAU;gBAClB,OAAO,EAAE,gCAAgC,MAAM,CAAC,SAAS,cAAc;gBACvE,IAAI,EAAE,MAAM;aACb,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,oCAAoC,KAAK,EAAE,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB,CAAC,MAAyB,EAAE,QAAuB;QACzE,IAAI,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE,CAAC;gBACjC,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,MAAM,EAAE,UAAU;oBAClB,OAAO,EAAE,gDAAgD;oBACzD,KAAK,EAAE,4CAA4C;iBACpD,CAAC;YACJ,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,kBAAkB,CAAC;gBAC/C,cAAc,EAAE,MAAM,CAAC,cAAe;gBACtC,aAAa,EAAE,MAAM,CAAC,aAAc;gBACpC,KAAK,EAAE,MAAM,CAAC,KAAM;gBACpB,IAAI,EAAE,MAAM,CAAC,IAAK;gBAClB,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,oBAAoB,EAAE,MAAM,CAAC,oBAAoB;aAClD,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,UAAU;gBAClB,OAAO,EAAE,qDAAqD;gBAC9D,IAAI,EAAE,MAAM;aACb,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,oDAAoD,KAAK,EAAE,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CAAC,MAAyB,EAAE,QAAuB;QACvE,IAAI,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC;gBAC/B,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,MAAM,EAAE,QAAQ;oBAChB,OAAO,EAAE,gDAAgD;oBACzD,KAAK,EAAE,0CAA0C;iBAClD,CAAC;YACJ,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,gBAAgB,CAAC;gBAC7C,KAAK,EAAE,MAAM,CAAC,KAAM;gBACpB,IAAI,EAAE,MAAM,CAAC,IAAK;gBAClB,UAAU,EAAE,MAAM,CAAC,UAAW;gBAC9B,eAAe,EAAE,MAAM,CAAC,eAAe;gBACvC,eAAe,EAAE,MAAM,CAAC,eAAe;aACxC,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,QAAQ;gBAChB,OAAO,EAAE,sCAAsC;gBAC/C,IAAI,EAAE,MAAM;aACb,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,qCAAqC,KAAK,EAAE,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;CACF,CAAC"}