@aws/lsp-codewhisperer 0.0.3 → 0.0.5
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/CHANGELOG.md +13 -0
- package/out/client/sigv4/service.json +1 -1
- package/out/client/token/bearer-token-service.json +1 -1
- package/out/index.d.ts +1 -0
- package/out/index.js +1 -0
- package/out/index.js.map +1 -1
- package/out/language-server/chat/chatController.d.ts +25 -0
- package/out/language-server/chat/chatController.js +117 -0
- package/out/language-server/chat/chatController.js.map +1 -0
- package/out/language-server/chat/chatController.test.d.ts +1 -0
- package/out/language-server/chat/chatController.test.js +240 -0
- package/out/language-server/chat/chatController.test.js.map +1 -0
- package/out/language-server/chat/chatEventParser.d.ts +24 -0
- package/out/language-server/chat/chatEventParser.js +84 -0
- package/out/language-server/chat/chatEventParser.js.map +1 -0
- package/out/language-server/chat/chatEventParser.test.d.ts +1 -0
- package/out/language-server/chat/chatEventParser.test.js +189 -0
- package/out/language-server/chat/chatEventParser.test.js.map +1 -0
- package/out/language-server/chat/chatSessionManagementService.d.ts +16 -0
- package/out/language-server/chat/chatSessionManagementService.js +92 -0
- package/out/language-server/chat/chatSessionManagementService.js.map +1 -0
- package/out/language-server/chat/chatSessionManagementService.test.d.ts +1 -0
- package/out/language-server/chat/chatSessionManagementService.test.js +73 -0
- package/out/language-server/chat/chatSessionManagementService.test.js.map +1 -0
- package/out/language-server/chat/chatSessionService.d.ts +13 -0
- package/out/language-server/chat/chatSessionService.js +63 -0
- package/out/language-server/chat/chatSessionService.js.map +1 -0
- package/out/language-server/chat/chatSessionService.test.d.ts +1 -0
- package/out/language-server/chat/chatSessionService.test.js +80 -0
- package/out/language-server/chat/chatSessionService.test.js.map +1 -0
- package/out/language-server/chat/contexts/documentContext.d.ts +17 -0
- package/out/language-server/chat/contexts/documentContext.js +59 -0
- package/out/language-server/chat/contexts/documentContext.js.map +1 -0
- package/out/language-server/chat/contexts/documentContext.test.d.ts +1 -0
- package/out/language-server/chat/contexts/documentContext.test.js +147 -0
- package/out/language-server/chat/contexts/documentContext.test.js.map +1 -0
- package/out/language-server/chat/contexts/utils.d.ts +10 -0
- package/out/language-server/chat/contexts/utils.js +71 -0
- package/out/language-server/chat/contexts/utils.js.map +1 -0
- package/out/language-server/chat/contexts/utils.test.d.ts +1 -0
- package/out/language-server/chat/contexts/utils.test.js +72 -0
- package/out/language-server/chat/contexts/utils.test.js.map +1 -0
- package/out/language-server/chat/utils.d.ts +4 -0
- package/out/language-server/chat/utils.js +34 -0
- package/out/language-server/chat/utils.js.map +1 -0
- package/out/language-server/codeWhispererSecurityScanServer.d.ts +1 -2
- package/out/language-server/codeWhispererSecurityScanServer.js +152 -25
- package/out/language-server/codeWhispererSecurityScanServer.js.map +1 -1
- package/out/language-server/codeWhispererServer.d.ts +1 -2
- package/out/language-server/codeWhispererServer.js +3 -3
- package/out/language-server/codeWhispererServer.js.map +1 -1
- package/out/language-server/codeWhispererServer.test.js +100 -101
- package/out/language-server/codeWhispererServer.test.js.map +1 -1
- package/out/language-server/codeWhispererService.d.ts +1 -1
- package/out/language-server/codeWhispererService.js.map +1 -1
- package/out/language-server/dependencyGraph/csharpDependencyGraph.d.ts +3 -3
- package/out/language-server/dependencyGraph/csharpDependencyGraph.js +40 -37
- package/out/language-server/dependencyGraph/csharpDependencyGraph.js.map +1 -1
- package/out/language-server/dependencyGraph/csharpDependencyGraph.test.js +106 -78
- package/out/language-server/dependencyGraph/csharpDependencyGraph.test.js.map +1 -1
- package/out/language-server/dependencyGraph/dependencyGraph.d.ts +12 -4
- package/out/language-server/dependencyGraph/dependencyGraph.js +24 -6
- package/out/language-server/dependencyGraph/dependencyGraph.js.map +1 -1
- package/out/language-server/dependencyGraph/dependencyGraphFactory.d.ts +2 -3
- package/out/language-server/dependencyGraph/dependencyGraphFactory.js +2 -2
- package/out/language-server/dependencyGraph/dependencyGraphFactory.js.map +1 -1
- package/out/language-server/languageDetection.d.ts +11 -3
- package/out/language-server/languageDetection.js +85 -20
- package/out/language-server/languageDetection.js.map +1 -1
- package/out/language-server/languageDetection.test.d.ts +1 -0
- package/out/language-server/languageDetection.test.js +31 -0
- package/out/language-server/languageDetection.test.js.map +1 -0
- package/out/language-server/netTransformServer.d.ts +12 -0
- package/out/language-server/netTransformServer.js +27 -0
- package/out/language-server/netTransformServer.js.map +1 -0
- package/out/language-server/proxy-server.d.ts +3 -2
- package/out/language-server/proxy-server.js +35 -1
- package/out/language-server/proxy-server.js.map +1 -1
- package/out/language-server/qChatServer.d.ts +3 -0
- package/out/language-server/qChatServer.js +31 -0
- package/out/language-server/qChatServer.js.map +1 -0
- package/out/language-server/qChatServer.test.d.ts +1 -0
- package/out/language-server/qChatServer.test.js +51 -0
- package/out/language-server/qChatServer.test.js.map +1 -0
- package/out/language-server/securityScan/securityScanDiagnosticsProvider.d.ts +28 -0
- package/out/language-server/securityScan/securityScanDiagnosticsProvider.js +111 -0
- package/out/language-server/securityScan/securityScanDiagnosticsProvider.js.map +1 -0
- package/out/language-server/securityScan/securityScanHandler.d.ts +12 -5
- package/out/language-server/securityScan/securityScanHandler.js +69 -19
- package/out/language-server/securityScan/securityScanHandler.js.map +1 -1
- package/out/language-server/securityScan/securityScanHandler.test.js +3 -2
- package/out/language-server/securityScan/securityScanHandler.test.js.map +1 -1
- package/out/language-server/securityScan/types.d.ts +15 -0
- package/out/language-server/session/sessionManager.d.ts +1 -2
- package/out/language-server/session/sessionManager.js.map +1 -1
- package/out/language-server/telemetry/codePercentage.d.ts +1 -1
- package/out/language-server/telemetry/types.d.ts +20 -0
- package/out/language-server/telemetry/userTriggerDecision.test.js +8 -8
- package/out/language-server/telemetry/userTriggerDecision.test.js.map +1 -1
- package/out/language-server/telemetry.test.js +4 -4
- package/out/language-server/telemetry.test.js.map +1 -1
- package/out/language-server/testUtils.d.ts +1 -0
- package/out/language-server/testUtils.js +17 -1
- package/out/language-server/testUtils.js.map +1 -1
- package/out/language-server/types.d.ts +13 -0
- package/out/language-server/types.js +3 -0
- package/out/language-server/types.js.map +1 -0
- package/out/language-server/utils.d.ts +3 -0
- package/out/language-server/utils.js +19 -1
- package/out/language-server/utils.js.map +1 -1
- package/out/language-server/utils.test.d.ts +1 -0
- package/out/language-server/utils.test.js +33 -0
- package/out/language-server/utils.test.js.map +1 -0
- package/package.json +16 -7
- package/src.gen/@amzn/codewhisperer-streaming/LICENSE +201 -0
- package/src.gen/@amzn/codewhisperer-streaming/README.md +464 -0
- package/src.gen/@amzn/codewhisperer-streaming/api-extractor.json +4 -0
- package/src.gen/@amzn/codewhisperer-streaming/dist-cjs/CodeWhispererStreaming.js +17 -0
- package/src.gen/@amzn/codewhisperer-streaming/dist-cjs/CodeWhispererStreamingClient.js +42 -0
- package/src.gen/@amzn/codewhisperer-streaming/dist-cjs/commands/ExportResultArchiveCommand.js +42 -0
- package/src.gen/@amzn/codewhisperer-streaming/dist-cjs/commands/GenerateAssistantResponseCommand.js +42 -0
- package/src.gen/@amzn/codewhisperer-streaming/dist-cjs/commands/GenerateTaskAssistPlanCommand.js +42 -0
- package/src.gen/@amzn/codewhisperer-streaming/dist-cjs/commands/index.js +6 -0
- package/src.gen/@amzn/codewhisperer-streaming/dist-cjs/endpoints.js +165 -0
- package/src.gen/@amzn/codewhisperer-streaming/dist-cjs/extensionConfiguration.js +2 -0
- package/src.gen/@amzn/codewhisperer-streaming/dist-cjs/index.js +10 -0
- package/src.gen/@amzn/codewhisperer-streaming/dist-cjs/models/CodeWhispererStreamingServiceException.js +12 -0
- package/src.gen/@amzn/codewhisperer-streaming/dist-cjs/models/index.js +4 -0
- package/src.gen/@amzn/codewhisperer-streaming/dist-cjs/models/models_0.js +361 -0
- package/src.gen/@amzn/codewhisperer-streaming/dist-cjs/protocols/Aws_restJson1.js +458 -0
- package/src.gen/@amzn/codewhisperer-streaming/dist-cjs/runtimeConfig.browser.js +38 -0
- package/src.gen/@amzn/codewhisperer-streaming/dist-cjs/runtimeConfig.js +46 -0
- package/src.gen/@amzn/codewhisperer-streaming/dist-cjs/runtimeConfig.native.js +15 -0
- package/src.gen/@amzn/codewhisperer-streaming/dist-cjs/runtimeConfig.shared.js +22 -0
- package/src.gen/@amzn/codewhisperer-streaming/dist-cjs/runtimeExtensions.js +22 -0
- package/src.gen/@amzn/codewhisperer-streaming/dist-es/CodeWhispererStreaming.js +13 -0
- package/src.gen/@amzn/codewhisperer-streaming/dist-es/CodeWhispererStreamingClient.js +38 -0
- package/src.gen/@amzn/codewhisperer-streaming/dist-es/commands/ExportResultArchiveCommand.js +38 -0
- package/src.gen/@amzn/codewhisperer-streaming/dist-es/commands/GenerateAssistantResponseCommand.js +38 -0
- package/src.gen/@amzn/codewhisperer-streaming/dist-es/commands/GenerateTaskAssistPlanCommand.js +38 -0
- package/src.gen/@amzn/codewhisperer-streaming/dist-es/commands/index.js +3 -0
- package/src.gen/@amzn/codewhisperer-streaming/dist-es/endpoints.js +161 -0
- package/src.gen/@amzn/codewhisperer-streaming/dist-es/extensionConfiguration.js +1 -0
- package/src.gen/@amzn/codewhisperer-streaming/dist-es/index.js +5 -0
- package/src.gen/@amzn/codewhisperer-streaming/dist-es/models/CodeWhispererStreamingServiceException.js +8 -0
- package/src.gen/@amzn/codewhisperer-streaming/dist-es/models/index.js +1 -0
- package/src.gen/@amzn/codewhisperer-streaming/dist-es/models/models_0.js +328 -0
- package/src.gen/@amzn/codewhisperer-streaming/dist-es/protocols/Aws_restJson1.js +449 -0
- package/src.gen/@amzn/codewhisperer-streaming/dist-es/runtimeConfig.browser.js +33 -0
- package/src.gen/@amzn/codewhisperer-streaming/dist-es/runtimeConfig.js +41 -0
- package/src.gen/@amzn/codewhisperer-streaming/dist-es/runtimeConfig.native.js +11 -0
- package/src.gen/@amzn/codewhisperer-streaming/dist-es/runtimeConfig.shared.js +18 -0
- package/src.gen/@amzn/codewhisperer-streaming/dist-es/runtimeExtensions.js +18 -0
- package/src.gen/@amzn/codewhisperer-streaming/dist-types/CodeWhispererStreaming.d.ts +30 -0
- package/src.gen/@amzn/codewhisperer-streaming/dist-types/CodeWhispererStreamingClient.d.ts +169 -0
- package/src.gen/@amzn/codewhisperer-streaming/dist-types/commands/ExportResultArchiveCommand.d.ts +103 -0
- package/src.gen/@amzn/codewhisperer-streaming/dist-types/commands/GenerateAssistantResponseCommand.d.ts +294 -0
- package/src.gen/@amzn/codewhisperer-streaming/dist-types/commands/GenerateTaskAssistPlanCommand.d.ts +304 -0
- package/src.gen/@amzn/codewhisperer-streaming/dist-types/commands/index.d.ts +3 -0
- package/src.gen/@amzn/codewhisperer-streaming/dist-types/endpoints.d.ts +2 -0
- package/src.gen/@amzn/codewhisperer-streaming/dist-types/extensionConfiguration.d.ts +8 -0
- package/src.gen/@amzn/codewhisperer-streaming/dist-types/index.d.ts +5 -0
- package/src.gen/@amzn/codewhisperer-streaming/dist-types/models/CodeWhispererStreamingServiceException.d.ts +13 -0
- package/src.gen/@amzn/codewhisperer-streaming/dist-types/models/index.d.ts +1 -0
- package/src.gen/@amzn/codewhisperer-streaming/dist-types/models/models_0.d.ts +1173 -0
- package/src.gen/@amzn/codewhisperer-streaming/dist-types/protocols/Aws_restJson1.d.ts +29 -0
- package/src.gen/@amzn/codewhisperer-streaming/dist-types/runtimeConfig.browser.d.ts +39 -0
- package/src.gen/@amzn/codewhisperer-streaming/dist-types/runtimeConfig.d.ts +39 -0
- package/src.gen/@amzn/codewhisperer-streaming/dist-types/runtimeConfig.native.d.ts +38 -0
- package/src.gen/@amzn/codewhisperer-streaming/dist-types/runtimeConfig.shared.d.ts +17 -0
- package/src.gen/@amzn/codewhisperer-streaming/dist-types/runtimeExtensions.d.ts +17 -0
- package/src.gen/@amzn/codewhisperer-streaming/package.json +87 -0
- package/src.gen/@amzn/codewhisperer-streaming/src/CodeWhispererStreaming.ts +84 -0
- package/src.gen/@amzn/codewhisperer-streaming/src/CodeWhispererStreamingClient.ts +304 -0
- package/src.gen/@amzn/codewhisperer-streaming/src/commands/ExportResultArchiveCommand.ts +177 -0
- package/src.gen/@amzn/codewhisperer-streaming/src/commands/GenerateAssistantResponseCommand.ts +369 -0
- package/src.gen/@amzn/codewhisperer-streaming/src/commands/GenerateTaskAssistPlanCommand.ts +379 -0
- package/src.gen/@amzn/codewhisperer-streaming/src/commands/index.ts +4 -0
- package/src.gen/@amzn/codewhisperer-streaming/src/endpoints.ts +170 -0
- package/src.gen/@amzn/codewhisperer-streaming/src/extensionConfiguration.ts +12 -0
- package/src.gen/@amzn/codewhisperer-streaming/src/index.ts +8 -0
- package/src.gen/@amzn/codewhisperer-streaming/src/models/CodeWhispererStreamingServiceException.ts +22 -0
- package/src.gen/@amzn/codewhisperer-streaming/src/models/index.ts +2 -0
- package/src.gen/@amzn/codewhisperer-streaming/src/models/models_0.ts +1518 -0
- package/src.gen/@amzn/codewhisperer-streaming/src/protocols/Aws_restJson1.ts +740 -0
- package/src.gen/@amzn/codewhisperer-streaming/src/runtimeConfig.browser.ts +42 -0
- package/src.gen/@amzn/codewhisperer-streaming/src/runtimeConfig.native.ts +17 -0
- package/src.gen/@amzn/codewhisperer-streaming/src/runtimeConfig.shared.ts +24 -0
- package/src.gen/@amzn/codewhisperer-streaming/src/runtimeConfig.ts +55 -0
- package/src.gen/@amzn/codewhisperer-streaming/src/runtimeExtensions.ts +44 -0
- package/src.gen/@amzn/codewhisperer-streaming/typedoc.json +5 -0
- package/script/generateServiceClient.ts +0 -242
|
@@ -1,35 +1,92 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getSupportedLanguageId = void 0;
|
|
3
|
+
exports.getLanguageId = exports.getSupportedLanguageId = exports.qLanguageIdByDocumentLanguageId = exports.languageByExtension = exports.supportedSecurityScanLanguages = void 0;
|
|
4
4
|
// This will be extended as more language features
|
|
5
5
|
// are integrated into the language server and clients.
|
|
6
6
|
// See: https://microsoft.github.io/language-server-protocol/specifications/lsp/3.18/specification/#textDocumentItem
|
|
7
|
-
const supportedFileTypes = [
|
|
8
|
-
|
|
7
|
+
const supportedFileTypes = [
|
|
8
|
+
'c',
|
|
9
|
+
'cpp',
|
|
10
|
+
'csharp',
|
|
11
|
+
'java',
|
|
12
|
+
'javascript',
|
|
13
|
+
'jsx',
|
|
14
|
+
'python',
|
|
15
|
+
'typescript',
|
|
16
|
+
'json',
|
|
17
|
+
'yaml',
|
|
18
|
+
];
|
|
19
|
+
exports.supportedSecurityScanLanguages = ['csharp'];
|
|
20
|
+
exports.languageByExtension = {
|
|
9
21
|
'.c': 'c',
|
|
10
|
-
'.h': 'c',
|
|
11
22
|
'.cpp': 'cpp',
|
|
12
|
-
'.hpp': 'cpp',
|
|
13
23
|
'.cs': 'csharp',
|
|
24
|
+
'.h': 'c',
|
|
25
|
+
'.hpp': 'cpp',
|
|
26
|
+
'.go': 'go',
|
|
27
|
+
'.kt': 'kotlin',
|
|
28
|
+
'.kts': 'kotlin',
|
|
29
|
+
'.java': 'java',
|
|
14
30
|
'.js': 'javascript',
|
|
31
|
+
'.json': 'json',
|
|
32
|
+
'.jsx': 'jsx',
|
|
33
|
+
'.php': 'php',
|
|
15
34
|
'.py': 'python',
|
|
35
|
+
'.rb': 'ruby',
|
|
36
|
+
'.rs': 'rust',
|
|
37
|
+
'.sc': 'scala',
|
|
38
|
+
'.scala': 'scala',
|
|
39
|
+
'.sh': 'shell',
|
|
40
|
+
'.sql': 'sql',
|
|
41
|
+
'.tf': 'tf',
|
|
16
42
|
'.ts': 'typescript',
|
|
43
|
+
'.tsx': 'tsx',
|
|
44
|
+
'.vue': 'vue',
|
|
45
|
+
'.yaml': 'yaml',
|
|
46
|
+
'.yml': 'yaml',
|
|
47
|
+
};
|
|
48
|
+
// some are exact match and some like javascriptreact and shellscript are not
|
|
49
|
+
exports.qLanguageIdByDocumentLanguageId = {
|
|
50
|
+
c: 'c',
|
|
51
|
+
cpp: 'cpp',
|
|
52
|
+
csharp: 'csharp',
|
|
53
|
+
go: 'go',
|
|
54
|
+
java: 'java',
|
|
55
|
+
javascript: 'javascript',
|
|
56
|
+
javascriptreact: 'jsx',
|
|
57
|
+
json: 'json',
|
|
58
|
+
jsx: 'jsx',
|
|
59
|
+
kotlin: 'kotlin',
|
|
60
|
+
php: 'php',
|
|
61
|
+
python: 'python',
|
|
62
|
+
ruby: 'ruby',
|
|
63
|
+
rust: 'rust',
|
|
64
|
+
scala: 'scala',
|
|
65
|
+
shell: 'shell',
|
|
66
|
+
shellscript: 'shell',
|
|
67
|
+
sql: 'sql',
|
|
68
|
+
tf: 'tf',
|
|
69
|
+
typescript: 'typescript',
|
|
70
|
+
typescriptreact: 'tsx',
|
|
71
|
+
vue: 'vue',
|
|
72
|
+
yaml: 'yaml',
|
|
17
73
|
};
|
|
18
|
-
const getSupportedLanguageId = (textDocument) => {
|
|
74
|
+
const getSupportedLanguageId = (textDocument, supportedLanguageIds = supportedFileTypes) => {
|
|
19
75
|
if (!textDocument) {
|
|
20
76
|
return;
|
|
21
77
|
}
|
|
22
|
-
const languageId =
|
|
23
|
-
|
|
24
|
-
return languageId;
|
|
25
|
-
}
|
|
26
|
-
for (const extension in supportedExtensions) {
|
|
27
|
-
if (textDocument.uri.endsWith(extension)) {
|
|
28
|
-
return supportedExtensions[extension];
|
|
29
|
-
}
|
|
30
|
-
}
|
|
78
|
+
const languageId = (0, exports.getLanguageId)(textDocument);
|
|
79
|
+
return languageId && supportedLanguageIds.includes(languageId) ? languageId : undefined;
|
|
31
80
|
};
|
|
32
81
|
exports.getSupportedLanguageId = getSupportedLanguageId;
|
|
82
|
+
const getLanguageId = (textDocument) => {
|
|
83
|
+
if (!textDocument) {
|
|
84
|
+
return undefined;
|
|
85
|
+
}
|
|
86
|
+
return (getCodeWhispererLanguageIdByTextDocumentLanguageId(textDocument.languageId) ||
|
|
87
|
+
getCodeWhispererLanguageIdByExtension(textDocument));
|
|
88
|
+
};
|
|
89
|
+
exports.getLanguageId = getLanguageId;
|
|
33
90
|
/**
|
|
34
91
|
* Used to map different IDE values for TextDocument languageIds to CodeWhisperer languageIds.
|
|
35
92
|
* Examples of the CodeWhisperer defined language ids can be found in service-2.json, near "ProgrammingLanguageLanguageNameString"
|
|
@@ -40,15 +97,23 @@ function getCodeWhispererLanguageIdByTextDocumentLanguageId(textDocumentLanguage
|
|
|
40
97
|
if (textDocumentLanguageId === undefined) {
|
|
41
98
|
return undefined;
|
|
42
99
|
}
|
|
43
|
-
if (
|
|
44
|
-
return textDocumentLanguageId;
|
|
100
|
+
else if (exports.qLanguageIdByDocumentLanguageId[textDocumentLanguageId]) {
|
|
101
|
+
return exports.qLanguageIdByDocumentLanguageId[textDocumentLanguageId];
|
|
45
102
|
}
|
|
46
103
|
// IDEs can identify a file's languageId using non-standardized values
|
|
47
104
|
// Eg: 'CSHARP', 'CSharp' => 'csharp'
|
|
48
105
|
// Try to map case-insensitive matches to increase the likelihood of supporting the file in an IDE.
|
|
49
|
-
for (const
|
|
50
|
-
if (textDocumentLanguageId.toLowerCase() ===
|
|
51
|
-
return
|
|
106
|
+
for (const [languageId, cwprLanguageId] of Object.entries(exports.qLanguageIdByDocumentLanguageId)) {
|
|
107
|
+
if (textDocumentLanguageId.toLowerCase() === languageId.toLowerCase()) {
|
|
108
|
+
return cwprLanguageId;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
return undefined;
|
|
112
|
+
}
|
|
113
|
+
function getCodeWhispererLanguageIdByExtension(textDocument) {
|
|
114
|
+
for (const [extension, languageId] of Object.entries(exports.languageByExtension)) {
|
|
115
|
+
if (textDocument.uri.endsWith(extension)) {
|
|
116
|
+
return languageId;
|
|
52
117
|
}
|
|
53
118
|
}
|
|
54
119
|
return undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"languageDetection.js","sourceRoot":"","sources":["../../src/language-server/languageDetection.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"languageDetection.js","sourceRoot":"","sources":["../../src/language-server/languageDetection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const assert = require("assert");
|
|
4
|
+
const vscode_languageserver_textdocument_1 = require("vscode-languageserver-textdocument");
|
|
5
|
+
const languageDetection_1 = require("./languageDetection");
|
|
6
|
+
describe('LanguageDetection', () => {
|
|
7
|
+
describe('getLanguageId', () => {
|
|
8
|
+
it('matches all document language ids that are defined in qLanguageIdByDocumentId', () => {
|
|
9
|
+
for (const [documentLanguageId, qLanguageId] of Object.entries(languageDetection_1.qLanguageIdByDocumentLanguageId)) {
|
|
10
|
+
assert.strictEqual((0, languageDetection_1.getLanguageId)(vscode_languageserver_textdocument_1.TextDocument.create(`test://test.xxx`, documentLanguageId, 1, '')), qLanguageId);
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
it('able to match language ids regardless of casing', () => {
|
|
14
|
+
assert.strictEqual((0, languageDetection_1.getLanguageId)(vscode_languageserver_textdocument_1.TextDocument.create(`test://test.xxx`, 'CSHarp', 1, '')), 'csharp');
|
|
15
|
+
assert.strictEqual((0, languageDetection_1.getLanguageId)(vscode_languageserver_textdocument_1.TextDocument.create(`test://test.xxx`, 'TyPeScRipT', 1, '')), 'typescript');
|
|
16
|
+
});
|
|
17
|
+
it(`fallbacks to extension check if document's languageId does not exist`, () => {
|
|
18
|
+
for (const [extension, languageId] of Object.entries(languageDetection_1.languageByExtension)) {
|
|
19
|
+
assert.strictEqual((0, languageDetection_1.getLanguageId)(vscode_languageserver_textdocument_1.TextDocument.create(`test://test.${extension}`, undefined, 1, '')), languageId);
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
describe('getSupportedLanguageId', () => {
|
|
24
|
+
const typescriptDocument = vscode_languageserver_textdocument_1.TextDocument.create('test://test.ts', 'typescript', 1, '');
|
|
25
|
+
it('should return language id if it is in the list of supported languages', () => {
|
|
26
|
+
assert.ok((0, languageDetection_1.getSupportedLanguageId)(typescriptDocument, ['typescript', 'javascript']));
|
|
27
|
+
assert.ok(!(0, languageDetection_1.getSupportedLanguageId)(typescriptDocument, ['javascript']));
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
//# sourceMappingURL=languageDetection.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"languageDetection.test.js","sourceRoot":"","sources":["../../src/language-server/languageDetection.test.ts"],"names":[],"mappings":";;AAAA,iCAAgC;AAChC,2FAAiE;AACjE,2DAK4B;AAE5B,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IAC/B,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC3B,EAAE,CAAC,+EAA+E,EAAE,GAAG,EAAE;YACrF,KAAK,MAAM,CAAC,kBAAkB,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,mDAA+B,CAAC,EAAE,CAAC;gBAC9F,MAAM,CAAC,WAAW,CACd,IAAA,iCAAa,EAAC,iDAAY,CAAC,MAAM,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAChF,WAAW,CACd,CAAA;YACL,CAAC;QACL,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;YACvD,MAAM,CAAC,WAAW,CAAC,IAAA,iCAAa,EAAC,iDAAY,CAAC,MAAM,CAAC,iBAAiB,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;YACpG,MAAM,CAAC,WAAW,CAAC,IAAA,iCAAa,EAAC,iDAAY,CAAC,MAAM,CAAC,iBAAiB,EAAE,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,YAAY,CAAC,CAAA;QAChH,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,sEAAsE,EAAE,GAAG,EAAE;YAC5E,KAAK,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,uCAAmB,CAAC,EAAE,CAAC;gBACxE,MAAM,CAAC,WAAW,CACd,IAAA,iCAAa,EAAC,iDAAY,CAAC,MAAM,CAAC,eAAe,SAAS,EAAE,EAAE,SAAgB,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EACvF,UAAU,CACb,CAAA;YACL,CAAC;QACL,CAAC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;QACpC,MAAM,kBAAkB,GAAG,iDAAY,CAAC,MAAM,CAAC,gBAAgB,EAAE,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;QACrF,EAAE,CAAC,uEAAuE,EAAE,GAAG,EAAE;YAC7E,MAAM,CAAC,EAAE,CAAC,IAAA,0CAAsB,EAAC,kBAAkB,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,CAAA;YACnF,MAAM,CAAC,EAAE,CAAC,CAAC,IAAA,0CAAsB,EAAC,kBAAkB,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QAC1E,CAAC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;AACN,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Server, CredentialsProvider } from '@aws/language-server-runtimes/server-interface';
|
|
2
|
+
import { CodeWhispererServiceToken } from './codeWhispererService';
|
|
3
|
+
/**
|
|
4
|
+
*
|
|
5
|
+
* @param createService Inject service instance based on credentials provider.
|
|
6
|
+
* @returns NetTransform server
|
|
7
|
+
*/
|
|
8
|
+
export declare const NetTransformServerFactory: (createService: (credentialsProvider: CredentialsProvider) => CodeWhispererServiceToken) => Server;
|
|
9
|
+
/**
|
|
10
|
+
* Default NetTransformServer using Token authentication.
|
|
11
|
+
*/
|
|
12
|
+
export declare const NetTransformServer: Server;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NetTransformServer = exports.NetTransformServerFactory = void 0;
|
|
4
|
+
const codeWhispererService_1 = require("./codeWhispererService");
|
|
5
|
+
/**
|
|
6
|
+
*
|
|
7
|
+
* @param createService Inject service instance based on credentials provider.
|
|
8
|
+
* @returns NetTransform server
|
|
9
|
+
*/
|
|
10
|
+
const NetTransformServerFactory = createService => ({ credentialsProvider, lsp, workspace, telemetry, logging }) => {
|
|
11
|
+
const service = createService(credentialsProvider);
|
|
12
|
+
const onExecuteCommandHandler = async (params, _token) => {
|
|
13
|
+
//Placeholder for logic
|
|
14
|
+
};
|
|
15
|
+
// Do the thing
|
|
16
|
+
lsp.onExecuteCommand(onExecuteCommandHandler);
|
|
17
|
+
// Disposable
|
|
18
|
+
return () => {
|
|
19
|
+
// Do nothing
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
exports.NetTransformServerFactory = NetTransformServerFactory;
|
|
23
|
+
/**
|
|
24
|
+
* Default NetTransformServer using Token authentication.
|
|
25
|
+
*/
|
|
26
|
+
exports.NetTransformServer = (0, exports.NetTransformServerFactory)(credentialsProvider => new codeWhispererService_1.CodeWhispererServiceToken(credentialsProvider, {}));
|
|
27
|
+
//# sourceMappingURL=netTransformServer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"netTransformServer.js","sourceRoot":"","sources":["../../src/language-server/netTransformServer.ts"],"names":[],"mappings":";;;AAMA,iEAAkE;AAElE;;;;GAIG;AACI,MAAM,yBAAyB,GAGlC,aAAa,CAAC,EAAE,CAChB,CAAC,EAAE,mBAAmB,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;IAC5D,MAAM,OAAO,GAAG,aAAa,CAAC,mBAAmB,CAAC,CAAA;IAClD,MAAM,uBAAuB,GAAG,KAAK,EACjC,MAA4B,EAC5B,MAAyB,EACb,EAAE;QACd,uBAAuB;IAC3B,CAAC,CAAA;IAED,eAAe;IACf,GAAG,CAAC,gBAAgB,CAAC,uBAAuB,CAAC,CAAA;IAE7C,aAAa;IACb,OAAO,GAAG,EAAE;QACR,aAAa;IACjB,CAAC,CAAA;AACL,CAAC,CAAA;AApBQ,QAAA,yBAAyB,6BAoBjC;AAEL;;GAEG;AACU,QAAA,kBAAkB,GAAG,IAAA,iCAAyB,EACvD,mBAAmB,CAAC,EAAE,CAAC,IAAI,gDAAyB,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAChF,CAAA"}
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
export declare const CodeWhispererServerTokenProxy: import("@aws/language-server-runtimes").Server;
|
|
2
|
-
export declare const CodeWhispererSecurityScanServerTokenProxy: import("@aws/language-server-runtimes").Server;
|
|
1
|
+
export declare const CodeWhispererServerTokenProxy: import("@aws/language-server-runtimes/server-interface").Server;
|
|
2
|
+
export declare const CodeWhispererSecurityScanServerTokenProxy: import("@aws/language-server-runtimes/server-interface").Server;
|
|
3
|
+
export declare const QChatServerProxy: import("@aws/language-server-runtimes/server-interface").Server;
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CodeWhispererSecurityScanServerTokenProxy = exports.CodeWhispererServerTokenProxy = void 0;
|
|
3
|
+
exports.QChatServerProxy = exports.CodeWhispererSecurityScanServerTokenProxy = exports.CodeWhispererServerTokenProxy = void 0;
|
|
4
|
+
const chatSessionManagementService_1 = require("./chat/chatSessionManagementService");
|
|
4
5
|
const codeWhispererSecurityScanServer_1 = require("./codeWhispererSecurityScanServer");
|
|
5
6
|
const codeWhispererServer_1 = require("./codeWhispererServer");
|
|
6
7
|
const codeWhispererService_1 = require("./codeWhispererService");
|
|
8
|
+
const qChatServer_1 = require("./qChatServer");
|
|
7
9
|
exports.CodeWhispererServerTokenProxy = (0, codeWhispererServer_1.CodewhispererServerFactory)(credentialsProvider => {
|
|
8
10
|
let additionalAwsConfig = {};
|
|
9
11
|
const proxyUrl = process.env.HTTPS_PROXY ?? process.env.https_proxy;
|
|
@@ -32,4 +34,36 @@ exports.CodeWhispererSecurityScanServerTokenProxy = (0, codeWhispererSecuritySca
|
|
|
32
34
|
}
|
|
33
35
|
return new codeWhispererService_1.CodeWhispererServiceToken(credentialsProvider, additionalAwsConfig);
|
|
34
36
|
});
|
|
37
|
+
exports.QChatServerProxy = (0, qChatServer_1.QChatServer)(credentialsProvider => {
|
|
38
|
+
let clientOptions;
|
|
39
|
+
const proxyUrl = process.env.HTTPS_PROXY ?? process.env.https_proxy;
|
|
40
|
+
if (proxyUrl) {
|
|
41
|
+
const { NodeHttpHandler } = require('@smithy/node-http-handler');
|
|
42
|
+
/**
|
|
43
|
+
* TODO: consolidate the libraries we need for http proxy
|
|
44
|
+
*
|
|
45
|
+
* proxy-http-agent is not compatible with smithy's node-http-handler,
|
|
46
|
+
* so we will use hpagent to create a new http handler
|
|
47
|
+
*
|
|
48
|
+
* At the same time, hpagent is not compatible with v2 sdk
|
|
49
|
+
*/
|
|
50
|
+
const { HttpsProxyAgent } = require('hpagent');
|
|
51
|
+
// passing client options as a function so a new http handler can be created
|
|
52
|
+
clientOptions = () => {
|
|
53
|
+
// this mimics aws-sdk-v3-js-proxy
|
|
54
|
+
const agent = new HttpsProxyAgent({
|
|
55
|
+
proxy: proxyUrl,
|
|
56
|
+
});
|
|
57
|
+
return {
|
|
58
|
+
requestHandler: new NodeHttpHandler({
|
|
59
|
+
httpAgent: agent,
|
|
60
|
+
httpsAgent: agent,
|
|
61
|
+
}),
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
return chatSessionManagementService_1.ChatSessionManagementService.getInstance()
|
|
66
|
+
.withCredentialsProvider(credentialsProvider)
|
|
67
|
+
.withConfig(clientOptions);
|
|
68
|
+
});
|
|
35
69
|
//# sourceMappingURL=proxy-server.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy-server.js","sourceRoot":"","sources":["../../src/language-server/proxy-server.ts"],"names":[],"mappings":";;;AAAA,uFAA2E;AAC3E,+DAAkE;AAClE,iEAAkE;
|
|
1
|
+
{"version":3,"file":"proxy-server.js","sourceRoot":"","sources":["../../src/language-server/proxy-server.ts"],"names":[],"mappings":";;;AAAA,sFAAkF;AAElF,uFAA2E;AAC3E,+DAAkE;AAClE,iEAAkE;AAClE,+CAA2C;AAE9B,QAAA,6BAA6B,GAAG,IAAA,gDAA0B,EAAC,mBAAmB,CAAC,EAAE;IAC1F,IAAI,mBAAmB,GAAG,EAAE,CAAA;IAC5B,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,CAAA;IAEnE,IAAI,QAAQ,EAAE,CAAC;QACX,MAAM,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAA;QACzD,MAAM,UAAU,GAAG,iBAAiB,CAAC;YACjC,KAAK,EAAE,QAAQ;SAClB,CAAC,CAAA;QACF,mBAAmB,GAAG;YAClB,KAAK,EAAE,UAAU;SACpB,CAAA;IACL,CAAC;IACD,OAAO,IAAI,gDAAyB,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,CAAA;AAClF,CAAC,CAAC,CAAA;AAEW,QAAA,yCAAyC,GAAG,IAAA,yDAAuB,EAAC,mBAAmB,CAAC,EAAE;IACnG,IAAI,mBAAmB,GAAG,EAAE,CAAA;IAC5B,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,CAAA;IAEnE,IAAI,QAAQ,EAAE,CAAC;QACX,MAAM,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAA;QACzD,MAAM,UAAU,GAAG,iBAAiB,CAAC;YACjC,KAAK,EAAE,QAAQ;SAClB,CAAC,CAAA;QACF,mBAAmB,GAAG;YAClB,KAAK,EAAE,UAAU;SACpB,CAAA;IACL,CAAC;IACD,OAAO,IAAI,gDAAyB,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,CAAA;AAClF,CAAC,CAAC,CAAA;AAEW,QAAA,gBAAgB,GAAG,IAAA,yBAAW,EAAC,mBAAmB,CAAC,EAAE;IAC9D,IAAI,aAAmD,CAAA;IAEvD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,CAAA;IAEnE,IAAI,QAAQ,EAAE,CAAC;QACX,MAAM,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAAA;QAEhE;;;;;;;WAOG;QACH,MAAM,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;QAE9C,4EAA4E;QAC5E,aAAa,GAAG,GAAG,EAAE;YACjB,kCAAkC;YAClC,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC;gBAC9B,KAAK,EAAE,QAAQ;aAClB,CAAC,CAAA;YAEF,OAAO;gBACH,cAAc,EAAE,IAAI,eAAe,CAAC;oBAChC,SAAS,EAAE,KAAK;oBAChB,UAAU,EAAE,KAAK;iBACpB,CAAC;aACL,CAAA;QACL,CAAC,CAAA;IACL,CAAC;IAED,OAAO,2DAA4B,CAAC,WAAW,EAAE;SAC5C,uBAAuB,CAAC,mBAAmB,CAAC;SAC5C,UAAU,CAAC,aAAa,CAAC,CAAA;AAClC,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { CredentialsProvider, Server } from '@aws/language-server-runtimes/server-interface';
|
|
2
|
+
import { ChatSessionManagementService } from './chat/chatSessionManagementService';
|
|
3
|
+
export declare const QChatServer: (service: (credentialsProvider: CredentialsProvider) => ChatSessionManagementService) => Server;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.QChatServer = void 0;
|
|
4
|
+
const chatController_1 = require("./chat/chatController");
|
|
5
|
+
const QChatServer = (service) => features => {
|
|
6
|
+
const { chat, credentialsProvider, logging } = features;
|
|
7
|
+
const chatSessionManagementService = service(credentialsProvider);
|
|
8
|
+
const chatController = new chatController_1.ChatController(chatSessionManagementService, features);
|
|
9
|
+
chat.onTabAdd((...params) => {
|
|
10
|
+
logging.log('Received tab add request');
|
|
11
|
+
return chatController.onTabAdd(...params);
|
|
12
|
+
});
|
|
13
|
+
chat.onTabRemove((...params) => {
|
|
14
|
+
logging.log('Received tab remove request');
|
|
15
|
+
return chatController.onTabRemove(...params);
|
|
16
|
+
});
|
|
17
|
+
chat.onEndChat((...params) => {
|
|
18
|
+
logging.log('Received end chat request');
|
|
19
|
+
return chatController.onEndChat(...params);
|
|
20
|
+
});
|
|
21
|
+
chat.onChatPrompt((...params) => {
|
|
22
|
+
logging.log('Received chat prompt');
|
|
23
|
+
return chatController.onChatPrompt(...params);
|
|
24
|
+
});
|
|
25
|
+
logging.log('Q Chat server has been initialized');
|
|
26
|
+
return () => {
|
|
27
|
+
chatSessionManagementService.dispose();
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
exports.QChatServer = QChatServer;
|
|
31
|
+
//# sourceMappingURL=qChatServer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qChatServer.js","sourceRoot":"","sources":["../../src/language-server/qChatServer.ts"],"names":[],"mappings":";;;AACA,0DAAsD;AAG/C,MAAM,WAAW,GACpB,CAAC,OAAmF,EAAU,EAAE,CAChG,QAAQ,CAAC,EAAE;IACP,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAA;IAEvD,MAAM,4BAA4B,GAAiC,OAAO,CAAC,mBAAmB,CAAC,CAAA;IAE/F,MAAM,cAAc,GAAG,IAAI,+BAAc,CAAC,4BAA4B,EAAE,QAAQ,CAAC,CAAA;IAEjF,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,MAAM,EAAE,EAAE;QACxB,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAA;QACvC,OAAO,cAAc,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,CAAA;IAC7C,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,MAAM,EAAE,EAAE;QAC3B,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAA;QAC1C,OAAO,cAAc,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC,CAAA;IAChD,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,MAAM,EAAE,EAAE;QACzB,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAA;QACxC,OAAO,cAAc,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,CAAA;IAC9C,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,MAAM,EAAE,EAAE;QAC5B,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAA;QACnC,OAAO,cAAc,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,CAAA;IACjD,CAAC,CAAC,CAAA;IAEF,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAA;IAEjD,OAAO,GAAG,EAAE;QACR,4BAA4B,CAAC,OAAO,EAAE,CAAA;IAC1C,CAAC,CAAA;AACL,CAAC,CAAA;AAlCQ,QAAA,WAAW,eAkCnB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const testing_1 = require("@aws/language-server-runtimes/testing");
|
|
4
|
+
const ts_sinon_1 = require("ts-sinon");
|
|
5
|
+
const chatController_1 = require("./chat/chatController");
|
|
6
|
+
const chatSessionManagementService_1 = require("./chat/chatSessionManagementService");
|
|
7
|
+
const qChatServer_1 = require("./qChatServer");
|
|
8
|
+
describe('QChatServer', () => {
|
|
9
|
+
const mockTabId = 'mockTabId';
|
|
10
|
+
let disposeStub;
|
|
11
|
+
let testFeatures;
|
|
12
|
+
let disposeServer;
|
|
13
|
+
let chatSessionManagementService;
|
|
14
|
+
beforeEach(() => {
|
|
15
|
+
testFeatures = new testing_1.TestFeatures();
|
|
16
|
+
disposeStub = ts_sinon_1.default.stub(chatSessionManagementService_1.ChatSessionManagementService.prototype, 'dispose');
|
|
17
|
+
chatSessionManagementService = chatSessionManagementService_1.ChatSessionManagementService.getInstance().withCredentialsProvider(testFeatures.credentialsProvider);
|
|
18
|
+
const chatServerFactory = (0, qChatServer_1.QChatServer)(() => chatSessionManagementService);
|
|
19
|
+
disposeServer = chatServerFactory(testFeatures);
|
|
20
|
+
});
|
|
21
|
+
afterEach(() => {
|
|
22
|
+
ts_sinon_1.default.restore();
|
|
23
|
+
chatSessionManagementService_1.ChatSessionManagementService.reset();
|
|
24
|
+
testFeatures.dispose();
|
|
25
|
+
});
|
|
26
|
+
it('dispose should dispose all chat session services', () => {
|
|
27
|
+
disposeServer();
|
|
28
|
+
ts_sinon_1.default.assert.calledOnce(disposeStub);
|
|
29
|
+
});
|
|
30
|
+
it('calls the corresponding controller when tabAdd notification is received', () => {
|
|
31
|
+
const tabAddStub = ts_sinon_1.default.stub(chatController_1.ChatController.prototype, 'onTabAdd');
|
|
32
|
+
testFeatures.chat.onTabAdd.firstCall.firstArg({ tabId: mockTabId });
|
|
33
|
+
ts_sinon_1.default.assert.calledOnce(tabAddStub);
|
|
34
|
+
});
|
|
35
|
+
it('calls the corresponding controller when tabRemove notification is received', () => {
|
|
36
|
+
const tabRemoveStub = ts_sinon_1.default.stub(chatController_1.ChatController.prototype, 'onTabRemove');
|
|
37
|
+
testFeatures.chat.onTabRemove.firstCall.firstArg({ tabId: mockTabId });
|
|
38
|
+
ts_sinon_1.default.assert.calledOnce(tabRemoveStub);
|
|
39
|
+
});
|
|
40
|
+
it('calls the corresponding controller when endChat request is received', () => {
|
|
41
|
+
const endChatStub = ts_sinon_1.default.stub(chatController_1.ChatController.prototype, 'onEndChat');
|
|
42
|
+
testFeatures.chat.onEndChat.firstCall.firstArg({ tabId: mockTabId });
|
|
43
|
+
ts_sinon_1.default.assert.calledOnce(endChatStub);
|
|
44
|
+
});
|
|
45
|
+
it('calls the corresponding controller when chatPrompt request is received', () => {
|
|
46
|
+
const chatPromptStub = ts_sinon_1.default.stub(chatController_1.ChatController.prototype, 'onChatPrompt');
|
|
47
|
+
testFeatures.chat.onChatPrompt.firstCall.firstArg({ tabId: mockTabId, prompt: { prompt: 'Hello' } }, {});
|
|
48
|
+
ts_sinon_1.default.assert.calledOnce(chatPromptStub);
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
//# sourceMappingURL=qChatServer.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qChatServer.test.js","sourceRoot":"","sources":["../../src/language-server/qChatServer.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Diagnostic, Logging, Lsp, Position, Range, TextDocumentContentChangeEvent } from '@aws/language-server-runtimes/server-interface';
|
|
2
|
+
import { AggregatedCodeScanIssue, CodeScanIssue } from './types';
|
|
3
|
+
declare class SecurityScanDiagnosticsProvider {
|
|
4
|
+
private diagnostics;
|
|
5
|
+
private lsp;
|
|
6
|
+
private logging;
|
|
7
|
+
private findings;
|
|
8
|
+
constructor(lsp: Lsp, logging: Logging);
|
|
9
|
+
resetDiagnostics(): Promise<void>;
|
|
10
|
+
createDiagnostics(findings: AggregatedCodeScanIssue[]): Promise<void>;
|
|
11
|
+
mapScanIssueToDiagnostics(issue: CodeScanIssue): Diagnostic;
|
|
12
|
+
validateDiagnostics(uri: string, e: TextDocumentContentChangeEvent): Promise<void>;
|
|
13
|
+
getChangedDiagnosticRange(diagnosticRange: Range, documentChangeRange?: Range): Range;
|
|
14
|
+
isPositionInRange: (position: Position, range: Range) => boolean;
|
|
15
|
+
getLineOffset(range: Range, text: string): number;
|
|
16
|
+
createDiagnosticsRange(startLine: number, endLine: number): {
|
|
17
|
+
start: {
|
|
18
|
+
line: number;
|
|
19
|
+
character: number;
|
|
20
|
+
};
|
|
21
|
+
end: {
|
|
22
|
+
line: number;
|
|
23
|
+
character: number;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
publishDiagnostics(uri: string, diagnostics: Diagnostic[]): Promise<void>;
|
|
27
|
+
}
|
|
28
|
+
export default SecurityScanDiagnosticsProvider;
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const server_interface_1 = require("@aws/language-server-runtimes/server-interface");
|
|
4
|
+
const vscode_uri_1 = require("vscode-uri");
|
|
5
|
+
class SecurityScanDiagnosticsProvider {
|
|
6
|
+
constructor(lsp, logging) {
|
|
7
|
+
this.isPositionInRange = (position, range) => {
|
|
8
|
+
if (position.line < range.start.line || position.line > range.end.line) {
|
|
9
|
+
return false;
|
|
10
|
+
}
|
|
11
|
+
return true;
|
|
12
|
+
};
|
|
13
|
+
this.diagnostics = new Map();
|
|
14
|
+
this.lsp = lsp;
|
|
15
|
+
this.logging = logging;
|
|
16
|
+
this.findings = [];
|
|
17
|
+
}
|
|
18
|
+
async resetDiagnostics() {
|
|
19
|
+
await Promise.all(this.findings.map(finding => {
|
|
20
|
+
this.logging.log(`reset diagnostics for: ${finding.filePath}`);
|
|
21
|
+
this.publishDiagnostics(finding.filePath, []);
|
|
22
|
+
}));
|
|
23
|
+
this.diagnostics = new Map();
|
|
24
|
+
}
|
|
25
|
+
async createDiagnostics(findings) {
|
|
26
|
+
this.findings = findings;
|
|
27
|
+
for (const finding of findings) {
|
|
28
|
+
const path = vscode_uri_1.URI.file(finding.filePath).path;
|
|
29
|
+
const diagnostics = finding.issues.map(issue => this.mapScanIssueToDiagnostics(issue));
|
|
30
|
+
if (!this.diagnostics.has(path)) {
|
|
31
|
+
this.diagnostics.set(path, diagnostics);
|
|
32
|
+
}
|
|
33
|
+
this.diagnostics.set(path, [...(this.diagnostics.get(finding.filePath) || []), ...diagnostics]);
|
|
34
|
+
await this.publishDiagnostics(finding.filePath, diagnostics);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
mapScanIssueToDiagnostics(issue) {
|
|
38
|
+
return server_interface_1.Diagnostic.create(this.createDiagnosticsRange(issue.startLine, issue.endLine), `${issue.detectorName} - ${issue.description.text}`, server_interface_1.DiagnosticSeverity.Warning, issue.relatedVulnerabilities.join(','), 'CodeWhisperer');
|
|
39
|
+
}
|
|
40
|
+
async validateDiagnostics(uri, e) {
|
|
41
|
+
const path = vscode_uri_1.URI.parse(uri).path;
|
|
42
|
+
const currentDiagnostics = this.diagnostics.get(path);
|
|
43
|
+
if (!currentDiagnostics) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
// range will be omitted if the change is for entire document
|
|
47
|
+
const changeStartLine = e.range?.start?.line;
|
|
48
|
+
const changeEndLine = e.range?.end?.line;
|
|
49
|
+
const nextDiagnostics = currentDiagnostics.map(diagnostic => {
|
|
50
|
+
if (changeStartLine && changeStartLine > diagnostic.range.end.line) {
|
|
51
|
+
// change has no overlap with diagnostic
|
|
52
|
+
return diagnostic;
|
|
53
|
+
}
|
|
54
|
+
else if (changeEndLine && changeEndLine < diagnostic.range.start.line) {
|
|
55
|
+
// change is before diagnostic range, update diagnostic range
|
|
56
|
+
const lineOffset = this.getLineOffset(e.range, e.text);
|
|
57
|
+
return {
|
|
58
|
+
...diagnostic,
|
|
59
|
+
range: this.createDiagnosticsRange(diagnostic.range.start.line + lineOffset, diagnostic.range.end.line + lineOffset),
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
// change is within diagnostic range, update range and messaging to re-scan
|
|
64
|
+
const newRange = this.getChangedDiagnosticRange(diagnostic.range, e.range);
|
|
65
|
+
return diagnostic.severity === 2
|
|
66
|
+
? {
|
|
67
|
+
...diagnostic,
|
|
68
|
+
severity: 3,
|
|
69
|
+
message: `Re-scan to validate the fix: ${diagnostic.message}`,
|
|
70
|
+
range: newRange,
|
|
71
|
+
}
|
|
72
|
+
: diagnostic;
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
this.diagnostics.set(path, nextDiagnostics);
|
|
76
|
+
await this.publishDiagnostics(uri, nextDiagnostics);
|
|
77
|
+
}
|
|
78
|
+
getChangedDiagnosticRange(diagnosticRange, documentChangeRange) {
|
|
79
|
+
if (!documentChangeRange) {
|
|
80
|
+
return diagnosticRange;
|
|
81
|
+
}
|
|
82
|
+
const start = Math.max(diagnosticRange.start.line, documentChangeRange.start.line);
|
|
83
|
+
const end = Math.min(diagnosticRange.end.line, documentChangeRange.end.line);
|
|
84
|
+
return this.createDiagnosticsRange(start, end === start ? start + 1 : end);
|
|
85
|
+
}
|
|
86
|
+
getLineOffset(range, text) {
|
|
87
|
+
const originLines = range.end.line - range.start.line + 1;
|
|
88
|
+
const changedLines = text.split('\n').length;
|
|
89
|
+
return changedLines - originLines;
|
|
90
|
+
}
|
|
91
|
+
createDiagnosticsRange(startLine, endLine) {
|
|
92
|
+
return {
|
|
93
|
+
start: {
|
|
94
|
+
line: startLine,
|
|
95
|
+
character: 0,
|
|
96
|
+
},
|
|
97
|
+
end: {
|
|
98
|
+
line: endLine,
|
|
99
|
+
character: 0,
|
|
100
|
+
},
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
async publishDiagnostics(uri, diagnostics) {
|
|
104
|
+
await this.lsp.publishDiagnostics({
|
|
105
|
+
uri,
|
|
106
|
+
diagnostics: diagnostics,
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
exports.default = SecurityScanDiagnosticsProvider;
|
|
111
|
+
//# sourceMappingURL=securityScanDiagnosticsProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"securityScanDiagnosticsProvider.js","sourceRoot":"","sources":["../../../src/language-server/securityScan/securityScanDiagnosticsProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,24 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import { Workspace } from '@aws/language-server-runtimes/
|
|
2
|
+
import { Logging, Workspace, CancellationToken, CancellationTokenSource } from '@aws/language-server-runtimes/server-interface';
|
|
3
3
|
import { ArtifactMap, CreateUploadUrlResponse } from '../../client/token/codewhispererbearertokenclient';
|
|
4
4
|
import { CodeWhispererServiceToken } from '../codeWhispererService';
|
|
5
|
-
import { AggregatedCodeScanIssue
|
|
5
|
+
import { AggregatedCodeScanIssue } from './types';
|
|
6
6
|
export declare class SecurityScanHandler {
|
|
7
7
|
private client;
|
|
8
8
|
private workspace;
|
|
9
|
-
|
|
9
|
+
private logging;
|
|
10
|
+
tokenSource: CancellationTokenSource;
|
|
11
|
+
constructor(client: CodeWhispererServiceToken, workspace: Workspace, logging: Logging);
|
|
10
12
|
getMd5(content: Buffer): string;
|
|
13
|
+
throwIfCancelled(token: CancellationToken): void;
|
|
14
|
+
cancelSecurityScan(): void;
|
|
11
15
|
createCodeResourcePresignedUrlHandler(zipContent: Buffer): Promise<ArtifactMap>;
|
|
12
|
-
uploadArtifactToS3(zipBuffer: Buffer, resp: CreateUploadUrlResponse): Promise<
|
|
16
|
+
uploadArtifactToS3(zipBuffer: Buffer, resp: CreateUploadUrlResponse): Promise<void>;
|
|
13
17
|
createScanJob(artifactMap: ArtifactMap, languageName: string): Promise<import("aws-sdk/lib/request").PromiseResult<import("../../client/token/codewhispererbearertokenclient").StartCodeAnalysisResponse, import("aws-sdk").AWSError>>;
|
|
14
18
|
pollScanJobStatus(jobId: string): Promise<string>;
|
|
15
19
|
listScanResults(jobId: string, projectPath: string): Promise<AggregatedCodeScanIssue[]>;
|
|
16
|
-
mapToAggregatedList(
|
|
20
|
+
mapToAggregatedList(json: string, projectPath: string): Promise<AggregatedCodeScanIssue[]>;
|
|
21
|
+
}
|
|
22
|
+
export declare class SecurityScanCancelledError extends Error {
|
|
23
|
+
constructor(message?: string);
|
|
17
24
|
}
|