@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.
- package/README.md +346 -0
- package/dist/client.d.ts +307 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +299 -0
- package/dist/client.js.map +1 -0
- package/dist/config.d.ts +299 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +381 -0
- package/dist/config.js.map +1 -0
- package/dist/index.d.ts +22 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +53 -0
- package/dist/index.js.map +1 -0
- package/dist/providers/base-provider.d.ts +139 -0
- package/dist/providers/base-provider.d.ts.map +1 -0
- package/dist/providers/base-provider.js +246 -0
- package/dist/providers/base-provider.js.map +1 -0
- package/dist/providers/error-handler.d.ts +51 -0
- package/dist/providers/error-handler.d.ts.map +1 -0
- package/dist/providers/error-handler.js +170 -0
- package/dist/providers/error-handler.js.map +1 -0
- package/dist/providers/gitea-provider.d.ts +68 -0
- package/dist/providers/gitea-provider.d.ts.map +1 -0
- package/dist/providers/gitea-provider.js +515 -0
- package/dist/providers/gitea-provider.js.map +1 -0
- package/dist/providers/github-provider.d.ts +68 -0
- package/dist/providers/github-provider.d.ts.map +1 -0
- package/dist/providers/github-provider.js +518 -0
- package/dist/providers/github-provider.js.map +1 -0
- package/dist/providers/index.d.ts +13 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +41 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/provider-factory.d.ts +75 -0
- package/dist/providers/provider-factory.d.ts.map +1 -0
- package/dist/providers/provider-factory.js +298 -0
- package/dist/providers/provider-factory.js.map +1 -0
- package/dist/providers/types.d.ts +276 -0
- package/dist/providers/types.d.ts.map +1 -0
- package/dist/providers/types.js +7 -0
- package/dist/providers/types.js.map +1 -0
- package/dist/server.d.ts +77 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +262 -0
- package/dist/server.js.map +1 -0
- package/dist/tools/actions.d.ts +272 -0
- package/dist/tools/actions.d.ts.map +1 -0
- package/dist/tools/actions.js +428 -0
- package/dist/tools/actions.js.map +1 -0
- package/dist/tools/analytics.d.ts +326 -0
- package/dist/tools/analytics.d.ts.map +1 -0
- package/dist/tools/analytics.js +473 -0
- package/dist/tools/analytics.js.map +1 -0
- package/dist/tools/branches.d.ts +461 -0
- package/dist/tools/branches.d.ts.map +1 -0
- package/dist/tools/branches.js +525 -0
- package/dist/tools/branches.js.map +1 -0
- package/dist/tools/code-review.d.ts +323 -0
- package/dist/tools/code-review.d.ts.map +1 -0
- package/dist/tools/code-review.js +552 -0
- package/dist/tools/code-review.js.map +1 -0
- package/dist/tools/commits.d.ts +488 -0
- package/dist/tools/commits.d.ts.map +1 -0
- package/dist/tools/commits.js +578 -0
- package/dist/tools/commits.js.map +1 -0
- package/dist/tools/deployments.d.ts +319 -0
- package/dist/tools/deployments.d.ts.map +1 -0
- package/dist/tools/deployments.js +355 -0
- package/dist/tools/deployments.js.map +1 -0
- package/dist/tools/files.d.ts +456 -0
- package/dist/tools/files.d.ts.map +1 -0
- package/dist/tools/files.js +531 -0
- package/dist/tools/files.js.map +1 -0
- package/dist/tools/git-sync.d.ts +177 -0
- package/dist/tools/git-sync.d.ts.map +1 -0
- package/dist/tools/git-sync.js +112 -0
- package/dist/tools/git-sync.js.map +1 -0
- package/dist/tools/issues.d.ts +579 -0
- package/dist/tools/issues.d.ts.map +1 -0
- package/dist/tools/issues.js +631 -0
- package/dist/tools/issues.js.map +1 -0
- package/dist/tools/pulls.d.ts +702 -0
- package/dist/tools/pulls.d.ts.map +1 -0
- package/dist/tools/pulls.js +730 -0
- package/dist/tools/pulls.js.map +1 -0
- package/dist/tools/releases.d.ts +495 -0
- package/dist/tools/releases.d.ts.map +1 -0
- package/dist/tools/releases.js +551 -0
- package/dist/tools/releases.js.map +1 -0
- package/dist/tools/repositories.d.ts +513 -0
- package/dist/tools/repositories.d.ts.map +1 -0
- package/dist/tools/repositories.js +634 -0
- package/dist/tools/repositories.js.map +1 -0
- package/dist/tools/security.d.ts +341 -0
- package/dist/tools/security.d.ts.map +1 -0
- package/dist/tools/security.js +394 -0
- package/dist/tools/security.js.map +1 -0
- package/dist/tools/tags.d.ts +419 -0
- package/dist/tools/tags.d.ts.map +1 -0
- package/dist/tools/tags.js +479 -0
- package/dist/tools/tags.js.map +1 -0
- package/dist/tools/users.d.ts +376 -0
- package/dist/tools/users.d.ts.map +1 -0
- package/dist/tools/users.js +495 -0
- package/dist/tools/users.js.map +1 -0
- package/dist/tools/validator.d.ts +192 -0
- package/dist/tools/validator.d.ts.map +1 -0
- package/dist/tools/validator.js +198 -0
- package/dist/tools/validator.js.map +1 -0
- package/dist/tools/version-control.d.ts +247 -0
- package/dist/tools/version-control.d.ts.map +1 -0
- package/dist/tools/version-control.js +521 -0
- package/dist/tools/version-control.js.map +1 -0
- package/dist/tools/webhooks.d.ts +478 -0
- package/dist/tools/webhooks.d.ts.map +1 -0
- package/dist/tools/webhooks.js +541 -0
- package/dist/tools/webhooks.js.map +1 -0
- package/dist/tools/workflows.d.ts +313 -0
- package/dist/tools/workflows.d.ts.map +1 -0
- package/dist/tools/workflows.js +430 -0
- package/dist/tools/workflows.js.map +1 -0
- package/package.json +58 -0
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Validador comum para todas as tools
|
|
4
|
+
* Fornece schemas e métodos de validação padronizados
|
|
5
|
+
*/
|
|
6
|
+
export declare const CommonSchemas: {
|
|
7
|
+
owner: z.ZodString;
|
|
8
|
+
repo: z.ZodString;
|
|
9
|
+
provider: z.ZodOptional<z.ZodEnum<["gitea", "github", "both"]>>;
|
|
10
|
+
page: z.ZodOptional<z.ZodNumber>;
|
|
11
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
12
|
+
shortString: z.ZodOptional<z.ZodString>;
|
|
13
|
+
mediumString: z.ZodOptional<z.ZodString>;
|
|
14
|
+
longString: z.ZodOptional<z.ZodString>;
|
|
15
|
+
branch: z.ZodOptional<z.ZodString>;
|
|
16
|
+
tag: z.ZodOptional<z.ZodString>;
|
|
17
|
+
sha: z.ZodOptional<z.ZodString>;
|
|
18
|
+
filePath: z.ZodOptional<z.ZodString>;
|
|
19
|
+
url: z.ZodOptional<z.ZodString>;
|
|
20
|
+
issueState: z.ZodOptional<z.ZodEnum<["open", "closed", "all"]>>;
|
|
21
|
+
prState: z.ZodOptional<z.ZodEnum<["open", "closed", "merged", "all"]>>;
|
|
22
|
+
stringArray: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
23
|
+
boolean: z.ZodOptional<z.ZodBoolean>;
|
|
24
|
+
positiveNumber: z.ZodOptional<z.ZodNumber>;
|
|
25
|
+
issueNumber: z.ZodOptional<z.ZodNumber>;
|
|
26
|
+
mergeMethod: z.ZodOptional<z.ZodEnum<["merge", "rebase", "squash"]>>;
|
|
27
|
+
syncDirection: z.ZodOptional<z.ZodEnum<["one-way", "two-way"]>>;
|
|
28
|
+
syncStrategy: z.ZodOptional<z.ZodEnum<["source-wins", "timestamp", "skip-conflicts"]>>;
|
|
29
|
+
};
|
|
30
|
+
export declare const RepositorySchemas: {
|
|
31
|
+
source: z.ZodOptional<z.ZodObject<{
|
|
32
|
+
provider: z.ZodEnum<["gitea", "github"]>;
|
|
33
|
+
owner: z.ZodString;
|
|
34
|
+
repo: z.ZodString;
|
|
35
|
+
}, "strip", z.ZodTypeAny, {
|
|
36
|
+
provider: "gitea" | "github";
|
|
37
|
+
owner: string;
|
|
38
|
+
repo: string;
|
|
39
|
+
}, {
|
|
40
|
+
provider: "gitea" | "github";
|
|
41
|
+
owner: string;
|
|
42
|
+
repo: string;
|
|
43
|
+
}>>;
|
|
44
|
+
target: z.ZodOptional<z.ZodObject<{
|
|
45
|
+
provider: z.ZodEnum<["gitea", "github"]>;
|
|
46
|
+
owner: z.ZodString;
|
|
47
|
+
repo: z.ZodString;
|
|
48
|
+
}, "strip", z.ZodTypeAny, {
|
|
49
|
+
provider: "gitea" | "github";
|
|
50
|
+
owner: string;
|
|
51
|
+
repo: string;
|
|
52
|
+
}, {
|
|
53
|
+
provider: "gitea" | "github";
|
|
54
|
+
owner: string;
|
|
55
|
+
repo: string;
|
|
56
|
+
}>>;
|
|
57
|
+
};
|
|
58
|
+
export declare class ToolValidator {
|
|
59
|
+
/**
|
|
60
|
+
* Valida se pelo menos um dos campos obrigatórios está presente
|
|
61
|
+
*/
|
|
62
|
+
static requireOneOf<T>(data: T, fields: (keyof T)[], errorMessage?: string): void;
|
|
63
|
+
/**
|
|
64
|
+
* Valida se todos os campos de um grupo estão presentes ou ausentes
|
|
65
|
+
*/
|
|
66
|
+
static requireAllOrNone<T>(data: T, fields: (keyof T)[], errorMessage?: string): void;
|
|
67
|
+
/**
|
|
68
|
+
* Valida formato de versão semântica
|
|
69
|
+
*/
|
|
70
|
+
static validateSemVer(version: string): boolean;
|
|
71
|
+
/**
|
|
72
|
+
* Valida nome de branch Git
|
|
73
|
+
*/
|
|
74
|
+
static validateBranchName(branch: string): boolean;
|
|
75
|
+
/**
|
|
76
|
+
* Valida nome de arquivo/path
|
|
77
|
+
*/
|
|
78
|
+
static validateFilePath(path: string): boolean;
|
|
79
|
+
/**
|
|
80
|
+
* Sanitiza entrada de texto removendo caracteres perigosos
|
|
81
|
+
*/
|
|
82
|
+
static sanitizeText(text: string): string;
|
|
83
|
+
/**
|
|
84
|
+
* Valida e sanitiza parâmetros de entrada de uma tool
|
|
85
|
+
*/
|
|
86
|
+
static validateAndSanitize<T>(data: T, schema: z.ZodSchema<T>): T;
|
|
87
|
+
/**
|
|
88
|
+
* Sanitiza recursivamente um objeto
|
|
89
|
+
*/
|
|
90
|
+
private static sanitizeObject;
|
|
91
|
+
/**
|
|
92
|
+
* Cria um schema base para tools com parâmetros comuns
|
|
93
|
+
*/
|
|
94
|
+
static createBaseToolSchema(additionalFields?: Record<string, z.ZodTypeAny>): z.ZodObject<{
|
|
95
|
+
owner: z.ZodString;
|
|
96
|
+
repo: z.ZodString;
|
|
97
|
+
provider: z.ZodOptional<z.ZodEnum<["gitea", "github", "both"]>>;
|
|
98
|
+
page: z.ZodOptional<z.ZodNumber>;
|
|
99
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
100
|
+
}, "strip", z.ZodTypeAny, {
|
|
101
|
+
owner: string;
|
|
102
|
+
repo: string;
|
|
103
|
+
provider?: "gitea" | "github" | "both" | undefined;
|
|
104
|
+
page?: number | undefined;
|
|
105
|
+
limit?: number | undefined;
|
|
106
|
+
}, {
|
|
107
|
+
owner: string;
|
|
108
|
+
repo: string;
|
|
109
|
+
provider?: "gitea" | "github" | "both" | undefined;
|
|
110
|
+
page?: number | undefined;
|
|
111
|
+
limit?: number | undefined;
|
|
112
|
+
}>;
|
|
113
|
+
}
|
|
114
|
+
export declare const ToolSchemas: {
|
|
115
|
+
repositoryOperation: z.ZodObject<{
|
|
116
|
+
owner: z.ZodString;
|
|
117
|
+
repo: z.ZodString;
|
|
118
|
+
provider: z.ZodOptional<z.ZodEnum<["gitea", "github", "both"]>>;
|
|
119
|
+
page: z.ZodOptional<z.ZodNumber>;
|
|
120
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
121
|
+
}, "strip", z.ZodTypeAny, {
|
|
122
|
+
owner: string;
|
|
123
|
+
repo: string;
|
|
124
|
+
provider?: "gitea" | "github" | "both" | undefined;
|
|
125
|
+
page?: number | undefined;
|
|
126
|
+
limit?: number | undefined;
|
|
127
|
+
}, {
|
|
128
|
+
owner: string;
|
|
129
|
+
repo: string;
|
|
130
|
+
provider?: "gitea" | "github" | "both" | undefined;
|
|
131
|
+
page?: number | undefined;
|
|
132
|
+
limit?: number | undefined;
|
|
133
|
+
}>;
|
|
134
|
+
fileOperation: z.ZodObject<{
|
|
135
|
+
owner: z.ZodString;
|
|
136
|
+
repo: z.ZodString;
|
|
137
|
+
provider: z.ZodOptional<z.ZodEnum<["gitea", "github", "both"]>>;
|
|
138
|
+
page: z.ZodOptional<z.ZodNumber>;
|
|
139
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
140
|
+
}, "strip", z.ZodTypeAny, {
|
|
141
|
+
owner: string;
|
|
142
|
+
repo: string;
|
|
143
|
+
provider?: "gitea" | "github" | "both" | undefined;
|
|
144
|
+
page?: number | undefined;
|
|
145
|
+
limit?: number | undefined;
|
|
146
|
+
}, {
|
|
147
|
+
owner: string;
|
|
148
|
+
repo: string;
|
|
149
|
+
provider?: "gitea" | "github" | "both" | undefined;
|
|
150
|
+
page?: number | undefined;
|
|
151
|
+
limit?: number | undefined;
|
|
152
|
+
}>;
|
|
153
|
+
issueOperation: z.ZodObject<{
|
|
154
|
+
owner: z.ZodString;
|
|
155
|
+
repo: z.ZodString;
|
|
156
|
+
provider: z.ZodOptional<z.ZodEnum<["gitea", "github", "both"]>>;
|
|
157
|
+
page: z.ZodOptional<z.ZodNumber>;
|
|
158
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
159
|
+
}, "strip", z.ZodTypeAny, {
|
|
160
|
+
owner: string;
|
|
161
|
+
repo: string;
|
|
162
|
+
provider?: "gitea" | "github" | "both" | undefined;
|
|
163
|
+
page?: number | undefined;
|
|
164
|
+
limit?: number | undefined;
|
|
165
|
+
}, {
|
|
166
|
+
owner: string;
|
|
167
|
+
repo: string;
|
|
168
|
+
provider?: "gitea" | "github" | "both" | undefined;
|
|
169
|
+
page?: number | undefined;
|
|
170
|
+
limit?: number | undefined;
|
|
171
|
+
}>;
|
|
172
|
+
branchOperation: z.ZodObject<{
|
|
173
|
+
owner: z.ZodString;
|
|
174
|
+
repo: z.ZodString;
|
|
175
|
+
provider: z.ZodOptional<z.ZodEnum<["gitea", "github", "both"]>>;
|
|
176
|
+
page: z.ZodOptional<z.ZodNumber>;
|
|
177
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
178
|
+
}, "strip", z.ZodTypeAny, {
|
|
179
|
+
owner: string;
|
|
180
|
+
repo: string;
|
|
181
|
+
provider?: "gitea" | "github" | "both" | undefined;
|
|
182
|
+
page?: number | undefined;
|
|
183
|
+
limit?: number | undefined;
|
|
184
|
+
}, {
|
|
185
|
+
owner: string;
|
|
186
|
+
repo: string;
|
|
187
|
+
provider?: "gitea" | "github" | "both" | undefined;
|
|
188
|
+
page?: number | undefined;
|
|
189
|
+
limit?: number | undefined;
|
|
190
|
+
}>;
|
|
191
|
+
};
|
|
192
|
+
//# sourceMappingURL=validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/tools/validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AAGH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;CA0CzB,CAAC;AAGF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;CAY7B,CAAC;AAGF,qBAAa,aAAa;IACxB;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI;IAOjF;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI;IAOrF;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAK/C;;OAEG;IACH,MAAM,CAAC,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAelD;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAM9C;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAOzC;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;IAkBjE;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAoB7B;;OAEG;IACH,MAAM,CAAC,oBAAoB,CAAC,gBAAgB,GAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,CAAM;;;;;;;;;;;;;;;;;;;CAUhF;AAGD,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BvB,CAAC"}
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ToolSchemas = exports.ToolValidator = exports.RepositorySchemas = exports.CommonSchemas = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
/**
|
|
6
|
+
* Validador comum para todas as tools
|
|
7
|
+
* Fornece schemas e métodos de validação padronizados
|
|
8
|
+
*/
|
|
9
|
+
// Schemas comuns reutilizáveis
|
|
10
|
+
exports.CommonSchemas = {
|
|
11
|
+
// Identificadores
|
|
12
|
+
owner: zod_1.z.string().min(1, 'Owner is required').max(100, 'Owner too long'),
|
|
13
|
+
repo: zod_1.z.string().min(1, 'Repository name is required').max(100, 'Repository name too long'),
|
|
14
|
+
provider: zod_1.z.enum(['gitea', 'github', 'both']).optional(),
|
|
15
|
+
// Paginação
|
|
16
|
+
page: zod_1.z.number().min(1, 'Page must be at least 1').max(1000, 'Page too high').optional(),
|
|
17
|
+
limit: zod_1.z.number().min(1, 'Limit must be at least 1').max(100, 'Limit cannot exceed 100').optional(),
|
|
18
|
+
// Strings opcionais com limites
|
|
19
|
+
shortString: zod_1.z.string().max(255, 'String too long').optional(),
|
|
20
|
+
mediumString: zod_1.z.string().max(1000, 'String too long').optional(),
|
|
21
|
+
longString: zod_1.z.string().max(10000, 'String too long').optional(),
|
|
22
|
+
// Identificadores específicos
|
|
23
|
+
branch: zod_1.z.string().min(1, 'Branch name is required').max(255, 'Branch name too long').optional(),
|
|
24
|
+
tag: zod_1.z.string().min(1, 'Tag name is required').max(255, 'Tag name too long').optional(),
|
|
25
|
+
sha: zod_1.z.string().regex(/^[a-f0-9]{7,40}$/i, 'Invalid SHA format').optional(),
|
|
26
|
+
// Paths e URLs
|
|
27
|
+
filePath: zod_1.z.string().min(1, 'File path is required').max(1000, 'File path too long').optional(),
|
|
28
|
+
url: zod_1.z.string().url('Invalid URL format').optional(),
|
|
29
|
+
// Estados
|
|
30
|
+
issueState: zod_1.z.enum(['open', 'closed', 'all']).optional(),
|
|
31
|
+
prState: zod_1.z.enum(['open', 'closed', 'merged', 'all']).optional(),
|
|
32
|
+
// Arrays
|
|
33
|
+
stringArray: zod_1.z.array(zod_1.z.string().max(255)).max(50, 'Too many items').optional(),
|
|
34
|
+
// Booleanos
|
|
35
|
+
boolean: zod_1.z.boolean().optional(),
|
|
36
|
+
// Números
|
|
37
|
+
positiveNumber: zod_1.z.number().positive('Must be positive').optional(),
|
|
38
|
+
issueNumber: zod_1.z.number().min(1, 'Issue number must be positive').max(999999, 'Issue number too high').optional(),
|
|
39
|
+
// Enums específicos
|
|
40
|
+
mergeMethod: zod_1.z.enum(['merge', 'rebase', 'squash']).optional(),
|
|
41
|
+
syncDirection: zod_1.z.enum(['one-way', 'two-way']).optional(),
|
|
42
|
+
syncStrategy: zod_1.z.enum(['source-wins', 'timestamp', 'skip-conflicts']).optional()
|
|
43
|
+
};
|
|
44
|
+
// Schemas para repositórios
|
|
45
|
+
exports.RepositorySchemas = {
|
|
46
|
+
source: zod_1.z.object({
|
|
47
|
+
provider: zod_1.z.enum(['gitea', 'github']),
|
|
48
|
+
owner: exports.CommonSchemas.owner,
|
|
49
|
+
repo: exports.CommonSchemas.repo
|
|
50
|
+
}).optional(),
|
|
51
|
+
target: zod_1.z.object({
|
|
52
|
+
provider: zod_1.z.enum(['gitea', 'github']),
|
|
53
|
+
owner: exports.CommonSchemas.owner,
|
|
54
|
+
repo: exports.CommonSchemas.repo
|
|
55
|
+
}).optional()
|
|
56
|
+
};
|
|
57
|
+
// Validações customizadas
|
|
58
|
+
class ToolValidator {
|
|
59
|
+
/**
|
|
60
|
+
* Valida se pelo menos um dos campos obrigatórios está presente
|
|
61
|
+
*/
|
|
62
|
+
static requireOneOf(data, fields, errorMessage) {
|
|
63
|
+
const hasRequired = fields.some(field => data[field] !== undefined && data[field] !== null && data[field] !== '');
|
|
64
|
+
if (!hasRequired) {
|
|
65
|
+
throw new Error(errorMessage || `At least one of the following fields is required: ${fields.join(', ')}`);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Valida se todos os campos de um grupo estão presentes ou ausentes
|
|
70
|
+
*/
|
|
71
|
+
static requireAllOrNone(data, fields, errorMessage) {
|
|
72
|
+
const presentFields = fields.filter(field => data[field] !== undefined && data[field] !== null && data[field] !== '');
|
|
73
|
+
if (presentFields.length > 0 && presentFields.length < fields.length) {
|
|
74
|
+
throw new Error(errorMessage || `All or none of these fields must be provided: ${fields.join(', ')}`);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Valida formato de versão semântica
|
|
79
|
+
*/
|
|
80
|
+
static validateSemVer(version) {
|
|
81
|
+
const semVerRegex = /^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/;
|
|
82
|
+
return semVerRegex.test(version);
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Valida nome de branch Git
|
|
86
|
+
*/
|
|
87
|
+
static validateBranchName(branch) {
|
|
88
|
+
// Regras básicas do Git para nomes de branch
|
|
89
|
+
const invalidPatterns = [
|
|
90
|
+
/^\./, // Não pode começar com ponto
|
|
91
|
+
/\.\./, // Não pode conter dois pontos consecutivos
|
|
92
|
+
/[\x00-\x1f\x7f]/, // Não pode conter caracteres de controle
|
|
93
|
+
/[\s~^:?*\[]/, // Não pode conter espaços ou caracteres especiais
|
|
94
|
+
/\/$/, // Não pode terminar com /
|
|
95
|
+
/\.lock$/, // Não pode terminar com .lock
|
|
96
|
+
/@\{/ // Não pode conter @{
|
|
97
|
+
];
|
|
98
|
+
return !invalidPatterns.some(pattern => pattern.test(branch)) && branch.length > 0 && branch.length <= 255;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Valida nome de arquivo/path
|
|
102
|
+
*/
|
|
103
|
+
static validateFilePath(path) {
|
|
104
|
+
// Não pode conter caracteres inválidos para sistemas de arquivo
|
|
105
|
+
const invalidChars = /[<>:"|?*\x00-\x1f]/;
|
|
106
|
+
return !invalidChars.test(path) && path.length > 0 && path.length <= 1000;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Sanitiza entrada de texto removendo caracteres perigosos
|
|
110
|
+
*/
|
|
111
|
+
static sanitizeText(text) {
|
|
112
|
+
return text
|
|
113
|
+
.replace(/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]/g, '') // Remove caracteres de controle
|
|
114
|
+
.replace(/[<>"'&]/g, '') // Remove caracteres HTML perigosos
|
|
115
|
+
.trim();
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Valida e sanitiza parâmetros de entrada de uma tool
|
|
119
|
+
*/
|
|
120
|
+
static validateAndSanitize(data, schema) {
|
|
121
|
+
try {
|
|
122
|
+
// Primeiro valida com Zod
|
|
123
|
+
const validated = schema.parse(data);
|
|
124
|
+
// Depois sanitiza strings se necessário
|
|
125
|
+
const sanitized = this.sanitizeObject(validated);
|
|
126
|
+
return sanitized;
|
|
127
|
+
}
|
|
128
|
+
catch (error) {
|
|
129
|
+
if (error instanceof zod_1.z.ZodError) {
|
|
130
|
+
const issues = error.issues.map(issue => `${issue.path.join('.')}: ${issue.message}`).join(', ');
|
|
131
|
+
throw new Error(`Validation failed: ${issues}`);
|
|
132
|
+
}
|
|
133
|
+
throw error;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Sanitiza recursivamente um objeto
|
|
138
|
+
*/
|
|
139
|
+
static sanitizeObject(obj) {
|
|
140
|
+
if (typeof obj === 'string') {
|
|
141
|
+
return this.sanitizeText(obj);
|
|
142
|
+
}
|
|
143
|
+
if (Array.isArray(obj)) {
|
|
144
|
+
return obj.map(item => this.sanitizeObject(item));
|
|
145
|
+
}
|
|
146
|
+
if (obj && typeof obj === 'object') {
|
|
147
|
+
const sanitized = {};
|
|
148
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
149
|
+
sanitized[key] = this.sanitizeObject(value);
|
|
150
|
+
}
|
|
151
|
+
return sanitized;
|
|
152
|
+
}
|
|
153
|
+
return obj;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Cria um schema base para tools com parâmetros comuns
|
|
157
|
+
*/
|
|
158
|
+
static createBaseToolSchema(additionalFields = {}) {
|
|
159
|
+
return zod_1.z.object({
|
|
160
|
+
owner: exports.CommonSchemas.owner,
|
|
161
|
+
repo: exports.CommonSchemas.repo,
|
|
162
|
+
provider: exports.CommonSchemas.provider,
|
|
163
|
+
page: exports.CommonSchemas.page,
|
|
164
|
+
limit: exports.CommonSchemas.limit,
|
|
165
|
+
...additionalFields
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
exports.ToolValidator = ToolValidator;
|
|
170
|
+
// Schemas pré-definidos para tools comuns
|
|
171
|
+
exports.ToolSchemas = {
|
|
172
|
+
// Schema básico para operações de repositório
|
|
173
|
+
repositoryOperation: ToolValidator.createBaseToolSchema(),
|
|
174
|
+
// Schema para operações com arquivos
|
|
175
|
+
fileOperation: ToolValidator.createBaseToolSchema({
|
|
176
|
+
path: exports.CommonSchemas.filePath,
|
|
177
|
+
content: exports.CommonSchemas.longString,
|
|
178
|
+
message: exports.CommonSchemas.mediumString,
|
|
179
|
+
branch: exports.CommonSchemas.branch,
|
|
180
|
+
sha: exports.CommonSchemas.sha
|
|
181
|
+
}),
|
|
182
|
+
// Schema para operações com issues
|
|
183
|
+
issueOperation: ToolValidator.createBaseToolSchema({
|
|
184
|
+
title: exports.CommonSchemas.mediumString,
|
|
185
|
+
body: exports.CommonSchemas.longString,
|
|
186
|
+
state: exports.CommonSchemas.issueState,
|
|
187
|
+
labels: exports.CommonSchemas.stringArray,
|
|
188
|
+
assignees: exports.CommonSchemas.stringArray,
|
|
189
|
+
issue_number: exports.CommonSchemas.issueNumber
|
|
190
|
+
}),
|
|
191
|
+
// Schema para operações com branches
|
|
192
|
+
branchOperation: ToolValidator.createBaseToolSchema({
|
|
193
|
+
branch: exports.CommonSchemas.branch,
|
|
194
|
+
from_branch: exports.CommonSchemas.branch,
|
|
195
|
+
branch_name: exports.CommonSchemas.branch
|
|
196
|
+
})
|
|
197
|
+
};
|
|
198
|
+
//# sourceMappingURL=validator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/tools/validator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Tool: version-control
|
|
4
|
+
*
|
|
5
|
+
* DESCRIÇÃO:
|
|
6
|
+
* Sistema completo de versionamento, backup e rastreio de alterações para projetos.
|
|
7
|
+
* Gerencia versões semânticas, cria backups automáticos e rastreia mudanças ao longo do tempo.
|
|
8
|
+
*
|
|
9
|
+
* OBJETIVOS:
|
|
10
|
+
* - Versionamento semântico automático (MAJOR.MINOR.PATCH)
|
|
11
|
+
* - Backup automático com snapshots incrementais
|
|
12
|
+
* - Rastreio de alterações com histórico detalhado
|
|
13
|
+
* - Rollback para versões anteriores
|
|
14
|
+
* - Análise de mudanças entre versões
|
|
15
|
+
*
|
|
16
|
+
* LIMITAÇÕES:
|
|
17
|
+
* - Backup baseado em API REST (não histórico Git completo)
|
|
18
|
+
* - Snapshots incrementais dependem de storage disponível
|
|
19
|
+
* - Rollback requer reaplicação manual de mudanças
|
|
20
|
+
*
|
|
21
|
+
* DICAS (solo):
|
|
22
|
+
* - Use para manter histórico de versões estáveis
|
|
23
|
+
* - Configure backup automático para mudanças críticas
|
|
24
|
+
* - Documente mudanças significativas em cada versão
|
|
25
|
+
* - Teste rollback em ambiente de desenvolvimento
|
|
26
|
+
*/
|
|
27
|
+
declare const VersionControlInputSchema: z.ZodObject<{
|
|
28
|
+
action: z.ZodEnum<["version", "backup", "track", "rollback", "history", "analyze", "semantic-version", "changelog", "auto-tag", "release-notes"]>;
|
|
29
|
+
project: z.ZodOptional<z.ZodString>;
|
|
30
|
+
owner: z.ZodOptional<z.ZodString>;
|
|
31
|
+
repo: z.ZodOptional<z.ZodString>;
|
|
32
|
+
version: z.ZodOptional<z.ZodString>;
|
|
33
|
+
description: z.ZodOptional<z.ZodString>;
|
|
34
|
+
auto_backup: z.ZodOptional<z.ZodBoolean>;
|
|
35
|
+
backup_retention: z.ZodOptional<z.ZodNumber>;
|
|
36
|
+
include_files: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
37
|
+
exclude_patterns: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
38
|
+
dry_run: z.ZodOptional<z.ZodBoolean>;
|
|
39
|
+
provider: z.ZodOptional<z.ZodEnum<["gitea", "github", "both"]>>;
|
|
40
|
+
tag_name: z.ZodOptional<z.ZodString>;
|
|
41
|
+
branch: z.ZodOptional<z.ZodString>;
|
|
42
|
+
version_type: z.ZodOptional<z.ZodEnum<["major", "minor", "patch", "prerelease"]>>;
|
|
43
|
+
conventional_commits: z.ZodOptional<z.ZodBoolean>;
|
|
44
|
+
generate_changelog: z.ZodOptional<z.ZodBoolean>;
|
|
45
|
+
auto_tag: z.ZodOptional<z.ZodBoolean>;
|
|
46
|
+
release_notes: z.ZodOptional<z.ZodString>;
|
|
47
|
+
breaking_changes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
48
|
+
features: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
49
|
+
fixes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
50
|
+
format: z.ZodOptional<z.ZodEnum<["markdown", "json", "text"]>>;
|
|
51
|
+
}, "strip", z.ZodTypeAny, {
|
|
52
|
+
action: "version" | "backup" | "track" | "rollback" | "history" | "analyze" | "semantic-version" | "changelog" | "auto-tag" | "release-notes";
|
|
53
|
+
provider?: "gitea" | "github" | "both" | undefined;
|
|
54
|
+
description?: string | undefined;
|
|
55
|
+
owner?: string | undefined;
|
|
56
|
+
tag_name?: string | undefined;
|
|
57
|
+
repo?: string | undefined;
|
|
58
|
+
branch?: string | undefined;
|
|
59
|
+
dry_run?: boolean | undefined;
|
|
60
|
+
version?: string | undefined;
|
|
61
|
+
project?: string | undefined;
|
|
62
|
+
auto_backup?: boolean | undefined;
|
|
63
|
+
backup_retention?: number | undefined;
|
|
64
|
+
include_files?: string[] | undefined;
|
|
65
|
+
exclude_patterns?: string[] | undefined;
|
|
66
|
+
version_type?: "prerelease" | "patch" | "major" | "minor" | undefined;
|
|
67
|
+
conventional_commits?: boolean | undefined;
|
|
68
|
+
generate_changelog?: boolean | undefined;
|
|
69
|
+
auto_tag?: boolean | undefined;
|
|
70
|
+
release_notes?: string | undefined;
|
|
71
|
+
breaking_changes?: string[] | undefined;
|
|
72
|
+
features?: string[] | undefined;
|
|
73
|
+
fixes?: string[] | undefined;
|
|
74
|
+
format?: "json" | "markdown" | "text" | undefined;
|
|
75
|
+
}, {
|
|
76
|
+
action: "version" | "backup" | "track" | "rollback" | "history" | "analyze" | "semantic-version" | "changelog" | "auto-tag" | "release-notes";
|
|
77
|
+
provider?: "gitea" | "github" | "both" | undefined;
|
|
78
|
+
description?: string | undefined;
|
|
79
|
+
owner?: string | undefined;
|
|
80
|
+
tag_name?: string | undefined;
|
|
81
|
+
repo?: string | undefined;
|
|
82
|
+
branch?: string | undefined;
|
|
83
|
+
dry_run?: boolean | undefined;
|
|
84
|
+
version?: string | undefined;
|
|
85
|
+
project?: string | undefined;
|
|
86
|
+
auto_backup?: boolean | undefined;
|
|
87
|
+
backup_retention?: number | undefined;
|
|
88
|
+
include_files?: string[] | undefined;
|
|
89
|
+
exclude_patterns?: string[] | undefined;
|
|
90
|
+
version_type?: "prerelease" | "patch" | "major" | "minor" | undefined;
|
|
91
|
+
conventional_commits?: boolean | undefined;
|
|
92
|
+
generate_changelog?: boolean | undefined;
|
|
93
|
+
auto_tag?: boolean | undefined;
|
|
94
|
+
release_notes?: string | undefined;
|
|
95
|
+
breaking_changes?: string[] | undefined;
|
|
96
|
+
features?: string[] | undefined;
|
|
97
|
+
fixes?: string[] | undefined;
|
|
98
|
+
format?: "json" | "markdown" | "text" | undefined;
|
|
99
|
+
}>;
|
|
100
|
+
export type VersionControlInput = z.infer<typeof VersionControlInputSchema>;
|
|
101
|
+
declare const VersionControlResultSchema: z.ZodObject<{
|
|
102
|
+
success: z.ZodBoolean;
|
|
103
|
+
action: z.ZodString;
|
|
104
|
+
message: z.ZodString;
|
|
105
|
+
data: z.ZodOptional<z.ZodAny>;
|
|
106
|
+
error: z.ZodOptional<z.ZodString>;
|
|
107
|
+
}, "strip", z.ZodTypeAny, {
|
|
108
|
+
message: string;
|
|
109
|
+
action: string;
|
|
110
|
+
success: boolean;
|
|
111
|
+
error?: string | undefined;
|
|
112
|
+
data?: any;
|
|
113
|
+
}, {
|
|
114
|
+
message: string;
|
|
115
|
+
action: string;
|
|
116
|
+
success: boolean;
|
|
117
|
+
error?: string | undefined;
|
|
118
|
+
data?: any;
|
|
119
|
+
}>;
|
|
120
|
+
export type VersionControlResult = z.infer<typeof VersionControlResultSchema>;
|
|
121
|
+
export declare const versionControlTool: {
|
|
122
|
+
name: string;
|
|
123
|
+
description: string;
|
|
124
|
+
inputSchema: {
|
|
125
|
+
type: string;
|
|
126
|
+
properties: {
|
|
127
|
+
action: {
|
|
128
|
+
type: string;
|
|
129
|
+
enum: string[];
|
|
130
|
+
description: string;
|
|
131
|
+
};
|
|
132
|
+
project: {
|
|
133
|
+
type: string;
|
|
134
|
+
description: string;
|
|
135
|
+
};
|
|
136
|
+
version: {
|
|
137
|
+
type: string;
|
|
138
|
+
description: string;
|
|
139
|
+
};
|
|
140
|
+
description: {
|
|
141
|
+
type: string;
|
|
142
|
+
description: string;
|
|
143
|
+
};
|
|
144
|
+
auto_backup: {
|
|
145
|
+
type: string;
|
|
146
|
+
description: string;
|
|
147
|
+
};
|
|
148
|
+
backup_retention: {
|
|
149
|
+
type: string;
|
|
150
|
+
description: string;
|
|
151
|
+
};
|
|
152
|
+
include_files: {
|
|
153
|
+
type: string;
|
|
154
|
+
items: {
|
|
155
|
+
type: string;
|
|
156
|
+
};
|
|
157
|
+
description: string;
|
|
158
|
+
};
|
|
159
|
+
exclude_patterns: {
|
|
160
|
+
type: string;
|
|
161
|
+
items: {
|
|
162
|
+
type: string;
|
|
163
|
+
};
|
|
164
|
+
description: string;
|
|
165
|
+
};
|
|
166
|
+
dry_run: {
|
|
167
|
+
type: string;
|
|
168
|
+
description: string;
|
|
169
|
+
};
|
|
170
|
+
version_type: {
|
|
171
|
+
type: string;
|
|
172
|
+
enum: string[];
|
|
173
|
+
description: string;
|
|
174
|
+
};
|
|
175
|
+
conventional_commits: {
|
|
176
|
+
type: string;
|
|
177
|
+
description: string;
|
|
178
|
+
};
|
|
179
|
+
generate_changelog: {
|
|
180
|
+
type: string;
|
|
181
|
+
description: string;
|
|
182
|
+
};
|
|
183
|
+
auto_tag: {
|
|
184
|
+
type: string;
|
|
185
|
+
description: string;
|
|
186
|
+
};
|
|
187
|
+
release_notes: {
|
|
188
|
+
type: string;
|
|
189
|
+
description: string;
|
|
190
|
+
};
|
|
191
|
+
breaking_changes: {
|
|
192
|
+
type: string;
|
|
193
|
+
items: {
|
|
194
|
+
type: string;
|
|
195
|
+
};
|
|
196
|
+
description: string;
|
|
197
|
+
};
|
|
198
|
+
features: {
|
|
199
|
+
type: string;
|
|
200
|
+
items: {
|
|
201
|
+
type: string;
|
|
202
|
+
};
|
|
203
|
+
description: string;
|
|
204
|
+
};
|
|
205
|
+
fixes: {
|
|
206
|
+
type: string;
|
|
207
|
+
items: {
|
|
208
|
+
type: string;
|
|
209
|
+
};
|
|
210
|
+
description: string;
|
|
211
|
+
};
|
|
212
|
+
format: {
|
|
213
|
+
type: string;
|
|
214
|
+
enum: string[];
|
|
215
|
+
description: string;
|
|
216
|
+
};
|
|
217
|
+
};
|
|
218
|
+
required: string[];
|
|
219
|
+
};
|
|
220
|
+
handler(input: VersionControlInput): Promise<VersionControlResult>;
|
|
221
|
+
createVersion(params: VersionControlInput): Promise<VersionControlResult>;
|
|
222
|
+
createBackup(params: VersionControlInput): Promise<VersionControlResult>;
|
|
223
|
+
trackChanges(params: VersionControlInput): Promise<VersionControlResult>;
|
|
224
|
+
performRollback(params: VersionControlInput): Promise<VersionControlResult>;
|
|
225
|
+
getHistory(params: VersionControlInput): Promise<VersionControlResult>;
|
|
226
|
+
analyzeChanges(params: VersionControlInput): Promise<VersionControlResult>;
|
|
227
|
+
generateNextVersion(): string;
|
|
228
|
+
getMostActiveAuthor(commits: any[]): string;
|
|
229
|
+
/**
|
|
230
|
+
* Cria versão semântica baseada em conventional commits
|
|
231
|
+
*/
|
|
232
|
+
createSemanticVersion(params: VersionControlInput): Promise<VersionControlResult>;
|
|
233
|
+
/**
|
|
234
|
+
* Gera changelog automático
|
|
235
|
+
*/
|
|
236
|
+
generateChangelog(params: VersionControlInput): Promise<VersionControlResult>;
|
|
237
|
+
/**
|
|
238
|
+
* Cria tag automática baseada em commits convencionais
|
|
239
|
+
*/
|
|
240
|
+
createAutoTag(params: VersionControlInput): Promise<VersionControlResult>;
|
|
241
|
+
/**
|
|
242
|
+
* Gera release notes inteligentes
|
|
243
|
+
*/
|
|
244
|
+
generateReleaseNotes(params: VersionControlInput): Promise<VersionControlResult>;
|
|
245
|
+
};
|
|
246
|
+
export {};
|
|
247
|
+
//# sourceMappingURL=version-control.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version-control.d.ts","sourceRoot":"","sources":["../../src/tools/version-control.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,QAAA,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0B7B,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,QAAA,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;EAM9B,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAgCR,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;0BAsC5C,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;yBAsDpD,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;yBAqCnD,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;4BAoChD,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;uBA8BxD,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;2BAuC/C,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;2BAoDzD,MAAM;iCASA,GAAG,EAAE,GAAG,MAAM;IAa3C;;OAEG;kCACiC,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IA+CvF;;OAEG;8BAC6B,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAwCnF;;OAEG;0BACyB,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAyB/E;;OAEG;iCACgC,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;CAsDvF,CAAC"}
|