@andrebuzeli/git-mcp 2.28.1 → 2.29.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client.d.ts +306 -306
- package/dist/client.js +298 -298
- package/dist/config.d.ts +310 -310
- package/dist/config.js +392 -392
- package/dist/index.d.ts +22 -22
- package/dist/index.js +89 -89
- package/dist/providers/base-provider.d.ts +160 -160
- package/dist/providers/base-provider.js +274 -274
- package/dist/providers/error-handler.d.ts +74 -50
- package/dist/providers/error-handler.d.ts.map +1 -1
- package/dist/providers/error-handler.js +234 -175
- package/dist/providers/error-handler.js.map +1 -1
- package/dist/providers/gitea-provider.d.ts +97 -97
- package/dist/providers/gitea-provider.d.ts.map +1 -1
- package/dist/providers/gitea-provider.js +1015 -1001
- package/dist/providers/gitea-provider.js.map +1 -1
- package/dist/providers/github-provider.d.ts +104 -104
- package/dist/providers/github-provider.d.ts.map +1 -1
- package/dist/providers/github-provider.js +1248 -1234
- package/dist/providers/github-provider.js.map +1 -1
- package/dist/providers/index.d.ts +12 -12
- package/dist/providers/index.js +40 -40
- package/dist/providers/provider-factory.d.ts +74 -74
- package/dist/providers/provider-factory.d.ts.map +1 -1
- package/dist/providers/provider-factory.js +318 -311
- package/dist/providers/provider-factory.js.map +1 -1
- package/dist/providers/types.d.ts +318 -318
- package/dist/providers/types.js +6 -6
- package/dist/server.d.ts +76 -76
- package/dist/server.js +306 -306
- package/dist/server.js.map +1 -1
- package/dist/tools/git-archive.d.ts +169 -165
- package/dist/tools/git-archive.d.ts.map +1 -1
- package/dist/tools/git-archive.js +246 -233
- package/dist/tools/git-archive.js.map +1 -1
- package/dist/tools/git-branches.d.ts +434 -430
- package/dist/tools/git-branches.d.ts.map +1 -1
- package/dist/tools/git-branches.js +640 -627
- package/dist/tools/git-branches.js.map +1 -1
- package/dist/tools/git-commits.d.ts +489 -485
- package/dist/tools/git-commits.d.ts.map +1 -1
- package/dist/tools/git-commits.js +748 -735
- package/dist/tools/git-commits.js.map +1 -1
- package/dist/tools/git-config.d.ts +144 -140
- package/dist/tools/git-config.d.ts.map +1 -1
- package/dist/tools/git-config.js +281 -268
- package/dist/tools/git-config.js.map +1 -1
- package/dist/tools/git-files.d.ts +490 -486
- package/dist/tools/git-files.d.ts.map +1 -1
- package/dist/tools/git-files.js +620 -607
- package/dist/tools/git-files.js.map +1 -1
- package/dist/tools/git-initialize.d.ts +46 -42
- package/dist/tools/git-initialize.d.ts.map +1 -1
- package/dist/tools/git-initialize.js +81 -68
- package/dist/tools/git-initialize.js.map +1 -1
- package/dist/tools/git-issues.d.ts +578 -571
- package/dist/tools/git-issues.d.ts.map +1 -1
- package/dist/tools/git-issues.js +754 -740
- package/dist/tools/git-issues.js.map +1 -1
- package/dist/tools/git-pulls.d.ts +701 -694
- package/dist/tools/git-pulls.d.ts.map +1 -1
- package/dist/tools/git-pulls.js +746 -732
- package/dist/tools/git-pulls.js.map +1 -1
- package/dist/tools/git-releases.d.ts +494 -487
- package/dist/tools/git-releases.d.ts.map +1 -1
- package/dist/tools/git-releases.js +571 -557
- package/dist/tools/git-releases.js.map +1 -1
- package/dist/tools/git-remote.d.ts +142 -138
- package/dist/tools/git-remote.d.ts.map +1 -1
- package/dist/tools/git-remote.js +287 -274
- package/dist/tools/git-remote.js.map +1 -1
- package/dist/tools/git-repositories.d.ts +487 -483
- package/dist/tools/git-repositories.d.ts.map +1 -1
- package/dist/tools/git-repositories.js +653 -640
- package/dist/tools/git-repositories.js.map +1 -1
- package/dist/tools/git-reset.d.ts +134 -130
- package/dist/tools/git-reset.d.ts.map +1 -1
- package/dist/tools/git-reset.js +236 -223
- package/dist/tools/git-reset.js.map +1 -1
- package/dist/tools/git-revert.d.ts +153 -149
- package/dist/tools/git-revert.d.ts.map +1 -1
- package/dist/tools/git-revert.js +211 -198
- package/dist/tools/git-revert.js.map +1 -1
- package/dist/tools/git-stash.d.ts +144 -140
- package/dist/tools/git-stash.d.ts.map +1 -1
- package/dist/tools/git-stash.js +282 -269
- package/dist/tools/git-stash.js.map +1 -1
- package/dist/tools/git-sync.d.ts +182 -178
- package/dist/tools/git-sync.d.ts.map +1 -1
- package/dist/tools/git-sync.js +325 -312
- package/dist/tools/git-sync.js.map +1 -1
- package/dist/tools/git-tags.d.ts +418 -411
- package/dist/tools/git-tags.d.ts.map +1 -1
- package/dist/tools/git-tags.js +499 -485
- package/dist/tools/git-tags.js.map +1 -1
- package/dist/tools/git-upload-project.d.ts +5 -1
- package/dist/tools/git-upload-project.d.ts.map +1 -1
- package/dist/tools/git-upload-project.js +21 -1
- package/dist/tools/git-upload-project.js.map +1 -1
- package/dist/tools/git-webhooks.d.ts +477 -470
- package/dist/tools/git-webhooks.d.ts.map +1 -1
- package/dist/tools/git-webhooks.js +561 -543
- package/dist/tools/git-webhooks.js.map +1 -1
- package/dist/utils/git-error-analyzer.d.ts +64 -0
- package/dist/utils/git-error-analyzer.d.ts.map +1 -0
- package/dist/utils/git-error-analyzer.js +286 -0
- package/dist/utils/git-error-analyzer.js.map +1 -0
- package/dist/utils/terminal-controller.d.ts +80 -80
- package/dist/utils/terminal-controller.js +345 -345
- package/dist/utils/user-detection.d.ts +24 -24
- package/dist/utils/user-detection.js +53 -53
- package/package.json +2 -2
- package/dist/tools/gh-actions.d.ts +0 -253
- package/dist/tools/gh-actions.d.ts.map +0 -1
- package/dist/tools/gh-actions.js +0 -390
- package/dist/tools/gh-actions.js.map +0 -1
- package/dist/tools/gh-analytics.d.ts +0 -264
- package/dist/tools/gh-analytics.d.ts.map +0 -1
- package/dist/tools/gh-analytics.js +0 -402
- package/dist/tools/gh-analytics.js.map +0 -1
- package/dist/tools/gh-code-review.d.ts +0 -305
- package/dist/tools/gh-code-review.d.ts.map +0 -1
- package/dist/tools/gh-code-review.js +0 -513
- package/dist/tools/gh-code-review.js.map +0 -1
- package/dist/tools/gh-codespaces.d.ts +0 -139
- package/dist/tools/gh-codespaces.d.ts.map +0 -1
- package/dist/tools/gh-codespaces.js +0 -283
- package/dist/tools/gh-codespaces.js.map +0 -1
- package/dist/tools/gh-deployments.d.ts +0 -301
- package/dist/tools/gh-deployments.d.ts.map +0 -1
- package/dist/tools/gh-deployments.js +0 -368
- package/dist/tools/gh-deployments.js.map +0 -1
- package/dist/tools/gh-gists.d.ts +0 -175
- package/dist/tools/gh-gists.d.ts.map +0 -1
- package/dist/tools/gh-gists.js +0 -322
- package/dist/tools/gh-gists.js.map +0 -1
- package/dist/tools/gh-projects.d.ts +0 -206
- package/dist/tools/gh-projects.d.ts.map +0 -1
- package/dist/tools/gh-projects.js +0 -359
- package/dist/tools/gh-projects.js.map +0 -1
- package/dist/tools/gh-security.d.ts +0 -275
- package/dist/tools/gh-security.d.ts.map +0 -1
- package/dist/tools/gh-security.js +0 -396
- package/dist/tools/gh-security.js.map +0 -1
- package/dist/tools/gh-sync.d.ts +0 -214
- package/dist/tools/gh-sync.d.ts.map +0 -1
- package/dist/tools/gh-sync.js +0 -379
- package/dist/tools/gh-sync.js.map +0 -1
- package/dist/tools/gh-workflows.d.ts +0 -291
- package/dist/tools/gh-workflows.d.ts.map +0 -1
- package/dist/tools/gh-workflows.js +0 -433
- package/dist/tools/gh-workflows.js.map +0 -1
- package/dist/tools/git-bundle.d.ts +0 -172
- package/dist/tools/git-bundle.d.ts.map +0 -1
- package/dist/tools/git-bundle.js +0 -242
- package/dist/tools/git-bundle.js.map +0 -1
- package/dist/tools/git-cherry-pick.d.ts +0 -159
- package/dist/tools/git-cherry-pick.d.ts.map +0 -1
- package/dist/tools/git-cherry-pick.js +0 -225
- package/dist/tools/git-cherry-pick.js.map +0 -1
- package/dist/tools/git-rebase.d.ts +0 -138
- package/dist/tools/git-rebase.d.ts.map +0 -1
- package/dist/tools/git-rebase.js +0 -214
- package/dist/tools/git-rebase.js.map +0 -1
- package/dist/tools/git-submodule.d.ts +0 -153
- package/dist/tools/git-submodule.d.ts.map +0 -1
- package/dist/tools/git-submodule.js +0 -290
- package/dist/tools/git-submodule.js.map +0 -1
- package/dist/tools/git-worktree.d.ts +0 -160
- package/dist/tools/git-worktree.d.ts.map +0 -1
- package/dist/tools/git-worktree.js +0 -270
- package/dist/tools/git-worktree.js.map +0 -1
- package/dist/tools/repositories.d.ts +0 -406
- package/dist/tools/repositories.d.ts.map +0 -1
- package/dist/tools/repositories.js +0 -570
- package/dist/tools/repositories.js.map +0 -1
- package/dist/tools/users.d.ts +0 -373
- package/dist/tools/users.d.ts.map +0 -1
- package/dist/tools/users.js +0 -500
- package/dist/tools/users.js.map +0 -1
- package/dist/tools/validator.d.ts +0 -171
- package/dist/tools/validator.d.ts.map +0 -1
- package/dist/tools/validator.js +0 -195
- package/dist/tools/validator.js.map +0 -1
- package/dist/tools/version-control.d.ts +0 -137
- package/dist/tools/version-control.d.ts.map +0 -1
- package/dist/tools/version-control.js +0 -165
- package/dist/tools/version-control.js.map +0 -1
|
@@ -1,51 +1,75 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Classe utilitária para padronizar tratamento de erros entre providers
|
|
3
|
-
* Fornece métodos consistentes para normalização e formatação de erros
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
*
|
|
24
|
-
*/
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
*
|
|
28
|
-
*/
|
|
29
|
-
private static
|
|
30
|
-
/**
|
|
31
|
-
*
|
|
32
|
-
*/
|
|
33
|
-
private static
|
|
34
|
-
/**
|
|
35
|
-
*
|
|
36
|
-
*/
|
|
37
|
-
static
|
|
38
|
-
/**
|
|
39
|
-
*
|
|
40
|
-
*/
|
|
41
|
-
static
|
|
42
|
-
/**
|
|
43
|
-
*
|
|
44
|
-
*/
|
|
45
|
-
static
|
|
46
|
-
/**
|
|
47
|
-
*
|
|
48
|
-
*/
|
|
49
|
-
static
|
|
50
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Classe utilitária para padronizar tratamento de erros entre providers
|
|
3
|
+
* Fornece métodos consistentes para normalização e formatação de erros
|
|
4
|
+
*
|
|
5
|
+
* NOVA FUNCIONALIDADE:
|
|
6
|
+
* - Análise inteligente de erros Git
|
|
7
|
+
* - Sugestões automáticas de solução
|
|
8
|
+
* - Integração com GitErrorAnalyzer
|
|
9
|
+
*/
|
|
10
|
+
import { IntelligentErrorResponse } from '../utils/git-error-analyzer.js';
|
|
11
|
+
export interface StandardError {
|
|
12
|
+
code: string;
|
|
13
|
+
message: string;
|
|
14
|
+
provider: string;
|
|
15
|
+
originalError?: any;
|
|
16
|
+
statusCode?: number;
|
|
17
|
+
retryable?: boolean;
|
|
18
|
+
analysis?: any;
|
|
19
|
+
suggestedSolutions?: string[];
|
|
20
|
+
}
|
|
21
|
+
export declare class ErrorHandler {
|
|
22
|
+
/**
|
|
23
|
+
* Normaliza erros de diferentes providers para formato padrão
|
|
24
|
+
*/
|
|
25
|
+
static normalizeError(error: any, providerName: string): StandardError;
|
|
26
|
+
/**
|
|
27
|
+
* Mapeia códigos HTTP para códigos de erro padronizados
|
|
28
|
+
*/
|
|
29
|
+
private static getErrorCode;
|
|
30
|
+
/**
|
|
31
|
+
* Gera mensagens de erro padronizadas e user-friendly
|
|
32
|
+
*/
|
|
33
|
+
private static getErrorMessage;
|
|
34
|
+
/**
|
|
35
|
+
* Determina se um erro é passível de retry
|
|
36
|
+
*/
|
|
37
|
+
private static isRetryable;
|
|
38
|
+
/**
|
|
39
|
+
* Extrai informações de rate limit dos headers
|
|
40
|
+
*/
|
|
41
|
+
private static getRateLimitInfo;
|
|
42
|
+
/**
|
|
43
|
+
* Cria um Error padrão do JavaScript a partir de StandardError
|
|
44
|
+
*/
|
|
45
|
+
static createError(standardError: StandardError): Error;
|
|
46
|
+
/**
|
|
47
|
+
* Formata erro para logging estruturado
|
|
48
|
+
*/
|
|
49
|
+
static formatForLogging(standardError: StandardError): object;
|
|
50
|
+
/**
|
|
51
|
+
* Verifica se um erro é de um tipo específico
|
|
52
|
+
*/
|
|
53
|
+
static isErrorType(error: any, type: string): boolean;
|
|
54
|
+
/**
|
|
55
|
+
* Verifica se um erro é retryable
|
|
56
|
+
*/
|
|
57
|
+
static isRetryableError(error: any): boolean;
|
|
58
|
+
/**
|
|
59
|
+
* NOVO: Cria resposta inteligente de erro com análise Git
|
|
60
|
+
*/
|
|
61
|
+
static createIntelligentGitError(action: string, error: string, provider?: string, context?: string): IntelligentErrorResponse;
|
|
62
|
+
/**
|
|
63
|
+
* NOVO: Gera próximos passos inteligentes baseados na análise
|
|
64
|
+
*/
|
|
65
|
+
private static generateIntelligentNextSteps;
|
|
66
|
+
/**
|
|
67
|
+
* NOVO: Verifica se erro Git pode ser resolvido automaticamente
|
|
68
|
+
*/
|
|
69
|
+
static isGitErrorAutoFixable(error: string): boolean;
|
|
70
|
+
/**
|
|
71
|
+
* NOVO: Retorna tools que podem resolver o erro Git
|
|
72
|
+
*/
|
|
73
|
+
static getGitErrorRelatedTools(error: string): string[];
|
|
74
|
+
}
|
|
51
75
|
//# sourceMappingURL=error-handler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-handler.d.ts","sourceRoot":"","sources":["../../src/providers/error-handler.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"error-handler.d.ts","sourceRoot":"","sources":["../../src/providers/error-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAoB,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAE5F,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC/B;AAED,qBAAa,YAAY;IACvB;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,GAAG,aAAa;IAkCtE;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,YAAY;IA6B3B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IAqC9B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;IAU1B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAW/B;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,aAAa,EAAE,aAAa,GAAG,KAAK;IASvD;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,aAAa,GAAG,MAAM;IAa7D;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAIrD;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;IAI5C;;OAEG;IACH,MAAM,CAAC,yBAAyB,CAC9B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,QAAQ,GAAE,MAAc,EACxB,OAAO,GAAE,MAAW,GACnB,wBAAwB;IAa3B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,4BAA4B;IA4B3C;;OAEG;IACH,MAAM,CAAC,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAIpD;;OAEG;IACH,MAAM,CAAC,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;CAGxD"}
|
|
@@ -1,176 +1,235 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Classe utilitária para padronizar tratamento de erros entre providers
|
|
4
|
-
* Fornece métodos consistentes para normalização e formatação de erros
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
case
|
|
54
|
-
return '
|
|
55
|
-
case
|
|
56
|
-
return '
|
|
57
|
-
case
|
|
58
|
-
return '
|
|
59
|
-
case
|
|
60
|
-
return '
|
|
61
|
-
case
|
|
62
|
-
return '
|
|
63
|
-
case
|
|
64
|
-
return '
|
|
65
|
-
case
|
|
66
|
-
return '
|
|
67
|
-
case
|
|
68
|
-
return '
|
|
69
|
-
|
|
70
|
-
return
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
case
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
return `${provider}:
|
|
101
|
-
case
|
|
102
|
-
return `${provider}:
|
|
103
|
-
case
|
|
104
|
-
return `${provider}:
|
|
105
|
-
case
|
|
106
|
-
return `${provider}:
|
|
107
|
-
|
|
108
|
-
return `${provider}:
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
return
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
}
|
|
168
|
-
/**
|
|
169
|
-
* Verifica se um erro é
|
|
170
|
-
*/
|
|
171
|
-
static
|
|
172
|
-
return error?.
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Classe utilitária para padronizar tratamento de erros entre providers
|
|
4
|
+
* Fornece métodos consistentes para normalização e formatação de erros
|
|
5
|
+
*
|
|
6
|
+
* NOVA FUNCIONALIDADE:
|
|
7
|
+
* - Análise inteligente de erros Git
|
|
8
|
+
* - Sugestões automáticas de solução
|
|
9
|
+
* - Integração com GitErrorAnalyzer
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.ErrorHandler = void 0;
|
|
13
|
+
const git_error_analyzer_js_1 = require("../utils/git-error-analyzer.js");
|
|
14
|
+
class ErrorHandler {
|
|
15
|
+
/**
|
|
16
|
+
* Normaliza erros de diferentes providers para formato padrão
|
|
17
|
+
*/
|
|
18
|
+
static normalizeError(error, providerName) {
|
|
19
|
+
if (error.response) {
|
|
20
|
+
const status = error.response.status;
|
|
21
|
+
const data = error.response.data;
|
|
22
|
+
return {
|
|
23
|
+
code: this.getErrorCode(status),
|
|
24
|
+
message: this.getErrorMessage(status, data, providerName),
|
|
25
|
+
provider: providerName,
|
|
26
|
+
statusCode: status,
|
|
27
|
+
retryable: this.isRetryable(status),
|
|
28
|
+
originalError: error
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
if (error.request) {
|
|
32
|
+
return {
|
|
33
|
+
code: 'NETWORK_ERROR',
|
|
34
|
+
message: `${providerName}: Network error - No response received`,
|
|
35
|
+
provider: providerName,
|
|
36
|
+
retryable: true,
|
|
37
|
+
originalError: error
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
return {
|
|
41
|
+
code: 'UNKNOWN_ERROR',
|
|
42
|
+
message: `${providerName}: ${error.message || 'Unknown error'}`,
|
|
43
|
+
provider: providerName,
|
|
44
|
+
retryable: false,
|
|
45
|
+
originalError: error
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Mapeia códigos HTTP para códigos de erro padronizados
|
|
50
|
+
*/
|
|
51
|
+
static getErrorCode(status) {
|
|
52
|
+
switch (status) {
|
|
53
|
+
case 400:
|
|
54
|
+
return 'BAD_REQUEST';
|
|
55
|
+
case 401:
|
|
56
|
+
return 'UNAUTHORIZED';
|
|
57
|
+
case 403:
|
|
58
|
+
return 'FORBIDDEN';
|
|
59
|
+
case 404:
|
|
60
|
+
return 'NOT_FOUND';
|
|
61
|
+
case 409:
|
|
62
|
+
return 'CONFLICT';
|
|
63
|
+
case 422:
|
|
64
|
+
return 'VALIDATION_ERROR';
|
|
65
|
+
case 429:
|
|
66
|
+
return 'RATE_LIMITED';
|
|
67
|
+
case 500:
|
|
68
|
+
return 'INTERNAL_SERVER_ERROR';
|
|
69
|
+
case 502:
|
|
70
|
+
return 'BAD_GATEWAY';
|
|
71
|
+
case 503:
|
|
72
|
+
return 'SERVICE_UNAVAILABLE';
|
|
73
|
+
case 504:
|
|
74
|
+
return 'GATEWAY_TIMEOUT';
|
|
75
|
+
default:
|
|
76
|
+
return `HTTP_${status}`;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Gera mensagens de erro padronizadas e user-friendly
|
|
81
|
+
*/
|
|
82
|
+
static getErrorMessage(status, data, provider) {
|
|
83
|
+
const baseMessage = data?.message || data?.error || '';
|
|
84
|
+
switch (status) {
|
|
85
|
+
case 400:
|
|
86
|
+
return `${provider}: Bad request - ${baseMessage || 'Invalid parameters'}`;
|
|
87
|
+
case 401:
|
|
88
|
+
return `${provider}: Unauthorized - Check your token and permissions`;
|
|
89
|
+
case 403:
|
|
90
|
+
return `${provider}: Forbidden - Insufficient permissions for this operation`;
|
|
91
|
+
case 404:
|
|
92
|
+
if (baseMessage.includes('user') || baseMessage.includes('User')) {
|
|
93
|
+
return `${provider}: User not found - The specified user doesn't exist or has been deleted`;
|
|
94
|
+
}
|
|
95
|
+
return `${provider}: Not found - Resource doesn't exist or has been deleted`;
|
|
96
|
+
case 409:
|
|
97
|
+
if (baseMessage.includes('already exists') || baseMessage.includes('Conflict')) {
|
|
98
|
+
return `${provider}: Resource already exists - ${baseMessage || 'The resource already exists'}`;
|
|
99
|
+
}
|
|
100
|
+
return `${provider}: Conflict - ${baseMessage || 'Resource already exists or conflicts with existing data'}`;
|
|
101
|
+
case 422:
|
|
102
|
+
return `${provider}: Validation error - ${baseMessage || 'Invalid data provided'}`;
|
|
103
|
+
case 429:
|
|
104
|
+
return `${provider}: Rate limited - Too many requests. ${this.getRateLimitInfo(data)}`;
|
|
105
|
+
case 500:
|
|
106
|
+
return `${provider}: Internal server error - ${baseMessage || 'Server encountered an error'}`;
|
|
107
|
+
case 502:
|
|
108
|
+
return `${provider}: Bad gateway - Server is temporarily unavailable`;
|
|
109
|
+
case 503:
|
|
110
|
+
return `${provider}: Service unavailable - Server is temporarily down for maintenance`;
|
|
111
|
+
case 504:
|
|
112
|
+
return `${provider}: Gateway timeout - Server took too long to respond`;
|
|
113
|
+
default:
|
|
114
|
+
return `${provider}: HTTP ${status} - ${baseMessage || 'Unknown error'}`;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Determina se um erro é passível de retry
|
|
119
|
+
*/
|
|
120
|
+
static isRetryable(status) {
|
|
121
|
+
return [
|
|
122
|
+
429, // Rate limited
|
|
123
|
+
500, // Internal server error
|
|
124
|
+
502, // Bad gateway
|
|
125
|
+
503, // Service unavailable
|
|
126
|
+
504 // Gateway timeout
|
|
127
|
+
].includes(status);
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Extrai informações de rate limit dos headers
|
|
131
|
+
*/
|
|
132
|
+
static getRateLimitInfo(data) {
|
|
133
|
+
if (data?.headers) {
|
|
134
|
+
const resetTime = data.headers['x-ratelimit-reset'] || data.headers['x-rate-limit-reset'];
|
|
135
|
+
if (resetTime) {
|
|
136
|
+
const resetDate = new Date(parseInt(resetTime) * 1000);
|
|
137
|
+
return `Reset at: ${resetDate.toLocaleTimeString()}`;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
return 'Please try again later';
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Cria um Error padrão do JavaScript a partir de StandardError
|
|
144
|
+
*/
|
|
145
|
+
static createError(standardError) {
|
|
146
|
+
const error = new Error(standardError.message);
|
|
147
|
+
error.code = standardError.code;
|
|
148
|
+
error.provider = standardError.provider;
|
|
149
|
+
error.statusCode = standardError.statusCode;
|
|
150
|
+
error.retryable = standardError.retryable;
|
|
151
|
+
return error;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Formata erro para logging estruturado
|
|
155
|
+
*/
|
|
156
|
+
static formatForLogging(standardError) {
|
|
157
|
+
return {
|
|
158
|
+
timestamp: new Date().toISOString(),
|
|
159
|
+
level: 'error',
|
|
160
|
+
code: standardError.code,
|
|
161
|
+
message: standardError.message,
|
|
162
|
+
provider: standardError.provider,
|
|
163
|
+
statusCode: standardError.statusCode,
|
|
164
|
+
retryable: standardError.retryable,
|
|
165
|
+
stack: standardError.originalError?.stack
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Verifica se um erro é de um tipo específico
|
|
170
|
+
*/
|
|
171
|
+
static isErrorType(error, type) {
|
|
172
|
+
return error?.code === type;
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Verifica se um erro é retryable
|
|
176
|
+
*/
|
|
177
|
+
static isRetryableError(error) {
|
|
178
|
+
return error?.retryable === true;
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* NOVO: Cria resposta inteligente de erro com análise Git
|
|
182
|
+
*/
|
|
183
|
+
static createIntelligentGitError(action, error, provider = 'git', context = '') {
|
|
184
|
+
const analysis = git_error_analyzer_js_1.GitErrorAnalyzer.analyzeGitError(error, context);
|
|
185
|
+
return {
|
|
186
|
+
success: false,
|
|
187
|
+
action,
|
|
188
|
+
message: `[${provider.toUpperCase()}] ${analysis.cause}`,
|
|
189
|
+
error: error,
|
|
190
|
+
analysis,
|
|
191
|
+
nextSteps: this.generateIntelligentNextSteps(analysis, provider)
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* NOVO: Gera próximos passos inteligentes baseados na análise
|
|
196
|
+
*/
|
|
197
|
+
static generateIntelligentNextSteps(analysis, provider) {
|
|
198
|
+
const steps = [];
|
|
199
|
+
steps.push(`🔍 ANÁLISE DO ERRO:`);
|
|
200
|
+
steps.push(` Tipo: ${analysis.errorType}`);
|
|
201
|
+
steps.push(` Causa: ${analysis.cause}`);
|
|
202
|
+
steps.push(` Solução: ${analysis.solution}`);
|
|
203
|
+
if (analysis.autoFixable) {
|
|
204
|
+
steps.push(`✅ RESOLUÇÃO AUTOMÁTICA DISPONÍVEL:`);
|
|
205
|
+
steps.push(` Este erro pode ser resolvido automaticamente usando outras tools.`);
|
|
206
|
+
steps.push(` Tools recomendadas:`);
|
|
207
|
+
analysis.relatedTools.forEach((tool) => {
|
|
208
|
+
steps.push(` - ${tool}`);
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
else {
|
|
212
|
+
steps.push(`⚠️ AÇÃO MANUAL NECESSÁRIA:`);
|
|
213
|
+
steps.push(` Comandos Git sugeridos:`);
|
|
214
|
+
analysis.suggestedCommands.forEach((cmd) => {
|
|
215
|
+
steps.push(` - ${cmd}`);
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
steps.push(`💡 DICA: Use as tools relacionadas para resolver automaticamente!`);
|
|
219
|
+
return steps;
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* NOVO: Verifica se erro Git pode ser resolvido automaticamente
|
|
223
|
+
*/
|
|
224
|
+
static isGitErrorAutoFixable(error) {
|
|
225
|
+
return git_error_analyzer_js_1.GitErrorAnalyzer.isAutoFixable(error);
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* NOVO: Retorna tools que podem resolver o erro Git
|
|
229
|
+
*/
|
|
230
|
+
static getGitErrorRelatedTools(error) {
|
|
231
|
+
return git_error_analyzer_js_1.GitErrorAnalyzer.getRelatedTools(error);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
exports.ErrorHandler = ErrorHandler;
|
|
176
235
|
//# sourceMappingURL=error-handler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-handler.js","sourceRoot":"","sources":["../../src/providers/error-handler.ts"],"names":[],"mappings":";AAAA;;;
|
|
1
|
+
{"version":3,"file":"error-handler.js","sourceRoot":"","sources":["../../src/providers/error-handler.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAEH,0EAA4F;AAa5F,MAAa,YAAY;IACvB;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,KAAU,EAAE,YAAoB;QACpD,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnB,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;YACrC,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;YAEjC,OAAO;gBACL,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;gBAC/B,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,EAAE,YAAY,CAAC;gBACzD,QAAQ,EAAE,YAAY;gBACtB,UAAU,EAAE,MAAM;gBAClB,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;gBACnC,aAAa,EAAE,KAAK;aACrB,CAAC;QACJ,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO;gBACL,IAAI,EAAE,eAAe;gBACrB,OAAO,EAAE,GAAG,YAAY,wCAAwC;gBAChE,QAAQ,EAAE,YAAY;gBACtB,SAAS,EAAE,IAAI;gBACf,aAAa,EAAE,KAAK;aACrB,CAAC;QACJ,CAAC;QAED,OAAO;YACL,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,GAAG,YAAY,KAAK,KAAK,CAAC,OAAO,IAAI,eAAe,EAAE;YAC/D,QAAQ,EAAE,YAAY;YACtB,SAAS,EAAE,KAAK;YAChB,aAAa,EAAE,KAAK;SACrB,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,YAAY,CAAC,MAAc;QACxC,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,GAAG;gBACN,OAAO,aAAa,CAAC;YACvB,KAAK,GAAG;gBACN,OAAO,cAAc,CAAC;YACxB,KAAK,GAAG;gBACN,OAAO,WAAW,CAAC;YACrB,KAAK,GAAG;gBACN,OAAO,WAAW,CAAC;YACrB,KAAK,GAAG;gBACN,OAAO,UAAU,CAAC;YACpB,KAAK,GAAG;gBACN,OAAO,kBAAkB,CAAC;YAC5B,KAAK,GAAG;gBACN,OAAO,cAAc,CAAC;YACxB,KAAK,GAAG;gBACN,OAAO,uBAAuB,CAAC;YACjC,KAAK,GAAG;gBACN,OAAO,aAAa,CAAC;YACvB,KAAK,GAAG;gBACN,OAAO,qBAAqB,CAAC;YAC/B,KAAK,GAAG;gBACN,OAAO,iBAAiB,CAAC;YAC3B;gBACE,OAAO,QAAQ,MAAM,EAAE,CAAC;QAC5B,CAAC;IACH,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,eAAe,CAAC,MAAc,EAAE,IAAS,EAAE,QAAgB;QACxE,MAAM,WAAW,GAAG,IAAI,EAAE,OAAO,IAAI,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;QAEvD,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,GAAG;gBACN,OAAO,GAAG,QAAQ,mBAAmB,WAAW,IAAI,oBAAoB,EAAE,CAAC;YAC7E,KAAK,GAAG;gBACN,OAAO,GAAG,QAAQ,mDAAmD,CAAC;YACxE,KAAK,GAAG;gBACN,OAAO,GAAG,QAAQ,2DAA2D,CAAC;YAChF,KAAK,GAAG;gBACN,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;oBACjE,OAAO,GAAG,QAAQ,yEAAyE,CAAC;gBAC9F,CAAC;gBACD,OAAO,GAAG,QAAQ,0DAA0D,CAAC;YAC/E,KAAK,GAAG;gBACN,IAAI,WAAW,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC/E,OAAO,GAAG,QAAQ,+BAA+B,WAAW,IAAI,6BAA6B,EAAE,CAAC;gBAClG,CAAC;gBACD,OAAO,GAAG,QAAQ,gBAAgB,WAAW,IAAI,yDAAyD,EAAE,CAAC;YAC/G,KAAK,GAAG;gBACN,OAAO,GAAG,QAAQ,wBAAwB,WAAW,IAAI,uBAAuB,EAAE,CAAC;YACrF,KAAK,GAAG;gBACN,OAAO,GAAG,QAAQ,uCAAuC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;YACzF,KAAK,GAAG;gBACN,OAAO,GAAG,QAAQ,6BAA6B,WAAW,IAAI,6BAA6B,EAAE,CAAC;YAChG,KAAK,GAAG;gBACN,OAAO,GAAG,QAAQ,mDAAmD,CAAC;YACxE,KAAK,GAAG;gBACN,OAAO,GAAG,QAAQ,oEAAoE,CAAC;YACzF,KAAK,GAAG;gBACN,OAAO,GAAG,QAAQ,qDAAqD,CAAC;YAC1E;gBACE,OAAO,GAAG,QAAQ,UAAU,MAAM,MAAM,WAAW,IAAI,eAAe,EAAE,CAAC;QAC7E,CAAC;IACH,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,WAAW,CAAC,MAAc;QACvC,OAAO;YACL,GAAG,EAAE,eAAe;YACpB,GAAG,EAAE,wBAAwB;YAC7B,GAAG,EAAE,cAAc;YACnB,GAAG,EAAE,sBAAsB;YAC3B,GAAG,CAAE,kBAAkB;SACxB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACrB,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,gBAAgB,CAAC,IAAS;QACvC,IAAI,IAAI,EAAE,OAAO,EAAE,CAAC;YAClB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;YAC1F,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC;gBACvD,OAAO,aAAa,SAAS,CAAC,kBAAkB,EAAE,EAAE,CAAC;YACvD,CAAC;QACH,CAAC;QACD,OAAO,wBAAwB,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,aAA4B;QAC7C,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC9C,KAAa,CAAC,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC;QACxC,KAAa,CAAC,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC;QAChD,KAAa,CAAC,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC;QACpD,KAAa,CAAC,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC;QACnD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,aAA4B;QAClD,OAAO;YACL,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,KAAK,EAAE,OAAO;YACd,IAAI,EAAE,aAAa,CAAC,IAAI;YACxB,OAAO,EAAE,aAAa,CAAC,OAAO;YAC9B,QAAQ,EAAE,aAAa,CAAC,QAAQ;YAChC,UAAU,EAAE,aAAa,CAAC,UAAU;YACpC,SAAS,EAAE,aAAa,CAAC,SAAS;YAClC,KAAK,EAAE,aAAa,CAAC,aAAa,EAAE,KAAK;SAC1C,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,KAAU,EAAE,IAAY;QACzC,OAAO,KAAK,EAAE,IAAI,KAAK,IAAI,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,KAAU;QAChC,OAAO,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,yBAAyB,CAC9B,MAAc,EACd,KAAa,EACb,WAAmB,KAAK,EACxB,UAAkB,EAAE;QAEpB,MAAM,QAAQ,GAAG,wCAAgB,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAElE,OAAO;YACL,OAAO,EAAE,KAAK;YACd,MAAM;YACN,OAAO,EAAE,IAAI,QAAQ,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,KAAK,EAAE;YACxD,KAAK,EAAE,KAAK;YACZ,QAAQ;YACR,SAAS,EAAE,IAAI,CAAC,4BAA4B,CAAC,QAAQ,EAAE,QAAQ,CAAC;SACjE,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,4BAA4B,CAAC,QAAa,EAAE,QAAgB;QACzE,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAClC,KAAK,CAAC,IAAI,CAAC,YAAY,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;QAC7C,KAAK,CAAC,IAAI,CAAC,aAAa,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;QAC1C,KAAK,CAAC,IAAI,CAAC,eAAe,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;QAE/C,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;YACzB,KAAK,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;YACjD,KAAK,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAC;YACnF,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACrC,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAY,EAAE,EAAE;gBAC7C,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;YAC7B,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;YACzC,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;YACzC,QAAQ,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,GAAW,EAAE,EAAE;gBACjD,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC;YAC5B,CAAC,CAAC,CAAC;QACL,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;QAEhF,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,qBAAqB,CAAC,KAAa;QACxC,OAAO,wCAAgB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,uBAAuB,CAAC,KAAa;QAC1C,OAAO,wCAAgB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACjD,CAAC;CACF;AApPD,oCAoPC"}
|