@aws/lsp-codewhisperer 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/README.md +19 -0
  3. package/out/client/sigv4/codewhisperer.d.ts +3 -0
  4. package/out/client/sigv4/codewhisperer.js +14 -0
  5. package/out/client/sigv4/codewhisperer.js.map +1 -0
  6. package/out/client/sigv4/service.json +346 -0
  7. package/out/client/token/bearer-token-service.json +1627 -0
  8. package/out/client/token/codewhisperer.d.ts +14 -0
  9. package/out/client/token/codewhisperer.js +23 -0
  10. package/out/client/token/codewhisperer.js.map +1 -0
  11. package/out/index.d.ts +2 -0
  12. package/out/index.js +19 -0
  13. package/out/index.js.map +1 -0
  14. package/out/language-server/auto-trigger/autoTrigger.d.ts +38 -0
  15. package/out/language-server/auto-trigger/autoTrigger.js +119 -0
  16. package/out/language-server/auto-trigger/autoTrigger.js.map +1 -0
  17. package/out/language-server/auto-trigger/autoTrigger.test.d.ts +1 -0
  18. package/out/language-server/auto-trigger/autoTrigger.test.js +82 -0
  19. package/out/language-server/auto-trigger/autoTrigger.test.js.map +1 -0
  20. package/out/language-server/auto-trigger/coefficients.json +405 -0
  21. package/out/language-server/codeWhispererSecurityScanServer.d.ts +4 -0
  22. package/out/language-server/codeWhispererSecurityScanServer.js +76 -0
  23. package/out/language-server/codeWhispererSecurityScanServer.js.map +1 -0
  24. package/out/language-server/codeWhispererServer.d.ts +7 -0
  25. package/out/language-server/codeWhispererServer.js +425 -0
  26. package/out/language-server/codeWhispererServer.js.map +1 -0
  27. package/out/language-server/codeWhispererServer.test.d.ts +1 -0
  28. package/out/language-server/codeWhispererServer.test.js +1218 -0
  29. package/out/language-server/codeWhispererServer.test.js.map +1 -0
  30. package/out/language-server/codeWhispererService.d.ts +84 -0
  31. package/out/language-server/codeWhispererService.js +168 -0
  32. package/out/language-server/codeWhispererService.js.map +1 -0
  33. package/out/language-server/dependencyGraph/commonUtil.d.ts +2 -0
  34. package/out/language-server/dependencyGraph/commonUtil.js +20 -0
  35. package/out/language-server/dependencyGraph/commonUtil.js.map +1 -0
  36. package/out/language-server/dependencyGraph/constants.d.ts +2 -0
  37. package/out/language-server/dependencyGraph/constants.js +6 -0
  38. package/out/language-server/dependencyGraph/constants.js.map +1 -0
  39. package/out/language-server/dependencyGraph/csharpDependencyGraph.d.ts +27 -0
  40. package/out/language-server/dependencyGraph/csharpDependencyGraph.js +145 -0
  41. package/out/language-server/dependencyGraph/csharpDependencyGraph.js.map +1 -0
  42. package/out/language-server/dependencyGraph/csharpDependencyGraph.test.d.ts +1 -0
  43. package/out/language-server/dependencyGraph/csharpDependencyGraph.test.js +341 -0
  44. package/out/language-server/dependencyGraph/csharpDependencyGraph.test.js.map +1 -0
  45. package/out/language-server/dependencyGraph/dependencyGraph.d.ts +125 -0
  46. package/out/language-server/dependencyGraph/dependencyGraph.js +152 -0
  47. package/out/language-server/dependencyGraph/dependencyGraph.js.map +1 -0
  48. package/out/language-server/dependencyGraph/dependencyGraphFactory.d.ts +15 -0
  49. package/out/language-server/dependencyGraph/dependencyGraphFactory.js +22 -0
  50. package/out/language-server/dependencyGraph/dependencyGraphFactory.js.map +1 -0
  51. package/out/language-server/languageDetection.d.ts +3 -0
  52. package/out/language-server/languageDetection.js +56 -0
  53. package/out/language-server/languageDetection.js.map +1 -0
  54. package/out/language-server/mergeRightUtils.d.ts +6 -0
  55. package/out/language-server/mergeRightUtils.js +37 -0
  56. package/out/language-server/mergeRightUtils.js.map +1 -0
  57. package/out/language-server/mergeRightUtils.test.d.ts +1 -0
  58. package/out/language-server/mergeRightUtils.test.js +53 -0
  59. package/out/language-server/mergeRightUtils.test.js.map +1 -0
  60. package/out/language-server/proxy-server.d.ts +2 -0
  61. package/out/language-server/proxy-server.js +35 -0
  62. package/out/language-server/proxy-server.js.map +1 -0
  63. package/out/language-server/securityScan/securityScanHandler.d.ts +17 -0
  64. package/out/language-server/securityScan/securityScanHandler.js +139 -0
  65. package/out/language-server/securityScan/securityScanHandler.js.map +1 -0
  66. package/out/language-server/securityScan/securityScanHandler.test.d.ts +1 -0
  67. package/out/language-server/securityScan/securityScanHandler.test.js +170 -0
  68. package/out/language-server/securityScan/securityScanHandler.test.js.map +1 -0
  69. package/out/language-server/securityScan/types.d.ts +49 -0
  70. package/out/language-server/securityScan/types.js +3 -0
  71. package/out/language-server/securityScan/types.js.map +1 -0
  72. package/out/language-server/session/sessionManager.d.ts +91 -0
  73. package/out/language-server/session/sessionManager.js +234 -0
  74. package/out/language-server/session/sessionManager.js.map +1 -0
  75. package/out/language-server/session/sessionManager.test.d.ts +1 -0
  76. package/out/language-server/session/sessionManager.test.js +584 -0
  77. package/out/language-server/session/sessionManager.test.js.map +1 -0
  78. package/out/language-server/telemetry/codePercentage.d.ts +17 -0
  79. package/out/language-server/telemetry/codePercentage.js +82 -0
  80. package/out/language-server/telemetry/codePercentage.js.map +1 -0
  81. package/out/language-server/telemetry/codePercentage.test.d.ts +1 -0
  82. package/out/language-server/telemetry/codePercentage.test.js +85 -0
  83. package/out/language-server/telemetry/codePercentage.test.js.map +1 -0
  84. package/out/language-server/telemetry/types.d.ts +68 -0
  85. package/out/language-server/telemetry/types.js +3 -0
  86. package/out/language-server/telemetry/types.js.map +1 -0
  87. package/out/language-server/telemetry/userTriggerDecision.test.d.ts +1 -0
  88. package/out/language-server/telemetry/userTriggerDecision.test.js +946 -0
  89. package/out/language-server/telemetry/userTriggerDecision.test.js.map +1 -0
  90. package/out/language-server/telemetry.test.d.ts +1 -0
  91. package/out/language-server/telemetry.test.js +96 -0
  92. package/out/language-server/telemetry.test.js.map +1 -0
  93. package/out/language-server/testUtils.d.ts +69 -0
  94. package/out/language-server/testUtils.js +90 -0
  95. package/out/language-server/testUtils.js.map +1 -0
  96. package/out/language-server/utils.d.ts +6 -0
  97. package/out/language-server/utils.js +31 -0
  98. package/out/language-server/utils.js.map +1 -0
  99. package/package.json +53 -0
  100. package/script/generateServiceClient.ts +242 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codeWhispererServer.test.js","sourceRoot":"","sources":["../../src/language-server/codeWhispererServer.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,84 @@
