@aws/lsp-codewhisperer 0.0.27 → 0.0.28

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 (553) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/README.md +59 -1
  3. package/node_modules/@amzn/codewhisperer-streaming/node_modules/@smithy/abort-controller/dist-types/AbortController.d.ts +16 -0
  4. package/node_modules/{@smithy/node-http-handler → @amzn/codewhisperer-streaming}/node_modules/@smithy/abort-controller/dist-types/AbortSignal.d.ts +6 -3
  5. package/node_modules/@amzn/codewhisperer-streaming/node_modules/@smithy/abort-controller/dist-types/ts3.4/AbortController.d.ts +16 -0
  6. package/node_modules/{@smithy/node-http-handler → @amzn/codewhisperer-streaming}/node_modules/@smithy/abort-controller/dist-types/ts3.4/AbortSignal.d.ts +6 -3
  7. package/node_modules/{@smithy/node-http-handler → @amzn/codewhisperer-streaming}/node_modules/@smithy/abort-controller/package.json +6 -6
  8. package/node_modules/@amzn/codewhisperer-streaming/node_modules/@smithy/node-http-handler/README.md +9 -0
  9. package/node_modules/{@smithy → @amzn/codewhisperer-streaming/node_modules/@smithy}/node-http-handler/dist-cjs/index.js +193 -76
  10. package/node_modules/{@smithy → @amzn/codewhisperer-streaming/node_modules/@smithy}/node-http-handler/dist-es/node-http-handler.js +39 -15
  11. package/node_modules/{@smithy → @amzn/codewhisperer-streaming/node_modules/@smithy}/node-http-handler/dist-es/node-http2-connection-manager.js +1 -1
  12. package/node_modules/{@smithy → @amzn/codewhisperer-streaming/node_modules/@smithy}/node-http-handler/dist-es/node-http2-handler.js +9 -1
  13. package/node_modules/{@smithy → @amzn/codewhisperer-streaming/node_modules/@smithy}/node-http-handler/dist-es/server.mock.js +9 -2
  14. package/node_modules/@amzn/codewhisperer-streaming/node_modules/@smithy/node-http-handler/dist-es/set-connection-timeout.js +36 -0
  15. package/node_modules/@amzn/codewhisperer-streaming/node_modules/@smithy/node-http-handler/dist-es/set-socket-keep-alive.js +22 -0
  16. package/node_modules/@amzn/codewhisperer-streaming/node_modules/@smithy/node-http-handler/dist-es/set-socket-timeout.js +22 -0
  17. package/node_modules/@amzn/codewhisperer-streaming/node_modules/@smithy/node-http-handler/dist-es/stream-collector/index.js +41 -0
  18. package/node_modules/@amzn/codewhisperer-streaming/node_modules/@smithy/node-http-handler/dist-es/timing.js +4 -0
  19. package/node_modules/{@smithy → @amzn/codewhisperer-streaming/node_modules/@smithy}/node-http-handler/dist-es/write-request-body.js +13 -9
  20. package/node_modules/{@smithy → @amzn/codewhisperer-streaming/node_modules/@smithy}/node-http-handler/dist-types/node-http-handler.d.ts +4 -2
  21. package/node_modules/@amzn/codewhisperer-streaming/node_modules/@smithy/node-http-handler/dist-types/set-connection-timeout.d.ts +7 -0
  22. package/node_modules/@amzn/codewhisperer-streaming/node_modules/@smithy/node-http-handler/dist-types/set-socket-keep-alive.d.ts +11 -0
  23. package/node_modules/@amzn/codewhisperer-streaming/node_modules/@smithy/node-http-handler/dist-types/set-socket-timeout.d.ts +7 -0
  24. package/node_modules/@amzn/codewhisperer-streaming/node_modules/@smithy/node-http-handler/dist-types/timing.d.ts +8 -0
  25. package/node_modules/{@smithy → @amzn/codewhisperer-streaming/node_modules/@smithy}/node-http-handler/dist-types/ts3.4/node-http-handler.d.ts +4 -2
  26. package/node_modules/@amzn/codewhisperer-streaming/node_modules/@smithy/node-http-handler/dist-types/ts3.4/set-connection-timeout.d.ts +3 -0
  27. package/node_modules/{@smithy/node-http-handler/dist-types → @amzn/codewhisperer-streaming/node_modules/@smithy/node-http-handler/dist-types/ts3.4}/set-socket-keep-alive.d.ts +7 -6
  28. package/node_modules/@amzn/codewhisperer-streaming/node_modules/@smithy/node-http-handler/dist-types/ts3.4/set-socket-timeout.d.ts +3 -0
  29. package/node_modules/@amzn/codewhisperer-streaming/node_modules/@smithy/node-http-handler/dist-types/ts3.4/timing.d.ts +8 -0
  30. package/node_modules/{@smithy → @amzn/codewhisperer-streaming/node_modules/@smithy}/node-http-handler/package.json +10 -10
  31. package/node_modules/{@smithy/node-http-handler → @amzn/codewhisperer-streaming}/node_modules/@smithy/protocol-http/dist-cjs/index.js +30 -8
  32. package/node_modules/{@smithy/node-http-handler → @amzn/codewhisperer-streaming}/node_modules/@smithy/protocol-http/dist-es/httpRequest.js +13 -8
  33. package/node_modules/@amzn/codewhisperer-streaming/node_modules/@smithy/protocol-http/dist-types/httpRequest.d.ts +53 -0
  34. package/node_modules/@amzn/codewhisperer-streaming/node_modules/@smithy/protocol-http/dist-types/ts3.4/httpRequest.d.ts +53 -0
  35. package/node_modules/{@smithy/node-http-handler → @amzn/codewhisperer-streaming}/node_modules/@smithy/protocol-http/package.json +6 -6
  36. package/node_modules/@smithy/types/dist-cjs/waiter.js +1 -0
  37. package/out/client/token/bearer-token-service.json +1650 -96
  38. package/out/constants.d.ts +3 -0
  39. package/out/constants.js +4 -1
  40. package/out/constants.js.map +1 -1
  41. package/out/language-server/amazonQServiceManager/qDeveloperProfiles.d.ts +38 -0
  42. package/out/language-server/amazonQServiceManager/qDeveloperProfiles.js +85 -0
  43. package/out/language-server/amazonQServiceManager/qDeveloperProfiles.js.map +1 -0
  44. package/out/language-server/chat/chatController.d.ts +1 -1
  45. package/out/language-server/chat/chatController.js +2 -2
  46. package/out/language-server/chat/chatController.js.map +1 -1
  47. package/out/language-server/codeWhispererServer.js +7 -32
  48. package/out/language-server/codeWhispererServer.js.map +1 -1
  49. package/out/language-server/codeWhispererService.d.ts +4 -0
  50. package/out/language-server/codeWhispererService.js +6 -0
  51. package/out/language-server/codeWhispererService.js.map +1 -1
  52. package/out/language-server/configuration/qConfigurationServer.d.ts +18 -1
  53. package/out/language-server/configuration/qConfigurationServer.js +107 -6
  54. package/out/language-server/configuration/qConfigurationServer.js.map +1 -1
  55. package/out/language-server/dependencyGraph/commonUtil.d.ts +0 -1
  56. package/out/language-server/dependencyGraph/commonUtil.js +0 -11
  57. package/out/language-server/dependencyGraph/commonUtil.js.map +1 -1
  58. package/out/language-server/dependencyGraph/dependencyGraph.js +2 -2
  59. package/out/language-server/dependencyGraph/dependencyGraph.js.map +1 -1
  60. package/out/language-server/netTransform/transformHandler.d.ts +3 -2
  61. package/out/language-server/netTransform/transformHandler.js +7 -2
  62. package/out/language-server/netTransform/transformHandler.js.map +1 -1
  63. package/out/language-server/netTransformServer.js +1 -1
  64. package/out/language-server/netTransformServer.js.map +1 -1
  65. package/out/language-server/telemetry/codeDiffTracker.js +15 -12
  66. package/out/language-server/telemetry/codeDiffTracker.js.map +1 -1
  67. package/out/language-server/utilities/supplementalContextUtil/codeParsingUtil.js +2 -2
  68. package/out/language-server/utilities/supplementalContextUtil/codeParsingUtil.js.map +1 -1
  69. package/out/language-server/utilities/supplementalContextUtil/crossFileContextUtil.js +2 -2
  70. package/out/language-server/utilities/supplementalContextUtil/crossFileContextUtil.js.map +1 -1
  71. package/out/language-server/utils.d.ts +1 -0
  72. package/out/language-server/utils.js +4 -0
  73. package/out/language-server/utils.js.map +1 -1
  74. package/package.json +8 -8
  75. package/node_modules/@smithy/node-http-handler/README.md +0 -4
  76. package/node_modules/@smithy/node-http-handler/dist-es/set-connection-timeout.js +0 -21
  77. package/node_modules/@smithy/node-http-handler/dist-es/set-socket-keep-alive.js +0 -8
  78. package/node_modules/@smithy/node-http-handler/dist-es/set-socket-timeout.js +0 -6
  79. package/node_modules/@smithy/node-http-handler/dist-es/stream-collector/index.js +0 -14
  80. package/node_modules/@smithy/node-http-handler/dist-types/set-connection-timeout.d.ts +0 -2
  81. package/node_modules/@smithy/node-http-handler/dist-types/set-socket-timeout.d.ts +0 -2
  82. package/node_modules/@smithy/node-http-handler/dist-types/ts3.4/set-connection-timeout.d.ts +0 -2
  83. package/node_modules/@smithy/node-http-handler/dist-types/ts3.4/set-socket-keep-alive.d.ts +0 -6
  84. package/node_modules/@smithy/node-http-handler/dist-types/ts3.4/set-socket-timeout.d.ts +0 -2
  85. package/node_modules/@smithy/node-http-handler/node_modules/@smithy/abort-controller/dist-types/AbortController.d.ts +0 -13
  86. package/node_modules/@smithy/node-http-handler/node_modules/@smithy/abort-controller/dist-types/ts3.4/AbortController.d.ts +0 -13
  87. package/node_modules/@smithy/node-http-handler/node_modules/@smithy/protocol-http/dist-types/httpRequest.d.ts +0 -23
  88. package/node_modules/@smithy/node-http-handler/node_modules/@smithy/protocol-http/dist-types/ts3.4/httpRequest.d.ts +0 -23
  89. package/out/language-server/auto-trigger/autoTrigger.test.d.ts +0 -1
  90. package/out/language-server/auto-trigger/autoTrigger.test.js +0 -82
  91. package/out/language-server/auto-trigger/autoTrigger.test.js.map +0 -1
  92. package/out/language-server/chat/chatController.test.d.ts +0 -1
  93. package/out/language-server/chat/chatController.test.js +0 -709
  94. package/out/language-server/chat/chatController.test.js.map +0 -1
  95. package/out/language-server/chat/chatEventParser.test.d.ts +0 -1
  96. package/out/language-server/chat/chatEventParser.test.js +0 -239
  97. package/out/language-server/chat/chatEventParser.test.js.map +0 -1
  98. package/out/language-server/chat/chatSessionManagementService.test.d.ts +0 -1
  99. package/out/language-server/chat/chatSessionManagementService.test.js +0 -77
  100. package/out/language-server/chat/chatSessionManagementService.test.js.map +0 -1
  101. package/out/language-server/chat/chatSessionService.test.d.ts +0 -1
  102. package/out/language-server/chat/chatSessionService.test.js +0 -86
  103. package/out/language-server/chat/chatSessionService.test.js.map +0 -1
  104. package/out/language-server/chat/contexts/documentContext.test.d.ts +0 -1
  105. package/out/language-server/chat/contexts/documentContext.test.js +0 -117
  106. package/out/language-server/chat/contexts/documentContext.test.js.map +0 -1
  107. package/out/language-server/chat/contexts/triggerContexts.test.d.ts +0 -1
  108. package/out/language-server/chat/contexts/triggerContexts.test.js +0 -81
  109. package/out/language-server/chat/contexts/triggerContexts.test.js.map +0 -1
  110. package/out/language-server/chat/contexts/utils.test.d.ts +0 -1
  111. package/out/language-server/chat/contexts/utils.test.js +0 -72
  112. package/out/language-server/chat/contexts/utils.test.js.map +0 -1
  113. package/out/language-server/chat/telemetry/chatTelemetryController.test.d.ts +0 -1
  114. package/out/language-server/chat/telemetry/chatTelemetryController.test.js +0 -195
  115. package/out/language-server/chat/telemetry/chatTelemetryController.test.js.map +0 -1
  116. package/out/language-server/codeWhispererServer.test.d.ts +0 -1
  117. package/out/language-server/codeWhispererServer.test.js +0 -1377
  118. package/out/language-server/codeWhispererServer.test.js.map +0 -1
  119. package/out/language-server/dependencyGraph/csharpDependencyGraph.test.d.ts +0 -1
  120. package/out/language-server/dependencyGraph/csharpDependencyGraph.test.js +0 -483
  121. package/out/language-server/dependencyGraph/csharpDependencyGraph.test.js.map +0 -1
  122. package/out/language-server/dependencyGraph/gitIgnoreFilter.d.ts +0 -7
  123. package/out/language-server/dependencyGraph/gitIgnoreFilter.js +0 -39
  124. package/out/language-server/dependencyGraph/gitIgnoreFilter.js.map +0 -1
  125. package/out/language-server/languageDetection.test.d.ts +0 -1
  126. package/out/language-server/languageDetection.test.js +0 -31
  127. package/out/language-server/languageDetection.test.js.map +0 -1
  128. package/out/language-server/mergeRightUtils.test.d.ts +0 -1
  129. package/out/language-server/mergeRightUtils.test.js +0 -53
  130. package/out/language-server/mergeRightUtils.test.js.map +0 -1
  131. package/out/language-server/netTransform/tests/converter.test.d.ts +0 -1
  132. package/out/language-server/netTransform/tests/converter.test.js +0 -108
  133. package/out/language-server/netTransform/tests/converter.test.js.map +0 -1
  134. package/out/language-server/netTransform/tests/transformHandler.test.d.ts +0 -1
  135. package/out/language-server/netTransform/tests/transformHandler.test.js +0 -252
  136. package/out/language-server/netTransform/tests/transformHandler.test.js.map +0 -1
  137. package/out/language-server/netTransform/tests/validation.test.d.ts +0 -1
  138. package/out/language-server/netTransform/tests/validation.test.js +0 -84
  139. package/out/language-server/netTransform/tests/validation.test.js.map +0 -1
  140. package/out/language-server/qChatServer.test.d.ts +0 -1
  141. package/out/language-server/qChatServer.test.js +0 -51
  142. package/out/language-server/qChatServer.test.js.map +0 -1
  143. package/out/language-server/securityScan/securityScanHandler.test.d.ts +0 -1
  144. package/out/language-server/securityScan/securityScanHandler.test.js +0 -171
  145. package/out/language-server/securityScan/securityScanHandler.test.js.map +0 -1
  146. package/out/language-server/session/sessionManager.test.d.ts +0 -1
  147. package/out/language-server/session/sessionManager.test.js +0 -588
  148. package/out/language-server/session/sessionManager.test.js.map +0 -1
  149. package/out/language-server/telemetry/codeDiffTracker.test.d.ts +0 -1
  150. package/out/language-server/telemetry/codeDiffTracker.test.js +0 -125
  151. package/out/language-server/telemetry/codeDiffTracker.test.js.map +0 -1
  152. package/out/language-server/telemetry/codePercentage.test.d.ts +0 -1
  153. package/out/language-server/telemetry/codePercentage.test.js +0 -214
  154. package/out/language-server/telemetry/codePercentage.test.js.map +0 -1
  155. package/out/language-server/telemetry/userTriggerDecision.test.d.ts +0 -1
  156. package/out/language-server/telemetry/userTriggerDecision.test.js +0 -1348
  157. package/out/language-server/telemetry/userTriggerDecision.test.js.map +0 -1
  158. package/out/language-server/telemetry.test.d.ts +0 -1
  159. package/out/language-server/telemetry.test.js +0 -98
  160. package/out/language-server/telemetry.test.js.map +0 -1
  161. package/out/language-server/telemetryService.test.d.ts +0 -1
  162. package/out/language-server/telemetryService.test.js +0 -771
  163. package/out/language-server/telemetryService.test.js.map +0 -1
  164. package/out/language-server/utilities/filesystemUtilities.d.ts +0 -8
  165. package/out/language-server/utilities/filesystemUtilities.js +0 -30
  166. package/out/language-server/utilities/filesystemUtilities.js.map +0 -1
  167. package/out/language-server/utilities/filesystemUtilities.test.d.ts +0 -1
  168. package/out/language-server/utilities/filesystemUtilities.test.js +0 -85
  169. package/out/language-server/utilities/filesystemUtilities.test.js.map +0 -1
  170. package/out/language-server/utilities/pathUtils.d.ts +0 -27
  171. package/out/language-server/utilities/pathUtils.js +0 -79
  172. package/out/language-server/utilities/pathUtils.js.map +0 -1
  173. package/out/language-server/utilities/pathUtils.test.d.ts +0 -1
  174. package/out/language-server/utilities/pathUtils.test.js +0 -43
  175. package/out/language-server/utilities/pathUtils.test.js.map +0 -1
  176. package/out/language-server/utilities/supplementalContextUtil/codeParsingUtil.test.d.ts +0 -5
  177. package/out/language-server/utilities/supplementalContextUtil/codeParsingUtil.test.js +0 -49
  178. package/out/language-server/utilities/supplementalContextUtil/codeParsingUtil.test.js.map +0 -1
  179. package/out/language-server/utilities/supplementalContextUtil/crossFileContextUtil.test.d.ts +0 -1
  180. package/out/language-server/utilities/supplementalContextUtil/crossFileContextUtil.test.js +0 -157
  181. package/out/language-server/utilities/supplementalContextUtil/crossFileContextUtil.test.js.map +0 -1
  182. package/out/language-server/utilities/supplementalContextUtil/supplementalContextUtil.test.d.ts +0 -1
  183. package/out/language-server/utilities/supplementalContextUtil/supplementalContextUtil.test.js +0 -88
  184. package/out/language-server/utilities/supplementalContextUtil/supplementalContextUtil.test.js.map +0 -1
  185. package/out/language-server/utilities/telemetryUtils.test.d.ts +0 -1
  186. package/out/language-server/utilities/telemetryUtils.test.js +0 -207
  187. package/out/language-server/utilities/telemetryUtils.test.js.map +0 -1
  188. package/out/language-server/utilities/textUtils.d.ts +0 -1
  189. package/out/language-server/utilities/textUtils.js +0 -12
  190. package/out/language-server/utilities/textUtils.js.map +0 -1
  191. package/out/language-server/utilities/textUtils.test.d.ts +0 -1
  192. package/out/language-server/utilities/textUtils.test.js +0 -21
  193. package/out/language-server/utilities/textUtils.test.js.map +0 -1
  194. package/out/language-server/utils.test.d.ts +0 -1
  195. package/out/language-server/utils.test.js +0 -152
  196. package/out/language-server/utils.test.js.map +0 -1
  197. /package/node_modules/{@smithy/node-http-handler → @amzn/codewhisperer-streaming/node_modules/@smithy/abort-controller}/LICENSE +0 -0
  198. /package/node_modules/{@smithy/node-http-handler → @amzn/codewhisperer-streaming}/node_modules/@smithy/abort-controller/README.md +0 -0
  199. /package/node_modules/{@smithy/node-http-handler → @amzn/codewhisperer-streaming}/node_modules/@smithy/abort-controller/dist-cjs/AbortController.js +0 -0
  200. /package/node_modules/{@smithy/node-http-handler → @amzn/codewhisperer-streaming}/node_modules/@smithy/abort-controller/dist-cjs/AbortSignal.js +0 -0
  201. /package/node_modules/{@smithy/node-http-handler → @amzn/codewhisperer-streaming}/node_modules/@smithy/abort-controller/dist-cjs/index.js +0 -0
  202. /package/node_modules/{@smithy/node-http-handler → @amzn/codewhisperer-streaming}/node_modules/@smithy/abort-controller/dist-es/AbortController.js +0 -0
  203. /package/node_modules/{@smithy/node-http-handler → @amzn/codewhisperer-streaming}/node_modules/@smithy/abort-controller/dist-es/AbortSignal.js +0 -0
  204. /package/node_modules/{@smithy/node-http-handler → @amzn/codewhisperer-streaming}/node_modules/@smithy/abort-controller/dist-es/index.js +0 -0
  205. /package/node_modules/{@smithy/node-http-handler → @amzn/codewhisperer-streaming}/node_modules/@smithy/abort-controller/dist-types/index.d.ts +0 -0
  206. /package/node_modules/{@smithy/node-http-handler → @amzn/codewhisperer-streaming}/node_modules/@smithy/abort-controller/dist-types/ts3.4/index.d.ts +0 -0
  207. /package/node_modules/{@smithy/node-http-handler/node_modules/@smithy/abort-controller → @amzn/codewhisperer-streaming/node_modules/@smithy/node-http-handler}/LICENSE +0 -0
  208. /package/node_modules/{@smithy → @amzn/codewhisperer-streaming/node_modules/@smithy}/node-http-handler/dist-cjs/constants.js +0 -0
  209. /package/node_modules/{@smithy → @amzn/codewhisperer-streaming/node_modules/@smithy}/node-http-handler/dist-cjs/get-transformed-headers.js +0 -0
  210. /package/node_modules/{@smithy → @amzn/codewhisperer-streaming/node_modules/@smithy}/node-http-handler/dist-cjs/node-http-handler.js +0 -0
  211. /package/node_modules/{@smithy → @amzn/codewhisperer-streaming/node_modules/@smithy}/node-http-handler/dist-cjs/node-http2-connection-manager.js +0 -0
  212. /package/node_modules/{@smithy → @amzn/codewhisperer-streaming/node_modules/@smithy}/node-http-handler/dist-cjs/node-http2-connection-pool.js +0 -0
  213. /package/node_modules/{@smithy → @amzn/codewhisperer-streaming/node_modules/@smithy}/node-http-handler/dist-cjs/node-http2-handler.js +0 -0
  214. /package/node_modules/{@smithy → @amzn/codewhisperer-streaming/node_modules/@smithy}/node-http-handler/dist-cjs/readable.mock.js +0 -0
  215. /package/node_modules/{@smithy → @amzn/codewhisperer-streaming/node_modules/@smithy}/node-http-handler/dist-cjs/server.mock.js +0 -0
  216. /package/node_modules/{@smithy → @amzn/codewhisperer-streaming/node_modules/@smithy}/node-http-handler/dist-cjs/set-connection-timeout.js +0 -0
  217. /package/node_modules/{@smithy → @amzn/codewhisperer-streaming/node_modules/@smithy}/node-http-handler/dist-cjs/set-socket-keep-alive.js +0 -0
  218. /package/node_modules/{@smithy → @amzn/codewhisperer-streaming/node_modules/@smithy}/node-http-handler/dist-cjs/set-socket-timeout.js +0 -0
  219. /package/node_modules/{@smithy → @amzn/codewhisperer-streaming/node_modules/@smithy}/node-http-handler/dist-cjs/stream-collector/collector.js +0 -0
  220. /package/node_modules/{@smithy → @amzn/codewhisperer-streaming/node_modules/@smithy}/node-http-handler/dist-cjs/stream-collector/index.js +0 -0
  221. /package/node_modules/{@smithy → @amzn/codewhisperer-streaming/node_modules/@smithy}/node-http-handler/dist-cjs/stream-collector/readable.mock.js +0 -0
  222. /package/node_modules/{@smithy/node-http-handler/dist-cjs/write-request-body.js → @amzn/codewhisperer-streaming/node_modules/@smithy/node-http-handler/dist-cjs/timing.js} +0 -0
  223. /package/node_modules/{@smithy/node-http-handler/node_modules/@smithy/protocol-http/dist-cjs/Field.js → @amzn/codewhisperer-streaming/node_modules/@smithy/node-http-handler/dist-cjs/write-request-body.js} +0 -0
  224. /package/node_modules/{@smithy → @amzn/codewhisperer-streaming/node_modules/@smithy}/node-http-handler/dist-es/constants.js +0 -0
  225. /package/node_modules/{@smithy → @amzn/codewhisperer-streaming/node_modules/@smithy}/node-http-handler/dist-es/get-transformed-headers.js +0 -0
  226. /package/node_modules/{@smithy → @amzn/codewhisperer-streaming/node_modules/@smithy}/node-http-handler/dist-es/index.js +0 -0
  227. /package/node_modules/{@smithy → @amzn/codewhisperer-streaming/node_modules/@smithy}/node-http-handler/dist-es/node-http2-connection-pool.js +0 -0
  228. /package/node_modules/{@smithy → @amzn/codewhisperer-streaming/node_modules/@smithy}/node-http-handler/dist-es/readable.mock.js +0 -0
  229. /package/node_modules/{@smithy → @amzn/codewhisperer-streaming/node_modules/@smithy}/node-http-handler/dist-es/stream-collector/collector.js +0 -0
  230. /package/node_modules/{@smithy → @amzn/codewhisperer-streaming/node_modules/@smithy}/node-http-handler/dist-es/stream-collector/readable.mock.js +0 -0
  231. /package/node_modules/{@smithy → @amzn/codewhisperer-streaming/node_modules/@smithy}/node-http-handler/dist-types/constants.d.ts +0 -0
  232. /package/node_modules/{@smithy → @amzn/codewhisperer-streaming/node_modules/@smithy}/node-http-handler/dist-types/get-transformed-headers.d.ts +0 -0
  233. /package/node_modules/{@smithy → @amzn/codewhisperer-streaming/node_modules/@smithy}/node-http-handler/dist-types/index.d.ts +0 -0
  234. /package/node_modules/{@smithy → @amzn/codewhisperer-streaming/node_modules/@smithy}/node-http-handler/dist-types/node-http2-connection-manager.d.ts +0 -0
  235. /package/node_modules/{@smithy → @amzn/codewhisperer-streaming/node_modules/@smithy}/node-http-handler/dist-types/node-http2-connection-pool.d.ts +0 -0
  236. /package/node_modules/{@smithy → @amzn/codewhisperer-streaming/node_modules/@smithy}/node-http-handler/dist-types/node-http2-handler.d.ts +0 -0
  237. /package/node_modules/{@smithy → @amzn/codewhisperer-streaming/node_modules/@smithy}/node-http-handler/dist-types/readable.mock.d.ts +0 -0
  238. /package/node_modules/{@smithy → @amzn/codewhisperer-streaming/node_modules/@smithy}/node-http-handler/dist-types/server.mock.d.ts +0 -0
  239. /package/node_modules/{@smithy → @amzn/codewhisperer-streaming/node_modules/@smithy}/node-http-handler/dist-types/stream-collector/collector.d.ts +0 -0
  240. /package/node_modules/{@smithy → @amzn/codewhisperer-streaming/node_modules/@smithy}/node-http-handler/dist-types/stream-collector/index.d.ts +0 -0
  241. /package/node_modules/{@smithy → @amzn/codewhisperer-streaming/node_modules/@smithy}/node-http-handler/dist-types/stream-collector/readable.mock.d.ts +0 -0
  242. /package/node_modules/{@smithy → @amzn/codewhisperer-streaming/node_modules/@smithy}/node-http-handler/dist-types/ts3.4/constants.d.ts +0 -0
  243. /package/node_modules/{@smithy → @amzn/codewhisperer-streaming/node_modules/@smithy}/node-http-handler/dist-types/ts3.4/get-transformed-headers.d.ts +0 -0
  244. /package/node_modules/{@smithy → @amzn/codewhisperer-streaming/node_modules/@smithy}/node-http-handler/dist-types/ts3.4/index.d.ts +0 -0
  245. /package/node_modules/{@smithy → @amzn/codewhisperer-streaming/node_modules/@smithy}/node-http-handler/dist-types/ts3.4/node-http2-connection-manager.d.ts +0 -0
  246. /package/node_modules/{@smithy → @amzn/codewhisperer-streaming/node_modules/@smithy}/node-http-handler/dist-types/ts3.4/node-http2-connection-pool.d.ts +0 -0
  247. /package/node_modules/{@smithy → @amzn/codewhisperer-streaming/node_modules/@smithy}/node-http-handler/dist-types/ts3.4/node-http2-handler.d.ts +0 -0
  248. /package/node_modules/{@smithy → @amzn/codewhisperer-streaming/node_modules/@smithy}/node-http-handler/dist-types/ts3.4/readable.mock.d.ts +0 -0
  249. /package/node_modules/{@smithy → @amzn/codewhisperer-streaming/node_modules/@smithy}/node-http-handler/dist-types/ts3.4/server.mock.d.ts +0 -0
  250. /package/node_modules/{@smithy → @amzn/codewhisperer-streaming/node_modules/@smithy}/node-http-handler/dist-types/ts3.4/stream-collector/collector.d.ts +0 -0
  251. /package/node_modules/{@smithy → @amzn/codewhisperer-streaming/node_modules/@smithy}/node-http-handler/dist-types/ts3.4/stream-collector/index.d.ts +0 -0
  252. /package/node_modules/{@smithy → @amzn/codewhisperer-streaming/node_modules/@smithy}/node-http-handler/dist-types/ts3.4/stream-collector/readable.mock.d.ts +0 -0
  253. /package/node_modules/{@smithy → @amzn/codewhisperer-streaming/node_modules/@smithy}/node-http-handler/dist-types/ts3.4/write-request-body.d.ts +0 -0
  254. /package/node_modules/{@smithy → @amzn/codewhisperer-streaming/node_modules/@smithy}/node-http-handler/dist-types/write-request-body.d.ts +0 -0
  255. /package/node_modules/{@smithy/node-http-handler → @amzn/codewhisperer-streaming}/node_modules/@smithy/protocol-http/LICENSE +0 -0
  256. /package/node_modules/{@smithy/node-http-handler → @amzn/codewhisperer-streaming}/node_modules/@smithy/protocol-http/README.md +0 -0
  257. /package/node_modules/{@smithy/node-http-handler/node_modules/@smithy/protocol-http/dist-cjs/Fields.js → @amzn/codewhisperer-streaming/node_modules/@smithy/protocol-http/dist-cjs/Field.js} +0 -0
  258. /package/node_modules/{@smithy/node-http-handler/node_modules/@smithy/protocol-http/dist-cjs/httpHandler.js → @amzn/codewhisperer-streaming/node_modules/@smithy/protocol-http/dist-cjs/Fields.js} +0 -0
  259. /package/node_modules/{@smithy/node-http-handler → @amzn/codewhisperer-streaming}/node_modules/@smithy/protocol-http/dist-cjs/extensions/httpExtensionConfiguration.js +0 -0
  260. /package/node_modules/{@smithy/node-http-handler → @amzn/codewhisperer-streaming}/node_modules/@smithy/protocol-http/dist-cjs/extensions/index.js +0 -0
  261. /package/node_modules/{@smithy/node-http-handler/node_modules/@smithy/protocol-http/dist-cjs/httpRequest.js → @amzn/codewhisperer-streaming/node_modules/@smithy/protocol-http/dist-cjs/httpHandler.js} +0 -0
  262. /package/node_modules/{@smithy/node-http-handler/node_modules/@smithy/protocol-http/dist-cjs/httpResponse.js → @amzn/codewhisperer-streaming/node_modules/@smithy/protocol-http/dist-cjs/httpRequest.js} +0 -0
  263. /package/node_modules/{@smithy/node-http-handler/node_modules/@smithy/protocol-http/dist-cjs/isValidHostname.js → @amzn/codewhisperer-streaming/node_modules/@smithy/protocol-http/dist-cjs/httpResponse.js} +0 -0
  264. /package/node_modules/{@smithy/node-http-handler/node_modules/@smithy/protocol-http/dist-cjs/types.js → @amzn/codewhisperer-streaming/node_modules/@smithy/protocol-http/dist-cjs/isValidHostname.js} +0 -0
  265. /package/node_modules/{@smithy/node-http-handler/node_modules/@smithy/types/dist-cjs/abort.js → @amzn/codewhisperer-streaming/node_modules/@smithy/protocol-http/dist-cjs/types.js} +0 -0
  266. /package/node_modules/{@smithy/node-http-handler → @amzn/codewhisperer-streaming}/node_modules/@smithy/protocol-http/dist-es/Field.js +0 -0
  267. /package/node_modules/{@smithy/node-http-handler → @amzn/codewhisperer-streaming}/node_modules/@smithy/protocol-http/dist-es/Fields.js +0 -0
  268. /package/node_modules/{@smithy/node-http-handler → @amzn/codewhisperer-streaming}/node_modules/@smithy/protocol-http/dist-es/extensions/httpExtensionConfiguration.js +0 -0
  269. /package/node_modules/{@smithy/node-http-handler → @amzn/codewhisperer-streaming}/node_modules/@smithy/protocol-http/dist-es/extensions/index.js +0 -0
  270. /package/node_modules/{@smithy/node-http-handler → @amzn/codewhisperer-streaming}/node_modules/@smithy/protocol-http/dist-es/httpHandler.js +0 -0
  271. /package/node_modules/{@smithy/node-http-handler → @amzn/codewhisperer-streaming}/node_modules/@smithy/protocol-http/dist-es/httpResponse.js +0 -0
  272. /package/node_modules/{@smithy/node-http-handler → @amzn/codewhisperer-streaming}/node_modules/@smithy/protocol-http/dist-es/index.js +0 -0
  273. /package/node_modules/{@smithy/node-http-handler → @amzn/codewhisperer-streaming}/node_modules/@smithy/protocol-http/dist-es/isValidHostname.js +0 -0
  274. /package/node_modules/{@smithy/node-http-handler → @amzn/codewhisperer-streaming}/node_modules/@smithy/protocol-http/dist-es/types.js +0 -0
  275. /package/node_modules/{@smithy/node-http-handler → @amzn/codewhisperer-streaming}/node_modules/@smithy/protocol-http/dist-types/Field.d.ts +0 -0
  276. /package/node_modules/{@smithy/node-http-handler → @amzn/codewhisperer-streaming}/node_modules/@smithy/protocol-http/dist-types/Fields.d.ts +0 -0
  277. /package/node_modules/{@smithy/node-http-handler → @amzn/codewhisperer-streaming}/node_modules/@smithy/protocol-http/dist-types/extensions/httpExtensionConfiguration.d.ts +0 -0
  278. /package/node_modules/{@smithy/node-http-handler → @amzn/codewhisperer-streaming}/node_modules/@smithy/protocol-http/dist-types/extensions/index.d.ts +0 -0
  279. /package/node_modules/{@smithy/node-http-handler → @amzn/codewhisperer-streaming}/node_modules/@smithy/protocol-http/dist-types/httpHandler.d.ts +0 -0
  280. /package/node_modules/{@smithy/node-http-handler → @amzn/codewhisperer-streaming}/node_modules/@smithy/protocol-http/dist-types/httpResponse.d.ts +0 -0
  281. /package/node_modules/{@smithy/node-http-handler → @amzn/codewhisperer-streaming}/node_modules/@smithy/protocol-http/dist-types/index.d.ts +0 -0
  282. /package/node_modules/{@smithy/node-http-handler → @amzn/codewhisperer-streaming}/node_modules/@smithy/protocol-http/dist-types/isValidHostname.d.ts +0 -0
  283. /package/node_modules/{@smithy/node-http-handler → @amzn/codewhisperer-streaming}/node_modules/@smithy/protocol-http/dist-types/ts3.4/Field.d.ts +0 -0
  284. /package/node_modules/{@smithy/node-http-handler → @amzn/codewhisperer-streaming}/node_modules/@smithy/protocol-http/dist-types/ts3.4/Fields.d.ts +0 -0
  285. /package/node_modules/{@smithy/node-http-handler → @amzn/codewhisperer-streaming}/node_modules/@smithy/protocol-http/dist-types/ts3.4/extensions/httpExtensionConfiguration.d.ts +0 -0
  286. /package/node_modules/{@smithy/node-http-handler → @amzn/codewhisperer-streaming}/node_modules/@smithy/protocol-http/dist-types/ts3.4/extensions/index.d.ts +0 -0
  287. /package/node_modules/{@smithy/node-http-handler → @amzn/codewhisperer-streaming}/node_modules/@smithy/protocol-http/dist-types/ts3.4/httpHandler.d.ts +0 -0
  288. /package/node_modules/{@smithy/node-http-handler → @amzn/codewhisperer-streaming}/node_modules/@smithy/protocol-http/dist-types/ts3.4/httpResponse.d.ts +0 -0
  289. /package/node_modules/{@smithy/node-http-handler → @amzn/codewhisperer-streaming}/node_modules/@smithy/protocol-http/dist-types/ts3.4/index.d.ts +0 -0
  290. /package/node_modules/{@smithy/node-http-handler → @amzn/codewhisperer-streaming}/node_modules/@smithy/protocol-http/dist-types/ts3.4/isValidHostname.d.ts +0 -0
  291. /package/node_modules/{@smithy/node-http-handler → @amzn/codewhisperer-streaming}/node_modules/@smithy/protocol-http/dist-types/ts3.4/types.d.ts +0 -0
  292. /package/node_modules/{@smithy/node-http-handler → @amzn/codewhisperer-streaming}/node_modules/@smithy/protocol-http/dist-types/types.d.ts +0 -0
  293. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/querystring-builder → querystring-builder}/LICENSE +0 -0
  294. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/querystring-builder → querystring-builder}/README.md +0 -0
  295. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/querystring-builder → querystring-builder}/dist-cjs/index.js +0 -0
  296. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/querystring-builder → querystring-builder}/dist-es/index.js +0 -0
  297. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/querystring-builder → querystring-builder}/dist-types/index.d.ts +0 -0
  298. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/querystring-builder → querystring-builder}/dist-types/ts3.4/index.d.ts +0 -0
  299. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/querystring-builder → querystring-builder}/package.json +0 -0
  300. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/LICENSE +0 -0
  301. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/README.md +0 -0
  302. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types/dist-cjs/checksum.js → types/dist-cjs/abort.js} +0 -0
  303. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-cjs/auth/HttpApiKeyAuth.js +0 -0
  304. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-cjs/auth/HttpAuthScheme.js +0 -0
  305. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-cjs/auth/HttpAuthSchemeProvider.js +0 -0
  306. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-cjs/auth/HttpSigner.js +0 -0
  307. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-cjs/auth/IdentityProviderConfig.js +0 -0
  308. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-cjs/auth/auth.js +0 -0
  309. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-cjs/auth/index.js +0 -0
  310. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-cjs/blob/blob-payload-input-types.js +0 -0
  311. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types/dist-cjs/client.js → types/dist-cjs/checksum.js} +0 -0
  312. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types/dist-cjs/command.js → types/dist-cjs/client.js} +0 -0
  313. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types/dist-cjs/crypto.js → types/dist-cjs/command.js} +0 -0
  314. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-cjs/connection/config.js +0 -0
  315. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-cjs/connection/index.js +0 -0
  316. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-cjs/connection/manager.js +0 -0
  317. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-cjs/connection/pool.js +0 -0
  318. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types/dist-cjs/encode.js → types/dist-cjs/crypto.js} +0 -0
  319. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-cjs/downlevel-ts3.4/transform/type-transform.js +0 -0
  320. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types/dist-cjs/endpoint.js → types/dist-cjs/encode.js} +0 -0
  321. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types/dist-cjs/eventStream.js → types/dist-cjs/endpoint.js} +0 -0
  322. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-cjs/endpoints/EndpointRuleObject.js +0 -0
  323. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-cjs/endpoints/ErrorRuleObject.js +0 -0
  324. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-cjs/endpoints/RuleSetObject.js +0 -0
  325. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-cjs/endpoints/TreeRuleObject.js +0 -0
  326. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-cjs/endpoints/index.js +0 -0
  327. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-cjs/endpoints/shared.js +0 -0
  328. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types/dist-cjs/http.js → types/dist-cjs/eventStream.js} +0 -0
  329. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-cjs/extensions/checksum.js +0 -0
  330. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-cjs/extensions/defaultClientConfiguration.js +0 -0
  331. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-cjs/extensions/defaultExtensionConfiguration.js +0 -0
  332. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-cjs/extensions/index.js +0 -0
  333. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-cjs/extensions/retry.js +0 -0
  334. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-cjs/externals-check/browser-externals-check.js +0 -0
  335. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-cjs/http/httpHandlerInitialization.js +0 -0
  336. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types/dist-cjs/logger.js → types/dist-cjs/http.js} +0 -0
  337. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-cjs/identity/apiKeyIdentity.js +0 -0
  338. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-cjs/identity/awsCredentialIdentity.js +0 -0
  339. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-cjs/identity/identity.js +0 -0
  340. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-cjs/identity/index.js +0 -0
  341. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-cjs/identity/tokenIdentity.js +0 -0
  342. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-cjs/index.js +0 -0
  343. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types/dist-cjs/middleware.js → types/dist-cjs/logger.js} +0 -0
  344. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types/dist-cjs/pagination.js → types/dist-cjs/middleware.js} +0 -0
  345. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types/dist-cjs/profile.js → types/dist-cjs/pagination.js} +0 -0
  346. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types/dist-cjs/response.js → types/dist-cjs/profile.js} +0 -0
  347. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types/dist-cjs/retry.js → types/dist-cjs/response.js} +0 -0
  348. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types/dist-cjs/serde.js → types/dist-cjs/retry.js} +0 -0
  349. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types/dist-cjs/shapes.js → types/dist-cjs/serde.js} +0 -0
  350. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types/dist-cjs/signature.js → types/dist-cjs/shapes.js} +0 -0
  351. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types/dist-cjs/stream.js → types/dist-cjs/signature.js} +0 -0
  352. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types/dist-cjs/transfer.js → types/dist-cjs/stream.js} +0 -0
  353. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-cjs/streaming-payload/streaming-blob-common-types.js +0 -0
  354. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-cjs/streaming-payload/streaming-blob-payload-input-types.js +0 -0
  355. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-cjs/streaming-payload/streaming-blob-payload-output-types.js +0 -0
  356. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types/dist-cjs/uri.js → types/dist-cjs/transfer.js} +0 -0
  357. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-cjs/transform/client-method-transforms.js +0 -0
  358. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-cjs/transform/client-payload-blob-type-narrow.js +0 -0
  359. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-cjs/transform/exact.js +0 -0
  360. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-cjs/transform/no-undefined.js +0 -0
  361. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-cjs/transform/type-transform.js +0 -0
  362. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types/dist-cjs/util.js → types/dist-cjs/uri.js} +0 -0
  363. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types/dist-cjs/waiter.js → types/dist-cjs/util.js} +0 -0
  364. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-es/abort.js +0 -0
  365. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-es/auth/HttpApiKeyAuth.js +0 -0
  366. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-es/auth/HttpAuthScheme.js +0 -0
  367. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-es/auth/HttpAuthSchemeProvider.js +0 -0
  368. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-es/auth/HttpSigner.js +0 -0
  369. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-es/auth/IdentityProviderConfig.js +0 -0
  370. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-es/auth/auth.js +0 -0
  371. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-es/auth/index.js +0 -0
  372. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-es/blob/blob-payload-input-types.js +0 -0
  373. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-es/checksum.js +0 -0
  374. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-es/client.js +0 -0
  375. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-es/command.js +0 -0
  376. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-es/connection/config.js +0 -0
  377. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-es/connection/index.js +0 -0
  378. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-es/connection/manager.js +0 -0
  379. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-es/connection/pool.js +0 -0
  380. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-es/crypto.js +0 -0
  381. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-es/downlevel-ts3.4/transform/type-transform.js +0 -0
  382. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-es/encode.js +0 -0
  383. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-es/endpoint.js +0 -0
  384. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-es/endpoints/EndpointRuleObject.js +0 -0
  385. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-es/endpoints/ErrorRuleObject.js +0 -0
  386. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-es/endpoints/RuleSetObject.js +0 -0
  387. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-es/endpoints/TreeRuleObject.js +0 -0
  388. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-es/endpoints/index.js +0 -0
  389. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-es/endpoints/shared.js +0 -0
  390. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-es/eventStream.js +0 -0
  391. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-es/extensions/checksum.js +0 -0
  392. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-es/extensions/defaultClientConfiguration.js +0 -0
  393. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-es/extensions/defaultExtensionConfiguration.js +0 -0
  394. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-es/extensions/index.js +0 -0
  395. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-es/extensions/retry.js +0 -0
  396. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-es/externals-check/browser-externals-check.js +0 -0
  397. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-es/http/httpHandlerInitialization.js +0 -0
  398. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-es/http.js +0 -0
  399. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-es/identity/apiKeyIdentity.js +0 -0
  400. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-es/identity/awsCredentialIdentity.js +0 -0
  401. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-es/identity/identity.js +0 -0
  402. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-es/identity/index.js +0 -0
  403. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-es/identity/tokenIdentity.js +0 -0
  404. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-es/index.js +0 -0
  405. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-es/logger.js +0 -0
  406. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-es/middleware.js +0 -0
  407. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-es/pagination.js +0 -0
  408. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-es/profile.js +0 -0
  409. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-es/response.js +0 -0
  410. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-es/retry.js +0 -0
  411. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-es/serde.js +0 -0
  412. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-es/shapes.js +0 -0
  413. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-es/signature.js +0 -0
  414. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-es/stream.js +0 -0
  415. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-es/streaming-payload/streaming-blob-common-types.js +0 -0
  416. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-es/streaming-payload/streaming-blob-payload-input-types.js +0 -0
  417. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-es/streaming-payload/streaming-blob-payload-output-types.js +0 -0
  418. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-es/transfer.js +0 -0
  419. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-es/transform/client-method-transforms.js +0 -0
  420. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-es/transform/client-payload-blob-type-narrow.js +0 -0
  421. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-es/transform/exact.js +0 -0
  422. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-es/transform/no-undefined.js +0 -0
  423. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-es/transform/type-transform.js +0 -0
  424. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-es/uri.js +0 -0
  425. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-es/util.js +0 -0
  426. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-es/waiter.js +0 -0
  427. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/abort.d.ts +0 -0
  428. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/auth/HttpApiKeyAuth.d.ts +0 -0
  429. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/auth/HttpAuthScheme.d.ts +0 -0
  430. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/auth/HttpAuthSchemeProvider.d.ts +0 -0
  431. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/auth/HttpSigner.d.ts +0 -0
  432. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/auth/IdentityProviderConfig.d.ts +0 -0
  433. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/auth/auth.d.ts +0 -0
  434. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/auth/index.d.ts +0 -0
  435. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/blob/blob-payload-input-types.d.ts +0 -0
  436. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/checksum.d.ts +0 -0
  437. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/client.d.ts +0 -0
  438. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/command.d.ts +0 -0
  439. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/connection/config.d.ts +0 -0
  440. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/connection/index.d.ts +0 -0
  441. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/connection/manager.d.ts +0 -0
  442. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/connection/pool.d.ts +0 -0
  443. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/crypto.d.ts +0 -0
  444. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/downlevel-ts3.4/transform/type-transform.d.ts +0 -0
  445. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/encode.d.ts +0 -0
  446. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/endpoint.d.ts +0 -0
  447. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/endpoints/EndpointRuleObject.d.ts +0 -0
  448. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/endpoints/ErrorRuleObject.d.ts +0 -0
  449. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/endpoints/RuleSetObject.d.ts +0 -0
  450. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/endpoints/TreeRuleObject.d.ts +0 -0
  451. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/endpoints/index.d.ts +0 -0
  452. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/endpoints/shared.d.ts +0 -0
  453. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/eventStream.d.ts +0 -0
  454. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/extensions/checksum.d.ts +0 -0
  455. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/extensions/defaultClientConfiguration.d.ts +0 -0
  456. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/extensions/defaultExtensionConfiguration.d.ts +0 -0
  457. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/extensions/index.d.ts +0 -0
  458. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/extensions/retry.d.ts +0 -0
  459. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/externals-check/browser-externals-check.d.ts +0 -0
  460. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/http/httpHandlerInitialization.d.ts +0 -0
  461. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/http.d.ts +0 -0
  462. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/identity/apiKeyIdentity.d.ts +0 -0
  463. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/identity/awsCredentialIdentity.d.ts +0 -0
  464. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/identity/identity.d.ts +0 -0
  465. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/identity/index.d.ts +0 -0
  466. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/identity/tokenIdentity.d.ts +0 -0
  467. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/index.d.ts +0 -0
  468. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/logger.d.ts +0 -0
  469. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/middleware.d.ts +0 -0
  470. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/pagination.d.ts +0 -0
  471. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/profile.d.ts +0 -0
  472. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/response.d.ts +0 -0
  473. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/retry.d.ts +0 -0
  474. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/serde.d.ts +0 -0
  475. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/shapes.d.ts +0 -0
  476. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/signature.d.ts +0 -0
  477. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/stream.d.ts +0 -0
  478. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/streaming-payload/streaming-blob-common-types.d.ts +0 -0
  479. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/streaming-payload/streaming-blob-payload-input-types.d.ts +0 -0
  480. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/streaming-payload/streaming-blob-payload-output-types.d.ts +0 -0
  481. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/transfer.d.ts +0 -0
  482. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/transform/client-method-transforms.d.ts +0 -0
  483. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/transform/client-payload-blob-type-narrow.d.ts +0 -0
  484. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/transform/exact.d.ts +0 -0
  485. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/transform/no-undefined.d.ts +0 -0
  486. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/transform/type-transform.d.ts +0 -0
  487. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/ts3.4/abort.d.ts +0 -0
  488. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/ts3.4/auth/HttpApiKeyAuth.d.ts +0 -0
  489. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/ts3.4/auth/HttpAuthScheme.d.ts +0 -0
  490. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/ts3.4/auth/HttpAuthSchemeProvider.d.ts +0 -0
  491. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/ts3.4/auth/HttpSigner.d.ts +0 -0
  492. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/ts3.4/auth/IdentityProviderConfig.d.ts +0 -0
  493. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/ts3.4/auth/auth.d.ts +0 -0
  494. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/ts3.4/auth/index.d.ts +0 -0
  495. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/ts3.4/blob/blob-payload-input-types.d.ts +0 -0
  496. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/ts3.4/checksum.d.ts +0 -0
  497. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/ts3.4/client.d.ts +0 -0
  498. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/ts3.4/command.d.ts +0 -0
  499. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/ts3.4/connection/config.d.ts +0 -0
  500. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/ts3.4/connection/index.d.ts +0 -0
  501. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/ts3.4/connection/manager.d.ts +0 -0
  502. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/ts3.4/connection/pool.d.ts +0 -0
  503. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/ts3.4/crypto.d.ts +0 -0
  504. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/ts3.4/downlevel-ts3.4/transform/type-transform.d.ts +0 -0
  505. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/ts3.4/encode.d.ts +0 -0
  506. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/ts3.4/endpoint.d.ts +0 -0
  507. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/ts3.4/endpoints/EndpointRuleObject.d.ts +0 -0
  508. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/ts3.4/endpoints/ErrorRuleObject.d.ts +0 -0
  509. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/ts3.4/endpoints/RuleSetObject.d.ts +0 -0
  510. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/ts3.4/endpoints/TreeRuleObject.d.ts +0 -0
  511. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/ts3.4/endpoints/index.d.ts +0 -0
  512. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/ts3.4/endpoints/shared.d.ts +0 -0
  513. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/ts3.4/eventStream.d.ts +0 -0
  514. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/ts3.4/extensions/checksum.d.ts +0 -0
  515. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/ts3.4/extensions/defaultClientConfiguration.d.ts +0 -0
  516. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/ts3.4/extensions/defaultExtensionConfiguration.d.ts +0 -0
  517. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/ts3.4/extensions/index.d.ts +0 -0
  518. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/ts3.4/extensions/retry.d.ts +0 -0
  519. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/ts3.4/externals-check/browser-externals-check.d.ts +0 -0
  520. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/ts3.4/http/httpHandlerInitialization.d.ts +0 -0
  521. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/ts3.4/http.d.ts +0 -0
  522. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/ts3.4/identity/apiKeyIdentity.d.ts +0 -0
  523. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/ts3.4/identity/awsCredentialIdentity.d.ts +0 -0
  524. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/ts3.4/identity/identity.d.ts +0 -0
  525. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/ts3.4/identity/index.d.ts +0 -0
  526. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/ts3.4/identity/tokenIdentity.d.ts +0 -0
  527. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/ts3.4/index.d.ts +0 -0
  528. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/ts3.4/logger.d.ts +0 -0
  529. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/ts3.4/middleware.d.ts +0 -0
  530. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/ts3.4/pagination.d.ts +0 -0
  531. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/ts3.4/profile.d.ts +0 -0
  532. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/ts3.4/response.d.ts +0 -0
  533. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/ts3.4/retry.d.ts +0 -0
  534. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/ts3.4/serde.d.ts +0 -0
  535. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/ts3.4/shapes.d.ts +0 -0
  536. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/ts3.4/signature.d.ts +0 -0
  537. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/ts3.4/stream.d.ts +0 -0
  538. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/ts3.4/streaming-payload/streaming-blob-common-types.d.ts +0 -0
  539. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/ts3.4/streaming-payload/streaming-blob-payload-input-types.d.ts +0 -0
  540. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/ts3.4/streaming-payload/streaming-blob-payload-output-types.d.ts +0 -0
  541. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/ts3.4/transfer.d.ts +0 -0
  542. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/ts3.4/transform/client-method-transforms.d.ts +0 -0
  543. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/ts3.4/transform/client-payload-blob-type-narrow.d.ts +0 -0
  544. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/ts3.4/transform/exact.d.ts +0 -0
  545. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/ts3.4/transform/no-undefined.d.ts +0 -0
  546. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/ts3.4/transform/type-transform.d.ts +0 -0
  547. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/ts3.4/uri.d.ts +0 -0
  548. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/ts3.4/util.d.ts +0 -0
  549. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/ts3.4/waiter.d.ts +0 -0
  550. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/uri.d.ts +0 -0
  551. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/util.d.ts +0 -0
  552. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/dist-types/waiter.d.ts +0 -0
  553. /package/node_modules/@smithy/{node-http-handler/node_modules/@smithy/types → types}/package.json +0 -0
