@andrebuzeli/git-mcp 5.5.1 → 5.5.2
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 +25 -0
- package/dist/config.d.ts +5 -131
- package/dist/config.js +28 -430
- package/dist/index.d.ts +1 -21
- package/dist/index.js +66 -144
- package/dist/providers/giteaProvider.d.ts +3 -0
- package/dist/providers/giteaProvider.js +12 -0
- package/dist/providers/githubProvider.d.ts +2 -0
- package/dist/providers/githubProvider.js +7 -0
- package/dist/providers/providerManager.d.ts +11 -0
- package/dist/providers/providerManager.js +48 -0
- package/dist/server.d.ts +6 -40
- package/dist/server.js +30 -700
- package/dist/tools/gitAnalytics.d.ts +29 -0
- package/dist/tools/gitAnalytics.js +72 -0
- package/dist/tools/gitArchive.d.ts +6 -0
- package/dist/tools/gitArchive.js +27 -0
- package/dist/tools/gitBackup.d.ts +10 -0
- package/dist/tools/gitBackup.js +44 -0
- package/dist/tools/gitBranches.d.ts +72 -0
- package/dist/tools/gitBranches.js +97 -0
- package/dist/tools/gitConfig.d.ts +34 -0
- package/dist/tools/gitConfig.js +73 -0
- package/dist/tools/gitFiles.d.ts +24 -0
- package/dist/tools/gitFiles.js +53 -0
- package/dist/tools/gitIssues.d.ts +21 -0
- package/dist/tools/gitIssues.js +193 -0
- package/dist/tools/gitMonitor.d.ts +51 -0
- package/dist/tools/gitMonitor.js +102 -0
- package/dist/tools/gitPackages.d.ts +6 -0
- package/dist/tools/gitPackages.js +28 -0
- package/dist/tools/gitPulls.d.ts +74 -0
- package/dist/tools/gitPulls.js +190 -0
- package/dist/tools/gitRelease.d.ts +34 -0
- package/dist/tools/gitRelease.js +99 -0
- package/dist/tools/gitRemote.d.ts +51 -0
- package/dist/tools/gitRemote.js +68 -0
- package/dist/tools/gitReset.d.ts +34 -0
- package/dist/tools/gitReset.js +64 -0
- package/dist/tools/gitStash.d.ts +41 -0
- package/dist/tools/gitStash.js +67 -0
- package/dist/tools/gitSync.d.ts +25 -0
- package/dist/tools/gitSync.js +51 -0
- package/dist/tools/gitTags.d.ts +30 -0
- package/dist/tools/gitTags.js +69 -0
- package/dist/tools/gitWorkflow.d.ts +69 -0
- package/dist/tools/gitWorkflow.js +129 -0
- package/dist/types.d.ts +10 -0
- package/dist/types.js +2 -0
- package/dist/utils/errors.d.ts +13 -0
- package/dist/utils/errors.js +22 -0
- package/dist/utils/safetyController.d.ts +1 -0
- package/dist/utils/safetyController.js +15 -0
- package/package.json +7 -2
- package/dist/config.d.ts.map +0 -1
- package/dist/config.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/providers/base-provider.d.ts +0 -66
- package/dist/providers/base-provider.d.ts.map +0 -1
- package/dist/providers/base-provider.js +0 -65
- package/dist/providers/base-provider.js.map +0 -1
- package/dist/providers/gitea-provider.d.ts +0 -79
- package/dist/providers/gitea-provider.d.ts.map +0 -1
- package/dist/providers/gitea-provider.js +0 -576
- package/dist/providers/gitea-provider.js.map +0 -1
- package/dist/providers/github-provider.d.ts +0 -74
- package/dist/providers/github-provider.d.ts.map +0 -1
- package/dist/providers/github-provider.js +0 -683
- package/dist/providers/github-provider.js.map +0 -1
- package/dist/providers/index.d.ts +0 -13
- package/dist/providers/index.d.ts.map +0 -1
- package/dist/providers/index.js +0 -35
- package/dist/providers/index.js.map +0 -1
- package/dist/providers/provider-factory.d.ts +0 -49
- package/dist/providers/provider-factory.d.ts.map +0 -1
- package/dist/providers/provider-factory.js +0 -193
- package/dist/providers/provider-factory.js.map +0 -1
- package/dist/providers/provider-operation-handler.d.ts +0 -115
- package/dist/providers/provider-operation-handler.d.ts.map +0 -1
- package/dist/providers/provider-operation-handler.js +0 -449
- package/dist/providers/provider-operation-handler.js.map +0 -1
- package/dist/providers/types.d.ts +0 -200
- package/dist/providers/types.d.ts.map +0 -1
- package/dist/providers/types.js +0 -8
- package/dist/providers/types.js.map +0 -1
- package/dist/server.d.ts.map +0 -1
- package/dist/server.js.map +0 -1
- package/dist/tools/git-analytics.d.ts +0 -237
- package/dist/tools/git-analytics.d.ts.map +0 -1
- package/dist/tools/git-analytics.js +0 -819
- package/dist/tools/git-analytics.js.map +0 -1
- package/dist/tools/git-archive.d.ts +0 -113
- package/dist/tools/git-archive.d.ts.map +0 -1
- package/dist/tools/git-archive.js +0 -466
- package/dist/tools/git-archive.js.map +0 -1
- package/dist/tools/git-auto-monitor.d.ts +0 -180
- package/dist/tools/git-auto-monitor.d.ts.map +0 -1
- package/dist/tools/git-auto-monitor.js +0 -522
- package/dist/tools/git-auto-monitor.js.map +0 -1
- package/dist/tools/git-backup.d.ts +0 -105
- package/dist/tools/git-backup.d.ts.map +0 -1
- package/dist/tools/git-backup.js +0 -414
- package/dist/tools/git-backup.js.map +0 -1
- package/dist/tools/git-branches.d.ts +0 -183
- package/dist/tools/git-branches.d.ts.map +0 -1
- package/dist/tools/git-branches.js +0 -498
- package/dist/tools/git-branches.js.map +0 -1
- package/dist/tools/git-config.d.ts +0 -119
- package/dist/tools/git-config.d.ts.map +0 -1
- package/dist/tools/git-config.js +0 -449
- package/dist/tools/git-config.js.map +0 -1
- package/dist/tools/git-files.d.ts +0 -150
- package/dist/tools/git-files.d.ts.map +0 -1
- package/dist/tools/git-files.js +0 -527
- package/dist/tools/git-files.js.map +0 -1
- package/dist/tools/git-history.d.ts +0 -253
- package/dist/tools/git-history.d.ts.map +0 -1
- package/dist/tools/git-history.js +0 -824
- package/dist/tools/git-history.js.map +0 -1
- package/dist/tools/git-issues.d.ts +0 -164
- package/dist/tools/git-issues.d.ts.map +0 -1
- package/dist/tools/git-issues.js +0 -340
- package/dist/tools/git-issues.js.map +0 -1
- package/dist/tools/git-monitor.d.ts +0 -154
- package/dist/tools/git-monitor.d.ts.map +0 -1
- package/dist/tools/git-monitor.js +0 -531
- package/dist/tools/git-monitor.js.map +0 -1
- package/dist/tools/git-packages.d.ts +0 -157
- package/dist/tools/git-packages.d.ts.map +0 -1
- package/dist/tools/git-packages.js +0 -534
- package/dist/tools/git-packages.js.map +0 -1
- package/dist/tools/git-pulls.d.ts +0 -180
- package/dist/tools/git-pulls.d.ts.map +0 -1
- package/dist/tools/git-pulls.js +0 -369
- package/dist/tools/git-pulls.js.map +0 -1
- package/dist/tools/git-release.d.ts +0 -161
- package/dist/tools/git-release.d.ts.map +0 -1
- package/dist/tools/git-release.js +0 -466
- package/dist/tools/git-release.js.map +0 -1
- package/dist/tools/git-remote.d.ts +0 -128
- package/dist/tools/git-remote.d.ts.map +0 -1
- package/dist/tools/git-remote.js +0 -542
- package/dist/tools/git-remote.js.map +0 -1
- package/dist/tools/git-reset.d.ts +0 -120
- package/dist/tools/git-reset.d.ts.map +0 -1
- package/dist/tools/git-reset.js +0 -479
- package/dist/tools/git-reset.js.map +0 -1
- package/dist/tools/git-stash.d.ts +0 -124
- package/dist/tools/git-stash.d.ts.map +0 -1
- package/dist/tools/git-stash.js +0 -506
- package/dist/tools/git-stash.js.map +0 -1
- package/dist/tools/git-sync.d.ts +0 -154
- package/dist/tools/git-sync.d.ts.map +0 -1
- package/dist/tools/git-sync.js +0 -479
- package/dist/tools/git-sync.js.map +0 -1
- package/dist/tools/git-tags.d.ts +0 -136
- package/dist/tools/git-tags.d.ts.map +0 -1
- package/dist/tools/git-tags.js +0 -461
- package/dist/tools/git-tags.js.map +0 -1
- package/dist/tools/git-update.d.ts +0 -224
- package/dist/tools/git-update.d.ts.map +0 -1
- package/dist/tools/git-update.js +0 -948
- package/dist/tools/git-update.js.map +0 -1
- package/dist/tools/git-workflow.d.ts +0 -189
- package/dist/tools/git-workflow.d.ts.map +0 -1
- package/dist/tools/git-workflow.js +0 -542
- package/dist/tools/git-workflow.js.map +0 -1
- package/dist/utils/credential-manager.d.ts +0 -119
- package/dist/utils/credential-manager.d.ts.map +0 -1
- package/dist/utils/credential-manager.js +0 -450
- package/dist/utils/credential-manager.js.map +0 -1
- package/dist/utils/data-merger.d.ts +0 -49
- package/dist/utils/data-merger.d.ts.map +0 -1
- package/dist/utils/data-merger.js +0 -233
- package/dist/utils/data-merger.js.map +0 -1
- package/dist/utils/git-command-executor.d.ts +0 -330
- package/dist/utils/git-command-executor.d.ts.map +0 -1
- package/dist/utils/git-command-executor.js +0 -901
- package/dist/utils/git-command-executor.js.map +0 -1
- package/dist/utils/logger.d.ts +0 -143
- package/dist/utils/logger.d.ts.map +0 -1
- package/dist/utils/logger.js +0 -473
- package/dist/utils/logger.js.map +0 -1
- package/dist/utils/operation-error-handler.d.ts +0 -97
- package/dist/utils/operation-error-handler.d.ts.map +0 -1
- package/dist/utils/operation-error-handler.js +0 -367
- package/dist/utils/operation-error-handler.js.map +0 -1
- package/dist/utils/parameter-validator.d.ts +0 -49
- package/dist/utils/parameter-validator.d.ts.map +0 -1
- package/dist/utils/parameter-validator.js +0 -647
- package/dist/utils/parameter-validator.js.map +0 -1
- package/dist/utils/repository-checker.d.ts +0 -46
- package/dist/utils/repository-checker.d.ts.map +0 -1
- package/dist/utils/repository-checker.js +0 -151
- package/dist/utils/repository-checker.js.map +0 -1
- package/dist/utils/repository-detector.d.ts +0 -128
- package/dist/utils/repository-detector.d.ts.map +0 -1
- package/dist/utils/repository-detector.js +0 -422
- package/dist/utils/repository-detector.js.map +0 -1
- package/dist/utils/repository-sync.d.ts +0 -67
- package/dist/utils/repository-sync.d.ts.map +0 -1
- package/dist/utils/repository-sync.js +0 -344
- package/dist/utils/repository-sync.js.map +0 -1
- package/dist/utils/response-formatter.d.ts +0 -146
- package/dist/utils/response-formatter.d.ts.map +0 -1
- package/dist/utils/response-formatter.js +0 -378
- package/dist/utils/response-formatter.js.map +0 -1
- package/dist/utils/retry.d.ts +0 -12
- package/dist/utils/retry.d.ts.map +0 -1
- package/dist/utils/retry.js +0 -28
- package/dist/utils/retry.js.map +0 -1
- package/dist/utils/safety-warnings.d.ts +0 -56
- package/dist/utils/safety-warnings.d.ts.map +0 -1
- package/dist/utils/safety-warnings.js +0 -330
- package/dist/utils/safety-warnings.js.map +0 -1
- package/dist/utils/terminal-controller.d.ts +0 -79
- package/dist/utils/terminal-controller.d.ts.map +0 -1
- package/dist/utils/terminal-controller.js +0 -291
- package/dist/utils/terminal-controller.js.map +0 -1
- package/dist/utils/user-friendly-formatter.d.ts +0 -45
- package/dist/utils/user-friendly-formatter.d.ts.map +0 -1
- package/dist/utils/user-friendly-formatter.js +0 -175
- package/dist/utils/user-friendly-formatter.js.map +0 -1
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Credential Manager
|
|
3
|
-
*
|
|
4
|
-
* Secure credential handling for Git MCP server with support for
|
|
5
|
-
* environment variables, validation, and provider-specific credentials.
|
|
6
|
-
*/
|
|
7
|
-
export interface GitHubCredentials {
|
|
8
|
-
token: string;
|
|
9
|
-
username: string;
|
|
10
|
-
}
|
|
11
|
-
export interface GiteaCredentials {
|
|
12
|
-
url: string;
|
|
13
|
-
token: string;
|
|
14
|
-
username: string;
|
|
15
|
-
}
|
|
16
|
-
export interface CredentialValidationResult {
|
|
17
|
-
valid: boolean;
|
|
18
|
-
error?: string;
|
|
19
|
-
suggestions?: string[];
|
|
20
|
-
}
|
|
21
|
-
export interface ProviderCredentials {
|
|
22
|
-
github?: GitHubCredentials;
|
|
23
|
-
gitea?: GiteaCredentials;
|
|
24
|
-
}
|
|
25
|
-
export declare class CredentialManager {
|
|
26
|
-
private credentials;
|
|
27
|
-
private validationCache;
|
|
28
|
-
private cacheTimeout;
|
|
29
|
-
constructor();
|
|
30
|
-
/**
|
|
31
|
-
* Load credentials from environment variables
|
|
32
|
-
*/
|
|
33
|
-
loadCredentials(): void;
|
|
34
|
-
/**
|
|
35
|
-
* Get GitHub credentials
|
|
36
|
-
*/
|
|
37
|
-
getGitHubCredentials(): GitHubCredentials | undefined;
|
|
38
|
-
/**
|
|
39
|
-
* Get Gitea credentials
|
|
40
|
-
*/
|
|
41
|
-
getGiteaCredentials(): GiteaCredentials | undefined;
|
|
42
|
-
/**
|
|
43
|
-
* Get credentials for specific provider
|
|
44
|
-
*/
|
|
45
|
-
getProviderCredentials(provider: 'github' | 'gitea'): GitHubCredentials | GiteaCredentials | undefined;
|
|
46
|
-
/**
|
|
47
|
-
* Check if provider is configured
|
|
48
|
-
*/
|
|
49
|
-
isProviderConfigured(provider: 'github' | 'gitea'): boolean;
|
|
50
|
-
/**
|
|
51
|
-
* Get list of configured providers
|
|
52
|
-
*/
|
|
53
|
-
getConfiguredProviders(): ('github' | 'gitea')[];
|
|
54
|
-
/**
|
|
55
|
-
* Validate provider credentials
|
|
56
|
-
*/
|
|
57
|
-
validateProviderCredentials(provider: 'github' | 'gitea'): CredentialValidationResult;
|
|
58
|
-
/**
|
|
59
|
-
* Validate GitHub credentials
|
|
60
|
-
*/
|
|
61
|
-
private validateGitHubCredentials;
|
|
62
|
-
/**
|
|
63
|
-
* Validate Gitea credentials
|
|
64
|
-
*/
|
|
65
|
-
private validateGiteaCredentials;
|
|
66
|
-
/**
|
|
67
|
-
* Validate all configured credentials
|
|
68
|
-
*/
|
|
69
|
-
validateAllCredentials(): Record<string, CredentialValidationResult>;
|
|
70
|
-
/**
|
|
71
|
-
* Get credential configuration status
|
|
72
|
-
*/
|
|
73
|
-
getCredentialStatus(): {
|
|
74
|
-
configured: string[];
|
|
75
|
-
missing: string[];
|
|
76
|
-
valid: string[];
|
|
77
|
-
invalid: string[];
|
|
78
|
-
errors: Record<string, string>;
|
|
79
|
-
};
|
|
80
|
-
/**
|
|
81
|
-
* Get configuration guide for missing providers
|
|
82
|
-
*/
|
|
83
|
-
getConfigurationGuide(providers?: ('github' | 'gitea')[]): Record<string, {
|
|
84
|
-
envVars: string[];
|
|
85
|
-
example: Record<string, string>;
|
|
86
|
-
instructions: string[];
|
|
87
|
-
}>;
|
|
88
|
-
/**
|
|
89
|
-
* Mask sensitive credential information for logging
|
|
90
|
-
*/
|
|
91
|
-
maskCredentials(credentials: any): any;
|
|
92
|
-
/**
|
|
93
|
-
* Mask token for safe logging
|
|
94
|
-
*/
|
|
95
|
-
private maskToken;
|
|
96
|
-
/**
|
|
97
|
-
* Clear validation cache
|
|
98
|
-
*/
|
|
99
|
-
clearValidationCache(): void;
|
|
100
|
-
/**
|
|
101
|
-
* Refresh credentials from environment
|
|
102
|
-
*/
|
|
103
|
-
refreshCredentials(): void;
|
|
104
|
-
/**
|
|
105
|
-
* Get credential summary for status reporting
|
|
106
|
-
*/
|
|
107
|
-
getCredentialSummary(): {
|
|
108
|
-
totalProviders: number;
|
|
109
|
-
configuredProviders: number;
|
|
110
|
-
validProviders: number;
|
|
111
|
-
providers: Record<string, {
|
|
112
|
-
configured: boolean;
|
|
113
|
-
valid: boolean;
|
|
114
|
-
error?: string;
|
|
115
|
-
}>;
|
|
116
|
-
};
|
|
117
|
-
}
|
|
118
|
-
export declare const credentialManager: CredentialManager;
|
|
119
|
-
//# sourceMappingURL=credential-manager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"credential-manager.d.ts","sourceRoot":"","sources":["../../src/utils/credential-manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,KAAK,CAAC,EAAE,gBAAgB,CAAC;CAC1B;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,eAAe,CAAqF;IAC5G,OAAO,CAAC,YAAY,CAAiB;;IAMrC;;OAEG;IACH,eAAe,IAAI,IAAI;IAuDvB;;OAEG;IACH,oBAAoB,IAAI,iBAAiB,GAAG,SAAS;IAIrD;;OAEG;IACH,mBAAmB,IAAI,gBAAgB,GAAG,SAAS;IAInD;;OAEG;IACH,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,SAAS;IAItG;;OAEG;IACH,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,GAAG,OAAO;IAI3D;;OAEG;IACH,sBAAsB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,EAAE;IAIhD;;OAEG;IACH,2BAA2B,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,GAAG,0BAA0B;IAsCrF;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAoEjC;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAgFhC;;OAEG;IACH,sBAAsB,IAAI,MAAM,CAAC,MAAM,EAAE,0BAA0B,CAAC;IAUpE;;OAEG;IACH,mBAAmB,IAAI;QACrB,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAChC;IAiCD;;OAEG;IACH,qBAAqB,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,GAAG,OAAO,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE;QACxE,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChC,YAAY,EAAE,MAAM,EAAE,CAAC;KACxB,CAAC;IA+CF;;OAEG;IACH,eAAe,CAAC,WAAW,EAAE,GAAG,GAAG,GAAG;IAsBtC;;OAEG;IACH,OAAO,CAAC,SAAS;IAYjB;;OAEG;IACH,oBAAoB,IAAI,IAAI;IAK5B;;OAEG;IACH,kBAAkB,IAAI,IAAI;IAM1B;;OAEG;IACH,oBAAoB,IAAI;QACtB,cAAc,EAAE,MAAM,CAAC;QACvB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE;YACxB,UAAU,EAAE,OAAO,CAAC;YACpB,KAAK,EAAE,OAAO,CAAC;YACf,KAAK,CAAC,EAAE,MAAM,CAAC;SAChB,CAAC,CAAC;KACJ;CA8BF;AAGD,eAAO,MAAM,iBAAiB,mBAA0B,CAAC"}
|
|
@@ -1,450 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Credential Manager
|
|
4
|
-
*
|
|
5
|
-
* Secure credential handling for Git MCP server with support for
|
|
6
|
-
* environment variables, validation, and provider-specific credentials.
|
|
7
|
-
*/
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.credentialManager = exports.CredentialManager = void 0;
|
|
10
|
-
const logger_js_1 = require("./logger.js");
|
|
11
|
-
class CredentialManager {
|
|
12
|
-
credentials = {};
|
|
13
|
-
validationCache = new Map();
|
|
14
|
-
cacheTimeout = 5 * 60 * 1000; // 5 minutes
|
|
15
|
-
constructor() {
|
|
16
|
-
this.loadCredentials();
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Load credentials from environment variables
|
|
20
|
-
*/
|
|
21
|
-
loadCredentials() {
|
|
22
|
-
logger_js_1.logger.debug('Loading credentials from environment variables', 'CREDENTIALS');
|
|
23
|
-
// Load GitHub credentials
|
|
24
|
-
const githubToken = process.env.GITHUB_TOKEN;
|
|
25
|
-
const githubUsername = process.env.GITHUB_USERNAME;
|
|
26
|
-
if (githubToken && githubUsername) {
|
|
27
|
-
this.credentials.github = {
|
|
28
|
-
token: githubToken,
|
|
29
|
-
username: githubUsername
|
|
30
|
-
};
|
|
31
|
-
logger_js_1.logger.info('GitHub credentials loaded', 'CREDENTIALS', {
|
|
32
|
-
username: githubUsername,
|
|
33
|
-
tokenLength: githubToken.length
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
else {
|
|
37
|
-
logger_js_1.logger.debug('GitHub credentials not found in environment', 'CREDENTIALS', {
|
|
38
|
-
hasToken: !!githubToken,
|
|
39
|
-
hasUsername: !!githubUsername
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
// Load Gitea credentials
|
|
43
|
-
const giteaUrl = process.env.GITEA_URL;
|
|
44
|
-
const giteaToken = process.env.GITEA_TOKEN;
|
|
45
|
-
const giteaUsername = process.env.GITEA_USERNAME;
|
|
46
|
-
if (giteaUrl && giteaToken && giteaUsername) {
|
|
47
|
-
this.credentials.gitea = {
|
|
48
|
-
url: giteaUrl,
|
|
49
|
-
token: giteaToken,
|
|
50
|
-
username: giteaUsername
|
|
51
|
-
};
|
|
52
|
-
logger_js_1.logger.info('Gitea credentials loaded', 'CREDENTIALS', {
|
|
53
|
-
url: giteaUrl,
|
|
54
|
-
username: giteaUsername,
|
|
55
|
-
tokenLength: giteaToken.length
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
else {
|
|
59
|
-
logger_js_1.logger.debug('Gitea credentials not found in environment', 'CREDENTIALS', {
|
|
60
|
-
hasUrl: !!giteaUrl,
|
|
61
|
-
hasToken: !!giteaToken,
|
|
62
|
-
hasUsername: !!giteaUsername
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
// Log overall credential status
|
|
66
|
-
const availableProviders = Object.keys(this.credentials);
|
|
67
|
-
logger_js_1.logger.configuration('loaded', {
|
|
68
|
-
availableProviders,
|
|
69
|
-
providerCount: availableProviders.length
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Get GitHub credentials
|
|
74
|
-
*/
|
|
75
|
-
getGitHubCredentials() {
|
|
76
|
-
return this.credentials.github;
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Get Gitea credentials
|
|
80
|
-
*/
|
|
81
|
-
getGiteaCredentials() {
|
|
82
|
-
return this.credentials.gitea;
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* Get credentials for specific provider
|
|
86
|
-
*/
|
|
87
|
-
getProviderCredentials(provider) {
|
|
88
|
-
return this.credentials[provider];
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Check if provider is configured
|
|
92
|
-
*/
|
|
93
|
-
isProviderConfigured(provider) {
|
|
94
|
-
return !!this.credentials[provider];
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* Get list of configured providers
|
|
98
|
-
*/
|
|
99
|
-
getConfiguredProviders() {
|
|
100
|
-
return Object.keys(this.credentials);
|
|
101
|
-
}
|
|
102
|
-
/**
|
|
103
|
-
* Validate provider credentials
|
|
104
|
-
*/
|
|
105
|
-
validateProviderCredentials(provider) {
|
|
106
|
-
const cacheKey = `validate_${provider}`;
|
|
107
|
-
// Check cache first
|
|
108
|
-
const cached = this.validationCache.get(cacheKey);
|
|
109
|
-
if (cached && Date.now() - cached.timestamp < this.cacheTimeout) {
|
|
110
|
-
return cached.result;
|
|
111
|
-
}
|
|
112
|
-
let result;
|
|
113
|
-
if (provider === 'github') {
|
|
114
|
-
result = this.validateGitHubCredentials();
|
|
115
|
-
}
|
|
116
|
-
else if (provider === 'gitea') {
|
|
117
|
-
result = this.validateGiteaCredentials();
|
|
118
|
-
}
|
|
119
|
-
else {
|
|
120
|
-
result = {
|
|
121
|
-
valid: false,
|
|
122
|
-
error: `Unknown provider: ${provider}`,
|
|
123
|
-
suggestions: ['Use "github" or "gitea" as provider']
|
|
124
|
-
};
|
|
125
|
-
}
|
|
126
|
-
// Cache result
|
|
127
|
-
this.validationCache.set(cacheKey, {
|
|
128
|
-
result,
|
|
129
|
-
timestamp: Date.now()
|
|
130
|
-
});
|
|
131
|
-
logger_js_1.logger.debug(`Credential validation for ${provider}`, 'CREDENTIALS', {
|
|
132
|
-
provider,
|
|
133
|
-
valid: result.valid,
|
|
134
|
-
error: result.error
|
|
135
|
-
});
|
|
136
|
-
return result;
|
|
137
|
-
}
|
|
138
|
-
/**
|
|
139
|
-
* Validate GitHub credentials
|
|
140
|
-
*/
|
|
141
|
-
validateGitHubCredentials() {
|
|
142
|
-
const creds = this.credentials.github;
|
|
143
|
-
if (!creds) {
|
|
144
|
-
return {
|
|
145
|
-
valid: false,
|
|
146
|
-
error: 'GitHub credentials not configured',
|
|
147
|
-
suggestions: [
|
|
148
|
-
'Set GITHUB_TOKEN environment variable',
|
|
149
|
-
'Set GITHUB_USERNAME environment variable',
|
|
150
|
-
'Ensure both variables are set correctly'
|
|
151
|
-
]
|
|
152
|
-
};
|
|
153
|
-
}
|
|
154
|
-
// Validate token format
|
|
155
|
-
if (!creds.token.startsWith('ghp_') && !creds.token.startsWith('github_pat_')) {
|
|
156
|
-
return {
|
|
157
|
-
valid: false,
|
|
158
|
-
error: 'Invalid GitHub token format',
|
|
159
|
-
suggestions: [
|
|
160
|
-
'GitHub personal access tokens should start with "ghp_" or "github_pat_"',
|
|
161
|
-
'Generate a new token at https://github.com/settings/tokens',
|
|
162
|
-
'Ensure the token has required permissions'
|
|
163
|
-
]
|
|
164
|
-
};
|
|
165
|
-
}
|
|
166
|
-
// Validate token length
|
|
167
|
-
if (creds.token.length < 20) {
|
|
168
|
-
return {
|
|
169
|
-
valid: false,
|
|
170
|
-
error: 'GitHub token appears to be too short',
|
|
171
|
-
suggestions: [
|
|
172
|
-
'Verify the complete token was copied',
|
|
173
|
-
'Generate a new token if the current one is incomplete'
|
|
174
|
-
]
|
|
175
|
-
};
|
|
176
|
-
}
|
|
177
|
-
// Validate username format
|
|
178
|
-
if (!creds.username || creds.username.trim().length === 0) {
|
|
179
|
-
return {
|
|
180
|
-
valid: false,
|
|
181
|
-
error: 'GitHub username is empty',
|
|
182
|
-
suggestions: [
|
|
183
|
-
'Set GITHUB_USERNAME environment variable',
|
|
184
|
-
'Use your GitHub username (not email)'
|
|
185
|
-
]
|
|
186
|
-
};
|
|
187
|
-
}
|
|
188
|
-
// Basic username validation
|
|
189
|
-
if (!/^[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?$/.test(creds.username)) {
|
|
190
|
-
return {
|
|
191
|
-
valid: false,
|
|
192
|
-
error: 'Invalid GitHub username format',
|
|
193
|
-
suggestions: [
|
|
194
|
-
'GitHub usernames can only contain alphanumeric characters and hyphens',
|
|
195
|
-
'Username cannot start or end with a hyphen',
|
|
196
|
-
'Verify your GitHub username is correct'
|
|
197
|
-
]
|
|
198
|
-
};
|
|
199
|
-
}
|
|
200
|
-
return { valid: true };
|
|
201
|
-
}
|
|
202
|
-
/**
|
|
203
|
-
* Validate Gitea credentials
|
|
204
|
-
*/
|
|
205
|
-
validateGiteaCredentials() {
|
|
206
|
-
const creds = this.credentials.gitea;
|
|
207
|
-
if (!creds) {
|
|
208
|
-
return {
|
|
209
|
-
valid: false,
|
|
210
|
-
error: 'Gitea credentials not configured',
|
|
211
|
-
suggestions: [
|
|
212
|
-
'Set GITEA_URL environment variable',
|
|
213
|
-
'Set GITEA_TOKEN environment variable',
|
|
214
|
-
'Set GITEA_USERNAME environment variable',
|
|
215
|
-
'Ensure all three variables are set correctly'
|
|
216
|
-
]
|
|
217
|
-
};
|
|
218
|
-
}
|
|
219
|
-
// Validate URL format
|
|
220
|
-
try {
|
|
221
|
-
const url = new URL(creds.url);
|
|
222
|
-
if (!['http:', 'https:'].includes(url.protocol)) {
|
|
223
|
-
return {
|
|
224
|
-
valid: false,
|
|
225
|
-
error: 'Gitea URL must use HTTP or HTTPS protocol',
|
|
226
|
-
suggestions: [
|
|
227
|
-
'Use https:// or http:// in GITEA_URL',
|
|
228
|
-
'Example: https://gitea.example.com'
|
|
229
|
-
]
|
|
230
|
-
};
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
catch {
|
|
234
|
-
return {
|
|
235
|
-
valid: false,
|
|
236
|
-
error: 'Invalid Gitea URL format',
|
|
237
|
-
suggestions: [
|
|
238
|
-
'Provide a valid URL in GITEA_URL',
|
|
239
|
-
'Example: https://gitea.example.com',
|
|
240
|
-
'Include protocol (https:// or http://)'
|
|
241
|
-
]
|
|
242
|
-
};
|
|
243
|
-
}
|
|
244
|
-
// Validate token
|
|
245
|
-
if (!creds.token || creds.token.trim().length === 0) {
|
|
246
|
-
return {
|
|
247
|
-
valid: false,
|
|
248
|
-
error: 'Gitea token is empty',
|
|
249
|
-
suggestions: [
|
|
250
|
-
'Set GITEA_TOKEN environment variable',
|
|
251
|
-
'Generate a token in your Gitea instance settings'
|
|
252
|
-
]
|
|
253
|
-
};
|
|
254
|
-
}
|
|
255
|
-
// Validate token length (Gitea tokens are typically 40 characters)
|
|
256
|
-
if (creds.token.length < 20) {
|
|
257
|
-
return {
|
|
258
|
-
valid: false,
|
|
259
|
-
error: 'Gitea token appears to be too short',
|
|
260
|
-
suggestions: [
|
|
261
|
-
'Verify the complete token was copied',
|
|
262
|
-
'Generate a new token if the current one is incomplete'
|
|
263
|
-
]
|
|
264
|
-
};
|
|
265
|
-
}
|
|
266
|
-
// Validate username
|
|
267
|
-
if (!creds.username || creds.username.trim().length === 0) {
|
|
268
|
-
return {
|
|
269
|
-
valid: false,
|
|
270
|
-
error: 'Gitea username is empty',
|
|
271
|
-
suggestions: [
|
|
272
|
-
'Set GITEA_USERNAME environment variable',
|
|
273
|
-
'Use your Gitea username (not email)'
|
|
274
|
-
]
|
|
275
|
-
};
|
|
276
|
-
}
|
|
277
|
-
return { valid: true };
|
|
278
|
-
}
|
|
279
|
-
/**
|
|
280
|
-
* Validate all configured credentials
|
|
281
|
-
*/
|
|
282
|
-
validateAllCredentials() {
|
|
283
|
-
const results = {};
|
|
284
|
-
for (const provider of this.getConfiguredProviders()) {
|
|
285
|
-
results[provider] = this.validateProviderCredentials(provider);
|
|
286
|
-
}
|
|
287
|
-
return results;
|
|
288
|
-
}
|
|
289
|
-
/**
|
|
290
|
-
* Get credential configuration status
|
|
291
|
-
*/
|
|
292
|
-
getCredentialStatus() {
|
|
293
|
-
const allProviders = ['github', 'gitea'];
|
|
294
|
-
const configured = [];
|
|
295
|
-
const missing = [];
|
|
296
|
-
const valid = [];
|
|
297
|
-
const invalid = [];
|
|
298
|
-
const errors = {};
|
|
299
|
-
for (const provider of allProviders) {
|
|
300
|
-
if (this.isProviderConfigured(provider)) {
|
|
301
|
-
configured.push(provider);
|
|
302
|
-
const validation = this.validateProviderCredentials(provider);
|
|
303
|
-
if (validation.valid) {
|
|
304
|
-
valid.push(provider);
|
|
305
|
-
}
|
|
306
|
-
else {
|
|
307
|
-
invalid.push(provider);
|
|
308
|
-
errors[provider] = validation.error || 'Unknown validation error';
|
|
309
|
-
}
|
|
310
|
-
}
|
|
311
|
-
else {
|
|
312
|
-
missing.push(provider);
|
|
313
|
-
}
|
|
314
|
-
}
|
|
315
|
-
return {
|
|
316
|
-
configured,
|
|
317
|
-
missing,
|
|
318
|
-
valid,
|
|
319
|
-
invalid,
|
|
320
|
-
errors
|
|
321
|
-
};
|
|
322
|
-
}
|
|
323
|
-
/**
|
|
324
|
-
* Get configuration guide for missing providers
|
|
325
|
-
*/
|
|
326
|
-
getConfigurationGuide(providers) {
|
|
327
|
-
const targetProviders = providers || ['github', 'gitea'];
|
|
328
|
-
const guide = {};
|
|
329
|
-
for (const provider of targetProviders) {
|
|
330
|
-
if (provider === 'github') {
|
|
331
|
-
guide.github = {
|
|
332
|
-
envVars: ['GITHUB_TOKEN', 'GITHUB_USERNAME'],
|
|
333
|
-
example: {
|
|
334
|
-
GITHUB_TOKEN: 'ghp_xxxxxxxxxxxxxxxxxxxx',
|
|
335
|
-
GITHUB_USERNAME: 'your-github-username'
|
|
336
|
-
},
|
|
337
|
-
instructions: [
|
|
338
|
-
'1. Go to https://github.com/settings/tokens',
|
|
339
|
-
'2. Click "Generate new token (classic)"',
|
|
340
|
-
'3. Select required scopes (repo, user)',
|
|
341
|
-
'4. Copy the generated token',
|
|
342
|
-
'5. Set GITHUB_TOKEN environment variable',
|
|
343
|
-
'6. Set GITHUB_USERNAME to your GitHub username'
|
|
344
|
-
]
|
|
345
|
-
};
|
|
346
|
-
}
|
|
347
|
-
if (provider === 'gitea') {
|
|
348
|
-
guide.gitea = {
|
|
349
|
-
envVars: ['GITEA_URL', 'GITEA_TOKEN', 'GITEA_USERNAME'],
|
|
350
|
-
example: {
|
|
351
|
-
GITEA_URL: 'https://gitea.example.com',
|
|
352
|
-
GITEA_TOKEN: 'your-gitea-access-token',
|
|
353
|
-
GITEA_USERNAME: 'your-gitea-username'
|
|
354
|
-
},
|
|
355
|
-
instructions: [
|
|
356
|
-
'1. Log in to your Gitea instance',
|
|
357
|
-
'2. Go to Settings > Applications',
|
|
358
|
-
'3. Generate new access token',
|
|
359
|
-
'4. Copy the generated token',
|
|
360
|
-
'5. Set GITEA_URL to your Gitea instance URL',
|
|
361
|
-
'6. Set GITEA_TOKEN to the generated token',
|
|
362
|
-
'7. Set GITEA_USERNAME to your Gitea username'
|
|
363
|
-
]
|
|
364
|
-
};
|
|
365
|
-
}
|
|
366
|
-
}
|
|
367
|
-
return guide;
|
|
368
|
-
}
|
|
369
|
-
/**
|
|
370
|
-
* Mask sensitive credential information for logging
|
|
371
|
-
*/
|
|
372
|
-
maskCredentials(credentials) {
|
|
373
|
-
if (!credentials || typeof credentials !== 'object') {
|
|
374
|
-
return credentials;
|
|
375
|
-
}
|
|
376
|
-
const masked = { ...credentials };
|
|
377
|
-
// Mask tokens
|
|
378
|
-
if (masked.token && typeof masked.token === 'string') {
|
|
379
|
-
masked.token = this.maskToken(masked.token);
|
|
380
|
-
}
|
|
381
|
-
// Recursively mask nested objects
|
|
382
|
-
for (const key in masked) {
|
|
383
|
-
if (typeof masked[key] === 'object' && masked[key] !== null) {
|
|
384
|
-
masked[key] = this.maskCredentials(masked[key]);
|
|
385
|
-
}
|
|
386
|
-
}
|
|
387
|
-
return masked;
|
|
388
|
-
}
|
|
389
|
-
/**
|
|
390
|
-
* Mask token for safe logging
|
|
391
|
-
*/
|
|
392
|
-
maskToken(token) {
|
|
393
|
-
if (token.length <= 8) {
|
|
394
|
-
return '*'.repeat(token.length);
|
|
395
|
-
}
|
|
396
|
-
const start = token.substring(0, 4);
|
|
397
|
-
const end = token.substring(token.length - 4);
|
|
398
|
-
const middle = '*'.repeat(token.length - 8);
|
|
399
|
-
return `${start}${middle}${end}`;
|
|
400
|
-
}
|
|
401
|
-
/**
|
|
402
|
-
* Clear validation cache
|
|
403
|
-
*/
|
|
404
|
-
clearValidationCache() {
|
|
405
|
-
this.validationCache.clear();
|
|
406
|
-
logger_js_1.logger.debug('Credential validation cache cleared', 'CREDENTIALS');
|
|
407
|
-
}
|
|
408
|
-
/**
|
|
409
|
-
* Refresh credentials from environment
|
|
410
|
-
*/
|
|
411
|
-
refreshCredentials() {
|
|
412
|
-
this.clearValidationCache();
|
|
413
|
-
this.loadCredentials();
|
|
414
|
-
logger_js_1.logger.info('Credentials refreshed from environment', 'CREDENTIALS');
|
|
415
|
-
}
|
|
416
|
-
/**
|
|
417
|
-
* Get credential summary for status reporting
|
|
418
|
-
*/
|
|
419
|
-
getCredentialSummary() {
|
|
420
|
-
const status = this.getCredentialStatus();
|
|
421
|
-
const providers = {};
|
|
422
|
-
// Add configured providers
|
|
423
|
-
for (const provider of status.configured) {
|
|
424
|
-
const isValid = status.valid.includes(provider);
|
|
425
|
-
providers[provider] = {
|
|
426
|
-
configured: true,
|
|
427
|
-
valid: isValid,
|
|
428
|
-
error: isValid ? undefined : status.errors[provider]
|
|
429
|
-
};
|
|
430
|
-
}
|
|
431
|
-
// Add missing providers
|
|
432
|
-
for (const provider of status.missing) {
|
|
433
|
-
providers[provider] = {
|
|
434
|
-
configured: false,
|
|
435
|
-
valid: false,
|
|
436
|
-
error: 'Not configured'
|
|
437
|
-
};
|
|
438
|
-
}
|
|
439
|
-
return {
|
|
440
|
-
totalProviders: 2, // github + gitea
|
|
441
|
-
configuredProviders: status.configured.length,
|
|
442
|
-
validProviders: status.valid.length,
|
|
443
|
-
providers
|
|
444
|
-
};
|
|
445
|
-
}
|
|
446
|
-
}
|
|
447
|
-
exports.CredentialManager = CredentialManager;
|
|
448
|
-
// Export singleton instance
|
|
449
|
-
exports.credentialManager = new CredentialManager();
|
|
450
|
-
//# sourceMappingURL=credential-manager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"credential-manager.js","sourceRoot":"","sources":["../../src/utils/credential-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Data Merger
|
|
3
|
-
*
|
|
4
|
-
* Handles intelligent merging of data from multiple providers for read operations.
|
|
5
|
-
* Removes duplicates, combines unique fields, and maintains data integrity.
|
|
6
|
-
*/
|
|
7
|
-
import { ProviderResult } from '../providers/types.js';
|
|
8
|
-
export declare class DataMerger {
|
|
9
|
-
/**
|
|
10
|
-
* Merges list operation results from multiple providers
|
|
11
|
-
* Removes duplicates based on name/id fields and combines arrays
|
|
12
|
-
*/
|
|
13
|
-
static mergeListResults(results: ProviderResult[]): any[];
|
|
14
|
-
/**
|
|
15
|
-
* Merges get operation results from multiple providers
|
|
16
|
-
* Combines unique fields from different providers into a single object
|
|
17
|
-
*/
|
|
18
|
-
static mergeGetResults(results: ProviderResult[]): any;
|
|
19
|
-
/**
|
|
20
|
-
* Merges search operation results from multiple providers
|
|
21
|
-
* Combines search results, removes duplicates, and ranks by relevance
|
|
22
|
-
*/
|
|
23
|
-
static mergeSearchResults(results: ProviderResult[]): any[];
|
|
24
|
-
/**
|
|
25
|
-
* Generates a unique key for an item based on common identifier fields
|
|
26
|
-
*/
|
|
27
|
-
private static getItemKey;
|
|
28
|
-
/**
|
|
29
|
-
* Merges two objects, preserving unique fields from each provider
|
|
30
|
-
*/
|
|
31
|
-
private static mergeObjects;
|
|
32
|
-
/**
|
|
33
|
-
* Calculates relevance score for search results
|
|
34
|
-
*/
|
|
35
|
-
private static calculateRelevance;
|
|
36
|
-
/**
|
|
37
|
-
* Sorts items by date field (updated_at, created_at, etc.)
|
|
38
|
-
*/
|
|
39
|
-
private static sortItemsByDate;
|
|
40
|
-
/**
|
|
41
|
-
* Compares two items by date fields
|
|
42
|
-
*/
|
|
43
|
-
private static compareByDate;
|
|
44
|
-
/**
|
|
45
|
-
* Removes duplicate items from an array based on a field
|
|
46
|
-
*/
|
|
47
|
-
static removeDuplicates(items: any[], field: string): any[];
|
|
48
|
-
}
|
|
49
|
-
//# sourceMappingURL=data-merger.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"data-merger.d.ts","sourceRoot":"","sources":["../../src/utils/data-merger.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,qBAAa,UAAU;IACrB;;;OAGG;IACH,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,GAAG,EAAE;IAkCzD;;;OAGG;IACH,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,GAAG;IAiCtD;;;OAGG;IACH,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,GAAG,EAAE;IAuD3D;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,UAAU;IAsBzB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,YAAY;IAmB3B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAyBjC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IAI9B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAe5B;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,GAAG,EAAE;CAW5D"}
|