1
+ import { CredentialsProvider } from '@aws/language-server-runtimes/out/features';
2
+ import { AWSError } from 'aws-sdk';
3
+ import { PromiseResult } from 'aws-sdk/lib/request';
4
+ export interface Suggestion extends CodeWhispererTokenClient.Completion, CodeWhispererSigv4Client.Recommendation {
5
+ itemId: string;
6
+ }
7
+ export interface GenerateSuggestionsRequest extends CodeWhispererTokenClient.GenerateCompletionsRequest, CodeWhispererSigv4Client.GenerateRecommendationsRequest {
8
+ maxResults: number;
9
+ }
10
+ export type FileContext = GenerateSuggestionsRequest['fileContext'];
11
+ export interface ResponseContext {
12
+ requestId: string;
13
+ codewhispererSessionId: string;
14
+ nextToken?: string;
15
+ }
16
+ export interface GenerateSuggestionsResponse {
17
+ suggestions: Suggestion[];
18
+ responseContext: ResponseContext;
19
+ }
20
+ import CodeWhispererSigv4Client = require('../client/sigv4/codewhisperersigv4client');
21
+ import CodeWhispererTokenClient = require('../client/token/codewhispererbearertokenclient');
22
+ export declare abstract class CodeWhispererServiceBase {
23
+ shareCodeWhispererContentWithAWS: boolean;
24
+ abstract client: CodeWhispererSigv4Client | CodeWhispererTokenClient;
25
+ abstract generateSuggestions(request: GenerateSuggestionsRequest): Promise<GenerateSuggestionsResponse>;
26
+ }
27
+ export declare class CodeWhispererServiceIAM extends CodeWhispererServiceBase {
28
+ client: CodeWhispererSigv4Client;
29
+ private readonly codeWhispererRegion;
30
+ private readonly codeWhispererEndpoint;
31
+ constructor(credentialsProvider: CredentialsProvider);
32
+ generateSuggestions(request: GenerateSuggestionsRequest): Promise<GenerateSuggestionsResponse>;
33
+ generateItemId: () => string;
34
+ }
35
+ export declare class CodeWhispererServiceToken extends CodeWhispererServiceBase {
36
+ client: CodeWhispererTokenClient;
37
+ private readonly codeWhispererRegion;
38
+ private readonly codeWhispererEndpoint;
39
+ constructor(credentialsProvider: CredentialsProvider, additionalAwsConfig: any);
40
+ generateSuggestions(request: GenerateSuggestionsRequest): Promise<GenerateSuggestionsResponse>;
41
+ codeModernizerCreateUploadUrl(request: CodeWhispererTokenClient.CreateUploadUrlRequest): Promise<CodeWhispererTokenClient.CreateUploadUrlResponse>;
42
+ /**
43
+ * @description Use this function to start the transformation job.
44
+ * @param request
45
+ * @returns transformationJobId - String id for the Job
46
+ */
47
+ codeModernizerStartCodeTransformation(request: CodeWhispererTokenClient.StartTransformationRequest): Promise<PromiseResult<CodeWhispererTokenClient.StartTransformationResponse, AWSError>>;
48
+ /**
49
+ * @description Use this function to stop the transformation job.
50
+ * @param request
51
+ * @returns transformationJobId - String id for the Job
52
+ */
53
+ codeModernizerStopCodeTransformation(request: CodeWhispererTokenClient.StopTransformationRequest): Promise<PromiseResult<CodeWhispererTokenClient.StopTransformationResponse, AWSError>>;
54
+ /**
55
+ * @description Use this function to get the status of the code transformation. We should
56
+ * be polling this function periodically to get updated results. When this function
57
+ * returns COMPLETED we know the transformation is done.
58
+ */
59
+ codeModernizerGetCodeTransformation(request: CodeWhispererTokenClient.GetTransformationRequest): Promise<PromiseResult<CodeWhispererTokenClient.GetTransformationResponse, AWSError>>;
60
+ /**
61
+ * @description After starting a transformation use this function to display the LLM
62
+ * transformation plan to the user.
63
+ * @params tranformationJobId - String id returned from StartCodeTransformationResponse
64
+ */
65
+ codeModernizerGetCodeTransformationPlan(request: CodeWhispererTokenClient.GetTransformationPlanRequest): Promise<PromiseResult<CodeWhispererTokenClient.GetTransformationPlanResponse, AWSError>>;
66
+ /**
67
+ * @description get a pre-signed url to upload source code into S3 bucket
68
+ */
69
+ createUploadUrl(request: CodeWhispererTokenClient.CreateUploadUrlRequest): Promise<PromiseResult<CodeWhispererTokenClient.CreateUploadUrlResponse, AWSError>>;
70
+ /**
71
+ * @description Once source code uploaded to S3, send a request to run security scan on uploaded source code.
72
+ */
73
+ startCodeAnalysis(request: CodeWhispererTokenClient.StartCodeAnalysisRequest): Promise<PromiseResult<CodeWhispererTokenClient.StartCodeAnalysisResponse, AWSError>>;
74
+ /**
75
+ * @description Send a request to get the code scan status detail.
76
+ */
77
+ getCodeAnalysis(request: CodeWhispererTokenClient.GetCodeAnalysisRequest): Promise<PromiseResult<CodeWhispererTokenClient.GetCodeAnalysisResponse, AWSError>>;
78
+ /**
79
+ * @description Once scan completed successfully, send a request to get list of all the findings for the given scan.
80
+ */
81
+ listCodeAnalysisFindings(request: CodeWhispererTokenClient.ListCodeAnalysisFindingsRequest): Promise<PromiseResult<CodeWhispererTokenClient.ListCodeAnalysisFindingsResponse, AWSError>>;
82
+ updateAwsConfiguration: (awsConfig: any) => void;
83
+ generateItemId: () => string;
84
+ }
@@ -0,0 +1,168 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CodeWhispererServiceToken = exports.CodeWhispererServiceIAM = exports.CodeWhispererServiceBase = void 0;
4
+ const aws_sdk_1 = require("aws-sdk");
5
+ const uuid_1 = require("uuid");
6
+ const codewhisperer_1 = require("../client/sigv4/codewhisperer");
7
+ const codewhisperer_2 = require("../client/token/codewhisperer");
8
+ const AWS = require("aws-sdk");
9
+ // Right now the only difference between the token client and the IAM client for codewhsiperer is the difference in function name
10
+ // This abstract class can grow in the future to account for any additional changes across the clients
11
+ class CodeWhispererServiceBase {
12
+ constructor() {
13
+ this.shareCodeWhispererContentWithAWS = false;
14
+ }
15
+ }
16
+ exports.CodeWhispererServiceBase = CodeWhispererServiceBase;
17
+ class CodeWhispererServiceIAM extends CodeWhispererServiceBase {
18
+ constructor(credentialsProvider) {
19
+ super();
20
+ this.codeWhispererRegion = 'us-east-1';
21
+ this.codeWhispererEndpoint = 'https://codewhisperer.us-east-1.amazonaws.com/';
22
+ this.generateItemId = () => (0, uuid_1.v4)();
23
+ const options = {
24
+ region: this.codeWhispererRegion,
25
+ endpoint: this.codeWhispererEndpoint,
26
+ credentialProvider: new aws_sdk_1.CredentialProviderChain([
27
+ () => credentialsProvider.getCredentials('iam'),
28
+ ]),
29
+ onRequestSetup: [
30
+ req => {
31
+ req.on('build', ({ httpRequest }) => {
32
+ httpRequest.headers['x-amzn-codewhisperer-optout'] = `${!this.shareCodeWhispererContentWithAWS}`;
33
+ });
34
+ },
35
+ ],
36
+ };
37
+ this.client = (0, codewhisperer_1.createCodeWhispererSigv4Client)(options);
38
+ }
39
+ async generateSuggestions(request) {
40
+ // add cancellation check
41
+ // add error check
42
+ const response = await this.client.generateRecommendations(request).promise();
43
+ const responseContext = {
44
+ requestId: response?.$response?.requestId,
45
+ codewhispererSessionId: response?.$response?.httpResponse?.headers['x-amzn-sessionid'],
46
+ nextToken: response.nextToken,
47
+ };
48
+ for (const recommendation of response?.recommendations ?? []) {
49
+ Object.assign(recommendation, { itemId: this.generateItemId() });
50
+ }
51
+ return {
52
+ suggestions: response.recommendations,
53
+ responseContext,
54
+ };
55
+ }
56
+ }
57
+ exports.CodeWhispererServiceIAM = CodeWhispererServiceIAM;
58
+ class CodeWhispererServiceToken extends CodeWhispererServiceBase {
59
+ constructor(credentialsProvider, additionalAwsConfig) {
60
+ super();
61
+ this.codeWhispererRegion = 'us-east-1';
62
+ this.codeWhispererEndpoint = 'https://codewhisperer.us-east-1.amazonaws.com/';
63
+ this.updateAwsConfiguration = (awsConfig) => {
64
+ if (awsConfig.proxy) {
65
+ AWS.config.update({
66
+ httpOptions: { agent: awsConfig.proxy },
67
+ });
68
+ }
69
+ };
70
+ this.generateItemId = () => (0, uuid_1.v4)();
71
+ this.updateAwsConfiguration(additionalAwsConfig);
72
+ const options = {
73
+ region: this.codeWhispererRegion,
74
+ endpoint: this.codeWhispererEndpoint,
75
+ onRequestSetup: [
76
+ req => {
77
+ req.on('build', ({ httpRequest }) => {
78
+ const creds = credentialsProvider.getCredentials('bearer');
79
+ if (!creds?.token) {
80
+ throw new Error('Authorization failed, bearer token is not set');
81
+ }
82
+ httpRequest.headers['Authorization'] = `Bearer ${creds.token}`;
83
+ httpRequest.headers['x-amzn-codewhisperer-optout'] = `${!this.shareCodeWhispererContentWithAWS}`;
84
+ });
85
+ },
86
+ ],
87
+ };
88
+ this.client = (0, codewhisperer_2.createCodeWhispererTokenClient)(options);
89
+ }
90
+ async generateSuggestions(request) {
91
+ // add cancellation check
92
+ // add error check
93
+ const response = await this.client.generateCompletions(request).promise();
94
+ const responseContext = {
95
+ requestId: response?.$response?.requestId,
96
+ codewhispererSessionId: response?.$response?.httpResponse?.headers['x-amzn-sessionid'],
97
+ nextToken: response.nextToken,
98
+ };
99
+ for (const recommendation of response?.completions ?? []) {
100
+ Object.assign(recommendation, { itemId: this.generateItemId() });
101
+ }
102
+ return {
103
+ suggestions: response.completions,
104
+ responseContext,
105
+ };
106
+ }
107
+ async codeModernizerCreateUploadUrl(request) {
108
+ return this.client.createUploadUrl(request).promise();
109
+ }
110
+ /**
111
+ * @description Use this function to start the transformation job.
112
+ * @param request
113
+ * @returns transformationJobId - String id for the Job
114
+ */
115
+ async codeModernizerStartCodeTransformation(request) {
116
+ return await this.client.startTransformation(request).promise();
117
+ }
118
+ /**
119
+ * @description Use this function to stop the transformation job.
120
+ * @param request
121
+ * @returns transformationJobId - String id for the Job
122
+ */
123
+ async codeModernizerStopCodeTransformation(request) {
124
+ return await this.client.stopTransformation(request).promise();
125
+ }
126
+ /**
127
+ * @description Use this function to get the status of the code transformation. We should
128
+ * be polling this function periodically to get updated results. When this function
129
+ * returns COMPLETED we know the transformation is done.
130
+ */
131
+ async codeModernizerGetCodeTransformation(request) {
132
+ return await this.client.getTransformation(request).promise();
133
+ }
134
+ /**
135
+ * @description After starting a transformation use this function to display the LLM
136
+ * transformation plan to the user.
137
+ * @params tranformationJobId - String id returned from StartCodeTransformationResponse
138
+ */
139
+ async codeModernizerGetCodeTransformationPlan(request) {
140
+ return this.client.getTransformationPlan(request).promise();
141
+ }
142
+ /**
143
+ * @description get a pre-signed url to upload source code into S3 bucket
144
+ */
145
+ async createUploadUrl(request) {
146
+ return this.client.createUploadUrl(request).promise();
147
+ }
148
+ /**
149
+ * @description Once source code uploaded to S3, send a request to run security scan on uploaded source code.
150
+ */
151
+ async startCodeAnalysis(request) {
152
+ return this.client.startCodeAnalysis(request).promise();
153
+ }
154
+ /**
155
+ * @description Send a request to get the code scan status detail.
156
+ */
157
+ async getCodeAnalysis(request) {
158
+ return this.client.getCodeAnalysis(request).promise();
159
+ }
160
+ /**
161
+ * @description Once scan completed successfully, send a request to get list of all the findings for the given scan.
162
+ */
163
+ async listCodeAnalysisFindings(request) {
164
+ return this.client.listCodeAnalysisFindings(request).promise();
165
+ }
166
+ }
167
+ exports.CodeWhispererServiceToken = CodeWhispererServiceToken;
168
+ //# sourceMappingURL=codeWhispererService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codeWhispererService.js","sourceRoot":"","sources":["../../src/language-server/codeWhispererService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function asyncCallWithTimeout<T>(asyncPromise: Promise<T>, message: string, timeLimit: number): Promise<T>;
2
+ export declare function sleep(duration?: number): Promise<void>;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sleep = exports.asyncCallWithTimeout = void 0;
4
+ function asyncCallWithTimeout(asyncPromise, message, timeLimit) {
5
+ let timeoutHandle;
6
+ const timeoutPromise = new Promise((_resolve, reject) => {
7
+ timeoutHandle = setTimeout(() => reject(new Error(message)), timeLimit);
8
+ });
9
+ return Promise.race([asyncPromise, timeoutPromise]).then(result => {
10
+ clearTimeout(timeoutHandle);
11
+ return result;
12
+ });
13
+ }
14
+ exports.asyncCallWithTimeout = asyncCallWithTimeout;
15
+ // Todo: duplicate function. remove it when other PRs are merged
16
+ function sleep(duration = 0) {
17
+ return new Promise(r => setTimeout(r, Math.max(duration, 0)));
18
+ }
19
+ exports.sleep = sleep;
20
+ //# sourceMappingURL=commonUtil.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commonUtil.js","sourceRoot":"","sources":["../../../src/language-server/dependencyGraph/commonUtil.ts"],"names":[],"mappings":";;;AAAA,SAAgB,oBAAoB,CAAI,YAAwB,EAAE,OAAe,EAAE,SAAiB;IAChG,IAAI,aAA6B,CAAA;IACjC,MAAM,cAAc,GAAG,IAAI,OAAO,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE;QACpD,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;IAC3E,CAAC,CAAC,CAAA;IACF,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;QAC9D,YAAY,CAAC,aAAa,CAAC,CAAA;QAC3B,OAAO,MAAW,CAAA;IACtB,CAAC,CAAC,CAAA;AACN,CAAC;AATD,oDASC;AAED,gEAAgE;AAChE,SAAgB,KAAK,CAAC,QAAQ,GAAG,CAAC;IAC9B,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;AACjE,CAAC;AAFD,sBAEC"}
@@ -0,0 +1,2 @@
1
+ export declare const codeScanTruncDirPrefix = "codewhisperer_scan";
2
+ export declare const codeScanCsharpPayloadSizeLimitBytes: number;
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.codeScanCsharpPayloadSizeLimitBytes = exports.codeScanTruncDirPrefix = void 0;
4
+ exports.codeScanTruncDirPrefix = 'codewhisperer_scan';
5
+ exports.codeScanCsharpPayloadSizeLimitBytes = Math.pow(2, 20); // 1 MB
6
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/language-server/dependencyGraph/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,sBAAsB,GAAG,oBAAoB,CAAA;AAC7C,QAAA,mCAAmC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA,CAAC,OAAO"}
@@ -0,0 +1,27 @@
1
+ import { Workspace } from '@aws/language-server-runtimes/out/features';
2
+ import { DependencyGraph, Truncation } from './dependencyGraph';
3
+ export declare const importRegex: RegExp;
4
+ export declare class CsharpDependencyGraph extends DependencyGraph {
5
+ namespaceToFilepathDirectory: Map<string, Set<string>>;
6
+ constructor(workspace: Workspace);
7
+ /**
8
+ * Creates a dictionary of namespace to associated filepaths. There is no direct way to find a file which contains the namespace
9
+ * used as part of the dependecy of a file. Also, more than one file can have same namespace name. Hence, this method reads all
10
+ * the files within given workspace and creates a dictionary of namespace name to set of filepaths.
11
+ * @param workspacePath provides absolute path for workspace
12
+ */
13
+ createNamespaceFilenameMapper(workspacePath: string): Promise<void>;
14
+ generateTruncation(uri: string): Promise<Truncation>;
15
+ searchDependency(uri: string): Promise<Set<string>>;
16
+ /**
17
+ * Get a list of all the imports being used in the given input content.
18
+ * @param content file content to detect import lines
19
+ * @returns list of import lines
20
+ */
21
+ readImports(content: string): string[];
22
+ getDependencies(imports: string[]): Set<string>;
23
+ traverseDir(dirPath: string): Promise<void>;
24
+ getPayloadSizeLimitInBytes(): number;
25
+ }
26
+ export declare class CsharpDependencyGraphError extends Error {
27
+ }
@@ -0,0 +1,145 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CsharpDependencyGraphError = exports.CsharpDependencyGraph = exports.importRegex = void 0;
4
+ const path = require("path");
5
+ const commonUtil_1 = require("./commonUtil");
6
+ const CodeWhispererConstants = require("./constants");
7
+ const dependencyGraph_1 = require("./dependencyGraph");
8
+ exports.importRegex = /((global\s+)?using\s+(static\s+)?)([A-Z]\w*\s*?=\s*)?([A-Z]\w*(.[A-Z]\w*)*);/gm;
9
+ class CsharpDependencyGraph extends dependencyGraph_1.DependencyGraph {
10
+ constructor(workspace) {
11
+ super(workspace);
12
+ // This contains a dictionary of namespace name and the set of filepaths, where namespace has been defined.
13
+ this.namespaceToFilepathDirectory = new Map();
14
+ }
15
+ /**
16
+ * Creates a dictionary of namespace to associated filepaths. There is no direct way to find a file which contains the namespace
17
+ * used as part of the dependecy of a file. Also, more than one file can have same namespace name. Hence, this method reads all
18
+ * the files within given workspace and creates a dictionary of namespace name to set of filepaths.
19
+ * @param workspacePath provides absolute path for workspace
20
+ */
21
+ async createNamespaceFilenameMapper(workspacePath) {
22
+ const files = await this.workspace.fs.readdir(workspacePath, true);
23
+ const csharpFiles = files.filter(f => f.name.match(/.*.cs$/gi) && f.isFile());
24
+ const searchRegEx = new RegExp('namespace ([A-Z]\\w*(.[A-Z]\\w*)*)', 'g');
25
+ for (const file of csharpFiles) {
26
+ const absFilePath = path.join(file.path, file.name);
27
+ const content = await this.workspace.fs.readFile(absFilePath);
28
+ if (!content) {
29
+ continue;
30
+ }
31
+ for (const matchedStr of content.matchAll(searchRegEx)) {
32
+ if (this.namespaceToFilepathDirectory.has(matchedStr[1])) {
33
+ this.namespaceToFilepathDirectory.get(matchedStr[1])?.add(absFilePath);
34
+ }
35
+ else {
36
+ this.namespaceToFilepathDirectory.set(matchedStr[1], new Set([absFilePath]));
37
+ }
38
+ }
39
+ }
40
+ }
41
+ async generateTruncation(uri) {
42
+ const workspaceFolder = this.workspace.getWorkspaceFolder(uri);
43
+ const dirName = path.dirname(uri);
44
+ if (!dirName || !workspaceFolder) {
45
+ this._pickedSourceFiles.add(uri);
46
+ }
47
+ else {
48
+ await this.createNamespaceFilenameMapper(workspaceFolder.uri);
49
+ await this.searchDependency(uri);
50
+ await this.traverseDir(workspaceFolder.uri);
51
+ }
52
+ await (0, commonUtil_1.sleep)(1000);
53
+ const truncDirPath = this.getTruncDirPath();
54
+ this.copyFilesToTmpDir(this._pickedSourceFiles, truncDirPath);
55
+ const { zipFileBuffer, zipFileSize } = this.createZip(truncDirPath);
56
+ return {
57
+ rootDir: truncDirPath,
58
+ zipFileBuffer,
59
+ scannedFiles: new Set(this._pickedSourceFiles),
60
+ srcPayloadSizeInBytes: this._totalSize,
61
+ zipFileSizeInBytes: zipFileSize,
62
+ buildPayloadSizeInBytes: 0,
63
+ lines: this._totalLines,
64
+ };
65
+ }
66
+ async searchDependency(uri) {
67
+ const filePath = uri;
68
+ const q = [];
69
+ q.push(filePath);
70
+ while (q.length > 0) {
71
+ let count = q.length;
72
+ while (count > 0) {
73
+ if (this.exceedsSizeLimit(this._totalSize)) {
74
+ return this._pickedSourceFiles;
75
+ }
76
+ count -= 1;
77
+ const currentFilePath = q.shift();
78
+ if (currentFilePath === undefined) {
79
+ throw new Error('"undefined" is invalid for queued file.');
80
+ }
81
+ this._pickedSourceFiles.add(currentFilePath);
82
+ this._totalSize += (await this.workspace.fs.getFileSize(currentFilePath)).size;
83
+ const content = await this.workspace.fs.readFile(currentFilePath);
84
+ if (content) {
85
+ const imports = this.readImports(content);
86
+ const dependencies = this.getDependencies(imports);
87
+ dependencies.forEach(dependency => {
88
+ q.push(dependency);
89
+ });
90
+ }
91
+ }
92
+ }
93
+ return this._pickedSourceFiles;
94
+ }
95
+ /**
96
+ * Get a list of all the imports being used in the given input content.
97
+ * @param content file content to detect import lines
98
+ * @returns list of import lines
99
+ */
100
+ readImports(content) {
101
+ const lineBreakRegex = new RegExp('\\r?\\n', 'g');
102
+ this._totalLines += content.split(lineBreakRegex).length;
103
+ const importNamespaceRegex = new RegExp('(\\s*(global\\s+)?using\\s+(static\\s+)?)([A-Z]\\w*\\s*?=\\s*)?([A-Z]\\w*(.[A-Z]\\w*)*);', 'g');
104
+ const imports = [];
105
+ for (const matchedStr of content.matchAll(importNamespaceRegex)) {
106
+ imports.push(matchedStr[5]);
107
+ }
108
+ return imports;
109
+ }
110
+ getDependencies(imports) {
111
+ const dep = imports.map(importStr => {
112
+ const files = this.namespaceToFilepathDirectory.get(importStr);
113
+ return files?.size ? Array.from(files) : [];
114
+ });
115
+ return new Set(dep.flat());
116
+ }
117
+ async traverseDir(dirPath) {
118
+ if (this.exceedsSizeLimit(this._totalSize)) {
119
+ return;
120
+ }
121
+ const files = await this.workspace.fs.readdir(dirPath, true);
122
+ const csharpFiles = files.filter(f => f.name.match(/.*.cs$/gi) && f.isFile());
123
+ for (const file of csharpFiles) {
124
+ const absFilePath = path.join(file.path, file.name);
125
+ const fileSize = (await this.workspace.fs.getFileSize(absFilePath)).size;
126
+ const doesExceedsSize = this.exceedsSizeLimit(this._totalSize + fileSize);
127
+ this.isProjectTruncated = this.isProjectTruncated || doesExceedsSize;
128
+ if (doesExceedsSize) {
129
+ return;
130
+ }
131
+ if (!this._pickedSourceFiles.has(absFilePath)) {
132
+ await this.searchDependency(absFilePath);
133
+ }
134
+ }
135
+ }
136
+ // Payload Size for C#: 1MB
137
+ getPayloadSizeLimitInBytes() {
138
+ return CodeWhispererConstants.codeScanCsharpPayloadSizeLimitBytes;
139
+ }
140
+ }
141
+ exports.CsharpDependencyGraph = CsharpDependencyGraph;
142
+ class CsharpDependencyGraphError extends Error {
143
+ }
144
+ exports.CsharpDependencyGraphError = CsharpDependencyGraphError;
145
+ //# sourceMappingURL=csharpDependencyGraph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"csharpDependencyGraph.js","sourceRoot":"","sources":["../../../src/language-server/dependencyGraph/csharpDependencyGraph.ts"],"names":[],"mappings":"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"}