@@ -1,1377 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const server_interface_1 = require("@aws/language-server-runtimes/server-interface");
4
- const testing_1 = require("@aws/language-server-runtimes/testing");
5
- const assert = require("assert");
6
- const ts_sinon_1 = require("ts-sinon");
7
- const codeWhispererServer_1 = require("./codeWhispererServer");
8
- const codeWhispererService_1 = require("./codeWhispererService");
9
- const sessionManager_1 = require("./session/sessionManager");
10
- const testUtils_1 = require("./testUtils");
11
- const codeDiffTracker_1 = require("./telemetry/codeDiffTracker");
12
- const telemetryService_1 = require("./telemetryService");
13
- describe('CodeWhisperer Server', () => {
14
- const sandbox = ts_sinon_1.default.createSandbox();
15
- let SESSION_IDS_LOG = [];
16
- let sessionManager;
17
- let sessionManagerSpy;
18
- let generateSessionIdStub;
19
- beforeEach(() => {
20
- const StubSessionIdGenerator = () => {
21
- const id = 'some-random-session-uuid-' + SESSION_IDS_LOG.length;
22
- SESSION_IDS_LOG.push(id);
23
- return id;
24
- };
25
- generateSessionIdStub = ts_sinon_1.default
26
- .stub(sessionManager_1.CodeWhispererSession.prototype, 'generateSessionId')
27
- .callsFake(StubSessionIdGenerator);
28
- sessionManager = sessionManager_1.SessionManager.getInstance();
29
- sessionManagerSpy = sandbox.spy(sessionManager);
30
- });
31
- afterEach(() => {
32
- generateSessionIdStub.restore();
33
- sessionManager_1.SessionManager.reset();
34
- sandbox.restore();
35
- SESSION_IDS_LOG = [];
36
- });
37
- describe('Recommendations', () => {
38
- let features;
39
- let server;
40
- // TODO move more of the service code out of the stub and into the testable realm
41
- // See: https://aws.amazon.com/blogs/developer/mocking-modular-aws-sdk-for-javascript-v3-in-unit-tests/
42
- // for examples on how to mock just the SDK client
43
- let service;
44
- beforeEach(async () => {
45
- // Set up the server with a mock service, returning predefined recommendations
46
- service = (0, ts_sinon_1.stubInterface)();
47
- service.generateSuggestions.returns(Promise.resolve({
48
- suggestions: testUtils_1.EXPECTED_SUGGESTION,
49
- responseContext: testUtils_1.EXPECTED_RESPONSE_CONTEXT,
50
- }));
51
- server = (0, codeWhispererServer_1.CodewhispererServerFactory)(_auth => service);
52
- // Initialize the features, but don't start server yet
53
- features = new testing_1.TestFeatures();
54
- // Return no specific configuration for CodeWhisperer
55
- features.lsp.workspace.getConfiguration.returns(Promise.resolve({}));
56
- // Start the server and open a document
57
- await features.start(server);
58
- features
59
- .openDocument(testUtils_1.SOME_FILE)
60
- .openDocument(testUtils_1.SOME_FILE_WITH_ALT_CASED_LANGUAGE_ID)
61
- .openDocument(testUtils_1.SOME_UNSUPPORTED_FILE)
62
- .openDocument(testUtils_1.SOME_FILE_WITH_EXTENSION)
63
- .openDocument(testUtils_1.SOME_SINGLE_LINE_FILE);
64
- });
65
- afterEach(() => {
66
- features.dispose();
67
- });
68
- it('should return recommendations', async () => {
69
- const result = await features.doInlineCompletionWithReferences({
70
- textDocument: { uri: testUtils_1.SOME_FILE.uri },
71
- position: { line: 0, character: 0 },
72
- context: { triggerKind: server_interface_1.InlineCompletionTriggerKind.Invoked },
73
- }, server_interface_1.CancellationToken.None);
74
- // Check the completion result
75
- assert.deepEqual(result, testUtils_1.EXPECTED_RESULT);
76
- const expectedGenerateSuggestionsRequest = {
77
- fileContext: {
78
- filename: testUtils_1.SOME_FILE.uri,
79
- programmingLanguage: { languageName: 'csharp' },
80
- leftFileContent: '',
81
- rightFileContent: testUtils_1.HELLO_WORLD_IN_CSHARP,
82
- },
83
- maxResults: 5,
84
- };
85
- ts_sinon_1.default.assert.calledOnceWithExactly(service.generateSuggestions, expectedGenerateSuggestionsRequest);
86
- });
87
- it('should correctly get left and right context', async () => {
88
- const cutOffLine = 2;
89
- const lines = testUtils_1.HELLO_WORLD_IN_CSHARP.split('\n');
90
- const firstTwoLines = lines.slice(0, cutOffLine).join('\n') + '\n';
91
- const remainingLines = lines.slice(cutOffLine).join('\n');
92
- const result = await features.doInlineCompletionWithReferences({
93
- textDocument: { uri: testUtils_1.SOME_FILE.uri },
94
- position: { line: cutOffLine, character: 0 },
95
- context: { triggerKind: server_interface_1.InlineCompletionTriggerKind.Invoked },
96
- }, server_interface_1.CancellationToken.None);
97
- // Check the completion result
98
- assert.deepEqual(result, testUtils_1.EXPECTED_RESULT);
99
- const expectedGenerateSuggestionsRequest = {
100
- fileContext: {
101
- filename: testUtils_1.SOME_FILE.uri,
102
- programmingLanguage: { languageName: 'csharp' },
103
- leftFileContent: firstTwoLines,
104
- rightFileContent: remainingLines,
105
- },
106
- maxResults: 5,
107
- };
108
- ts_sinon_1.default.assert.calledOnceWithExactly(service.generateSuggestions, expectedGenerateSuggestionsRequest);
109
- });
110
- it('should truncate left and right context', async () => {
111
- const BIG_FILE_CONTENT = '123456789\n'.repeat(5000);
112
- const BIG_FILE = server_interface_1.TextDocument.create('file:///big_file.cs', 'csharp', 1, BIG_FILE_CONTENT);
113
- const cutOffLine = 2000;
114
- features.openDocument(BIG_FILE);
115
- await features.doInlineCompletionWithReferences({
116
- textDocument: { uri: BIG_FILE.uri },
117
- position: { line: cutOffLine, character: 1 },
118
- context: { triggerKind: server_interface_1.InlineCompletionTriggerKind.Invoked },
119
- }, server_interface_1.CancellationToken.None);
120
- const leftContentChecker = (leftContent) => leftContent.length == codeWhispererServer_1.CONTEXT_CHARACTERS_LIMIT && leftContent.endsWith('\n1');
121
- const rightContentChecker = (rightContent) => rightContent.length == codeWhispererServer_1.CONTEXT_CHARACTERS_LIMIT && rightContent.startsWith('234');
122
- ts_sinon_1.default.assert.calledWith(service.generateSuggestions, ts_sinon_1.default.match.hasNested('fileContext.leftFileContent', ts_sinon_1.default.match(leftContentChecker)));
123
- ts_sinon_1.default.assert.calledWith(service.generateSuggestions, ts_sinon_1.default.match.hasNested('fileContext.rightFileContent', ts_sinon_1.default.match(rightContentChecker)));
124
- });
125
- it('should return recommendations when using a different languageId casing', async () => {
126
- const result = await features.doInlineCompletionWithReferences({
127
- textDocument: { uri: testUtils_1.SOME_FILE_WITH_ALT_CASED_LANGUAGE_ID.uri },
128
- position: { line: 0, character: 0 },
129
- context: { triggerKind: server_interface_1.InlineCompletionTriggerKind.Invoked },
130
- }, server_interface_1.CancellationToken.None);
131
- // Check the completion result
132
- assert.deepEqual(result, testUtils_1.EXPECTED_RESULT);
133
- const expectedGenerateSuggestionsRequest = {
134
- fileContext: {
135
- filename: testUtils_1.SOME_FILE_WITH_ALT_CASED_LANGUAGE_ID.uri,
136
- programmingLanguage: { languageName: 'csharp' },
137
- leftFileContent: '',
138
- rightFileContent: testUtils_1.HELLO_WORLD_IN_CSHARP,
139
- },
140
- maxResults: 5,
141
- };
142
- ts_sinon_1.default.assert.calledOnceWithExactly(service.generateSuggestions, expectedGenerateSuggestionsRequest);
143
- });
144
- it('should not return recommendations for a closed file', async () => {
145
- const result = await features.doInlineCompletionWithReferences({
146
- textDocument: { uri: testUtils_1.SOME_CLOSED_FILE.uri },
147
- position: { line: 0, character: 0 },
148
- context: { triggerKind: server_interface_1.InlineCompletionTriggerKind.Invoked },
149
- }, server_interface_1.CancellationToken.None);
150
- // Check the completion result
151
- assert.deepEqual(result, testUtils_1.EMPTY_RESULT);
152
- // Check the service was not called
153
- ts_sinon_1.default.assert.notCalled(service.generateSuggestions);
154
- });
155
- it('should not return recommendations for an unsupported file type', async () => {
156
- const result = await features.doInlineCompletionWithReferences({
157
- textDocument: { uri: testUtils_1.SOME_UNSUPPORTED_FILE.uri },
158
- position: { line: 0, character: 0 },
159
- context: { triggerKind: server_interface_1.InlineCompletionTriggerKind.Invoked },
160
- }, server_interface_1.CancellationToken.None);
161
- // Check the completion result
162
- assert.deepEqual(result, testUtils_1.EMPTY_RESULT);
163
- // Check the service was not called
164
- ts_sinon_1.default.assert.notCalled(service.generateSuggestions);
165
- });
166
- it('should return recommendations based on known extension', async () => {
167
- const result = await features.doInlineCompletionWithReferences({
168
- textDocument: { uri: testUtils_1.SOME_FILE_WITH_EXTENSION.uri },
169
- position: { line: 0, character: 0 },
170
- context: { triggerKind: server_interface_1.InlineCompletionTriggerKind.Invoked },
171
- }, server_interface_1.CancellationToken.None);
172
- // Check the completion result
173
- assert.deepEqual(result, testUtils_1.EXPECTED_RESULT);
174
- const expectedGenerateSuggestionsRequest = {
175
- fileContext: {
176
- filename: testUtils_1.SOME_FILE_WITH_EXTENSION.uri,
177
- programmingLanguage: { languageName: 'cpp' },
178
- leftFileContent: '',
179
- rightFileContent: testUtils_1.HELLO_WORLD_IN_CSHARP,
180
- },
181
- maxResults: 5,
182
- };
183
- // Check the service was called with the right parameters
184
- ts_sinon_1.default.assert.calledOnceWithExactly(service.generateSuggestions, expectedGenerateSuggestionsRequest);
185
- });
186
- // Merge right tests
187
- it('should not show recommendation when the recommendation is equal to right context', async () => {
188
- // The suggestion returned by generateSuggestions will be equal to the contents of the file
189
- const EXPECTED_SUGGESTION = [{ itemId: 'cwspr-item-id', content: testUtils_1.HELLO_WORLD_IN_CSHARP }];
190
- service.generateSuggestions.returns(Promise.resolve({
191
- suggestions: EXPECTED_SUGGESTION,
192
- responseContext: testUtils_1.EXPECTED_RESPONSE_CONTEXT,
193
- }));
194
- const result = await features.doInlineCompletionWithReferences({
195
- textDocument: { uri: testUtils_1.SOME_FILE.uri },
196
- position: { line: 0, character: 0 },
197
- context: { triggerKind: server_interface_1.InlineCompletionTriggerKind.Invoked },
198
- }, server_interface_1.CancellationToken.None);
199
- assert.deepEqual(result, testUtils_1.EMPTY_RESULT);
200
- });
201
- it('should only show the part of the recommendation that does not overlap with the right context in multiline', async () => {
202
- const cutOffLine = 2;
203
- const lines = testUtils_1.HELLO_WORLD_IN_CSHARP.split('\n');
204
- // The recommendation will be the contents of hello world starting from line 3 (static void Main)
205
- const recommendation = lines.slice(cutOffLine).join('\n');
206
- // We delete the static void Main line from Hello World but keep the rest in the file
207
- const deletedLine = lines.splice(cutOffLine, 1)[0];
208
- const finalFileContent = lines.join('\n');
209
- const MY_FILE = server_interface_1.TextDocument.create('file:///rightContext.cs', 'csharp', 1, finalFileContent);
210
- features.openDocument(MY_FILE);
211
- const EXPECTED_SUGGESTION = [{ itemId: 'cwspr-item-id', content: recommendation }];
212
- service.generateSuggestions.returns(Promise.resolve({
213
- suggestions: EXPECTED_SUGGESTION,
214
- responseContext: testUtils_1.EXPECTED_RESPONSE_CONTEXT,
215
- }));
216
- // Expected result is the deleted line + new line + 4 spaces
217
- // Newline and the 4 spaces get lost when we do the `split` so we add them back to expected result
218
- const EXPECTED_RESULT = {
219
- sessionId: testUtils_1.EXPECTED_SESSION_ID,
220
- items: [
221
- {
222
- itemId: EXPECTED_SUGGESTION[0].itemId,
223
- insertText: deletedLine.concat('\n '),
224
- range: undefined,
225
- references: undefined,
226
- },
227
- ],
228
- };
229
- const result = await features.doInlineCompletionWithReferences({
230
- textDocument: { uri: MY_FILE.uri },
231
- position: { line: cutOffLine, character: 0 },
232
- context: { triggerKind: server_interface_1.InlineCompletionTriggerKind.Invoked },
233
- }, server_interface_1.CancellationToken.None);
234
- assert.deepEqual(result, EXPECTED_RESULT);
235
- const leftContext = lines.slice(0, cutOffLine).join('\n') + '\n';
236
- const rightContext = lines.slice(cutOffLine).join('\n');
237
- const expectedGenerateSuggestionsRequest = {
238
- fileContext: {
239
- filename: MY_FILE.uri,
240
- programmingLanguage: { languageName: 'csharp' },
241
- leftFileContent: leftContext,
242
- rightFileContent: rightContext,
243
- },
244
- maxResults: 5,
245
- };
246
- ts_sinon_1.default.assert.calledOnceWithExactly(service.generateSuggestions, expectedGenerateSuggestionsRequest);
247
- });
248
- it('should convert windows newlines to UNIX newlines in request file contents', async () => {
249
- const cutOffLine = 2;
250
- const lines = testUtils_1.HELLO_WORLD_WITH_WINDOWS_ENDING.split('\r\n');
251
- const MY_WINDOWS_FILE = server_interface_1.TextDocument.create('file:///rightContext.cs', 'csharp', 1, testUtils_1.HELLO_WORLD_WITH_WINDOWS_ENDING);
252
- features.openDocument(MY_WINDOWS_FILE);
253
- await features.doInlineCompletionWithReferences({
254
- textDocument: { uri: MY_WINDOWS_FILE.uri },
255
- position: { line: cutOffLine, character: 0 },
256
- context: { triggerKind: server_interface_1.InlineCompletionTriggerKind.Invoked },
257
- }, server_interface_1.CancellationToken.None);
258
- const modifiedLeftContext = lines.slice(0, cutOffLine).join('\n') + '\n';
259
- const modifiedRightContext = lines.slice(cutOffLine).join('\n');
260
- const expectedGenerateSuggestionsRequest = {
261
- fileContext: {
262
- filename: MY_WINDOWS_FILE.uri,
263
- programmingLanguage: { languageName: 'csharp' },
264
- leftFileContent: modifiedLeftContext,
265
- rightFileContent: modifiedRightContext,
266
- },
267
- maxResults: 5,
268
- };
269
- ts_sinon_1.default.assert.calledOnceWithExactly(service.generateSuggestions, expectedGenerateSuggestionsRequest);
270
- });
271
- it('should only show the part of the recommendation that does not overlap with the right context', async () => {
272
- const EXPECTED_SUGGESTION = [{ itemId: 'cwspr-item-id', content: testUtils_1.HELLO_WORLD_LINE }];
273
- service.generateSuggestions.returns(Promise.resolve({
274
- suggestions: EXPECTED_SUGGESTION,
275
- responseContext: testUtils_1.EXPECTED_RESPONSE_CONTEXT,
276
- }));
277
- const EXPECTED_RESULT = {
278
- sessionId: testUtils_1.EXPECTED_SESSION_ID,
279
- items: [
280
- {
281
- itemId: EXPECTED_SUGGESTION[0].itemId,
282
- insertText: testUtils_1.HELLO_WORLD_LINE.substring(0, testUtils_1.SINGLE_LINE_FILE_CUTOFF_INDEX),
283
- range: undefined,
284
- references: undefined,
285
- },
286
- ],
287
- };
288
- const result = await features.doInlineCompletionWithReferences({
289
- textDocument: { uri: testUtils_1.SOME_SINGLE_LINE_FILE.uri },
290
- position: { line: 0, character: 0 },
291
- context: { triggerKind: server_interface_1.InlineCompletionTriggerKind.Invoked },
292
- }, server_interface_1.CancellationToken.None);
293
- assert.deepEqual(result, EXPECTED_RESULT);
294
- });
295
- it('should show full recommendation when the right context does not match recommendation ', async () => {
296
- const EXPECTED_SUGGESTION = [{ itemId: 'cwspr-item-id', content: 'Something something' }];
297
- service.generateSuggestions.returns(Promise.resolve({
298
- suggestions: EXPECTED_SUGGESTION,
299
- responseContext: testUtils_1.EXPECTED_RESPONSE_CONTEXT,
300
- }));
301
- const EXPECTED_RESULT = {
302
- sessionId: testUtils_1.EXPECTED_SESSION_ID,
303
- items: [
304
- {
305
- itemId: EXPECTED_SUGGESTION[0].itemId,
306
- insertText: EXPECTED_SUGGESTION[0].content,
307
- range: undefined,
308
- references: undefined,
309
- },
310
- ],
311
- };
312
- const result = await features.doInlineCompletionWithReferences({
313
- textDocument: { uri: testUtils_1.SOME_FILE.uri },
314
- position: { line: 0, character: 0 },
315
- context: { triggerKind: server_interface_1.InlineCompletionTriggerKind.Invoked },
316
- }, server_interface_1.CancellationToken.None);
317
- assert.deepEqual(result, EXPECTED_RESULT);
318
- });
319
- it('should return empty recommendations list on failed request', async () => {
320
- // Plant exception
321
- service.generateSuggestions.returns(Promise.reject('UNEXPECTED EXCEPTION'));
322
- const result = await features.doInlineCompletionWithReferences({
323
- textDocument: { uri: testUtils_1.SOME_FILE.uri },
324
- position: { line: 0, character: 0 },
325
- context: { triggerKind: server_interface_1.InlineCompletionTriggerKind.Invoked },
326
- }, server_interface_1.CancellationToken.None);
327
- // Check the completion result
328
- assert.deepEqual(result, testUtils_1.EMPTY_RESULT);
329
- });
330
- describe('Supplemental Context', () => {
331
- it('should send supplemental context when using token authentication', async () => {
332
- const test_service = ts_sinon_1.default.createStubInstance(codeWhispererService_1.CodeWhispererServiceToken);
333
- test_service.generateSuggestions.returns(Promise.resolve({
334
- suggestions: testUtils_1.EXPECTED_SUGGESTION,
335
- responseContext: testUtils_1.EXPECTED_RESPONSE_CONTEXT,
336
- }));
337
- const test_server = (0, codeWhispererServer_1.CodewhispererServerFactory)(_auth => test_service);
338
- // Initialize the features, but don't start server yet
339
- const test_features = new testing_1.TestFeatures();
340
- // Return no specific configuration for CodeWhisperer
341
- test_features.lsp.workspace.getConfiguration.returns(Promise.resolve({}));
342
- // Start the server and open a document
343
- await test_features.start(test_server);
344
- // Open files supporting cross-file context
345
- test_features
346
- .openDocument(server_interface_1.TextDocument.create('file:///SampleFile.java', 'java', 1, 'sample-content'))
347
- .openDocument(server_interface_1.TextDocument.create('file:///TargetFile.java', 'java', 1, ''));
348
- await test_features.doInlineCompletionWithReferences({
349
- textDocument: { uri: 'file:///TargetFile.java' },
350
- position: server_interface_1.Position.create(0, 0),
351
- context: { triggerKind: server_interface_1.InlineCompletionTriggerKind.Invoked },
352
- }, server_interface_1.CancellationToken.None);
353
- const expectedGenerateSuggestionsRequest = {
354
- fileContext: {
355
- filename: 'file:///TargetFile.java',
356
- programmingLanguage: { languageName: 'java' },
357
- leftFileContent: '',
358
- rightFileContent: '',
359
- },
360
- maxResults: 5,
361
- supplementalContexts: [
362
- { content: 'sample-content', filePath: '/SampleFile.java' },
363
- { content: 'sample-content', filePath: '/SampleFile.java' },
364
- ],
365
- };
366
- ts_sinon_1.default.assert.calledOnceWithExactly(test_service.generateSuggestions, expectedGenerateSuggestionsRequest);
367
- test_features.dispose();
368
- });
369
- });
370
- // TODO: mock http request and verify the headers are passed
371
- // or spawn an http server and pass it as an endpoint to the sdk client,
372
- // mock responses and verify that correct headers are receieved on the server side.
373
- // Currently the suite just checks whether the boolean is passed to codeWhispererService
374
- describe('Opting out of sending data to CodeWhisperer', () => {
375
- it('should send opt-out header when the setting is disabled', async () => {
376
- features.lsp.workspace.getConfiguration.returns(Promise.resolve({ shareCodeWhispererContentWithAWS: false }));
377
- await features.start(server);
378
- assert(service.shareCodeWhispererContentWithAWS === false);
379
- });
380
- it('should not send opt-out header when the setting is enabled after startup', async () => {
381
- features.lsp.workspace.getConfiguration.returns(Promise.resolve({ shareCodeWhispererContentWithAWS: false }));
382
- await features.start(server);
383
- features.lsp.workspace.getConfiguration.returns(Promise.resolve({ shareCodeWhispererContentWithAWS: true }));
384
- // Invoke event twice to ensure LSP Router propagates didChangeConfiguration notification and allows time for it to take effect in tests
385
- await features.openDocument(testUtils_1.SOME_FILE).doChangeConfiguration();
386
- await features.openDocument(testUtils_1.SOME_FILE).doChangeConfiguration();
387
- assert(service.shareCodeWhispererContentWithAWS === true);
388
- });
389
- it('should send opt-out header if no settings are specificed', async () => {
390
- features.lsp.workspace.getConfiguration.returns(Promise.resolve({}));
391
- await features.start(server);
392
- assert(service.shareCodeWhispererContentWithAWS === false);
393
- });
394
- });
395
- });
396
- describe('Recommendations With References', () => {
397
- let features;
398
- let server;
399
- // TODO move more of the service code out of the stub and into the testable realm
400
- // See: https://aws.amazon.com/blogs/developer/mocking-modular-aws-sdk-for-javascript-v3-in-unit-tests/
401
- // for examples on how to mock just the SDK client
402
- let service;
403
- beforeEach(() => {
404
- // Set up the server with a mock service, returning predefined recommendations
405
- service = (0, ts_sinon_1.stubInterface)();
406
- service.customizationArn = undefined;
407
- service.generateSuggestions.returns(Promise.resolve({
408
- suggestions: testUtils_1.EXPECTED_SUGGESTION_LIST,
409
- responseContext: testUtils_1.EXPECTED_RESPONSE_CONTEXT,
410
- }));
411
- server = (0, codeWhispererServer_1.CodewhispererServerFactory)(_auth => service);
412
- // Initialize the features, but don't start server yet
413
- features = new testing_1.TestFeatures();
414
- });
415
- afterEach(() => {
416
- features.dispose();
417
- });
418
- it('should return all recommendations if no settings are specificed', async () => {
419
- features.lsp.workspace.getConfiguration.returns(Promise.resolve({}));
420
- await features.start(server);
421
- const result = await features.openDocument(testUtils_1.SOME_FILE).doInlineCompletionWithReferences({
422
- textDocument: { uri: testUtils_1.SOME_FILE.uri },
423
- position: { line: 0, character: 0 },
424
- context: { triggerKind: server_interface_1.InlineCompletionTriggerKind.Invoked },
425
- }, server_interface_1.CancellationToken.None);
426
- // Check the completion result
427
- assert.deepEqual(result, testUtils_1.EXPECTED_RESULT_WITHOUT_REFERENCES);
428
- });
429
- it('should filter recommendations with references if GetConfiguration is not handled by the client', async () => {
430
- features.lsp.workspace.getConfiguration.returns(Promise.reject(new Error('GetConfiguration failed')));
431
- await features.start(server);
432
- const result = await features.openDocument(testUtils_1.SOME_FILE).doInlineCompletionWithReferences({
433
- textDocument: { uri: testUtils_1.SOME_FILE.uri },
434
- position: { line: 0, character: 0 },
435
- context: { triggerKind: server_interface_1.InlineCompletionTriggerKind.Invoked },
436
- }, server_interface_1.CancellationToken.None);
437
- // Check the completion result
438
- assert.deepEqual(result, testUtils_1.EXPECTED_RESULT_WITHOUT_REFERENCES);
439
- });
440
- it('should return all recommendations if settings are true', async () => {
441
- features.lsp.workspace.getConfiguration.returns(Promise.resolve({ includeSuggestionsWithCodeReferences: true }));
442
- await features.start(server);
443
- const result = await features.openDocument(testUtils_1.SOME_FILE).doInlineCompletionWithReferences({
444
- textDocument: { uri: testUtils_1.SOME_FILE.uri },
445
- position: { line: 0, character: 0 },
446
- context: { triggerKind: server_interface_1.InlineCompletionTriggerKind.Invoked },
447
- }, server_interface_1.CancellationToken.None);
448
- // Check the completion result
449
- assert.deepEqual(result, testUtils_1.EXPECTED_RESULT_WITH_REFERENCES);
450
- });
451
- it('should filter recommendations with references if no code references are allowed by settings', async () => {
452
- features.lsp.workspace.getConfiguration.returns(Promise.resolve({ includeSuggestionsWithCodeReferences: false }));
453
- await features.start(server);
454
- const result = await features.openDocument(testUtils_1.SOME_FILE).doInlineCompletionWithReferences({
455
- textDocument: { uri: testUtils_1.SOME_FILE.uri },
456
- position: { line: 0, character: 0 },
457
- context: { triggerKind: server_interface_1.InlineCompletionTriggerKind.Invoked },
458
- }, server_interface_1.CancellationToken.None);
459
- // Check the completion result
460
- assert.deepEqual(result, testUtils_1.EXPECTED_RESULT_WITHOUT_REFERENCES);
461
- });
462
- it('should filter recommendations with references if code references are disabled after startup', async () => {
463
- features.lsp.workspace.getConfiguration.returns(Promise.resolve({ includeSuggestionsWithCodeReferences: true }));
464
- await features.start(server);
465
- features.lsp.workspace.getConfiguration.returns(Promise.resolve({ includeSuggestionsWithCodeReferences: false }));
466
- const afterConfigChange = await features.openDocument(testUtils_1.SOME_FILE).doChangeConfiguration();
467
- const result = await afterConfigChange.doInlineCompletionWithReferences({
468
- textDocument: { uri: testUtils_1.SOME_FILE.uri },
469
- position: { line: 0, character: 0 },
470
- context: { triggerKind: server_interface_1.InlineCompletionTriggerKind.Invoked },
471
- }, server_interface_1.CancellationToken.None);
472
- // Check the completion result
473
- assert.deepEqual(result, testUtils_1.EXPECTED_RESULT_WITHOUT_REFERENCES);
474
- });
475
- it('should filter recommendations with references if code references are enabled after startup', async () => {
476
- features.lsp.workspace.getConfiguration.returns(Promise.resolve({ includeSuggestionsWithCodeReferences: false }));
477
- await features.start(server);
478
- features.lsp.workspace.getConfiguration.returns(Promise.resolve({ includeSuggestionsWithCodeReferences: true }));
479
- const afterConfigChange = await features.openDocument(testUtils_1.SOME_FILE).doChangeConfiguration();
480
- const result = await afterConfigChange.doInlineCompletionWithReferences({
481
- textDocument: { uri: testUtils_1.SOME_FILE.uri },
482
- position: { line: 0, character: 0 },
483
- context: { triggerKind: server_interface_1.InlineCompletionTriggerKind.Invoked },
484
- }, server_interface_1.CancellationToken.None);
485
- // Check the completion result
486
- assert.deepEqual(result, testUtils_1.EXPECTED_RESULT_WITH_REFERENCES);
487
- });
488
- it('should not show references when the right context is equal to suggestion', async () => {
489
- features.lsp.workspace.getConfiguration.returns(Promise.resolve({ includeSuggestionsWithCodeReferences: true }));
490
- await features.start(server);
491
- const EXPECTED_SUGGESTION = [{ itemId: 'cwspr-item-id', content: testUtils_1.HELLO_WORLD_IN_CSHARP }];
492
- service.generateSuggestions.returns(Promise.resolve({
493
- suggestions: EXPECTED_SUGGESTION,
494
- responseContext: testUtils_1.EXPECTED_RESPONSE_CONTEXT,
495
- }));
496
- const result = await features.openDocument(testUtils_1.SOME_FILE).doInlineCompletionWithReferences({
497
- textDocument: { uri: testUtils_1.SOME_FILE.uri },
498
- position: { line: 0, character: 0 },
499
- context: { triggerKind: server_interface_1.InlineCompletionTriggerKind.Invoked },
500
- }, server_interface_1.CancellationToken.None);
501
- assert.deepEqual(result, testUtils_1.EMPTY_RESULT);
502
- });
503
- it('should show references and update range when there is partial overlap on right context', async () => {
504
- features.lsp.workspace.getConfiguration.returns(Promise.resolve({ includeSuggestionsWithCodeReferences: true }));
505
- await features.start(server);
506
- const cutOffLine = 2;
507
- const lines = testUtils_1.HELLO_WORLD_IN_CSHARP.split('\n');
508
- // The recommendation will be the contents of hello world starting from line 3 (static void Main)
509
- const recommendation = lines.slice(cutOffLine).join('\n');
510
- // We delete the static void Main line from Hello World but keep the rest in the file
511
- const deletedLine = lines.splice(cutOffLine, 1)[0];
512
- const finalFileContent = lines.join('\n');
513
- const MY_FILE = server_interface_1.TextDocument.create('file:///rightContext.cs', 'csharp', 1, finalFileContent);
514
- features.openDocument(MY_FILE);
515
- const EXPECTED_REFERENCE_WITH_LONG_RANGE = {
516
- ...testUtils_1.EXPECTED_REFERENCE,
517
- recommendationContentSpan: { start: 0, end: testUtils_1.HELLO_WORLD_IN_CSHARP.length },
518
- };
519
- const EXPECTED_SUGGESTION = [
520
- { itemId: 'cwspr-item-id', content: recommendation, references: [EXPECTED_REFERENCE_WITH_LONG_RANGE] },
521
- ];
522
- const insertText = deletedLine.concat('\n ');
523
- const EXPECTED_RESULT = {
524
- sessionId: testUtils_1.EXPECTED_SESSION_ID,
525
- items: [
526
- {
527
- itemId: EXPECTED_SUGGESTION[0].itemId,
528
- insertText: insertText,
529
- range: undefined,
530
- references: [
531
- {
532
- licenseName: EXPECTED_REFERENCE_WITH_LONG_RANGE.licenseName,
533
- referenceName: EXPECTED_REFERENCE_WITH_LONG_RANGE.repository,
534
- referenceUrl: EXPECTED_REFERENCE_WITH_LONG_RANGE.url,
535
- position: {
536
- startCharacter: EXPECTED_REFERENCE_WITH_LONG_RANGE.recommendationContentSpan?.start,
537
- endCharacter: insertText.length - 1,
538
- },
539
- },
540
- ],
541
- },
542
- ],
543
- };
544
- service.generateSuggestions.returns(Promise.resolve({
545
- suggestions: EXPECTED_SUGGESTION,
546
- responseContext: testUtils_1.EXPECTED_RESPONSE_CONTEXT,
547
- }));
548
- const result = await features.openDocument(MY_FILE).doInlineCompletionWithReferences({
549
- textDocument: { uri: MY_FILE.uri },
550
- position: { line: cutOffLine, character: 0 },
551
- context: { triggerKind: server_interface_1.InlineCompletionTriggerKind.Invoked },
552
- }, server_interface_1.CancellationToken.None);
553
- assert.deepEqual(result, EXPECTED_RESULT);
554
- });
555
- it('should discard reference if it references trimmed content after right-context merge', async () => {
556
- features.lsp.workspace.getConfiguration.returns(Promise.resolve({ includeSuggestionsWithCodeReferences: true }));
557
- await features.start(server);
558
- const cutOffLine = 2;
559
- const lines = testUtils_1.HELLO_WORLD_IN_CSHARP.split('\n');
560
- // The recommendation will be the contents of hello world starting from line 3 (static void Main)
561
- const recommendation = lines.slice(cutOffLine).join('\n');
562
- // We delete the static void Main line from Hello World but keep the rest in the file
563
- const deletedLine = lines.splice(cutOffLine, 1)[0];
564
- const finalFileContent = lines.join('\n');
565
- const MY_FILE = server_interface_1.TextDocument.create('file:///rightContext.cs', 'csharp', 1, finalFileContent);
566
- features.openDocument(MY_FILE);
567
- const insertText = deletedLine.concat('\n ');
568
- // reference range covers portion of string that will be removed
569
- const EXPECTED_REFERENCE_WITH_OUTER_RANGE = {
570
- ...testUtils_1.EXPECTED_REFERENCE,
571
- recommendationContentSpan: { start: insertText.length, end: recommendation.length },
572
- };
573
- const EXPECTED_SUGGESTION = [
574
- { itemId: 'cwspr-item-id', content: recommendation, references: [EXPECTED_REFERENCE_WITH_OUTER_RANGE] },
575
- ];
576
- const EXPECTED_RESULT = {
577
- sessionId: testUtils_1.EXPECTED_SESSION_ID,
578
- items: [
579
- {
580
- itemId: EXPECTED_SUGGESTION[0].itemId,
581
- insertText: insertText,
582
- range: undefined,
583
- references: undefined,
584
- },
585
- ],
586
- };
587
- service.generateSuggestions.returns(Promise.resolve({
588
- suggestions: EXPECTED_SUGGESTION,
589
- responseContext: testUtils_1.EXPECTED_RESPONSE_CONTEXT,
590
- }));
591
- const result = await features.openDocument(MY_FILE).doInlineCompletionWithReferences({
592
- textDocument: { uri: MY_FILE.uri },
593
- position: { line: cutOffLine, character: 0 },
594
- context: { triggerKind: server_interface_1.InlineCompletionTriggerKind.Invoked },
595
- }, server_interface_1.CancellationToken.None);
596
- assert.deepEqual(result, EXPECTED_RESULT);
597
- });
598
- describe('With session management', () => {
599
- it('should close session if code references are disabled and all suggestions had references', async () => {
600
- const EXPECTED_SUGGESTION_WITH_REFERENCES = [
601
- {
602
- itemId: 'cwspr-item-id-1',
603
- content: 'recommendation with reference',
604
- references: [testUtils_1.EXPECTED_REFERENCE],
605
- },
606
- ];
607
- service.generateSuggestions.returns(Promise.resolve({
608
- suggestions: EXPECTED_SUGGESTION_WITH_REFERENCES,
609
- responseContext: testUtils_1.EXPECTED_RESPONSE_CONTEXT,
610
- }));
611
- features.lsp.workspace.getConfiguration.returns(Promise.resolve({ includeSuggestionsWithCodeReferences: false }));
612
- await features.start(server);
613
- const result = await features.openDocument(testUtils_1.SOME_FILE).doInlineCompletionWithReferences({
614
- textDocument: { uri: testUtils_1.SOME_FILE.uri },
615
- position: { line: 0, character: 0 },
616
- context: { triggerKind: server_interface_1.InlineCompletionTriggerKind.Invoked },
617
- }, server_interface_1.CancellationToken.None);
618
- // Check the completion result
619
- assert.deepEqual(result, testUtils_1.EMPTY_RESULT);
620
- // There is no active session
621
- assert.equal(sessionManager.getActiveSession(), undefined);
622
- assert.equal(sessionManagerSpy.createSession.callCount, 1);
623
- assert.equal(sessionManagerSpy.closeSession.callCount, 1);
624
- });
625
- });
626
- });
627
- describe('With auto-triggers', async () => {
628
- const AUTO_TRIGGER_POSITION = { line: 2, character: 21 };
629
- const LEFT_FILE_CONTEXT = testUtils_1.HELLO_WORLD_IN_CSHARP.substring(0, 40);
630
- const RIGHT_FILE_CONTEXT = testUtils_1.HELLO_WORLD_IN_CSHARP.substring(40);
631
- let features;
632
- let server;
633
- // TODO move more of the service code out of the stub and into the testable realm
634
- // See: https://aws.amazon.com/blogs/developer/mocking-modular-aws-sdk-for-javascript-v3-in-unit-tests/
635
- // for examples on how to mock just the SDK client
636
- let service;
637
- beforeEach(async () => {
638
- // Set up the server with a mock service, returning predefined recommendations
639
- service = (0, ts_sinon_1.stubInterface)();
640
- service.generateSuggestions.returns(Promise.resolve({
641
- suggestions: testUtils_1.EXPECTED_SUGGESTION,
642
- responseContext: testUtils_1.EXPECTED_RESPONSE_CONTEXT,
643
- }));
644
- server = (0, codeWhispererServer_1.CodewhispererServerFactory)(_auth => service);
645
- // Initialize the features, but don't start server yet
646
- features = new testing_1.TestFeatures();
647
- // Return no specific configuration for CodeWhisperer
648
- features.lsp.workspace.getConfiguration.returns(Promise.resolve({}));
649
- // Start the server and open a document
650
- await features.start(server);
651
- features.openDocument(testUtils_1.SOME_FILE);
652
- });
653
- afterEach(() => {
654
- features.dispose();
655
- });
656
- it('should return recommendations even on a below-threshold auto-trigger position when special characters are present', async () => {
657
- const SOME_FILE = server_interface_1.TextDocument.create('file:///test.cs', 'csharp', 1, testUtils_1.SPECIAL_CHARACTER_HELLO_WORLD);
658
- features.openDocument(SOME_FILE);
659
- const result = await features.doInlineCompletionWithReferences({
660
- textDocument: { uri: SOME_FILE.uri },
661
- position: { line: 0, character: 1 },
662
- context: { triggerKind: server_interface_1.InlineCompletionTriggerKind.Automatic },
663
- }, server_interface_1.CancellationToken.None);
664
- assert.deepEqual(result, testUtils_1.EXPECTED_RESULT);
665
- const expectedGenerateSuggestionsRequest = {
666
- fileContext: {
667
- filename: SOME_FILE.uri,
668
- programmingLanguage: { languageName: 'csharp' },
669
- leftFileContent: testUtils_1.SPECIAL_CHARACTER_HELLO_WORLD.substring(0, 1),
670
- rightFileContent: testUtils_1.SPECIAL_CHARACTER_HELLO_WORLD.substring(1, testUtils_1.SPECIAL_CHARACTER_HELLO_WORLD.length),
671
- },
672
- maxResults: 1,
673
- };
674
- ts_sinon_1.default.assert.calledOnceWithExactly(service.generateSuggestions, expectedGenerateSuggestionsRequest);
675
- });
676
- it('should return recommendations on an above-threshold auto-trigger position', async () => {
677
- // Similar to test from above, this test case also depends on file contents not starting with a new line
678
- const HELLO_WORLD_IN_CSHARP_WITHOUT_NEWLINE = testUtils_1.HELLO_WORLD_IN_CSHARP.trimStart();
679
- const SOME_FILE = server_interface_1.TextDocument.create('file:///test.cs', 'csharp', 1, HELLO_WORLD_IN_CSHARP_WITHOUT_NEWLINE);
680
- features.openDocument(SOME_FILE);
681
- const LEFT_FILE_CONTEXT = HELLO_WORLD_IN_CSHARP_WITHOUT_NEWLINE.substring(0, 40);
682
- const RIGHT_FILE_CONTEXT = HELLO_WORLD_IN_CSHARP_WITHOUT_NEWLINE.substring(40);
683
- const result = await features.doInlineCompletionWithReferences({
684
- textDocument: { uri: SOME_FILE.uri },
685
- position: AUTO_TRIGGER_POSITION,
686
- context: { triggerKind: server_interface_1.InlineCompletionTriggerKind.Automatic },
687
- }, server_interface_1.CancellationToken.None);
688
- // Check the completion result
689
- assert.deepEqual(result, testUtils_1.EXPECTED_RESULT);
690
- const expectedGenerateSuggestionsRequest = {
691
- fileContext: {
692
- filename: SOME_FILE.uri,
693
- programmingLanguage: { languageName: 'csharp' },
694
- leftFileContent: LEFT_FILE_CONTEXT,
695
- rightFileContent: RIGHT_FILE_CONTEXT,
696
- },
697
- maxResults: 1,
698
- };
699
- ts_sinon_1.default.assert.calledOnceWithExactly(service.generateSuggestions, expectedGenerateSuggestionsRequest);
700
- });
701
- it('shoud not return recommendations on a below-threshold auto-trigger position', async () => {
702
- const result = await features.doInlineCompletionWithReferences({
703
- textDocument: { uri: testUtils_1.SOME_FILE.uri },
704
- position: { line: 0, character: 0 },
705
- context: { triggerKind: server_interface_1.InlineCompletionTriggerKind.Automatic },
706
- }, server_interface_1.CancellationToken.None);
707
- // Check the completion result
708
- assert.deepEqual(result, testUtils_1.EMPTY_RESULT);
709
- });
710
- });
711
- describe('Log Inline Completion Session Results', () => {
712
- const requestContext = {
713
- maxResults: 5,
714
- fileContext: {
715
- filename: 'SomeFile',
716
- programmingLanguage: { languageName: 'csharp' },
717
- leftFileContent: 'LeftFileContent',
718
- rightFileContent: 'RightFileContent',
719
- },
720
- };
721
- const sessionData = {
722
- document: server_interface_1.TextDocument.create('file:///rightContext.cs', 'csharp', 1, testUtils_1.HELLO_WORLD_IN_CSHARP),
723
- startPosition: { line: 0, character: 0 },
724
- triggerType: 'OnDemand',
725
- language: 'csharp',
726
- requestContext: requestContext,
727
- };
728
- const sessionResultData = {
729
- sessionId: 'some-random-session-uuid-0',
730
- completionSessionResult: {
731
- 'cwspr-item-id': {
732
- seen: true,
733
- accepted: false,
734
- discarded: false,
735
- },
736
- },
737
- firstCompletionDisplayLatency: 50,
738
- totalSessionDisplayTime: 1000,
739
- };
740
- let features;
741
- let server;
742
- // TODO move more of the service code out of the stub and into the testable realm
743
- // See: https://aws.amazon.com/blogs/developer/mocking-modular-aws-sdk-for-javascript-v3-in-unit-tests/
744
- // for examples on how to mock just the SDK client
745
- let service;
746
- beforeEach(async () => {
747
- // Set up the server with a mock service, returning predefined recommendations
748
- service = (0, ts_sinon_1.stubInterface)();
749
- server = (0, codeWhispererServer_1.CodewhispererServerFactory)(_auth => service);
750
- // Initialize the features, but don't start server yet
751
- features = new testing_1.TestFeatures();
752
- // Start the server and open a document
753
- await features.start(server);
754
- features.openDocument(testUtils_1.SOME_FILE);
755
- });
756
- afterEach(() => {
757
- features.dispose();
758
- });
759
- it('should deactivate current session when session result for current session is sent', async () => {
760
- const manager = sessionManager_1.SessionManager.getInstance();
761
- const session = manager.createSession(sessionData);
762
- manager.activateSession(session);
763
- assert.equal(session.state, 'ACTIVE');
764
- await features.doLogInlineCompletionSessionResults(sessionResultData);
765
- assert.equal(session.state, 'CLOSED');
766
- });
767
- it('should not close current session when session result for different session is sent', async () => {
768
- const manager = sessionManager_1.SessionManager.getInstance();
769
- const session = manager.createSession(sessionData);
770
- manager.activateSession(session);
771
- const session2 = manager.createSession(sessionData);
772
- manager.activateSession(session2);
773
- assert.equal(session.state, 'CLOSED');
774
- assert.equal(session2.state, 'ACTIVE');
775
- await features.doLogInlineCompletionSessionResults(sessionResultData);
776
- assert.equal(session2.state, 'ACTIVE');
777
- });
778
- it('should store session result data', async () => {
779
- const manager = sessionManager_1.SessionManager.getInstance();
780
- const session = manager.createSession(sessionData);
781
- manager.activateSession(session);
782
- await features.doLogInlineCompletionSessionResults(sessionResultData);
783
- assert.equal(session.completionSessionResult, sessionResultData.completionSessionResult);
784
- assert.equal(session.firstCompletionDisplayLatency, sessionResultData.firstCompletionDisplayLatency);
785
- assert.equal(session.totalSessionDisplayTime, sessionResultData.totalSessionDisplayTime);
786
- });
787
- it('should store session result data with only completion state provided', async () => {
788
- const sessionResultData = {
789
- sessionId: 'some-random-session-uuid-0',
790
- completionSessionResult: {
791
- 'cwspr-item-id': {
792
- seen: true,
793
- accepted: false,
794
- discarded: false,
795
- },
796
- },
797
- };
798
- const manager = sessionManager_1.SessionManager.getInstance();
799
- const session = manager.createSession(sessionData);
800
- manager.activateSession(session);
801
- await features.doLogInlineCompletionSessionResults(sessionResultData);
802
- assert.equal(session.completionSessionResult, sessionResultData.completionSessionResult);
803
- assert.equal(session.firstCompletionDisplayLatency, undefined);
804
- assert.equal(session.totalSessionDisplayTime, undefined);
805
- });
806
- });
807
- describe('Telemetry', () => {
808
- const EXPECTED_RESPONSE_CONTEXT = {
809
- requestId: 'cwspr-request-id',
810
- codewhispererSessionId: 'cwspr-session-id',
811
- };
812
- const sessionResultData = {
813
- sessionId: 'some-random-session-uuid-0',
814
- completionSessionResult: {
815
- 'cwspr-item-id': {
816
- seen: true,
817
- accepted: false,
818
- discarded: false,
819
- },
820
- },
821
- firstCompletionDisplayLatency: 50,
822
- totalSessionDisplayTime: 1000,
823
- };
824
- let features;
825
- let server;
826
- // TODO move more of the service code out of the stub and into the testable realm
827
- // See: https://aws.amazon.com/blogs/developer/mocking-modular-aws-sdk-for-javascript-v3-in-unit-tests/
828
- // for examples on how to mock just the SDK client
829
- let service;
830
- let clock;
831
- beforeEach(async () => {
832
- clock = ts_sinon_1.default.useFakeTimers({
833
- now: 1483228800000,
834
- });
835
- // Set up the server with a mock service, returning predefined recommendations
836
- service = (0, ts_sinon_1.stubInterface)();
837
- service.generateSuggestions.returns(Promise.resolve({
838
- suggestions: testUtils_1.EXPECTED_SUGGESTION,
839
- responseContext: EXPECTED_RESPONSE_CONTEXT,
840
- }));
841
- server = (0, codeWhispererServer_1.CodewhispererServerFactory)(_auth => service);
842
- // Initialize the features, but don't start server yet
843
- features = new testing_1.TestFeatures();
844
- // Return no specific configuration for CodeWhisperer
845
- features.lsp.workspace.getConfiguration.returns(Promise.resolve({}));
846
- // Start the server and open a document
847
- await features.start(server);
848
- features.openDocument(testUtils_1.SOME_FILE);
849
- });
850
- afterEach(async () => {
851
- clock.restore();
852
- features.dispose();
853
- });
854
- it('should emit Success ServiceInvocation telemetry on successful response', async () => {
855
- await features.doInlineCompletionWithReferences({
856
- textDocument: { uri: testUtils_1.SOME_FILE.uri },
857
- position: { line: 0, character: 0 },
858
- context: { triggerKind: server_interface_1.InlineCompletionTriggerKind.Invoked },
859
- }, server_interface_1.CancellationToken.None);
860
- const expectedServiceInvocationMetric = {
861
- name: 'codewhisperer_serviceInvocation',
862
- result: 'Succeeded',
863
- data: {
864
- codewhispererRequestId: 'cwspr-request-id',
865
- codewhispererSessionId: 'cwspr-session-id',
866
- codewhispererLastSuggestionIndex: 0,
867
- codewhispererCompletionType: 'Line',
868
- codewhispererTriggerType: 'OnDemand',
869
- codewhispererAutomatedTriggerType: undefined,
870
- duration: 0,
871
- codewhispererLineNumber: 0,
872
- codewhispererCursorOffset: 0,
873
- codewhispererLanguage: 'csharp',
874
- credentialStartUrl: undefined,
875
- codewhispererSupplementalContextTimeout: undefined,
876
- codewhispererSupplementalContextIsUtg: undefined,
877
- codewhispererSupplementalContextLatency: undefined,
878
- codewhispererSupplementalContextLength: undefined,
879
- codewhispererCustomizationArn: undefined,
880
- },
881
- };
882
- ts_sinon_1.default.assert.calledOnceWithExactly(features.telemetry.emitMetric, expectedServiceInvocationMetric);
883
- });
884
- it('should emit Success ServiceInvocation telemetry on successful response with completionType block when first suggestion has new lines', async () => {
885
- const recommendation = ['multi', 'line', ' suggestion'].join('\n');
886
- const EXPECTED_SUGGESTIONS = [
887
- { itemId: 'cwspr-item-id-1', content: recommendation },
888
- { itemId: 'cwspr-item-id-2', content: recommendation },
889
- { itemId: 'cwspr-item-id-3', content: recommendation },
890
- ];
891
- service.generateSuggestions.returns(Promise.resolve({
892
- suggestions: EXPECTED_SUGGESTIONS,
893
- responseContext: EXPECTED_RESPONSE_CONTEXT,
894
- }));
895
- await features.doInlineCompletionWithReferences({
896
- textDocument: { uri: testUtils_1.SOME_FILE.uri },
897
- position: { line: 0, character: 0 },
898
- context: { triggerKind: server_interface_1.InlineCompletionTriggerKind.Invoked },
899
- }, server_interface_1.CancellationToken.None);
900
- const expectedServiceInvocationMetric = {
901
- name: 'codewhisperer_serviceInvocation',
902
- result: 'Succeeded',
903
- data: {
904
- codewhispererRequestId: 'cwspr-request-id',
905
- codewhispererSessionId: 'cwspr-session-id',
906
- codewhispererLastSuggestionIndex: 2,
907
- codewhispererCompletionType: 'Block',
908
- codewhispererTriggerType: 'OnDemand',
909
- codewhispererAutomatedTriggerType: undefined,
910
- duration: 0,
911
- codewhispererLineNumber: 0,
912
- codewhispererCursorOffset: 0,
913
- codewhispererLanguage: 'csharp',
914
- credentialStartUrl: undefined,
915
- codewhispererSupplementalContextTimeout: undefined,
916
- codewhispererSupplementalContextIsUtg: undefined,
917
- codewhispererSupplementalContextLatency: undefined,
918
- codewhispererSupplementalContextLength: undefined,
919
- codewhispererCustomizationArn: undefined,
920
- },
921
- };
922
- ts_sinon_1.default.assert.calledOnceWithExactly(features.telemetry.emitMetric, expectedServiceInvocationMetric);
923
- });
924
- it('should emit Failure ServiceInvocation telemetry on failed response', async () => {
925
- const error = new Error('UNEXPECTED EXCEPTION');
926
- error.name = 'TestError';
927
- service.generateSuggestions.returns(Promise.reject(error));
928
- await features.doInlineCompletionWithReferences({
929
- textDocument: { uri: testUtils_1.SOME_FILE.uri },
930
- position: { line: 0, character: 0 },
931
- context: { triggerKind: server_interface_1.InlineCompletionTriggerKind.Invoked },
932
- }, server_interface_1.CancellationToken.None);
933
- const expectedServiceInvocationMetric = {
934
- name: 'codewhisperer_serviceInvocation',
935
- result: 'Failed',
936
- data: {
937
- codewhispererRequestId: undefined,
938
- codewhispererSessionId: undefined,
939
- codewhispererLastSuggestionIndex: -1,
940
- codewhispererTriggerType: 'OnDemand',
941
- codewhispererAutomatedTriggerType: undefined,
942
- reason: 'CodeWhisperer Invocation Exception: TestError',
943
- duration: 0,
944
- codewhispererLineNumber: 0,
945
- codewhispererCursorOffset: 0,
946
- codewhispererLanguage: 'csharp',
947
- credentialStartUrl: undefined,
948
- codewhispererSupplementalContextTimeout: undefined,
949
- codewhispererSupplementalContextIsUtg: undefined,
950
- codewhispererSupplementalContextLatency: undefined,
951
- codewhispererSupplementalContextLength: undefined,
952
- codewhispererCustomizationArn: undefined,
953
- },
954
- errorData: {
955
- reason: 'TestError',
956
- errorCode: undefined,
957
- httpStatusCode: undefined,
958
- },
959
- };
960
- ts_sinon_1.default.assert.calledOnceWithExactly(features.telemetry.emitMetric, expectedServiceInvocationMetric);
961
- });
962
- it('should emit error with UnknownError reason if error name is not present', async () => {
963
- service.generateSuggestions.returns(Promise.reject('UNEXPECTED EXCEPTION'));
964
- await features.doInlineCompletionWithReferences({
965
- textDocument: { uri: testUtils_1.SOME_FILE.uri },
966
- position: { line: 0, character: 0 },
967
- context: { triggerKind: server_interface_1.InlineCompletionTriggerKind.Invoked },
968
- }, server_interface_1.CancellationToken.None);
969
- const expectedServiceInvocationMetric = {
970
- name: 'codewhisperer_serviceInvocation',
971
- result: 'Failed',
972
- data: {
973
- codewhispererRequestId: undefined,
974
- codewhispererSessionId: undefined,
975
- codewhispererLastSuggestionIndex: -1,
976
- codewhispererTriggerType: 'OnDemand',
977
- codewhispererAutomatedTriggerType: undefined,
978
- reason: 'CodeWhisperer Invocation Exception: UnknownError',
979
- duration: 0,
980
- codewhispererLineNumber: 0,
981
- codewhispererCursorOffset: 0,
982
- codewhispererLanguage: 'csharp',
983
- credentialStartUrl: undefined,
984
- codewhispererSupplementalContextTimeout: undefined,
985
- codewhispererSupplementalContextIsUtg: undefined,
986
- codewhispererSupplementalContextLatency: undefined,
987
- codewhispererSupplementalContextLength: undefined,
988
- codewhispererCustomizationArn: undefined,
989
- },
990
- errorData: {
991
- reason: 'UnknownError',
992
- errorCode: undefined,
993
- httpStatusCode: undefined,
994
- },
995
- };
996
- ts_sinon_1.default.assert.calledOnceWithExactly(features.telemetry.emitMetric, expectedServiceInvocationMetric);
997
- });
998
- it('should emit Failure ServiceInvocation telemetry with request metadata on failed response with AWSError error type', async () => {
999
- const error = new Error('Fake Error');
1000
- error.name = 'TestAWSError';
1001
- error.code = 'TestErrorStatusCode';
1002
- error.statusCode = 500;
1003
- error.time = new Date();
1004
- error.requestId = 'failed-request-id';
1005
- service.generateSuggestions.callsFake(_request => {
1006
- clock.tick(1000);
1007
- return Promise.reject(error);
1008
- });
1009
- const getCompletionsPromise = features.doInlineCompletionWithReferences({
1010
- textDocument: { uri: testUtils_1.SOME_FILE.uri },
1011
- position: { line: 0, character: 0 },
1012
- context: { triggerKind: server_interface_1.InlineCompletionTriggerKind.Invoked },
1013
- }, server_interface_1.CancellationToken.None);
1014
- await getCompletionsPromise;
1015
- const expectedServiceInvocationMetric = {
1016
- name: 'codewhisperer_serviceInvocation',
1017
- result: 'Failed',
1018
- data: {
1019
- codewhispererRequestId: 'failed-request-id',
1020
- codewhispererSessionId: undefined,
1021
- codewhispererLastSuggestionIndex: -1,
1022
- codewhispererTriggerType: 'OnDemand',
1023
- codewhispererAutomatedTriggerType: undefined,
1024
- reason: 'CodeWhisperer Invocation Exception: TestAWSError',
1025
- duration: 1000,
1026
- codewhispererLineNumber: 0,
1027
- codewhispererCursorOffset: 0,
1028
- codewhispererLanguage: 'csharp',
1029
- credentialStartUrl: undefined,
1030
- codewhispererSupplementalContextTimeout: undefined,
1031
- codewhispererSupplementalContextIsUtg: undefined,
1032
- codewhispererSupplementalContextLatency: undefined,
1033
- codewhispererSupplementalContextLength: undefined,
1034
- codewhispererCustomizationArn: undefined,
1035
- },
1036
- errorData: {
1037
- reason: 'TestAWSError',
1038
- errorCode: 'TestErrorStatusCode',
1039
- httpStatusCode: 500,
1040
- },
1041
- };
1042
- ts_sinon_1.default.assert.calledOnceWithExactly(features.telemetry.emitMetric, expectedServiceInvocationMetric);
1043
- });
1044
- it('should emit Perceived Latency metric when session result is received', async () => {
1045
- await features.doInlineCompletionWithReferences({
1046
- textDocument: { uri: testUtils_1.SOME_FILE.uri },
1047
- position: { line: 0, character: 0 },
1048
- context: { triggerKind: server_interface_1.InlineCompletionTriggerKind.Invoked },
1049
- }, server_interface_1.CancellationToken.None);
1050
- await features.doLogInlineCompletionSessionResults(sessionResultData);
1051
- const expectedPerceivedLatencyMetric = {
1052
- name: 'codewhisperer_perceivedLatency',
1053
- data: {
1054
- codewhispererRequestId: EXPECTED_RESPONSE_CONTEXT.requestId,
1055
- codewhispererSessionId: EXPECTED_RESPONSE_CONTEXT.codewhispererSessionId,
1056
- codewhispererCompletionType: 'Line',
1057
- codewhispererTriggerType: 'OnDemand',
1058
- duration: 50,
1059
- codewhispererLanguage: 'csharp',
1060
- credentialStartUrl: undefined,
1061
- },
1062
- };
1063
- ts_sinon_1.default.assert.calledWithExactly(features.telemetry.emitMetric, expectedPerceivedLatencyMetric);
1064
- });
1065
- it('should not emit Perceived Latency metric when firstCompletionDisplayLatency is absent', async () => {
1066
- const sessionResultDataWithoutLatency = {
1067
- ...sessionResultData,
1068
- firstCompletionDisplayLatency: undefined,
1069
- };
1070
- await features.doInlineCompletionWithReferences({
1071
- textDocument: { uri: testUtils_1.SOME_FILE.uri },
1072
- position: { line: 0, character: 0 },
1073
- context: { triggerKind: server_interface_1.InlineCompletionTriggerKind.Invoked },
1074
- }, server_interface_1.CancellationToken.None);
1075
- await features.doLogInlineCompletionSessionResults(sessionResultDataWithoutLatency);
1076
- ts_sinon_1.default.assert.neverCalledWith(features.telemetry.emitMetric, ts_sinon_1.default.match.has('name', 'codewhisperer_perceivedLatency'));
1077
- });
1078
- describe('Connection metadata credentialStartUrl field', () => {
1079
- it('should attach credentialStartUrl field if available in credentialsProvider', async () => {
1080
- features.credentialsProvider.getConnectionMetadata.returns({
1081
- sso: {
1082
- startUrl: 'http://teststarturl',
1083
- },
1084
- });
1085
- await features.doInlineCompletionWithReferences({
1086
- textDocument: { uri: testUtils_1.SOME_FILE.uri },
1087
- position: { line: 0, character: 0 },
1088
- context: { triggerKind: server_interface_1.InlineCompletionTriggerKind.Invoked },
1089
- }, server_interface_1.CancellationToken.None);
1090
- assert.equal(features.telemetry.emitMetric.getCall(0).args[0].data.credentialStartUrl, 'http://teststarturl');
1091
- });
1092
- it('should send empty credentialStartUrl field if not available in credentialsProvider', async () => {
1093
- features.credentialsProvider.getConnectionMetadata.returns(undefined);
1094
- await features.doInlineCompletionWithReferences({
1095
- textDocument: { uri: testUtils_1.SOME_FILE.uri },
1096
- position: { line: 0, character: 0 },
1097
- context: { triggerKind: server_interface_1.InlineCompletionTriggerKind.Invoked },
1098
- }, server_interface_1.CancellationToken.None);
1099
- assert.equal(features.telemetry.emitMetric.getCall(0).args[0].data.credentialStartUrl, undefined);
1100
- });
1101
- });
1102
- describe('Emit UserModification event with CodeDiffTracker', () => {
1103
- let codeDiffTrackerSpy;
1104
- let telemetryServiceSpy;
1105
- afterEach(() => {
1106
- ts_sinon_1.default.restore();
1107
- });
1108
- it('should enqueue a code diff entry when session results are returned with accepted completion', async () => {
1109
- const sessionResultData = {
1110
- sessionId: 'some-random-session-uuid-0',
1111
- completionSessionResult: {
1112
- 'cwspr-item-id': {
1113
- seen: true,
1114
- accepted: true,
1115
- discarded: false,
1116
- },
1117
- },
1118
- };
1119
- codeDiffTrackerSpy = ts_sinon_1.default.spy(codeDiffTracker_1.CodeDiffTracker.prototype, 'enqueue');
1120
- await features.doInlineCompletionWithReferences({
1121
- textDocument: { uri: testUtils_1.SOME_FILE.uri },
1122
- position: { line: 0, character: 0 },
1123
- context: { triggerKind: server_interface_1.InlineCompletionTriggerKind.Invoked },
1124
- }, server_interface_1.CancellationToken.None);
1125
- await features.doLogInlineCompletionSessionResults(sessionResultData);
1126
- ts_sinon_1.default.assert.calledOnceWithExactly(codeDiffTrackerSpy, {
1127
- sessionId: 'cwspr-session-id',
1128
- requestId: 'cwspr-request-id',
1129
- fileUrl: 'file:///test.cs',
1130
- languageId: 'csharp',
1131
- time: 1483228800000,
1132
- originalString: 'recommendation',
1133
- startPosition: { line: 0, character: 0 },
1134
- endPosition: { line: 0, character: 14 },
1135
- customizationArn: undefined,
1136
- });
1137
- });
1138
- it('should emit telemetryService.emitUserModificationEvent on schedule by CodeDiffTracker', async () => {
1139
- const startTime = new Date();
1140
- const sessionResultData = {
1141
- sessionId: 'some-random-session-uuid-0',
1142
- completionSessionResult: {
1143
- 'cwspr-item-id': {
1144
- seen: true,
1145
- accepted: true,
1146
- discarded: false,
1147
- },
1148
- },
1149
- };
1150
- telemetryServiceSpy = ts_sinon_1.default.spy(telemetryService_1.TelemetryService.prototype, 'emitUserModificationEvent');
1151
- await features.doInlineCompletionWithReferences({
1152
- textDocument: { uri: testUtils_1.SOME_FILE.uri },
1153
- position: { line: 0, character: 0 },
1154
- context: { triggerKind: server_interface_1.InlineCompletionTriggerKind.Invoked },
1155
- }, server_interface_1.CancellationToken.None);
1156
- await features.doLogInlineCompletionSessionResults(sessionResultData);
1157
- await clock.tickAsync(5 * 60 * 1000 + 30);
1158
- ts_sinon_1.default.assert.calledOnceWithExactly(telemetryServiceSpy, {
1159
- sessionId: 'cwspr-session-id',
1160
- requestId: 'cwspr-request-id',
1161
- languageId: 'csharp',
1162
- customizationArn: undefined,
1163
- timestamp: new Date(startTime.getTime() + 5 * 60 * 1000),
1164
- acceptedCharacterCount: 14,
1165
- modificationPercentage: 0.9285714285714286,
1166
- unmodifiedAcceptedCharacterCount: 1,
1167
- });
1168
- });
1169
- });
1170
- });
1171
- describe('Recommendations session management', () => {
1172
- const AUTO_TRIGGER_POSITION = { line: 2, character: 21 };
1173
- let features;
1174
- let server;
1175
- // TODO move more of the service code out of the stub and into the testable realm
1176
- // See: https://aws.amazon.com/blogs/developer/mocking-modular-aws-sdk-for-javascript-v3-in-unit-tests/
1177
- // for examples on how to mock just the SDK client
1178
- let service;
1179
- let clock;
1180
- beforeEach(async () => {
1181
- clock = ts_sinon_1.default.useFakeTimers({
1182
- now: 1483228800000,
1183
- });
1184
- // Set up the server with a mock service, returning predefined recommendations
1185
- service = (0, ts_sinon_1.stubInterface)();
1186
- service.generateSuggestions.returns(Promise.resolve({
1187
- suggestions: testUtils_1.EXPECTED_SUGGESTION,
1188
- responseContext: testUtils_1.EXPECTED_RESPONSE_CONTEXT,
1189
- }));
1190
- server = (0, codeWhispererServer_1.CodewhispererServerFactory)(_auth => service);
1191
- // Initialize the features, but don't start server yet
1192
- features = new testing_1.TestFeatures();
1193
- // Return no specific configuration for CodeWhisperer
1194
- features.lsp.workspace.getConfiguration.returns(Promise.resolve({}));
1195
- // Start the server and open a document
1196
- await features.start(server);
1197
- features.openDocument(testUtils_1.SOME_FILE).openDocument(testUtils_1.SOME_FILE_WITH_ALT_CASED_LANGUAGE_ID);
1198
- });
1199
- afterEach(() => {
1200
- clock.restore();
1201
- features.dispose();
1202
- });
1203
- it('should cache new session on new request when no session exists', async () => {
1204
- let activeSession = sessionManager.getCurrentSession();
1205
- assert.equal(activeSession, undefined);
1206
- await features.doInlineCompletionWithReferences({
1207
- textDocument: { uri: testUtils_1.SOME_FILE.uri },
1208
- position: AUTO_TRIGGER_POSITION,
1209
- context: { triggerKind: server_interface_1.InlineCompletionTriggerKind.Automatic },
1210
- }, server_interface_1.CancellationToken.None);
1211
- // Get session after call is done
1212
- activeSession = sessionManager.getCurrentSession();
1213
- const expectedSessionData = {
1214
- id: SESSION_IDS_LOG[0],
1215
- state: 'ACTIVE',
1216
- suggestions: [{ itemId: 'cwspr-item-id', content: 'recommendation', insertText: 'recommendation' }],
1217
- responseContext: testUtils_1.EXPECTED_RESPONSE_CONTEXT,
1218
- codewhispererSessionId: testUtils_1.EXPECTED_RESPONSE_CONTEXT.codewhispererSessionId,
1219
- timeToFirstRecommendation: 0,
1220
- };
1221
- assert(activeSession);
1222
- ts_sinon_1.default.assert.match({
1223
- id: activeSession.id,
1224
- state: activeSession.state,
1225
- suggestions: activeSession.suggestions,
1226
- responseContext: activeSession.responseContext,
1227
- codewhispererSessionId: activeSession.codewhispererSessionId,
1228
- timeToFirstRecommendation: activeSession.timeToFirstRecommendation,
1229
- }, expectedSessionData);
1230
- });
1231
- it('should discard inflight session on new request when cached session is in REQUESTING state on subsequent requests', async () => {
1232
- const getCompletionsResponses = await Promise.all([
1233
- features.doInlineCompletionWithReferences({
1234
- textDocument: { uri: testUtils_1.SOME_FILE.uri },
1235
- position: AUTO_TRIGGER_POSITION,
1236
- context: { triggerKind: server_interface_1.InlineCompletionTriggerKind.Automatic },
1237
- }, server_interface_1.CancellationToken.None),
1238
- features.doInlineCompletionWithReferences({
1239
- textDocument: { uri: testUtils_1.SOME_FILE.uri },
1240
- position: AUTO_TRIGGER_POSITION,
1241
- context: { triggerKind: server_interface_1.InlineCompletionTriggerKind.Automatic },
1242
- }, server_interface_1.CancellationToken.None),
1243
- features.doInlineCompletionWithReferences({
1244
- textDocument: { uri: testUtils_1.SOME_FILE.uri },
1245
- position: AUTO_TRIGGER_POSITION,
1246
- context: { triggerKind: server_interface_1.InlineCompletionTriggerKind.Automatic },
1247
- }, server_interface_1.CancellationToken.None),
1248
- ]);
1249
- // 3 requests were processed by server, but only first should return results
1250
- const EXPECTED_COMPLETION_RESPONSES = [
1251
- { sessionId: '', items: [] },
1252
- { sessionId: '', items: [] },
1253
- { sessionId: SESSION_IDS_LOG[2], items: testUtils_1.EXPECTED_RESULT.items }, // Last session wins
1254
- ];
1255
- // Only last request must return completion items
1256
- assert.deepEqual(getCompletionsResponses, EXPECTED_COMPLETION_RESPONSES);
1257
- assert.equal(sessionManagerSpy.createSession.callCount, 3);
1258
- // Get session after call is done
1259
- const activeSession = sessionManager.getCurrentSession();
1260
- // 3 sessions were created
1261
- assert.equal(SESSION_IDS_LOG.length, 3);
1262
- // Last session is ACTIVE stored in manager correctly
1263
- const expectedSessionData = {
1264
- id: SESSION_IDS_LOG[2],
1265
- state: 'ACTIVE',
1266
- suggestions: [{ itemId: 'cwspr-item-id', content: 'recommendation', insertText: 'recommendation' }],
1267
- };
1268
- assert(activeSession);
1269
- ts_sinon_1.default.assert.match({
1270
- id: activeSession.id,
1271
- state: activeSession.state,
1272
- suggestions: activeSession.suggestions,
1273
- }, expectedSessionData);
1274
- });
1275
- it('should record all sessions that were created in session log', async () => {
1276
- // Start 3 session, 2 will be cancelled inflight
1277
- await Promise.all([
1278
- features.doInlineCompletionWithReferences({
1279
- textDocument: { uri: testUtils_1.SOME_FILE.uri },
1280
- position: AUTO_TRIGGER_POSITION,
1281
- context: { triggerKind: server_interface_1.InlineCompletionTriggerKind.Automatic },
1282
- }, server_interface_1.CancellationToken.None),
1283
- features.doInlineCompletionWithReferences({
1284
- textDocument: { uri: testUtils_1.SOME_FILE.uri },
1285
- position: AUTO_TRIGGER_POSITION,
1286
- context: { triggerKind: server_interface_1.InlineCompletionTriggerKind.Automatic },
1287
- }, server_interface_1.CancellationToken.None),
1288
- features.doInlineCompletionWithReferences({
1289
- textDocument: { uri: testUtils_1.SOME_FILE.uri },
1290
- position: AUTO_TRIGGER_POSITION,
1291
- context: { triggerKind: server_interface_1.InlineCompletionTriggerKind.Automatic },
1292
- }, server_interface_1.CancellationToken.None),
1293
- ]);
1294
- // Get session after call is done
1295
- const firstActiveSession = sessionManager.getCurrentSession();
1296
- // Do another request, which will close last ACTIVE session
1297
- await features.doInlineCompletionWithReferences({
1298
- textDocument: { uri: testUtils_1.SOME_FILE.uri },
1299
- position: AUTO_TRIGGER_POSITION,
1300
- context: { triggerKind: server_interface_1.InlineCompletionTriggerKind.Automatic },
1301
- }, server_interface_1.CancellationToken.None);
1302
- assert.equal(sessionManagerSpy.createSession.callCount, 4);
1303
- assert.equal(sessionManager.getSessionsLog().length, 4);
1304
- const latestSession = sessionManager.getCurrentSession();
1305
- assert.equal(latestSession, sessionManager.getActiveSession());
1306
- assert.equal(latestSession, sessionManager.getCurrentSession());
1307
- // All sessions
1308
- assert.equal(firstActiveSession?.id, 'some-random-session-uuid-2');
1309
- });
1310
- it('should close new session on new request when service returns empty list', async () => {
1311
- service.generateSuggestions.returns(Promise.resolve({
1312
- suggestions: [],
1313
- responseContext: testUtils_1.EXPECTED_RESPONSE_CONTEXT,
1314
- }));
1315
- const activeSession = sessionManager.getCurrentSession();
1316
- assert.equal(activeSession, undefined);
1317
- await features.doInlineCompletionWithReferences({
1318
- textDocument: { uri: testUtils_1.SOME_FILE.uri },
1319
- position: AUTO_TRIGGER_POSITION,
1320
- context: { triggerKind: server_interface_1.InlineCompletionTriggerKind.Automatic },
1321
- }, server_interface_1.CancellationToken.None);
1322
- // Get session after call is done
1323
- const currentSession = sessionManager.getCurrentSession();
1324
- assert(currentSession);
1325
- assert.equal(currentSession?.state, 'CLOSED');
1326
- ts_sinon_1.default.assert.calledOnceWithExactly(sessionManagerSpy.closeSession, currentSession);
1327
- });
1328
- it('Manual completion invocation should close previous session', async () => {
1329
- const TRIGGER_KIND = server_interface_1.InlineCompletionTriggerKind.Invoked;
1330
- const result = await features.doInlineCompletionWithReferences({
1331
- textDocument: { uri: testUtils_1.SOME_FILE.uri },
1332
- position: { line: 0, character: 0 },
1333
- // Manual trigger kind
1334
- context: { triggerKind: TRIGGER_KIND },
1335
- }, server_interface_1.CancellationToken.None);
1336
- assert.deepEqual(result, testUtils_1.EXPECTED_RESULT);
1337
- const firstSession = sessionManager.getActiveSession();
1338
- // There is ACTIVE session
1339
- assert(firstSession);
1340
- assert.equal(sessionManager.getCurrentSession(), firstSession);
1341
- assert.equal(firstSession.state, 'ACTIVE');
1342
- const secondResult = await features.doInlineCompletionWithReferences({
1343
- textDocument: { uri: testUtils_1.SOME_FILE.uri },
1344
- position: { line: 0, character: 0 },
1345
- context: { triggerKind: TRIGGER_KIND },
1346
- }, server_interface_1.CancellationToken.None);
1347
- assert.deepEqual(secondResult, { ...testUtils_1.EXPECTED_RESULT, sessionId: SESSION_IDS_LOG[1] });
1348
- ts_sinon_1.default.assert.called(sessionManagerSpy.closeCurrentSession);
1349
- });
1350
- it('should discard inflight session if merge right recommendations resulted in list of empty strings', async () => {
1351
- // The suggestion returned by generateSuggestions will be equal to the contents of the file
1352
- // This test fails when the file starts with a new line, probably due to the way we handle right context merge
1353
- // So let's use hello world without the newline in the beginning
1354
- const HELLO_WORLD_IN_CSHARP_WITHOUT_NEWLINE = testUtils_1.HELLO_WORLD_IN_CSHARP.trimStart();
1355
- const SOME_FILE = server_interface_1.TextDocument.create('file:///test.cs', 'csharp', 1, HELLO_WORLD_IN_CSHARP_WITHOUT_NEWLINE);
1356
- features.openDocument(SOME_FILE);
1357
- const EXPECTED_SUGGESTION = [
1358
- { itemId: 'cwspr-item-id', content: HELLO_WORLD_IN_CSHARP_WITHOUT_NEWLINE },
1359
- ];
1360
- service.generateSuggestions.returns(Promise.resolve({
1361
- suggestions: EXPECTED_SUGGESTION,
1362
- responseContext: testUtils_1.EXPECTED_RESPONSE_CONTEXT,
1363
- }));
1364
- const result = await features.doInlineCompletionWithReferences({
1365
- textDocument: { uri: SOME_FILE.uri },
1366
- position: { line: 0, character: 0 },
1367
- context: { triggerKind: server_interface_1.InlineCompletionTriggerKind.Invoked },
1368
- }, server_interface_1.CancellationToken.None);
1369
- assert.deepEqual(result, testUtils_1.EMPTY_RESULT);
1370
- const session = sessionManager.getCurrentSession();
1371
- assert(session);
1372
- assert(session.state, 'CLOSED');
1373
- ts_sinon_1.default.assert.calledOnce(sessionManagerSpy.closeSession);
1374
- });
1375
- });
1376
- });
1377
- //# sourceMappingURL=codeWhispererServer.test.js.map