diff --git a/jscpd-report.json b/jscpd-report.json new file mode 100644 index 00000000000..250290aeaf7 --- /dev/null +++ b/jscpd-report.json @@ -0,0 +1,28993 @@ +{ + "statistics": { + "detectionDate": "2025-08-12T02:35:16.931Z", + "formats": { + "typescript": { + "sources": { + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/applicationBuilder/explorer/nodes/walkthrough.test.ts": { + "lines": 32, + "tokens": 237, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/applicationBuilder/explorer/nodes/rootNode.test.ts": { + "lines": 152, + "tokens": 1337, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/applicationBuilder/explorer/nodes/resourceNode.test.ts": { + "lines": 289, + "tokens": 2372, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/applicationBuilder/explorer/nodes/propertyNode.test.ts": { + "lines": 114, + "tokens": 1229, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/applicationBuilder/explorer/nodes/deployedStack.test.ts": { + "lines": 39, + "tokens": 294, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/applicationBuilder/explorer/nodes/deployedNode.test.ts": { + "lines": 415, + "tokens": 3316, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/applicationBuilder/explorer/nodes/appNode.test.ts": { + "lines": 250, + "tokens": 1877, + "sources": 1, + "clones": 2, + "duplicatedLines": 20, + "duplicatedTokens": 172, + "percentage": 8, + "percentageTokens": 9.16, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/sagemaker/detached-server/routes/refreshToken.test.ts": { + "lines": 73, + "tokens": 562, + "sources": 1, + "clones": 1, + "duplicatedLines": 10, + "duplicatedTokens": 119, + "percentage": 13.7, + "percentageTokens": 21.17, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/sagemaker/detached-server/routes/getSessionAsync.test.ts": { + "lines": 98, + "tokens": 1002, + "sources": 1, + "clones": 1, + "duplicatedLines": 10, + "duplicatedTokens": 119, + "percentage": 10.2, + "percentageTokens": 11.88, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/sagemaker/detached-server/routes/getSession.test.ts": { + "lines": 101, + "tokens": 848, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/unit/codewhispererChat/editor/context/focusArea/focusAreaExtractor.test.ts": { + "lines": 463, + "tokens": 3001, + "sources": 1, + "clones": 14, + "duplicatedLines": 254, + "duplicatedTokens": 1648, + "percentage": 54.86, + "percentageTokens": 54.92, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/unit/codewhispererChat/controllers/chat/chatRequest/converter.test.ts": { + "lines": 259, + "tokens": 2212, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/unit/amazonqGumby/chat/controller/messenger/messengerUtils.test.ts": { + "lines": 44, + "tokens": 415, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/app/amazonqScan/chat/views/connector/connector.ts": { + "lines": 191, + "tokens": 1379, + "sources": 1, + "clones": 1, + "duplicatedLines": 16, + "duplicatedTokens": 102, + "percentage": 8.38, + "percentageTokens": 7.4, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/app/amazonqScan/chat/views/actions/uiMessageListener.ts": { + "lines": 125, + "tokens": 821, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/app/amazonqScan/chat/controller/messenger/messengerUtils.ts": { + "lines": 18, + "tokens": 147, + "sources": 1, + "clones": 1, + "duplicatedLines": 11, + "duplicatedTokens": 133, + "percentage": 61.11, + "percentageTokens": 90.48, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/app/amazonqScan/chat/controller/messenger/messenger.ts": { + "lines": 229, + "tokens": 1603, + "sources": 1, + "clones": 2, + "duplicatedLines": 37, + "duplicatedTokens": 279, + "percentage": 16.16, + "percentageTokens": 17.4, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/ui/sam/templatePrompter.test.ts": { + "lines": 52, + "tokens": 470, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/ui/sam/stackPrompter.test.ts": { + "lines": 130, + "tokens": 1037, + "sources": 1, + "clones": 4, + "duplicatedLines": 75, + "duplicatedTokens": 613, + "percentage": 57.69, + "percentageTokens": 59.11, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/ui/sam/paramsSourcePrompter.test.ts": { + "lines": 99, + "tokens": 763, + "sources": 1, + "clones": 4, + "duplicatedLines": 66, + "duplicatedTokens": 504, + "percentage": 66.67, + "percentageTokens": 66.06, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/ui/sam/ecrPrompter.test.ts": { + "lines": 126, + "tokens": 997, + "sources": 1, + "clones": 2, + "duplicatedLines": 31, + "duplicatedTokens": 227, + "percentage": 24.6, + "percentageTokens": 22.77, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/ui/sam/bucketPrompter.test.ts": { + "lines": 78, + "tokens": 732, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/ui/prompters/roles.test.ts": { + "lines": 82, + "tokens": 665, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/ui/prompters/regionSubmenu.test.ts": { + "lines": 99, + "tokens": 876, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/ui/prompters/regionPrompter.test.ts": { + "lines": 26, + "tokens": 231, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/treeview/nodes/testAWSTreeNode.ts": { + "lines": 11, + "tokens": 50, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/sam/debugger/awsSamDebugConfigurationValidator.test.ts": { + "lines": 203, + "tokens": 1623, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/sam/cli/testSamCliProcessInvoker.ts": { + "lines": 108, + "tokens": 831, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/sam/cli/samCliValidator.test.ts": { + "lines": 115, + "tokens": 912, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/sam/cli/samCliValidationNotification.test.ts": { + "lines": 110, + "tokens": 790, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/sam/cli/samCliTestUtils.ts": { + "lines": 42, + "tokens": 386, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/sam/cli/samCliStartApi.test.ts": { + "lines": 163, + "tokens": 1216, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/sam/cli/samCliRemoteTestEvent.test.ts": { + "lines": 118, + "tokens": 821, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/sam/cli/samCliPackage.test.ts": { + "lines": 71, + "tokens": 562, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/sam/cli/samCliLocalInvoke.test.ts": { + "lines": 222, + "tokens": 2142, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/sam/cli/samCliListResources.test.ts": { + "lines": 78, + "tokens": 632, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/sam/cli/samCliInvokerUtils.test.ts": { + "lines": 92, + "tokens": 548, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/sam/cli/samCliInit.test.ts": { + "lines": 237, + "tokens": 1763, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/sam/cli/samCliInfo.test.ts": { + "lines": 43, + "tokens": 358, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/sam/cli/samCliDeploy.test.ts": { + "lines": 120, + "tokens": 958, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/sam/cli/samCliConfiguration.test.ts": { + "lines": 82, + "tokens": 666, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/sam/cli/samCliBuild.test.ts": { + "lines": 291, + "tokens": 2419, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/lsp/utils/platform.test.ts": { + "lines": 208, + "tokens": 313, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/lsp/utils/cleanup.test.ts": { + "lines": 119, + "tokens": 1366, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/fs/node/fs.test.ts": { + "lines": 51, + "tokens": 395, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/login/webview/vue/backend_toolkit.test.ts": { + "lines": 122, + "tokens": 998, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/login/webview/vue/backend_amazonq.test.ts": { + "lines": 148, + "tokens": 1152, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/login/webview/vue/backend.test.ts": { + "lines": 87, + "tokens": 570, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/lambda/vue/remoteInvoke/remoteInvoke.test.ts": { + "lines": 71, + "tokens": 622, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/lambda/vue/remoteInvoke/invokeLambdaDebugging.test.ts": { + "lines": 594, + "tokens": 4722, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/lambda/vue/remoteInvoke/invokeLambda.test.ts": { + "lines": 477, + "tokens": 4287, + "sources": 1, + "clones": 2, + "duplicatedLines": 45, + "duplicatedTokens": 465, + "percentage": 9.43, + "percentageTokens": 10.85, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/sagemaker/explorer/sagemakerSpaceNode.test.ts": { + "lines": 92, + "tokens": 859, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/sagemaker/explorer/sagemakerParentNode.test.ts": { + "lines": 343, + "tokens": 2969, + "sources": 1, + "clones": 4, + "duplicatedLines": 48, + "duplicatedTokens": 444, + "percentage": 13.99, + "percentageTokens": 14.95, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/sagemaker/detached-server/utils.test.ts": { + "lines": 111, + "tokens": 974, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/sagemaker/detached-server/sessionStore.test.ts": { + "lines": 144, + "tokens": 1358, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/sagemaker/detached-server/credentials.test.ts": { + "lines": 88, + "tokens": 650, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/s3/util/validateBucketName.test.ts": { + "lines": 37, + "tokens": 343, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/s3/util/util.test.ts": { + "lines": 26, + "tokens": 205, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/s3/util/progressReporter.test.ts": { + "lines": 122, + "tokens": 1160, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/s3/util/fileViewerManager.test.ts": { + "lines": 333, + "tokens": 3286, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/s3/explorer/s3Nodes.test.ts": { + "lines": 40, + "tokens": 383, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/s3/explorer/s3FolderNode.test.ts": { + "lines": 91, + "tokens": 992, + "sources": 1, + "clones": 1, + "duplicatedLines": 13, + "duplicatedTokens": 165, + "percentage": 14.29, + "percentageTokens": 16.63, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/s3/explorer/s3FileNode.test.ts": { + "lines": 37, + "tokens": 346, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/s3/explorer/s3BucketNode.test.ts": { + "lines": 92, + "tokens": 1041, + "sources": 1, + "clones": 1, + "duplicatedLines": 13, + "duplicatedTokens": 165, + "percentage": 14.13, + "percentageTokens": 15.85, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/s3/commands/uploadFile.test.ts": { + "lines": 340, + "tokens": 3409, + "sources": 1, + "clones": 2, + "duplicatedLines": 26, + "duplicatedTokens": 320, + "percentage": 7.65, + "percentageTokens": 9.39, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/s3/commands/presignedURL.test.ts": { + "lines": 49, + "tokens": 507, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/s3/commands/downloadFileAs.test.ts": { + "lines": 83, + "tokens": 860, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/s3/commands/deleteFile.test.ts": { + "lines": 76, + "tokens": 733, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/s3/commands/deleteBucket.test.ts": { + "lines": 85, + "tokens": 755, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/s3/commands/createFolder.test.ts": { + "lines": 87, + "tokens": 849, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/s3/commands/createBucket.test.ts": { + "lines": 72, + "tokens": 635, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/s3/commands/copyPath.test.ts": { + "lines": 34, + "tokens": 283, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/redshift/wizards/connectionWizard.test.ts": { + "lines": 110, + "tokens": 1013, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/redshift/notebook/redshiftNotebookSerializer.test.ts": { + "lines": 70, + "tokens": 712, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/redshift/notebook/redshiftNotebookController.test.ts": { + "lines": 67, + "tokens": 604, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/redshift/notebook/cellStatusBarItemProvider.test.ts": { + "lines": 62, + "tokens": 506, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/redshift/explorer/redshiftWarehouseNode.test.ts": { + "lines": 109, + "tokens": 1190, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/redshift/explorer/redshiftSchemaNode.test.ts": { + "lines": 76, + "tokens": 750, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/redshift/explorer/redshiftNode.test.ts": { + "lines": 147, + "tokens": 1363, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/redshift/explorer/redshiftDatabaseNode.test.ts": { + "lines": 68, + "tokens": 722, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/iot/explorer/iotThingNode.test.ts": { + "lines": 85, + "tokens": 826, + "sources": 1, + "clones": 4, + "duplicatedLines": 57, + "duplicatedTokens": 504, + "percentage": 67.06, + "percentageTokens": 61.02, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/iot/explorer/iotThingFolderNode.test.ts": { + "lines": 73, + "tokens": 737, + "sources": 1, + "clones": 1, + "duplicatedLines": 15, + "duplicatedTokens": 133, + "percentage": 20.55, + "percentageTokens": 18.05, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/iot/explorer/iotPolicyVersionNode.test.ts": { + "lines": 54, + "tokens": 469, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/iot/explorer/iotPolicyNode.test.ts": { + "lines": 57, + "tokens": 545, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/iot/explorer/iotPolicyFolderNode.test.ts": { + "lines": 79, + "tokens": 829, + "sources": 1, + "clones": 2, + "duplicatedLines": 29, + "duplicatedTokens": 257, + "percentage": 36.71, + "percentageTokens": 31, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/iot/explorer/iotNodes.test.ts": { + "lines": 24, + "tokens": 185, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/iot/explorer/iotCertificateNode.test.ts": { + "lines": 75, + "tokens": 809, + "sources": 1, + "clones": 1, + "duplicatedLines": 15, + "duplicatedTokens": 139, + "percentage": 20, + "percentageTokens": 17.18, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/iot/explorer/iotCertFolderNode.test.ts": { + "lines": 92, + "tokens": 887, + "sources": 1, + "clones": 2, + "duplicatedLines": 28, + "duplicatedTokens": 253, + "percentage": 30.43, + "percentageTokens": 28.52, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/iot/commands/viewPolicyVersion.test.ts": { + "lines": 82, + "tokens": 723, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/iot/commands/updateCert.test.ts": { + "lines": 169, + "tokens": 1608, + "sources": 1, + "clones": 2, + "duplicatedLines": 20, + "duplicatedTokens": 212, + "percentage": 11.83, + "percentageTokens": 13.18, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/iot/commands/setDefaultPolicy.test.ts": { + "lines": 69, + "tokens": 576, + "sources": 1, + "clones": 1, + "duplicatedLines": 14, + "duplicatedTokens": 93, + "percentage": 20.29, + "percentageTokens": 16.15, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/iot/commands/detachPolicy.test.ts": { + "lines": 64, + "tokens": 617, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/iot/commands/detachCert.test.ts": { + "lines": 81, + "tokens": 732, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/iot/commands/deleteThing.test.ts": { + "lines": 104, + "tokens": 988, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/iot/commands/deletePolicyVersion.test.ts": { + "lines": 80, + "tokens": 704, + "sources": 1, + "clones": 1, + "duplicatedLines": 14, + "duplicatedTokens": 93, + "percentage": 17.5, + "percentageTokens": 13.21, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/iot/commands/deletePolicy.test.ts": { + "lines": 128, + "tokens": 1208, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/iot/commands/deleteCert.test.ts": { + "lines": 174, + "tokens": 1759, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/iot/commands/createThing.test.ts": { + "lines": 97, + "tokens": 772, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/iot/commands/createPolicyVersion.test.ts": { + "lines": 86, + "tokens": 706, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/iot/commands/createPolicy.test.ts": { + "lines": 136, + "tokens": 1130, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/iot/commands/createCert.test.ts": { + "lines": 143, + "tokens": 1229, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/iot/commands/copyEndpoint.test.ts": { + "lines": 45, + "tokens": 368, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/iot/commands/attachCertificate.test.ts": { + "lines": 127, + "tokens": 1138, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/ecs/wizards/executeCommand.test.ts": { + "lines": 36, + "tokens": 318, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/ecr/explorer/EcrNode.test.ts": { + "lines": 133, + "tokens": 1268, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/ecr/commands/deleteTag.test.ts": { + "lines": 79, + "tokens": 748, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/ecr/commands/deleteRepository.test.ts": { + "lines": 79, + "tokens": 728, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/ecr/commands/createRepository.test.ts": { + "lines": 82, + "tokens": 676, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/ecr/commands/copyTagUri.test.ts": { + "lines": 35, + "tokens": 299, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/ecr/commands/copyRepositoryUri.test.ts": { + "lines": 33, + "tokens": 286, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/ec2/explorer/ec2ParentNode.test.ts": { + "lines": 211, + "tokens": 2202, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/ec2/explorer/ec2InstanceNode.test.ts": { + "lines": 101, + "tokens": 858, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/cloudWatchLogs/wizard/tailLogGroupWizard.test.ts": { + "lines": 66, + "tokens": 555, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/cloudWatchLogs/wizard/liveTailLogStreamSubmenu.test.ts": { + "lines": 77, + "tokens": 634, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/cloudWatchLogs/registry/logDataRegistry.test.ts": { + "lines": 230, + "tokens": 1841, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/cloudWatchLogs/registry/liveTailSession.test.ts": { + "lines": 148, + "tokens": 1194, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/cloudWatchLogs/registry/liveTailRegistry.test.ts": { + "lines": 98, + "tokens": 814, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/cloudWatchLogs/explorer/logGroupNode.test.ts": { + "lines": 48, + "tokens": 371, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/cloudWatchLogs/explorer/cloudWatchLogsNode.test.ts": { + "lines": 84, + "tokens": 668, + "sources": 1, + "clones": 1, + "duplicatedLines": 10, + "duplicatedTokens": 91, + "percentage": 11.9, + "percentageTokens": 13.62, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/cloudWatchLogs/document/textContent.test.ts": { + "lines": 78, + "tokens": 598, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/cloudWatchLogs/document/logStreamsCodeLensProvider.test.ts": { + "lines": 61, + "tokens": 571, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/cloudWatchLogs/document/logDataDocumentProvider.test.ts": { + "lines": 178, + "tokens": 1297, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/cloudWatchLogs/commands/viewLogStream.test.ts": { + "lines": 99, + "tokens": 792, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/cloudWatchLogs/commands/tailLogGroup.test.ts": { + "lines": 276, + "tokens": 2418, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/cloudWatchLogs/commands/searchLogGroup.test.ts": { + "lines": 186, + "tokens": 1543, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/cloudWatchLogs/commands/saveCurrentLogDataContent.test.ts": { + "lines": 78, + "tokens": 671, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/cloudWatchLogs/commands/copyLogResource.test.ts": { + "lines": 50, + "tokens": 416, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/cloudWatchLogs/commands/addLogEvents.test.ts": { + "lines": 146, + "tokens": 1273, + "sources": 1, + "clones": 4, + "duplicatedLines": 66, + "duplicatedTokens": 478, + "percentage": 45.21, + "percentageTokens": 37.55, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/cdk/tree/treeInspector.test.ts": { + "lines": 117, + "tokens": 942, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/cdk/explorer/propertyNode.test.ts": { + "lines": 94, + "tokens": 994, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/cdk/explorer/constructNode.test.ts": { + "lines": 206, + "tokens": 1776, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/cdk/explorer/awsCdkExplorer.test.ts": { + "lines": 25, + "tokens": 213, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/cdk/explorer/appNode.test.ts": { + "lines": 85, + "tokens": 808, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/apprunner/wizards/imageRepositoryWizard.test.ts": { + "lines": 69, + "tokens": 589, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/apprunner/wizards/createServiceWizard.test.ts": { + "lines": 67, + "tokens": 572, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/apprunner/wizards/codeRepositoryWizard.test.ts": { + "lines": 125, + "tokens": 1082, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/apprunner/explorer/apprunnerServiceNode.test.ts": { + "lines": 114, + "tokens": 974, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/apprunner/explorer/apprunnerNode.test.ts": { + "lines": 98, + "tokens": 935, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/appBuilder/wizards/deployTypeWizard.test.ts": { + "lines": 119, + "tokens": 1054, + "sources": 1, + "clones": 2, + "duplicatedLines": 20, + "duplicatedTokens": 218, + "percentage": 16.81, + "percentageTokens": 20.68, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/appBuilder/serverlessLand/wizard.test.ts": { + "lines": 131, + "tokens": 1330, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/appBuilder/serverlessLand/metadataManager.test.ts": { + "lines": 140, + "tokens": 1275, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/appBuilder/serverlessLand/main.test.ts": { + "lines": 236, + "tokens": 2111, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/appBuilder/lambda2sam/lambda2samDownload.test.ts": { + "lines": 311, + "tokens": 2706, + "sources": 1, + "clones": 9, + "duplicatedLines": 113, + "duplicatedTokens": 1085, + "percentage": 36.33, + "percentageTokens": 40.1, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/appBuilder/lambda2sam/lambda2samCoreLogic.test.ts": { + "lines": 783, + "tokens": 5708, + "sources": 1, + "clones": 16, + "duplicatedLines": 335, + "duplicatedTokens": 2371, + "percentage": 42.78, + "percentageTokens": 41.54, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/appBuilder/lambda2sam/lambda2sam.test.ts": { + "lines": 271, + "tokens": 2079, + "sources": 1, + "clones": 3, + "duplicatedLines": 74, + "duplicatedTokens": 474, + "percentage": 27.31, + "percentageTokens": 22.8, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/appBuilder/explorer/samProject.test.ts": { + "lines": 157, + "tokens": 1320, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/appBuilder/explorer/detectSamProjects.test.ts": { + "lines": 88, + "tokens": 811, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/apigateway/explorer/apiGatewayNodes.test.ts": { + "lines": 88, + "tokens": 713, + "sources": 1, + "clones": 1, + "duplicatedLines": 10, + "duplicatedTokens": 91, + "percentage": 11.36, + "percentageTokens": 12.76, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/apigateway/commands/invokeRemoteRestApi.test.ts": { + "lines": 52, + "tokens": 377, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/apigateway/commands/copyUrl.test.ts": { + "lines": 17, + "tokens": 94, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/amazonq/commons/controllers/contentController.test.ts": { + "lines": 142, + "tokens": 1266, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/sam/debugger/commands/addSamDebugConfiguration.ts": { + "lines": 189, + "tokens": 1301, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/login/webview/vue/toolkit/index.ts": { + "lines": 20, + "tokens": 104, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/login/webview/vue/toolkit/backend_toolkit.ts": { + "lines": 193, + "tokens": 1615, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/login/webview/vue/amazonq/index.ts": { + "lines": 20, + "tokens": 104, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/login/webview/vue/amazonq/backend_amazonq.ts": { + "lines": 264, + "tokens": 2063, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhispererChat/editor/context/focusArea/model.ts": { + "lines": 24, + "tokens": 131, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhispererChat/editor/context/focusArea/focusAreaExtractor.ts": { + "lines": 279, + "tokens": 2417, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhispererChat/editor/context/file/model.ts": { + "lines": 12, + "tokens": 72, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhispererChat/editor/context/file/languages.ts": { + "lines": 175, + "tokens": 1227, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhispererChat/editor/context/file/javaImportReader.ts": { + "lines": 57, + "tokens": 519, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhispererChat/editor/context/file/importReader.ts": { + "lines": 24, + "tokens": 210, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhispererChat/editor/context/file/fileExtractor.ts": { + "lines": 56, + "tokens": 469, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhispererChat/controllers/chat/userIntent/userIntentRecognizer.ts": { + "lines": 46, + "tokens": 368, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhispererChat/controllers/chat/prompts/promptsGenerator.ts": { + "lines": 26, + "tokens": 187, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhispererChat/controllers/chat/messenger/model.ts": { + "lines": 9, + "tokens": 47, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhispererChat/controllers/chat/messenger/messenger.ts": { + "lines": 566, + "tokens": 4193, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhispererChat/controllers/chat/chatRequest/converter.ts": { + "lines": 329, + "tokens": 2453, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhispererChat/clients/chat/v0/model.ts": { + "lines": 154, + "tokens": 947, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhispererChat/clients/chat/v0/chat.ts": { + "lines": 83, + "tokens": 638, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/views/securityIssue/vue/index.ts": { + "lines": 17, + "tokens": 90, + "sources": 1, + "clones": 2, + "duplicatedLines": 27, + "duplicatedTokens": 177, + "percentage": 158.82, + "percentageTokens": 196.67, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/sagemaker/detached-server/routes/refreshToken.ts": { + "lines": 45, + "tokens": 431, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/sagemaker/detached-server/routes/getSessionAsync.ts": { + "lines": 69, + "tokens": 594, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/sagemaker/detached-server/routes/getSession.ts": { + "lines": 56, + "tokens": 506, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/cdk/explorer/tree/types.ts": { + "lines": 71, + "tokens": 191, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/cdk/explorer/tree/treeInspector.ts": { + "lines": 64, + "tokens": 327, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/cdk/explorer/nodes/propertyNode.ts": { + "lines": 47, + "tokens": 378, + "sources": 1, + "clones": 2, + "duplicatedLines": 33, + "duplicatedTokens": 311, + "percentage": 70.21, + "percentageTokens": 82.28, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/cdk/explorer/nodes/constructNode.ts": { + "lines": 71, + "tokens": 654, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/cdk/explorer/nodes/appNode.ts": { + "lines": 68, + "tokens": 519, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/appBuilder/explorer/nodes/walkthroughNode.ts": { + "lines": 36, + "tokens": 188, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/appBuilder/explorer/nodes/rootNode.ts": { + "lines": 109, + "tokens": 867, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/appBuilder/explorer/nodes/resourceNode.ts": { + "lines": 147, + "tokens": 1113, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/appBuilder/explorer/nodes/propertyNode.ts": { + "lines": 45, + "tokens": 416, + "sources": 1, + "clones": 2, + "duplicatedLines": 33, + "duplicatedTokens": 311, + "percentage": 73.33, + "percentageTokens": 74.76, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/appBuilder/explorer/nodes/deployedStack.ts": { + "lines": 65, + "tokens": 655, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/appBuilder/explorer/nodes/deployedNode.ts": { + "lines": 160, + "tokens": 1298, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/appBuilder/explorer/nodes/appNode.ts": { + "lines": 92, + "tokens": 833, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonqGumby/chat/views/connector/connector.ts": { + "lines": 219, + "tokens": 1583, + "sources": 1, + "clones": 2, + "duplicatedLines": 30, + "duplicatedTokens": 192, + "percentage": 13.7, + "percentageTokens": 12.13, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonqGumby/chat/views/actions/uiMessageListener.ts": { + "lines": 101, + "tokens": 645, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonqGumby/chat/controller/messenger/messengerUtils.ts": { + "lines": 88, + "tokens": 824, + "sources": 1, + "clones": 1, + "duplicatedLines": 11, + "duplicatedTokens": 133, + "percentage": 12.5, + "percentageTokens": 16.14, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonqGumby/chat/controller/messenger/messenger.ts": { + "lines": 812, + "tokens": 5071, + "sources": 1, + "clones": 2, + "duplicatedLines": 37, + "duplicatedTokens": 279, + "percentage": 4.56, + "percentageTokens": 5.5, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonq/webview/ui/walkthrough/welcome.ts": { + "lines": 46, + "tokens": 296, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonq/webview/ui/texts/disclaimer.ts": { + "lines": 19, + "tokens": 106, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonq/webview/ui/texts/constants.ts": { + "lines": 74, + "tokens": 262, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonq/webview/ui/telemetry/actions.ts": { + "lines": 37, + "tokens": 274, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonq/webview/ui/tabs/generator.ts": { + "lines": 109, + "tokens": 848, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonq/webview/ui/tabs/constants.ts": { + "lines": 60, + "tokens": 291, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonq/webview/ui/storages/tabsStorage.ts": { + "lines": 153, + "tokens": 1358, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonq/webview/ui/quickActions/handler.ts": { + "lines": 234, + "tokens": 1765, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonq/webview/ui/quickActions/generator.ts": { + "lines": 144, + "tokens": 982, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonq/webview/ui/messages/handler.ts": { + "lines": 61, + "tokens": 449, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonq/webview/ui/messages/controller.ts": { + "lines": 149, + "tokens": 1180, + "sources": 1, + "clones": 2, + "duplicatedLines": 20, + "duplicatedTokens": 184, + "percentage": 13.42, + "percentageTokens": 15.59, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonq/webview/ui/followUps/model.ts": { + "lines": 10, + "tokens": 40, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonq/webview/ui/followUps/handler.ts": { + "lines": 94, + "tokens": 732, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonq/webview/ui/followUps/generator.ts": { + "lines": 61, + "tokens": 357, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonq/webview/ui/feedback/constants.ts": { + "lines": 30, + "tokens": 139, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonq/webview/ui/diffTree/types.ts": { + "lines": 10, + "tokens": 37, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonq/webview/ui/diffTree/actions.ts": { + "lines": 65, + "tokens": 494, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonq/webview/ui/detailedList/detailedListConnector.ts": { + "lines": 104, + "tokens": 890, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonq/webview/ui/apps/scanChatConnector.ts": { + "lines": 190, + "tokens": 1558, + "sources": 1, + "clones": 3, + "duplicatedLines": 46, + "duplicatedTokens": 320, + "percentage": 24.21, + "percentageTokens": 20.54, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonq/webview/ui/apps/gumbyChatConnector.ts": { + "lines": 179, + "tokens": 1379, + "sources": 1, + "clones": 2, + "duplicatedLines": 30, + "duplicatedTokens": 219, + "percentage": 16.76, + "percentageTokens": 15.88, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonq/webview/ui/apps/cwChatConnector.ts": { + "lines": 264, + "tokens": 1957, + "sources": 1, + "clones": 1, + "duplicatedLines": 16, + "duplicatedTokens": 101, + "percentage": 6.06, + "percentageTokens": 5.16, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonq/webview/ui/apps/baseConnector.ts": { + "lines": 379, + "tokens": 2969, + "sources": 1, + "clones": 4, + "duplicatedLines": 65, + "duplicatedTokens": 493, + "percentage": 17.15, + "percentageTokens": 16.6, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonq/webview/ui/apps/amazonqCommonsConnector.ts": { + "lines": 134, + "tokens": 1005, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/unit/app/inline/EditRendering/svgGenerator.test.ts": { + "lines": 251, + "tokens": 2438, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/unit/app/inline/EditRendering/imageRenderer.test.ts": { + "lines": 268, + "tokens": 1816, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/unit/app/inline/EditRendering/displayImage.test.ts": { + "lines": 309, + "tokens": 2452, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/unit/app/inline/EditRendering/diffUtils.test.ts": { + "lines": 82, + "tokens": 417, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/unit/amazonqGumby/resources/mocks/transformFixtures.ts": { + "lines": 32, + "tokens": 198, + "sources": 1, + "clones": 1, + "duplicatedLines": 15, + "duplicatedTokens": 104, + "percentage": 46.88, + "percentageTokens": 52.53, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/unit/amazonq/lsp/chat/messages.test.ts": { + "lines": 162, + "tokens": 1213, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/unit/amazonq/lsp/chat/error.test.ts": { + "lines": 14, + "tokens": 115, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/unit/amazonq/apps/inline/recommendationService.test.ts": { + "lines": 407, + "tokens": 2908, + "sources": 1, + "clones": 2, + "duplicatedLines": 32, + "duplicatedTokens": 240, + "percentage": 7.86, + "percentageTokens": 8.25, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/unit/amazonq/apps/inline/inlineTracker.test.ts": { + "lines": 298, + "tokens": 2579, + "sources": 1, + "clones": 5, + "duplicatedLines": 354, + "duplicatedTokens": 3025, + "percentage": 118.79, + "percentageTokens": 117.29, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/unit/amazonq/apps/inline/completion.test.ts": { + "lines": 423, + "tokens": 3123, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/lsp/chat/autoDebug/shared/diagnosticUtils.ts": { + "lines": 34, + "tokens": 201, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/lsp/chat/autoDebug/lsp/autoDebugLspClient.ts": { + "lines": 74, + "tokens": 512, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/lsp/chat/autoDebug/diagnostics/problemDetector.ts": { + "lines": 20, + "tokens": 131, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/lsp/chat/autoDebug/diagnostics/errorContext.ts": { + "lines": 74, + "tokens": 599, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/lsp/chat/autoDebug/diagnostics/diagnosticsMonitor.ts": { + "lines": 21, + "tokens": 121, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/app/amazonqScan/chat/storages/chatSession.ts": { + "lines": 53, + "tokens": 355, + "sources": 1, + "clones": 2, + "duplicatedLines": 81, + "duplicatedTokens": 566, + "percentage": 152.83, + "percentageTokens": 159.44, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/app/amazonqScan/chat/session/session.ts": { + "lines": 24, + "tokens": 112, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/app/amazonqScan/chat/controller/controller.ts": { + "lines": 371, + "tokens": 3177, + "sources": 1, + "clones": 3, + "duplicatedLines": 58, + "duplicatedTokens": 434, + "percentage": 15.63, + "percentageTokens": 13.66, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/testInteg/shared/utilities/workspaceUtils.test.ts": { + "lines": 610, + "tokens": 5495, + "sources": 1, + "clones": 2, + "duplicatedLines": 46, + "duplicatedTokens": 320, + "percentage": 7.54, + "percentageTokens": 5.82, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/testInteg/shared/extensions/git.test.ts": { + "lines": 179, + "tokens": 1861, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/testInteg/shared/codelens/samTemplateCodeLensProvider.test.ts": { + "lines": 87, + "tokens": 747, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/testInteg/appBuilder/sidebar/appBuilderNode.test.ts": { + "lines": 193, + "tokens": 1757, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/testInteg/appBuilder/serverlessLand/main.test.ts": { + "lines": 143, + "tokens": 1270, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/templates/sam/samTemplateGenerator.test.ts": { + "lines": 189, + "tokens": 1734, + "sources": 1, + "clones": 8, + "duplicatedLines": 80, + "duplicatedTokens": 876, + "percentage": 42.33, + "percentageTokens": 50.52, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/stepFunctions/workflowStudio/workflowStudioApiHandler.test.ts": { + "lines": 108, + "tokens": 774, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/stepFunctions/wizards/publishStateMachineWizard.test.ts": { + "lines": 41, + "tokens": 289, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/stepFunctions/wizards/previewStateMachineCDKWizard.test.ts": { + "lines": 95, + "tokens": 613, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/stepFunctions/wizards/createStateMachineWizard.test.ts": { + "lines": 20, + "tokens": 134, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/stepFunctions/explorer/stepFunctionNodes.test.ts": { + "lines": 80, + "tokens": 623, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/stepFunctions/commands/getStateMachineDefinitionFromCfnTemplate.test.ts": { + "lines": 67, + "tokens": 550, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/ssmDocument/wizards/publishDocumentWizard.test.ts": { + "lines": 40, + "tokens": 274, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/ssmDocument/util/validateDocumentName.test.ts": { + "lines": 37, + "tokens": 319, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/ssmDocument/explorer/ssmDocumentNode.test.ts": { + "lines": 23, + "tokens": 203, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/ssmDocument/explorer/registryItemNode.test.ts": { + "lines": 61, + "tokens": 539, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/ssmDocument/explorer/documentTypeNode.test.ts": { + "lines": 45, + "tokens": 366, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/ssmDocument/explorer/documentItemNode.test.ts": { + "lines": 36, + "tokens": 314, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/ssmDocument/commands/updateDocumentVersion.test.ts": { + "lines": 84, + "tokens": 514, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/ssmDocument/commands/publishDocument.test.ts": { + "lines": 113, + "tokens": 995, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/ssmDocument/commands/openDocumentItem.test.ts": { + "lines": 78, + "tokens": 605, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/ssmDocument/commands/deleteDocument.test.ts": { + "lines": 71, + "tokens": 595, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/ssmDocument/commands/createDocumentFromTemplate.test.ts": { + "lines": 65, + "tokens": 471, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/wizards/wizardTestUtils.ts": { + "lines": 180, + "tokens": 1779, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/wizards/wizardForm.test.ts": { + "lines": 178, + "tokens": 1797, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/wizards/wizard.test.ts": { + "lines": 389, + "tokens": 4141, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/wizards/prompterTester.ts": { + "lines": 178, + "tokens": 1344, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/wizards/multiStepWizard.test.ts": { + "lines": 132, + "tokens": 1059, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/wizards/compositWizard.test.ts": { + "lines": 445, + "tokens": 2718, + "sources": 1, + "clones": 2, + "duplicatedLines": 28, + "duplicatedTokens": 220, + "percentage": 6.29, + "percentageTokens": 8.09, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/vscode/window.ts": { + "lines": 511, + "tokens": 4464, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/vscode/uriHandler.test.ts": { + "lines": 89, + "tokens": 908, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/vscode/testUtils.ts": { + "lines": 44, + "tokens": 338, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/vscode/statusbar.ts": { + "lines": 127, + "tokens": 1137, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/vscode/runCommand.test.ts": { + "lines": 308, + "tokens": 2842, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/vscode/quickInput.ts": { + "lines": 512, + "tokens": 4924, + "sources": 1, + "clones": 4, + "duplicatedLines": 86, + "duplicatedTokens": 844, + "percentage": 16.8, + "percentageTokens": 17.14, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/vscode/message.ts": { + "lines": 390, + "tokens": 3439, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/vscode/fakeEnv.ts": { + "lines": 21, + "tokens": 106, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/vscode/env.test.ts": { + "lines": 149, + "tokens": 1361, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/vscode/commands.test.ts": { + "lines": 211, + "tokens": 2008, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/utilities/zipStream.test.ts": { + "lines": 102, + "tokens": 1019, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/utilities/vscodeUtils.test.ts": { + "lines": 120, + "tokens": 1034, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/utilities/uriUtils.test.ts": { + "lines": 47, + "tokens": 402, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/utilities/typeConstructors.test.ts": { + "lines": 163, + "tokens": 2195, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/utilities/tsUtils.test.ts": { + "lines": 36, + "tokens": 418, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/utilities/timeoutUtils.test.ts": { + "lines": 574, + "tokens": 5386, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/utilities/textUtilities.test.ts": { + "lines": 164, + "tokens": 1583, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/utilities/textDocumentUtilities.test.ts": { + "lines": 139, + "tokens": 1017, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/utilities/testUtils.test.ts": { + "lines": 38, + "tokens": 355, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/utilities/symbolUtilities.test.ts": { + "lines": 199, + "tokens": 1968, + "sources": 1, + "clones": 4, + "duplicatedLines": 66, + "duplicatedTokens": 680, + "percentage": 33.17, + "percentageTokens": 34.55, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/utilities/processUtils.test.ts": { + "lines": 559, + "tokens": 4663, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/utilities/pollingSet.test.ts": { + "lines": 101, + "tokens": 855, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/utilities/pathUtils.test.ts": { + "lines": 93, + "tokens": 962, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/utilities/pathFind.test.ts": { + "lines": 145, + "tokens": 1287, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/utilities/osUtils.test.ts": { + "lines": 52, + "tokens": 394, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/utilities/messages.test.ts": { + "lines": 92, + "tokens": 785, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/utilities/map.test.ts": { + "lines": 58, + "tokens": 605, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/utilities/functionUtils.test.ts": { + "lines": 211, + "tokens": 1748, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/utilities/editorUtilities.test.ts": { + "lines": 74, + "tokens": 837, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/utilities/downloadPatterns.ts": { + "lines": 45, + "tokens": 409, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/utilities/commentUtils.test.ts": { + "lines": 100, + "tokens": 995, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/utilities/collectionUtils.test.ts": { + "lines": 805, + "tokens": 8142, + "sources": 1, + "clones": 2, + "duplicatedLines": 24, + "duplicatedTokens": 196, + "percentage": 2.98, + "percentageTokens": 2.41, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/utilities/cliUtils.test.ts": { + "lines": 63, + "tokens": 546, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/utilities/asyncCollection.test.ts": { + "lines": 234, + "tokens": 2592, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/ui/testUtils.ts": { + "lines": 152, + "tokens": 1361, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/ui/prompter.test.ts": { + "lines": 52, + "tokens": 542, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/ui/pickerPrompter.test.ts": { + "lines": 523, + "tokens": 5481, + "sources": 1, + "clones": 6, + "duplicatedLines": 96, + "duplicatedTokens": 954, + "percentage": 18.36, + "percentageTokens": 17.41, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/ui/inputPrompter.test.ts": { + "lines": 144, + "tokens": 1279, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/ui/buttons.test.ts": { + "lines": 22, + "tokens": 153, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/treeview/treeNodeUtilities.test.ts": { + "lines": 78, + "tokens": 745, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/treeview/testUtil.ts": { + "lines": 42, + "tokens": 457, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/treeview/resourceTreeDataProvider.test.ts": { + "lines": 218, + "tokens": 2240, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/treeview/resource.test.ts": { + "lines": 193, + "tokens": 2060, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/telemetry/util.test.ts": { + "lines": 463, + "tokens": 4045, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/telemetry/telemetryService.test.ts": { + "lines": 269, + "tokens": 2397, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/telemetry/telemetryPublisher.test.ts": { + "lines": 73, + "tokens": 692, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/telemetry/telemetryCache.test.ts": { + "lines": 64, + "tokens": 397, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/telemetry/spans.test.ts": { + "lines": 737, + "tokens": 6421, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/telemetry/activation.test.ts": { + "lines": 67, + "tokens": 485, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/schema/testUtils.ts": { + "lines": 106, + "tokens": 738, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/sam/utils.test.ts": { + "lines": 313, + "tokens": 2260, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/sam/samTestUtils.ts": { + "lines": 116, + "tokens": 394, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/sam/config.test.ts": { + "lines": 459, + "tokens": 3564, + "sources": 1, + "clones": 12, + "duplicatedLines": 256, + "duplicatedTokens": 1814, + "percentage": 55.77, + "percentageTokens": 50.9, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/sam/build.test.ts": { + "lines": 650, + "tokens": 5690, + "sources": 1, + "clones": 3, + "duplicatedLines": 73, + "duplicatedTokens": 536, + "percentage": 11.23, + "percentageTokens": 9.42, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/resourceFetcher/httpResourceFetcher.test.ts": { + "lines": 38, + "tokens": 378, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/resourceFetcher/fileResourceFetcher.test.ts": { + "lines": 42, + "tokens": 317, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/regions/testUtil.ts": { + "lines": 44, + "tokens": 252, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/regions/regionProvider.test.ts": { + "lines": 236, + "tokens": 1958, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/regions/endpoints.test.ts": { + "lines": 100, + "tokens": 742, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/performance/performance.test.ts": { + "lines": 35, + "tokens": 275, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/lsp/manifestResolver.test.ts": { + "lines": 100, + "tokens": 695, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/logger/toolkitLogger.test.ts": { + "lines": 414, + "tokens": 3745, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/logger/sharedFileTransport.test.ts": { + "lines": 53, + "tokens": 569, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/logger/outputChannelLogger.test.ts": { + "lines": 100, + "tokens": 839, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/logger/consoleLogLogger.test.ts": { + "lines": 52, + "tokens": 535, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/logger/activation.test.ts": { + "lines": 36, + "tokens": 311, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/fs/templateRegistry.test.ts": { + "lines": 529, + "tokens": 3657, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/fs/fs.test.ts": { + "lines": 703, + "tokens": 7065, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/extensions/ssh.test.ts": { + "lines": 114, + "tokens": 1190, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/env/resolveEnv.test.ts": { + "lines": 70, + "tokens": 602, + "sources": 1, + "clones": 1, + "duplicatedLines": 14, + "duplicatedTokens": 163, + "percentage": 20, + "percentageTokens": 27.08, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/debug/launchConfiguration.test.ts": { + "lines": 311, + "tokens": 2809, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/credentials/userCredentialsUtils.test.ts": { + "lines": 168, + "tokens": 1416, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/credentials/loginManager.test.ts": { + "lines": 147, + "tokens": 1512, + "sources": 1, + "clones": 2, + "duplicatedLines": 20, + "duplicatedTokens": 224, + "percentage": 13.61, + "percentageTokens": 14.81, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/credentials/defaultCredentialSelectionDataProvider.test.ts": { + "lines": 121, + "tokens": 954, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/credentials/credentialsStore.test.ts": { + "lines": 105, + "tokens": 969, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/credentials/credentialsProfileMru.test.ts": { + "lines": 71, + "tokens": 585, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/codelens/sampleJavaSamProgram.ts": { + "lines": 99, + "tokens": 400, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/codelens/sampleDotNetSamProgram.ts": { + "lines": 102, + "tokens": 409, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/codelens/pythonCodeLensProvider.test.ts": { + "lines": 75, + "tokens": 607, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/codelens/localLambdaRunner.test.ts": { + "lines": 158, + "tokens": 1260, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/codelens/javaCodeLensProvider.test.ts": { + "lines": 452, + "tokens": 3537, + "sources": 1, + "clones": 6, + "duplicatedLines": 89, + "duplicatedTokens": 643, + "percentage": 19.69, + "percentageTokens": 18.18, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/codelens/goCodeLensProvider.test.ts": { + "lines": 182, + "tokens": 971, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/codelens/csharpCodeLensProvider.test.ts": { + "lines": 310, + "tokens": 2275, + "sources": 1, + "clones": 8, + "duplicatedLines": 121, + "duplicatedTokens": 895, + "percentage": 39.03, + "percentageTokens": 39.34, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/codelens/codeLensUtils.test.ts": { + "lines": 265, + "tokens": 2256, + "sources": 1, + "clones": 2, + "duplicatedLines": 24, + "duplicatedTokens": 260, + "percentage": 9.06, + "percentageTokens": 11.52, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/cloudformation/templateSymbolResolver.test.ts": { + "lines": 96, + "tokens": 817, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/cloudformation/cloudformationTestUtils.ts": { + "lines": 141, + "tokens": 945, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/cloudformation/cloudformation.test.ts": { + "lines": 858, + "tokens": 6352, + "sources": 1, + "clones": 4, + "duplicatedLines": 60, + "duplicatedTokens": 468, + "percentage": 6.99, + "percentageTokens": 7.37, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/clients/sagemakerClient.test.ts": { + "lines": 223, + "tokens": 1911, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/clients/iamClient.test.ts": { + "lines": 55, + "tokens": 458, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/clients/fakeFileStreams.ts": { + "lines": 74, + "tokens": 547, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/clients/ec2Client.test.ts": { + "lines": 214, + "tokens": 1624, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/clients/devenvClient.test.ts": { + "lines": 95, + "tokens": 799, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/clients/defaultS3Client.test.ts": { + "lines": 264, + "tokens": 2513, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/clients/defaultRedshiftClient.test.ts": { + "lines": 153, + "tokens": 1433, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/clients/defaultIotClient.test.ts": { + "lines": 569, + "tokens": 5200, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/clients/defaultIamClient.test.ts": { + "lines": 25, + "tokens": 192, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/clients/defaultDocdbClient.test.ts": { + "lines": 97, + "tokens": 762, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/lambda/wizards/uploadLambdaWizard.test.ts": { + "lines": 99, + "tokens": 936, + "sources": 1, + "clones": 2, + "duplicatedLines": 24, + "duplicatedTokens": 234, + "percentage": 24.24, + "percentageTokens": 25, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/lambda/wizards/stateController.test.ts": { + "lines": 232, + "tokens": 2601, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/lambda/wizards/samInitWizard.test.ts": { + "lines": 88, + "tokens": 833, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/lambda/wizards/samDeployWizard.test.ts": { + "lines": 803, + "tokens": 7379, + "sources": 1, + "clones": 18, + "duplicatedLines": 242, + "duplicatedTokens": 2236, + "percentage": 30.14, + "percentageTokens": 30.3, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/lambda/vue/samInvokeBackend.test.ts": { + "lines": 803, + "tokens": 6565, + "sources": 1, + "clones": 5, + "duplicatedLines": 197, + "duplicatedTokens": 1608, + "percentage": 24.53, + "percentageTokens": 24.49, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/lambda/vue/samInvoke.test.ts": { + "lines": 123, + "tokens": 761, + "sources": 1, + "clones": 1, + "duplicatedLines": 114, + "duplicatedTokens": 725, + "percentage": 92.68, + "percentageTokens": 95.27, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/lambda/utilities/parameterUtils.test.ts": { + "lines": 229, + "tokens": 1915, + "sources": 1, + "clones": 4, + "duplicatedLines": 48, + "duplicatedTokens": 376, + "percentage": 20.96, + "percentageTokens": 19.63, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/lambda/remoteDebugging/testUtils.ts": { + "lines": 176, + "tokens": 1219, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/lambda/remoteDebugging/localProxy.test.ts": { + "lines": 420, + "tokens": 3951, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/lambda/remoteDebugging/ldkController.test.ts": { + "lines": 599, + "tokens": 4338, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/lambda/remoteDebugging/ldkClient.test.ts": { + "lines": 470, + "tokens": 3913, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/lambda/models/samTemplates.test.ts": { + "lines": 132, + "tokens": 792, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/lambda/models/samLambdaRuntime.test.ts": { + "lines": 168, + "tokens": 1160, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/lambda/local/util.ts": { + "lines": 60, + "tokens": 157, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/lambda/local/debugConfiguration.test.ts": { + "lines": 326, + "tokens": 2531, + "sources": 1, + "clones": 4, + "duplicatedLines": 74, + "duplicatedTokens": 598, + "percentage": 22.7, + "percentageTokens": 23.63, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/lambda/explorer/lambdaNodes.test.ts": { + "lines": 72, + "tokens": 608, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/lambda/explorer/lambdaFunctionNodeDecorationProvider.test.ts": { + "lines": 146, + "tokens": 1281, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/lambda/explorer/lambdaFunctionNode.test.ts": { + "lines": 111, + "tokens": 881, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/lambda/explorer/lambdaFunctionFolderNode.test.ts": { + "lines": 56, + "tokens": 481, + "sources": 1, + "clones": 1, + "duplicatedLines": 12, + "duplicatedTokens": 90, + "percentage": 21.43, + "percentageTokens": 18.71, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/lambda/explorer/lambdaFunctionFileNode.test.ts": { + "lines": 57, + "tokens": 421, + "sources": 1, + "clones": 1, + "duplicatedLines": 12, + "duplicatedTokens": 90, + "percentage": 21.05, + "percentageTokens": 21.38, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/lambda/explorer/cloudFormationNodes.test.ts": { + "lines": 199, + "tokens": 1760, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/lambda/config/templates.test.ts": { + "lines": 838, + "tokens": 5161, + "sources": 1, + "clones": 12, + "duplicatedLines": 196, + "duplicatedTokens": 1280, + "percentage": 23.39, + "percentageTokens": 24.8, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/lambda/config/samParameterCompletionItemProvider.test.ts": { + "lines": 398, + "tokens": 3647, + "sources": 1, + "clones": 18, + "duplicatedLines": 338, + "duplicatedTokens": 3150, + "percentage": 84.92, + "percentageTokens": 86.37, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/lambda/commands/uploadLambda.test.ts": { + "lines": 80, + "tokens": 721, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/lambda/commands/listSamResources.test.ts": { + "lines": 112, + "tokens": 872, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/lambda/commands/editLambda.test.ts": { + "lines": 306, + "tokens": 2668, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/lambda/commands/downloadLambda.test.ts": { + "lines": 14, + "tokens": 90, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/lambda/commands/deleteLambda.test.ts": { + "lines": 68, + "tokens": 596, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/lambda/commands/createNewSamApp.test.ts": { + "lines": 310, + "tokens": 2621, + "sources": 1, + "clones": 2, + "duplicatedLines": 22, + "duplicatedTokens": 194, + "percentage": 7.1, + "percentageTokens": 7.4, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/lambda/commands/copyLambdaUrl.test.ts": { + "lines": 102, + "tokens": 953, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/feedback/commands/submitFeedbackListener.test.ts": { + "lines": 64, + "tokens": 639, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/eventSchemas/wizards/schemaCodeDownloadWizard.test.ts": { + "lines": 264, + "tokens": 2516, + "sources": 1, + "clones": 6, + "duplicatedLines": 62, + "duplicatedTokens": 572, + "percentage": 23.48, + "percentageTokens": 22.73, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/eventSchemas/templates/schemasExamples.ts": { + "lines": 207, + "tokens": 44, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/eventSchemas/templates/schemasAppTemplateUtils.test.ts": { + "lines": 201, + "tokens": 1239, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/eventSchemas/providers/schemasDataProvider.test.ts": { + "lines": 241, + "tokens": 1900, + "sources": 1, + "clones": 2, + "duplicatedLines": 24, + "duplicatedTokens": 160, + "percentage": 9.96, + "percentageTokens": 8.42, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/eventSchemas/model/schemaCodeLangs.test.ts": { + "lines": 57, + "tokens": 385, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/eventSchemas/model/schemaCodeGenUtils.test.ts": { + "lines": 76, + "tokens": 495, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/eventSchemas/explorer/registryItemNode.test.ts": { + "lines": 159, + "tokens": 1422, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/eventSchemas/commands/viewSchemaItem.test.ts": { + "lines": 127, + "tokens": 775, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/eventSchemas/commands/searchSchemas.test.ts": { + "lines": 285, + "tokens": 2716, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/eventSchemas/commands/downloadSchemaItemCode.test.ts": { + "lines": 690, + "tokens": 5866, + "sources": 1, + "clones": 8, + "duplicatedLines": 180, + "duplicatedTokens": 1424, + "percentage": 26.09, + "percentageTokens": 24.28, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/dynamicResources/model/resources.test.ts": { + "lines": 36, + "tokens": 283, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/dynamicResources/explorer/resourceTypeNode.test.ts": { + "lines": 193, + "tokens": 1509, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/dynamicResources/explorer/resourceNode.test.ts": { + "lines": 40, + "tokens": 377, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/dynamicResources/explorer/moreResourcesNode.test.ts": { + "lines": 113, + "tokens": 922, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/dynamicResources/commands/saveResource.test.ts": { + "lines": 159, + "tokens": 1388, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/dynamicResources/commands/openResource.test.ts": { + "lines": 158, + "tokens": 1409, + "sources": 1, + "clones": 4, + "duplicatedLines": 52, + "duplicatedTokens": 452, + "percentage": 32.91, + "percentageTokens": 32.08, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/dynamicResources/commands/deleteResource.test.ts": { + "lines": 84, + "tokens": 839, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/dynamicResources/commands/copyIdentifier.test.ts": { + "lines": 26, + "tokens": 198, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/dynamicResources/commands/configure.test.ts": { + "lines": 28, + "tokens": 239, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/docdb/wizards/regionalClusterWizard.test.ts": { + "lines": 26, + "tokens": 206, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/docdb/wizards/elasticClusterWizard.test.ts": { + "lines": 25, + "tokens": 196, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/docdb/wizards/createGlobalClusterWizard.test.ts": { + "lines": 22, + "tokens": 166, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/docdb/wizards/createClusterWizard.test.ts": { + "lines": 31, + "tokens": 225, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/docdb/explorer/docdbNode.test.ts": { + "lines": 47, + "tokens": 474, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/docdb/explorer/dbClusterNode.test.ts": { + "lines": 128, + "tokens": 1269, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/docdb/commands/tagCommands.test.ts": { + "lines": 165, + "tokens": 1408, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/docdb/commands/renameInstance.test.ts": { + "lines": 139, + "tokens": 977, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/docdb/commands/renameCluster.test.ts": { + "lines": 130, + "tokens": 899, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/docdb/commands/rebootInstance.test.ts": { + "lines": 106, + "tokens": 795, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/docdb/commands/modifyInstance.test.ts": { + "lines": 142, + "tokens": 1051, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/docdb/commands/deleteInstance.test.ts": { + "lines": 128, + "tokens": 913, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/docdb/commands/deleteCluster.test.ts": { + "lines": 238, + "tokens": 1884, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/docdb/commands/createInstance.test.ts": { + "lines": 144, + "tokens": 1058, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/docdb/commands/createCluster.test.ts": { + "lines": 166, + "tokens": 1215, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/docdb/commands/addRegion.test.ts": { + "lines": 249, + "tokens": 1880, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/credentials/wizards/sso.test.ts": { + "lines": 25, + "tokens": 164, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/credentials/wizards/createProfile.test.ts": { + "lines": 81, + "tokens": 890, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/credentials/sso/ssoAccessTokenProvider.test.ts": { + "lines": 510, + "tokens": 5002, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/credentials/sso/server.test.ts": { + "lines": 142, + "tokens": 1041, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/credentials/sso/model.test.ts": { + "lines": 69, + "tokens": 645, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/credentials/sso/cache.test.ts": { + "lines": 90, + "tokens": 706, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/credentials/provider/sharedCredentialsProviderFactory.test.ts": { + "lines": 148, + "tokens": 1056, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/credentials/provider/sharedCredentialsProvider.test.ts": { + "lines": 532, + "tokens": 3676, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/credentials/provider/envVarsCredentialsProvider.test.ts": { + "lines": 64, + "tokens": 479, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/credentials/provider/ecsCredentialsProvider.test.ts": { + "lines": 70, + "tokens": 543, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/credentials/provider/ec2CredentialsProvider.test.ts": { + "lines": 96, + "tokens": 744, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/credentials/provider/credentialsProviderManager.test.ts": { + "lines": 255, + "tokens": 1834, + "sources": 1, + "clones": 2, + "duplicatedLines": 22, + "duplicatedTokens": 242, + "percentage": 8.63, + "percentageTokens": 13.2, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/credentials/provider/credentialsProviderId.test.ts": { + "lines": 93, + "tokens": 595, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/credentials/provider/credentialsProviderFactory.test.ts": { + "lines": 102, + "tokens": 815, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/codewhispererChat/editor/codelens.test.ts": { + "lines": 191, + "tokens": 1599, + "sources": 1, + "clones": 2, + "duplicatedLines": 56, + "duplicatedTokens": 462, + "percentage": 29.32, + "percentageTokens": 28.89, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/codewhisperer/nextEditPrediction/predictionTracker.test.ts": { + "lines": 343, + "tokens": 3127, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/codewhisperer/commands/transformByQ.test.ts": { + "lines": 691, + "tokens": 5672, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/codewhisperer/commands/basicCommands.test.ts": { + "lines": 983, + "tokens": 8110, + "sources": 1, + "clones": 12, + "duplicatedLines": 178, + "duplicatedTokens": 1504, + "percentage": 18.11, + "percentageTokens": 18.55, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/codecatalyst/wizards/selectResource.test.ts": { + "lines": 74, + "tokens": 731, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/sagemaker/utils.test.ts": { + "lines": 149, + "tokens": 1333, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/sagemaker/uriHandlers.test.ts": { + "lines": 58, + "tokens": 516, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/sagemaker/remoteUtils.test.ts": { + "lines": 75, + "tokens": 571, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/sagemaker/model.test.ts": { + "lines": 193, + "tokens": 1819, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/sagemaker/credentialMapping.test.ts": { + "lines": 209, + "tokens": 1847, + "sources": 1, + "clones": 4, + "duplicatedLines": 70, + "duplicatedTokens": 626, + "percentage": 33.49, + "percentageTokens": 33.89, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/ecs/util.test.ts": { + "lines": 28, + "tokens": 282, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/ecs/model.test.ts": { + "lines": 89, + "tokens": 714, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/ecs/commands.test.ts": { + "lines": 86, + "tokens": 1006, + "sources": 1, + "clones": 4, + "duplicatedLines": 90, + "duplicatedTokens": 1108, + "percentage": 104.65, + "percentageTokens": 110.14, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/ecr/utils.test.ts": { + "lines": 32, + "tokens": 231, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/ec2/utils.test.ts": { + "lines": 54, + "tokens": 394, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/ec2/sshKeyPair.test.ts": { + "lines": 148, + "tokens": 1461, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/ec2/remoteSessionManager.test.ts": { + "lines": 55, + "tokens": 487, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/ec2/prompter.test.ts": { + "lines": 167, + "tokens": 1463, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/ec2/model.test.ts": { + "lines": 317, + "tokens": 3027, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/ec2/ec2LogDocumentProvider.test.ts": { + "lines": 38, + "tokens": 321, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/ec2/commands.test.ts": { + "lines": 31, + "tokens": 212, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/ec2/activation.test.ts": { + "lines": 47, + "tokens": 411, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/cloudWatchLogs/utils.test.ts": { + "lines": 288, + "tokens": 2362, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/cdk/treeTestUtils.ts": { + "lines": 92, + "tokens": 570, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/cdk/detectCdkProjects.test.ts": { + "lines": 169, + "tokens": 1582, + "sources": 1, + "clones": 2, + "duplicatedLines": 20, + "duplicatedTokens": 180, + "percentage": 11.83, + "percentageTokens": 11.38, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/appBuilder/walkthrough.test.ts": { + "lines": 463, + "tokens": 3876, + "sources": 1, + "clones": 2, + "duplicatedLines": 26, + "duplicatedTokens": 192, + "percentage": 5.62, + "percentageTokens": 4.95, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/appBuilder/utils.test.ts": { + "lines": 865, + "tokens": 7149, + "sources": 1, + "clones": 4, + "duplicatedLines": 122, + "duplicatedTokens": 1172, + "percentage": 14.1, + "percentageTokens": 16.39, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsService/accessanalyzer/iamPolicyChecks.test.ts": { + "lines": 770, + "tokens": 6216, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsExplorer/commands/loadMoreChildren.test.ts": { + "lines": 63, + "tokens": 543, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsExplorer/commands/copyText.test.ts": { + "lines": 63, + "tokens": 514, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/auth/providers/sharedCredentialsProvider.test.ts": { + "lines": 78, + "tokens": 493, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/applicationcomposer/messageHandlers/initMessageHandler.test.ts": { + "lines": 29, + "tokens": 236, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/applicationcomposer/messageHandlers/generateResourceHandler.test.ts": { + "lines": 36, + "tokens": 286, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/amazonqGumby/telemetry/codeTransformTelemetryState.test.ts": { + "lines": 80, + "tokens": 631, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/amazonqGumby/telemetry/codeTransformMetadata.test.ts": { + "lines": 45, + "tokens": 317, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/amazonq/common/diff.test.ts": { + "lines": 479, + "tokens": 3842, + "sources": 1, + "clones": 20, + "duplicatedLines": 278, + "duplicatedTokens": 2036, + "percentage": 58.04, + "percentageTokens": 52.99, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/amazonq/common/contentController.test.ts": { + "lines": 53, + "tokens": 488, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/stepFunctions/vue/executeStateMachine/index.ts": { + "lines": 15, + "tokens": 90, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/stepFunctions/vue/executeStateMachine/executeStateMachine.ts": { + "lines": 97, + "tokens": 744, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/stepFunctions/commands/visualizeStateMachine/renderStateMachineGraphCDK.ts": { + "lines": 75, + "tokens": 619, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/stepFunctions/commands/visualizeStateMachine/getStateMachineDefinitionFromCfnTemplate.ts": { + "lines": 73, + "tokens": 522, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/ui/sam/templatePrompter.ts": { + "lines": 73, + "tokens": 607, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/ui/sam/stackPrompter.ts": { + "lines": 60, + "tokens": 485, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/ui/sam/paramsSourcePrompter.ts": { + "lines": 67, + "tokens": 345, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/ui/sam/ecrPrompter.ts": { + "lines": 54, + "tokens": 391, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/ui/sam/bucketPrompter.ts": { + "lines": 84, + "tokens": 518, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/ui/common/variablesPrompter.ts": { + "lines": 95, + "tokens": 826, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/ui/common/skipPrompter.ts": { + "lines": 26, + "tokens": 185, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/ui/common/roles.ts": { + "lines": 93, + "tokens": 802, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/ui/common/regionSubmenu.ts": { + "lines": 135, + "tokens": 1253, + "sources": 1, + "clones": 1, + "duplicatedLines": 16, + "duplicatedTokens": 107, + "percentage": 11.85, + "percentageTokens": 8.54, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/ui/common/region.ts": { + "lines": 64, + "tokens": 621, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/ui/common/openDialog.ts": { + "lines": 53, + "tokens": 528, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/ui/common/location.ts": { + "lines": 94, + "tokens": 645, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/ui/common/exitPrompter.ts": { + "lines": 44, + "tokens": 339, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/treeview/nodes/placeholderNode.ts": { + "lines": 18, + "tokens": 86, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/treeview/nodes/loadMoreNode.ts": { + "lines": 47, + "tokens": 51, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/treeview/nodes/awsTreeNodeBase.ts": { + "lines": 27, + "tokens": 191, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/treeview/nodes/awsResourceNode.ts": { + "lines": 18, + "tokens": 47, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/treeview/nodes/awsCommandTreeNode.ts": { + "lines": 25, + "tokens": 166, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/templates/sam/samTemplateGenerator.ts": { + "lines": 134, + "tokens": 1018, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/sam/debugger/typescriptSamDebug.ts": { + "lines": 223, + "tokens": 1994, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/sam/debugger/pythonSamDebug.ts": { + "lines": 173, + "tokens": 1362, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/sam/debugger/javaSamDebug.ts": { + "lines": 65, + "tokens": 528, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/sam/debugger/goSamDebug.ts": { + "lines": 274, + "tokens": 2144, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/sam/debugger/csharpSamDebug.ts": { + "lines": 285, + "tokens": 1988, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/sam/debugger/awsSamDebugger.ts": { + "lines": 726, + "tokens": 5233, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/sam/debugger/awsSamDebugConfigurationValidator.ts": { + "lines": 343, + "tokens": 2551, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/sam/debugger/awsSamDebugConfiguration.ts": { + "lines": 250, + "tokens": 1804, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/sam/cli/samCliValidator.ts": { + "lines": 130, + "tokens": 977, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/sam/cli/samCliValidationUtils.ts": { + "lines": 47, + "tokens": 248, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/sam/cli/samCliValidationNotification.ts": { + "lines": 162, + "tokens": 1080, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/sam/cli/samCliStartApi.ts": { + "lines": 101, + "tokens": 635, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/sam/cli/samCliSettings.ts": { + "lines": 123, + "tokens": 961, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/sam/cli/samCliRemoteTestEvent.ts": { + "lines": 71, + "tokens": 595, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/sam/cli/samCliPackage.ts": { + "lines": 53, + "tokens": 254, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/sam/cli/samCliLocator.ts": { + "lines": 226, + "tokens": 1764, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/sam/cli/samCliLocalInvoke.ts": { + "lines": 312, + "tokens": 2374, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/sam/cli/samCliListResources.ts": { + "lines": 56, + "tokens": 371, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/sam/cli/samCliInvokerUtils.ts": { + "lines": 140, + "tokens": 1144, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/sam/cli/samCliInvoker.ts": { + "lines": 69, + "tokens": 611, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/sam/cli/samCliInit.ts": { + "lines": 65, + "tokens": 452, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/sam/cli/samCliInfo.ts": { + "lines": 53, + "tokens": 372, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/sam/cli/samCliDetection.ts": { + "lines": 93, + "tokens": 762, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/sam/cli/samCliDeploy.ts": { + "lines": 55, + "tokens": 391, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/sam/cli/samCliContext.ts": { + "lines": 47, + "tokens": 294, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/sam/cli/samCliBuild.ts": { + "lines": 187, + "tokens": 1223, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/resourcefetcher/node/httpResourceFetcher.ts": { + "lines": 128, + "tokens": 1040, + "sources": 1, + "clones": 1, + "duplicatedLines": 10, + "duplicatedTokens": 102, + "percentage": 7.81, + "percentageTokens": 9.81, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/lsp/utils/setupStage.ts": { + "lines": 67, + "tokens": 415, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/lsp/utils/runner.ts": { + "lines": 93, + "tokens": 662, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/lsp/utils/platform.ts": { + "lines": 166, + "tokens": 1362, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/lsp/utils/cleanup.ts": { + "lines": 60, + "tokens": 490, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/db/chatDb/util.ts": { + "lines": 276, + "tokens": 2161, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/db/chatDb/chatDb.ts": { + "lines": 259, + "tokens": 2159, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/login/webview/vue/types.ts": { + "lines": 84, + "tokens": 439, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/login/webview/vue/backend.ts": { + "lines": 308, + "tokens": 2189, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/lambda/vue/remoteInvoke/remoteInvokeFrontend.ts": { + "lines": 432, + "tokens": 4035, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/lambda/vue/remoteInvoke/invokeLambda.ts": { + "lines": 784, + "tokens": 6402, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/lambda/vue/remoteInvoke/index.ts": { + "lines": 15, + "tokens": 90, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/lambda/vue/configEditor/samInvokeFrontend.ts": { + "lines": 463, + "tokens": 4035, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/lambda/vue/configEditor/samInvokeBackend.ts": { + "lines": 511, + "tokens": 4125, + "sources": 1, + "clones": 2, + "duplicatedLines": 24, + "duplicatedTokens": 194, + "percentage": 4.7, + "percentageTokens": 4.7, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/lambda/vue/configEditor/index.ts": { + "lines": 15, + "tokens": 90, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/dynamicResources/explorer/nodes/resourcesNode.ts": { + "lines": 82, + "tokens": 830, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/dynamicResources/explorer/nodes/resourceTypeNode.ts": { + "lines": 148, + "tokens": 1418, + "sources": 1, + "clones": 3, + "duplicatedLines": 51, + "duplicatedTokens": 291, + "percentage": 34.46, + "percentageTokens": 20.52, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/dynamicResources/explorer/nodes/resourceNode.ts": { + "lines": 34, + "tokens": 262, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhispererChat/view/messages/referenceLogController.ts": { + "lines": 17, + "tokens": 141, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhispererChat/view/messages/messageListener.ts": { + "lines": 358, + "tokens": 2636, + "sources": 1, + "clones": 2, + "duplicatedLines": 30, + "duplicatedTokens": 230, + "percentage": 8.38, + "percentageTokens": 8.73, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhispererChat/view/connector/connector.ts": { + "lines": 463, + "tokens": 3375, + "sources": 1, + "clones": 1, + "duplicatedLines": 14, + "duplicatedTokens": 90, + "percentage": 3.02, + "percentageTokens": 2.67, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhispererChat/editor/context/model.ts": { + "lines": 11, + "tokens": 60, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhispererChat/editor/context/extractor.ts": { + "lines": 73, + "tokens": 548, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhispererChat/controllers/chat/telemetryHelper.ts": { + "lines": 715, + "tokens": 5984, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhispererChat/controllers/chat/tabBarController.ts": { + "lines": 180, + "tokens": 1533, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhispererChat/controllers/chat/model.ts": { + "lines": 260, + "tokens": 1662, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/views/securityIssue/securityIssueWebview.ts": { + "lines": 286, + "tokens": 2540, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/service/transformByQ/transformationResultsViewProvider.ts": { + "lines": 533, + "tokens": 4473, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/service/transformByQ/transformationHubViewProvider.ts": { + "lines": 659, + "tokens": 3706, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/service/transformByQ/transformationHistoryHandler.ts": { + "lines": 388, + "tokens": 3303, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/service/transformByQ/transformProjectValidationHandler.ts": { + "lines": 73, + "tokens": 553, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/service/transformByQ/transformMavenHandler.ts": { + "lines": 106, + "tokens": 854, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/service/transformByQ/transformFileHandler.ts": { + "lines": 388, + "tokens": 3686, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/service/transformByQ/humanInTheLoopManager.ts": { + "lines": 127, + "tokens": 1244, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codecatalyst/vue/create/index.ts": { + "lines": 15, + "tokens": 90, + "sources": 1, + "clones": 2, + "duplicatedLines": 25, + "duplicatedTokens": 177, + "percentage": 166.67, + "percentageTokens": 196.67, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codecatalyst/vue/create/backend.ts": { + "lines": 283, + "tokens": 2214, + "sources": 1, + "clones": 2, + "duplicatedLines": 29, + "duplicatedTokens": 245, + "percentage": 10.25, + "percentageTokens": 11.07, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codecatalyst/vue/configure/index.ts": { + "lines": 15, + "tokens": 90, + "sources": 1, + "clones": 1, + "duplicatedLines": 15, + "duplicatedTokens": 90, + "percentage": 100, + "percentageTokens": 100, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codecatalyst/vue/configure/backend.ts": { + "lines": 209, + "tokens": 1808, + "sources": 1, + "clones": 1, + "duplicatedLines": 19, + "duplicatedTokens": 159, + "percentage": 9.09, + "percentageTokens": 8.79, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/sagemaker/explorer/sagemakerSpaceNode.ts": { + "lines": 179, + "tokens": 1633, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/sagemaker/explorer/sagemakerParentNode.ts": { + "lines": 213, + "tokens": 1936, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/sagemaker/explorer/constants.ts": { + "lines": 19, + "tokens": 126, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/sagemaker/detached-server/utils.ts": { + "lines": 150, + "tokens": 1164, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/sagemaker/detached-server/sessionStore.ts": { + "lines": 135, + "tokens": 1051, + "sources": 1, + "clones": 10, + "duplicatedLines": 116, + "duplicatedTokens": 990, + "percentage": 85.93, + "percentageTokens": 94.2, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/sagemaker/detached-server/server.ts": { + "lines": 106, + "tokens": 917, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/sagemaker/detached-server/errorPage.ts": { + "lines": 135, + "tokens": 662, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/sagemaker/detached-server/credentials.ts": { + "lines": 51, + "tokens": 327, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/s3/explorer/s3Nodes.ts": { + "lines": 47, + "tokens": 360, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/s3/explorer/s3FolderNode.ts": { + "lines": 105, + "tokens": 981, + "sources": 1, + "clones": 8, + "duplicatedLines": 142, + "duplicatedTokens": 1123, + "percentage": 135.24, + "percentageTokens": 114.48, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/s3/explorer/s3FileNode.ts": { + "lines": 83, + "tokens": 673, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/s3/explorer/s3BucketNode.ts": { + "lines": 115, + "tokens": 1030, + "sources": 1, + "clones": 2, + "duplicatedLines": 50, + "duplicatedTokens": 442, + "percentage": 43.48, + "percentageTokens": 42.91, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/s3/commands/uploadFileToParent.ts": { + "lines": 16, + "tokens": 101, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/s3/commands/uploadFile.ts": { + "lines": 599, + "tokens": 4399, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/s3/commands/presignedURL.ts": { + "lines": 66, + "tokens": 542, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/s3/commands/openFile.ts": { + "lines": 62, + "tokens": 516, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/s3/commands/downloadFileAs.ts": { + "lines": 150, + "tokens": 1292, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/s3/commands/deleteFile.ts": { + "lines": 64, + "tokens": 511, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/s3/commands/deleteBucket.ts": { + "lines": 77, + "tokens": 562, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/s3/commands/createFolder.ts": { + "lines": 81, + "tokens": 599, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/s3/commands/createBucket.ts": { + "lines": 55, + "tokens": 406, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/s3/commands/copyPath.ts": { + "lines": 17, + "tokens": 105, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/redshift/wizards/connectionWizard.ts": { + "lines": 283, + "tokens": 2558, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/redshift/notebook/redshiftNotebookSerializer.ts": { + "lines": 66, + "tokens": 511, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/redshift/notebook/redshiftNotebookController.ts": { + "lines": 145, + "tokens": 1335, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/redshift/notebook/cellStatusBarItemProvider.ts": { + "lines": 52, + "tokens": 342, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/redshift/models/models.ts": { + "lines": 33, + "tokens": 190, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/redshift/explorer/redshiftWarehouseNode.ts": { + "lines": 177, + "tokens": 1530, + "sources": 1, + "clones": 1, + "duplicatedLines": 14, + "duplicatedTokens": 94, + "percentage": 7.91, + "percentageTokens": 6.14, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/redshift/explorer/redshiftTableNode.ts": { + "lines": 16, + "tokens": 116, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/redshift/explorer/redshiftSchemaNode.ts": { + "lines": 77, + "tokens": 723, + "sources": 1, + "clones": 2, + "duplicatedLines": 25, + "duplicatedTokens": 210, + "percentage": 32.47, + "percentageTokens": 29.05, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/redshift/explorer/redshiftNode.ts": { + "lines": 156, + "tokens": 1207, + "sources": 1, + "clones": 1, + "duplicatedLines": 23, + "duplicatedTokens": 88, + "percentage": 14.74, + "percentageTokens": 7.29, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/redshift/explorer/redshiftDatabaseNode.ts": { + "lines": 78, + "tokens": 734, + "sources": 1, + "clones": 2, + "duplicatedLines": 25, + "duplicatedTokens": 210, + "percentage": 32.05, + "percentageTokens": 28.61, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/iot/explorer/iotThingNode.ts": { + "lines": 114, + "tokens": 994, + "sources": 1, + "clones": 3, + "duplicatedLines": 49, + "duplicatedTokens": 433, + "percentage": 42.98, + "percentageTokens": 43.56, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/iot/explorer/iotThingFolderNode.ts": { + "lines": 90, + "tokens": 835, + "sources": 1, + "clones": 3, + "duplicatedLines": 46, + "duplicatedTokens": 372, + "percentage": 51.11, + "percentageTokens": 44.55, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/iot/explorer/iotPolicyVersionNode.ts": { + "lines": 68, + "tokens": 494, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/iot/explorer/iotPolicyNode.ts": { + "lines": 119, + "tokens": 1152, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/iot/explorer/iotPolicyFolderNode.ts": { + "lines": 105, + "tokens": 920, + "sources": 1, + "clones": 3, + "duplicatedLines": 52, + "duplicatedTokens": 429, + "percentage": 49.52, + "percentageTokens": 46.63, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/iot/explorer/iotNodes.ts": { + "lines": 60, + "tokens": 474, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/iot/explorer/iotCertificateNode.ts": { + "lines": 156, + "tokens": 1461, + "sources": 1, + "clones": 2, + "duplicatedLines": 33, + "duplicatedTokens": 315, + "percentage": 21.15, + "percentageTokens": 21.56, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/iot/explorer/iotCertFolderNode.ts": { + "lines": 103, + "tokens": 905, + "sources": 1, + "clones": 2, + "duplicatedLines": 38, + "duplicatedTokens": 335, + "percentage": 36.89, + "percentageTokens": 37.02, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/iot/commands/viewPolicyVersion.ts": { + "lines": 46, + "tokens": 404, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/iot/commands/updateCert.ts": { + "lines": 156, + "tokens": 1158, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/iot/commands/setDefaultPolicy.ts": { + "lines": 43, + "tokens": 290, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/iot/commands/detachPolicy.ts": { + "lines": 72, + "tokens": 558, + "sources": 1, + "clones": 1, + "duplicatedLines": 11, + "duplicatedTokens": 82, + "percentage": 15.28, + "percentageTokens": 14.7, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/iot/commands/detachCert.ts": { + "lines": 53, + "tokens": 387, + "sources": 1, + "clones": 1, + "duplicatedLines": 11, + "duplicatedTokens": 82, + "percentage": 20.75, + "percentageTokens": 21.19, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/iot/commands/deleteThing.ts": { + "lines": 62, + "tokens": 460, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/iot/commands/deletePolicyVersion.ts": { + "lines": 67, + "tokens": 402, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/iot/commands/deletePolicy.ts": { + "lines": 77, + "tokens": 570, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/iot/commands/deleteCert.ts": { + "lines": 110, + "tokens": 823, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/iot/commands/createThing.ts": { + "lines": 68, + "tokens": 432, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/iot/commands/createPolicyVersion.ts": { + "lines": 49, + "tokens": 320, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/iot/commands/createPolicy.ts": { + "lines": 97, + "tokens": 695, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/iot/commands/createCert.ts": { + "lines": 155, + "tokens": 1213, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/iot/commands/copyEndpoint.ts": { + "lines": 29, + "tokens": 184, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/iot/commands/attachPolicy.ts": { + "lines": 105, + "tokens": 845, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/iot/commands/attachCertificate.ts": { + "lines": 92, + "tokens": 753, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/ecs/wizards/executeCommand.ts": { + "lines": 107, + "tokens": 917, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/ecr/explorer/ecrTagNode.ts": { + "lines": 26, + "tokens": 206, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/ecr/explorer/ecrRepositoryNode.ts": { + "lines": 50, + "tokens": 494, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/ecr/explorer/ecrNode.ts": { + "lines": 46, + "tokens": 393, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/ecr/commands/deleteTag.ts": { + "lines": 57, + "tokens": 481, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/ecr/commands/deleteRepository.ts": { + "lines": 54, + "tokens": 473, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/ecr/commands/createRepository.ts": { + "lines": 46, + "tokens": 405, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/ecr/commands/copyTagUri.ts": { + "lines": 13, + "tokens": 105, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/ecr/commands/copyRepositoryUri.ts": { + "lines": 13, + "tokens": 95, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/ec2/explorer/ec2ParentNode.ts": { + "lines": 101, + "tokens": 954, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/ec2/explorer/ec2InstanceNode.ts": { + "lines": 114, + "tokens": 1003, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/cloudWatchLogs/wizard/tailLogGroupWizard.ts": { + "lines": 110, + "tokens": 915, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/cloudWatchLogs/wizard/liveTailLogStreamSubmenu.ts": { + "lines": 162, + "tokens": 1387, + "sources": 1, + "clones": 1, + "duplicatedLines": 16, + "duplicatedTokens": 107, + "percentage": 9.88, + "percentageTokens": 7.71, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/cloudWatchLogs/registry/logDataRegistry.ts": { + "lines": 331, + "tokens": 2497, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/cloudWatchLogs/registry/liveTailSessionRegistry.ts": { + "lines": 33, + "tokens": 285, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/cloudWatchLogs/registry/liveTailSession.ts": { + "lines": 160, + "tokens": 1346, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/cloudWatchLogs/explorer/logGroupNode.ts": { + "lines": 47, + "tokens": 375, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/cloudWatchLogs/explorer/cloudWatchLogsNode.ts": { + "lines": 68, + "tokens": 659, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/cloudWatchLogs/document/textContent.ts": { + "lines": 54, + "tokens": 444, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/cloudWatchLogs/document/logStreamsCodeLensProvider.ts": { + "lines": 111, + "tokens": 923, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/cloudWatchLogs/document/logDataDocumentProvider.ts": { + "lines": 79, + "tokens": 653, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/cloudWatchLogs/document/logDataCodeLensProvider.ts": { + "lines": 67, + "tokens": 588, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/cloudWatchLogs/document/liveTailDocumentProvider.ts": { + "lines": 12, + "tokens": 70, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/cloudWatchLogs/document/liveTailCodeLensProvider.ts": { + "lines": 61, + "tokens": 566, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/cloudWatchLogs/commands/viewLogStream.ts": { + "lines": 221, + "tokens": 1795, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/cloudWatchLogs/commands/tailLogGroup.ts": { + "lines": 291, + "tokens": 2577, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/cloudWatchLogs/commands/searchLogGroup.ts": { + "lines": 303, + "tokens": 2309, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/cloudWatchLogs/commands/saveCurrentLogDataContent.ts": { + "lines": 77, + "tokens": 589, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/cloudWatchLogs/commands/copyLogResource.ts": { + "lines": 39, + "tokens": 291, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/cloudWatchLogs/commands/addLogEvents.ts": { + "lines": 62, + "tokens": 458, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/cdk/explorer/rootNode.ts": { + "lines": 71, + "tokens": 614, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/cdk/explorer/detectCdkProjects.ts": { + "lines": 51, + "tokens": 510, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/cdk/explorer/cdkProject.ts": { + "lines": 23, + "tokens": 148, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/apprunner/wizards/imageRepositoryWizard.ts": { + "lines": 273, + "tokens": 2401, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/apprunner/wizards/deploymentButton.ts": { + "lines": 59, + "tokens": 467, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/apprunner/wizards/codeRepositoryWizard.ts": { + "lines": 259, + "tokens": 2372, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/apprunner/wizards/apprunnerCreateServiceWizard.ts": { + "lines": 146, + "tokens": 1313, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/apprunner/explorer/apprunnerServiceNode.ts": { + "lines": 185, + "tokens": 1909, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/apprunner/explorer/apprunnerNode.ts": { + "lines": 91, + "tokens": 839, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/apprunner/commands/pauseService.ts": { + "lines": 41, + "tokens": 312, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/apprunner/commands/deleteService.ts": { + "lines": 50, + "tokens": 369, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/apprunner/commands/createServiceFromEcr.ts": { + "lines": 51, + "tokens": 413, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/apprunner/commands/createService.ts": { + "lines": 40, + "tokens": 301, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/appBuilder/wizards/templateParametersWizard.ts": { + "lines": 61, + "tokens": 596, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/appBuilder/wizards/deployTypeWizard.ts": { + "lines": 53, + "tokens": 459, + "sources": 1, + "clones": 1, + "duplicatedLines": 15, + "duplicatedTokens": 91, + "percentage": 28.3, + "percentageTokens": 19.83, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/appBuilder/serverlessLand/wizard.ts": { + "lines": 144, + "tokens": 1219, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/appBuilder/serverlessLand/metadataManager.ts": { + "lines": 152, + "tokens": 1230, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/appBuilder/serverlessLand/main.ts": { + "lines": 139, + "tokens": 1053, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/appBuilder/explorer/samProject.ts": { + "lines": 108, + "tokens": 970, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/appBuilder/explorer/openTemplate.ts": { + "lines": 21, + "tokens": 183, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/appBuilder/explorer/detectSamProjects.ts": { + "lines": 62, + "tokens": 516, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/apigateway/vue/invokeRemoteRestApi.ts": { + "lines": 165, + "tokens": 1391, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/apigateway/vue/index.ts": { + "lines": 15, + "tokens": 90, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/apigateway/explorer/apiNodes.ts": { + "lines": 46, + "tokens": 361, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/apigateway/explorer/apiGatewayNodes.ts": { + "lines": 62, + "tokens": 550, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/apigateway/commands/copyUrl.ts": { + "lines": 97, + "tokens": 889, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/accessanalyzer/vue/index.ts": { + "lines": 15, + "tokens": 90, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/accessanalyzer/vue/iamPolicyChecks.ts": { + "lines": 960, + "tokens": 7817, + "sources": 1, + "clones": 12, + "duplicatedLines": 156, + "duplicatedTokens": 1068, + "percentage": 16.25, + "percentageTokens": 13.66, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/accessanalyzer/vue/constants.ts": { + "lines": 45, + "tokens": 307, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonqScan/chat/storages/chatSession.ts": { + "lines": 50, + "tokens": 361, + "sources": 1, + "clones": 1, + "duplicatedLines": 28, + "duplicatedTokens": 211, + "percentage": 56, + "percentageTokens": 58.45, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonqScan/chat/session/session.ts": { + "lines": 25, + "tokens": 121, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonqGumby/chat/storages/chatSession.ts": { + "lines": 53, + "tokens": 355, + "sources": 1, + "clones": 1, + "duplicatedLines": 53, + "duplicatedTokens": 355, + "percentage": 100, + "percentageTokens": 100, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonqGumby/chat/session/session.ts": { + "lines": 50, + "tokens": 282, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonqGumby/chat/controller/controller.ts": { + "lines": 791, + "tokens": 6739, + "sources": 1, + "clones": 3, + "duplicatedLines": 58, + "duplicatedTokens": 434, + "percentage": 7.33, + "percentageTokens": 6.44, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonq/webview/ui/defs.d.ts": { + "lines": 8, + "tokens": 22, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonq/webview/ui/connectorAdapter.ts": { + "lines": 88, + "tokens": 756, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonq/webview/ui/connector.ts": { + "lines": 600, + "tokens": 4974, + "sources": 1, + "clones": 4, + "duplicatedLines": 65, + "duplicatedTokens": 507, + "percentage": 10.83, + "percentageTokens": 10.19, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonq/webview/ui/commands.ts": { + "lines": 54, + "tokens": 270, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonq/webview/messages/messageDispatcher.ts": { + "lines": 138, + "tokens": 1052, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonq/webview/generators/webViewContent.ts": { + "lines": 94, + "tokens": 724, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonq/webview/generators/featureConfig.ts": { + "lines": 34, + "tokens": 265, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonq/webview/assets/assetsHandler.ts": { + "lines": 39, + "tokens": 343, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonq/commons/controllers/diffContentProvider.ts": { + "lines": 50, + "tokens": 281, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonq/commons/controllers/contentController.ts": { + "lines": 201, + "tokens": 1508, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/web/shared/utilities/timeoutUtils.test.ts": { + "lines": 12, + "tokens": 17, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/unit/codewhisperer/views/securityPanelViewProvider.test.ts": { + "lines": 96, + "tokens": 750, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/unit/codewhisperer/util/userGroupUtil.test.ts": { + "lines": 67, + "tokens": 546, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/unit/codewhisperer/util/telemetryHelper.test.ts": { + "lines": 284, + "tokens": 2375, + "sources": 1, + "clones": 2, + "duplicatedLines": 44, + "duplicatedTokens": 296, + "percentage": 15.49, + "percentageTokens": 12.46, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/unit/codewhisperer/util/showSsoPrompt.test.ts": { + "lines": 45, + "tokens": 366, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/unit/codewhisperer/util/securityScanLanguageContext.test.ts": { + "lines": 142, + "tokens": 1184, + "sources": 1, + "clones": 2, + "duplicatedLines": 30, + "duplicatedTokens": 247, + "percentage": 21.13, + "percentageTokens": 20.86, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/unit/codewhisperer/util/runtimeLanguageContext.test.ts": { + "lines": 448, + "tokens": 4030, + "sources": 1, + "clones": 2, + "duplicatedLines": 30, + "duplicatedTokens": 247, + "percentage": 6.7, + "percentageTokens": 6.13, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/unit/codewhisperer/util/licenseUtil.test.ts": { + "lines": 23, + "tokens": 182, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/unit/codewhisperer/util/importAdderUtil.test.ts": { + "lines": 167, + "tokens": 846, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/unit/codewhisperer/util/diagnosticsUtil.test.ts": { + "lines": 91, + "tokens": 829, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/unit/codewhisperer/util/authUtil.test.ts": { + "lines": 421, + "tokens": 3917, + "sources": 1, + "clones": 8, + "duplicatedLines": 98, + "duplicatedTokens": 766, + "percentage": 23.28, + "percentageTokens": 19.56, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/unit/codewhisperer/ui/prompters.test.ts": { + "lines": 44, + "tokens": 339, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/unit/codewhisperer/tracker/userWrittenCodeTracker.test.ts": { + "lines": 193, + "tokens": 1577, + "sources": 1, + "clones": 2, + "duplicatedLines": 20, + "duplicatedTokens": 174, + "percentage": 10.36, + "percentageTokens": 11.03, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/unit/codewhisperer/tracker/lineTracker.test.ts": { + "lines": 298, + "tokens": 2579, + "sources": 1, + "clones": 1, + "duplicatedLines": 298, + "duplicatedTokens": 2579, + "percentage": 100, + "percentageTokens": 100, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/unit/codewhisperer/tracker/codewhispererTracker.test.ts": { + "lines": 103, + "tokens": 970, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/unit/codewhisperer/service/telemetry.test.ts": { + "lines": 612, + "tokens": 4646, + "sources": 1, + "clones": 6, + "duplicatedLines": 60, + "duplicatedTokens": 512, + "percentage": 9.8, + "percentageTokens": 11.02, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/unit/codewhisperer/service/securityScanHandler.test.ts": { + "lines": 325, + "tokens": 2753, + "sources": 1, + "clones": 3, + "duplicatedLines": 44, + "duplicatedTokens": 341, + "percentage": 13.54, + "percentageTokens": 12.39, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/unit/codewhisperer/service/securityIssueTreeViewProvider.test.ts": { + "lines": 176, + "tokens": 1834, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/unit/codewhisperer/service/securityIssueProvider.test.ts": { + "lines": 131, + "tokens": 1648, + "sources": 1, + "clones": 2, + "duplicatedLines": 20, + "duplicatedTokens": 172, + "percentage": 15.27, + "percentageTokens": 10.44, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/unit/codewhisperer/service/securityIssueHoverProvider.test.ts": { + "lines": 146, + "tokens": 1438, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/unit/codewhisperer/service/securityIssueCodeActionProvider.test.ts": { + "lines": 109, + "tokens": 1270, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/unit/codewhisperer/service/referenceLogViewProvider.test.ts": { + "lines": 102, + "tokens": 898, + "sources": 1, + "clones": 2, + "duplicatedLines": 24, + "duplicatedTokens": 260, + "percentage": 23.53, + "percentageTokens": 28.95, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/unit/codewhisperer/service/referenceInlineProvider.test.ts": { + "lines": 31, + "tokens": 234, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/unit/codewhisperer/service/referenceHoverProvider.test.ts": { + "lines": 55, + "tokens": 496, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/unit/codewhisperer/service/diagnosticsProvider.test.ts": { + "lines": 99, + "tokens": 1136, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/unit/codewhisperer/service/codewhisperer.test.ts": { + "lines": 150, + "tokens": 1233, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/unit/codewhisperer/region/regionProfileManager.test.ts": { + "lines": 300, + "tokens": 2316, + "sources": 1, + "clones": 2, + "duplicatedLines": 30, + "duplicatedTokens": 268, + "percentage": 10, + "percentageTokens": 11.57, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/unit/codewhisperer/models/model.test.ts": { + "lines": 173, + "tokens": 1263, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/unit/app/inline/webViewPanel.test.ts": { + "lines": 152, + "tokens": 1209, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/unit/app/inline/cursorUpdateManager.test.ts": { + "lines": 328, + "tokens": 2486, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/unit/app/inline/completion.test.ts": { + "lines": 209, + "tokens": 1672, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/unit/amazonqGumby/models/dependencies.test.ts": { + "lines": 47, + "tokens": 605, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/unit/amazonq/onboardingPage/walkthrough.test.ts": { + "lines": 21, + "tokens": 139, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/unit/amazonq/lsp/encryption.test.ts": { + "lines": 26, + "tokens": 219, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/unit/amazonq/lsp/config.test.ts": { + "lines": 226, + "tokens": 1450, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/unit/amazonq/lsp/client.test.ts": { + "lines": 267, + "tokens": 1721, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/unit/amazonq/lsp/auth.test.ts": { + "lines": 32, + "tokens": 258, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/unit/amazonq/auth/controller.test.ts": { + "lines": 35, + "tokens": 243, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/unit/amazonq/apps/initContext.test.ts": { + "lines": 41, + "tokens": 322, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/e2e/amazonq/utils/setup.ts": { + "lines": 25, + "tokens": 174, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/e2e/amazonq/framework/text.ts": { + "lines": 28, + "tokens": 207, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/e2e/amazonq/framework/messenger.ts": { + "lines": 218, + "tokens": 1844, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/e2e/amazonq/framework/jsdomInjector.ts": { + "lines": 62, + "tokens": 453, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/e2e/amazonq/framework/framework.ts": { + "lines": 135, + "tokens": 945, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/lsp/chat/autoDebug/index.ts": { + "lines": 17, + "tokens": 55, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/lsp/chat/autoDebug/controller.ts": { + "lines": 203, + "tokens": 1671, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/lsp/chat/autoDebug/commands.ts": { + "lines": 146, + "tokens": 936, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/lsp/chat/autoDebug/codeActionsProvider.ts": { + "lines": 118, + "tokens": 831, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/lsp/chat/autoDebug/activation.ts": { + "lines": 77, + "tokens": 464, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/app/inline/tutorials/inlineTutorialAnnotation.ts": { + "lines": 518, + "tokens": 3680, + "sources": 1, + "clones": 9, + "duplicatedLines": 384, + "duplicatedTokens": 2638, + "percentage": 74.13, + "percentageTokens": 71.68, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/app/inline/tutorials/inlineChatTutorialAnnotation.ts": { + "lines": 57, + "tokens": 461, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/app/inline/stateTracker/lineTracker.ts": { + "lines": 177, + "tokens": 1642, + "sources": 1, + "clones": 3, + "duplicatedLines": 169, + "duplicatedTokens": 1607, + "percentage": 95.48, + "percentageTokens": 97.87, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/app/inline/EditRendering/svgGenerator.ts": { + "lines": 507, + "tokens": 3846, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/app/inline/EditRendering/imageRenderer.ts": { + "lines": 58, + "tokens": 394, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/app/inline/EditRendering/displayImage.ts": { + "lines": 475, + "tokens": 3615, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/app/inline/EditRendering/diffUtils.ts": { + "lines": 92, + "tokens": 743, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/app/chat/node/activateAgents.ts": { + "lines": 15, + "tokens": 84, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/app/amazonqScan/models/constants.ts": { + "lines": 100, + "tokens": 681, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/webviews/mixins/saveData.ts": { + "lines": 67, + "tokens": 535, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/threatComposer/handlers/webviewTelemetryHandler.ts": { + "lines": 32, + "tokens": 157, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/threatComposer/handlers/saveFileMessageHandler.ts": { + "lines": 180, + "tokens": 1273, + "sources": 1, + "clones": 2, + "duplicatedLines": 32, + "duplicatedTokens": 300, + "percentage": 17.78, + "percentageTokens": 23.57, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/threatComposer/handlers/openFeedbackMessageHandler.ts": { + "lines": 16, + "tokens": 51, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/threatComposer/handlers/onThemeChangedHandler.ts": { + "lines": 34, + "tokens": 200, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/threatComposer/handlers/onFileChangedHandler.ts": { + "lines": 76, + "tokens": 454, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/threatComposer/handlers/logMessageHandler.ts": { + "lines": 60, + "tokens": 454, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/threatComposer/handlers/loadStageMessageHandler.ts": { + "lines": 30, + "tokens": 170, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/threatComposer/handlers/initMessageHandler.ts": { + "lines": 65, + "tokens": 504, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/threatComposer/commands/createNewThreatComposerFile.ts": { + "lines": 61, + "tokens": 366, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/testInteg/stepFunctions/init.test.ts": { + "lines": 40, + "tokens": 321, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/testInteg/shared/crashMonitoring.test.ts": { + "lines": 8, + "tokens": 24, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/testInteg/schema/schema.test.ts": { + "lines": 96, + "tokens": 766, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/testInteg/perf/zipcode.test.ts": { + "lines": 82, + "tokens": 694, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/testInteg/perf/utilities.ts": { + "lines": 48, + "tokens": 248, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/testInteg/perf/startSecurityScan.test.ts": { + "lines": 123, + "tokens": 1106, + "sources": 1, + "clones": 2, + "duplicatedLines": 36, + "duplicatedTokens": 279, + "percentage": 29.27, + "percentageTokens": 25.23, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/testInteg/perf/downloadExportResultArchive.test.ts": { + "lines": 94, + "tokens": 822, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/testInteg/perf/collectFiles.test.ts": { + "lines": 83, + "tokens": 762, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/testInteg/notifications/notifications.test.ts": { + "lines": 112, + "tokens": 850, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/testInteg/common/request.ts": { + "lines": 15, + "tokens": 111, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/testInteg/codecatalyst/devEnv.test.ts": { + "lines": 186, + "tokens": 1492, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/testInteg/cloudformation/templateRegistry.test.ts": { + "lines": 145, + "tokens": 1240, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/testInteg/appBuilder/walkthrough.test.ts": { + "lines": 22, + "tokens": 183, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/testInteg/amazonQTransform/transformByQ.test.ts": { + "lines": 97, + "tokens": 841, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/testFixtures/typescript/sampleInterfaces.ts": { + "lines": 19, + "tokens": 71, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/testFixtures/typescript/sampleFunctions.ts": { + "lines": 50, + "tokens": 501, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/testFixtures/typescript/sampleClasses.ts": { + "lines": 25, + "tokens": 129, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/testE2E/util/connection.ts": { + "lines": 41, + "tokens": 239, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/testE2E/shared/awsClientBuilderV3.test.ts": { + "lines": 86, + "tokens": 825, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/testE2E/codewhisperer/securityScan.test.ts": { + "lines": 211, + "tokens": 1477, + "sources": 1, + "clones": 3, + "duplicatedLines": 52, + "duplicatedTokens": 324, + "percentage": 24.64, + "percentageTokens": 21.94, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/testE2E/codecatalyst/client.test.ts": { + "lines": 636, + "tokens": 4895, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/webview/server.test.ts": { + "lines": 41, + "tokens": 261, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/utilities/testSettingsConfiguration.ts": { + "lines": 101, + "tokens": 1190, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/utilities/stubber.ts": { + "lines": 54, + "tokens": 587, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/utilities/performance.ts": { + "lines": 28, + "tokens": 260, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/utilities/fakeAwsContext.ts": { + "lines": 70, + "tokens": 535, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/utilities/explorerNodeAssertions.ts": { + "lines": 19, + "tokens": 160, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/stepFunctions/utils.test.ts": { + "lines": 120, + "tokens": 657, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/sshConfig.test.ts": { + "lines": 292, + "tokens": 2796, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/settings.test.ts": { + "lines": 556, + "tokens": 5186, + "sources": 1, + "clones": 1, + "duplicatedLines": 11, + "duplicatedTokens": 170, + "percentage": 1.98, + "percentageTokens": 3.28, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/schemas.test.ts": { + "lines": 140, + "tokens": 1170, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/request.test.ts": { + "lines": 81, + "tokens": 592, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/remoteSession.test.ts": { + "lines": 31, + "tokens": 239, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/markdown.test.ts": { + "lines": 32, + "tokens": 232, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/icons.test.ts": { + "lines": 78, + "tokens": 714, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/globalState.test.ts": { + "lines": 205, + "tokens": 2076, + "sources": 1, + "clones": 1, + "duplicatedLines": 11, + "duplicatedTokens": 170, + "percentage": 5.37, + "percentageTokens": 8.19, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/filetypes.test.ts": { + "lines": 174, + "tokens": 1588, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/filesystemUtilities.test.ts": { + "lines": 202, + "tokens": 1918, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/featureConfig.test.ts": { + "lines": 154, + "tokens": 1232, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/extensionUtilities.test.ts": { + "lines": 504, + "tokens": 4290, + "sources": 1, + "clones": 2, + "duplicatedLines": 22, + "duplicatedTokens": 236, + "percentage": 4.37, + "percentageTokens": 5.5, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/errors.test.ts": { + "lines": 732, + "tokens": 6870, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/defaultAwsContext.test.ts": { + "lines": 92, + "tokens": 743, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/datetime.test.ts": { + "lines": 48, + "tokens": 753, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/crypto.test.ts": { + "lines": 63, + "tokens": 543, + "sources": 1, + "clones": 1, + "duplicatedLines": 19, + "duplicatedTokens": 177, + "percentage": 30.16, + "percentageTokens": 32.6, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/crashMonitoring.test.ts": { + "lines": 301, + "tokens": 2441, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/awsClientBuilderV3.test.ts": { + "lines": 414, + "tokens": 3961, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/awsClientBuilder.test.ts": { + "lines": 153, + "tokens": 1397, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/shared/activationReloadState.test.ts": { + "lines": 243, + "tokens": 1482, + "sources": 1, + "clones": 6, + "duplicatedLines": 114, + "duplicatedTokens": 616, + "percentage": 46.91, + "percentageTokens": 41.57, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/notifications/types.test.ts": { + "lines": 54, + "tokens": 404, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/notifications/rules.test.ts": { + "lines": 556, + "tokens": 3658, + "sources": 1, + "clones": 3, + "duplicatedLines": 40, + "duplicatedTokens": 276, + "percentage": 7.19, + "percentageTokens": 7.55, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/notifications/rendering.test.ts": { + "lines": 220, + "tokens": 1591, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/notifications/controller.test.ts": { + "lines": 598, + "tokens": 4792, + "sources": 1, + "clones": 9, + "duplicatedLines": 124, + "duplicatedTokens": 942, + "percentage": 20.74, + "percentageTokens": 19.66, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/lambda/utils.test.ts": { + "lines": 191, + "tokens": 1544, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/lambda/uriHandlers.test.ts": { + "lines": 35, + "tokens": 286, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/fake/mockFeatureConfigData.ts": { + "lines": 28, + "tokens": 171, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/fake/fakeTelemetryService.ts": { + "lines": 36, + "tokens": 235, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/fake/fakeDocument.ts": { + "lines": 236, + "tokens": 1934, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/dynamicResources/awsResourceManager.test.ts": { + "lines": 245, + "tokens": 2626, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/docdb/utils.test.ts": { + "lines": 82, + "tokens": 600, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/credentials/utils.test.ts": { + "lines": 166, + "tokens": 1705, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/credentials/testUtil.ts": { + "lines": 156, + "tokens": 1470, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/credentials/sharedCredentials.test.ts": { + "lines": 68, + "tokens": 561, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/credentials/secondaryAuth.test.ts": { + "lines": 140, + "tokens": 1188, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/credentials/auth.test.ts": { + "lines": 673, + "tokens": 6546, + "sources": 1, + "clones": 4, + "duplicatedLines": 94, + "duplicatedTokens": 550, + "percentage": 13.97, + "percentageTokens": 8.4, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/codewhisperer/zipUtil.test.ts": { + "lines": 139, + "tokens": 1454, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/codewhisperer/testUtil.ts": { + "lines": 335, + "tokens": 2658, + "sources": 1, + "clones": 1, + "duplicatedLines": 22, + "duplicatedTokens": 141, + "percentage": 6.57, + "percentageTokens": 5.3, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/codewhisperer/startSecurityScan.test.ts": { + "lines": 393, + "tokens": 3217, + "sources": 1, + "clones": 3, + "duplicatedLines": 54, + "duplicatedTokens": 355, + "percentage": 13.74, + "percentageTokens": 11.04, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/codewhisperer/mergeIssuesDisplayFindings.test.ts": { + "lines": 87, + "tokens": 797, + "sources": 1, + "clones": 2, + "duplicatedLines": 26, + "duplicatedTokens": 234, + "percentage": 29.89, + "percentageTokens": 29.36, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/codecatalyst/uriHandlers.test.ts": { + "lines": 138, + "tokens": 1215, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/codecatalyst/devfileLocation.test.ts": { + "lines": 113, + "tokens": 1246, + "sources": 1, + "clones": 2, + "duplicatedLines": 20, + "duplicatedTokens": 254, + "percentage": 17.7, + "percentageTokens": 20.39, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/codecatalyst/codecatalystClient.test.ts": { + "lines": 86, + "tokens": 762, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/codecatalyst/auth.test.ts": { + "lines": 215, + "tokens": 1955, + "sources": 1, + "clones": 2, + "duplicatedLines": 26, + "duplicatedTokens": 282, + "percentage": 12.09, + "percentageTokens": 14.42, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsExplorer/regionNode.test.ts": { + "lines": 45, + "tokens": 372, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsExplorer/childNodeLoader.test.ts": { + "lines": 151, + "tokens": 1288, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsExplorer/childNodeCache.test.ts": { + "lines": 58, + "tokens": 518, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/awsExplorer/awsExplorer.test.ts": { + "lines": 62, + "tokens": 543, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/auth/activation.test.ts": { + "lines": 145, + "tokens": 1164, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/applicationcomposer/utils.ts": { + "lines": 36, + "tokens": 294, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/amazonqGumby/transformationJobHistory.test.ts": { + "lines": 332, + "tokens": 3391, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/amazonq/customizationUtil.test.ts": { + "lines": 160, + "tokens": 1324, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/stepFunctions/workflowStudio/workflowStudioEditorProvider.ts": { + "lines": 224, + "tokens": 1648, + "sources": 1, + "clones": 1, + "duplicatedLines": 13, + "duplicatedTokens": 112, + "percentage": 5.8, + "percentageTokens": 6.8, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/stepFunctions/workflowStudio/workflowStudioEditor.ts": { + "lines": 224, + "tokens": 1715, + "sources": 1, + "clones": 3, + "duplicatedLines": 48, + "duplicatedTokens": 375, + "percentage": 21.43, + "percentageTokens": 21.87, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/stepFunctions/workflowStudio/workflowStudioApiHandler.ts": { + "lines": 78, + "tokens": 587, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/stepFunctions/workflowStudio/types.ts": { + "lines": 111, + "tokens": 681, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/stepFunctions/workflowStudio/handleMessage.ts": { + "lines": 277, + "tokens": 1796, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/stepFunctions/workflowStudio/activation.ts": { + "lines": 31, + "tokens": 207, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/stepFunctions/wizards/publishStateMachineWizard.ts": { + "lines": 178, + "tokens": 1264, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/stepFunctions/wizards/previewStateMachineCDKWizard.ts": { + "lines": 88, + "tokens": 747, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/stepFunctions/wizards/createStateMachineWizard.ts": { + "lines": 107, + "tokens": 656, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/stepFunctions/explorer/stepFunctionsNodes.ts": { + "lines": 124, + "tokens": 1030, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/stepFunctions/constants/aslFormats.ts": { + "lines": 12, + "tokens": 117, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/stepFunctions/commands/publishStateMachine.ts": { + "lines": 167, + "tokens": 1249, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/stepFunctions/commands/downloadStateMachineDefinition.ts": { + "lines": 79, + "tokens": 741, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/stepFunctions/commands/createStateMachineFromTemplate.ts": { + "lines": 60, + "tokens": 437, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/stepFunctions/asl/client.ts": { + "lines": 190, + "tokens": 1334, + "sources": 1, + "clones": 1, + "duplicatedLines": 10, + "duplicatedTokens": 98, + "percentage": 5.26, + "percentageTokens": 7.35, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/stepFunctions/asl/aslServer.ts": { + "lines": 547, + "tokens": 4028, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/ssmDocument/wizards/publishDocumentWizard.ts": { + "lines": 142, + "tokens": 996, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/ssmDocument/util/validateDocumentName.ts": { + "lines": 40, + "tokens": 213, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/ssmDocument/util/util.ts": { + "lines": 61, + "tokens": 467, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/ssmDocument/ssm/ssmClient.ts": { + "lines": 135, + "tokens": 987, + "sources": 1, + "clones": 1, + "duplicatedLines": 10, + "duplicatedTokens": 98, + "percentage": 7.41, + "percentageTokens": 9.93, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/ssmDocument/explorer/ssmDocumentNode.ts": { + "lines": 55, + "tokens": 462, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/ssmDocument/explorer/registryItemNode.ts": { + "lines": 120, + "tokens": 1058, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/ssmDocument/explorer/documentTypeNode.ts": { + "lines": 66, + "tokens": 562, + "sources": 1, + "clones": 1, + "duplicatedLines": 10, + "duplicatedTokens": 95, + "percentage": 15.15, + "percentageTokens": 16.9, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/ssmDocument/explorer/documentItemNodeWriteable.ts": { + "lines": 38, + "tokens": 316, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/ssmDocument/explorer/documentItemNode.ts": { + "lines": 66, + "tokens": 511, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/ssmDocument/commands/updateDocumentVersion.ts": { + "lines": 119, + "tokens": 842, + "sources": 1, + "clones": 1, + "duplicatedLines": 35, + "duplicatedTokens": 257, + "percentage": 29.41, + "percentageTokens": 30.52, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/ssmDocument/commands/publishDocument.ts": { + "lines": 163, + "tokens": 1395, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/ssmDocument/commands/openDocumentItem.ts": { + "lines": 100, + "tokens": 821, + "sources": 1, + "clones": 1, + "duplicatedLines": 35, + "duplicatedTokens": 257, + "percentage": 35, + "percentageTokens": 31.3, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/ssmDocument/commands/deleteDocument.ts": { + "lines": 77, + "tokens": 559, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/ssmDocument/commands/createDocumentFromTemplate.ts": { + "lines": 145, + "tokens": 1103, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/wizards/wizardForm.ts": { + "lines": 248, + "tokens": 2567, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/wizards/wizard.ts": { + "lines": 293, + "tokens": 2791, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/wizards/stateController.ts": { + "lines": 172, + "tokens": 1358, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/wizards/multiStepWizard.ts": { + "lines": 235, + "tokens": 1719, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/wizards/compositeWizard.ts": { + "lines": 62, + "tokens": 313, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/vscode/window.ts": { + "lines": 91, + "tokens": 707, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/vscode/uriHandler.ts": { + "lines": 146, + "tokens": 1400, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/vscode/setContext.ts": { + "lines": 74, + "tokens": 287, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/vscode/env.ts": { + "lines": 321, + "tokens": 2169, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/vscode/constants.ts": { + "lines": 8, + "tokens": 50, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/vscode/commands2.ts": { + "lines": 685, + "tokens": 5336, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/utilities/zipStream.ts": { + "lines": 193, + "tokens": 1520, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/utilities/workspaceUtils.ts": { + "lines": 673, + "tokens": 4932, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/utilities/vsCodeUtils.ts": { + "lines": 258, + "tokens": 1868, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/utilities/uriUtils.ts": { + "lines": 71, + "tokens": 444, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/utilities/typeConstructors.ts": { + "lines": 206, + "tokens": 1715, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/utilities/tsUtils.ts": { + "lines": 198, + "tokens": 2361, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/utilities/treeNodeUtils.ts": { + "lines": 16, + "tokens": 124, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/utilities/timeoutUtils.ts": { + "lines": 398, + "tokens": 2995, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/utilities/textUtilities.ts": { + "lines": 283, + "tokens": 1898, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/utilities/textDocumentUtilities.ts": { + "lines": 337, + "tokens": 2533, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/utilities/symbolUtilities.ts": { + "lines": 65, + "tokens": 460, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/utilities/streamUtilities.ts": { + "lines": 105, + "tokens": 877, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/utilities/result.ts": { + "lines": 138, + "tokens": 1531, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/utilities/resourceCache.ts": { + "lines": 204, + "tokens": 1405, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/utilities/proxyUtil.ts": { + "lines": 102, + "tokens": 666, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/utilities/processUtils.ts": { + "lines": 544, + "tokens": 4520, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/utilities/pollingSet.ts": { + "lines": 57, + "tokens": 350, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/utilities/pathUtils.ts": { + "lines": 128, + "tokens": 928, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/utilities/pathFind.ts": { + "lines": 260, + "tokens": 1920, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/utilities/osUtils.ts": { + "lines": 38, + "tokens": 222, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/utilities/messages.ts": { + "lines": 438, + "tokens": 3181, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/utilities/mementos.ts": { + "lines": 54, + "tokens": 363, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/utilities/map.ts": { + "lines": 125, + "tokens": 644, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/utilities/logAndShowUtils.ts": { + "lines": 75, + "tokens": 596, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/utilities/index.ts": { + "lines": 10, + "tokens": 68, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/utilities/functionUtils.ts": { + "lines": 203, + "tokens": 1419, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/utilities/editorUtilities.ts": { + "lines": 79, + "tokens": 563, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/utilities/downloadPatterns.ts": { + "lines": 79, + "tokens": 678, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/utilities/download.ts": { + "lines": 45, + "tokens": 324, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/utilities/diffUtils.ts": { + "lines": 188, + "tokens": 1454, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/utilities/debuggerUtils.ts": { + "lines": 8, + "tokens": 56, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/utilities/commentUtils.ts": { + "lines": 105, + "tokens": 1221, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/utilities/collectionUtils.ts": { + "lines": 607, + "tokens": 4987, + "sources": 1, + "clones": 2, + "duplicatedLines": 28, + "duplicatedTokens": 190, + "percentage": 4.61, + "percentageTokens": 3.81, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/utilities/cliUtils.ts": { + "lines": 689, + "tokens": 5020, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/utilities/classUtils.ts": { + "lines": 36, + "tokens": 323, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/utilities/cacheUtils.ts": { + "lines": 253, + "tokens": 1754, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/utilities/asyncCollection.ts": { + "lines": 276, + "tokens": 2845, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/ui/wizardPrompter.ts": { + "lines": 75, + "tokens": 539, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/ui/prompter.ts": { + "lines": 80, + "tokens": 614, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/ui/pickerPrompter.ts": { + "lines": 768, + "tokens": 6125, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/ui/picker.ts": { + "lines": 370, + "tokens": 2458, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/ui/inputPrompter.ts": { + "lines": 164, + "tokens": 1214, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/ui/input.ts": { + "lines": 134, + "tokens": 701, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/ui/buttons.ts": { + "lines": 158, + "tokens": 1215, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/treeview/utils.ts": { + "lines": 158, + "tokens": 1459, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/treeview/resourceTreeDataProvider.ts": { + "lines": 190, + "tokens": 1560, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/treeview/resource.ts": { + "lines": 278, + "tokens": 2556, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/treeview/awsTreeProvider.ts": { + "lines": 11, + "tokens": 38, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/templates/baseTemplates.ts": { + "lines": 22, + "tokens": 24, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/telemetry/util.ts": { + "lines": 499, + "tokens": 3096, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/telemetry/telemetryService.ts": { + "lines": 490, + "tokens": 3689, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/telemetry/telemetryPublisher.ts": { + "lines": 124, + "tokens": 964, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/telemetry/telemetryLogger.ts": { + "lines": 127, + "tokens": 934, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/telemetry/telemetryClient.ts": { + "lines": 178, + "tokens": 1307, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/telemetry/telemetry.ts": { + "lines": 31, + "tokens": 211, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/telemetry/spans.ts": { + "lines": 528, + "tokens": 3497, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/telemetry/index.ts": { + "lines": 8, + "tokens": 54, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/telemetry/exemptMetrics.ts": { + "lines": 60, + "tokens": 211, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/telemetry/activation.ts": { + "lines": 142, + "tokens": 1024, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/sam/utils.ts": { + "lines": 148, + "tokens": 1394, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/sam/sync.ts": { + "lines": 635, + "tokens": 5729, + "sources": 1, + "clones": 1, + "duplicatedLines": 12, + "duplicatedTokens": 117, + "percentage": 1.89, + "percentageTokens": 2.04, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/sam/processTerminal.ts": { + "lines": 129, + "tokens": 1233, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/sam/localLambdaRunner.ts": { + "lines": 608, + "tokens": 5209, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/sam/deploy.ts": { + "lines": 259, + "tokens": 2611, + "sources": 1, + "clones": 1, + "duplicatedLines": 12, + "duplicatedTokens": 117, + "percentage": 4.63, + "percentageTokens": 4.48, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/sam/constants.ts": { + "lines": 9, + "tokens": 51, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/sam/config.ts": { + "lines": 235, + "tokens": 2071, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/sam/build.ts": { + "lines": 345, + "tokens": 2703, + "sources": 1, + "clones": 1, + "duplicatedLines": 47, + "duplicatedTokens": 258, + "percentage": 13.62, + "percentageTokens": 9.54, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/sam/activation.ts": { + "lines": 435, + "tokens": 3221, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/resourcefetcher/resourcefetcher.ts": { + "lines": 12, + "tokens": 38, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/resourcefetcher/httpResourceFetcher.ts": { + "lines": 172, + "tokens": 1338, + "sources": 1, + "clones": 1, + "duplicatedLines": 10, + "duplicatedTokens": 102, + "percentage": 5.81, + "percentageTokens": 7.62, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/resourcefetcher/fileResourceFetcher.ts": { + "lines": 26, + "tokens": 193, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/regions/regionProvider.ts": { + "lines": 216, + "tokens": 1726, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/regions/endpoints.ts": { + "lines": 131, + "tokens": 803, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/performance/performance.ts": { + "lines": 215, + "tokens": 1677, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/performance/marks.ts": { + "lines": 8, + "tokens": 27, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/lsp/types.ts": { + "lines": 92, + "tokens": 331, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/lsp/manifestResolver.ts": { + "lines": 172, + "tokens": 1363, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/lsp/lspResolver.ts": { + "lines": 498, + "tokens": 3651, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/lsp/languageModelCache.ts": { + "lines": 95, + "tokens": 749, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/lsp/baseLspInstaller.ts": { + "lines": 94, + "tokens": 681, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/logger/toolkitLogger.ts": { + "lines": 181, + "tokens": 1715, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/logger/sharedFileTransport.ts": { + "lines": 109, + "tokens": 673, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/logger/perfLogger.ts": { + "lines": 28, + "tokens": 198, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/logger/outputChannelTransport.ts": { + "lines": 84, + "tokens": 692, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/logger/logger.ts": { + "lines": 276, + "tokens": 1483, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/logger/consoleLogTransport.ts": { + "lines": 67, + "tokens": 409, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/logger/commands.ts": { + "lines": 103, + "tokens": 908, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/logger/activation.ts": { + "lines": 108, + "tokens": 807, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/fs/watchedFiles.ts": { + "lines": 409, + "tokens": 2890, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/fs/templateRegistry.ts": { + "lines": 306, + "tokens": 2413, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/fs/fs.ts": { + "lines": 673, + "tokens": 4879, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/fs/devfileRegistry.ts": { + "lines": 58, + "tokens": 524, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/fs/codelensRootRegistry.ts": { + "lines": 25, + "tokens": 133, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/extensions/yaml.ts": { + "lines": 68, + "tokens": 656, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/extensions/ssh.ts": { + "lines": 191, + "tokens": 1426, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/extensions/git.ts": { + "lines": 415, + "tokens": 3368, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/env/resolveEnv.ts": { + "lines": 310, + "tokens": 2442, + "sources": 1, + "clones": 1, + "duplicatedLines": 14, + "duplicatedTokens": 163, + "percentage": 4.52, + "percentageTokens": 6.67, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/debug/launchConfiguration.ts": { + "lines": 207, + "tokens": 1532, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/credentials/userCredentialsUtils.ts": { + "lines": 101, + "tokens": 554, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/credentials/defaultCredentialSelectionDataProvider.ts": { + "lines": 307, + "tokens": 2486, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/credentials/credentialsProfileMru.ts": { + "lines": 40, + "tokens": 222, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/credentials/credentialSelectionState.ts": { + "lines": 15, + "tokens": 70, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/credentials/credentialSelectionDataProvider.ts": { + "lines": 32, + "tokens": 201, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/codelens/typescriptCodeLensProvider.ts": { + "lines": 67, + "tokens": 466, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/codelens/samTemplateCodeLensProvider.ts": { + "lines": 81, + "tokens": 760, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/codelens/resourceCodeLensProvider.ts": { + "lines": 48, + "tokens": 395, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/codelens/pythonCodeLensProvider.ts": { + "lines": 48, + "tokens": 416, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/codelens/javaCodeLensProvider.ts": { + "lines": 200, + "tokens": 1436, + "sources": 1, + "clones": 1, + "duplicatedLines": 34, + "duplicatedTokens": 157, + "percentage": 17, + "percentageTokens": 10.93, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/codelens/goCodeLensProvider.ts": { + "lines": 165, + "tokens": 1297, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/codelens/csharpCodeLensProvider.ts": { + "lines": 197, + "tokens": 1510, + "sources": 1, + "clones": 1, + "duplicatedLines": 34, + "duplicatedTokens": 157, + "percentage": 17.26, + "percentageTokens": 10.4, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/codelens/codeLensUtils.ts": { + "lines": 423, + "tokens": 3457, + "sources": 1, + "clones": 6, + "duplicatedLines": 60, + "duplicatedTokens": 616, + "percentage": 14.18, + "percentageTokens": 17.82, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/cloudformation/templateSymbolResolver.ts": { + "lines": 131, + "tokens": 990, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/cloudformation/cloudformation.ts": { + "lines": 913, + "tokens": 6023, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/cloudformation/activation.ts": { + "lines": 95, + "tokens": 666, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/clients/stsClient.ts": { + "lines": 39, + "tokens": 302, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/clients/stepFunctions.ts": { + "lines": 67, + "tokens": 446, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/clients/ssmDocumentClient.ts": { + "lines": 114, + "tokens": 951, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/clients/ssm.ts": { + "lines": 112, + "tokens": 950, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/clients/secretsManagerClient.ts": { + "lines": 67, + "tokens": 483, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/clients/schemaClient.ts": { + "lines": 164, + "tokens": 1184, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/clients/sagemaker.ts": { + "lines": 317, + "tokens": 2568, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/clients/s3.ts": { + "lines": 783, + "tokens": 5788, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/clients/redshiftClient.ts": { + "lines": 269, + "tokens": 2495, + "sources": 1, + "clones": 2, + "duplicatedLines": 20, + "duplicatedTokens": 190, + "percentage": 7.43, + "percentageTokens": 7.62, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/clients/qDeveloperChatClient.ts": { + "lines": 24, + "tokens": 205, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/clients/lambdaClient.ts": { + "lines": 306, + "tokens": 2659, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/clients/iotClient.ts": { + "lines": 517, + "tokens": 3555, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/clients/iam.ts": { + "lines": 135, + "tokens": 1079, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/clients/ecsClient.ts": { + "lines": 129, + "tokens": 1459, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/clients/ecrClient.ts": { + "lines": 87, + "tokens": 928, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/clients/ec2MetadataClient.ts": { + "lines": 82, + "tokens": 570, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/clients/ec2.ts": { + "lines": 260, + "tokens": 2218, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/clients/docdbClient.ts": { + "lines": 306, + "tokens": 3339, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/clients/devenvClient.ts": { + "lines": 275, + "tokens": 1911, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/clients/codewhispererChatClient.ts": { + "lines": 22, + "tokens": 206, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/clients/codecatalystClient.ts": { + "lines": 972, + "tokens": 8265, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/clients/cloudWatchLogs.ts": { + "lines": 45, + "tokens": 341, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/clients/cloudFormation.ts": { + "lines": 93, + "tokens": 813, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/clients/cloudControl.ts": { + "lines": 115, + "tokens": 833, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/clients/clientWrapper.ts": { + "lines": 78, + "tokens": 797, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/clients/apprunner.ts": { + "lines": 116, + "tokens": 1050, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/clients/apiGateway.ts": { + "lines": 82, + "tokens": 583, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/login/webview/util.ts": { + "lines": 27, + "tokens": 158, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/login/webview/commonAuthViewProvider.ts": { + "lines": 175, + "tokens": 1186, + "sources": 1, + "clones": 1, + "duplicatedLines": 11, + "duplicatedTokens": 97, + "percentage": 6.29, + "percentageTokens": 8.18, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/lambda/wizards/samInitWizard.ts": { + "lines": 288, + "tokens": 2279, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/lambda/remoteDebugging/utils.ts": { + "lines": 26, + "tokens": 195, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/lambda/remoteDebugging/localProxy.ts": { + "lines": 900, + "tokens": 6064, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/lambda/remoteDebugging/ldkLayers.ts": { + "lines": 45, + "tokens": 287, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/lambda/remoteDebugging/ldkController.ts": { + "lines": 784, + "tokens": 6146, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/lambda/remoteDebugging/ldkClient.ts": { + "lines": 469, + "tokens": 3656, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/lambda/models/sampleRequest.ts": { + "lines": 8, + "tokens": 35, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/lambda/models/samTemplates.ts": { + "lines": 123, + "tokens": 769, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/lambda/models/samLambdaRuntime.ts": { + "lines": 322, + "tokens": 2396, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/lambda/local/debugConfiguration.ts": { + "lines": 261, + "tokens": 1936, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/lambda/explorer/lambdaNodes.ts": { + "lines": 79, + "tokens": 658, + "sources": 1, + "clones": 1, + "duplicatedLines": 12, + "duplicatedTokens": 98, + "percentage": 15.19, + "percentageTokens": 14.89, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/lambda/explorer/lambdaFunctionNodeDecorationProvider.ts": { + "lines": 106, + "tokens": 1010, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/lambda/explorer/lambdaFunctionNode.ts": { + "lines": 103, + "tokens": 968, + "sources": 1, + "clones": 1, + "duplicatedLines": 10, + "duplicatedTokens": 82, + "percentage": 9.71, + "percentageTokens": 8.47, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/lambda/explorer/lambdaFunctionFolderNode.ts": { + "lines": 59, + "tokens": 541, + "sources": 1, + "clones": 1, + "duplicatedLines": 10, + "duplicatedTokens": 82, + "percentage": 16.95, + "percentageTokens": 15.16, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/lambda/explorer/lambdaFunctionFileNode.ts": { + "lines": 37, + "tokens": 263, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/lambda/explorer/cloudFormationNodes.ts": { + "lines": 158, + "tokens": 1478, + "sources": 1, + "clones": 1, + "duplicatedLines": 12, + "duplicatedTokens": 98, + "percentage": 7.59, + "percentageTokens": 6.63, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/lambda/config/templates.ts": { + "lines": 441, + "tokens": 3261, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/lambda/config/samParameterCompletionItemProvider.ts": { + "lines": 140, + "tokens": 1086, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/lambda/config/parameterUtils.ts": { + "lines": 82, + "tokens": 704, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/lambda/config/configureParameterOverrides.ts": { + "lines": 148, + "tokens": 1146, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/lambda/commands/uploadLambda.ts": { + "lines": 602, + "tokens": 4922, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/lambda/commands/listSamResources.ts": { + "lines": 42, + "tokens": 315, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/lambda/commands/editLambda.ts": { + "lines": 284, + "tokens": 2633, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/lambda/commands/downloadLambda.ts": { + "lines": 299, + "tokens": 2575, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/lambda/commands/deleteLambda.ts": { + "lines": 61, + "tokens": 449, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/lambda/commands/deleteCloudFormation.ts": { + "lines": 72, + "tokens": 495, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/lambda/commands/createNewSamApp.ts": { + "lines": 482, + "tokens": 3841, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/lambda/commands/copyLambdaUrl.ts": { + "lines": 56, + "tokens": 530, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/feedback/vue/submitFeedback.ts": { + "lines": 127, + "tokens": 1039, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/feedback/vue/index.ts": { + "lines": 15, + "tokens": 90, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/eventSchemas/wizards/schemaCodeDownloadWizard.ts": { + "lines": 194, + "tokens": 1668, + "sources": 1, + "clones": 2, + "duplicatedLines": 38, + "duplicatedTokens": 350, + "percentage": 19.59, + "percentageTokens": 20.98, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/eventSchemas/vue/searchSchemas.ts": { + "lines": 252, + "tokens": 2099, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/eventSchemas/vue/index.ts": { + "lines": 15, + "tokens": 90, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/eventSchemas/templates/schemasAppTemplateUtils.ts": { + "lines": 110, + "tokens": 845, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/eventSchemas/providers/schemasDataProvider.ts": { + "lines": 130, + "tokens": 1078, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/eventSchemas/models/schemaCodeLangs.ts": { + "lines": 75, + "tokens": 487, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/eventSchemas/models/schemaCodeGenUtils.ts": { + "lines": 83, + "tokens": 720, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/eventSchemas/explorer/schemasNode.ts": { + "lines": 51, + "tokens": 496, + "sources": 1, + "clones": 1, + "duplicatedLines": 10, + "duplicatedTokens": 95, + "percentage": 19.61, + "percentageTokens": 19.15, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/eventSchemas/explorer/schemaItemNode.ts": { + "lines": 57, + "tokens": 482, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/eventSchemas/explorer/registryItemNode.ts": { + "lines": 78, + "tokens": 735, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/eventSchemas/commands/viewSchemaItem.ts": { + "lines": 54, + "tokens": 490, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/eventSchemas/commands/downloadSchemaItemCode.ts": { + "lines": 406, + "tokens": 2990, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/dynamicResources/model/resources.ts": { + "lines": 31, + "tokens": 312, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/dynamicResources/commands/saveResource.ts": { + "lines": 237, + "tokens": 1936, + "sources": 1, + "clones": 2, + "duplicatedLines": 22, + "duplicatedTokens": 194, + "percentage": 9.28, + "percentageTokens": 10.02, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/dynamicResources/commands/openResource.ts": { + "lines": 131, + "tokens": 1092, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/dynamicResources/commands/deleteResource.ts": { + "lines": 94, + "tokens": 699, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/dynamicResources/commands/copyIdentifier.ts": { + "lines": 11, + "tokens": 78, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/dynamicResources/commands/configure.ts": { + "lines": 49, + "tokens": 354, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/docdb/wizards/regionalClusterWizard.ts": { + "lines": 205, + "tokens": 1657, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/docdb/wizards/elasticClusterWizard.ts": { + "lines": 131, + "tokens": 1085, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/docdb/wizards/createInstanceWizard.ts": { + "lines": 95, + "tokens": 751, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/docdb/wizards/createGlobalClusterWizard.ts": { + "lines": 73, + "tokens": 577, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/docdb/wizards/createClusterWizard.ts": { + "lines": 81, + "tokens": 621, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/docdb/explorer/docdbNode.ts": { + "lines": 87, + "tokens": 809, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/docdb/explorer/docdbContext.ts": { + "lines": 13, + "tokens": 74, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/docdb/explorer/dbResourceNode.ts": { + "lines": 174, + "tokens": 1580, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/docdb/explorer/dbInstanceNode.ts": { + "lines": 118, + "tokens": 1092, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/docdb/explorer/dbGlobalClusterNode.ts": { + "lines": 166, + "tokens": 1570, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/docdb/explorer/dbElasticClusterNode.ts": { + "lines": 116, + "tokens": 1012, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/docdb/explorer/dbClusterNode.ts": { + "lines": 191, + "tokens": 1852, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/docdb/commands/tagCommands.ts": { + "lines": 111, + "tokens": 1156, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/docdb/commands/stopCluster.ts": { + "lines": 38, + "tokens": 314, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/docdb/commands/startCluster.ts": { + "lines": 21, + "tokens": 185, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/docdb/commands/renameInstance.ts": { + "lines": 57, + "tokens": 415, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/docdb/commands/renameCluster.ts": { + "lines": 60, + "tokens": 453, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/docdb/commands/rebootInstance.ts": { + "lines": 59, + "tokens": 440, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/docdb/commands/modifyInstance.ts": { + "lines": 97, + "tokens": 794, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/docdb/commands/deleteInstance.ts": { + "lines": 77, + "tokens": 614, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/docdb/commands/deleteCluster.ts": { + "lines": 107, + "tokens": 854, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/docdb/commands/createInstance.ts": { + "lines": 85, + "tokens": 710, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/docdb/commands/createCluster.ts": { + "lines": 104, + "tokens": 819, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/docdb/commands/addRegion.ts": { + "lines": 164, + "tokens": 1311, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhispererChat/storages/triggerEvents.ts": { + "lines": 88, + "tokens": 699, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhispererChat/storages/chatSession.ts": { + "lines": 29, + "tokens": 185, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhispererChat/editor/codelens.ts": { + "lines": 171, + "tokens": 1277, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhispererChat/commands/registerCommands.ts": { + "lines": 70, + "tokens": 374, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/vue/index.ts": { + "lines": 17, + "tokens": 90, + "sources": 1, + "clones": 1, + "duplicatedLines": 17, + "duplicatedTokens": 90, + "percentage": 100, + "percentageTokens": 100, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/vue/backend.ts": { + "lines": 168, + "tokens": 1451, + "sources": 1, + "clones": 1, + "duplicatedLines": 10, + "duplicatedTokens": 86, + "percentage": 5.95, + "percentageTokens": 5.93, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/views/securityPanelViewProvider.ts": { + "lines": 299, + "tokens": 2971, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/views/lineAnnotationController.ts": { + "lines": 485, + "tokens": 3477, + "sources": 1, + "clones": 9, + "duplicatedLines": 384, + "duplicatedTokens": 2638, + "percentage": 79.18, + "percentageTokens": 75.87, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/views/activeStateController.ts": { + "lines": 125, + "tokens": 1087, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/util/zipUtil.ts": { + "lines": 579, + "tokens": 5298, + "sources": 1, + "clones": 2, + "duplicatedLines": 34, + "duplicatedTokens": 252, + "percentage": 5.87, + "percentageTokens": 4.76, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/util/userGroupUtil.ts": { + "lines": 72, + "tokens": 495, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/util/telemetryHelper.ts": { + "lines": 879, + "tokens": 7018, + "sources": 1, + "clones": 15, + "duplicatedLines": 191, + "duplicatedTokens": 1519, + "percentage": 21.73, + "percentageTokens": 21.64, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/util/showSsoPrompt.ts": { + "lines": 66, + "tokens": 556, + "sources": 1, + "clones": 1, + "duplicatedLines": 10, + "duplicatedTokens": 83, + "percentage": 15.15, + "percentageTokens": 14.93, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/util/securityScanLanguageContext.ts": { + "lines": 63, + "tokens": 448, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/util/runtimeLanguageContext.ts": { + "lines": 361, + "tokens": 2351, + "sources": 1, + "clones": 2, + "duplicatedLines": 28, + "duplicatedTokens": 188, + "percentage": 7.76, + "percentageTokens": 8, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/util/licenseUtil.ts": { + "lines": 482, + "tokens": 3395, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/util/importAdderUtil.ts": { + "lines": 88, + "tokens": 802, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/util/gitUtil.ts": { + "lines": 36, + "tokens": 292, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/util/getStartUrl.ts": { + "lines": 42, + "tokens": 406, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/util/diagnosticsUtil.ts": { + "lines": 116, + "tokens": 973, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/util/customizationUtil.ts": { + "lines": 456, + "tokens": 3804, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/util/commonUtil.ts": { + "lines": 24, + "tokens": 162, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/util/codewhispererSettings.ts": { + "lines": 101, + "tokens": 789, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/util/codeWhispererSession.ts": { + "lines": 125, + "tokens": 1064, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/util/codeWhispererApplication.ts": { + "lines": 18, + "tokens": 130, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/util/closingBracketUtil.ts": { + "lines": 262, + "tokens": 2158, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/util/authUtil.ts": { + "lines": 586, + "tokens": 4716, + "sources": 1, + "clones": 2, + "duplicatedLines": 24, + "duplicatedTokens": 218, + "percentage": 4.1, + "percentageTokens": 4.62, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/ui/statusBarMenu.ts": { + "lines": 142, + "tokens": 1037, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/ui/prompters.ts": { + "lines": 33, + "tokens": 262, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/ui/codeWhispererNodes.ts": { + "lines": 281, + "tokens": 2464, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/tracker/userWrittenCodeTracker.ts": { + "lines": 195, + "tokens": 1575, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/tracker/lineTracker.ts": { + "lines": 178, + "tokens": 1647, + "sources": 1, + "clones": 3, + "duplicatedLines": 169, + "duplicatedTokens": 1607, + "percentage": 94.94, + "percentageTokens": 97.57, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/tracker/codewhispererTracker.ts": { + "lines": 237, + "tokens": 1819, + "sources": 1, + "clones": 1, + "duplicatedLines": 13, + "duplicatedTokens": 95, + "percentage": 5.49, + "percentageTokens": 5.22, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/service/statusBar.ts": { + "lines": 146, + "tokens": 1126, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/service/serviceContainer.ts": { + "lines": 43, + "tokens": 219, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/service/securityScanHandler.ts": { + "lines": 464, + "tokens": 4246, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/service/securityIssueTreeViewProvider.ts": { + "lines": 213, + "tokens": 2071, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/service/securityIssueProvider.ts": { + "lines": 195, + "tokens": 1748, + "sources": 1, + "clones": 2, + "duplicatedLines": 26, + "duplicatedTokens": 234, + "percentage": 13.33, + "percentageTokens": 13.39, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/service/securityIssueHoverProvider.ts": { + "lines": 130, + "tokens": 1050, + "sources": 1, + "clones": 1, + "duplicatedLines": 11, + "duplicatedTokens": 90, + "percentage": 8.46, + "percentageTokens": 8.57, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/service/securityIssueCodeActionProvider.ts": { + "lines": 105, + "tokens": 860, + "sources": 1, + "clones": 1, + "duplicatedLines": 11, + "duplicatedTokens": 90, + "percentage": 10.48, + "percentageTokens": 10.47, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/service/referenceLogViewProvider.ts": { + "lines": 187, + "tokens": 1537, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/service/referenceInlineProvider.ts": { + "lines": 90, + "tokens": 846, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/service/referenceHoverProvider.ts": { + "lines": 70, + "tokens": 636, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/service/importAdderProvider.ts": { + "lines": 131, + "tokens": 1040, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/service/diagnosticsProvider.ts": { + "lines": 169, + "tokens": 1587, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/service/codeFixHandler.ts": { + "lines": 126, + "tokens": 1090, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/region/utils.ts": { + "lines": 48, + "tokens": 403, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/region/regionProfileManager.ts": { + "lines": 414, + "tokens": 3405, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/nextEditPrediction/predictionTracker.ts": { + "lines": 235, + "tokens": 1652, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/nextEditPrediction/predictionKeyStrokeHandler.ts": { + "lines": 116, + "tokens": 718, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/nextEditPrediction/diffContextGenerator.ts": { + "lines": 153, + "tokens": 917, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/nextEditPrediction/activation.ts": { + "lines": 31, + "tokens": 228, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/models/errors.ts": { + "lines": 183, + "tokens": 1084, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/models/constants.ts": { + "lines": 942, + "tokens": 5018, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/commands/types.ts": { + "lines": 39, + "tokens": 185, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/commands/startTransformByQ.ts": { + "lines": 861, + "tokens": 6555, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/commands/startSecurityScan.ts": { + "lines": 549, + "tokens": 4317, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/commands/startCodeFixGeneration.ts": { + "lines": 130, + "tokens": 867, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/commands/gettingStartedPageCommands.ts": { + "lines": 41, + "tokens": 324, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/commands/basicCommands.ts": { + "lines": 854, + "tokens": 7654, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/client/codewhisperer.ts": { + "lines": 324, + "tokens": 2839, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codecatalyst/wizards/selectResource.ts": { + "lines": 237, + "tokens": 2231, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codecatalyst/wizards/devenvSettings.ts": { + "lines": 103, + "tokens": 1016, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codecatalyst/repos/remoteSourceProvider.ts": { + "lines": 76, + "tokens": 685, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsexplorer/commands/loadMoreChildren.ts": { + "lines": 35, + "tokens": 269, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsexplorer/commands/copyText.ts": { + "lines": 27, + "tokens": 200, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/sagemaker/utils.ts": { + "lines": 155, + "tokens": 1164, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/sagemaker/uriHandlers.ts": { + "lines": 39, + "tokens": 266, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/sagemaker/types.ts": { + "lines": 29, + "tokens": 203, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/sagemaker/remoteUtils.ts": { + "lines": 47, + "tokens": 362, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/sagemaker/model.ts": { + "lines": 227, + "tokens": 2070, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/sagemaker/credentialMapping.ts": { + "lines": 173, + "tokens": 1189, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/sagemaker/constants.ts": { + "lines": 30, + "tokens": 186, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/sagemaker/commands.ts": { + "lines": 188, + "tokens": 1622, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/sagemaker/activation.ts": { + "lines": 81, + "tokens": 642, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/s3/util.ts": { + "lines": 70, + "tokens": 357, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/s3/progressReporter.ts": { + "lines": 158, + "tokens": 1102, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/s3/fileViewerManager.ts": { + "lines": 378, + "tokens": 3545, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/s3/activation.ts": { + "lines": 93, + "tokens": 1024, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/redshift/messageUtils.ts": { + "lines": 48, + "tokens": 288, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/redshift/activation.ts": { + "lines": 143, + "tokens": 1309, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/iot/activation.ts": { + "lines": 96, + "tokens": 983, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/ecs/util.ts": { + "lines": 106, + "tokens": 890, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/ecs/model.ts": { + "lines": 211, + "tokens": 1908, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/ecs/commands.ts": { + "lines": 155, + "tokens": 1393, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/ecs/activation.ts": { + "lines": 35, + "tokens": 370, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/ecr/utils.ts": { + "lines": 36, + "tokens": 150, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/ecr/activation.ts": { + "lines": 37, + "tokens": 330, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/ec2/utils.ts": { + "lines": 49, + "tokens": 347, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/ec2/sshKeyPair.ts": { + "lines": 133, + "tokens": 1215, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/ec2/remoteSessionManager.ts": { + "lines": 39, + "tokens": 321, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/ec2/prompter.ts": { + "lines": 87, + "tokens": 834, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/ec2/model.ts": { + "lines": 367, + "tokens": 3359, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/ec2/ec2LogDocumentProvider.ts": { + "lines": 41, + "tokens": 376, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/ec2/connectionManagerMap.ts": { + "lines": 25, + "tokens": 202, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/ec2/commands.ts": { + "lines": 60, + "tokens": 663, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/ec2/activation.ts": { + "lines": 87, + "tokens": 818, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/cloudWatchLogs/timeFilterSubmenu.ts": { + "lines": 222, + "tokens": 1908, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/cloudWatchLogs/cloudWatchLogsUtils.ts": { + "lines": 113, + "tokens": 835, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/cloudWatchLogs/changeLogSearch.ts": { + "lines": 103, + "tokens": 861, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/cloudWatchLogs/activation.ts": { + "lines": 155, + "tokens": 1465, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/apprunner/activation.ts": { + "lines": 93, + "tokens": 908, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/appBuilder/walkthrough.ts": { + "lines": 348, + "tokens": 2961, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/appBuilder/utils.ts": { + "lines": 708, + "tokens": 5430, + "sources": 1, + "clones": 1, + "duplicatedLines": 15, + "duplicatedTokens": 91, + "percentage": 2.12, + "percentageTokens": 1.68, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/appBuilder/activation.ts": { + "lines": 216, + "tokens": 2078, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/apigateway/activation.ts": { + "lines": 36, + "tokens": 309, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsService/accessanalyzer/activation.ts": { + "lines": 18, + "tokens": 110, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/auth/wizards/templates.ts": { + "lines": 69, + "tokens": 510, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/auth/wizards/sso.ts": { + "lines": 114, + "tokens": 1119, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/auth/wizards/createProfile.ts": { + "lines": 106, + "tokens": 1024, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/auth/ui/statusBarItem.ts": { + "lines": 89, + "tokens": 917, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/auth/sso/validation.ts": { + "lines": 47, + "tokens": 422, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/auth/sso/ssoAccessTokenProvider.ts": { + "lines": 822, + "tokens": 5797, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/auth/sso/server.ts": { + "lines": 295, + "tokens": 2307, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/auth/sso/model.ts": { + "lines": 164, + "tokens": 996, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/auth/sso/constants.ts": { + "lines": 24, + "tokens": 61, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/auth/sso/clients.ts": { + "lines": 302, + "tokens": 2908, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/auth/sso/cache.ts": { + "lines": 159, + "tokens": 1486, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/auth/providers/tempCredentialsProvider.ts": { + "lines": 71, + "tokens": 422, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/auth/providers/ssoCredentialsProvider.ts": { + "lines": 63, + "tokens": 467, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/auth/providers/sharedCredentialsProviderFactory.ts": { + "lines": 54, + "tokens": 457, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/auth/providers/sharedCredentialsProvider.ts": { + "lines": 468, + "tokens": 3827, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/auth/providers/envVarsCredentialsProvider.ts": { + "lines": 63, + "tokens": 433, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/auth/providers/ecsCredentialsProvider.ts": { + "lines": 85, + "tokens": 643, + "sources": 1, + "clones": 1, + "duplicatedLines": 11, + "duplicatedTokens": 87, + "percentage": 12.94, + "percentageTokens": 13.53, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/auth/providers/ec2CredentialsProvider.ts": { + "lines": 92, + "tokens": 725, + "sources": 1, + "clones": 1, + "duplicatedLines": 11, + "duplicatedTokens": 87, + "percentage": 11.96, + "percentageTokens": 12, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/auth/providers/credentialsProviderManager.ts": { + "lines": 130, + "tokens": 1082, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/auth/providers/credentialsProviderFactory.ts": { + "lines": 60, + "tokens": 409, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/auth/providers/credentials.ts": { + "lines": 126, + "tokens": 571, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/auth/deprecated/loginManager.ts": { + "lines": 373, + "tokens": 2896, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/auth/credentials/validation.ts": { + "lines": 134, + "tokens": 854, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/auth/credentials/utils.ts": { + "lines": 130, + "tokens": 959, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/auth/credentials/types.ts": { + "lines": 47, + "tokens": 253, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/auth/credentials/store.ts": { + "lines": 117, + "tokens": 786, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/auth/credentials/sharedCredentialsFile.ts": { + "lines": 51, + "tokens": 301, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/auth/credentials/sharedCredentials.ts": { + "lines": 274, + "tokens": 2659, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/applicationcomposer/messageHandlers/saveFileMessageHandler.ts": { + "lines": 43, + "tokens": 387, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/applicationcomposer/messageHandlers/openFeedbackMessageHandler.ts": { + "lines": 10, + "tokens": 49, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/applicationcomposer/messageHandlers/notifyUser.ts": { + "lines": 12, + "tokens": 58, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/applicationcomposer/messageHandlers/logMessageHandler.ts": { + "lines": 21, + "tokens": 124, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/applicationcomposer/messageHandlers/loadFileMessageHandler.ts": { + "lines": 58, + "tokens": 491, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/applicationcomposer/messageHandlers/initMessageHandler.ts": { + "lines": 28, + "tokens": 219, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/applicationcomposer/messageHandlers/generateResourceHandler.ts": { + "lines": 76, + "tokens": 629, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/applicationcomposer/messageHandlers/emitTelemetryMessageHandler.ts": { + "lines": 170, + "tokens": 1158, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/applicationcomposer/messageHandlers/deployMessageHandler.ts": { + "lines": 35, + "tokens": 285, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/applicationcomposer/messageHandlers/addFileWatchMessageHandler.ts": { + "lines": 59, + "tokens": 461, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/applicationcomposer/commands/openTemplateInComposer.ts": { + "lines": 47, + "tokens": 421, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/applicationcomposer/commands/openInComposerDialog.ts": { + "lines": 24, + "tokens": 179, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonqGumby/telemetry/codeTransformTelemetryState.ts": { + "lines": 57, + "tokens": 466, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonqGumby/telemetry/codeTransformTelemetry.ts": { + "lines": 42, + "tokens": 246, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonqGumby/telemetry/codeTransformMetadata.ts": { + "lines": 48, + "tokens": 300, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonqGumby/models/dependencies.ts": { + "lines": 28, + "tokens": 205, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonqGumby/models/constants.ts": { + "lines": 11, + "tokens": 37, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonq/webview/webView.ts": { + "lines": 78, + "tokens": 580, + "sources": 1, + "clones": 1, + "duplicatedLines": 11, + "duplicatedTokens": 97, + "percentage": 14.1, + "percentageTokens": 16.72, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonq/util/upload.ts": { + "lines": 45, + "tokens": 358, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonq/util/telemetryHelper.ts": { + "lines": 96, + "tokens": 714, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonq/util/functionUtils.ts": { + "lines": 23, + "tokens": 64, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonq/util/eventRecorder.ts": { + "lines": 34, + "tokens": 98, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonq/util/authUtils.ts": { + "lines": 39, + "tokens": 237, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonq/onboardingPage/walkthrough.ts": { + "lines": 75, + "tokens": 541, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonq/messages/messagePublisher.ts": { + "lines": 58, + "tokens": 294, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonq/messages/messageListener.ts": { + "lines": 13, + "tokens": 84, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonq/messages/chatMessageDuration.ts": { + "lines": 129, + "tokens": 1023, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonq/explorer/amazonQTreeNode.ts": { + "lines": 85, + "tokens": 614, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonq/explorer/amazonQChildrenNodes.ts": { + "lines": 65, + "tokens": 595, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonq/commons/types.ts": { + "lines": 134, + "tokens": 857, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonq/commons/model.ts": { + "lines": 24, + "tokens": 135, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonq/commons/diff.ts": { + "lines": 67, + "tokens": 804, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonq/commons/baseChatStorage.ts": { + "lines": 41, + "tokens": 291, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonq/client/client.ts": { + "lines": 32, + "tokens": 224, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonq/auth/model.ts": { + "lines": 28, + "tokens": 155, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonq/auth/controller.ts": { + "lines": 38, + "tokens": 263, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonq/apps/initContext.ts": { + "lines": 46, + "tokens": 394, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/web/shared/fs.test.ts": { + "lines": 20, + "tokens": 163, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/web/shared/crypto.test.ts": { + "lines": 27, + "tokens": 202, + "sources": 1, + "clones": 1, + "duplicatedLines": 19, + "duplicatedTokens": 177, + "percentage": 70.37, + "percentageTokens": 87.62, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/unit/amazonqGumby/transformationResultsHandler.test.ts": { + "lines": 65, + "tokens": 485, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/unit/amazonqGumby/transformFileHandler.test.ts": { + "lines": 56, + "tokens": 160, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/unit/amazonqGumby/transformApiHandler.test.ts": { + "lines": 149, + "tokens": 1054, + "sources": 1, + "clones": 3, + "duplicatedLines": 41, + "duplicatedTokens": 304, + "percentage": 27.52, + "percentageTokens": 28.84, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/unit/amazonqGumby/humanInTheLoopManager.test.ts": { + "lines": 63, + "tokens": 465, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/unit/amazonqGumby/amazonQGumbyUtil.ts": { + "lines": 10, + "tokens": 71, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/e2e/lsp/lspInstallerUtil.ts": { + "lines": 306, + "tokens": 2126, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/e2e/lsp/amazonqLsp.test.ts": { + "lines": 30, + "tokens": 212, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/e2e/inline/inline.test.ts": { + "lines": 184, + "tokens": 1504, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/e2e/amazonq/welcome.test.ts": { + "lines": 102, + "tokens": 835, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/e2e/amazonq/transformByQ.test.ts": { + "lines": 406, + "tokens": 3203, + "sources": 1, + "clones": 2, + "duplicatedLines": 60, + "duplicatedTokens": 470, + "percentage": 14.78, + "percentageTokens": 14.67, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/e2e/amazonq/template.test.ts": { + "lines": 5, + "tokens": 3, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/e2e/amazonq/review.test.ts": { + "lines": 610, + "tokens": 5175, + "sources": 1, + "clones": 6, + "duplicatedLines": 94, + "duplicatedTokens": 744, + "percentage": 15.41, + "percentageTokens": 14.38, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/e2e/amazonq/chat.test.ts": { + "lines": 85, + "tokens": 492, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/e2e/amazonq/assert.ts": { + "lines": 40, + "tokens": 315, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/lsp/chat/webviewProvider.ts": { + "lines": 185, + "tokens": 1141, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/lsp/chat/messages.ts": { + "lines": 840, + "tokens": 6528, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/lsp/chat/error.ts": { + "lines": 22, + "tokens": 153, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/lsp/chat/commands.ts": { + "lines": 191, + "tokens": 1518, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/lsp/chat/activation.ts": { + "lines": 103, + "tokens": 768, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/inlineChat/provider/inlineChatProvider.ts": { + "lines": 248, + "tokens": 2026, + "sources": 1, + "clones": 1, + "duplicatedLines": 17, + "duplicatedTokens": 106, + "percentage": 6.85, + "percentageTokens": 5.23, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/inlineChat/output/responseTransformer.ts": { + "lines": 54, + "tokens": 319, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/inlineChat/output/computeDiff.ts": { + "lines": 114, + "tokens": 1056, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/inlineChat/decorations/inlineDecorator.ts": { + "lines": 37, + "tokens": 281, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/inlineChat/decorations/computeDecorations.ts": { + "lines": 31, + "tokens": 306, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/inlineChat/controller/inlineTask.ts": { + "lines": 159, + "tokens": 1286, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/inlineChat/controller/inlineChatController.ts": { + "lines": 465, + "tokens": 4246, + "sources": 1, + "clones": 6, + "duplicatedLines": 80, + "duplicatedTokens": 712, + "percentage": 17.2, + "percentageTokens": 16.77, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/inlineChat/command/registerInlineCommands.ts": { + "lines": 21, + "tokens": 183, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/inlineChat/codeLenses/codeLenseProvider.ts": { + "lines": 75, + "tokens": 643, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/app/inline/webViewPanel.ts": { + "lines": 449, + "tokens": 2807, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/app/inline/telemetryHelper.ts": { + "lines": 161, + "tokens": 1195, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/app/inline/sessionManager.ts": { + "lines": 182, + "tokens": 1303, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/app/inline/recommendationService.ts": { + "lines": 271, + "tokens": 1954, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/app/inline/editSuggestionState.ts": { + "lines": 18, + "tokens": 76, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/app/inline/documentEventListener.ts": { + "lines": 68, + "tokens": 635, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/app/inline/cursorUpdateManager.ts": { + "lines": 210, + "tokens": 1323, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/app/inline/completion.ts": { + "lines": 547, + "tokens": 4192, + "sources": 1, + "clones": 2, + "duplicatedLines": 26, + "duplicatedTokens": 200, + "percentage": 4.75, + "percentageTokens": 4.77, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/app/inline/activation.ts": { + "lines": 70, + "tokens": 351, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/app/chat/activation.ts": { + "lines": 74, + "tokens": 505, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/app/amazonqScan/app.ts": { + "lines": 93, + "tokens": 880, + "sources": 1, + "clones": 1, + "duplicatedLines": 25, + "duplicatedTokens": 203, + "percentage": 26.88, + "percentageTokens": 23.07, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/toolkit/test/unit/index.ts": { + "lines": 12, + "tokens": 81, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/toolkit/test/integ/index.ts": { + "lines": 14, + "tokens": 82, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/toolkit/test/e2e/index.ts": { + "lines": 14, + "tokens": 82, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/webviews/util.ts": { + "lines": 51, + "tokens": 258, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/webviews/types.ts": { + "lines": 12, + "tokens": 58, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/webviews/server.ts": { + "lines": 117, + "tokens": 910, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/webviews/main.ts": { + "lines": 565, + "tokens": 3591, + "sources": 1, + "clones": 2, + "duplicatedLines": 24, + "duplicatedTokens": 260, + "percentage": 4.25, + "percentageTokens": 7.24, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/webviews/client.ts": { + "lines": 211, + "tokens": 1791, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/threatComposer/types.ts": { + "lines": 143, + "tokens": 891, + "sources": 1, + "clones": 1, + "duplicatedLines": 18, + "duplicatedTokens": 116, + "percentage": 12.59, + "percentageTokens": 13.02, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/threatComposer/threatComposerEditorProvider.ts": { + "lines": 185, + "tokens": 1442, + "sources": 1, + "clones": 2, + "duplicatedLines": 25, + "duplicatedTokens": 210, + "percentage": 13.51, + "percentageTokens": 14.56, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/threatComposer/threatComposerEditor.ts": { + "lines": 232, + "tokens": 1602, + "sources": 1, + "clones": 2, + "duplicatedLines": 28, + "duplicatedTokens": 207, + "percentage": 12.07, + "percentageTokens": 12.92, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/threatComposer/handleMessage.ts": { + "lines": 58, + "tokens": 379, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/threatComposer/activation.ts": { + "lines": 19, + "tokens": 104, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/testLint/testUtils.ts": { + "lines": 23, + "tokens": 185, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/testLint/gitSecrets.test.ts": { + "lines": 131, + "tokens": 963, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/testLint/eslint.test.ts": { + "lines": 45, + "tokens": 211, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/testInteg/sam.test.ts": { + "lines": 645, + "tokens": 5398, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/testInteg/regionProvider.test.ts": { + "lines": 36, + "tokens": 251, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/testInteg/integrationTestsUtilities.ts": { + "lines": 101, + "tokens": 735, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/testInteg/globalSetup.test.ts": { + "lines": 102, + "tokens": 747, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/testInteg/codelens.js.test.ts": { + "lines": 104, + "tokens": 1010, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/web.test.ts": { + "lines": 12, + "tokens": 71, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/typescriptLambdaHandlerSearch.test.ts": { + "lines": 95, + "tokens": 749, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/testUtil.ts": { + "lines": 642, + "tokens": 4629, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/testRunner.ts": { + "lines": 159, + "tokens": 1200, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/testLogger.ts": { + "lines": 63, + "tokens": 590, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/testLogger.test.ts": { + "lines": 60, + "tokens": 580, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/techdebt.test.ts": { + "lines": 40, + "tokens": 277, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/setupUtil.ts": { + "lines": 276, + "tokens": 2309, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/mockOutputChannel.ts": { + "lines": 77, + "tokens": 552, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/index.ts": { + "lines": 25, + "tokens": 185, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/globalSetup.test.ts": { + "lines": 203, + "tokens": 1670, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/test/fakeExtensionContext.ts": { + "lines": 212, + "tokens": 1893, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/stepFunctions/utils.ts": { + "lines": 108, + "tokens": 779, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/stepFunctions/activation.ts": { + "lines": 146, + "tokens": 1238, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/ssmDocument/activation.ts": { + "lines": 73, + "tokens": 683, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/virtualMemoryFile.ts": { + "lines": 28, + "tokens": 232, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/virtualFilesystem.ts": { + "lines": 116, + "tokens": 986, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/typescriptLambdaHandlerSearch.ts": { + "lines": 325, + "tokens": 2175, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/sshConfig.ts": { + "lines": 255, + "tokens": 2165, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/settings.ts": { + "lines": 972, + "tokens": 6877, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/schemas.ts": { + "lines": 515, + "tokens": 4056, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/request.ts": { + "lines": 137, + "tokens": 878, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/remoteSession.ts": { + "lines": 277, + "tokens": 2195, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/multiStepInputFlowController.ts": { + "lines": 214, + "tokens": 1871, + "sources": 1, + "clones": 2, + "duplicatedLines": 44, + "duplicatedTokens": 332, + "percentage": 20.56, + "percentageTokens": 17.74, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/markdown.ts": { + "lines": 21, + "tokens": 154, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/localizedText.ts": { + "lines": 51, + "tokens": 535, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/lambdaHandlerSearch.ts": { + "lines": 29, + "tokens": 130, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/indexNode.ts": { + "lines": 12, + "tokens": 28, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/index.ts": { + "lines": 82, + "tokens": 806, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/icons.ts": { + "lines": 125, + "tokens": 992, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/i18n-helper.ts": { + "lines": 16, + "tokens": 110, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/handleUninstall.ts": { + "lines": 144, + "tokens": 1034, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/globalStorage.ts": { + "lines": 21, + "tokens": 101, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/globalState.ts": { + "lines": 275, + "tokens": 1745, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/filetypes.ts": { + "lines": 377, + "tokens": 2164, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/filesystemUtilities.ts": { + "lines": 370, + "tokens": 3393, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/featureConfig.ts": { + "lines": 298, + "tokens": 2219, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/extensions.ts": { + "lines": 48, + "tokens": 287, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/extensionUtilities.ts": { + "lines": 540, + "tokens": 3751, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/extensionStartup.ts": { + "lines": 42, + "tokens": 374, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/extensionGlobals.ts": { + "lines": 229, + "tokens": 1363, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/environmentVariables.ts": { + "lines": 30, + "tokens": 160, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/datetime.ts": { + "lines": 177, + "tokens": 1584, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/date.ts": { + "lines": 22, + "tokens": 208, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/crypto.ts": { + "lines": 66, + "tokens": 328, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/crashMonitoring.ts": { + "lines": 712, + "tokens": 5161, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/constants.ts": { + "lines": 206, + "tokens": 1213, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/awsContextCommands.ts": { + "lines": 210, + "tokens": 1630, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/awsContext.ts": { + "lines": 115, + "tokens": 779, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/awsConsole.ts": { + "lines": 49, + "tokens": 447, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/awsClientBuilderV3.ts": { + "lines": 299, + "tokens": 2823, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/awsClientBuilder.ts": { + "lines": 180, + "tokens": 1334, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/shared/activationReloadState.ts": { + "lines": 45, + "tokens": 403, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/notifications/types.ts": { + "lines": 185, + "tokens": 1259, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/notifications/rules.ts": { + "lines": 207, + "tokens": 1579, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/notifications/panelNode.ts": { + "lines": 320, + "tokens": 2491, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/notifications/controller.ts": { + "lines": 385, + "tokens": 2882, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/notifications/activation.ts": { + "lines": 52, + "tokens": 365, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/lambda/utils.ts": { + "lines": 208, + "tokens": 1747, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/lambda/uriHandlers.ts": { + "lines": 57, + "tokens": 438, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/lambda/constants.ts": { + "lines": 8, + "tokens": 66, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/lambda/activation.ts": { + "lines": 268, + "tokens": 2365, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/eventSchemas/utils.ts": { + "lines": 53, + "tokens": 355, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/eventSchemas/activation.ts": { + "lines": 37, + "tokens": 305, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/dynamicResources/awsResourceManager.ts": { + "lines": 238, + "tokens": 2343, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/dynamicResources/activation.ts": { + "lines": 130, + "tokens": 1225, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/docdb/utils.ts": { + "lines": 153, + "tokens": 914, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/docdb/activation.ts": { + "lines": 124, + "tokens": 1006, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/dev/config.ts": { + "lines": 11, + "tokens": 32, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/dev/codecatalyst.ts": { + "lines": 279, + "tokens": 2879, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/dev/beta.ts": { + "lines": 191, + "tokens": 1736, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/dev/activation.ts": { + "lines": 584, + "tokens": 4941, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhispererChat/index.ts": { + "lines": 16, + "tokens": 160, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhispererChat/constants.ts": { + "lines": 41, + "tokens": 253, + "sources": 1, + "clones": 1, + "duplicatedLines": 17, + "duplicatedTokens": 106, + "percentage": 41.46, + "percentageTokens": 41.9, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhispererChat/app.ts": { + "lines": 239, + "tokens": 1849, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/indexNode.ts": { + "lines": 21, + "tokens": 81, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/index.ts": { + "lines": 88, + "tokens": 691, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codewhisperer/activation.ts": { + "lines": 502, + "tokens": 3604, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codecatalyst/utils.ts": { + "lines": 59, + "tokens": 569, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codecatalyst/uriHandlers.ts": { + "lines": 78, + "tokens": 698, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codecatalyst/reconnect.ts": { + "lines": 295, + "tokens": 2525, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codecatalyst/model.ts": { + "lines": 308, + "tokens": 2600, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codecatalyst/explorer.ts": { + "lines": 227, + "tokens": 1790, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codecatalyst/devfile.ts": { + "lines": 127, + "tokens": 1076, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codecatalyst/devEnv.ts": { + "lines": 285, + "tokens": 1978, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codecatalyst/commands.ts": { + "lines": 370, + "tokens": 3126, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codecatalyst/auth.ts": { + "lines": 429, + "tokens": 3615, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/codecatalyst/activation.ts": { + "lines": 178, + "tokens": 1592, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsexplorer/toolView.ts": { + "lines": 40, + "tokens": 274, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsexplorer/regionNode.ts": { + "lines": 181, + "tokens": 1637, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsexplorer/moreResultsNode.ts": { + "lines": 30, + "tokens": 191, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsexplorer/defaultRegion.ts": { + "lines": 21, + "tokens": 134, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsexplorer/childNodeLoader.ts": { + "lines": 102, + "tokens": 709, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsexplorer/childNodeCache.ts": { + "lines": 53, + "tokens": 248, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsexplorer/awsExplorer.ts": { + "lines": 144, + "tokens": 1363, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsexplorer/activationShared.ts": { + "lines": 31, + "tokens": 232, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/awsexplorer/activation.ts": { + "lines": 216, + "tokens": 2022, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/auth/utils.ts": { + "lines": 881, + "tokens": 7282, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/auth/secondaryAuth.ts": { + "lines": 431, + "tokens": 3526, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/auth/index.ts": { + "lines": 26, + "tokens": 133, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/auth/connection.ts": { + "lines": 530, + "tokens": 4482, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/auth/activation.ts": { + "lines": 43, + "tokens": 393, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/applicationcomposer/webviewManager.ts": { + "lines": 141, + "tokens": 1229, + "sources": 1, + "clones": 1, + "duplicatedLines": 12, + "duplicatedTokens": 98, + "percentage": 8.51, + "percentageTokens": 7.97, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/applicationcomposer/types.ts": { + "lines": 161, + "tokens": 923, + "sources": 1, + "clones": 1, + "duplicatedLines": 18, + "duplicatedTokens": 116, + "percentage": 11.18, + "percentageTokens": 12.57, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/applicationcomposer/handleMessage.ts": { + "lines": 67, + "tokens": 487, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/applicationcomposer/constants.ts": { + "lines": 9, + "tokens": 40, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/applicationcomposer/composerWebview.ts": { + "lines": 153, + "tokens": 1225, + "sources": 1, + "clones": 1, + "duplicatedLines": 20, + "duplicatedTokens": 168, + "percentage": 13.07, + "percentageTokens": 13.71, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/applicationcomposer/codeLensProvider.ts": { + "lines": 43, + "tokens": 377, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/applicationcomposer/activation.ts": { + "lines": 25, + "tokens": 182, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonqScan/index.ts": { + "lines": 8, + "tokens": 49, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonqScan/controller.ts": { + "lines": 33, + "tokens": 213, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonqScan/connector.ts": { + "lines": 20, + "tokens": 57, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonqGumby/index.ts": { + "lines": 12, + "tokens": 101, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonqGumby/errors.ts": { + "lines": 72, + "tokens": 398, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonqGumby/commands.ts": { + "lines": 13, + "tokens": 99, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonqGumby/app.ts": { + "lines": 77, + "tokens": 749, + "sources": 1, + "clones": 1, + "duplicatedLines": 25, + "duplicatedTokens": 203, + "percentage": 32.47, + "percentageTokens": 27.1, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonqGumby/activation.ts": { + "lines": 83, + "tokens": 649, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonq/indexNode.ts": { + "lines": 9, + "tokens": 35, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonq/index.ts": { + "lines": 65, + "tokens": 510, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonq/extApi.ts": { + "lines": 44, + "tokens": 277, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/amazonq/errors.ts": { + "lines": 20, + "tokens": 69, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/web/utils.test.ts": { + "lines": 13, + "tokens": 74, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/web/testRunner.ts": { + "lines": 65, + "tokens": 433, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/web/extension.test.ts": { + "lines": 12, + "tokens": 89, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/unit/validation.test.ts": { + "lines": 29, + "tokens": 134, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/unit/index.ts": { + "lines": 12, + "tokens": 78, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/test/e2e/index.ts": { + "lines": 12, + "tokens": 76, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/util/timeoutUtil.ts": { + "lines": 14, + "tokens": 147, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/util/clearCache.ts": { + "lines": 48, + "tokens": 278, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/lsp/utils.ts": { + "lines": 25, + "tokens": 149, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/lsp/lspInstaller.ts": { + "lines": 66, + "tokens": 558, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/lsp/encryption.ts": { + "lines": 33, + "tokens": 302, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/lsp/config.ts": { + "lines": 109, + "tokens": 830, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/lsp/client.ts": { + "lines": 538, + "tokens": 4023, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/lsp/auth.ts": { + "lines": 175, + "tokens": 1365, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/lsp/activation.ts": { + "lines": 29, + "tokens": 294, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/inlineChat/activation.ts": { + "lines": 18, + "tokens": 135, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/toolkit/src/extensionWeb.ts": { + "lines": 14, + "tokens": 87, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/toolkit/src/extensionNode.ts": { + "lines": 20, + "tokens": 133, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/toolkit/src/api.ts": { + "lines": 111, + "tokens": 778, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/types/vue-types.d.ts": { + "lines": 17, + "tokens": 85, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/types/jsonSchemaService.d.ts": { + "lines": 11, + "tokens": 61, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/types/gitignore-parser.d.ts": { + "lines": 10, + "tokens": 48, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/types/git.d.ts": { + "lines": 349, + "tokens": 2693, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/extensionWebShared.ts": { + "lines": 27, + "tokens": 127, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/extensionWeb.ts": { + "lines": 33, + "tokens": 233, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/extensionNode.ts": { + "lines": 371, + "tokens": 3119, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/extension.ts": { + "lines": 219, + "tokens": 1855, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/core/src/commands.ts": { + "lines": 191, + "tokens": 1689, + "sources": 1, + "clones": 1, + "duplicatedLines": 10, + "duplicatedTokens": 83, + "percentage": 5.24, + "percentageTokens": 4.91, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/extensionWeb.ts": { + "lines": 16, + "tokens": 102, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/extensionNode.ts": { + "lines": 184, + "tokens": 1333, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/extension.ts": { + "lines": 201, + "tokens": 1495, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/commands.ts": { + "lines": 18, + "tokens": 104, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + }, + "/Users/floralph/Source/aws-toolkit-vscode/packages/amazonq/src/api.ts": { + "lines": 32, + "tokens": 258, + "sources": 1, + "clones": 0, + "duplicatedLines": 0, + "duplicatedTokens": 0, + "percentage": 0, + "percentageTokens": 0, + "newDuplicatedLines": 0, + "newClones": 0 + } + }, + "total": { + "lines": 233152, + "tokens": 1878910, + "sources": 1483, + "clones": 310, + "duplicatedLines": 5637, + "duplicatedTokens": 45379, + "percentage": 2.42, + "percentageTokens": 2.42, + "newDuplicatedLines": 0, + "newClones": 0 + } + } + }, + "total": { + "lines": 233152, + "tokens": 1878910, + "sources": 1483, + "clones": 310, + "duplicatedLines": 5637, + "duplicatedTokens": 45379, + "percentage": 2.42, + "percentageTokens": 2.42, + "newDuplicatedLines": 0, + "newClones": 0 + } + }, + "duplicates": [ + { + "format": "typescript", + "lines": 11, + "fragment": ")\n\n const resources = await appNode.getChildren()\n assert.strictEqual(resources.length, 1)\n assert(isTreeNode(resources[0]))\n\n const resourceNode = resources[0] as TreeNode\n assert.strictEqual(resourceNode.id, 'placeholder')\n assert.strictEqual(\n resourceNode.resource,\n '[Unable to load resource tree for this app. Ensure SAM template is correct.]'", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/shared/applicationBuilder/explorer/nodes/appNode.test.ts", + "start": 150, + "end": 160, + "startLoc": { + "line": 150, + "column": 2, + "position": 1188 + }, + "endLoc": { + "line": 160, + "column": 79, + "position": 1274 + } + }, + "secondFile": { + "name": "packages/core/src/test/shared/applicationBuilder/explorer/nodes/appNode.test.ts", + "start": 85, + "end": 93, + "startLoc": { + "line": 85, + "column": 2, + "position": 673 + }, + "endLoc": { + "line": 93, + "column": 38, + "position": 756 + } + } + }, + { + "format": "typescript", + "lines": 11, + "fragment": ", () => {\n let req: Partial\n let res: Partial\n let resWriteHead: sinon.SinonSpy\n let resEnd: sinon.SinonSpy\n let storeStub: sinon.SinonStubbedInstance\n\n beforeEach(() => {\n resWriteHead = sinon.spy()\n resEnd = sinon.spy()\n res = { writeHead: resWriteHead, end: resEnd }", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/awsService/sagemaker/detached-server/routes/getSessionAsync.test.ts", + "start": 13, + "end": 23, + "startLoc": { + "line": 13, + "column": 24, + "position": 75 + }, + "endLoc": { + "line": 23, + "column": 2, + "position": 194 + } + }, + "secondFile": { + "name": "packages/core/src/test/awsService/sagemaker/detached-server/routes/refreshToken.test.ts", + "start": 12, + "end": 25, + "startLoc": { + "line": 12, + "column": 21, + "position": 63 + }, + "endLoc": { + "line": 25, + "column": 2, + "position": 184 + } + } + }, + { + "format": "typescript", + "lines": 20, + "fragment": ",\n },\n end: {\n line: 1,\n character: 10,\n },\n }\n const limit = 5\n\n // Act\n const focusAreaContextExtractor = new FocusAreaContextExtractor()\n const method = Reflect.get(focusAreaContextExtractor, 'trimRangeAccordingToLimits')\n const result = method.call(focusAreaContextExtractor, document, range, limit)\n\n // Assert\n checkIfExpectedRangeEqualActualRange(\n {\n start: {\n line: 0,\n character: 0", + "tokens": 0, + "firstFile": { + "name": "packages/amazonq/test/unit/codewhispererChat/editor/context/focusArea/focusAreaExtractor.test.ts", + "start": 217, + "end": 236, + "startLoc": { + "line": 217, + "column": 2, + "position": 1424 + }, + "endLoc": { + "line": 236, + "column": 2, + "position": 1551 + } + }, + "secondFile": { + "name": "packages/amazonq/test/unit/codewhispererChat/editor/context/focusArea/focusAreaExtractor.test.ts", + "start": 146, + "end": 165, + "startLoc": { + "line": 146, + "column": 2, + "position": 963 + }, + "endLoc": { + "line": 165, + "column": 2, + "position": 1090 + } + } + }, + { + "format": "typescript", + "lines": 14, + "fragment": "// Act\n const focusAreaContextExtractor = new FocusAreaContextExtractor()\n const method = Reflect.get(focusAreaContextExtractor, 'trimRangeAccordingToLimits')\n const result = method.call(focusAreaContextExtractor, document, range, limit)\n\n // Assert\n checkIfExpectedRangeEqualActualRange(\n {\n start: {\n line: 0,\n character: 0,\n },\n end: {\n line: 0", + "tokens": 0, + "firstFile": { + "name": "packages/amazonq/test/unit/codewhispererChat/editor/context/focusArea/focusAreaExtractor.test.ts", + "start": 226, + "end": 239, + "startLoc": { + "line": 226, + "column": 9, + "position": 1468 + }, + "endLoc": { + "line": 239, + "column": 2, + "position": 1568 + } + }, + "secondFile": { + "name": "packages/amazonq/test/unit/codewhispererChat/editor/context/focusArea/focusAreaExtractor.test.ts", + "start": 190, + "end": 203, + "startLoc": { + "line": 190, + "column": 9, + "position": 1237 + }, + "endLoc": { + "line": 203, + "column": 2, + "position": 1337 + } + } + }, + { + "format": "typescript", + "lines": 27, + "fragment": ")\n const range = {\n start: {\n line: 1,\n character: 0,\n },\n end: {\n line: 1,\n character: 9,\n },\n }\n const limit = 50\n\n // Act\n const focusAreaContextExtractor = new FocusAreaContextExtractor()\n const method = Reflect.get(focusAreaContextExtractor, 'getExtendedCodeBlockRange')\n const result = method.call(focusAreaContextExtractor, document, range, limit)\n\n // Assert\n checkIfExpectedRangeEqualActualRange(\n {\n start: {\n line: 0,\n character: 0,\n },\n end: {\n line: 2", + "tokens": 0, + "firstFile": { + "name": "packages/amazonq/test/unit/codewhispererChat/editor/context/focusArea/focusAreaExtractor.test.ts", + "start": 323, + "end": 349, + "startLoc": { + "line": 323, + "column": 25, + "position": 2103 + }, + "endLoc": { + "line": 349, + "column": 2, + "position": 2276 + } + }, + "secondFile": { + "name": "packages/amazonq/test/unit/codewhispererChat/editor/context/focusArea/focusAreaExtractor.test.ts", + "start": 287, + "end": 313, + "startLoc": { + "line": 287, + "column": 23, + "position": 1872 + }, + "endLoc": { + "line": 313, + "column": 2, + "position": 2045 + } + } + }, + { + "format": "typescript", + "lines": 19, + "fragment": "= method.call(focusAreaContextExtractor, document, range, limit)\n\n // Assert\n checkIfExpectedRangeEqualActualRange(\n {\n start: {\n line: 0,\n character: 0,\n },\n end: {\n line: 2,\n character: 0,\n },\n },\n result\n )\n })\n\n it('extends range to whole line if length is below limit and we have only one line in file'", + "tokens": 0, + "firstFile": { + "name": "packages/amazonq/test/unit/codewhispererChat/editor/context/focusArea/focusAreaExtractor.test.ts", + "start": 375, + "end": 393, + "startLoc": { + "line": 375, + "column": 2, + "position": 2447 + }, + "endLoc": { + "line": 393, + "column": 89, + "position": 2542 + } + }, + "secondFile": { + "name": "packages/amazonq/test/unit/codewhispererChat/editor/context/focusArea/focusAreaExtractor.test.ts", + "start": 339, + "end": 357, + "startLoc": { + "line": 339, + "column": 2, + "position": 2213 + }, + "endLoc": { + "line": 357, + "column": 54, + "position": 2308 + } + } + }, + { + "format": "typescript", + "lines": 20, + "fragment": ",\n },\n }\n const limit = 50\n\n // Act\n const focusAreaContextExtractor = new FocusAreaContextExtractor()\n const method = Reflect.get(focusAreaContextExtractor, 'getExtendedCodeBlockRange')\n const result = method.call(focusAreaContextExtractor, document, range, limit)\n\n // Assert\n checkIfExpectedRangeEqualActualRange(\n {\n start: {\n line: 0,\n character: 0,\n },\n end: {\n line: 1,\n character: 0", + "tokens": 0, + "firstFile": { + "name": "packages/amazonq/test/unit/codewhispererChat/editor/context/focusArea/focusAreaExtractor.test.ts", + "start": 403, + "end": 422, + "startLoc": { + "line": 403, + "column": 2, + "position": 2621 + }, + "endLoc": { + "line": 422, + "column": 2, + "position": 2748 + } + }, + "secondFile": { + "name": "packages/amazonq/test/unit/codewhispererChat/editor/context/focusArea/focusAreaExtractor.test.ts", + "start": 295, + "end": 314, + "startLoc": { + "line": 295, + "column": 2, + "position": 1925 + }, + "endLoc": { + "line": 314, + "column": 3, + "position": 2052 + } + } + }, + { + "format": "typescript", + "lines": 20, + "fragment": ")\n const result = method.call(focusAreaContextExtractor, document, range, limit)\n\n // Assert\n checkIfExpectedRangeEqualActualRange(\n {\n start: {\n line: 0,\n character: 0,\n },\n end: {\n line: 1,\n character: 0,\n },\n },\n result\n )\n })\n\n it('extends range to one line from each side if length is below limit'", + "tokens": 0, + "firstFile": { + "name": "packages/amazonq/test/unit/codewhispererChat/editor/context/focusArea/focusAreaExtractor.test.ts", + "start": 410, + "end": 429, + "startLoc": { + "line": 410, + "column": 28, + "position": 2671 + }, + "endLoc": { + "line": 429, + "column": 68, + "position": 2773 + } + }, + "secondFile": { + "name": "packages/amazonq/test/unit/codewhispererChat/editor/context/focusArea/focusAreaExtractor.test.ts", + "start": 192, + "end": 211, + "startLoc": { + "line": 192, + "column": 29, + "position": 1267 + }, + "endLoc": { + "line": 211, + "column": 37, + "position": 1369 + } + } + }, + { + "format": "typescript", + "lines": 14, + "fragment": "// Act\n const focusAreaContextExtractor = new FocusAreaContextExtractor()\n const method = Reflect.get(focusAreaContextExtractor, 'getExtendedCodeBlockRange')\n const result = method.call(focusAreaContextExtractor, document, range, limit)\n\n // Assert\n checkIfExpectedRangeEqualActualRange(\n {\n start: {\n line: 1,\n character: 0,\n },\n end: {\n line: 3", + "tokens": 0, + "firstFile": { + "name": "packages/amazonq/test/unit/codewhispererChat/editor/context/focusArea/focusAreaExtractor.test.ts", + "start": 444, + "end": 457, + "startLoc": { + "line": 444, + "column": 9, + "position": 2872 + }, + "endLoc": { + "line": 457, + "column": 2, + "position": 2972 + } + }, + "secondFile": { + "name": "packages/amazonq/test/unit/codewhispererChat/editor/context/focusArea/focusAreaExtractor.test.ts", + "start": 264, + "end": 277, + "startLoc": { + "line": 264, + "column": 9, + "position": 1714 + }, + "endLoc": { + "line": 277, + "column": 2, + "position": 1814 + } + } + }, + { + "format": "typescript", + "lines": 23, + "fragment": "))\n sandbox.stub(SamUtilsModule, 'getRecentResponse').returns(undefined)\n const createCommonButtonsStub = sandbox.stub(ButtonsModule, 'createCommonButtons')\n sandbox\n .stub(AwsConsoleModule, 'getAwsConsoleUrl')\n .returns(vscode.Uri.parse(`https://us-east-1.console.aws.amazon.com/cloudformation/home?region=us-east-1`))\n\n // Act\n const prompter = createStackPrompter(cfnClient, mementoRootKey, samSyncUrl)\n await sleep(50)\n\n // Assert\n assert.ok(createCommonButtonsStub.calledOnce)\n assert.ok(\n createCommonButtonsStub.calledWithExactly(\n samSyncUrl,\n vscode.Uri.parse(`https://us-east-1.console.aws.amazon.com/cloudformation/home?region=us-east-1`)\n )\n )\n assert.ok(listAllStacksStub.calledOnce)\n assert.strictEqual(prompter.quickPick.title, 'Select a CloudFormation Stack')\n assert.strictEqual(prompter.quickPick.placeholder, 'Select a stack (or enter a name to create one)')\n assert.strictEqual(prompter.quickPick.items.length, 1", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/shared/ui/sam/stackPrompter.test.ts", + "start": 102, + "end": 124, + "startLoc": { + "line": 102, + "column": 2, + "position": 791 + }, + "endLoc": { + "line": 124, + "column": 2, + "position": 984 + } + }, + "secondFile": { + "name": "packages/core/src/test/shared/ui/sam/stackPrompter.test.ts", + "start": 75, + "end": 97, + "startLoc": { + "line": 75, + "column": 15, + "position": 537 + }, + "endLoc": { + "line": 97, + "column": 2, + "position": 730 + } + } + }, + { + "format": "typescript", + "lines": 13, + "fragment": ", () => {\n it('should return a prompter with the correct items with no valid samconfig', () => {\n const expectedItems: DataQuickPickItem[] = [\n {\n label: 'Specify required parameters and save as defaults',\n data: ParamsSource.SpecifyAndSave,\n },\n {\n label: 'Specify required parameters',\n data: ParamsSource.Specify,\n },\n ]\n const prompter = createDeployParamsSourcePrompter", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/shared/ui/sam/paramsSourcePrompter.test.ts", + "start": 58, + "end": 70, + "startLoc": { + "line": 58, + "column": 35, + "position": 409 + }, + "endLoc": { + "line": 70, + "column": 33, + "position": 504 + } + }, + "secondFile": { + "name": "packages/core/src/test/shared/ui/sam/paramsSourcePrompter.test.ts", + "start": 14, + "end": 26, + "startLoc": { + "line": 14, + "column": 33, + "position": 49 + }, + "endLoc": { + "line": 26, + "column": 31, + "position": 144 + } + } + }, + { + "format": "typescript", + "lines": 22, + "fragment": ")\n assert.strictEqual(quickPick.placeholder, 'Press enter to proceed with highlighted option')\n assert.strictEqual(quickPick.items.length, 2)\n assert.deepStrictEqual(quickPick.items, expectedItems)\n })\n\n it('should return a prompter with the correct items with valid samconfig', () => {\n const expectedItems: DataQuickPickItem[] = [\n {\n label: 'Specify required parameters and save as defaults',\n data: ParamsSource.SpecifyAndSave,\n },\n {\n label: 'Specify required parameters',\n data: ParamsSource.Specify,\n },\n {\n label: 'Use default values from samconfig',\n data: ParamsSource.SamConfig,\n },\n ]\n const prompter = createDeployParamsSourcePrompter", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/shared/ui/sam/paramsSourcePrompter.test.ts", + "start": 72, + "end": 93, + "startLoc": { + "line": 72, + "column": 38, + "position": 531 + }, + "endLoc": { + "line": 93, + "column": 33, + "position": 688 + } + }, + "secondFile": { + "name": "packages/core/src/test/shared/ui/sam/paramsSourcePrompter.test.ts", + "start": 28, + "end": 49, + "startLoc": { + "line": 28, + "column": 36, + "position": 171 + }, + "endLoc": { + "line": 49, + "column": 31, + "position": 328 + } + } + }, + { + "format": "typescript", + "lines": 20, + "fragment": ").returns(intoCollection([]))\n sandbox.stub(SamUtilsModule, 'getRecentResponse').returns(undefined)\n const createCommonButtonsStub = sandbox.stub(ButtonsModule, 'createCommonButtons')\n sandbox\n .stub(AwsConsoleModule, 'getAwsConsoleUrl')\n .returns(vscode.Uri.parse(`https://us-east-1.console.aws.amazon.com/cloudformation/home?region=us-east-1`))\n\n // Act\n const prompter = createEcrPrompter(ecrClient, mementoRootKey)\n await sleep(50)\n\n // Assert\n assert.ok(createCommonButtonsStub.calledOnce)\n assert.ok(\n createCommonButtonsStub.calledWithExactly(\n samSyncUrl,\n vscode.Uri.parse(`https://us-east-1.console.aws.amazon.com/cloudformation/home?region=us-east-1`)\n )\n )\n assert.ok(listAllStacksStub", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/shared/ui/sam/ecrPrompter.test.ts", + "start": 98, + "end": 117, + "startLoc": { + "line": 98, + "column": 22, + "position": 746 + }, + "endLoc": { + "line": 117, + "column": 18, + "position": 895 + } + }, + "secondFile": { + "name": "packages/core/src/test/shared/ui/sam/stackPrompter.test.ts", + "start": 102, + "end": 90, + "startLoc": { + "line": 102, + "column": 16, + "position": 783 + }, + "endLoc": { + "line": 90, + "column": 24, + "position": 644 + } + } + }, + { + "format": "typescript", + "lines": 13, + "fragment": ")\n await sleep(50)\n\n // Assert\n assert.ok(createCommonButtonsStub.calledOnce)\n assert.ok(\n createCommonButtonsStub.calledWithExactly(\n samSyncUrl,\n vscode.Uri.parse(`https://us-east-1.console.aws.amazon.com/cloudformation/home?region=us-east-1`)\n )\n )\n assert.ok(listAllStacksStub.calledOnce)\n assert.strictEqual(prompter.quickPick.title, 'Select an ECR Repository'", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/shared/ui/sam/ecrPrompter.test.ts", + "start": 106, + "end": 118, + "startLoc": { + "line": 106, + "column": 15, + "position": 834 + }, + "endLoc": { + "line": 118, + "column": 27, + "position": 912 + } + }, + "secondFile": { + "name": "packages/core/src/test/shared/ui/sam/stackPrompter.test.ts", + "start": 83, + "end": 95, + "startLoc": { + "line": 83, + "column": 11, + "position": 620 + }, + "endLoc": { + "line": 95, + "column": 32, + "position": 698 + } + } + }, + { + "format": "typescript", + "lines": 11, + "fragment": "))\n sinon\n .stub(vscode.workspace, 'getConfiguration')\n .returns(getConfigTrue as unknown as vscode.WorkspaceConfiguration)\n\n const childNodes = await testNode.getChildren()\n assert.strictEqual(childNodes.length, 1, 'Unexpected child count')\n assert.strictEqual(childNodes[0].label, 'name2 (Stopped)', 'Unexpected node label')\n })\n\n it('filters spaces owned by user profiles that match the Identity Center user'", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/awsService/sagemaker/explorer/sagemakerParentNode.test.ts", + "start": 171, + "end": 181, + "startLoc": { + "line": 171, + "column": 16, + "position": 1444 + }, + "endLoc": { + "line": 181, + "column": 76, + "position": 1538 + } + }, + "secondFile": { + "name": "packages/core/src/test/awsService/sagemaker/explorer/sagemakerParentNode.test.ts", + "start": 159, + "end": 169, + "startLoc": { + "line": 159, + "column": 8, + "position": 1310 + }, + "endLoc": { + "line": 169, + "column": 85, + "position": 1404 + } + } + }, + { + "format": "typescript", + "lines": 15, + "fragment": ", function () {\n let originalState: Map\n\n beforeEach(async function () {\n testNode = new SagemakerParentNode(testRegion, client)\n originalState = new Map(\n globals.globalState.get(SagemakerConstants.SelectedDomainUsersState, [])\n )\n })\n\n afterEach(async function () {\n await globals.globalState.update(SagemakerConstants.SelectedDomainUsersState, [...originalState])\n })\n\n it('saves selectedDomainUsers for a given region'", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/awsService/sagemaker/explorer/sagemakerParentNode.test.ts", + "start": 241, + "end": 255, + "startLoc": { + "line": 241, + "column": 26, + "position": 2075 + }, + "endLoc": { + "line": 255, + "column": 47, + "position": 2203 + } + }, + "secondFile": { + "name": "packages/core/src/test/awsService/sagemaker/explorer/sagemakerParentNode.test.ts", + "start": 193, + "end": 207, + "startLoc": { + "line": 193, + "column": 25, + "position": 1673 + }, + "endLoc": { + "line": 207, + "column": 53, + "position": 1801 + } + } + }, + { + "format": "typescript", + "lines": 14, + "fragment": "} should be a Folder Node`)\n assert.deepStrictEqual((node as S3FolderNode).bucket, bucket)\n assert.deepStrictEqual((node as S3FolderNode).folder, expectedFolder)\n }\n\n function assertFileNode(node: AWSTreeNodeBase, expectedFile: File): void {\n assert.ok(node instanceof S3FileNode, `Node ${node} should be a File Node`)\n assert.deepStrictEqual((node as S3FileNode).bucket, bucket)\n assert.deepStrictEqual((node as S3FileNode).file, expectedFile)\n }\n\n function assertMoreResultsNode(node: AWSTreeNodeBase): void {\n assert.ok(node instanceof MoreResultsNode, `Node ${node} should be a More Results Node`)\n assertBucketNode", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/awsService/s3/explorer/s3BucketNode.test.ts", + "start": 34, + "end": 47, + "startLoc": { + "line": 34, + "column": 5, + "position": 384 + }, + "endLoc": { + "line": 47, + "column": 17, + "position": 549 + } + }, + "secondFile": { + "name": "packages/core/src/test/awsService/s3/explorer/s3FolderNode.test.ts", + "start": 30, + "end": 43, + "startLoc": { + "line": 30, + "column": 2, + "position": 344 + }, + "endLoc": { + "line": 43, + "column": 17, + "position": 509 + } + } + }, + { + "format": "typescript", + "lines": 14, + "fragment": ": (opts: {\n picker: vscode.QuickPick\n onDidTriggerButton?(\n button: vscode.QuickInputButton,\n resolve: (value: T[] | PromiseLike | undefined) => void,\n reject: (reason?: any) => void\n ): void\n }) => Promise = () => {\n return new Promise((resolve, reject) => {\n resolve([selection])\n })\n }\n\n beforeEach", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/awsService/s3/commands/uploadFile.test.ts", + "start": 274, + "end": 287, + "startLoc": { + "line": 274, + "column": 13, + "position": 2677 + }, + "endLoc": { + "line": 287, + "column": 11, + "position": 2837 + } + }, + "secondFile": { + "name": "packages/core/src/test/awsService/s3/commands/uploadFile.test.ts", + "start": 201, + "end": 214, + "startLoc": { + "line": 201, + "column": 7, + "position": 1888 + }, + "endLoc": { + "line": 214, + "column": 3, + "position": 2048 + } + } + }, + { + "format": "typescript", + "lines": 16, + "fragment": ")\n }\n\n function assertMoreResultsNode(node: AWSTreeNodeBase): void {\n assert.ok(node instanceof MoreResultsNode, `Node ${node} should be a More Results Node`)\n }\n\n beforeEach(function () {\n iot = {} as any as IotClient\n config = new TestSettings()\n })\n\n describe('getChildren', function () {\n it('gets children', async function () {\n const stub = sinon.stub().resolves({\n things", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/awsService/iot/explorer/iotThingFolderNode.test.ts", + "start": 28, + "end": 43, + "startLoc": { + "line": 28, + "column": 14, + "position": 277 + }, + "endLoc": { + "line": 43, + "column": 7, + "position": 410 + } + }, + "secondFile": { + "name": "packages/core/src/test/awsService/iot/explorer/iotThingNode.test.ts", + "start": 40, + "end": 55, + "startLoc": { + "line": 40, + "column": 13, + "position": 354 + }, + "endLoc": { + "line": 55, + "column": 13, + "position": 487 + } + } + }, + { + "format": "typescript", + "lines": 15, + "fragment": ")\n }\n\n function assertMoreResultsNode(node: AWSTreeNodeBase): void {\n assert.ok(node instanceof MoreResultsNode, `Node ${node} should be a More Results Node`)\n }\n\n beforeEach(function () {\n iot = {} as any as IotClient\n config = new TestSettings()\n })\n\n describe('getChildren', function () {\n it('gets children', async function () {\n const policiesStub", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/awsService/iot/explorer/iotPolicyFolderNode.test.ts", + "start": 28, + "end": 42, + "startLoc": { + "line": 28, + "column": 15, + "position": 277 + }, + "endLoc": { + "line": 42, + "column": 13, + "position": 395 + } + }, + "secondFile": { + "name": "packages/core/src/test/awsService/iot/explorer/iotThingNode.test.ts", + "start": 40, + "end": 54, + "startLoc": { + "line": 40, + "column": 13, + "position": 354 + }, + "endLoc": { + "line": 54, + "column": 5, + "position": 472 + } + } + }, + { + "format": "typescript", + "lines": 16, + "fragment": ").policy, expectedPolicy)\n }\n\n function assertMoreResultsNode(node: AWSTreeNodeBase): void {\n assert.ok(node instanceof MoreResultsNode, `Node ${node} should be a More Results Node`)\n }\n\n beforeEach(function () {\n iot = {} as any as IotClient\n config = new TestSettings()\n })\n\n describe('getChildren', function () {\n it('gets children', async function () {\n const stub = sinon.stub().resolves({\n policies", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/awsService/iot/explorer/iotCertificateNode.test.ts", + "start": 30, + "end": 45, + "startLoc": { + "line": 30, + "column": 18, + "position": 319 + }, + "endLoc": { + "line": 45, + "column": 9, + "position": 458 + } + }, + "secondFile": { + "name": "packages/core/src/test/awsService/iot/explorer/iotPolicyFolderNode.test.ts", + "start": 28, + "end": 55, + "startLoc": { + "line": 28, + "column": 26, + "position": 271 + }, + "endLoc": { + "line": 55, + "column": 13, + "position": 487 + } + } + }, + { + "format": "typescript", + "lines": 15, + "fragment": "const cert: Iot.Certificate = {\n certificateId: 'cert',\n certificateArn: 'arn',\n status: 'ACTIVE',\n creationDate: new Date(0),\n }\n const expectedCert: IotCertificate = {\n id: 'cert',\n arn: 'arn',\n activeStatus: 'ACTIVE',\n creationDate: new Date(0),\n }\n\n function assertCertNode(node: AWSTreeNodeBase, expectedCert: IotCertificate): void {\n assert.ok(node instanceof IotCertWithPoliciesNode", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/awsService/iot/explorer/iotCertFolderNode.test.ts", + "start": 24, + "end": 38, + "startLoc": { + "line": 24, + "column": 5, + "position": 168 + }, + "endLoc": { + "line": 38, + "column": 24, + "position": 297 + } + }, + "secondFile": { + "name": "packages/core/src/test/awsService/iot/explorer/iotThingNode.test.ts", + "start": 25, + "end": 39, + "startLoc": { + "line": 25, + "column": 5, + "position": 198 + }, + "endLoc": { + "line": 39, + "column": 17, + "position": 327 + } + } + }, + { + "format": "typescript", + "lines": 15, + "fragment": ").certificate, expectedCert)\n }\n\n function assertMoreResultsNode(node: AWSTreeNodeBase): void {\n assert.ok(node instanceof MoreResultsNode, `Node ${node} should be a More Results Node`)\n }\n\n beforeEach(function () {\n iot = {} as any as IotClient\n config = new TestSettings()\n })\n\n describe('getChildren', function () {\n it('gets children', async function () {\n const listStub", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/awsService/iot/explorer/iotCertFolderNode.test.ts", + "start": 39, + "end": 53, + "startLoc": { + "line": 39, + "column": 24, + "position": 318 + }, + "endLoc": { + "line": 53, + "column": 9, + "position": 442 + } + }, + "secondFile": { + "name": "packages/core/src/test/awsService/iot/explorer/iotThingNode.test.ts", + "start": 40, + "end": 54, + "startLoc": { + "line": 40, + "column": 17, + "position": 348 + }, + "endLoc": { + "line": 54, + "column": 5, + "position": 472 + } + } + }, + { + "format": "typescript", + "lines": 11, + "fragment": ", function () {\n this.beforeEach(function () {\n parentNode = new IotCertsFolderNode(iot, new IotNode(iot))\n node = new IotCertWithPoliciesNode(\n { id: certificateId, arn: 'arn', activeStatus: 'ACTIVE', creationDate: new globals.clock.Date() },\n parentNode,\n iot\n )\n })\n\n it('confirms revocation, revokes cert, and refreshes tree'", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/awsService/iot/commands/updateCert.test.ts", + "start": 126, + "end": 136, + "startLoc": { + "line": 126, + "column": 9, + "position": 1163 + }, + "endLoc": { + "line": 136, + "column": 56, + "position": 1269 + } + }, + "secondFile": { + "name": "packages/core/src/test/awsService/iot/commands/updateCert.test.ts", + "start": 34, + "end": 44, + "startLoc": { + "line": 34, + "column": 20, + "position": 239 + }, + "endLoc": { + "line": 44, + "column": 62, + "position": 345 + } + } + }, + { + "format": "typescript", + "lines": 15, + "fragment": ", iot)\n node = new IotPolicyVersionNode(\n { name: policyName, arn: 'arn' },\n { versionId: 'V1', isDefaultVersion: false },\n false,\n parentNode,\n iot\n )\n })\n\n afterEach(function () {\n sandbox.restore()\n })\n\n it('confirms deletion, deletes policy, and refreshes node'", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/awsService/iot/commands/deletePolicyVersion.test.ts", + "start": 30, + "end": 44, + "startLoc": { + "line": 30, + "column": 20, + "position": 261 + }, + "endLoc": { + "line": 44, + "column": 56, + "position": 354 + } + }, + "secondFile": { + "name": "packages/core/src/test/awsService/iot/commands/setDefaultPolicy.test.ts", + "start": 32, + "end": 46, + "startLoc": { + "line": 32, + "column": 17, + "position": 295 + }, + "endLoc": { + "line": 46, + "column": 42, + "position": 388 + } + } + }, + { + "format": "typescript", + "lines": 21, + "fragment": ")\n const setBusyStatus = sandbox.stub<[vscode.Uri, boolean], void>()\n const fetchNextLogEvents = sandbox.stub<\n [\n vscode.Uri,\n ('head' | 'tail' | undefined)?,\n (\n | ((\n logGroupInfo: {\n groupName: string\n streamName: string\n regionName: string\n },\n nextToken?: string | undefined\n ) => Promise)\n | undefined\n )?,\n ]\n >()\n\n // simulates a long network call. Doesn't need to do anything otherwise", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/awsService/cloudWatchLogs/commands/addLogEvents.test.ts", + "start": 80, + "end": 100, + "startLoc": { + "line": 80, + "column": 22, + "position": 657 + }, + "endLoc": { + "line": 100, + "column": 72, + "position": 802 + } + }, + "secondFile": { + "name": "packages/core/src/test/awsService/cloudWatchLogs/commands/addLogEvents.test.ts", + "start": 36, + "end": 56, + "startLoc": { + "line": 36, + "column": 22, + "position": 260 + }, + "endLoc": { + "line": 56, + "column": 6, + "position": 405 + } + } + }, + { + "format": "typescript", + "lines": 14, + "fragment": ")\n\n const document: vscode.TextDocument = {\n uri: uri,\n } as any as vscode.TextDocument\n\n const fakeRegistry: LogDataRegistry = {\n setBusyStatus: setBusyStatus,\n fetchNextLogEvents: fetchNextLogEvents,\n } as any as LogDataRegistry\n\n const fakeEvent = sandbox.createStubInstance(vscode.EventEmitter)\n\n void", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/awsService/cloudWatchLogs/commands/addLogEvents.test.ts", + "start": 111, + "end": 124, + "startLoc": { + "line": 111, + "column": 2, + "position": 925 + }, + "endLoc": { + "line": 124, + "column": 5, + "position": 1019 + } + }, + "secondFile": { + "name": "packages/core/src/test/awsService/cloudWatchLogs/commands/addLogEvents.test.ts", + "start": 54, + "end": 67, + "startLoc": { + "line": 54, + "column": 2, + "position": 401 + }, + "endLoc": { + "line": 67, + "column": 6, + "position": 495 + } + } + }, + { + "format": "typescript", + "lines": 11, + "fragment": ", async (quickPick) => {\n // Need time to check samconfig.toml file and generate options\n await quickPick.untilReady()\n assert.strictEqual(quickPick.items[2].label, 'Use default values from samconfig')\n quickPick.acceptItem(quickPick.items[2])\n })\n .build()\n deployTypeWizard = new DeployTypeWizard(syncWizard, deployWizard)\n const choices = await deployTypeWizard.run()\n // Then\n assert.strictEqual(choices?.choice, 'sync'", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/awsService/appBuilder/wizards/deployTypeWizard.test.ts", + "start": 107, + "end": 117, + "startLoc": { + "line": 107, + "column": 36, + "position": 930 + }, + "endLoc": { + "line": 117, + "column": 7, + "position": 1039 + } + }, + "secondFile": { + "name": "packages/core/src/test/awsService/appBuilder/wizards/deployTypeWizard.test.ts", + "start": 72, + "end": 82, + "startLoc": { + "line": 72, + "column": 38, + "position": 622 + }, + "endLoc": { + "line": 82, + "column": 9, + "position": 731 + } + } + }, + { + "format": "typescript", + "lines": 11, + "fragment": "const stackInfo = { stackId: 'stack-id', stackName: 'test-stack', isSamTemplate: false, template: {} }\n\n lambdaClientStub.getFunction.resolves({\n Code: { Location: 'https://lambda-function-code.zip' },\n })\n\n await lambda2sam.downloadLambdaFunctionCode(\n resourceName,\n stackInfo,\n targetDir,\n 'us-west-2',", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/awsService/appBuilder/lambda2sam/lambda2samDownload.test.ts", + "start": 189, + "end": 199, + "startLoc": { + "line": 189, + "column": 13, + "position": 1585 + }, + "endLoc": { + "line": 199, + "column": 2, + "position": 1670 + } + }, + "secondFile": { + "name": "packages/core/src/test/awsService/appBuilder/lambda2sam/lambda2samDownload.test.ts", + "start": 155, + "end": 161, + "startLoc": { + "line": 155, + "column": 13, + "position": 1221 + }, + "endLoc": { + "line": 161, + "column": 2, + "position": 1301 + } + } + }, + { + "format": "typescript", + "lines": 14, + "fragment": ")\n assert.strictEqual(\n downloadUnzipStub.firstCall.args[1].fsPath,\n vscode.Uri.joinPath(targetDir, resourceName).fsPath\n )\n\n // Verify files were actually created in the temp directory\n const outputDir = vscode.Uri.joinPath(targetDir, resourceName)\n assert.strictEqual(await fs.exists(outputDir), true)\n assert.strictEqual(await fs.exists(vscode.Uri.joinPath(outputDir, 'index.js')), true)\n assert.strictEqual(await fs.exists(vscode.Uri.joinPath(outputDir, 'package.json')), true)\n })\n\n it('throws an error when ARN format is invalid'", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/awsService/appBuilder/lambda2sam/lambda2samDownload.test.ts", + "start": 259, + "end": 272, + "startLoc": { + "line": 259, + "column": 32, + "position": 2241 + }, + "endLoc": { + "line": 272, + "column": 45, + "position": 2385 + } + }, + "secondFile": { + "name": "packages/core/src/test/awsService/appBuilder/lambda2sam/lambda2samDownload.test.ts", + "start": 172, + "end": 185, + "startLoc": { + "line": 172, + "column": 35, + "position": 1394 + }, + "endLoc": { + "line": 185, + "column": 43, + "position": 1538 + } + } + }, + { + "format": "typescript", + "lines": 14, + "fragment": ", async function () {\n const targetDir = vscode.Uri.file(tempDir)\n const resourceName = 'testLayer'\n const stackInfo = { stackId: 'stack-id', stackName: 'test-stack', isSamTemplate: false, template: {} }\n\n // Return an ARN for a layer version\n cfnClientStub.describeStackResource.resolves({\n StackResourceDetail: {\n PhysicalResourceId: 'arn:aws:lambda:us-west-2:123456789012:layer:my-layer:1',\n },\n })\n\n lambdaClientStub.getLayerVersion.resolves({\n Content: {}", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/awsService/appBuilder/lambda2sam/lambda2samDownload.test.ts", + "start": 290, + "end": 303, + "startLoc": { + "line": 290, + "column": 57, + "position": 2535 + }, + "endLoc": { + "line": 303, + "column": 2, + "position": 2655 + } + }, + "secondFile": { + "name": "packages/core/src/test/awsService/appBuilder/lambda2sam/lambda2samDownload.test.ts", + "start": 234, + "end": 247, + "startLoc": { + "line": 234, + "column": 65, + "position": 1996 + }, + "endLoc": { + "line": 247, + "column": 9, + "position": 2117 + } + } + }, + { + "format": "typescript", + "lines": 19, + "fragment": ", function () {\n let sandbox: sinon.SinonSandbox\n let tempDir: string\n let lambdaClientStub: sinon.SinonStubbedInstance\n let cfnClientStub: any\n let downloadUnzipStub: sinon.SinonStub\n\n beforeEach(async function () {\n sandbox = sinon.createSandbox()\n tempDir = path.join(os.tmpdir(), `aws-toolkit-test-${Date.now()}`)\n\n // Create temp directory for tests - actually create it, don't stub\n if (!(await fs.exists(vscode.Uri.file(tempDir)))) {\n await fs.mkdir(vscode.Uri.file(tempDir))\n }\n\n // Create Lambda client stub with necessary properties\n lambdaClientStub = sandbox.createStubInstance(DefaultLambdaClient)\n Object", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/awsService/appBuilder/lambda2sam/lambda2samCoreLogic.test.ts", + "start": 24, + "end": 42, + "startLoc": { + "line": 24, + "column": 22, + "position": 199 + }, + "endLoc": { + "line": 42, + "column": 7, + "position": 375 + } + }, + "secondFile": { + "name": "packages/core/src/test/awsService/appBuilder/lambda2sam/lambda2samDownload.test.ts", + "start": 17, + "end": 35, + "startLoc": { + "line": 17, + "column": 21, + "position": 118 + }, + "endLoc": { + "line": 35, + "column": 61, + "position": 294 + } + } + }, + { + "format": "typescript", + "lines": 12, + "fragment": "Object.defineProperty(lambdaClientStub, 'defaultTimeoutInMs', {\n value: 5 * 60 * 1000, // 5 minutes\n configurable: true,\n })\n Object.defineProperty(lambdaClientStub, 'createSdkClient', {\n value: () => Promise.resolve({}),\n configurable: true,\n })\n\n sandbox.stub(utils, 'getLambdaClient').returns(lambdaClientStub as any)\n\n // Mock CloudFormation client - now returns Promises directly (no .promise() method)", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/awsService/appBuilder/lambda2sam/lambda2samCoreLogic.test.ts", + "start": 42, + "end": 53, + "startLoc": { + "line": 42, + "column": 9, + "position": 375 + }, + "endLoc": { + "line": 53, + "column": 85, + "position": 480 + } + }, + "secondFile": { + "name": "packages/core/src/test/awsService/appBuilder/lambda2sam/lambda2samDownload.test.ts", + "start": 36, + "end": 47, + "startLoc": { + "line": 36, + "column": 9, + "position": 297 + }, + "endLoc": { + "line": 47, + "column": 85, + "position": 402 + } + } + }, + { + "format": "typescript", + "lines": 13, + "fragment": "cfnClientStub = {\n describeStackResource: sandbox.stub().resolves({\n StackResourceDetail: {\n PhysicalResourceId: 'test-physical-id',\n },\n }),\n describeStackResources: sandbox.stub().resolves({\n StackResources: [\n { LogicalResourceId: 'testResource', PhysicalResourceId: 'test-physical-id' },\n { LogicalResourceId: 'prefixTestResource', PhysicalResourceId: 'prefix-test-physical-id' },\n ],\n }),\n describeStacks", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/awsService/appBuilder/lambda2sam/lambda2samCoreLogic.test.ts", + "start": 54, + "end": 66, + "startLoc": { + "line": 54, + "column": 9, + "position": 483 + }, + "endLoc": { + "line": 66, + "column": 15, + "position": 589 + } + }, + "secondFile": { + "name": "packages/core/src/test/awsService/appBuilder/lambda2sam/lambda2samDownload.test.ts", + "start": 48, + "end": 60, + "startLoc": { + "line": 48, + "column": 9, + "position": 405 + }, + "endLoc": { + "line": 60, + "column": 2, + "position": 511 + } + } + }, + { + "format": "typescript", + "lines": 14, + "fragment": "const resources: cloudFormation.TemplateResources = {\n TestFunc: {\n Type: cloudFormation.SERVERLESS_FUNCTION_TYPE,\n Properties: {\n FunctionName: 'test-function',\n PackageType: 'Zip',\n },\n },\n TestFuncUrl: {\n Type: cloudFormation.LAMBDA_URL_TYPE,\n Properties: {\n TargetFunctionArn: { Ref: 'TestFunc' },\n AuthType: 'NONE',\n Qualifier", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/awsService/appBuilder/lambda2sam/lambda2samCoreLogic.test.ts", + "start": 190, + "end": 203, + "startLoc": { + "line": 190, + "column": 13, + "position": 1518 + }, + "endLoc": { + "line": 203, + "column": 10, + "position": 1617 + } + }, + "secondFile": { + "name": "packages/core/src/test/awsService/appBuilder/lambda2sam/lambda2samCoreLogic.test.ts", + "start": 157, + "end": 170, + "startLoc": { + "line": 157, + "column": 13, + "position": 1301 + }, + "endLoc": { + "line": 170, + "column": 2, + "position": 1400 + } + } + }, + { + "format": "typescript", + "lines": 24, + "fragment": ",\n PackageType: 'Zip',\n },\n },\n } as any\n\n const stackInfo = {\n stackId: 'stack-id',\n stackName: 'test-stack',\n isSamTemplate: false,\n template: {},\n }\n\n const projectDir = vscode.Uri.file(tempDir)\n\n // Add necessary stub for getFunction\n lambdaClientStub.getFunction.resolves({\n Code: { Location: 'https://lambda-function-code.zip' },\n })\n\n // Call the function\n await lambda2sam.processLambdaResources(resources, projectDir, stackInfo, 'us-west-2')\n\n // Verify CodeUri was updated using non-null assertions", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/awsService/appBuilder/lambda2sam/lambda2samCoreLogic.test.ts", + "start": 287, + "end": 310, + "startLoc": { + "line": 287, + "column": 28, + "position": 2248 + }, + "endLoc": { + "line": 310, + "column": 56, + "position": 2387 + } + }, + "secondFile": { + "name": "packages/core/src/test/awsService/appBuilder/lambda2sam/lambda2samCoreLogic.test.ts", + "start": 239, + "end": 262, + "startLoc": { + "line": 239, + "column": 2, + "position": 1873 + }, + "endLoc": { + "line": 262, + "column": 66, + "position": 2012 + } + } + }, + { + "format": "typescript", + "lines": 30, + "fragment": ",\n CompatibleRuntimes: ['nodejs18.x'],\n },\n },\n } as any\n\n const stackInfo = {\n stackId: 'stack-id',\n stackName: 'test-stack',\n isSamTemplate: false,\n template: {},\n }\n\n const projectDir = vscode.Uri.file(tempDir)\n\n // Setup layer version stub\n cfnClientStub.describeStackResource.resolves({\n StackResourceDetail: {\n PhysicalResourceId: 'arn:aws:lambda:us-west-2:123456789012:layer:my-layer:1',\n },\n })\n\n lambdaClientStub.getLayerVersion.resolves({\n Content: { Location: 'https://lambda-layer-code.zip' },\n })\n\n // Call the function\n await lambda2sam.processLambdaLayerResources(resources, projectDir, stackInfo, 'us-west-2')\n\n // Verify layer type is still serverless using non-null assertions", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/awsService/appBuilder/lambda2sam/lambda2samCoreLogic.test.ts", + "start": 377, + "end": 406, + "startLoc": { + "line": 377, + "column": 28, + "position": 2876 + }, + "endLoc": { + "line": 406, + "column": 67, + "position": 3048 + } + }, + "secondFile": { + "name": "packages/core/src/test/awsService/appBuilder/lambda2sam/lambda2samCoreLogic.test.ts", + "start": 329, + "end": 358, + "startLoc": { + "line": 329, + "column": 2, + "position": 2530 + }, + "endLoc": { + "line": 358, + "column": 63, + "position": 2702 + } + } + }, + { + "format": "typescript", + "lines": 22, + "fragment": ", async function () {\n // Setup CloudFormation template - using 'as any' to bypass strict typing for tests\n const template: cloudFormation.Template = {\n AWSTemplateFormatVersion: '2010-09-09',\n Resources: {\n TestFunc: {\n Type: cloudFormation.LAMBDA_FUNCTION_TYPE,\n Properties: {\n FunctionName: 'test-function',\n PackageType: 'Zip',\n },\n },\n },\n } as any\n\n // Setup Lambda node\n const lambdaNode = {\n name: 'test-function',\n regionCode: 'us-west-2',\n } as LambdaFunctionNode\n\n // Make createChangeSet fail", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/awsService/appBuilder/lambda2sam/lambda2samCoreLogic.test.ts", + "start": 477, + "end": 498, + "startLoc": { + "line": 477, + "column": 49, + "position": 3543 + }, + "endLoc": { + "line": 498, + "column": 29, + "position": 3674 + } + }, + "secondFile": { + "name": "packages/core/src/test/awsService/appBuilder/lambda2sam/lambda2samCoreLogic.test.ts", + "start": 418, + "end": 439, + "startLoc": { + "line": 418, + "column": 59, + "position": 3136 + }, + "endLoc": { + "line": 439, + "column": 6, + "position": 3267 + } + } + }, + { + "format": "typescript", + "lines": 23, + "fragment": ", async function () {\n // Setup Lambda node\n const lambdaNode = {\n name: 'test-function',\n regionCode: 'us-east-2',\n arn: 'arn:aws:lambda:us-east-2:123456789012:function:test-function',\n } as LambdaFunctionNode\n\n // Mock IAM connection\n const mockConnection = {\n type: 'iam' as const,\n id: 'test-connection',\n label: 'Test Connection',\n state: 'valid' as const,\n getCredentials: sandbox.stub().resolves({\n accessKeyId: 'test-key',\n secretAccessKey: 'test-secret',\n }),\n }\n sandbox.stub(authUtils, 'getIAMConnection').resolves(mockConnection)\n\n // Mock fetch response\n sandbox", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/awsService/appBuilder/lambda2sam/lambda2samCoreLogic.test.ts", + "start": 581, + "end": 603, + "startLoc": { + "line": 581, + "column": 42, + "position": 4283 + }, + "endLoc": { + "line": 603, + "column": 8, + "position": 4440 + } + }, + "secondFile": { + "name": "packages/core/src/test/awsService/appBuilder/lambda2sam/lambda2samCoreLogic.test.ts", + "start": 523, + "end": 545, + "startLoc": { + "line": 523, + "column": 56, + "position": 3844 + }, + "endLoc": { + "line": 545, + "column": 6, + "position": 4001 + } + } + }, + { + "format": "typescript", + "lines": 30, + "fragment": ", async function () {\n // Setup Lambda node\n const lambdaNode = {\n name: 'test-function',\n regionCode: 'us-east-2',\n arn: 'arn:aws:lambda:us-east-2:123456789012:function:test-function',\n } as LambdaFunctionNode\n\n // Mock IAM connection\n const mockConnection = {\n type: 'iam' as const,\n id: 'test-connection',\n label: 'Test Connection',\n state: 'valid' as const,\n getCredentials: sandbox.stub().resolves({\n accessKeyId: 'test-key',\n secretAccessKey: 'test-secret',\n }),\n }\n sandbox.stub(authUtils, 'getIAMConnection').resolves(mockConnection)\n\n // Mock fetch response\n sandbox.stub(global, 'fetch').resolves({\n ok: true,\n json: sandbox.stub().resolves({\n cloudFormationTemplateId: 'test-template-id',\n }),\n } as any)\n\n // Setup CloudFormation client to return mixed resource types", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/awsService/appBuilder/lambda2sam/lambda2samCoreLogic.test.ts", + "start": 632, + "end": 661, + "startLoc": { + "line": 632, + "column": 52, + "position": 4637 + }, + "endLoc": { + "line": 661, + "column": 62, + "position": 4851 + } + }, + "secondFile": { + "name": "packages/core/src/test/awsService/appBuilder/lambda2sam/lambda2samCoreLogic.test.ts", + "start": 523, + "end": 610, + "startLoc": { + "line": 523, + "column": 56, + "position": 3844 + }, + "endLoc": { + "line": 610, + "column": 61, + "position": 4497 + } + } + }, + { + "format": "typescript", + "lines": 21, + "fragment": "// Mock IAM connection\n const mockConnection = {\n type: 'iam' as const,\n id: 'test-connection',\n label: 'Test Connection',\n state: 'valid' as const,\n getCredentials: sandbox.stub().resolves({\n accessKeyId: 'test-key',\n secretAccessKey: 'test-secret',\n }),\n }\n sandbox.stub(authUtils, 'getIAMConnection').resolves(mockConnection)\n\n // Mock fetch response\n sandbox.stub(global, 'fetch').resolves({\n ok: true,\n json: sandbox.stub().resolves({\n cloudFormationTemplateId: 'test-template-id',\n }),\n } as any)\n }", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/awsService/appBuilder/lambda2sam/lambda2sam.test.ts", + "start": 149, + "end": 169, + "startLoc": { + "line": 149, + "column": 13, + "position": 1181 + }, + "endLoc": { + "line": 169, + "column": 2, + "position": 1341 + } + }, + "secondFile": { + "name": "packages/core/src/test/awsService/appBuilder/lambda2sam/lambda2samCoreLogic.test.ts", + "start": 531, + "end": 610, + "startLoc": { + "line": 531, + "column": 13, + "position": 3897 + }, + "endLoc": { + "line": 610, + "column": 61, + "position": 4497 + } + } + }, + { + "format": "typescript", + "lines": 28, + "fragment": "{\n AWSTemplateFormatVersion: '2010-09-09',\n Resources: {\n testFunc: {\n DeletionPolicy: 'Retain',\n Properties: {\n Code: {\n S3Bucket: 'aws-sam-cli-managed-default-samclisourcebucket-1n8tvb0jdhsd',\n S3Key: '1d1c93ec17af7e2666ee20ea1a215c77',\n },\n Environment: {\n Variables: {\n KEY: 'value',\n },\n },\n FunctionName: 'myFunction',\n Handler: 'index.handler',\n MemorySize: 128,\n PackageType: 'Zip',\n Role: 'arn:aws:iam::123456789012:role/lambda-role',\n Runtime: 'nodejs18.x',\n Timeout: 3,\n },\n Type: 'AWS::Lambda::Function',\n },\n },\n }\n const", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/awsService/appBuilder/lambda2sam/lambda2sam.test.ts", + "start": 191, + "end": 218, + "startLoc": { + "line": 191, + "column": 2, + "position": 1495 + }, + "endLoc": { + "line": 218, + "column": 6, + "position": 1652 + } + }, + "secondFile": { + "name": "packages/core/src/test/awsService/appBuilder/lambda2sam/lambda2sam.test.ts", + "start": 106, + "end": 132, + "startLoc": { + "line": 106, + "column": 2, + "position": 923 + }, + "endLoc": { + "line": 132, + "column": 2, + "position": 1078 + } + } + }, + { + "format": "typescript", + "lines": 11, + "fragment": "= unsortedText\n\n const childNodes = await testNode.getChildren()\n\n const actualChildOrder = childNodes.map((node) => node.label)\n assert.deepStrictEqual(actualChildOrder, sortedText, 'Unexpected child sort order')\n })\n\n it('has an error node for a child if an error happens during loading', async function () {\n const client = createClient()\n client.listApis", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/awsService/apigateway/explorer/apiGatewayNodes.test.ts", + "start": 74, + "end": 84, + "startLoc": { + "line": 74, + "column": 2, + "position": 573 + }, + "endLoc": { + "line": 84, + "column": 9, + "position": 664 + } + }, + "secondFile": { + "name": "packages/core/src/test/awsService/cloudWatchLogs/explorer/cloudWatchLogsNode.test.ts", + "start": 70, + "end": 80, + "startLoc": { + "line": 70, + "column": 2, + "position": 531 + }, + "endLoc": { + "line": 80, + "column": 18, + "position": 622 + } + } + }, + { + "format": "typescript", + "lines": 21, + "fragment": "export class PropertyNode implements TreeNode {\n public readonly id = this.key\n public readonly resource = this.value\n\n public constructor(\n private readonly key: string,\n private readonly value: unknown\n ) {}\n\n public async getChildren(): Promise {\n if (this.value instanceof Array || this.value instanceof Object) {\n return generatePropertyNodes(this.value)\n } else {\n return []\n }\n }\n\n public getTreeItem() {\n const item = new vscode.TreeItem(`${this.key}: ${this.value}`)\n\n item.contextValue = 'awsAppBuilderPropertyNode'", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/awsService/appBuilder/explorer/nodes/propertyNode.ts", + "start": 10, + "end": 30, + "startLoc": { + "line": 10, + "column": 1, + "position": 40 + }, + "endLoc": { + "line": 30, + "column": 28, + "position": 232 + } + }, + "secondFile": { + "name": "packages/core/src/awsService/cdk/explorer/nodes/propertyNode.ts", + "start": 14, + "end": 34, + "startLoc": { + "line": 14, + "column": 1, + "position": 42 + }, + "endLoc": { + "line": 34, + "column": 21, + "position": 234 + } + } + }, + { + "format": "typescript", + "lines": 14, + "fragment": "item.iconPath = getIcon('vscode-gear')\n\n if (this.value instanceof Array || this.value instanceof Object) {\n item.label = this.key\n item.collapsibleState = vscode.TreeItemCollapsibleState.Collapsed\n }\n\n return item\n }\n}\n\nexport function generatePropertyNodes(properties: { [key: string]: any }): TreeNode[] {\n return Object.entries(properties)\n .filter", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/awsService/appBuilder/explorer/nodes/propertyNode.ts", + "start": 31, + "end": 44, + "startLoc": { + "line": 31, + "column": 9, + "position": 235 + }, + "endLoc": { + "line": 44, + "column": 7, + "position": 354 + } + }, + "secondFile": { + "name": "packages/core/src/awsService/cdk/explorer/nodes/propertyNode.ts", + "start": 35, + "end": 47, + "startLoc": { + "line": 35, + "column": 9, + "position": 237 + }, + "endLoc": { + "line": 47, + "column": 4, + "position": 354 + } + } + }, + { + "format": "typescript", + "lines": 17, + "fragment": ") {\n this.appsToWebViewMessagePublisher.publish(message)\n }\n\n public sendAuthenticationUpdate(message: AuthenticationUpdateMessage) {\n this.appsToWebViewMessagePublisher.publish(message)\n }\n\n public sendAuthNeededExceptionMessage(message: AuthNeededException) {\n this.appsToWebViewMessagePublisher.publish(message)\n }\n\n public sendChatInputEnabled(message: ChatInputEnabledMessage) {\n this.appsToWebViewMessagePublisher.publish(message)\n }\n\n public sendCommandMessage", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/amazonqGumby/chat/views/connector/connector.ts", + "start": 201, + "end": 217, + "startLoc": { + "line": 201, + "column": 25, + "position": 1458 + }, + "endLoc": { + "line": 217, + "column": 19, + "position": 1560 + } + }, + "secondFile": { + "name": "packages/amazonq/src/app/amazonqScan/chat/views/connector/connector.ts", + "start": 169, + "end": 185, + "startLoc": { + "line": 169, + "column": 28, + "position": 1227 + }, + "endLoc": { + "line": 185, + "column": 17, + "position": 1329 + } + } + }, + { + "format": "typescript", + "lines": 12, + "fragment": "static stringToEnumValue = (\n enumObject: T,\n value: `${T[K]}`\n ): T[K] => {\n if (Object.values(enumObject).includes(value)) {\n return value as unknown as T[K]\n } else {\n throw new Error('Value provided was not found in Enum')\n }\n }\n\n static", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/amazonqGumby/chat/controller/messenger/messengerUtils.ts", + "start": 61, + "end": 72, + "startLoc": { + "line": 61, + "column": 5, + "position": 515 + }, + "endLoc": { + "line": 72, + "column": 7, + "position": 648 + } + }, + "secondFile": { + "name": "packages/amazonq/src/app/amazonqScan/chat/controller/messenger/messengerUtils.ts", + "start": 9, + "end": 19, + "startLoc": { + "line": 9, + "column": 5, + "position": 16 + }, + "endLoc": { + "line": 19, + "column": 2, + "position": 147 + } + } + }, + { + "format": "typescript", + "lines": 13, + "fragment": "tabID)\n )\n }\n\n public sendChatInputEnabled(tabID: string, enabled: boolean) {\n this.dispatcher.sendChatInputEnabled(new ChatInputEnabledMessage(tabID, enabled))\n }\n\n public sendUpdatePlaceholder(tabID: string, newPlaceholder: string) {\n this.dispatcher.sendUpdatePlaceholder(new UpdatePlaceholderMessage(tabID, newPlaceholder))\n }\n\n public async", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/amazonqGumby/chat/controller/messenger/messenger.ts", + "start": 82, + "end": 94, + "startLoc": { + "line": 82, + "column": 2, + "position": 500 + }, + "endLoc": { + "line": 94, + "column": 6, + "position": 595 + } + }, + "secondFile": { + "name": "packages/amazonq/src/app/amazonqScan/chat/controller/messenger/messenger.ts", + "start": 64, + "end": 77, + "startLoc": { + "line": 64, + "column": 2, + "position": 366 + }, + "endLoc": { + "line": 77, + "column": 25, + "position": 463 + } + } + }, + { + "format": "typescript", + "lines": 26, + "fragment": "))\n }\n\n public async sendAuthNeededExceptionMessage(credentialState: FeatureAuthState, tabID: string) {\n let authType: AuthFollowUpType = 'full-auth'\n let message = AuthMessageDataMap[authType].message\n\n switch (credentialState.amazonQ) {\n case 'disconnected':\n authType = 'full-auth'\n message = AuthMessageDataMap[authType].message\n break\n case 'unsupported':\n authType = 'use-supported-auth'\n message = AuthMessageDataMap[authType].message\n break\n case 'expired':\n authType = 're-auth'\n message = AuthMessageDataMap[authType].message\n break\n }\n\n this.dispatcher.sendAuthNeededExceptionMessage(new AuthNeededException(message, authType, tabID))\n }\n\n public sendAuthenticationUpdate(gumbyEnabled", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/amazonqGumby/chat/controller/messenger/messenger.ts", + "start": 91, + "end": 116, + "startLoc": { + "line": 91, + "column": 15, + "position": 585 + }, + "endLoc": { + "line": 116, + "column": 13, + "position": 769 + } + }, + "secondFile": { + "name": "packages/amazonq/src/app/amazonqScan/chat/controller/messenger/messenger.ts", + "start": 78, + "end": 103, + "startLoc": { + "line": 78, + "column": 14, + "position": 498 + }, + "endLoc": { + "line": 103, + "column": 12, + "position": 682 + } + } + }, + { + "format": "typescript", + "lines": 11, + "fragment": "const newTabID: string | undefined = this.mynahUI.updateStore(\n '',\n this.tabDataGenerator.getTabData('cwc', false)\n )\n if (newTabID === undefined) {\n this.mynahUI.notify({\n content: uiComponentsTexts.noMoreTabsTooltip,\n type: NotificationType.WARNING,\n })\n return undefined\n } else", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/amazonq/webview/ui/messages/controller.ts", + "start": 105, + "end": 115, + "startLoc": { + "line": 105, + "column": 9, + "position": 849 + }, + "endLoc": { + "line": 115, + "column": 5, + "position": 941 + } + }, + "secondFile": { + "name": "packages/core/src/amazonq/webview/ui/messages/controller.ts", + "start": 51, + "end": 62, + "startLoc": { + "line": 51, + "column": 13, + "position": 402 + }, + "endLoc": { + "line": 62, + "column": 5, + "position": 495 + } + } + }, + { + "format": "typescript", + "lines": 11, + "fragment": "=== undefined) {\n return\n }\n\n if (messageData.message !== undefined) {\n const answer: ChatItem = {\n type: messageData.messageType,\n messageId: messageData.messageId ?? messageData.triggerID,\n body: messageData.message,\n buttons: messageData.buttons ?? [],\n canBeVoted: false", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/amazonq/webview/ui/apps/gumbyChatConnector.ts", + "start": 79, + "end": 89, + "startLoc": { + "line": 79, + "column": 2, + "position": 626 + }, + "endLoc": { + "line": 89, + "column": 6, + "position": 720 + } + }, + "secondFile": { + "name": "packages/core/src/amazonq/webview/ui/apps/scanChatConnector.ts", + "start": 108, + "end": 118, + "startLoc": { + "line": 108, + "column": 2, + "position": 933 + }, + "endLoc": { + "line": 118, + "column": 12, + "position": 1027 + } + } + }, + { + "format": "typescript", + "lines": 21, + "fragment": ",\n })\n }\n\n onCustomFormAction(\n tabId: string,\n action: {\n id: string\n text?: string | undefined\n formItemValues?: Record | undefined\n }\n ) {\n if (action === undefined) {\n return\n }\n\n this.sendMessageToExtension({\n command: 'form-action-click',\n action: action.id,\n formSelectedValues: action.formItemValues,\n tabType: this", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/amazonq/webview/ui/apps/gumbyChatConnector.ts", + "start": 117, + "end": 137, + "startLoc": { + "line": 117, + "column": 2, + "position": 934 + }, + "endLoc": { + "line": 137, + "column": 5, + "position": 1059 + } + }, + "secondFile": { + "name": "packages/core/src/amazonq/webview/ui/apps/scanChatConnector.ts", + "start": 64, + "end": 83, + "startLoc": { + "line": 64, + "column": 9, + "position": 579 + }, + "endLoc": { + "line": 83, + "column": 9, + "position": 703 + } + } + }, + { + "format": "typescript", + "lines": 17, + "fragment": "}\n\n onCustomFormAction(\n tabId: string,\n action: {\n id: string\n text?: string | undefined\n formItemValues?: Record | undefined\n }\n ) {\n if (action === undefined) {\n return\n }\n\n this.sendMessageToExtension({\n command: 'form-action-click',\n action: action,", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/amazonq/webview/ui/apps/cwChatConnector.ts", + "start": 234, + "end": 250, + "startLoc": { + "line": 234, + "column": 5, + "position": 1759 + }, + "endLoc": { + "line": 250, + "column": 2, + "position": 1860 + } + }, + "secondFile": { + "name": "packages/core/src/amazonq/webview/ui/apps/scanChatConnector.ts", + "start": 66, + "end": 81, + "startLoc": { + "line": 66, + "column": 5, + "position": 586 + }, + "endLoc": { + "line": 81, + "column": 2, + "position": 686 + } + } + }, + { + "format": "typescript", + "lines": 17, + "fragment": "= (\n tabID: string,\n messageId: string,\n code?: string,\n type?: 'selection' | 'block',\n codeReference?: CodeReference[],\n eventId?: string,\n codeBlockIndex?: number,\n totalCodeBlocks?: number,\n userIntent?: string,\n codeBlockLanguage?: string\n ): void => {\n this.sendMessageToExtension({\n tabID: tabID,\n messageId,\n code,\n command: 'code_was_copied_to_clipboard'", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/amazonq/webview/ui/apps/baseConnector.ts", + "start": 158, + "end": 174, + "startLoc": { + "line": 158, + "column": 2, + "position": 1295 + }, + "endLoc": { + "line": 174, + "column": 31, + "position": 1418 + } + }, + "secondFile": { + "name": "packages/core/src/amazonq/webview/ui/apps/baseConnector.ts", + "start": 130, + "end": 146, + "startLoc": { + "line": 130, + "column": 2, + "position": 1116 + }, + "endLoc": { + "line": 146, + "column": 33, + "position": 1239 + } + } + }, + { + "format": "typescript", + "lines": 17, + "fragment": ")\n\n await service.getAllRecommendations(\n languageClient,\n mockDocument,\n mockPosition,\n mockContext,\n mockToken,\n true,\n mockDocumentEventListener\n )\n\n // Verify sendRequest was called with correct parameters\n const cs = sendRequestStub.getCalls()\n const completionCalls = cs.filter((c) => c.firstArg === completionApi)\n const editCalls = cs.filter((c) => c.firstArg === editApi)\n assert.strictEqual(cs.length, 3", + "tokens": 0, + "firstFile": { + "name": "packages/amazonq/test/unit/amazonq/apps/inline/recommendationService.test.ts", + "start": 194, + "end": 210, + "startLoc": { + "line": 194, + "column": 17, + "position": 1543 + }, + "endLoc": { + "line": 210, + "column": 2, + "position": 1663 + } + }, + "secondFile": { + "name": "packages/amazonq/test/unit/amazonq/apps/inline/recommendationService.test.ts", + "start": 141, + "end": 157, + "startLoc": { + "line": 141, + "column": 16, + "position": 1150 + }, + "endLoc": { + "line": 157, + "column": 2, + "position": 1270 + } + } + }, + { + "format": "typescript", + "lines": 16, + "fragment": ", async function () {\n const selections = [\n {\n anchor: 1,\n active: 1,\n },\n {\n anchor: 3,\n active: 3,\n },\n ]\n\n editor = await setEditorSelection(selections)\n assert.deepStrictEqual(sut.selections, selections)\n\n let actual = sut.includes(1", + "tokens": 0, + "firstFile": { + "name": "packages/amazonq/test/unit/amazonq/apps/inline/inlineTracker.test.ts", + "start": 146, + "end": 161, + "startLoc": { + "line": 146, + "column": 70, + "position": 1165 + }, + "endLoc": { + "line": 161, + "column": 2, + "position": 1268 + } + }, + "secondFile": { + "name": "packages/amazonq/test/unit/amazonq/apps/inline/inlineTracker.test.ts", + "start": 103, + "end": 118, + "startLoc": { + "line": 103, + "column": 52, + "position": 796 + }, + "endLoc": { + "line": 118, + "column": 2, + "position": 899 + } + } + }, + { + "format": "typescript", + "lines": 14, + "fragment": "await sut.onTextEditorSelectionChanged({\n textEditor: editor,\n selections: [new Selection(new Position(3, 0), new Position(3, 0))],\n kind: undefined,\n })\n\n assert.deepStrictEqual(counts, { ...counts, selection: 1 })\n assert.deepStrictEqual(sut.selections, [\n {\n anchor: 3,\n active: 3,\n },\n ])\n }", + "tokens": 0, + "firstFile": { + "name": "packages/amazonq/test/unit/amazonq/apps/inline/inlineTracker.test.ts", + "start": 244, + "end": 257, + "startLoc": { + "line": 244, + "column": 13, + "position": 2088 + }, + "endLoc": { + "line": 257, + "column": 2, + "position": 2208 + } + }, + "secondFile": { + "name": "packages/amazonq/test/unit/amazonq/apps/inline/inlineTracker.test.ts", + "start": 229, + "end": 243, + "startLoc": { + "line": 229, + "column": 13, + "position": 1964 + }, + "endLoc": { + "line": 243, + "column": 76, + "position": 2085 + } + } + }, + { + "format": "typescript", + "lines": 24, + "fragment": "const gitignoreContent = `file2\n # different formats of prefixes\n /build\n node_modules\n\n #some comment\n\n range_file[0-5]\n `\n await writeFile(['.gitignore'], gitignoreContent)\n\n await writeFile(['build', `ignored1`], fileContent)\n await writeFile(['build', `ignored2`], fileContent)\n\n await writeFile(['node_modules', `ignored1`], fileContent)\n await writeFile(['node_modules', `ignored2`], fileContent)\n\n await writeFile([`range_file0`], fileContent)\n await writeFile([`range_file9`], fileContent)\n\n const gitignore2 = 'folder1\\n'\n await writeFile(['src', '.gitignore'], gitignore2)\n await writeFile(['src', 'folder2', 'a.js'], fileContent)\n await", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/testInteg/shared/utilities/workspaceUtils.test.ts", + "start": 476, + "end": 499, + "startLoc": { + "line": 476, + "column": 13, + "position": 4420 + }, + "endLoc": { + "line": 499, + "column": 6, + "position": 4580 + } + }, + "secondFile": { + "name": "packages/core/src/testInteg/shared/utilities/workspaceUtils.test.ts", + "start": 230, + "end": 254, + "startLoc": { + "line": 230, + "column": 13, + "position": 2065 + }, + "endLoc": { + "line": 254, + "column": 6, + "position": 2226 + } + } + }, + { + "format": "typescript", + "lines": 11, + "fragment": ").generate(templateFilename)\n\n assert.strictEqual(await fs.exists(templateFilename), true)\n\n const template: CloudFormation.Template = await CloudFormation.load(templateFilename)\n assert.ok(template.Resources)\n assert.notStrictEqual(Object.keys(template.Resources!).length, 0)\n\n const resource = template.Resources![sampleResourceNameValue]\n assert.ok(resource)\n assert.strictEqual", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/templates/sam/samTemplateGenerator.test.ts", + "start": 61, + "end": 71, + "startLoc": { + "line": 61, + "column": 17, + "position": 560 + }, + "endLoc": { + "line": 71, + "column": 12, + "position": 666 + } + }, + "secondFile": { + "name": "packages/core/src/test/templates/sam/samTemplateGenerator.test.ts", + "start": 44, + "end": 54, + "startLoc": { + "line": 44, + "column": 2, + "position": 361 + }, + "endLoc": { + "line": 54, + "column": 3, + "position": 467 + } + } + }, + { + "format": "typescript", + "lines": 11, + "fragment": ").generate(templateFilename)\n\n assert.strictEqual(await fs.exists(templateFilename), true)\n\n const template: CloudFormation.Template = await CloudFormation.load(templateFilename)\n assert.ok(template.Resources)\n assert.notStrictEqual(Object.keys(template.Resources!).length, 0)\n\n const resource = template.Resources![sampleResourceNameValue]\n assert.ok(resource)\n assert.strictEqual(resource!.Properties!.Timeout", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/templates/sam/samTemplateGenerator.test.ts", + "start": 75, + "end": 85, + "startLoc": { + "line": 75, + "column": 14, + "position": 710 + }, + "endLoc": { + "line": 85, + "column": 8, + "position": 824 + } + }, + "secondFile": { + "name": "packages/core/src/test/templates/sam/samTemplateGenerator.test.ts", + "start": 44, + "end": 71, + "startLoc": { + "line": 44, + "column": 2, + "position": 361 + }, + "endLoc": { + "line": 71, + "column": 11, + "position": 674 + } + } + }, + { + "format": "typescript", + "lines": 11, + "fragment": ").generate(templateFilename)\n\n assert.strictEqual(await fs.exists(templateFilename), true)\n\n const template: CloudFormation.Template = await CloudFormation.load(templateFilename)\n assert.ok(template.Resources)\n assert.notStrictEqual(Object.keys(template.Resources!).length, 0)\n\n const resource = template.Resources![sampleResourceNameValue]\n assert.ok(resource)\n assert.deepStrictEqual", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/templates/sam/samTemplateGenerator.test.ts", + "start": 89, + "end": 99, + "startLoc": { + "line": 89, + "column": 18, + "position": 860 + }, + "endLoc": { + "line": 99, + "column": 16, + "position": 966 + } + }, + "secondFile": { + "name": "packages/core/src/test/templates/sam/samTemplateGenerator.test.ts", + "start": 44, + "end": 54, + "startLoc": { + "line": 44, + "column": 2, + "position": 361 + }, + "endLoc": { + "line": 54, + "column": 3, + "position": 467 + } + } + }, + { + "format": "typescript", + "lines": 11, + "fragment": ").generate(templateFilename)\n\n assert.strictEqual(await fs.exists(templateFilename), true)\n\n const template: CloudFormation.Template = await CloudFormation.load(templateFilename)\n assert.ok(template.Resources)\n assert.notStrictEqual(Object.keys(template.Resources!).length, 0)\n\n const resource = template.Resources![sampleResourceNameValue]\n assert.ok(resource)\n assert.deepStrictEqual(resource!.Properties?", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/templates/sam/samTemplateGenerator.test.ts", + "start": 103, + "end": 113, + "startLoc": { + "line": 103, + "column": 2, + "position": 1012 + }, + "endLoc": { + "line": 113, + "column": 2, + "position": 1124 + } + }, + "secondFile": { + "name": "packages/core/src/test/templates/sam/samTemplateGenerator.test.ts", + "start": 44, + "end": 99, + "startLoc": { + "line": 44, + "column": 2, + "position": 361 + }, + "endLoc": { + "line": 99, + "column": 2, + "position": 972 + } + } + }, + { + "format": "typescript", + "lines": 15, + "fragment": "while (true) {\n yield async (picker: TestQuickPick) => {\n await picker.untilReady()\n picker.acceptItem(picker.items[0])\n }\n }\n })()\n\n return (picker: TestQuickPick) => {\n const next = generator.next().value\n return next(picker)\n }\n })()\n )\n .build", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/shared/wizards/compositWizard.test.ts", + "start": 392, + "end": 406, + "startLoc": { + "line": 392, + "column": 25, + "position": 2286 + }, + "endLoc": { + "line": 406, + "column": 6, + "position": 2396 + } + }, + "secondFile": { + "name": "packages/core/src/test/shared/wizards/compositWizard.test.ts", + "start": 334, + "end": 348, + "startLoc": { + "line": 334, + "column": 25, + "position": 1834 + }, + "endLoc": { + "line": 348, + "column": 16, + "position": 1944 + } + } + }, + { + "format": "typescript", + "lines": 31, + "fragment": ", recv) => {\n if (isKeyOf(prop, emitters)) {\n return emitters[prop].event\n }\n if (isKeyOf(prop, tester)) {\n return tester[prop].bind(tester)\n }\n if (isKeyOf(prop, state)) {\n return state[prop]\n }\n if (prop === 'show') {\n return function () {\n const val = target.show()\n if (!state.visible) {\n state.visible = true\n extraEmitters.onDidShow.fire()\n }\n return val\n }\n }\n if (prop === 'hide') {\n return function () {\n const val = target.hide()\n state.visible = false\n return val\n }\n }\n\n return Reflect.get(target, prop, recv)\n },\n set: (target, prop: keyof TestInputBox", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/shared/vscode/quickInput.ts", + "start": 451, + "end": 481, + "startLoc": { + "line": 451, + "column": 13, + "position": 4275 + }, + "endLoc": { + "line": 481, + "column": 13, + "position": 4539 + } + }, + "secondFile": { + "name": "packages/core/src/test/shared/vscode/quickInput.ts", + "start": 348, + "end": 378, + "startLoc": { + "line": 348, + "column": 2, + "position": 3287 + }, + "endLoc": { + "line": 378, + "column": 14, + "position": 3551 + } + } + }, + { + "format": "typescript", + "lines": 14, + "fragment": ", val, recv) => {\n if (prop === 'busy' || prop === 'enabled') {\n const oldVal = Reflect.get(target, prop, recv)\n const didSet = Reflect.set(target, prop, val, recv)\n if (didSet && oldVal !== val) {\n if (prop === 'busy') {\n extraEmitters.onDidChangeBusy.fire(val)\n } else if (prop === 'enabled') {\n extraEmitters.onDidChangeEnablement.fire(val)\n }\n }\n return didSet\n }\n if", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/shared/vscode/quickInput.ts", + "start": 481, + "end": 494, + "startLoc": { + "line": 481, + "column": 13, + "position": 4540 + }, + "endLoc": { + "line": 494, + "column": 3, + "position": 4698 + } + }, + "secondFile": { + "name": "packages/core/src/test/shared/vscode/quickInput.ts", + "start": 378, + "end": 391, + "startLoc": { + "line": 378, + "column": 2, + "position": 3555 + }, + "endLoc": { + "line": 391, + "column": 7, + "position": 3713 + } + } + }, + { + "format": "typescript", + "lines": 15, + "fragment": ", async function () {\n const executeCommandArgs: { command: string; uri: vscode.Uri }[] = []\n const context: LoadSymbolsContext = {\n async executeCommand(command: string, ...args: any[]): Promise {\n assert.strictEqual(args.length, 1)\n executeCommandArgs.push({ command, uri: args[0] as vscode.Uri })\n\n return undefined as T\n },\n }\n\n const actual = await loadSymbols({\n uri: vscode.Uri.file(''),\n context,\n maxRetries: 2", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/shared/utilities/symbolUtilities.test.ts", + "start": 92, + "end": 106, + "startLoc": { + "line": 92, + "column": 40, + "position": 924 + }, + "endLoc": { + "line": 106, + "column": 2, + "position": 1101 + } + }, + "secondFile": { + "name": "packages/core/src/test/shared/utilities/symbolUtilities.test.ts", + "start": 41, + "end": 55, + "startLoc": { + "line": 41, + "column": 36, + "position": 346 + }, + "endLoc": { + "line": 55, + "column": 2, + "position": 523 + } + } + }, + { + "format": "typescript", + "lines": 20, + "fragment": ", async function () {\n const symbol = new vscode.DocumentSymbol(\n 'MyParent',\n 'MyParentDetail',\n vscode.SymbolKind.Object,\n new vscode.Range(0, 0, 5, 10),\n new vscode.Range(0, 0, 0, 10)\n )\n\n symbol.children.push(\n new vscode.DocumentSymbol(\n 'MyChild',\n 'MyChildDetail',\n vscode.SymbolKind.Property,\n new vscode.Range(1, 0, 2, 10),\n new vscode.Range(1, 0, 1, 10)\n )\n )\n\n symbol", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/shared/utilities/symbolUtilities.test.ts", + "start": 146, + "end": 165, + "startLoc": { + "line": 146, + "column": 68, + "position": 1462 + }, + "endLoc": { + "line": 165, + "column": 7, + "position": 1625 + } + }, + "secondFile": { + "name": "packages/core/src/test/shared/utilities/symbolUtilities.test.ts", + "start": 119, + "end": 138, + "startLoc": { + "line": 119, + "column": 64, + "position": 1209 + }, + "endLoc": { + "line": 138, + "column": 6, + "position": 1372 + } + } + }, + { + "format": "typescript", + "lines": 13, + "fragment": ",\n (item) => item.key\n )\n\n assert.ok(result)\n assert.strictEqual(result.size, 3)\n assert.ok(result.has('a'))\n assert.ok(result.has('b'))\n assert.ok(result.has('c'))\n })\n\n it('throws an error on duplicate keys', async function () {\n await", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/shared/utilities/collectionUtils.test.ts", + "start": 200, + "end": 212, + "startLoc": { + "line": 200, + "column": 2, + "position": 1812 + }, + "endLoc": { + "line": 212, + "column": 6, + "position": 1910 + } + }, + "secondFile": { + "name": "packages/core/src/test/shared/utilities/collectionUtils.test.ts", + "start": 169, + "end": 181, + "startLoc": { + "line": 169, + "column": 2, + "position": 1459 + }, + "endLoc": { + "line": 181, + "column": 7, + "position": 1557 + } + } + }, + { + "format": "typescript", + "lines": 11, + "fragment": ", async function () {\n const input = '123'\n\n picker.onDidShow(async () => {\n picker.onDidChangeActive((items) => {\n if (items[0]?.description !== undefined) {\n picker.acceptItem(items[0])\n }\n })\n\n testPrompter", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/shared/ui/pickerPrompter.test.ts", + "start": 353, + "end": 363, + "startLoc": { + "line": 353, + "column": 45, + "position": 3739 + }, + "endLoc": { + "line": 363, + "column": 13, + "position": 3826 + } + }, + "secondFile": { + "name": "packages/core/src/test/shared/ui/pickerPrompter.test.ts", + "start": 316, + "end": 325, + "startLoc": { + "line": 316, + "column": 43, + "position": 3424 + }, + "endLoc": { + "line": 325, + "column": 6, + "position": 3510 + } + } + }, + { + "format": "typescript", + "lines": 29, + "fragment": "(itemsPromise)\n void prompter.prompt()\n assert.strictEqual(prompter.quickPick.busy, true)\n\n resolveItems(items)\n await itemsPromise\n\n assert.strictEqual(prompter.quickPick.busy, false)\n assert.deepStrictEqual(prompter.quickPick.items, items)\n })\n\n it('creates a new prompter when given an AsyncIterable', async function () {\n let r1!: (v?: any) => void\n let r2!: (v?: any) => void\n const p1 = new Promise((r) => (r1 = r))\n const p2 = new Promise((r) => (r2 = r))\n\n async function* generator() {\n for (const item of items) {\n if (item === items[0]) {\n await p1\n } else {\n await p2\n }\n yield [item]\n }\n }\n\n const prompter = createMultiPick", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/shared/ui/pickerPrompter.test.ts", + "start": 486, + "end": 514, + "startLoc": { + "line": 486, + "column": 16, + "position": 5090 + }, + "endLoc": { + "line": 514, + "column": 16, + "position": 5356 + } + }, + "secondFile": { + "name": "packages/core/src/test/shared/ui/pickerPrompter.test.ts", + "start": 50, + "end": 78, + "startLoc": { + "line": 50, + "column": 16, + "position": 469 + }, + "endLoc": { + "line": 78, + "column": 16, + "position": 735 + } + } + }, + { + "format": "typescript", + "lines": 11, + "fragment": "(generator())\n r1()\n await new Promise((r) => setImmediate(r))\n assert.deepStrictEqual(prompter.quickPick.items, [items[0]])\n assert.strictEqual(prompter.quickPick.busy, true)\n r2()\n await new Promise((r) => setImmediate(r))\n assert.deepStrictEqual(prompter.quickPick.items, items)\n assert.strictEqual(prompter.quickPick.busy, false)\n })\n})", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/shared/ui/pickerPrompter.test.ts", + "start": 514, + "end": 524, + "startLoc": { + "line": 514, + "column": 16, + "position": 5357 + }, + "endLoc": { + "line": 524, + "column": 2, + "position": 5481 + } + }, + "secondFile": { + "name": "packages/core/src/test/shared/ui/pickerPrompter.test.ts", + "start": 78, + "end": 88, + "startLoc": { + "line": 78, + "column": 16, + "position": 736 + }, + "endLoc": { + "line": 88, + "column": 2, + "position": 860 + } + } + }, + { + "format": "typescript", + "lines": 16, + "fragment": "const paramteres = samconfig.listEnvironments()\n assert.strictEqual(paramteres.length, 1)\n\n const defaultEnvironment = paramteres[0]\n assert.strictEqual(defaultEnvironment.name, 'default')\n assert.deepStrictEqual(defaultEnvironment.commands, {\n build: {\n parameters: {\n cached: true,\n parallel: true,\n use_container: true,\n },\n },\n global: {\n parameters: {\n stack_name: 'stack-1'", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/shared/sam/config.test.ts", + "start": 234, + "end": 249, + "startLoc": { + "line": 234, + "column": 9, + "position": 1904 + }, + "endLoc": { + "line": 249, + "column": 10, + "position": 2024 + } + }, + "secondFile": { + "name": "packages/core/src/test/shared/sam/config.test.ts", + "start": 124, + "end": 138, + "startLoc": { + "line": 124, + "column": 13, + "position": 1049 + }, + "endLoc": { + "line": 138, + "column": 12, + "position": 1168 + } + } + }, + { + "format": "typescript", + "lines": 43, + "fragment": ")\n await writeSamconfigGlobal(projectRoot, 'stack-1', 'us-east-1')\n\n const samconfig = await SamConfig.fromProjectRoot(projectRoot)\n assert(samconfig instanceof SamConfig)\n\n const paramteres = samconfig.listEnvironments()\n assert.strictEqual(paramteres.length, 1)\n\n const defaultEnvironment = paramteres[0]\n assert.strictEqual(defaultEnvironment.name, 'default')\n assert.deepStrictEqual(defaultEnvironment.commands, {\n build: {\n parameters: {\n cached: true,\n parallel: true,\n use_container: true,\n },\n },\n global: {\n parameters: {\n stack_name: 'stack-1',\n region: 'us-east-1',\n },\n },\n deploy: {\n parameters: {\n confirm_changeset: false,\n resolve_s3: true,\n },\n },\n sync: {\n parameters: {\n s3_bucket: 'aws-sam-cli-managed-default-samclisourcebucket-lftqponsaxsr',\n dependency_layer: false,\n watch: false,\n },\n },\n })\n })\n})\n\ndescribe", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/shared/sam/config.test.ts", + "start": 270, + "end": 312, + "startLoc": { + "line": 270, + "column": 35, + "position": 2152 + }, + "endLoc": { + "line": 312, + "column": 9, + "position": 2422 + } + }, + "secondFile": { + "name": "packages/core/src/test/shared/sam/config.test.ts", + "start": 228, + "end": 158, + "startLoc": { + "line": 228, + "column": 22, + "position": 1859 + }, + "endLoc": { + "line": 158, + "column": 2, + "position": 1273 + } + } + }, + { + "format": "typescript", + "lines": 11, + "fragment": ", () => {\n let testFolder: TestFolder\n let projectRoot: vscode.Uri\n\n beforeEach(async () => {\n testFolder = await TestFolder.create()\n projectRoot = vscode.Uri.file(testFolder.path)\n })\n\n it('should create a new samconfig.toml if not already exist', async () => {\n const", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/shared/sam/config.test.ts", + "start": 312, + "end": 322, + "startLoc": { + "line": 312, + "column": 22, + "position": 2425 + }, + "endLoc": { + "line": 322, + "column": 6, + "position": 2515 + } + }, + "secondFile": { + "name": "packages/core/src/test/shared/sam/config.test.ts", + "start": 190, + "end": 200, + "startLoc": { + "line": 190, + "column": 23, + "position": 1543 + }, + "endLoc": { + "line": 200, + "column": 4, + "position": 1633 + } + } + }, + { + "format": "typescript", + "lines": 21, + "fragment": ")\n\n const samconfig = await SamConfig.fromProjectRoot(projectRoot)\n assert(samconfig instanceof SamConfig)\n\n const paramteres = samconfig.listEnvironments()\n assert.strictEqual(paramteres.length, 1)\n\n const defaultEnvironment = paramteres[0]\n assert.strictEqual(defaultEnvironment.name, 'default')\n assert.deepStrictEqual(defaultEnvironment.commands, {\n global: {\n parameters: {\n stack_name: 'stack-1',\n region: 'us-east-1',\n },\n },\n })\n })\n\n it('should create a new samconfig.toml and overwrite existing file'", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/shared/sam/config.test.ts", + "start": 333, + "end": 353, + "startLoc": { + "line": 333, + "column": 5, + "position": 2584 + }, + "endLoc": { + "line": 353, + "column": 65, + "position": 2724 + } + }, + "secondFile": { + "name": "packages/core/src/test/shared/sam/config.test.ts", + "start": 229, + "end": 227, + "startLoc": { + "line": 229, + "column": 12, + "position": 1873 + }, + "endLoc": { + "line": 227, + "column": 61, + "position": 1836 + } + } + }, + { + "format": "typescript", + "lines": 31, + "fragment": "const data = {\n default: {\n global: {\n parameters: {\n stack_name: 'stack-1',\n region: 'us-east-1',\n },\n },\n },\n } as JsonMap\n\n await createNewConfigFile(projectRoot, data)\n\n const samconfig = await SamConfig.fromProjectRoot(projectRoot)\n assert(samconfig instanceof SamConfig)\n\n const paramteres = samconfig.listEnvironments()\n assert.strictEqual(paramteres.length, 1)\n\n const defaultEnvironment = paramteres[0]\n assert.strictEqual(defaultEnvironment.name, 'default')\n assert.deepStrictEqual(defaultEnvironment.commands, {\n global: {\n parameters: {\n stack_name: 'stack-1',\n region: 'us-east-1',\n },\n },\n })\n })\n}", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/shared/sam/config.test.ts", + "start": 356, + "end": 386, + "startLoc": { + "line": 356, + "column": 9, + "position": 2751 + }, + "endLoc": { + "line": 386, + "column": 2, + "position": 2956 + } + }, + "secondFile": { + "name": "packages/core/src/test/shared/sam/config.test.ts", + "start": 322, + "end": 227, + "startLoc": { + "line": 322, + "column": 9, + "position": 2515 + }, + "endLoc": { + "line": 227, + "column": 3, + "position": 1834 + } + } + }, + { + "format": "typescript", + "lines": 12, + "fragment": ")\n })\n\n it('validateSamDeployConfig should return false', async () => {\n assert.strictEqual(await validateSamDeployConfig(projectRoot), false)\n })\n\n it('validateSamSyncConfig should return false', async () => {\n assert.strictEqual(await validateSamSyncConfig(projectRoot), false)\n })\n\n it('validateSamBuildConfig should return false'", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/shared/sam/config.test.ts", + "start": 446, + "end": 457, + "startLoc": { + "line": 446, + "column": 12, + "position": 3449 + }, + "endLoc": { + "line": 457, + "column": 45, + "position": 3531 + } + }, + "secondFile": { + "name": "packages/core/src/test/shared/sam/config.test.ts", + "start": 421, + "end": 432, + "startLoc": { + "line": 421, + "column": 35, + "position": 3241 + }, + "endLoc": { + "line": 432, + "column": 44, + "position": 3323 + } + } + }, + { + "format": "typescript", + "lines": 14, + "fragment": "const prompterTester = PrompterTester.init()\n .handleQuickPick('Select a SAM/CloudFormation Template', async (quickPick) => {\n await quickPick.untilReady()\n assert.strictEqual(quickPick.items[0].label, templateFile.fsPath)\n quickPick.acceptItem(quickPick.items[0])\n })\n .handleQuickPick('Specify parameter source for build', async (quickPick) => {\n // Need sometime to wait for the template to search for template file\n await quickPick.untilReady()\n\n assert.strictEqual(quickPick.items.length, 2)\n const items = quickPick.items\n\n assert.deepStrictEqual(items[1", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/shared/sam/build.test.ts", + "start": 494, + "end": 507, + "startLoc": { + "line": 494, + "column": 13, + "position": 4270 + }, + "endLoc": { + "line": 507, + "column": 2, + "position": 4409 + } + }, + "secondFile": { + "name": "packages/core/src/test/shared/sam/build.test.ts", + "start": 349, + "end": 360, + "startLoc": { + "line": 349, + "column": 13, + "position": 3166 + }, + "endLoc": { + "line": 360, + "column": 2, + "position": 3303 + } + } + }, + { + "format": "typescript", + "lines": 11, + "fragment": ")\n const setCredentialsStub = sandbox.stub(awsContext, 'setCredentials').callsFake(async (credentials) => {\n // Verify that logout is called\n assert.strictEqual(credentials, undefined)\n })\n\n await loginManager.login({ passive, providerId: sampleCredentialsId })\n assert.strictEqual(setCredentialsStub.callCount, 1, 'Expected awsContext setCredentials to be called once')\n assertTelemetry({ result: 'Failed', passive, credentialType, credentialSourceId })\n })\n}", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/shared/credentials/loginManager.test.ts", + "start": 138, + "end": 148, + "startLoc": { + "line": 138, + "column": 44, + "position": 1399 + }, + "endLoc": { + "line": 148, + "column": 2, + "position": 1511 + } + }, + "secondFile": { + "name": "packages/core/src/test/shared/credentials/loginManager.test.ts", + "start": 110, + "end": 135, + "startLoc": { + "line": 110, + "column": 10, + "position": 1105 + }, + "endLoc": { + "line": 135, + "column": 3, + "position": 1363 + } + } + }, + { + "format": "typescript", + "lines": 17, + "fragment": "{\n const sampleClassSymbol: vscode.DocumentSymbol = new vscode.DocumentSymbol(\n 'HelloWorld.Function',\n '',\n vscode.SymbolKind.Class,\n fakeRange,\n fakeRange\n )\n\n it('returns true for a public class', async function () {\n const doc = {\n getText: (range?: vscode.Range): string => {\n return 'public class Function {}'\n },\n }\n\n const", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/shared/codelens/csharpCodeLensProvider.test.ts", + "start": 56, + "end": 72, + "startLoc": { + "line": 56, + "column": 2, + "position": 461 + }, + "endLoc": { + "line": 72, + "column": 6, + "position": 568 + } + }, + "secondFile": { + "name": "packages/core/src/test/shared/codelens/javaCodeLensProvider.test.ts", + "start": 54, + "end": 70, + "startLoc": { + "line": 54, + "column": 2, + "position": 443 + }, + "endLoc": { + "line": 70, + "column": 7, + "position": 550 + } + } + }, + { + "format": "typescript", + "lines": 15, + "fragment": ", true, 'Expected symbol to be a public class')\n })\n\n it('returns false when symbol is not of type Class', async function () {\n const symbol = new vscode.DocumentSymbol(\n sampleClassSymbol.name,\n sampleClassSymbol.detail,\n vscode.SymbolKind.Method,\n sampleClassSymbol.range,\n sampleClassSymbol.selectionRange\n )\n\n const doc = {\n getText: (range?: vscode.Range): string => {\n return 'public class Function {}'", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/shared/codelens/csharpCodeLensProvider.test.ts", + "start": 73, + "end": 87, + "startLoc": { + "line": 73, + "column": 9, + "position": 588 + }, + "endLoc": { + "line": 87, + "column": 27, + "position": 698 + } + }, + "secondFile": { + "name": "packages/core/src/test/shared/codelens/javaCodeLensProvider.test.ts", + "start": 70, + "end": 84, + "startLoc": { + "line": 70, + "column": 2, + "position": 561 + }, + "endLoc": { + "line": 84, + "column": 28, + "position": 671 + } + } + }, + { + "format": "typescript", + "lines": 14, + "fragment": ",\n functionSignatureParams: { access: 'public' },\n },\n ]\n\n for (const test of validPublicMethodTests) {\n const sampleMethodSymbol: vscode.DocumentSymbol = new vscode.DocumentSymbol(\n 'FunctionHandler(APIGatewayProxyRequest apigProxyEvent, ILambdaContext context)',\n '',\n vscode.SymbolKind.Method,\n fakeRange,\n fakeRange\n )\n it(`returns true for a public method symbol when ${test.scenario}`, async (", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/shared/codelens/csharpCodeLensProvider.test.ts", + "start": 143, + "end": 156, + "startLoc": { + "line": 143, + "column": 2, + "position": 1096 + }, + "endLoc": { + "line": 156, + "column": 2, + "position": 1194 + } + }, + "secondFile": { + "name": "packages/core/src/test/shared/codelens/javaCodeLensProvider.test.ts", + "start": 208, + "end": 221, + "startLoc": { + "line": 208, + "column": 2, + "position": 1648 + }, + "endLoc": { + "line": 221, + "column": 9, + "position": 1746 + } + } + }, + { + "format": "typescript", + "lines": 20, + "fragment": ")\n })\n }\n\n it('returns false for a symbol that is not a method', async function () {\n const symbol = new vscode.DocumentSymbol(\n 'FunctionHandler(APIGatewayProxyRequest apigProxyEvent, ILambdaContext context)',\n '',\n vscode.SymbolKind.Class,\n fakeRange,\n fakeRange\n )\n\n const doc = {\n getText: (range?: vscode.Range): string => {\n throw new Error('getText is unused')\n },\n }\n\n const isPublic", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/shared/codelens/csharpCodeLensProvider.test.ts", + "start": 165, + "end": 184, + "startLoc": { + "line": 165, + "column": 40, + "position": 1281 + }, + "endLoc": { + "line": 184, + "column": 9, + "position": 1398 + } + }, + "secondFile": { + "name": "packages/core/src/test/shared/codelens/javaCodeLensProvider.test.ts", + "start": 237, + "end": 256, + "startLoc": { + "line": 237, + "column": 39, + "position": 1863 + }, + "endLoc": { + "line": 256, + "column": 8, + "position": 1980 + } + } + }, + { + "format": "typescript", + "lines": 11, + "fragment": ", false, 'Expected symbol not to be a public method')\n })\n\n it('returns false when a private method name contains the word public in it', async function () {\n const symbol = new vscode.DocumentSymbol('notpublicmethod', '', vscode.SymbolKind.Method, fakeRange, fakeRange)\n\n const doc = {\n getText: (range?: vscode.Range): string =>\n generateFunctionDeclaration(\n generateFunctionSignature(\n generateFunctionHandler('FunctionHandler', 'APIGatewayProxyResponse'", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/shared/codelens/csharpCodeLensProvider.test.ts", + "start": 202, + "end": 212, + "startLoc": { + "line": 202, + "column": 9, + "position": 1585 + }, + "endLoc": { + "line": 212, + "column": 26, + "position": 1688 + } + }, + "secondFile": { + "name": "packages/core/src/test/shared/codelens/javaCodeLensProvider.test.ts", + "start": 272, + "end": 288, + "startLoc": { + "line": 272, + "column": 8, + "position": 2183 + }, + "endLoc": { + "line": 288, + "column": 2, + "position": 2294 + } + } + }, + { + "format": "typescript", + "lines": 17, + "fragment": ", '', vscode.SymbolKind.Method, fakeRange, fakeRange)\n\n const doc = {\n getText: (range?: vscode.Range): string =>\n generateFunctionDeclaration(\n generateFunctionSignature(\n generateFunctionHandler('FunctionHandler', 'APIGatewayProxyResponse', 'ILambdaContext'),\n { access: 'private' }\n )\n ),\n }\n\n const isPublic = isValidLambdaHandler(doc, symbol)\n assert.strictEqual(isPublic, false, 'Expected symbol not to be a public method')\n })\n\n it('returns false when the second parameter is not an ILambdaContext'", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/shared/codelens/csharpCodeLensProvider.test.ts", + "start": 206, + "end": 222, + "startLoc": { + "line": 206, + "column": 18, + "position": 1627 + }, + "endLoc": { + "line": 222, + "column": 67, + "position": 1753 + } + }, + "secondFile": { + "name": "packages/core/src/test/shared/codelens/csharpCodeLensProvider.test.ts", + "start": 190, + "end": 205, + "startLoc": { + "line": 190, + "column": 8, + "position": 1476 + }, + "endLoc": { + "line": 205, + "column": 74, + "position": 1601 + } + } + }, + { + "format": "typescript", + "lines": 18, + "fragment": "}\n\n /**\n * Simulates the Function signature portion of the contents of a TextDocument that corresponds\n * to a Method Symbol's range. Used with generateFunctionDeclaration.\n */\n function generateFunctionSignature(\n functionHandler: string,\n params: {\n access: string\n beforeFunctionName?: boolean\n afterSignature?: boolean\n }\n ): string {\n const beforeFunctionText = params.beforeFunctionName ? os.EOL : ''\n const afterSignatureText = params.afterSignature ? os.EOL : ''\n\n return `${params.access} APIGatewayProxyResponse ", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/shared/codelens/csharpCodeLensProvider.test.ts", + "start": 266, + "end": 283, + "startLoc": { + "line": 266, + "column": 5, + "position": 1944 + }, + "endLoc": { + "line": 283, + "column": 26, + "position": 2052 + } + }, + "secondFile": { + "name": "packages/core/src/test/shared/codelens/javaCodeLensProvider.test.ts", + "start": 420, + "end": 437, + "startLoc": { + "line": 420, + "column": 5, + "position": 3281 + }, + "endLoc": { + "line": 437, + "column": 31, + "position": 3389 + } + } + }, + { + "format": "typescript", + "lines": 13, + "fragment": "})\n const addSamStub = sandbox.stub(AddSamDebugConfiguration, 'addSamDebugConfiguration').resolves()\n const codeConfig: AddSamDebugConfiguration.AddSamDebugConfigurationInput = {\n resourceName: 'codeResource',\n rootUri: vscode.Uri.file('path'),\n }\n const templateConfigs: AddSamDebugConfiguration.AddSamDebugConfigurationInput[] = [\n { resourceName: 'templateNoApi', rootUri: vscode.Uri.file('path') },\n ]\n\n await codeLensUtils.pickAddSamDebugConfiguration(codeConfig, templateConfigs, false)\n\n assert.strictEqual(addSamStub.args", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/shared/codelens/codeLensUtils.test.ts", + "start": 251, + "end": 263, + "startLoc": { + "line": 251, + "column": 2, + "position": 2105 + }, + "endLoc": { + "line": 263, + "column": 5, + "position": 2235 + } + }, + "secondFile": { + "name": "packages/core/src/test/shared/codelens/codeLensUtils.test.ts", + "start": 211, + "end": 223, + "startLoc": { + "line": 211, + "column": 2, + "position": 1659 + }, + "endLoc": { + "line": 223, + "column": 15, + "position": 1789 + } + } + }, + { + "format": "typescript", + "lines": 20, + "fragment": ",\n handlerName: scenario.handlerName,\n })\n\n assert.ok(resource)\n // Verify runtimes as a way of seeing if we got the correct resource when there is more\n // than one entry with the same handler.\n const runtime = CloudFormation.getStringForProperty(\n resource.Properties,\n 'Runtime',\n createBaseTemplate()\n )\n assert.strictEqual(runtime, scenario.expectedRuntime, 'Unexpected runtime resolved from SAM Template')\n })\n }\n\n for (const scenario of templateWithNonExistingHandlerScenarios) {\n it(`should throw for ${scenario.title}`, async () => {\n const templatePath = makeTemplatePath(scenario.templateFileName)\n const", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/shared/cloudformation/cloudformation.test.ts", + "start": 328, + "end": 347, + "startLoc": { + "line": 328, + "column": 10, + "position": 2264 + }, + "endLoc": { + "line": 347, + "column": 6, + "position": 2399 + } + }, + "secondFile": { + "name": "packages/core/src/test/shared/cloudformation/cloudformation.test.ts", + "start": 291, + "end": 311, + "startLoc": { + "line": 291, + "column": 13, + "position": 1978 + }, + "endLoc": { + "line": 311, + "column": 6, + "position": 2114 + } + } + }, + { + "format": "typescript", + "lines": 12, + "fragment": "(template.Resources!.resource!.Properties, 'Handler', template),\n undefined\n )\n })\n\n it('returns undefined if a ref to a string is provided', function () {\n const property: CloudFormation.Ref = {\n Ref: 'strParamVal',\n }\n const template = newTemplate()\n template.Resources!.resource!.Properties!.Handler = property\n assert.deepStrictEqual", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/shared/cloudformation/cloudformation.test.ts", + "start": 705, + "end": 716, + "startLoc": { + "line": 705, + "column": 20, + "position": 5101 + }, + "endLoc": { + "line": 716, + "column": 16, + "position": 5200 + } + }, + "secondFile": { + "name": "packages/core/src/test/shared/cloudformation/cloudformation.test.ts", + "start": 580, + "end": 591, + "startLoc": { + "line": 580, + "column": 21, + "position": 4046 + }, + "endLoc": { + "line": 591, + "column": 12, + "position": 4145 + } + } + }, + { + "format": "typescript", + "lines": 13, + "fragment": ")\n tester = await createWizardTester(new UploadLambdaWizard(undefined, invokePath))\n })\n afterEach(async function () {\n await fs.delete(tempDir, { recursive: true })\n })\n\n it('skip select directory, auto selected', function () {\n tester.lambda.region.assertShow(1)\n tester.uploadType.assertDoesNotShow()\n tester.uploadType.assertValue('directory')\n tester.targetUri.assertDoesNotShow()\n assert", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/lambda/wizards/uploadLambdaWizard.test.ts", + "start": 83, + "end": 95, + "startLoc": { + "line": 83, + "column": 2, + "position": 769 + }, + "endLoc": { + "line": 95, + "column": 7, + "position": 886 + } + }, + "secondFile": { + "name": "packages/core/src/test/lambda/wizards/uploadLambdaWizard.test.ts", + "start": 57, + "end": 69, + "startLoc": { + "line": 57, + "column": 8, + "position": 493 + }, + "endLoc": { + "line": 69, + "column": 7, + "position": 610 + } + } + }, + { + "format": "typescript", + "lines": 14, + "fragment": ",\n promptUserForParametersIfApplicable: async () => {\n throw new Error('Should skip configuring overrides')\n },\n })\n\n const wizard = new SamDeployWizard(context)\n const result = await wizard.run()\n\n assert.ok(result)\n assert.strictEqual(result!.parameterOverrides.size, 0)\n })\n\n it", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/lambda/wizards/samDeployWizard.test.ts", + "start": 322, + "end": 335, + "startLoc": { + "line": 322, + "column": 2, + "position": 2896 + }, + "endLoc": { + "line": 335, + "column": 3, + "position": 2990 + } + }, + "secondFile": { + "name": "packages/core/src/test/lambda/wizards/samDeployWizard.test.ts", + "start": 303, + "end": 315, + "startLoc": { + "line": 303, + "column": 2, + "position": 2687 + }, + "endLoc": { + "line": 315, + "column": 2, + "position": 2780 + } + } + }, + { + "format": "typescript", + "lines": 15, + "fragment": "}]]),\n getOverriddenParameters: async () => undefined,\n async promptUserForParametersIfApplicable(options): Promise {\n configureParameterOverridesArgs.push(options)\n\n return ParameterPromptResult.Cancel\n },\n })\n\n const wizard = new SamDeployWizard(context)\n const result = await wizard.run()\n\n assert.strictEqual(result, undefined)\n assert.strictEqual(configureParameterOverridesArgs.length, 1)\n assert.ok", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/lambda/wizards/samDeployWizard.test.ts", + "start": 385, + "end": 399, + "startLoc": { + "line": 385, + "column": 2, + "position": 3533 + }, + "endLoc": { + "line": 399, + "column": 3, + "position": 3651 + } + }, + "secondFile": { + "name": "packages/core/src/test/lambda/wizards/samDeployWizard.test.ts", + "start": 358, + "end": 372, + "startLoc": { + "line": 358, + "column": 2, + "position": 3268 + }, + "endLoc": { + "line": 372, + "column": 12, + "position": 3386 + } + } + }, + { + "format": "typescript", + "lines": 18, + "fragment": ",\n async promptUserForParametersIfApplicable(options): Promise {\n configureParameterOverridesArgs.push(options)\n\n return ParameterPromptResult.Cancel\n },\n })\n\n const wizard = new SamDeployWizard(context)\n const result = await wizard.run()\n\n assert.strictEqual(result, undefined)\n assert.strictEqual(configureParameterOverridesArgs.length, 1)\n assert.ok(configureParameterOverridesArgs[0].missingParameters)\n assert.strictEqual(configureParameterOverridesArgs[0].missingParameters!.has('myParam'), true)\n })\n\n it('stores existing overrides and continues without configuring overrides if there are no missing overrides'", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/lambda/wizards/samDeployWizard.test.ts", + "start": 412, + "end": 429, + "startLoc": { + "line": 412, + "column": 2, + "position": 3826 + }, + "endLoc": { + "line": 429, + "column": 106, + "position": 3966 + } + }, + "secondFile": { + "name": "packages/core/src/test/lambda/wizards/samDeployWizard.test.ts", + "start": 359, + "end": 403, + "startLoc": { + "line": 359, + "column": 10, + "position": 3286 + }, + "endLoc": { + "line": 403, + "column": 73, + "position": 3691 + } + } + }, + { + "format": "typescript", + "lines": 19, + "fragment": ", async function () {\n const workspaceFolderPath = normalizePath('my', 'workspace', 'folder')\n const templatePath = normalizePath(workspaceFolderPath, 'template.yaml')\n const wizard = new SamDeployWizard(\n new MockSamDeployWizardContext(\n extContext,\n [[vscode.Uri.file(workspaceFolderPath)]],\n [createQuickPickUriResponseItem(vscode.Uri.file(templatePath))],\n [createQuickPickRegionResponseItem('asdf')],\n ['mys3bucketname'],\n [],\n [],\n ['myStackName']\n )\n )\n const result = await wizard.run()\n\n assert.ok(result)\n assert.strictEqual(result!.s3Bucket", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/lambda/wizards/samDeployWizard.test.ts", + "start": 548, + "end": 566, + "startLoc": { + "line": 548, + "column": 33, + "position": 5076 + }, + "endLoc": { + "line": 566, + "column": 9, + "position": 5241 + } + }, + "secondFile": { + "name": "packages/core/src/test/lambda/wizards/samDeployWizard.test.ts", + "start": 236, + "end": 254, + "startLoc": { + "line": 236, + "column": 33, + "position": 2083 + }, + "endLoc": { + "line": 254, + "column": 9, + "position": 2248 + } + } + }, + { + "format": "typescript", + "lines": 11, + "fragment": ", async function () {\n const workspaceFolderPath = normalizePath('my', 'workspace', 'folder')\n const templatePath = normalizePath(workspaceFolderPath, 'template.yaml')\n\n const wizard = new SamDeployWizard(\n new MockSamDeployWizardContext(\n extContext,\n [[vscode.Uri.file(workspaceFolderPath)]],\n [createQuickPickUriResponseItem(vscode.Uri.file(templatePath))],\n [createQuickPickRegionResponseItem('asdf')],\n ['mys3bucketname',", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/lambda/wizards/samDeployWizard.test.ts", + "start": 571, + "end": 581, + "startLoc": { + "line": 571, + "column": 27, + "position": 5275 + }, + "endLoc": { + "line": 581, + "column": 2, + "position": 5385 + } + }, + "secondFile": { + "name": "packages/core/src/test/lambda/wizards/samDeployWizard.test.ts", + "start": 236, + "end": 245, + "startLoc": { + "line": 236, + "column": 33, + "position": 2083 + }, + "endLoc": { + "line": 245, + "column": 2, + "position": 2192 + } + } + }, + { + "format": "typescript", + "lines": 12, + "fragment": ", async function () {\n const workspaceFolderPath = normalizePath('my', 'workspace', 'folder')\n const templatePath = normalizePath(workspaceFolderPath, 'template.yaml')\n const wizard = new SamDeployWizard(\n new MockSamDeployWizardContext(\n extContext,\n [[vscode.Uri.file(workspaceFolderPath)]],\n [createQuickPickUriResponseItem(vscode.Uri.file(templatePath))],\n [createQuickPickRegionResponseItem('asdf')],\n ['mys3bucketname'],\n [],\n [{", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/lambda/wizards/samDeployWizard.test.ts", + "start": 595, + "end": 606, + "startLoc": { + "line": 595, + "column": 29, + "position": 5492 + }, + "endLoc": { + "line": 606, + "column": 2, + "position": 5611 + } + }, + "secondFile": { + "name": "packages/core/src/test/lambda/wizards/samDeployWizard.test.ts", + "start": 236, + "end": 247, + "startLoc": { + "line": 236, + "column": 33, + "position": 2083 + }, + "endLoc": { + "line": 247, + "column": 2, + "position": 2202 + } + } + }, + { + "format": "typescript", + "lines": 11, + "fragment": "{ repositoryUri: 'uri', repositoryName: 'name', repositoryArn: 'arn' }],\n ['myStackName'],\n true\n )\n )\n const result = await wizard.run()\n\n assert.ok(result)\n assert.strictEqual(result?.ecrRepo?.repositoryUri, 'uri')\n })\n }", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/lambda/wizards/samDeployWizard.test.ts", + "start": 606, + "end": 616, + "startLoc": { + "line": 606, + "column": 2, + "position": 5611 + }, + "endLoc": { + "line": 616, + "column": 2, + "position": 5695 + } + }, + "secondFile": { + "name": "packages/core/src/test/lambda/wizards/samDeployWizard.test.ts", + "start": 584, + "end": 595, + "startLoc": { + "line": 584, + "column": 2, + "position": 5404 + }, + "endLoc": { + "line": 595, + "column": 3, + "position": 5489 + } + } + }, + { + "format": "typescript", + "lines": 11, + "fragment": ", async function () {\n it('goes back when cancelled', async function () {\n const workspaceFolderPath = normalizePath('my', 'workspace', 'folder')\n const templatePath = normalizePath(workspaceFolderPath, 'template.yaml')\n const wizard = new SamDeployWizard(\n new MockSamDeployWizardContext(\n extContext,\n [[vscode.Uri.file(workspaceFolderPath)]],\n [createQuickPickUriResponseItem(vscode.Uri.file(templatePath))],\n [createQuickPickRegionResponseItem('asdf')],\n ['mys3bucketname1'", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/lambda/wizards/samDeployWizard.test.ts", + "start": 618, + "end": 628, + "startLoc": { + "line": 618, + "column": 13, + "position": 5703 + }, + "endLoc": { + "line": 628, + "column": 18, + "position": 5826 + } + }, + "secondFile": { + "name": "packages/core/src/test/lambda/wizards/samDeployWizard.test.ts", + "start": 570, + "end": 245, + "startLoc": { + "line": 570, + "column": 11, + "position": 5260 + }, + "endLoc": { + "line": 245, + "column": 17, + "position": 2191 + } + } + }, + { + "format": "typescript", + "lines": 19, + "fragment": ", async function () {\n const workspaceFolderPath = normalizePath('my', 'workspace', 'folder')\n const templatePath = normalizePath(workspaceFolderPath, 'template.yaml')\n const wizard = new SamDeployWizard(\n new MockSamDeployWizardContext(\n extContext,\n [[vscode.Uri.file(workspaceFolderPath)]],\n [createQuickPickUriResponseItem(vscode.Uri.file(templatePath))],\n [createQuickPickRegionResponseItem('asdf')],\n ['mys3bucketname'],\n [],\n [],\n ['myStackName']\n )\n )\n const result = await wizard.run()\n\n assert.ok(result)\n assert.strictEqual(result!.stackName", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/lambda/wizards/samDeployWizard.test.ts", + "start": 640, + "end": 658, + "startLoc": { + "line": 640, + "column": 34, + "position": 5904 + }, + "endLoc": { + "line": 658, + "column": 10, + "position": 6069 + } + }, + "secondFile": { + "name": "packages/core/src/test/lambda/wizards/samDeployWizard.test.ts", + "start": 236, + "end": 254, + "startLoc": { + "line": 236, + "column": 33, + "position": 2083 + }, + "endLoc": { + "line": 254, + "column": 9, + "position": 2248 + } + } + }, + { + "format": "typescript", + "lines": 33, + "fragment": ")\n })\n })\n describe('getSamplePayload', () => {\n let getSampleLambdaPayloadsStub: sinon.SinonStub\n let createQuickPickStub: sinon.SinonStub\n let promptUserStub: sinon.SinonStub\n let verifySinglePickerOutputStub: sinon.SinonStub\n let httpFetcherStub: sinon.SinonStub\n\n beforeEach(() => {\n getSampleLambdaPayloadsStub = sinon.stub(utils, 'getSampleLambdaPayloads')\n createQuickPickStub = sinon.stub(picker, 'createQuickPick')\n promptUserStub = sinon.stub(picker, 'promptUser')\n verifySinglePickerOutputStub = sinon.stub(picker, 'verifySinglePickerOutput')\n httpFetcherStub = sinon.stub(HttpResourceFetcher.prototype, 'get')\n })\n\n afterEach(() => {\n sinon.restore()\n })\n\n it('should return sample payload when user selects a sample', async () => {\n const mockPayloads = [{ name: 'testEvent', filename: 'testEvent.json' }]\n const mockSampleContent = '{ \"test\": \"data\" }'\n\n getSampleLambdaPayloadsStub.resolves(mockPayloads)\n createQuickPickStub.returns({})\n promptUserStub.resolves([{ label: 'testEvent', filename: 'testEvent.json' }])\n verifySinglePickerOutputStub.returns({ label: 'testEvent', filename: 'testEvent.json' })\n httpFetcherStub.resolves(createResponse(mockSampleContent))\n\n const result = await samInvokeWebview", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/lambda/vue/samInvokeBackend.test.ts", + "start": 135, + "end": 167, + "startLoc": { + "line": 135, + "column": 28, + "position": 1090 + }, + "endLoc": { + "line": 167, + "column": 17, + "position": 1409 + } + }, + "secondFile": { + "name": "packages/core/src/test/lambda/vue/remoteInvoke/invokeLambda.test.ts", + "start": 367, + "end": 400, + "startLoc": { + "line": 367, + "column": 11, + "position": 3152 + }, + "endLoc": { + "line": 400, + "column": 20, + "position": 3472 + } + } + }, + { + "format": "typescript", + "lines": 14, + "fragment": ".getSamplePayload()\n\n assert.strictEqual(result, mockSampleContent)\n })\n\n it('should throw an error if fetching sample data fails', async () => {\n getSampleLambdaPayloadsStub.resolves([{ name: 'testEvent', filename: 'testEvent.json' }])\n createQuickPickStub.returns({})\n promptUserStub.resolves([{ label: 'testEvent', filename: 'testEvent.json' }])\n verifySinglePickerOutputStub.returns({ label: 'testEvent', filename: 'testEvent.json' })\n httpFetcherStub.rejects(new Error('Fetch failed'))\n\n await assert.rejects(async () => {\n await samInvokeWebview", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/lambda/vue/samInvokeBackend.test.ts", + "start": 167, + "end": 180, + "startLoc": { + "line": 167, + "column": 17, + "position": 1410 + }, + "endLoc": { + "line": 180, + "column": 17, + "position": 1556 + } + }, + "secondFile": { + "name": "packages/core/src/test/lambda/vue/remoteInvoke/invokeLambda.test.ts", + "start": 400, + "end": 413, + "startLoc": { + "line": 400, + "column": 20, + "position": 3473 + }, + "endLoc": { + "line": 413, + "column": 20, + "position": 3619 + } + } + }, + { + "format": "typescript", + "lines": 20, + "fragment": ", () => {\n it('should return the base name of a file path', async () => {\n const tempFolder = await makeTemporaryToolkitFolder()\n const testCases = [{ input: vscode.Uri.file(path.join(tempFolder, 'file.txt')), expected: 'file.txt' }]\n\n for (const { input, expected } of testCases) {\n const result = samInvokeWebview.getFileName(input.fsPath)\n assert.strictEqual(result, expected, `getFileName(\"${input}\") should return \"${expected}\"`)\n\n // Double-check using Node's path.basename\n const nodeResult = path.basename(input.fsPath)\n assert.strictEqual(\n result,\n nodeResult,\n `getFileName result should match Node's path.basename for \"${input}\"`\n )\n }\n await fs.delete(tempFolder, { recursive: true })\n })\n it", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/lambda/vue/samInvokeBackend.test.ts", + "start": 390, + "end": 409, + "startLoc": { + "line": 390, + "column": 13, + "position": 3118 + }, + "endLoc": { + "line": 409, + "column": 3, + "position": 3327 + } + }, + "secondFile": { + "name": "packages/core/src/test/lambda/vue/samInvokeBackend.test.ts", + "start": 88, + "end": 107, + "startLoc": { + "line": 88, + "column": 14, + "position": 626 + }, + "endLoc": { + "line": 107, + "column": 2, + "position": 835 + } + } + }, + { + "format": "typescript", + "lines": 115, + "fragment": "describe('Sam Invoke Vue Backend', () => {\n describe('finalizeConfig', () => {\n it('prunes configs correctly', () => {\n const configs: { input: AwsSamDebuggerConfiguration; output: AwsSamDebuggerConfiguration }[] = [\n {\n input: {\n invokeTarget: {\n target: 'template',\n logicalId: 'foobar',\n templatePath: 'template.yaml',\n },\n name: 'noprune',\n type: 'aws-sam',\n request: 'direct-invoke',\n },\n output: {\n invokeTarget: {\n target: 'template',\n logicalId: 'foobar',\n templatePath: 'template.yaml',\n },\n name: 'noprune',\n type: 'aws-sam',\n request: 'direct-invoke',\n },\n },\n {\n input: {\n invokeTarget: {\n target: 'template',\n logicalId: 'foobar',\n templatePath: 'template.yaml',\n },\n lambda: {\n payload: {\n json: {},\n },\n },\n name: 'prunejson',\n type: 'aws-sam',\n request: 'direct-invoke',\n },\n output: {\n invokeTarget: {\n target: 'template',\n logicalId: 'foobar',\n templatePath: 'template.yaml',\n },\n name: 'prunejson',\n type: 'aws-sam',\n request: 'direct-invoke',\n },\n },\n {\n input: {\n invokeTarget: {\n target: 'template',\n logicalId: 'foobar',\n templatePath: 'template.yaml',\n },\n name: 'prunestr',\n type: 'aws-sam',\n request: 'direct-invoke',\n lambda: {\n runtime: '',\n },\n },\n output: {\n invokeTarget: {\n target: 'template',\n logicalId: 'foobar',\n templatePath: 'template.yaml',\n },\n name: 'prunestr',\n type: 'aws-sam',\n request: 'direct-invoke',\n },\n },\n {\n input: {\n invokeTarget: {\n target: 'template',\n logicalId: 'foobar',\n templatePath: 'template.yaml',\n },\n name: 'prunearr',\n type: 'aws-sam',\n request: 'direct-invoke',\n lambda: {\n pathMappings: [],\n },\n },\n output: {\n invokeTarget: {\n target: 'template',\n logicalId: 'foobar',\n templatePath: 'template.yaml',\n },\n name: 'prunearr',\n type: 'aws-sam',\n request: 'direct-invoke',\n },\n },\n ]\n\n for (const config of configs) {\n assert.deepStrictEqual(\n finalizeConfig(config.input, config.input.name),\n config.output,\n `Test failed for input: ${config.input.name}`\n )\n }\n })\n })\n})", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/lambda/vue/samInvoke.test.ts", + "start": 10, + "end": 124, + "startLoc": { + "line": 10, + "column": 1, + "position": 36 + }, + "endLoc": { + "line": 124, + "column": 2, + "position": 761 + } + }, + "secondFile": { + "name": "packages/core/src/test/lambda/vue/samInvokeBackend.test.ts", + "start": 231, + "end": 345, + "startLoc": { + "line": 231, + "column": 5, + "position": 2019 + }, + "endLoc": { + "line": 345, + "column": 2, + "position": 2745 + } + } + }, + { + "format": "typescript", + "lines": 12, + "fragment": ",\n },\n },\n }),\n }\n\n const actual = await getParameters(vscode.Uri.file(''), context)\n assert.strictEqual(actual.size, 1)\n\n const parameter = actual.get('MyParam')\n assert.ok(parameter)\n assert.strictEqual(parameter!.required, false", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/lambda/utilities/parameterUtils.test.ts", + "start": 65, + "end": 76, + "startLoc": { + "line": 65, + "column": 6, + "position": 518 + }, + "endLoc": { + "line": 76, + "column": 6, + "position": 608 + } + }, + "secondFile": { + "name": "packages/core/src/test/lambda/utilities/parameterUtils.test.ts", + "start": 45, + "end": 56, + "startLoc": { + "line": 45, + "column": 9, + "position": 355 + }, + "endLoc": { + "line": 56, + "column": 5, + "position": 445 + } + } + }, + { + "format": "typescript", + "lines": 14, + "fragment": ",\n },\n },\n }),\n }\n\n const actual = await getParameters(vscode.Uri.file(''), context)\n assert.strictEqual(actual.size, 1)\n\n const parameter = actual.get('MyParam')\n assert.ok(parameter)\n assert.strictEqual(parameter!.required, false)\n })\n }", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/lambda/utilities/parameterUtils.test.ts", + "start": 85, + "end": 98, + "startLoc": { + "line": 85, + "column": 5, + "position": 681 + }, + "endLoc": { + "line": 98, + "column": 2, + "position": 779 + } + }, + "secondFile": { + "name": "packages/core/src/test/lambda/utilities/parameterUtils.test.ts", + "start": 45, + "end": 79, + "startLoc": { + "line": 45, + "column": 9, + "position": 355 + }, + "endLoc": { + "line": 79, + "column": 3, + "position": 617 + } + } + }, + { + "format": "typescript", + "lines": 26, + "fragment": "))\n await registry.addItem(templatePath)\n\n const input = {\n name: 'fake-launch-config',\n workspaceFolder: fakeWorkspaceFolder,\n codeRoot: fakeWorkspaceFolder.uri.fsPath,\n runtimeFamily: RuntimeFamily.DotNet,\n request: 'launch',\n type: 'launch',\n runtime: 'fakedotnet' as Runtime,\n handlerName: 'fakehandlername',\n envFile: '/fake/build/dir/env-vars.json',\n eventPayloadFile: '/fake/build/dir/event.json',\n documentUri: vscode.Uri.parse('/fake/path/foo.txt'),\n templatePath: '/fake/sam/path',\n invokeTarget: {\n target: 'template',\n templatePath: templatePath.fsPath,\n logicalId: 'HelloWorldFunction',\n lambdaHandler: 'fakehandlername',\n projectRoot: fakeWorkspaceFolder.uri.fsPath,\n },\n } as SamLaunchRequestArgs\n\n assert.strictEqual(await isImageLambdaConfig(input), false", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/lambda/local/debugConfiguration.test.ts", + "start": 169, + "end": 194, + "startLoc": { + "line": 169, + "column": 40, + "position": 1442 + }, + "endLoc": { + "line": 194, + "column": 6, + "position": 1638 + } + }, + "secondFile": { + "name": "packages/core/src/test/lambda/local/debugConfiguration.test.ts", + "start": 140, + "end": 165, + "startLoc": { + "line": 140, + "column": 40, + "position": 1202 + }, + "endLoc": { + "line": 165, + "column": 5, + "position": 1398 + } + } + }, + { + "format": "typescript", + "lines": 13, + "fragment": "const input = {\n name: 'fake-launch-config',\n workspaceFolder: fakeWorkspaceFolder,\n codeRoot: fakeWorkspaceFolder.uri.fsPath,\n runtimeFamily: RuntimeFamily.DotNet,\n request: 'launch',\n type: 'launch',\n runtime: 'fakedotnet' as Runtime,\n handlerName: 'fakehandlername',\n envFile: '/fake/build/dir/env-vars.json',\n eventPayloadFile: '/fake/build/dir/event.json',\n documentUri: vscode.Uri.parse('/fake/path/foo.txt'),\n invokeTarget", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/lambda/local/debugConfiguration.test.ts", + "start": 198, + "end": 210, + "startLoc": { + "line": 198, + "column": 9, + "position": 1662 + }, + "endLoc": { + "line": 210, + "column": 13, + "position": 1765 + } + }, + "secondFile": { + "name": "packages/core/src/test/lambda/local/debugConfiguration.test.ts", + "start": 143, + "end": 155, + "startLoc": { + "line": 143, + "column": 9, + "position": 1217 + }, + "endLoc": { + "line": 155, + "column": 13, + "position": 1320 + } + } + }, + { + "format": "typescript", + "lines": 13, + "fragment": ")\n })\n\n it('instantiates without issue', function () {\n assert.ok(testNode)\n })\n\n it('initializes the parent node', function () {\n assert.equal(testNode.parent, functionNode, 'unexpected parent node')\n })\n\n it('initializes the label', function () {\n assert.equal(testNode.label, fakeFilename", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/lambda/explorer/lambdaFunctionFileNode.test.ts", + "start": 30, + "end": 42, + "startLoc": { + "line": 30, + "column": 9, + "position": 207 + }, + "endLoc": { + "line": 42, + "column": 13, + "position": 297 + } + }, + "secondFile": { + "name": "packages/core/src/test/lambda/explorer/lambdaFunctionFolderNode.test.ts", + "start": 37, + "end": 49, + "startLoc": { + "line": 37, + "column": 2, + "position": 319 + }, + "endLoc": { + "line": 49, + "column": 14, + "position": 409 + } + } + }, + { + "format": "typescript", + "lines": 13, + "fragment": "const context = new MockLoadTemplatesConfigContext({\n readFile: async (pathLike) => rawJson,\n })\n\n const config = await load('', context)\n\n assert.ok(config)\n assert.ok(config.templates)\n assert.strictEqual(Object.getOwnPropertyNames(config.templates).length, 1)\n\n const template = config.templates['relative/path/to/template.yaml']\n assert.ok(template)\n assert.strictEqual(Object.getOwnPropertyNames(template).length, 1", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/lambda/config/templates.test.ts", + "start": 74, + "end": 86, + "startLoc": { + "line": 74, + "column": 13, + "position": 499 + }, + "endLoc": { + "line": 86, + "column": 2, + "position": 625 + } + }, + "secondFile": { + "name": "packages/core/src/test/lambda/config/templates.test.ts", + "start": 47, + "end": 59, + "startLoc": { + "line": 47, + "column": 13, + "position": 339 + }, + "endLoc": { + "line": 59, + "column": 2, + "position": 465 + } + } + }, + { + "format": "typescript", + "lines": 16, + "fragment": "const context = new MockLoadTemplatesConfigContext({\n readFile: async (pathLike) => rawJson,\n })\n\n const config = await load('', context)\n\n assert.ok(config)\n assert.ok(config.templates)\n assert.strictEqual(Object.getOwnPropertyNames(config.templates).length, 1)\n\n const template = config.templates['relative/path/to/template.yaml']\n assert.ok(template)\n assert.strictEqual(Object.getOwnPropertyNames(template).length, 0)\n })\n\n it('reads the correct path'", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/lambda/config/templates.test.ts", + "start": 163, + "end": 178, + "startLoc": { + "line": 163, + "column": 13, + "position": 1137 + }, + "endLoc": { + "line": 178, + "column": 25, + "position": 1274 + } + }, + "secondFile": { + "name": "packages/core/src/test/lambda/config/templates.test.ts", + "start": 47, + "end": 62, + "startLoc": { + "line": 47, + "column": 13, + "position": 339 + }, + "endLoc": { + "line": 62, + "column": 46, + "position": 476 + } + } + }, + { + "format": "typescript", + "lines": 15, + "fragment": "const expectedJson: string = String.raw`{\n \"templates\": {\n \"someprocessor\": {}\n }\n}`\n\n const results = new TemplatesConfigPopulator(inputJson, testModificationOptions)\n .ensureTemplateSectionExists('someprocessor')\n .getResults()\n\n assert.strictEqual(results.isDirty, true, 'Expected results to be dirty')\n assert.strictEqual(JSON.stringify(results.json), JSON.stringify(expectedJson))\n })\n\n it('errs with invalid templates type'", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/lambda/config/templates.test.ts", + "start": 299, + "end": 313, + "startLoc": { + "line": 299, + "column": 13, + "position": 2205 + }, + "endLoc": { + "line": 313, + "column": 35, + "position": 2298 + } + }, + "secondFile": { + "name": "packages/core/src/test/lambda/config/templates.test.ts", + "start": 280, + "end": 294, + "startLoc": { + "line": 280, + "column": 13, + "position": 2083 + }, + "endLoc": { + "line": 294, + "column": 35, + "position": 2176 + } + } + }, + { + "format": "typescript", + "lines": 21, + "fragment": "const expectedJson: string = String.raw`{\n \"templates\": {\n \"someprocessor\": {\n \"handlers\": {\n \"processor\": {\n \"event\": {},\n \"environmentVariables\": {}\n }\n }\n }\n }\n}`\n\n const results = new TemplatesConfigPopulator(inputJson, testModificationOptions)\n .ensureTemplateHandlerSectionExists('someprocessor', 'processor')\n .getResults()\n\n assert.strictEqual(results.isDirty, true, 'Expected results to be dirty')\n assert.strictEqual(JSON.stringify(results.json), JSON.stringify(expectedJson))\n })\n }", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/lambda/config/templates.test.ts", + "start": 464, + "end": 484, + "startLoc": { + "line": 464, + "column": 13, + "position": 3059 + }, + "endLoc": { + "line": 484, + "column": 2, + "position": 3152 + } + }, + "secondFile": { + "name": "packages/core/src/test/lambda/config/templates.test.ts", + "start": 434, + "end": 455, + "startLoc": { + "line": 434, + "column": 13, + "position": 2934 + }, + "endLoc": { + "line": 455, + "column": 3, + "position": 3028 + } + } + }, + { + "format": "typescript", + "lines": 21, + "fragment": "const expectedJson: string = String.raw`{\n \"templates\": {\n \"someprocessor\": {\n \"handlers\": {\n \"processor\": {\n \"event\": {},\n \"environmentVariables\": {}\n }\n }\n }\n }\n}`\n\n const results = new TemplatesConfigPopulator(inputJson, testModificationOptions)\n .ensureTemplateHandlerPropertiesExist('someprocessor', 'processor')\n .getResults()\n\n assert.strictEqual(results.isDirty, true, 'Expected results to be dirty')\n assert.strictEqual(JSON.stringify(results.json), JSON.stringify(expectedJson))\n })\n }", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/lambda/config/templates.test.ts", + "start": 641, + "end": 661, + "startLoc": { + "line": 641, + "column": 13, + "position": 3814 + }, + "endLoc": { + "line": 661, + "column": 2, + "position": 3907 + } + }, + "secondFile": { + "name": "packages/core/src/test/lambda/config/templates.test.ts", + "start": 573, + "end": 594, + "startLoc": { + "line": 573, + "column": 13, + "position": 3564 + }, + "endLoc": { + "line": 594, + "column": 3, + "position": 3658 + } + } + }, + { + "format": "typescript", + "lines": 18, + "fragment": "const expectedJson: string = String.raw`{\n \"templates\": {\n \"someprocessor\": {\n \"parameterOverrides\": {\n \"myParam\": \"\"\n }\n }\n }\n}`\n const { isDirty, json } = new TemplatesConfigPopulator(inputJson, testModificationOptions)\n .ensureTemplateParameterOverrideExists('someprocessor', 'myParam')\n .getResults()\n\n assert.strictEqual(JSON.stringify(json), JSON.stringify(expectedJson))\n assert.strictEqual(isDirty, true, 'Expected results to be dirty')\n })\n\n it('does not overwrite existing overrides'", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/lambda/config/templates.test.ts", + "start": 699, + "end": 716, + "startLoc": { + "line": 699, + "column": 13, + "position": 4085 + }, + "endLoc": { + "line": 716, + "column": 40, + "position": 4183 + } + }, + "secondFile": { + "name": "packages/core/src/test/lambda/config/templates.test.ts", + "start": 672, + "end": 689, + "startLoc": { + "line": 672, + "column": 13, + "position": 3958 + }, + "endLoc": { + "line": 689, + "column": 49, + "position": 4056 + } + } + }, + { + "format": "typescript", + "lines": 12, + "fragment": ",\n })\n )\n\n const document: vscode.TextDocument = {\n uri: vscode.Uri.file(path.join('my', 'path')),\n } as any as vscode.TextDocument\n const actualItems = await getProvidedItems(document, provider, new vscode.Position(0, 0))\n\n assert.ok(actualItems)\n assert.strictEqual(actualItems.length, 0)\n }", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/lambda/config/samParameterCompletionItemProvider.test.ts", + "start": 157, + "end": 168, + "startLoc": { + "line": 157, + "column": 16, + "position": 1377 + }, + "endLoc": { + "line": 168, + "column": 2, + "position": 1489 + } + }, + "secondFile": { + "name": "packages/core/src/test/lambda/config/samParameterCompletionItemProvider.test.ts", + "start": 134, + "end": 145, + "startLoc": { + "line": 134, + "column": 2, + "position": 1114 + }, + "endLoc": { + "line": 145, + "column": 7, + "position": 1226 + } + } + }, + { + "format": "typescript", + "lines": 15, + "fragment": ",\n getWorkspaceFolder: () => ({ uri: vscode.Uri.file('') }) as any as vscode.WorkspaceFolder,\n })\n )\n\n const document: vscode.TextDocument = {\n uri: vscode.Uri.file(path.join('my', 'path')),\n } as any as vscode.TextDocument\n const actualItems = await getProvidedItems(document, provider, new vscode.Position(0, 0))\n\n assert.ok(actualItems)\n assert.strictEqual(actualItems.length, 0)\n })\n\n it('suggests all parameter names if user has not started typing the parameter name'", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/lambda/config/samParameterCompletionItemProvider.test.ts", + "start": 173, + "end": 187, + "startLoc": { + "line": 173, + "column": 2, + "position": 1551 + }, + "endLoc": { + "line": 187, + "column": 81, + "position": 1708 + } + }, + "secondFile": { + "name": "packages/core/src/test/lambda/config/samParameterCompletionItemProvider.test.ts", + "start": 156, + "end": 170, + "startLoc": { + "line": 156, + "column": 4, + "position": 1339 + }, + "endLoc": { + "line": 170, + "column": 64, + "position": 1496 + } + } + }, + { + "format": "typescript", + "lines": 15, + "fragment": ", async function () {\n const templatesSymbol = createTemplatesSymbol({\n includeOverrides: true,\n parameterName: 'myParamName',\n })\n\n const template: CloudFormation.Template = {\n Parameters: {\n MyParamName1: {\n Type: 'String',\n },\n MyParamName2: {\n Type: 'String',\n },\n MyOtherParamName", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/lambda/config/samParameterCompletionItemProvider.test.ts", + "start": 219, + "end": 233, + "startLoc": { + "line": 219, + "column": 87, + "position": 2010 + }, + "endLoc": { + "line": 233, + "column": 17, + "position": 2106 + } + }, + "secondFile": { + "name": "packages/core/src/test/lambda/config/samParameterCompletionItemProvider.test.ts", + "start": 187, + "end": 201, + "startLoc": { + "line": 187, + "column": 81, + "position": 1709 + }, + "endLoc": { + "line": 201, + "column": 2, + "position": 1805 + } + } + }, + { + "format": "typescript", + "lines": 11, + "fragment": ": {\n Type: 'String',\n },\n },\n }\n const provider = getTestProviderWithTemplate(template, templatesSymbol)\n\n const document: vscode.TextDocument = {\n uri: vscode.Uri.file(path.join('.aws', 'templates.json')),\n getWordRangeAtPosition: () => new vscode.Range(3, 0, 3, 10),\n getText: () => 'MyParamName'", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/lambda/config/samParameterCompletionItemProvider.test.ts", + "start": 233, + "end": 243, + "startLoc": { + "line": 233, + "column": 17, + "position": 2107 + }, + "endLoc": { + "line": 243, + "column": 14, + "position": 2218 + } + }, + "secondFile": { + "name": "packages/core/src/test/lambda/config/samParameterCompletionItemProvider.test.ts", + "start": 198, + "end": 208, + "startLoc": { + "line": 198, + "column": 13, + "position": 1789 + }, + "endLoc": { + "line": 208, + "column": 3, + "position": 1900 + } + } + }, + { + "format": "typescript", + "lines": 12, + "fragment": ",\n } as any as vscode.TextDocument\n\n const actualItems = await getProvidedItems(document, provider, new vscode.Position(3, 0))\n\n assert.ok(actualItems)\n assert.strictEqual(actualItems.length, 2)\n assert.strictEqual(actualItems[0].insertText, 'MyParamName1')\n assert.strictEqual(actualItems[1].insertText, 'MyParamName2')\n })\n\n it('recovers gracefully if templates.json is empty or invalid'", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/lambda/config/samParameterCompletionItemProvider.test.ts", + "start": 243, + "end": 254, + "startLoc": { + "line": 243, + "column": 14, + "position": 2219 + }, + "endLoc": { + "line": 254, + "column": 60, + "position": 2327 + } + }, + "secondFile": { + "name": "packages/core/src/test/lambda/config/samParameterCompletionItemProvider.test.ts", + "start": 208, + "end": 219, + "startLoc": { + "line": 208, + "column": 3, + "position": 1901 + }, + "endLoc": { + "line": 219, + "column": 87, + "position": 2009 + } + } + }, + { + "format": "typescript", + "lines": 28, + "fragment": ", async function () {\n const templatesSymbol = createTemplatesSymbol({\n includeOverrides: true,\n parameterName: 'myParamName',\n })\n\n const template: CloudFormation.Template = {\n Parameters: {\n MyParamName1: {\n Type: 'String',\n },\n MyParamName2: {\n Type: 'String',\n },\n MyOtherParamName: {\n Type: 'String',\n },\n },\n }\n const provider = getTestProviderWithTemplate(template, templatesSymbol)\n\n const document: vscode.TextDocument = {\n uri: vscode.Uri.file(path.join('.aws', 'templates.json')),\n getWordRangeAtPosition: () => new vscode.Range(3, 0, 3, 10),\n getText: () => 'MyParamName',\n } as any as vscode.TextDocument\n\n const actualItems = await getProvidedItems(document, provider, new vscode.Position(11", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/lambda/config/samParameterCompletionItemProvider.test.ts", + "start": 272, + "end": 299, + "startLoc": { + "line": 272, + "column": 71, + "position": 2524 + }, + "endLoc": { + "line": 299, + "column": 3, + "position": 2772 + } + }, + "secondFile": { + "name": "packages/core/src/test/lambda/config/samParameterCompletionItemProvider.test.ts", + "start": 187, + "end": 246, + "startLoc": { + "line": 187, + "column": 81, + "position": 1709 + }, + "endLoc": { + "line": 246, + "column": 2, + "position": 2258 + } + } + }, + { + "format": "typescript", + "lines": 29, + "fragment": "})\n const template: CloudFormation.Template = {\n Parameters: {\n MyParamName1: {\n Type: 'String',\n },\n MyParamName2: {\n Type: 'String',\n },\n MyOtherParamName: {\n Type: 'String',\n },\n },\n }\n const provider = getTestProviderWithTemplate(template, templatesSymbol)\n\n const document: vscode.TextDocument = {\n uri: vscode.Uri.file(path.join('.aws', 'templates.json')),\n getWordRangeAtPosition: () => new vscode.Range(3, 0, 3, 10),\n getText: () => 'MyParamName',\n } as any as vscode.TextDocument\n\n const actualItems = await getProvidedItems(document, provider, new vscode.Position(11, 0))\n\n assert.ok(actualItems)\n assert.strictEqual(actualItems.length, 0)\n })\n\n it('recovers gracefully if cursor is not within the `parameterOverrides` property'", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/lambda/config/samParameterCompletionItemProvider.test.ts", + "start": 306, + "end": 334, + "startLoc": { + "line": 306, + "column": 2, + "position": 2831 + }, + "endLoc": { + "line": 334, + "column": 80, + "position": 3078 + } + }, + "secondFile": { + "name": "packages/core/src/test/lambda/config/samParameterCompletionItemProvider.test.ts", + "start": 223, + "end": 305, + "startLoc": { + "line": 223, + "column": 9, + "position": 2047 + }, + "endLoc": { + "line": 305, + "column": 79, + "position": 2809 + } + } + }, + { + "format": "typescript", + "lines": 28, + "fragment": ", async function () {\n const templatesSymbol = createTemplatesSymbol({\n includeOverrides: true,\n parameterName: 'myParamName',\n })\n\n const template: CloudFormation.Template = {\n Parameters: {\n MyParamName1: {\n Type: 'String',\n },\n MyParamName2: {\n Type: 'String',\n },\n MyOtherParamName: {\n Type: 'String',\n },\n },\n }\n const provider = getTestProviderWithTemplate(template, templatesSymbol)\n\n const document: vscode.TextDocument = {\n uri: vscode.Uri.file(path.join('.aws', 'templates.json')),\n getWordRangeAtPosition: () => new vscode.Range(3, 0, 3, 10),\n getText: () => 'MyParamName',\n } as any as vscode.TextDocument\n\n const actualItems = await getProvidedItems(document, provider, new vscode.Position(9", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/lambda/config/samParameterCompletionItemProvider.test.ts", + "start": 334, + "end": 361, + "startLoc": { + "line": 334, + "column": 80, + "position": 3079 + }, + "endLoc": { + "line": 361, + "column": 2, + "position": 3327 + } + }, + "secondFile": { + "name": "packages/core/src/test/lambda/config/samParameterCompletionItemProvider.test.ts", + "start": 187, + "end": 246, + "startLoc": { + "line": 187, + "column": 81, + "position": 1709 + }, + "endLoc": { + "line": 246, + "column": 2, + "position": 2258 + } + } + }, + { + "format": "typescript", + "lines": 28, + "fragment": ", async function () {\n const templatesSymbol = createTemplatesSymbol({\n includeOverrides: true,\n parameterName: 'myParamName',\n })\n\n const template: CloudFormation.Template = {\n Parameters: {\n MyParamName1: {\n Type: 'String',\n },\n MyParamName2: {\n Type: 'String',\n },\n MyOtherParamName: {\n Type: 'String',\n },\n },\n }\n const provider = getTestProviderWithTemplate(template, templatesSymbol)\n\n const document: vscode.TextDocument = {\n uri: vscode.Uri.file(path.join('.aws', 'templates.json')),\n getWordRangeAtPosition: () => new vscode.Range(3, 0, 3, 10),\n getText: () => 'MyParamName',\n } as any as vscode.TextDocument\n\n const actualItems = await getProvidedItems(document, provider, new vscode.Position(4", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/lambda/config/samParameterCompletionItemProvider.test.ts", + "start": 367, + "end": 394, + "startLoc": { + "line": 367, + "column": 90, + "position": 3365 + }, + "endLoc": { + "line": 394, + "column": 2, + "position": 3613 + } + }, + "secondFile": { + "name": "packages/core/src/test/lambda/config/samParameterCompletionItemProvider.test.ts", + "start": 187, + "end": 246, + "startLoc": { + "line": 187, + "column": 81, + "position": 1709 + }, + "endLoc": { + "line": 246, + "column": 2, + "position": 2258 + } + } + }, + { + "format": "typescript", + "lines": 12, + "fragment": "const [arg] = addDebugStub.lastCall.args\n assert.ok(\n pathutils.areEqual(\n fakeWorkspaceFolder.uri.fsPath,\n (arg[0].invokeTarget as TemplateTargetProperties).templatePath,\n tempTemplate.fsPath,\n true\n )\n )\n assert.ok(launchConfigs)\n const matchingConfigs = launchConfigs?.filter((config) => {\n return (", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/lambda/commands/createNewSamApp.test.ts", + "start": 162, + "end": 173, + "startLoc": { + "line": 162, + "column": 13, + "position": 1443 + }, + "endLoc": { + "line": 173, + "column": 2, + "position": 1540 + } + }, + "secondFile": { + "name": "packages/core/src/test/lambda/commands/createNewSamApp.test.ts", + "start": 127, + "end": 138, + "startLoc": { + "line": 127, + "column": 13, + "position": 1175 + }, + "endLoc": { + "line": 138, + "column": 10, + "position": 1272 + } + } + }, + { + "format": "typescript", + "lines": 12, + "fragment": ", async function () {\n const context: SchemaCodeDownloadWizardContext = new MockSchemaCodeDownloadWizardContext(\n [],\n Set([JAVA]),\n 'schemaVersion3',\n [vscode.Uri.file(path.join('my', 'workspace', 'folder'))]\n )\n const wizard = new SchemaCodeDownloadWizard(context)\n const args = await wizard.run()\n\n assert.ok(args)\n assert.strictEqual(args!.language", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/eventSchemas/wizards/schemaCodeDownloadWizard.test.ts", + "start": 167, + "end": 178, + "startLoc": { + "line": 167, + "column": 33, + "position": 1503 + }, + "endLoc": { + "line": 178, + "column": 9, + "position": 1622 + } + }, + "secondFile": { + "name": "packages/core/src/test/eventSchemas/wizards/schemaCodeDownloadWizard.test.ts", + "start": 137, + "end": 149, + "startLoc": { + "line": 137, + "column": 38, + "position": 1228 + }, + "endLoc": { + "line": 149, + "column": 14, + "position": 1348 + } + } + }, + { + "format": "typescript", + "lines": 11, + "fragment": ",\n [vscode.Uri.file(path.join('my', 'workspace', 'folder'))]\n )\n const wizard = new SchemaCodeDownloadWizard(context)\n const args = await wizard.run()\n\n assert.ok(!args)\n })\n })\n\n describe('location'", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/eventSchemas/wizards/schemaCodeDownloadWizard.test.ts", + "start": 185, + "end": 195, + "startLoc": { + "line": 185, + "column": 2, + "position": 1684 + }, + "endLoc": { + "line": 195, + "column": 11, + "position": 1763 + } + }, + "secondFile": { + "name": "packages/core/src/test/eventSchemas/wizards/schemaCodeDownloadWizard.test.ts", + "start": 156, + "end": 166, + "startLoc": { + "line": 156, + "column": 3, + "position": 1408 + }, + "endLoc": { + "line": 166, + "column": 11, + "position": 1487 + } + } + }, + { + "format": "typescript", + "lines": 11, + "fragment": ",\n [vscode.Uri.file(locationPath)]\n )\n const wizard = new SchemaCodeDownloadWizard(context)\n const args = await wizard.run()\n\n assert.ok(args)\n assert.strictEqual(args!.location.fsPath, `${path.sep}${locationPath}`)\n })\n\n it('contains an option for each workspace folder'", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/eventSchemas/wizards/schemaCodeDownloadWizard.test.ts", + "start": 234, + "end": 244, + "startLoc": { + "line": 234, + "column": 5, + "position": 2203 + }, + "endLoc": { + "line": 244, + "column": 47, + "position": 2291 + } + }, + "secondFile": { + "name": "packages/core/src/test/eventSchemas/wizards/schemaCodeDownloadWizard.test.ts", + "start": 201, + "end": 211, + "startLoc": { + "line": 201, + "column": 12, + "position": 1847 + }, + "endLoc": { + "line": 211, + "column": 28, + "position": 1935 + } + } + }, + { + "format": "typescript", + "lines": 13, + "fragment": ", client, testCredentials)\n\n assert.ok(\n cacheData.credentialsRegionDataList.length === 1,\n 'Cache should contain data for a single credential'\n )\n assert.strictEqual(\n cacheData.credentialsRegionDataList[0].credentials,\n testCredentials,\n 'Credentials key should match'\n )\n assert.ok(\n cacheData.credentialsRegionDataList[0].regionDataList.length === 1", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/eventSchemas/providers/schemasDataProvider.test.ts", + "start": 166, + "end": 178, + "startLoc": { + "line": 166, + "column": 14, + "position": 1371 + }, + "endLoc": { + "line": 178, + "column": 2, + "position": 1451 + } + }, + "secondFile": { + "name": "packages/core/src/test/eventSchemas/providers/schemasDataProvider.test.ts", + "start": 69, + "end": 81, + "startLoc": { + "line": 69, + "column": 12, + "position": 627 + }, + "endLoc": { + "line": 81, + "column": 2, + "position": 707 + } + } + }, + { + "format": "typescript", + "lines": 31, + "fragment": ", function () {\n let tempFolder: string\n let sandbox: sinon.SinonSandbox\n let destinationDirectory: vscode.Uri\n let request: SchemaCodeDownloadRequestDetails\n beforeEach(async function () {\n tempFolder = await makeTemporaryToolkitFolder()\n sandbox = sinon.createSandbox()\n destinationDirectory = vscode.Uri.file(tempFolder)\n\n request = {\n registryName: testRegistryName,\n schemaName: testSchemaName,\n language: language,\n schemaVersion: schemaVersion,\n destinationDirectory: destinationDirectory,\n schemaCoreCodeFileName: testSchemaName.concat('.java'),\n }\n })\n\n afterEach(async function () {\n sandbox.restore()\n await fs.delete(tempFolder, { recursive: true })\n })\n const testSchemaName = 'testSchema'\n const testRegistryName = 'testRegistry'\n\n const language = 'Java8'\n const schemaVersion = 'testVersion'\n\n enum", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/eventSchemas/commands/downloadSchemaItemCode.test.ts", + "start": 110, + "end": 140, + "startLoc": { + "line": 110, + "column": 16, + "position": 835 + }, + "endLoc": { + "line": 140, + "column": 5, + "position": 1073 + } + }, + "secondFile": { + "name": "packages/core/src/test/eventSchemas/commands/downloadSchemaItemCode.test.ts", + "start": 30, + "end": 59, + "startLoc": { + "line": 30, + "column": 17, + "position": 171 + }, + "endLoc": { + "line": 59, + "column": 6, + "position": 408 + } + } + }, + { + "format": "typescript", + "lines": 31, + "fragment": ", function () {\n let tempFolder: string\n let sandbox: sinon.SinonSandbox\n let destinationDirectory: vscode.Uri\n let request: SchemaCodeDownloadRequestDetails\n beforeEach(async function () {\n tempFolder = await makeTemporaryToolkitFolder()\n sandbox = sinon.createSandbox()\n destinationDirectory = vscode.Uri.file(tempFolder)\n\n request = {\n registryName: testRegistryName,\n schemaName: testSchemaName,\n language: language,\n schemaVersion: schemaVersion,\n destinationDirectory: destinationDirectory,\n schemaCoreCodeFileName: testSchemaName.concat('.java'),\n }\n })\n\n afterEach(async function () {\n sandbox.restore()\n await fs.delete(tempFolder, { recursive: true })\n })\n const testSchemaName = 'testSchema'\n const testRegistryName = 'testRegistry'\n\n const language = 'Java8'\n const schemaVersion = 'testVersion'\n\n const retryIntervalMs", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/eventSchemas/commands/downloadSchemaItemCode.test.ts", + "start": 183, + "end": 213, + "startLoc": { + "line": 183, + "column": 28, + "position": 1417 + }, + "endLoc": { + "line": 213, + "column": 16, + "position": 1657 + } + }, + "secondFile": { + "name": "packages/core/src/test/eventSchemas/commands/downloadSchemaItemCode.test.ts", + "start": 30, + "end": 59, + "startLoc": { + "line": 30, + "column": 17, + "position": 171 + }, + "endLoc": { + "line": 59, + "column": 13, + "position": 410 + } + } + }, + { + "format": "typescript", + "lines": 15, + "fragment": "beforeEach(async function () {\n tempFolder = await makeTemporaryToolkitFolder()\n sandbox = sinon.createSandbox()\n destinationDirectory = vscode.Uri.file(tempFolder)\n\n request = {\n registryName: testRegistryName,\n schemaName: testSchemaName,\n language: language,\n schemaVersion: schemaVersion,\n destinationDirectory: destinationDirectory,\n schemaCoreCodeFileName: testSchemaName.concat('.java'),\n }\n\n fileName", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/eventSchemas/commands/downloadSchemaItemCode.test.ts", + "start": 334, + "end": 348, + "startLoc": { + "line": 334, + "column": 5, + "position": 2632 + }, + "endLoc": { + "line": 348, + "column": 9, + "position": 2739 + } + }, + "secondFile": { + "name": "packages/core/src/test/eventSchemas/commands/downloadSchemaItemCode.test.ts", + "start": 35, + "end": 48, + "startLoc": { + "line": 35, + "column": 5, + "position": 217 + }, + "endLoc": { + "line": 48, + "column": 2, + "position": 323 + } + } + }, + { + "format": "typescript", + "lines": 17, + "fragment": ")\n\n const fileName1 = 'test.txt'\n const zipFileName = path.join(destinationDirectory, 'test.zip')\n const expectedFileContent = 'First file content'\n\n // Initialize a destination directory and file\n const zipHandler = createZipFileInTempDirectory(fileName1, expectedFileContent, zipFileName)\n zipHandler.extractAllTo(destinationDirectory)\n\n // same file name - collision occurs\n const fileName2 = fileName1\n const zip = new admZip()\n zip.addFile(fileName2, Buffer.from('Second file content'))\n const buffer = zip.toBuffer()\n\n await assert", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/eventSchemas/commands/downloadSchemaItemCode.test.ts", + "start": 614, + "end": 630, + "startLoc": { + "line": 614, + "column": 6, + "position": 5161 + }, + "endLoc": { + "line": 630, + "column": 7, + "position": 5288 + } + }, + "secondFile": { + "name": "packages/core/src/test/eventSchemas/commands/downloadSchemaItemCode.test.ts", + "start": 562, + "end": 578, + "startLoc": { + "line": 562, + "column": 2, + "position": 4685 + }, + "endLoc": { + "line": 578, + "column": 14, + "position": 4812 + } + } + }, + { + "format": "typescript", + "lines": 17, + "fragment": "] })\n const fakeDefinition = JSON.stringify({\n fooProperty: 'foo',\n barProperty: 'bar',\n })\n const document = await vscode.workspace.openTextDocument({\n content: fakeDefinition,\n })\n\n const diagnostics = getDiagnostics(schema, document)\n assert.strictEqual(diagnostics.length, 1)\n\n const diagnostic = diagnostics[0]\n assert.strictEqual(diagnostic.severity, vscode.DiagnosticSeverity.Information)\n assert.strictEqual(\n diagnostic.message,\n '\"barProperty\" is a create-only property and cannot be modified on an existing resource'", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/dynamicResources/commands/openResource.test.ts", + "start": 112, + "end": 128, + "startLoc": { + "line": 112, + "column": 14, + "position": 1007 + }, + "endLoc": { + "line": 128, + "column": 89, + "position": 1143 + } + }, + "secondFile": { + "name": "packages/core/src/test/dynamicResources/commands/openResource.test.ts", + "start": 94, + "end": 108, + "startLoc": { + "line": 94, + "column": 14, + "position": 835 + }, + "endLoc": { + "line": 108, + "column": 63, + "position": 968 + } + } + }, + { + "format": "typescript", + "lines": 11, + "fragment": "] })\n const fakeDefinition = JSON.stringify({\n fooProperty: 'foo',\n barProperty: 'bar',\n })\n const document = await vscode.workspace.openTextDocument({\n content: fakeDefinition,\n })\n\n const diagnostics = getDiagnostics(schema, document)\n assert.strictEqual(diagnostics.length, 0", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/dynamicResources/commands/openResource.test.ts", + "start": 133, + "end": 143, + "startLoc": { + "line": 133, + "column": 14, + "position": 1184 + }, + "endLoc": { + "line": 143, + "column": 2, + "position": 1274 + } + }, + "secondFile": { + "name": "packages/core/src/test/dynamicResources/commands/openResource.test.ts", + "start": 94, + "end": 104, + "startLoc": { + "line": 94, + "column": 14, + "position": 835 + }, + "endLoc": { + "line": 104, + "column": 2, + "position": 925 + } + } + }, + { + "format": "typescript", + "lines": 12, + "fragment": ", async function () {\n const factoryA = new TestCredentialsProviderFactory('profile', ['one'])\n const factoryB = new TestCredentialsProviderFactory('env', ['two', 'three'])\n\n sut.addProviderFactory(factoryA)\n sut.addProviderFactory(factoryB)\n\n const availableProvider = makeSampleCredentialsProvider('profile', 'two', true)\n const unavailableProvider = makeSampleCredentialsProvider('profile', 'three', false)\n sut.addProviders(availableProvider, unavailableProvider)\n\n const providers", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/credentials/provider/credentialsProviderManager.test.ts", + "start": 94, + "end": 105, + "startLoc": { + "line": 94, + "column": 24, + "position": 662 + }, + "endLoc": { + "line": 105, + "column": 10, + "position": 783 + } + }, + "secondFile": { + "name": "packages/core/src/test/credentials/provider/credentialsProviderManager.test.ts", + "start": 61, + "end": 71, + "startLoc": { + "line": 61, + "column": 31, + "position": 387 + }, + "endLoc": { + "line": 71, + "column": 20, + "position": 507 + } + } + }, + { + "format": "typescript", + "lines": 29, + "fragment": ")\n\n let codeLensCount = 0\n const modifierKey = resolveModifierKey()\n while (codeLensCount < 10) {\n cancellationTokenSource = new vscode.CancellationTokenSource()\n const resultPromise = instance.provideCodeLenses({} as any, cancellationTokenSource.token)\n clock.tick(TryChatCodeLensProvider.debounceMillis) // skip debounce\n\n assert.deepStrictEqual(await resultPromise, [\n {\n range: new vscode.Range(codeLensPosition, codeLensPosition),\n command: {\n title: `Amazon Q: open chat with (${modifierKey} + i) - showing ${\n TryChatCodeLensProvider.maxCount - codeLensCount\n } more times`,\n command: tryChatCodeLensCommand.id,\n },\n isResolved: true,\n },\n ])\n\n codeLensCount++\n }\n const emptyResult = await instance.provideCodeLenses({} as any, new vscode.CancellationTokenSource().token)\n assert.deepStrictEqual(emptyResult, [])\n })\n\n it('does NOT show codelens if lineAnnotationController (tips) is visible'", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/codewhispererChat/editor/codelens.test.ts", + "start": 128, + "end": 156, + "startLoc": { + "line": 128, + "column": 3, + "position": 1057 + }, + "endLoc": { + "line": 156, + "column": 71, + "position": 1288 + } + }, + "secondFile": { + "name": "packages/core/src/test/codewhispererChat/editor/codelens.test.ts", + "start": 66, + "end": 93, + "startLoc": { + "line": 66, + "column": 6, + "position": 483 + }, + "endLoc": { + "line": 93, + "column": 73, + "position": 713 + } + } + }, + { + "format": "typescript", + "lines": 22, + "fragment": ", function () {\n let mockExtensionContext: vscode.ExtensionContext\n let mockSecurityPanelViewProvider: SecurityPanelViewProvider\n let mockClient: DefaultCodeWhispererClient\n let mockExtContext: ExtContext\n\n beforeEach(async function () {\n await resetCodeWhispererGlobalVariables()\n mockExtensionContext = await FakeExtensionContext.create()\n mockSecurityPanelViewProvider = new SecurityPanelViewProvider(mockExtensionContext)\n mockClient = stub(DefaultCodeWhispererClient)\n mockExtContext = await FakeExtensionContext.getFakeExtContext()\n })\n\n afterEach(function () {\n targetCommand?.dispose()\n sinon.restore()\n codeScanState.setToNotStarted()\n })\n\n it('prompts user to reauthenticate if connection is expired', async function () {\n targetCommand = testCommand(showFileScan", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/codewhisperer/commands/basicCommands.test.ts", + "start": 309, + "end": 330, + "startLoc": { + "line": 309, + "column": 15, + "position": 2651 + }, + "endLoc": { + "line": 330, + "column": 13, + "position": 2826 + } + }, + "secondFile": { + "name": "packages/core/src/test/codewhisperer/commands/basicCommands.test.ts", + "start": 272, + "end": 293, + "startLoc": { + "line": 272, + "column": 19, + "position": 2313 + }, + "endLoc": { + "line": 293, + "column": 17, + "position": 2488 + } + } + }, + { + "format": "typescript", + "lines": 11, + "fragment": ", mockExtContext, mockSecurityPanelViewProvider, mockClient)\n\n sinon.stub(AuthUtil.instance, 'isConnectionExpired').returns(true)\n const spy = sinon.stub(AuthUtil.instance, 'showReauthenticatePrompt')\n\n await targetCommand.execute(placeholder, cwQuickPickSource)\n assert.ok(spy.called)\n })\n\n it('includes the \"source\" in the command execution metric', async function () {\n targetCommand = testCommand(showFileScan", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/codewhisperer/commands/basicCommands.test.ts", + "start": 330, + "end": 340, + "startLoc": { + "line": 330, + "column": 13, + "position": 2827 + }, + "endLoc": { + "line": 340, + "column": 13, + "position": 2927 + } + }, + "secondFile": { + "name": "packages/core/src/test/codewhisperer/commands/basicCommands.test.ts", + "start": 293, + "end": 303, + "startLoc": { + "line": 293, + "column": 17, + "position": 2489 + }, + "endLoc": { + "line": 303, + "column": 17, + "position": 2589 + } + } + }, + { + "format": "typescript", + "lines": 12, + "fragment": ", function () {\n beforeEach(async function () {\n await resetCodeWhispererGlobalVariables()\n })\n\n afterEach(function () {\n targetCommand?.dispose()\n sinon.restore()\n })\n\n it('includes the \"source\" in the command execution metric', async function () {\n targetCommand = testCommand(selectCustomizationPrompt", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/codewhisperer/commands/basicCommands.test.ts", + "start": 363, + "end": 374, + "startLoc": { + "line": 363, + "column": 28, + "position": 3127 + }, + "endLoc": { + "line": 374, + "column": 26, + "position": 3212 + } + }, + "secondFile": { + "name": "packages/core/src/test/codewhisperer/commands/basicCommands.test.ts", + "start": 346, + "end": 357, + "startLoc": { + "line": 346, + "column": 19, + "position": 2989 + }, + "endLoc": { + "line": 357, + "column": 17, + "position": 3074 + } + } + }, + { + "format": "typescript", + "lines": 13, + "fragment": ")\n await CodeScansState.instance.setScansEnabled(false)\n\n getTestWindow().onDidShowQuickPick((e) => {\n e.assertContainsItems(\n createAutoSuggestions(true),\n createOpenReferenceLog(),\n createGettingStarted(),\n createAutoScans(false),\n switchToAmazonQNode(),\n ...genericItems(),\n createSettingsNode(),\n createManageSubscription", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/codewhisperer/commands/basicCommands.test.ts", + "start": 527, + "end": 539, + "startLoc": { + "line": 527, + "column": 6, + "position": 4543 + }, + "endLoc": { + "line": 539, + "column": 25, + "position": 4625 + } + }, + "secondFile": { + "name": "packages/core/src/test/codewhisperer/commands/basicCommands.test.ts", + "start": 455, + "end": 466, + "startLoc": { + "line": 455, + "column": 5, + "position": 3956 + }, + "endLoc": { + "line": 466, + "column": 14, + "position": 4037 + } + } + }, + { + "format": "typescript", + "lines": 14, + "fragment": ")\n openTextDocumentMock.resolves(textDocumentMock)\n sandbox.stub(vscode.workspace, 'openTextDocument').value(openTextDocumentMock)\n sandbox.stub(vscode.WorkspaceEdit.prototype, 'replace').value(replaceMock)\n applyEditMock.resolves(true)\n sandbox.stub(vscode.workspace, 'applyEdit').value(applyEditMock)\n sandbox.stub(diagnosticsProvider, 'removeDiagnostic').value(removeDiagnosticMock)\n sandbox.stub(SecurityIssueProvider.instance, 'removeIssue').value(removeIssueMock)\n sandbox.stub(vscode.window, 'showTextDocument').value(showTextDocumentMock)\n\n targetCommand = testCommand(applySecurityFix)\n codeScanIssue.suggestedFixes = [\n {\n code", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/codewhisperer/commands/basicCommands.test.ts", + "start": 658, + "end": 671, + "startLoc": { + "line": 658, + "column": 63, + "position": 5610 + }, + "endLoc": { + "line": 671, + "column": 5, + "position": 5760 + } + }, + "secondFile": { + "name": "packages/core/src/test/codewhisperer/commands/basicCommands.test.ts", + "start": 591, + "end": 606, + "startLoc": { + "line": 591, + "column": 9, + "position": 5063 + }, + "endLoc": { + "line": 606, + "column": 12, + "position": 5215 + } + } + }, + { + "format": "typescript", + "lines": 23, + "fragment": ",\n fileName\n )\n openTextDocumentMock.resolves(textDocumentMock)\n sandbox.stub(vscode.workspace, 'openTextDocument').value(openTextDocumentMock)\n\n sandbox.stub(vscode.WorkspaceEdit.prototype, 'replace').value(replaceMock)\n applyEditMock.resolves(true)\n sandbox.stub(vscode.workspace, 'applyEdit').value(applyEditMock)\n sandbox.stub(diagnosticsProvider, 'removeDiagnostic').value(removeDiagnosticMock)\n sandbox.stub(SecurityIssueProvider.instance, 'removeIssue').value(removeIssueMock)\n sandbox.stub(vscode.window, 'showTextDocument').value(showTextDocumentMock)\n\n targetCommand = testCommand(applySecurityFix)\n codeScanIssue.suggestedFixes = [\n {\n code: `@@ -6,4 +6,5 @@\n from flask import request\n module_version = request.args.get(\"module_version\")\n # Noncompliant: executes unsanitized inputs.\n- exec(\"import urllib%d as urllib\" % int(module_version))\n+ __import__(\"urllib\" + module_version)\n+#import importlib`", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/codewhisperer/commands/basicCommands.test.ts", + "start": 739, + "end": 761, + "startLoc": { + "line": 739, + "column": 11, + "position": 6116 + }, + "endLoc": { + "line": 761, + "column": 20, + "position": 6276 + } + }, + "secondFile": { + "name": "packages/core/src/test/codewhisperer/commands/basicCommands.test.ts", + "start": 591, + "end": 671, + "startLoc": { + "line": 591, + "column": 41, + "position": 5060 + }, + "endLoc": { + "line": 671, + "column": 86, + "position": 5763 + } + } + }, + { + "format": "typescript", + "lines": 15, + "fragment": "})\n sandbox.stub(fs, 'existsFile').resolves(false)\n const writeStub = sandbox.stub(fs, 'writeFile').resolves()\n\n // Stub the AWS API call\n const mockDescribeSpace = sandbox.stub().resolves({\n SpaceSettings: {\n AppType: 'JupyterLab',\n },\n })\n sandbox.stub(require('../../../shared/clients/sagemaker'), 'SagemakerClient').returns({\n describeSpace: mockDescribeSpace,\n })\n\n await persistSSMConnection(appArn, domain,", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/awsService/sagemaker/credentialMapping.test.ts", + "start": 130, + "end": 144, + "startLoc": { + "line": 130, + "column": 2, + "position": 1157 + }, + "endLoc": { + "line": 144, + "column": 2, + "position": 1278 + } + }, + "secondFile": { + "name": "packages/core/src/test/awsService/sagemaker/credentialMapping.test.ts", + "start": 101, + "end": 115, + "startLoc": { + "line": 101, + "column": 2, + "position": 868 + }, + "endLoc": { + "line": 115, + "column": 2, + "position": 989 + } + } + }, + { + "format": "typescript", + "lines": 22, + "fragment": "})\n sandbox.stub(fs, 'existsFile').resolves(false)\n const writeStub = sandbox.stub(fs, 'writeFile').resolves()\n\n // Stub the AWS API call\n const mockDescribeSpace = sandbox.stub().resolves({\n SpaceSettings: {\n AppType: 'JupyterLab',\n },\n })\n sandbox.stub(require('../../../shared/clients/sagemaker'), 'SagemakerClient').returns({\n describeSpace: mockDescribeSpace,\n })\n\n await persistSSMConnection(appArn, domain)\n\n const raw = writeStub.firstCall.args[1]\n const data = JSON.parse(typeof raw === 'string' ? raw : raw.toString())\n\n assertRefreshUrlMatches(\n data.deepLink?.[appArn]?.refreshUrl,\n 'loadtest.studio.us-west-2.asfiovnxocqpcry.com'", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/awsService/sagemaker/credentialMapping.test.ts", + "start": 159, + "end": 180, + "startLoc": { + "line": 159, + "column": 2, + "position": 1455 + }, + "endLoc": { + "line": 180, + "column": 48, + "position": 1647 + } + }, + "secondFile": { + "name": "packages/core/src/test/awsService/sagemaker/credentialMapping.test.ts", + "start": 101, + "end": 120, + "startLoc": { + "line": 101, + "column": 2, + "position": 868 + }, + "endLoc": { + "line": 120, + "column": 33, + "position": 1057 + } + } + }, + { + "format": "typescript", + "lines": 11, + "fragment": "})\n const didChange = new Promise((resolve) => {\n service.onDidChangeTreeItem(() => resolve(true))\n setTimeout(() => resolve(false), 1000)\n })\n\n await toggleExecuteCommandFlag(service, vscode.window, settings)\n assert.ok(client.updateService.calledOnce)\n assert.ok(await didChange)\n })\n}", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/awsService/ecs/commands.test.ts", + "start": 40, + "end": 50, + "startLoc": { + "line": 40, + "column": 2, + "position": 445 + }, + "endLoc": { + "line": 50, + "column": 2, + "position": 550 + } + }, + "secondFile": { + "name": "packages/core/src/test/awsService/ecs/commands.test.ts", + "start": 26, + "end": 37, + "startLoc": { + "line": 26, + "column": 2, + "position": 253 + }, + "endLoc": { + "line": 37, + "column": 3, + "position": 360 + } + } + }, + { + "format": "typescript", + "lines": 36, + "fragment": ", async function () {\n const settings = new ToolkitPromptSettings(new TestSettings())\n\n before(async function () {\n await settings.disablePrompt(EcsRunCommandPrompt.Enable)\n await settings.disablePrompt(EcsRunCommandPrompt.Disable)\n })\n\n it('attempts to enable service', async function () {\n const client = stub(DefaultEcsClient, { regionCode: '' })\n client.updateService.callsFake(async (request) => assert.strictEqual(request.enableExecuteCommand, true))\n const service = new Service(client, {})\n const didChange = new Promise((resolve) => {\n service.onDidChangeTreeItem(() => resolve(true))\n setTimeout(() => resolve(false), 1000)\n })\n\n await toggleExecuteCommandFlag(service, vscode.window, settings)\n assert.ok(client.updateService.calledOnce)\n assert.ok(await didChange)\n })\n\n it('attempts to disable service', async function () {\n const client = stub(DefaultEcsClient, { regionCode: '' })\n client.updateService.callsFake(async (request) => assert.strictEqual(request.enableExecuteCommand, false))\n const service = new Service(client, { enableExecuteCommand: true })\n const didChange = new Promise((resolve) => {\n service.onDidChangeTreeItem(() => resolve(true))\n setTimeout(() => resolve(false), 1000)\n })\n\n await toggleExecuteCommandFlag(service, vscode.window, settings)\n assert.ok(client.updateService.calledOnce)\n assert.ok(await didChange)\n })\n})", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/awsService/ecs/commands.test.ts", + "start": 52, + "end": 87, + "startLoc": { + "line": 52, + "column": 21, + "position": 557 + }, + "endLoc": { + "line": 87, + "column": 2, + "position": 1006 + } + }, + "secondFile": { + "name": "packages/core/src/test/awsService/ecs/commands.test.ts", + "start": 15, + "end": 50, + "startLoc": { + "line": 15, + "column": 27, + "position": 102 + }, + "endLoc": { + "line": 50, + "column": 2, + "position": 551 + } + } + }, + { + "format": "typescript", + "lines": 11, + "fragment": ")\n const actual = await detectCdkProjects_wait(workspaceFolders)\n\n assert.ok(actual)\n\n const project = actual[0]\n assert.ok(project)\n assert.strictEqual(project.cdkJsonUri.fsPath, cdkJsonUri.fsPath)\n assert.strictEqual(\n project.treeUri.fsPath,\n vscode.Uri.joinPath(cdkJsonUri, '..', 'build/cdk.out'", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/awsService/cdk/detectCdkProjects.test.ts", + "start": 121, + "end": 131, + "startLoc": { + "line": 121, + "column": 11, + "position": 1122 + }, + "endLoc": { + "line": 131, + "column": 16, + "position": 1212 + } + }, + "secondFile": { + "name": "packages/core/src/test/awsService/cdk/detectCdkProjects.test.ts", + "start": 77, + "end": 85, + "startLoc": { + "line": 77, + "column": 7, + "position": 614 + }, + "endLoc": { + "line": 85, + "column": 10, + "position": 701 + } + } + }, + { + "format": "typescript", + "lines": 14, + "fragment": ", function () {\n let sandbox: sinon.SinonSandbox\n let spyExecuteCommand: sinon.SinonSpy\n\n beforeEach(function () {\n sandbox = sinon.createSandbox()\n spyExecuteCommand = sandbox.spy(vscode.commands, 'executeCommand')\n })\n\n afterEach(function () {\n sandbox.restore()\n })\n\n it", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/awsService/appBuilder/walkthrough.test.ts", + "start": 259, + "end": 272, + "startLoc": { + "line": 259, + "column": 15, + "position": 2020 + }, + "endLoc": { + "line": 272, + "column": 3, + "position": 2116 + } + }, + "secondFile": { + "name": "packages/core/src/test/awsService/appBuilder/walkthrough.test.ts", + "start": 91, + "end": 104, + "startLoc": { + "line": 91, + "column": 31, + "position": 556 + }, + "endLoc": { + "line": 104, + "column": 43, + "position": 652 + } + } + }, + { + "format": "typescript", + "lines": 46, + "fragment": "describe('openHandler', function () {\n let sandbox: sinon.SinonSandbox\n const workspace = vscode.workspace.workspaceFolders?.[0]\n assert.ok(workspace)\n const tempFolder = path.join(workspace.uri.fsPath, 'temp')\n\n beforeEach(async function () {\n sandbox = sinon.createSandbox()\n await fs.mkdir(tempFolder)\n })\n\n afterEach(async function () {\n await fs.delete(tempFolder, { recursive: true })\n sandbox.restore()\n })\n\n for (const scenario of scenarios) {\n it(`should open ${scenario.runtime}`, async function () {\n // Given\n const rNode = new ResourceNode(\n {\n samTemplateUri: vscode.Uri.file(path.join(tempFolder, 'template.yaml')),\n workspaceFolder: workspace,\n projectRoot: vscode.Uri.file(tempFolder),\n },\n {\n Id: 'MyFunction',\n Type: SERVERLESS_FUNCTION_TYPE,\n Runtime: scenario.runtime,\n Handler: scenario.handler,\n CodeUri: scenario.codeUri,\n }\n )\n await fs.mkdir(path.join(tempFolder, ...path.dirname(scenario.fileLocation).split('/')))\n await fs.writeFile(path.join(tempFolder, ...scenario.fileLocation.split('/')), scenario.fileInfo)\n await runOpenHandler(rNode)\n // Then\n assert.strictEqual(\n vscode.window.activeTextEditor?.document.fileName,\n path.join(tempFolder, ...scenario.fileLocation.split('/'))\n )\n await assertTextEditorContains(scenario.fileInfo)\n })\n }\n\n it", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/awsService/appBuilder/utils.test.ts", + "start": 169, + "end": 214, + "startLoc": { + "line": 169, + "column": 5, + "position": 1187 + }, + "endLoc": { + "line": 214, + "column": 3, + "position": 1623 + } + }, + "secondFile": { + "name": "packages/core/src/test/awsService/appBuilder/utils.test.ts", + "start": 123, + "end": 167, + "startLoc": { + "line": 123, + "column": 5, + "position": 747 + }, + "endLoc": { + "line": 167, + "column": 2, + "position": 1182 + } + } + }, + { + "format": "typescript", + "lines": 17, + "fragment": ", function () {\n let sandbox: sinon.SinonSandbox\n const workspace = vscode.workspace.workspaceFolders?.[0]\n assert.ok(workspace)\n const tempFolder = path.join(workspace.uri.fsPath, 'temp')\n\n beforeEach(async function () {\n sandbox = sinon.createSandbox()\n await fs.mkdir(tempFolder)\n })\n\n afterEach(async function () {\n await fs.delete(tempFolder, { recursive: true })\n sandbox.restore()\n })\n\n it", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/awsService/appBuilder/utils.test.ts", + "start": 252, + "end": 268, + "startLoc": { + "line": 252, + "column": 16, + "position": 1927 + }, + "endLoc": { + "line": 268, + "column": 3, + "position": 2077 + } + }, + "secondFile": { + "name": "packages/core/src/test/awsService/appBuilder/utils.test.ts", + "start": 123, + "end": 139, + "startLoc": { + "line": 123, + "column": 14, + "position": 750 + }, + "endLoc": { + "line": 139, + "column": 4, + "position": 900 + } + } + }, + { + "format": "typescript", + "lines": 11, + "fragment": ",\n uri: vscode.Uri.file('test.txt'),\n fileName: 'test.txt',\n }\n sandbox.stub(FileSystem.prototype, 'exists').resolves(true)\n sandbox\n .stub(vscode.workspace, 'openTextDocument')\n .onFirstCall()\n .resolves(mockOriginalDocument as unknown as TextDocument)\n .onSecondCall()\n .resolves(mockMultipleInsertionDocument", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/amazonq/common/diff.test.ts", + "start": 204, + "end": 214, + "startLoc": { + "line": 204, + "column": 57, + "position": 1825 + }, + "endLoc": { + "line": 214, + "column": 30, + "position": 1915 + } + }, + "secondFile": { + "name": "packages/core/src/test/amazonq/common/diff.test.ts", + "start": 159, + "end": 169, + "startLoc": { + "line": 159, + "column": 34, + "position": 1492 + }, + "endLoc": { + "line": 169, + "column": 22, + "position": 1582 + } + } + }, + { + "format": "typescript", + "lines": 17, + "fragment": "as unknown as TextDocument)\n\n const { changes, charsAdded, linesAdded, charsRemoved, linesRemoved } = await computeDiff(\n filePath,\n rightPath,\n tabId,\n featureDevScheme\n )\n\n const expectedChanges = [\n {\n count: 1,\n value: 'line1\\n',\n },\n {\n added: true,\n count: 2", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/amazonq/common/diff.test.ts", + "start": 214, + "end": 230, + "startLoc": { + "line": 214, + "column": 2, + "position": 1917 + }, + "endLoc": { + "line": 230, + "column": 2, + "position": 2018 + } + }, + "secondFile": { + "name": "packages/core/src/test/amazonq/common/diff.test.ts", + "start": 169, + "end": 185, + "startLoc": { + "line": 169, + "column": 2, + "position": 1584 + }, + "endLoc": { + "line": 185, + "column": 2, + "position": 1685 + } + } + }, + { + "format": "typescript", + "lines": 11, + "fragment": ",\n uri: vscode.Uri.file('test.txt'),\n fileName: 'test.txt',\n }\n sandbox.stub(FileSystem.prototype, 'exists').resolves(true)\n sandbox\n .stub(vscode.workspace, 'openTextDocument')\n .onFirstCall()\n .resolves(mockOriginalDocument as unknown as TextDocument)\n .onSecondCall()\n .resolves(mockModificationDocument", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/amazonq/common/diff.test.ts", + "start": 255, + "end": 265, + "startLoc": { + "line": 255, + "column": 27, + "position": 2193 + }, + "endLoc": { + "line": 265, + "column": 25, + "position": 2283 + } + }, + "secondFile": { + "name": "packages/core/src/test/amazonq/common/diff.test.ts", + "start": 159, + "end": 169, + "startLoc": { + "line": 159, + "column": 34, + "position": 1492 + }, + "endLoc": { + "line": 169, + "column": 22, + "position": 1582 + } + } + }, + { + "format": "typescript", + "lines": 11, + "fragment": ",\n uri: vscode.Uri.file('test.txt'),\n fileName: 'test.txt',\n }\n sandbox.stub(FileSystem.prototype, 'exists').resolves(true)\n sandbox\n .stub(vscode.workspace, 'openTextDocument')\n .onFirstCall()\n .resolves(mockOriginalDocument as unknown as TextDocument)\n .onSecondCall()\n .resolves(mockDeletionDocument", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/amazonq/common/diff.test.ts", + "start": 306, + "end": 316, + "startLoc": { + "line": 306, + "column": 17, + "position": 2561 + }, + "endLoc": { + "line": 316, + "column": 21, + "position": 2651 + } + }, + "secondFile": { + "name": "packages/core/src/test/amazonq/common/diff.test.ts", + "start": 159, + "end": 169, + "startLoc": { + "line": 159, + "column": 34, + "position": 1492 + }, + "endLoc": { + "line": 169, + "column": 22, + "position": 1582 + } + } + }, + { + "format": "typescript", + "lines": 22, + "fragment": "as unknown as TextDocument)\n\n const { changes, charsAdded, linesAdded, charsRemoved, linesRemoved } = await computeDiff(\n filePath,\n rightPath,\n tabId,\n featureDevScheme\n )\n\n const expectedChanges = [\n {\n count: 1,\n value: 'line1\\n',\n },\n {\n added: undefined,\n count: 1,\n removed: true,\n value: 'line2\\n',\n },\n {\n count", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/amazonq/common/diff.test.ts", + "start": 316, + "end": 337, + "startLoc": { + "line": 316, + "column": 2, + "position": 2653 + }, + "endLoc": { + "line": 337, + "column": 6, + "position": 2779 + } + }, + "secondFile": { + "name": "packages/core/src/test/amazonq/common/diff.test.ts", + "start": 265, + "end": 286, + "startLoc": { + "line": 265, + "column": 2, + "position": 2285 + }, + "endLoc": { + "line": 286, + "column": 6, + "position": 2411 + } + } + }, + { + "format": "typescript", + "lines": 11, + "fragment": ",\n uri: vscode.Uri.file('test.txt'),\n fileName: 'test.txt',\n }\n sandbox.stub(FileSystem.prototype, 'exists').resolves(true)\n sandbox\n .stub(vscode.workspace, 'openTextDocument')\n .onFirstCall()\n .resolves(mockOriginalDocument as unknown as TextDocument)\n .onSecondCall()\n .resolves(mockDeletionAndAdditionDocument", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/amazonq/common/diff.test.ts", + "start": 351, + "end": 361, + "startLoc": { + "line": 351, + "column": 24, + "position": 2894 + }, + "endLoc": { + "line": 361, + "column": 32, + "position": 2984 + } + }, + "secondFile": { + "name": "packages/core/src/test/amazonq/common/diff.test.ts", + "start": 159, + "end": 169, + "startLoc": { + "line": 159, + "column": 34, + "position": 1492 + }, + "endLoc": { + "line": 169, + "column": 22, + "position": 1582 + } + } + }, + { + "format": "typescript", + "lines": 25, + "fragment": "as unknown as TextDocument)\n\n const { changes, charsAdded, linesAdded, charsRemoved, linesRemoved } = await computeDiff(\n filePath,\n rightPath,\n tabId,\n featureDevScheme\n )\n\n const expectedChanges = [\n {\n count: 1,\n value: 'line1\\n',\n },\n {\n added: undefined,\n count: 1,\n removed: true,\n value: 'line2\\n',\n },\n {\n count: 1,\n value: 'line3\\n',\n },\n {", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/amazonq/common/diff.test.ts", + "start": 361, + "end": 385, + "startLoc": { + "line": 361, + "column": 2, + "position": 2986 + }, + "endLoc": { + "line": 385, + "column": 2, + "position": 3130 + } + }, + "secondFile": { + "name": "packages/core/src/test/amazonq/common/diff.test.ts", + "start": 265, + "end": 340, + "startLoc": { + "line": 265, + "column": 2, + "position": 2285 + }, + "endLoc": { + "line": 340, + "column": 2, + "position": 2797 + } + } + }, + { + "format": "typescript", + "lines": 11, + "fragment": ",\n uri: vscode.Uri.file('test.txt'),\n fileName: 'test.txt',\n }\n sandbox.stub(FileSystem.prototype, 'exists').resolves(true)\n sandbox\n .stub(vscode.workspace, 'openTextDocument')\n .onFirstCall()\n .resolves(mockOriginalDocument as unknown as TextDocument)\n .onSecondCall()\n .resolves(mockEmptyLineDocument", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/amazonq/common/diff.test.ts", + "start": 402, + "end": 412, + "startLoc": { + "line": 402, + "column": 26, + "position": 3262 + }, + "endLoc": { + "line": 412, + "column": 22, + "position": 3352 + } + }, + "secondFile": { + "name": "packages/core/src/test/amazonq/common/diff.test.ts", + "start": 159, + "end": 169, + "startLoc": { + "line": 159, + "column": 34, + "position": 1492 + }, + "endLoc": { + "line": 169, + "column": 22, + "position": 1582 + } + } + }, + { + "format": "typescript", + "lines": 11, + "fragment": ",\n uri: vscode.Uri.file('test.txt'),\n fileName: 'test.txt',\n }\n sandbox.stub(FileSystem.prototype, 'exists').resolves(true)\n sandbox\n .stub(vscode.workspace, 'openTextDocument')\n .onFirstCall()\n .resolves(mockOriginalDocument as unknown as TextDocument)\n .onSecondCall()\n .resolves(mockWhitespaceDocument", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/amazonq/common/diff.test.ts", + "start": 447, + "end": 457, + "startLoc": { + "line": 447, + "column": 42, + "position": 3595 + }, + "endLoc": { + "line": 457, + "column": 23, + "position": 3685 + } + }, + "secondFile": { + "name": "packages/core/src/test/amazonq/common/diff.test.ts", + "start": 159, + "end": 169, + "startLoc": { + "line": 159, + "column": 34, + "position": 1492 + }, + "endLoc": { + "line": 169, + "column": 22, + "position": 1582 + } + } + }, + { + "format": "typescript", + "lines": 19, + "fragment": ",\n tabId,\n featureDevScheme\n )\n\n const expectedChanges = [\n {\n count: 3,\n value: 'line1\\nline2\\nline3\\n',\n },\n ]\n\n assert.deepEqual(changes, expectedChanges)\n assert.equal(charsAdded, 0)\n assert.equal(linesAdded, 0)\n assert.equal(charsRemoved, 0)\n assert.equal(linesRemoved, 0)\n })\n }", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/amazonq/common/diff.test.ts", + "start": 461, + "end": 479, + "startLoc": { + "line": 461, + "column": 10, + "position": 3731 + }, + "endLoc": { + "line": 479, + "column": 2, + "position": 3838 + } + }, + "secondFile": { + "name": "packages/core/src/test/amazonq/common/diff.test.ts", + "start": 138, + "end": 157, + "startLoc": { + "line": 138, + "column": 9, + "position": 1351 + }, + "endLoc": { + "line": 157, + "column": 3, + "position": 1459 + } + } + }, + { + "format": "typescript", + "lines": 13, + "fragment": "const qp = picker.createQuickPick({\n items: pickerItems,\n options: {\n title: localize('AWS.lambda.form.selectDebugConfig', 'Select Debug Configuration'),\n },\n })\n\n const choices = await picker.promptUser({\n picker: qp,\n })\n const pickerResponse = picker.verifySinglePickerOutput(choices)\n\n if (!pickerResponse)", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/lambda/vue/configEditor/samInvokeBackend.ts", + "start": 310, + "end": 322, + "startLoc": { + "line": 310, + "column": 9, + "position": 2310 + }, + "endLoc": { + "line": 322, + "column": 2, + "position": 2407 + } + }, + "secondFile": { + "name": "packages/core/src/lambda/vue/configEditor/samInvokeBackend.ts", + "start": 128, + "end": 140, + "startLoc": { + "line": 128, + "column": 9, + "position": 949 + }, + "endLoc": { + "line": 140, + "column": 3, + "position": 1047 + } + } + }, + { + "format": "typescript", + "lines": 16, + "fragment": ".publish({\n command: msg.command,\n tabID: msg.tabID,\n messageId: msg.messageId,\n userIntent: msg.userIntent,\n code: msg.code,\n insertionTargetType: msg.insertionTargetType,\n codeReference: msg.codeReference,\n eventId: msg.eventId,\n codeBlockIndex: msg.codeBlockIndex,\n totalCodeBlocks: msg.totalCodeBlocks,\n codeBlockLanguage: msg.codeBlockLanguage,\n })\n }\n\n private processTabWasRemoved", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/codewhispererChat/view/messages/messageListener.ts", + "start": 280, + "end": 295, + "startLoc": { + "line": 280, + "column": 27, + "position": 2028 + }, + "endLoc": { + "line": 295, + "column": 21, + "position": 2143 + } + }, + "secondFile": { + "name": "packages/core/src/codewhispererChat/view/messages/messageListener.ts", + "start": 248, + "end": 263, + "startLoc": { + "line": 248, + "column": 34, + "position": 1775 + }, + "endLoc": { + "line": 263, + "column": 18, + "position": 1890 + } + } + }, + { + "format": "typescript", + "lines": 15, + "fragment": "}\n}\n\nexport class AppToWebViewMessageDispatcher {\n constructor(private readonly appsToWebViewMessagePublisher: MessagePublisher) {}\n\n public sendErrorMessage(message: ErrorMessage) {\n this.appsToWebViewMessagePublisher.publish(message)\n }\n\n public sendChatMessage(message: ChatMessage) {\n this.appsToWebViewMessagePublisher.publish(message)\n }\n\n public sendEditorContextCommandMessage", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/codewhispererChat/view/connector/connector.ts", + "start": 403, + "end": 417, + "startLoc": { + "line": 403, + "column": 5, + "position": 2965 + }, + "endLoc": { + "line": 417, + "column": 32, + "position": 3055 + } + }, + "secondFile": { + "name": "packages/core/src/amazonqGumby/chat/views/connector/connector.ts", + "start": 179, + "end": 193, + "startLoc": { + "line": 179, + "column": 5, + "position": 1308 + }, + "endLoc": { + "line": 193, + "column": 15, + "position": 1398 + } + } + }, + { + "format": "typescript", + "lines": 11, + "fragment": "import { createApp } from 'vue'\nimport component from './root.vue'\n\nconst create = () => createApp(component)\nconst app = create()\napp.mount('#vue-app')\n\nwindow.addEventListener('remount', () => {\n app.unmount()\n create().mount('#vue-app')\n})", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/codecatalyst/vue/create/index.ts", + "start": 6, + "end": 16, + "startLoc": { + "line": 6, + "column": 1, + "position": 3 + }, + "endLoc": { + "line": 16, + "column": 2, + "position": 90 + } + }, + "secondFile": { + "name": "packages/core/src/codewhisperer/views/securityIssue/vue/index.ts", + "start": 8, + "end": 18, + "startLoc": { + "line": 8, + "column": 1, + "position": 3 + }, + "endLoc": { + "line": 18, + "column": 2, + "position": 90 + } + } + }, + { + "format": "typescript", + "lines": 16, + "fragment": "/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { createApp } from 'vue'\nimport component from './root.vue'\n\nconst create = () => createApp(component)\nconst app = create()\napp.mount('#vue-app')\n\nwindow.addEventListener('remount', () => {\n app.unmount()\n create().mount('#vue-app')\n})", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/codecatalyst/vue/configure/index.ts", + "start": 1, + "end": 16, + "startLoc": { + "line": 1, + "column": 1, + "position": 0 + }, + "endLoc": { + "line": 16, + "column": 2, + "position": 90 + } + }, + "secondFile": { + "name": "packages/core/src/codecatalyst/vue/create/index.ts", + "start": 1, + "end": 18, + "startLoc": { + "line": 1, + "column": 1, + "position": 0 + }, + "endLoc": { + "line": 18, + "column": 2, + "position": 90 + } + } + }, + { + "format": "typescript", + "lines": 20, + "fragment": "async function prompt(prompter: Prompter) {\n prompter.recentItem = settings[key]\n const response = await prompter.prompt()\n\n if (isValidResponse(response)) {\n return { ...settings, [key]: response }\n } else {\n return settings\n }\n }\n\n switch (key) {\n case 'alias':\n return prompt(createAliasPrompter())\n case 'instanceType':\n return prompt(createInstancePrompter(subscriptionType))\n case 'inactivityTimeoutMinutes':\n return prompt(createTimeoutPrompter())\n case 'persistentStorage':\n throw", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/codecatalyst/vue/configure/backend.ts", + "start": 118, + "end": 137, + "startLoc": { + "line": 118, + "column": 9, + "position": 994 + }, + "endLoc": { + "line": 137, + "column": 6, + "position": 1153 + } + }, + "secondFile": { + "name": "packages/core/src/codecatalyst/vue/create/backend.ts", + "start": 160, + "end": 179, + "startLoc": { + "line": 160, + "column": 9, + "position": 1151 + }, + "endLoc": { + "line": 179, + "column": 7, + "position": 1310 + } + } + }, + { + "format": "typescript", + "lines": 13, + "fragment": ": string) {\n const mapping = await readMapping()\n\n if (!mapping.deepLink) {\n throw new Error('No deepLink mapping found')\n }\n\n const entry = mapping.deepLink[connectionId]\n if (!entry) {\n throw new Error(`No mapping found for connectionId: \"${connectionId}\"`)\n }\n\n const", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/awsService/sagemaker/detached-server/sessionStore.ts", + "start": 31, + "end": 43, + "startLoc": { + "line": 31, + "column": 10, + "position": 210 + }, + "endLoc": { + "line": 43, + "column": 6, + "position": 300 + } + }, + "secondFile": { + "name": "packages/core/src/awsService/sagemaker/detached-server/sessionStore.ts", + "start": 12, + "end": 24, + "startLoc": { + "line": 12, + "column": 13, + "position": 68 + }, + "endLoc": { + "line": 24, + "column": 3, + "position": 158 + } + } + }, + { + "format": "typescript", + "lines": 12, + "fragment": "(connectionId: string, requestId: string) {\n const mapping = await readMapping()\n\n if (!mapping.deepLink) {\n throw new Error('No deepLink mapping found')\n }\n const entry = mapping.deepLink[connectionId]\n if (!entry) {\n throw new Error(`No mapping found for connectionId: \"${connectionId}\"`)\n }\n\n const status", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/awsService/sagemaker/detached-server/sessionStore.ts", + "start": 60, + "end": 71, + "startLoc": { + "line": 60, + "column": 10, + "position": 426 + }, + "endLoc": { + "line": 71, + "column": 7, + "position": 525 + } + }, + "secondFile": { + "name": "packages/core/src/awsService/sagemaker/detached-server/sessionStore.ts", + "start": 31, + "end": 43, + "startLoc": { + "line": 31, + "column": 14, + "position": 202 + }, + "endLoc": { + "line": 43, + "column": 9, + "position": 302 + } + } + }, + { + "format": "typescript", + "lines": 13, + "fragment": "(connectionId: string, requestId: string) {\n const mapping = await readMapping()\n\n if (!mapping.deepLink) {\n throw new Error('No deepLink mapping found')\n }\n const entry = mapping.deepLink[connectionId]\n if (!entry) {\n throw new Error(`No mapping found for connectionId: \"${connectionId}\"`)\n }\n\n const requests = entry.requests\n if", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/awsService/sagemaker/detached-server/sessionStore.ts", + "start": 75, + "end": 87, + "startLoc": { + "line": 75, + "column": 13, + "position": 559 + }, + "endLoc": { + "line": 87, + "column": 3, + "position": 667 + } + }, + "secondFile": { + "name": "packages/core/src/awsService/sagemaker/detached-server/sessionStore.ts", + "start": 31, + "end": 44, + "startLoc": { + "line": 31, + "column": 14, + "position": 202 + }, + "endLoc": { + "line": 44, + "column": 6, + "position": 311 + } + } + }, + { + "format": "typescript", + "lines": 12, + "fragment": "(connectionId: string, requestId: string) {\n const mapping = await readMapping()\n\n if (!mapping.deepLink) {\n throw new Error('No deepLink mapping found')\n }\n const entry = mapping.deepLink[connectionId]\n if (!entry) {\n throw new Error(`No mapping found for connectionId: \"${connectionId}\"`)\n }\n\n entry", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/awsService/sagemaker/detached-server/sessionStore.ts", + "start": 95, + "end": 106, + "startLoc": { + "line": 95, + "column": 12, + "position": 725 + }, + "endLoc": { + "line": 106, + "column": 6, + "position": 822 + } + }, + "secondFile": { + "name": "packages/core/src/awsService/sagemaker/detached-server/sessionStore.ts", + "start": 31, + "end": 24, + "startLoc": { + "line": 31, + "column": 14, + "position": 202 + }, + "endLoc": { + "line": 24, + "column": 3, + "position": 158 + } + } + }, + { + "format": "typescript", + "lines": 13, + "fragment": ") {\n const mapping = await readMapping()\n\n if (!mapping.deepLink) {\n throw new Error('No deepLink mapping found')\n }\n const entry = mapping.deepLink[connectionId]\n if (!entry) {\n throw new Error(`No mapping found for connectionId: \"${connectionId}\"`)\n }\n\n entry.requests[requestId] = {\n sessionId: ssmConnectionInfo", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/awsService/sagemaker/detached-server/sessionStore.ts", + "start": 116, + "end": 128, + "startLoc": { + "line": 116, + "column": 18, + "position": 898 + }, + "endLoc": { + "line": 128, + "column": 18, + "position": 999 + } + }, + "secondFile": { + "name": "packages/core/src/awsService/sagemaker/detached-server/sessionStore.ts", + "start": 12, + "end": 107, + "startLoc": { + "line": 12, + "column": 7, + "position": 71 + }, + "endLoc": { + "line": 107, + "column": 3, + "position": 837 + } + } + }, + { + "format": "typescript", + "lines": 15, + "fragment": "}\n\n public async loadMoreChildren(): Promise {\n await this.childLoader.loadMoreChildren()\n }\n\n public isLoadingMoreChildren(): boolean {\n return this.childLoader.isLoadingMoreChildren()\n }\n\n public clearChildren(): void {\n this.childLoader.clearChildren()\n }\n\n private async loadPage(continuationToken: string | undefined): Promise {\n return await makeChildrenNodes({\n getChildNodes: async () => this.childLoader.getChildren(),\n getNoChildrenPlaceholderNode: async () =>\n new PlaceholderNode(this, localize('AWS.explorerNode.s3.noObjects', '[No Objects found]')),\n })\n }\n\n public async loadMoreChildren(): Promise {\n await this.childLoader.loadMoreChildren()\n }\n\n public isLoadingMoreChildren(): boolean {\n return this.childLoader.isLoadingMoreChildren()\n }\n\n public clearChildren(): void {\n this.childLoader.clearChildren()\n }\n\n private async loadPage(continuationToken: string | undefined): Promise> {\n getLogger().debug(`Loading page for %O using continuationToken %s`, this, continuationToken)\n const response = await this.s3.listFiles({\n bucketName: this.bucket.Name,\n continuationToken", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/awsService/s3/explorer/s3BucketNode.ts", + "start": 42, + "end": 68, + "startLoc": { + "line": 42, + "column": 5, + "position": 393 + }, + "endLoc": { + "line": 68, + "column": 18, + "position": 643 + } + }, + "secondFile": { + "name": "packages/core/src/awsService/s3/explorer/s3FolderNode.ts", + "start": 39, + "end": 65, + "startLoc": { + "line": 39, + "column": 5, + "position": 371 + }, + "endLoc": { + "line": 65, + "column": 11, + "position": 621 + } + } + }, + { + "format": "typescript", + "lines": 25, + "fragment": ",\n continuationToken,\n maxResults: this.getMaxItemsPerPage(),\n })\n\n const newFolders = response.folders.map((folder) => new S3FolderNode(this.bucket, folder, this.s3))\n const newFiles = response.files.map((file) => new S3FileNode(this.bucket, file, this, this.s3))\n\n getLogger().debug(`Loaded folders: %O and files: %O`, newFolders, newFiles)\n return {\n newContinuationToken: response.continuationToken,\n newChildren: [...newFolders, ...newFiles],\n }\n }\n\n /**\n * See {@link S3Client.createFolder}.\n */\n public async createFolder(request: CreateFolderRequest): Promise {\n return this.s3.createFolder(request)\n }\n\n /**\n * See {@link S3Client.deleteBucket}.\n */", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/awsService/s3/explorer/s3BucketNode.ts", + "start": 67, + "end": 91, + "startLoc": { + "line": 67, + "column": 5, + "position": 640 + }, + "endLoc": { + "line": 91, + "column": 8, + "position": 832 + } + }, + "secondFile": { + "name": "packages/core/src/awsService/s3/explorer/s3FolderNode.ts", + "start": 65, + "end": 87, + "startLoc": { + "line": 65, + "column": 5, + "position": 629 + }, + "endLoc": { + "line": 87, + "column": 7, + "position": 821 + } + } + }, + { + "format": "typescript", + "lines": 15, + "fragment": "}\n\n public async loadMoreChildren(): Promise {\n await this.childLoader.loadMoreChildren()\n }\n\n public isLoadingMoreChildren(): boolean {\n return this.childLoader.isLoadingMoreChildren()\n }\n\n public clearChildren(): void {\n this.childLoader.clearChildren()\n }\n\n private async loadPage(token", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/awsService/redshift/explorer/redshiftWarehouseNode.ts", + "start": 64, + "end": 78, + "startLoc": { + "line": 64, + "column": 5, + "position": 618 + }, + "endLoc": { + "line": 78, + "column": 6, + "position": 712 + } + }, + "secondFile": { + "name": "packages/core/src/dynamicResources/explorer/nodes/resourceTypeNode.ts", + "start": 96, + "end": 110, + "startLoc": { + "line": 96, + "column": 5, + "position": 951 + }, + "endLoc": { + "line": 110, + "column": 18, + "position": 1045 + } + } + }, + { + "format": "typescript", + "lines": 16, + "fragment": ")\n }\n\n public async loadMoreChildren(): Promise {\n await this.childLoader.loadMoreChildren()\n }\n\n public isLoadingMoreChildren(): boolean {\n return this.childLoader.isLoadingMoreChildren()\n }\n\n public clearChildren(): void {\n this.childLoader.clearChildren()\n }\n\n private async loadPage(token?: string): Promise {\n await this.childLoader.loadMoreChildren()\n }\n\n public isLoadingMoreChildren(): boolean {\n return this.childLoader.isLoadingMoreChildren()\n }\n\n public clearChildren(): void {\n this.childLoader.clearChildren()\n }\n\n /**\n * Loads a page of provisioned clusters and serverless workgroups\n * There are four cases:\n * 1. @param token is undefined -> this is only for the first load use-case, then loads both provisioned clusters and serverless workgroups\n * 2. @param token is defined but one of the underlying tokens is empty string -> loads the next page for the non-empty one.\n * 3. @param token is defined but both of the underlying tokens are empty string (this is not a real case since we handle this at the end)\n * 4. @param token is defined and none of the underlying tokens are empty -> loads both\n * @param token compositeContinuationToken (@link: CompositeContinuationToken) stringified\n * @returns\n */", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/awsService/redshift/explorer/redshiftNode.ts", + "start": 33, + "end": 56, + "startLoc": { + "line": 33, + "column": 5, + "position": 257 + }, + "endLoc": { + "line": 56, + "column": 8, + "position": 345 + } + }, + "secondFile": { + "name": "packages/core/src/dynamicResources/explorer/nodes/resourceTypeNode.ts", + "start": 96, + "end": 110, + "startLoc": { + "line": 96, + "column": 5, + "position": 951 + }, + "endLoc": { + "line": 110, + "column": 8, + "position": 1039 + } + } + }, + { + "format": "typescript", + "lines": 16, + "fragment": ")\n }\n\n public async loadMoreChildren(): Promise {\n await this.childLoader.loadMoreChildren()\n }\n\n public isLoadingMoreChildren(): boolean {\n return this.childLoader.isLoadingMoreChildren()\n }\n\n public clearChildren(): void {\n this.childLoader.clearChildren()\n }\n\n private async loadPage(token?: string): Promise {\n return await makeChildrenNodes({\n getChildNodes: async () => this.childLoader.getChildren(),\n getNoChildrenPlaceholderNode: async () =>\n new PlaceholderNode(this, localize('AWS.explorerNode.redshiftClient.noSchemas'", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/awsService/redshift/explorer/redshiftDatabaseNode.ts", + "start": 66, + "end": 76, + "startLoc": { + "line": 66, + "column": 13, + "position": 618 + }, + "endLoc": { + "line": 76, + "column": 44, + "position": 719 + } + }, + "secondFile": { + "name": "packages/core/src/awsService/redshift/explorer/redshiftSchemaNode.ts", + "start": 65, + "end": 75, + "startLoc": { + "line": 65, + "column": 11, + "position": 607 + }, + "endLoc": { + "line": 75, + "column": 43, + "position": 708 + } + } + }, + { + "format": "typescript", + "lines": 17, + "fragment": ")),\n })\n }\n\n public async loadMoreChildren(): Promise {\n await this.childLoader.loadMoreChildren()\n }\n\n public isLoadingMoreChildren(): boolean {\n return this.childLoader.isLoadingMoreChildren()\n }\n\n public clearChildren(): void {\n this.childLoader.clearChildren()\n }\n\n private async loadPage(continuationToken: string | undefined): Promise {\n await this.childLoader.loadMoreChildren()\n }\n\n public isLoadingMoreChildren(): boolean {\n return this.childLoader.isLoadingMoreChildren()\n }\n\n public clearChildren(): void {\n this.childLoader.clearChildren()\n }\n\n private async loadPage(continuationToken: string | undefined): Promise {\n await this.childLoader.loadMoreChildren()\n }\n\n public isLoadingMoreChildren(): boolean {\n return this.childLoader.isLoadingMoreChildren()\n }\n\n public clearChildren(): void {\n this.childLoader.clearChildren()\n }\n\n private async loadPage(continuationToken: string | undefined): Promise {\n return await makeChildrenNodes({\n getChildNodes: async () => this.childLoader.getChildren(),\n getNoChildrenPlaceholderNode: async () =>\n new PlaceholderNode(this, localize('AWS.explorerNode.iot.noPolicy', '[No Policies found]')),\n })\n }\n\n public async loadMoreChildren(): Promise {\n await this.childLoader.loadMoreChildren()\n }\n\n public isLoadingMoreChildren(): boolean {\n return this.childLoader.isLoadingMoreChildren()\n }\n\n public clearChildren(): void {\n this.childLoader.clearChildren()\n }\n\n private async loadPage(continuationToken: string | undefined): Promise {\n return await makeChildrenNodes({\n getChildNodes: async () => this.childLoader.getChildren(),\n getNoChildrenPlaceholderNode: async () =>\n new PlaceholderNode(this, localize('AWS.explorerNode.iot.noCerts', '[No Certificates found]')),\n })\n }\n\n public async loadMoreChildren(): Promise {\n await this.childLoader.loadMoreChildren()\n }\n\n public isLoadingMoreChildren(): boolean {\n return this.childLoader.isLoadingMoreChildren()\n }\n\n public clearChildren(): void {\n this.childLoader.clearChildren()\n }\n\n private async loadPage(continuationToken: string | undefined): Promise {\n return this.tabOpened(data)\n })\n\n this.chatControllerMessageListeners.tabClosed.event((data) => {\n return this.tabClosed(data)\n })\n\n this.chatControllerMessageListeners.authClicked.event((data) => {\n this.authClicked(data)\n })\n\n this.chatControllerMessageListeners.commandSentFromIDE", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/amazonqGumby/chat/controller/controller.ts", + "start": 97, + "end": 111, + "startLoc": { + "line": 97, + "column": 2, + "position": 749 + }, + "endLoc": { + "line": 111, + "column": 19, + "position": 851 + } + }, + "secondFile": { + "name": "packages/amazonq/src/app/amazonqScan/chat/controller/controller.ts", + "start": 49, + "end": 63, + "startLoc": { + "line": 49, + "column": 2, + "position": 310 + }, + "endLoc": { + "line": 63, + "column": 8, + "position": 412 + } + } + }, + { + "format": "typescript", + "lines": 15, + "fragment": ")\n })\n\n AuthUtil.instance.regionProfileManager.onDidChangeRegionProfile(() => {\n this.sessionStorage.removeActiveTab()\n })\n }\n\n private async tabOpened(message: any) {\n const session: Session = this.sessionStorage.getSession()\n const tabID = this.sessionStorage.setActiveTab(message.tabID)\n\n // check if authentication has expired\n try {\n getLogger().debug(`", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/amazonqGumby/chat/controller/controller.ts", + "start": 144, + "end": 158, + "startLoc": { + "line": 144, + "column": 5, + "position": 1125 + }, + "endLoc": { + "line": 158, + "column": 2, + "position": 1232 + } + }, + "secondFile": { + "name": "packages/amazonq/src/app/amazonqScan/chat/controller/controller.ts", + "start": 109, + "end": 123, + "startLoc": { + "line": 109, + "column": 2, + "position": 797 + }, + "endLoc": { + "line": 123, + "column": 39, + "position": 904 + } + } + }, + { + "format": "typescript", + "lines": 31, + "fragment": "${session.tabID}`)\n\n const authState = await AuthUtil.instance.getChatAuthState()\n if (authState.amazonQ !== 'connected') {\n void this.messenger.sendAuthNeededExceptionMessage(authState, tabID)\n session.isAuthenticating = true\n return\n }\n } catch (err: any) {\n this.messenger.sendErrorMessage(err.message, message.tabID)\n }\n }\n\n private async tabClosed(data: any) {\n this.sessionStorage.removeActiveTab()\n }\n\n private authClicked(message: any) {\n this.authController.handleAuth(message.authType)\n\n this.messenger.sendAnswer({\n type: 'answer',\n tabID: message.tabID,\n message: 'Follow instructions to re-authenticate ...',\n })\n\n // Explicitly ensure the user goes through the re-authenticate flow\n this.messenger.sendChatInputEnabled(message.tabID, false)\n }\n\n private commandSentFromIDE", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/amazonqGumby/chat/controller/controller.ts", + "start": 158, + "end": 188, + "startLoc": { + "line": 158, + "column": 28, + "position": 1237 + }, + "endLoc": { + "line": 188, + "column": 19, + "position": 1462 + } + }, + "secondFile": { + "name": "packages/amazonq/src/app/amazonqScan/chat/controller/controller.ts", + "start": 123, + "end": 153, + "startLoc": { + "line": 123, + "column": 39, + "position": 905 + }, + "endLoc": { + "line": 153, + "column": 6, + "position": 1130 + } + } + }, + { + "format": "typescript", + "lines": 16, + "fragment": ")\n }\n\n onCodeInsertToCursorPosition = (\n tabID: string,\n messageId: string,\n code?: string,\n type?: 'selection' | 'block',\n codeReference?: CodeReference[],\n eventId?: string,\n codeBlockIndex?: number,\n totalCodeBlocks?: number,\n userIntent?: string,\n codeBlockLanguage?: string\n ): void => {\n switch", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/amazonq/webview/ui/connector.ts", + "start": 295, + "end": 310, + "startLoc": { + "line": 295, + "column": 10, + "position": 2734 + }, + "endLoc": { + "line": 310, + "column": 7, + "position": 2841 + } + }, + "secondFile": { + "name": "packages/core/src/amazonq/webview/ui/apps/baseConnector.ts", + "start": 127, + "end": 142, + "startLoc": { + "line": 127, + "column": 2, + "position": 1107 + }, + "endLoc": { + "line": 142, + "column": 5, + "position": 1214 + } + } + }, + { + "format": "typescript", + "lines": 17, + "fragment": "= (\n tabId: string,\n messageId: string,\n actionId: string,\n data?: string,\n code?: string,\n type?: CodeSelectionType,\n referenceTrackerInformation?: ReferenceTrackerInformation[],\n eventId?: string,\n codeBlockIndex?: number,\n totalCodeBlocks?: number\n ) => {\n const tabType = this.tabsStorage.getTab(tabId)?.type\n this.sendMessageToExtension({\n tabType,\n tabID: tabId,\n command: 'view_diff'", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/amazonq/webview/ui/connector.ts", + "start": 357, + "end": 373, + "startLoc": { + "line": 357, + "column": 2, + "position": 3108 + }, + "endLoc": { + "line": 373, + "column": 12, + "position": 3238 + } + }, + "secondFile": { + "name": "packages/core/src/amazonq/webview/ui/connector.ts", + "start": 328, + "end": 344, + "startLoc": { + "line": 328, + "column": 2, + "position": 2928 + }, + "endLoc": { + "line": 344, + "column": 14, + "position": 3058 + } + } + }, + { + "format": "typescript", + "lines": 19, + "fragment": ",\n })\n }\n\n onCopyCodeToClipboard = (\n tabID: string,\n messageId: string,\n code?: string,\n type?: 'selection' | 'block',\n codeReference?: CodeReference[],\n eventId?: string,\n codeBlockIndex?: number,\n totalCodeBlocks?: number,\n userIntent?: string,\n codeBlockLanguage?: string\n ): void => {\n switch (this.tabsStorage.getTab(tabID)?.type) {\n case 'cwc':\n this.cwChatConnector.onCopyCodeToClipboard", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/amazonq/webview/ui/connector.ts", + "start": 382, + "end": 400, + "startLoc": { + "line": 382, + "column": 16, + "position": 3275 + }, + "endLoc": { + "line": 400, + "column": 22, + "position": 3415 + } + }, + "secondFile": { + "name": "packages/core/src/amazonq/webview/ui/apps/baseConnector.ts", + "start": 154, + "end": 312, + "startLoc": { + "line": 154, + "column": 18, + "position": 1282 + }, + "endLoc": { + "line": 312, + "column": 29, + "position": 2870 + } + } + }, + { + "format": "typescript", + "lines": 23, + "fragment": "],\n ])\n )\n\n sut.sendUserTriggerDecisionTelemetry('aFakeSessionId', aCompletion().content, 0)\n const assertTelemetry = assertTelemetryCurried('codewhisperer_userTriggerDecision')\n assertTelemetry({\n codewhispererSessionId: 'aFakeSessionId',\n codewhispererFirstRequestId: 'aFakeRequestId',\n codewhispererLanguage: 'python',\n codewhispererTriggerType: 'OnDemand',\n codewhispererLineNumber: 0,\n codewhispererCursorOffset: 0,\n codewhispererSuggestionCount: 4,\n codewhispererSuggestionImportCount: 0,\n codewhispererSuggestionState: 'Accept',\n codewhispererCompletionType: 'Line',\n codewhispererTypeaheadLength: 0,\n codewhispererCharactersAccepted: aCompletion().content.length,\n })\n })\n\n it('should return Line and Reject'", + "tokens": 0, + "firstFile": { + "name": "packages/amazonq/test/unit/codewhisperer/util/telemetryHelper.test.ts", + "start": 185, + "end": 207, + "startLoc": { + "line": 185, + "column": 7, + "position": 1447 + }, + "endLoc": { + "line": 207, + "column": 32, + "position": 1595 + } + }, + "secondFile": { + "name": "packages/amazonq/test/unit/codewhisperer/util/telemetryHelper.test.ts", + "start": 152, + "end": 174, + "startLoc": { + "line": 152, + "column": 8, + "position": 1196 + }, + "endLoc": { + "line": 174, + "column": 34, + "position": 1344 + } + } + }, + { + "format": "typescript", + "lines": 18, + "fragment": ", false],\n ]\n\n beforeEach(async function () {\n await resetCodeWhispererGlobalVariables()\n })\n\n for (const tuple of cases) {\n const languageId = tuple[0]\n const expected = tuple[1]\n\n it(`should ${expected ? '' : 'not'} support ${languageId}`, function () {\n const actual = languageContext.isLanguageSupported(languageId)\n assert.strictEqual(actual, expected)\n })\n }\n\n describe", + "tokens": 0, + "firstFile": { + "name": "packages/amazonq/test/unit/codewhisperer/util/runtimeLanguageContext.test.ts", + "start": 53, + "end": 70, + "startLoc": { + "line": 53, + "column": 5, + "position": 450 + }, + "endLoc": { + "line": 70, + "column": 9, + "position": 586 + } + }, + "secondFile": { + "name": "packages/amazonq/test/unit/codewhisperer/util/securityScanLanguageContext.test.ts", + "start": 47, + "end": 63, + "startLoc": { + "line": 47, + "column": 9, + "position": 391 + }, + "endLoc": { + "line": 63, + "column": 2, + "position": 526 + } + } + }, + { + "format": "typescript", + "lines": 14, + "fragment": ")\n assert.strictEqual(actual, expectedCwsprLanguageId)\n })\n }\n\n const arbitraryIds: [string | undefined, CodewhispererLanguage | undefined][] = [\n [undefined, undefined],\n ['r', undefined],\n ['fooo', undefined],\n ['bar', undefined],\n ]\n\n for (const [arbitraryId, _] of arbitraryIds) {\n it(`should return undefined if languageId is undefined or not neither is type of codewhispererLanguageId or platformLanguageId - ", + "tokens": 0, + "firstFile": { + "name": "packages/amazonq/test/unit/codewhisperer/util/runtimeLanguageContext.test.ts", + "start": 222, + "end": 235, + "startLoc": { + "line": 222, + "column": 19, + "position": 1900 + }, + "endLoc": { + "line": 235, + "column": 127, + "position": 2011 + } + }, + "secondFile": { + "name": "packages/amazonq/test/unit/codewhisperer/util/securityScanLanguageContext.test.ts", + "start": 124, + "end": 137, + "startLoc": { + "line": 124, + "column": 23, + "position": 1022 + }, + "endLoc": { + "line": 137, + "column": 131, + "position": 1133 + } + } + }, + { + "format": "typescript", + "lines": 13, + "fragment": "})\n )\n await auth.useConnection(conn)\n\n // method under test\n await authUtil.reauthenticate()\n\n assert.strictEqual(authUtil.conn?.type, 'sso')\n assert.deepStrictEqual(authUtil.conn?.scopes, amazonQScopes)\n assert.strictEqual(auth.getConnectionState(conn), 'valid')\n })\n\n it('reauthenticate adds missing Builder ID scopes'", + "tokens": 0, + "firstFile": { + "name": "packages/amazonq/test/unit/codewhisperer/util/authUtil.test.ts", + "start": 187, + "end": 199, + "startLoc": { + "line": 187, + "column": 2, + "position": 1588 + }, + "endLoc": { + "line": 199, + "column": 48, + "position": 1674 + } + }, + "secondFile": { + "name": "packages/amazonq/test/unit/codewhisperer/util/authUtil.test.ts", + "start": 174, + "end": 185, + "startLoc": { + "line": 174, + "column": 2, + "position": 1462 + }, + "endLoc": { + "line": 185, + "column": 61, + "position": 1546 + } + } + }, + { + "format": "typescript", + "lines": 12, + "fragment": "scopes: codeWhispererCoreScopes }))\n await auth.useConnection(conn)\n\n // method under test\n await authUtil.reauthenticate()\n\n assert.strictEqual(authUtil.conn?.type, 'sso')\n assert.deepStrictEqual(authUtil.conn?.scopes, amazonQScopes)\n assert.strictEqual(auth.getConnectionState(conn), 'valid')\n })\n\n it('reauthenticate adds missing Amazon Q IdC scopes'", + "tokens": 0, + "firstFile": { + "name": "packages/amazonq/test/unit/codewhisperer/util/authUtil.test.ts", + "start": 200, + "end": 211, + "startLoc": { + "line": 200, + "column": 2, + "position": 1703 + }, + "endLoc": { + "line": 211, + "column": 50, + "position": 1792 + } + }, + "secondFile": { + "name": "packages/amazonq/test/unit/codewhisperer/util/authUtil.test.ts", + "start": 187, + "end": 185, + "startLoc": { + "line": 187, + "column": 2, + "position": 1583 + }, + "endLoc": { + "line": 185, + "column": 61, + "position": 1546 + } + } + }, + { + "format": "typescript", + "lines": 15, + "fragment": ", async function () {\n const conn = await auth.createInvalidSsoConnection(\n createSsoProfile({ startUrl: enterpriseSsoStartUrl, scopes: codeWhispererCoreScopes })\n )\n await auth.useConnection(conn)\n\n // method under test\n await authUtil.reauthenticate()\n\n assert.strictEqual(authUtil.conn?.type, 'sso')\n assert.deepStrictEqual(authUtil.conn?.scopes, amazonQScopes)\n assert.strictEqual(auth.getConnectionState(conn), 'valid')\n })\n\n it('CodeWhisperer uses fallback connection when switching to an unsupported connection'", + "tokens": 0, + "firstFile": { + "name": "packages/amazonq/test/unit/codewhisperer/util/authUtil.test.ts", + "start": 211, + "end": 225, + "startLoc": { + "line": 211, + "column": 50, + "position": 1793 + }, + "endLoc": { + "line": 225, + "column": 85, + "position": 1920 + } + }, + "secondFile": { + "name": "packages/amazonq/test/unit/codewhisperer/util/authUtil.test.ts", + "start": 185, + "end": 185, + "startLoc": { + "line": 185, + "column": 61, + "position": 1547 + }, + "endLoc": { + "line": 185, + "column": 61, + "position": 1546 + } + } + }, + { + "format": "typescript", + "lines": 13, + "fragment": "})\n )\n await auth.useConnection(conn)\n\n const result = await authUtil.getChatAuthState()\n assert.deepStrictEqual(result, {\n codewhispererCore: AuthStates.expired,\n codewhispererChat: AuthStates.expired,\n amazonQ: AuthStates.expired,\n })\n })\n })\n}", + "tokens": 0, + "firstFile": { + "name": "packages/amazonq/test/unit/codewhisperer/util/authUtil.test.ts", + "start": 410, + "end": 422, + "startLoc": { + "line": 410, + "column": 2, + "position": 3835 + }, + "endLoc": { + "line": 422, + "column": 2, + "position": 3916 + } + }, + "secondFile": { + "name": "packages/amazonq/test/unit/codewhisperer/util/authUtil.test.ts", + "start": 364, + "end": 377, + "startLoc": { + "line": 364, + "column": 2, + "position": 3437 + }, + "endLoc": { + "line": 377, + "column": 9, + "position": 3520 + } + } + }, + { + "format": "typescript", + "lines": 11, + "fragment": ", function () {\n if (!tracker) {\n assert.fail()\n }\n tracker.onQFeatureInvoked()\n tracker.onTextDocumentChange({\n reason: undefined,\n document: createMockDocument(),\n contentChanges: [\n {\n range: new vscode.Range(0, 0, 0, 49", + "tokens": 0, + "firstFile": { + "name": "packages/amazonq/test/unit/codewhisperer/tracker/userWrittenCodeTracker.test.ts", + "start": 76, + "end": 86, + "startLoc": { + "line": 76, + "column": 59, + "position": 643 + }, + "endLoc": { + "line": 86, + "column": 3, + "position": 730 + } + }, + "secondFile": { + "name": "packages/amazonq/test/unit/codewhisperer/tracker/userWrittenCodeTracker.test.ts", + "start": 55, + "end": 65, + "startLoc": { + "line": 55, + "column": 55, + "position": 473 + }, + "endLoc": { + "line": 65, + "column": 4, + "position": 560 + } + } + }, + { + "format": "typescript", + "lines": 299, + "fragment": "/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { LineSelection, LineTracker, AuthUtil } from 'aws-core-vscode/codewhisperer'\nimport sinon from 'sinon'\nimport { Disposable, TextEditor, Position, Range, Selection } from 'vscode'\nimport { toTextEditor } from 'aws-core-vscode/test'\nimport assert from 'assert'\nimport { waitUntil } from 'aws-core-vscode/shared'\n\ndescribe('LineTracker class', function () {\n let sut: LineTracker\n let disposable: Disposable\n let editor: TextEditor\n let sandbox: sinon.SinonSandbox\n let counts = {\n editor: 0,\n selection: 0,\n content: 0,\n }\n\n beforeEach(async function () {\n sut = new LineTracker()\n sandbox = sinon.createSandbox()\n counts = {\n editor: 0,\n selection: 0,\n content: 0,\n }\n disposable = sut.onDidChangeActiveLines((e) => {\n if (e.reason === 'content') {\n counts.content++\n } else if (e.reason === 'selection') {\n counts.selection++\n } else if (e.reason === 'editor') {\n counts.editor++\n }\n })\n\n sandbox.stub(AuthUtil.instance, 'isConnected').returns(true)\n sandbox.stub(AuthUtil.instance, 'isConnectionExpired').returns(false)\n })\n\n afterEach(function () {\n disposable.dispose()\n sut.dispose()\n sandbox.restore()\n })\n\n function assertEmptyCounts() {\n assert.deepStrictEqual(counts, {\n editor: 0,\n selection: 0,\n content: 0,\n })\n }\n\n it('ready will emit onReady event', async function () {\n let messageReceived = 0\n disposable = sut.onReady((_) => {\n messageReceived++\n })\n\n assert.strictEqual(sut.isReady, false)\n sut.ready()\n\n await waitUntil(\n async () => {\n if (messageReceived !== 0) {\n return\n }\n },\n { interval: 1000 }\n )\n\n assert.strictEqual(sut.isReady, true)\n assert.strictEqual(messageReceived, 1)\n })\n\n describe('includes', function () {\n // util function to help set up LineTracker.selections\n async function setEditorSelection(selections: LineSelection[]): Promise {\n const editor = await toTextEditor('\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n', 'foo.py', undefined, {\n preview: false,\n })\n\n const vscodeSelections = selections.map((s) => {\n return new Selection(new Position(s.anchor, 0), new Position(s.active, 0))\n })\n\n await sut.onTextEditorSelectionChanged({\n textEditor: editor,\n selections: vscodeSelections,\n kind: undefined,\n })\n\n assert.deepStrictEqual(sut.selections, selections)\n return editor\n }\n\n it('exact match when array of selections are provided', async function () {\n const selections = [\n {\n anchor: 1,\n active: 1,\n },\n {\n anchor: 3,\n active: 3,\n },\n ]\n\n editor = await setEditorSelection(selections)\n assert.deepStrictEqual(sut.selections, selections)\n\n let actual = sut.includes([\n { active: 1, anchor: 1 },\n { active: 3, anchor: 3 },\n ])\n assert.strictEqual(actual, true)\n\n actual = sut.includes([\n { active: 2, anchor: 2 },\n { active: 4, anchor: 4 },\n ])\n assert.strictEqual(actual, false)\n\n // both active && anchor have to be the same\n actual = sut.includes([\n { active: 1, anchor: 0 },\n { active: 3, anchor: 0 },\n ])\n assert.strictEqual(actual, false)\n\n // different length would simply return false\n actual = sut.includes([\n { active: 1, anchor: 1 },\n { active: 3, anchor: 3 },\n { active: 5, anchor: 5 },\n ])\n assert.strictEqual(actual, false)\n })\n\n it('match active line if line number and activeOnly option are provided', async function () {\n const selections = [\n {\n anchor: 1,\n active: 1,\n },\n {\n anchor: 3,\n active: 3,\n },\n ]\n\n editor = await setEditorSelection(selections)\n assert.deepStrictEqual(sut.selections, selections)\n\n let actual = sut.includes(1, { activeOnly: true })\n assert.strictEqual(actual, true)\n\n actual = sut.includes(2, { activeOnly: true })\n assert.strictEqual(actual, false)\n })\n\n it('range match if line number and activeOnly is set to false', async function () {\n const selections = [\n {\n anchor: 0,\n active: 2,\n },\n {\n anchor: 4,\n active: 6,\n },\n ]\n\n editor = await setEditorSelection(selections)\n assert.deepStrictEqual(sut.selections, selections)\n\n for (const line of [0, 1, 2]) {\n const actual = sut.includes(line, { activeOnly: false })\n assert.strictEqual(actual, true)\n }\n\n for (const line of [4, 5, 6]) {\n const actual = sut.includes(line, { activeOnly: false })\n assert.strictEqual(actual, true)\n }\n\n let actual = sut.includes(3, { activeOnly: false })\n assert.strictEqual(actual, false)\n\n actual = sut.includes(7, { activeOnly: false })\n assert.strictEqual(actual, false)\n })\n })\n\n describe('onContentChanged', function () {\n it('should fire lineChangedEvent and set current line selection', async function () {\n editor = await toTextEditor('\\n\\n\\n\\n\\n', 'foo.py', undefined, { preview: false })\n editor.selection = new Selection(new Position(5, 0), new Position(5, 0))\n assertEmptyCounts()\n\n sut.onContentChanged({\n document: editor.document,\n contentChanges: [{ text: 'a', range: new Range(0, 0, 0, 0), rangeOffset: 0, rangeLength: 0 }],\n reason: undefined,\n })\n\n assert.deepStrictEqual(counts, { ...counts, content: 1 })\n assert.deepStrictEqual(sut.selections, [\n {\n anchor: 5,\n active: 5,\n },\n ])\n })\n })\n\n describe('onTextEditorSelectionChanged', function () {\n it('should fire lineChangedEvent if selection changes and set current line selection', async function () {\n editor = await toTextEditor('\\n\\n\\n\\n\\n', 'foo.py', undefined, { preview: false })\n editor.selection = new Selection(new Position(3, 0), new Position(3, 0))\n assertEmptyCounts()\n\n await sut.onTextEditorSelectionChanged({\n textEditor: editor,\n selections: [new Selection(new Position(3, 0), new Position(3, 0))],\n kind: undefined,\n })\n\n assert.deepStrictEqual(counts, { ...counts, selection: 1 })\n assert.deepStrictEqual(sut.selections, [\n {\n anchor: 3,\n active: 3,\n },\n ])\n\n // if selection is included in the existing selections, won't emit an event\n await sut.onTextEditorSelectionChanged({\n textEditor: editor,\n selections: [new Selection(new Position(3, 0), new Position(3, 0))],\n kind: undefined,\n })\n\n assert.deepStrictEqual(counts, { ...counts, selection: 1 })\n assert.deepStrictEqual(sut.selections, [\n {\n anchor: 3,\n active: 3,\n },\n ])\n })\n\n it('should not fire lineChangedEvent if uri scheme is debug || output', async function () {\n // if the editor is not a text editor, won't emit an event and selection will be set to undefined\n async function assertLineChanged(schema: string) {\n const anotherEditor = await toTextEditor('', 'bar.log', undefined, { preview: false })\n const uri = anotherEditor.document.uri\n sandbox.stub(uri, 'scheme').get(() => schema)\n\n await sut.onTextEditorSelectionChanged({\n textEditor: anotherEditor,\n selections: [new Selection(new Position(3, 0), new Position(3, 0))],\n kind: undefined,\n })\n\n assert.deepStrictEqual(counts, { ...counts })\n }\n\n await assertLineChanged('debug')\n await assertLineChanged('output')\n })\n })\n\n describe('onActiveTextEditorChanged', function () {\n it('shoudl fire lineChangedEvent', async function () {\n const selections: Selection[] = [new Selection(0, 0, 1, 1)]\n\n editor = { selections: selections } as any\n\n assertEmptyCounts()\n\n await sut.onActiveTextEditorChanged(editor)\n\n assert.deepStrictEqual(counts, { ...counts, editor: 1 })\n assert.deepStrictEqual(sut.selections, [\n {\n anchor: 0,\n active: 1,\n },\n ])\n })\n })\n})", + "tokens": 0, + "firstFile": { + "name": "packages/amazonq/test/unit/codewhisperer/tracker/lineTracker.test.ts", + "start": 1, + "end": 299, + "startLoc": { + "line": 1, + "column": 1, + "position": 0 + }, + "endLoc": { + "line": 299, + "column": 2, + "position": 2579 + } + }, + "secondFile": { + "name": "packages/amazonq/test/unit/amazonq/apps/inline/inlineTracker.test.ts", + "start": 1, + "end": 299, + "startLoc": { + "line": 1, + "column": 1, + "position": 0 + }, + "endLoc": { + "line": 299, + "column": 2, + "position": 2579 + } + } + }, + { + "format": "typescript", + "lines": 11, + "fragment": ", async function () {\n assertSessionClean()\n const editor = await toTextEditor('', 'test.py')\n\n await manualTrigger(editor, client, config)\n await acceptByTab()\n await assertTextEditorContains('Foo')\n\n assertSessionClean()\n await manualTrigger(editor, client, config)\n await rejectByEsc", + "tokens": 0, + "firstFile": { + "name": "packages/amazonq/test/unit/codewhisperer/service/telemetry.test.ts", + "start": 202, + "end": 212, + "startLoc": { + "line": 202, + "column": 27, + "position": 1488 + }, + "endLoc": { + "line": 212, + "column": 12, + "position": 1574 + } + }, + "secondFile": { + "name": "packages/amazonq/test/unit/codewhisperer/service/telemetry.test.ts", + "start": 176, + "end": 186, + "startLoc": { + "line": 176, + "column": 27, + "position": 1284 + }, + "endLoc": { + "line": 186, + "column": 12, + "position": 1370 + } + } + }, + { + "format": "typescript", + "lines": 11, + "fragment": ", async function () {\n assertSessionClean()\n const editor = await toTextEditor('', 'test.py')\n\n await manualTrigger(editor, client, config)\n await rejectByEsc()\n await assertTextEditorContains('')\n\n assertSessionClean()\n await manualTrigger(editor, client, config)\n await acceptByTab", + "tokens": 0, + "firstFile": { + "name": "packages/amazonq/test/unit/codewhisperer/service/telemetry.test.ts", + "start": 253, + "end": 263, + "startLoc": { + "line": 253, + "column": 27, + "position": 1897 + }, + "endLoc": { + "line": 263, + "column": 12, + "position": 1983 + } + }, + "secondFile": { + "name": "packages/amazonq/test/unit/codewhisperer/service/telemetry.test.ts", + "start": 228, + "end": 238, + "startLoc": { + "line": 228, + "column": 27, + "position": 1700 + }, + "endLoc": { + "line": 238, + "column": 12, + "position": 1786 + } + } + }, + { + "format": "typescript", + "lines": 11, + "fragment": "it('next and accept', async function () {\n if (!shouldRun()) {\n this.skip()\n }\n\n assertSessionClean()\n const editor = await toTextEditor('', 'test.py')\n\n await manualTrigger(editor, client, config)\n await navigateNext()\n await navigatePrev", + "tokens": 0, + "firstFile": { + "name": "packages/amazonq/test/unit/codewhisperer/service/telemetry.test.ts", + "start": 329, + "end": 339, + "startLoc": { + "line": 329, + "column": 9, + "position": 2483 + }, + "endLoc": { + "line": 339, + "column": 13, + "position": 2567 + } + }, + "secondFile": { + "name": "packages/amazonq/test/unit/codewhisperer/service/telemetry.test.ts", + "start": 295, + "end": 305, + "startLoc": { + "line": 295, + "column": 9, + "position": 2232 + }, + "endLoc": { + "line": 305, + "column": 12, + "position": 2316 + } + } + }, + { + "format": "typescript", + "lines": 12, + "fragment": ", () => {\n const json = JSON.stringify([\n {\n filePath: 'file1.ts',\n startLine: 1,\n endLine: 2,\n codeSnippet: [\n { number: 1, content: 'line 1' },\n { number: 2, content: 'line 2' },\n ],\n },\n { filePath: 'file1.ts'", + "tokens": 0, + "firstFile": { + "name": "packages/amazonq/test/unit/codewhisperer/service/securityScanHandler.test.ts", + "start": 204, + "end": 215, + "startLoc": { + "line": 204, + "column": 42, + "position": 1575 + }, + "endLoc": { + "line": 215, + "column": 11, + "position": 1675 + } + }, + "secondFile": { + "name": "packages/amazonq/test/unit/codewhisperer/service/securityScanHandler.test.ts", + "start": 183, + "end": 194, + "startLoc": { + "line": 183, + "column": 39, + "position": 1354 + }, + "endLoc": { + "line": 194, + "column": 11, + "position": 1454 + } + } + }, + { + "format": "typescript", + "lines": 11, + "fragment": ", () => {\n mockProvider.issues = [\n {\n filePath: mockDocument.fileName,\n issues: [\n createCodeScanIssue({ findingId: 'finding-1' }),\n createCodeScanIssue({ findingId: 'finding-2' }),\n ],\n },\n ]\n mockProvider.removeIssue(vscode.Uri.file('some/path'", + "tokens": 0, + "firstFile": { + "name": "packages/amazonq/test/unit/codewhisperer/service/securityIssueProvider.test.ts", + "start": 117, + "end": 127, + "startLoc": { + "line": 117, + "column": 57, + "position": 1515 + }, + "endLoc": { + "line": 127, + "column": 12, + "position": 1601 + } + }, + "secondFile": { + "name": "packages/amazonq/test/unit/codewhisperer/service/securityIssueProvider.test.ts", + "start": 98, + "end": 109, + "startLoc": { + "line": 98, + "column": 45, + "position": 1352 + }, + "endLoc": { + "line": 109, + "column": 13, + "position": 1440 + } + } + }, + { + "format": "typescript", + "lines": 13, + "fragment": ",\n recommendationContentSpan: {\n start: 0,\n end: 10,\n },\n },\n ]\n const actual = ReferenceLogViewProvider.getReferenceLog(recommendation, fakeReferences, mockEditor)\n const actualTime = actual.substring(1, actual.indexOf(']'))\n assert.ok(actualTime === currentTimeString || actualTime === nextTimeString)\n assert.ok(actual.includes('MIT'))\n assert.ok(actual.includes('def two_su'))\n assert.ok(actual.includes(mockUrl", + "tokens": 0, + "firstFile": { + "name": "packages/amazonq/test/unit/codewhisperer/service/referenceLogViewProvider.test.ts", + "start": 52, + "end": 64, + "startLoc": { + "line": 52, + "column": 8, + "position": 488 + }, + "endLoc": { + "line": 64, + "column": 8, + "position": 618 + } + }, + "secondFile": { + "name": "packages/amazonq/test/unit/codewhisperer/service/referenceLogViewProvider.test.ts", + "start": 24, + "end": 36, + "startLoc": { + "line": 24, + "column": 12, + "position": 209 + }, + "endLoc": { + "line": 36, + "column": 12, + "position": 339 + } + } + }, + { + "format": "typescript", + "lines": 16, + "fragment": "await setupConnection('idc')\n await sut.switchRegionProfile(profileFoo, 'user')\n assert.deepStrictEqual(sut.activeRegionProfile, profileFoo)\n const conn = authUtil.conn\n if (!conn) {\n fail('connection should not be undefined')\n }\n await sut.persistSelectRegionProfile()\n const state = globals.globalState.tryGet<{ [label: string]: RegionProfile }>(\n 'aws.amazonq.regionProfiles',\n Object,\n {}\n )\n assert.strictEqual(state[conn.id], profileFoo)\n\n // subject to test", + "tokens": 0, + "firstFile": { + "name": "packages/amazonq/test/unit/codewhisperer/region/regionProfileManager.test.ts", + "start": 207, + "end": 222, + "startLoc": { + "line": 207, + "column": 13, + "position": 1578 + }, + "endLoc": { + "line": 222, + "column": 19, + "position": 1712 + } + }, + "secondFile": { + "name": "packages/amazonq/test/unit/codewhisperer/region/regionProfileManager.test.ts", + "start": 166, + "end": 183, + "startLoc": { + "line": 166, + "column": 13, + "position": 1258 + }, + "endLoc": { + "line": 183, + "column": 2, + "position": 1394 + } + } + }, + { + "format": "typescript", + "lines": 17, + "fragment": "} else {\n saveCompleteSubType = SaveCompleteSubType.SAVE_SKIPPED_SAME_CONTENT\n }\n saveSuccess = true\n } else {\n throw new Error('Previous state of file not found')\n }\n } catch (e) {\n if (previousAutoSaveFileContent !== undefined) {\n context.autoSaveFileState[filePath] = { fileContents: previousAutoSaveFileContent }\n }\n\n errorMessage = (e as Error).message\n saveSuccess = false\n saveCompleteSubType = SaveCompleteSubType.SAVE_FAILED\n void vscode.window.showErrorMessage(errorMessage)\n throw new ToolkitError(errorMessage, { code: 'Failed to Auto Save'", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/threatComposer/handlers/saveFileMessageHandler.ts", + "start": 137, + "end": 153, + "startLoc": { + "line": 137, + "column": 13, + "position": 914 + }, + "endLoc": { + "line": 153, + "column": 22, + "position": 1064 + } + }, + "secondFile": { + "name": "packages/core/src/threatComposer/handlers/saveFileMessageHandler.ts", + "start": 63, + "end": 79, + "startLoc": { + "line": 63, + "column": 17, + "position": 381 + }, + "endLoc": { + "line": 79, + "column": 17, + "position": 531 + } + } + }, + { + "format": "typescript", + "lines": 21, + "fragment": "})\n\n after(async function () {\n await closeAllEditors()\n })\n\n const openTestFile = async (filePath: string) => {\n const doc = await vscode.workspace.openTextDocument(filePath)\n return await vscode.window.showTextDocument(doc, {\n selection: new vscode.Range(new vscode.Position(0, 0), new vscode.Position(0, 1)),\n })\n }\n\n /*\n securityJobSetup: combines steps 1 and 2 in startSecurityScan:\n\n Step 1: Generate context truncations\n Step 2: Get presigned Url and upload\n\n returns artifactMap, projectPath and codeScanName\n */", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/testE2E/codewhisperer/securityScan.test.ts", + "start": 69, + "end": 89, + "startLoc": { + "line": 69, + "column": 5, + "position": 399 + }, + "endLoc": { + "line": 89, + "column": 7, + "position": 527 + } + }, + "secondFile": { + "name": "packages/core/src/testInteg/perf/startSecurityScan.test.ts", + "start": 58, + "end": 71, + "startLoc": { + "line": 58, + "column": 5, + "position": 497 + }, + "endLoc": { + "line": 71, + "column": 16, + "position": 625 + } + } + }, + { + "format": "typescript", + "lines": 17, + "fragment": "const jobStatus = await pollScanJobStatus(\n client,\n scanJob.jobId,\n scope,\n securityJobSetupResult.codeScanStartTime\n )\n const securityRecommendationCollection = await listScanResults(\n client,\n scanJob.jobId,\n CodeWhispererConstants.codeScanFindingsSchema,\n projectPaths,\n scope,\n editor\n )\n\n assert.deepStrictEqual(jobStatus, 'Completed')\n assert.ok(securityRecommendationCollection.length === 1", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/testE2E/codewhisperer/securityScan.test.ts", + "start": 176, + "end": 192, + "startLoc": { + "line": 176, + "column": 9, + "position": 1183 + }, + "endLoc": { + "line": 192, + "column": 2, + "position": 1281 + } + }, + "secondFile": { + "name": "packages/core/src/testE2E/codewhisperer/securityScan.test.ts", + "start": 135, + "end": 151, + "startLoc": { + "line": 135, + "column": 9, + "position": 905 + }, + "endLoc": { + "line": 151, + "column": 2, + "position": 1003 + } + } + }, + { + "format": "typescript", + "lines": 12, + "fragment": "})\n\n const scenarios = [\n { testValue: 1234, desc: 'number' },\n { testValue: 0, desc: 'default number' },\n { testValue: 'hello world', desc: 'string' },\n { testValue: '', desc: 'default string' },\n { testValue: true, desc: 'true' },\n { testValue: false, desc: 'false' },\n { testValue: [], desc: 'empty array' },\n { testValue: [{ value: 'foo' }, { value: 'bar' }], desc: 'array' },\n {", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/shared/globalState.test.ts", + "start": 20, + "end": 31, + "startLoc": { + "line": 20, + "column": 2, + "position": 131 + }, + "endLoc": { + "line": 31, + "column": 2, + "position": 301 + } + }, + "secondFile": { + "name": "packages/core/src/test/shared/settings.test.ts", + "start": 40, + "end": 51, + "startLoc": { + "line": 40, + "column": 5, + "position": 245 + }, + "endLoc": { + "line": 51, + "column": 101, + "position": 415 + } + } + }, + { + "format": "typescript", + "lines": 12, + "fragment": ")\n\n const triggerUserActivity = createTriggerActivityFunc()\n\n triggerUserActivity({ textEditor: { document: { uri: { scheme: 'output' } } } })\n assert.strictEqual(userActivitySubscriber.callCount, 0)\n\n triggerUserActivity({ textEditor: { document: { uri: { scheme: 'NOToutput' } } } })\n assert.strictEqual(userActivitySubscriber.callCount, 1)\n })\n\n it('does not fire onDidChangeTextDocument when not the active user document'", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/shared/extensionUtilities.test.ts", + "start": 284, + "end": 295, + "startLoc": { + "line": 284, + "column": 37, + "position": 2388 + }, + "endLoc": { + "line": 295, + "column": 74, + "position": 2506 + } + }, + "secondFile": { + "name": "packages/core/src/test/shared/extensionUtilities.test.ts", + "start": 272, + "end": 283, + "startLoc": { + "line": 272, + "column": 33, + "position": 2251 + }, + "endLoc": { + "line": 283, + "column": 86, + "position": 2369 + } + } + }, + { + "format": "typescript", + "lines": 18, + "fragment": ",\n isImage: false,\n architecture: 'arm64',\n })\n\n assert.strictEqual(\n globals.globalState.get('ACTIVATION_LAUNCH_PATH_KEY'),\n 'somepath',\n 'Unexpected Launch Path value was set'\n )\n assert.strictEqual(\n globals.globalState.get('ACTIVATION_TEMPLATE_PATH_KEY'),\n 'sometemplate',\n 'Unexpected Template Path value was set'\n )\n assert.strictEqual(\n globals.globalState.get('SAM_INIT_RUNTIME_KEY'),\n 'someruntime'", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/shared/activationReloadState.test.ts", + "start": 67, + "end": 84, + "startLoc": { + "line": 67, + "column": 14, + "position": 428 + }, + "endLoc": { + "line": 84, + "column": 14, + "position": 521 + } + }, + "secondFile": { + "name": "packages/core/src/test/shared/activationReloadState.test.ts", + "start": 36, + "end": 53, + "startLoc": { + "line": 36, + "column": 10, + "position": 253 + }, + "endLoc": { + "line": 53, + "column": 10, + "position": 346 + } + } + }, + { + "format": "typescript", + "lines": 22, + "fragment": ",\n architecture: 'arm64',\n })\n\n assert.strictEqual(\n globals.globalState.get('ACTIVATION_LAUNCH_PATH_KEY'),\n 'somepath',\n 'Unexpected Launch Path value was set'\n )\n assert.strictEqual(\n globals.globalState.get('ACTIVATION_TEMPLATE_PATH_KEY'),\n 'sometemplate',\n 'Unexpected Template Path value was set'\n )\n assert.strictEqual(\n globals.globalState.get('SAM_INIT_RUNTIME_KEY'),\n 'someruntime',\n 'Unexpected init runtime value was set'\n )\n assert.strictEqual(\n globals.globalState.get('SAM_INIT_IMAGE_BOOLEAN_KEY'),\n true", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/shared/activationReloadState.test.ts", + "start": 99, + "end": 120, + "startLoc": { + "line": 99, + "column": 5, + "position": 610 + }, + "endLoc": { + "line": 120, + "column": 5, + "position": 723 + } + }, + "secondFile": { + "name": "packages/core/src/test/shared/activationReloadState.test.ts", + "start": 37, + "end": 89, + "startLoc": { + "line": 37, + "column": 6, + "position": 260 + }, + "endLoc": { + "line": 89, + "column": 6, + "position": 548 + } + } + }, + { + "format": "typescript", + "lines": 20, + "fragment": ")\n\n assert.strictEqual(\n activationReloadState.getSamInitState()?.readme,\n 'getsomepath',\n 'Unexpected Launch Path value was retrieved'\n )\n assert.strictEqual(\n activationReloadState.getSamInitState()?.template,\n 'gettemplatepath',\n 'Unexpected Template Path value was retrieved'\n )\n assert.strictEqual(\n activationReloadState.getSamInitState()?.runtime,\n 'getsomeruntime',\n 'Unexpected init runtime value was retrieved'\n )\n assert.strictEqual(\n activationReloadState.getSamInitState()?.isImage,\n true", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/shared/activationReloadState.test.ts", + "start": 185, + "end": 204, + "startLoc": { + "line": 185, + "column": 5, + "position": 1177 + }, + "endLoc": { + "line": 204, + "column": 5, + "position": 1279 + } + }, + "secondFile": { + "name": "packages/core/src/test/shared/activationReloadState.test.ts", + "start": 157, + "end": 176, + "startLoc": { + "line": 157, + "column": 17, + "position": 988 + }, + "endLoc": { + "line": 176, + "column": 10, + "position": 1090 + } + } + }, + { + "format": "typescript", + "lines": 15, + "fragment": ", function () {\n assert.equal(\n ruleEngine.shouldDisplayNotification(\n buildNotification({\n extensionVersion: {\n type: 'or',\n clauses: [\n {\n type: 'exactMatch',\n values: ['1.18.0', '1.19.0'],\n },\n {\n type: 'range',\n lowerInclusive: '1.18.0',\n upperExclusive: '1.20.0'", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/notifications/rules.test.ts", + "start": 236, + "end": 250, + "startLoc": { + "line": 236, + "column": 67, + "position": 1372 + }, + "endLoc": { + "line": 250, + "column": 9, + "position": 1464 + } + }, + "secondFile": { + "name": "packages/core/src/test/notifications/rules.test.ts", + "start": 212, + "end": 226, + "startLoc": { + "line": 212, + "column": 55, + "position": 1242 + }, + "endLoc": { + "line": 226, + "column": 9, + "position": 1334 + } + } + }, + { + "format": "typescript", + "lines": 13, + "fragment": ": RuleContext = {\n ideVersion: '1.83.0',\n extensionVersion: '1.20.0',\n os: 'LINUX',\n computeEnv: 'local',\n authTypes: ['builderId'],\n authRegions: ['us-east-1'],\n authStates: ['connected'],\n authScopes: ['codewhisperer:completions', 'codewhisperer:analysis'],\n activeExtensions: ['ext1', 'ext2'],\n }\n\n let", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/notifications/controller.test.ts", + "start": 36, + "end": 48, + "startLoc": { + "line": 36, + "column": 11, + "position": 232 + }, + "endLoc": { + "line": 48, + "column": 4, + "position": 324 + } + }, + "secondFile": { + "name": "packages/core/src/test/notifications/rules.test.ts", + "start": 18, + "end": 30, + "startLoc": { + "line": 18, + "column": 8, + "position": 144 + }, + "endLoc": { + "line": 30, + "column": 6, + "position": 236 + } + } + }, + { + "format": "typescript", + "lines": 14, + "fragment": ", async function () {\n const eTag = randomUUID()\n const content = {\n schemaVersion: '1.x',\n notifications: [getValidTestNotification('id:startup1'), getInvalidTestNotification('id:startup2')],\n }\n fetcher.setStartUpContent({\n eTag,\n content: JSON.stringify(content),\n })\n\n await controller.pollForStartUp()\n\n assert.deepStrictEqual", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/notifications/controller.test.ts", + "start": 351, + "end": 364, + "startLoc": { + "line": 351, + "column": 47, + "position": 2884 + }, + "endLoc": { + "line": 364, + "column": 16, + "position": 2984 + } + }, + "secondFile": { + "name": "packages/core/src/test/notifications/controller.test.ts", + "start": 117, + "end": 130, + "startLoc": { + "line": 117, + "column": 44, + "position": 835 + }, + "endLoc": { + "line": 130, + "column": 6, + "position": 935 + } + } + }, + { + "format": "typescript", + "lines": 12, + "fragment": ")\n\n assert.deepStrictEqual(await globals.globalState.get(controller.storageKey), {\n startUp: {\n payload: content,\n eTag,\n },\n emergency: {},\n dismissed: [],\n newlyReceived: ['id:startup2'],\n })\n assert.equal(panelNode.getChildren", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/notifications/controller.test.ts", + "start": 362, + "end": 373, + "startLoc": { + "line": 362, + "column": 2, + "position": 2978 + }, + "endLoc": { + "line": 373, + "column": 12, + "position": 3059 + } + }, + "secondFile": { + "name": "packages/core/src/test/notifications/controller.test.ts", + "start": 131, + "end": 141, + "startLoc": { + "line": 131, + "column": 2, + "position": 975 + }, + "endLoc": { + "line": 141, + "column": 21, + "position": 1055 + } + } + }, + { + "format": "typescript", + "lines": 15, + "fragment": ",\n })\n await controller.pollForStartUp()\n\n assert.deepStrictEqual(await globals.globalState.get(controller.storageKey), {\n startUp: {\n payload: content,\n eTag,\n },\n emergency: {},\n dismissed: [],\n newlyReceived: ['id:startup2'],\n })\n assert.equal(panelNode.getChildren().length, 1)\n }", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/notifications/controller.test.ts", + "start": 377, + "end": 391, + "startLoc": { + "line": 377, + "column": 10, + "position": 3086 + }, + "endLoc": { + "line": 391, + "column": 2, + "position": 3191 + } + }, + "secondFile": { + "name": "packages/core/src/test/notifications/controller.test.ts", + "start": 359, + "end": 375, + "startLoc": { + "line": 359, + "column": 2, + "position": 2964 + }, + "endLoc": { + "line": 375, + "column": 8, + "position": 3071 + } + } + }, + { + "format": "typescript", + "lines": 19, + "fragment": ", async function () {\n const startUpContent = {\n schemaVersion: '1.x',\n notifications: [getValidTestNotification('id:startup1')],\n }\n const emergencyContent = {\n schemaVersion: '1.x',\n notifications: [getValidTestNotification('id:emergency1')],\n }\n fetcher.setStartUpContent({\n eTag: '1',\n content: JSON.stringify(startUpContent),\n })\n fetcher.setEmergencyContent({\n eTag: '1',\n content: JSON.stringify(emergencyContent),\n })\n\n await controller.pollForStartUp", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/notifications/controller.test.ts", + "start": 393, + "end": 411, + "startLoc": { + "line": 393, + "column": 29, + "position": 3199 + }, + "endLoc": { + "line": 411, + "column": 15, + "position": 3338 + } + }, + "secondFile": { + "name": "packages/core/src/test/notifications/controller.test.ts", + "start": 325, + "end": 343, + "startLoc": { + "line": 325, + "column": 43, + "position": 2683 + }, + "endLoc": { + "line": 343, + "column": 19, + "position": 2822 + } + } + }, + { + "format": "typescript", + "lines": 22, + "fragment": ")\n assertTelemetry('auth_modifyConnection', [\n {\n action: 'addProfile',\n connectionState: 'unauthenticated',\n source: 'Auth#createConnection:ProfileStore#addProfile',\n },\n {\n action: 'getProfile',\n connectionState: 'unauthenticated',\n source: 'Auth#createConnection,updateConnectionState:ProfileStore#getProfileOrThrow',\n },\n {\n action: 'updateConnectionState',\n connectionState: 'valid',\n source: 'Auth#createConnection,updateConnectionState',\n sessionDuration: undefined,\n },\n {\n action: 'getProfile',\n connectionState: 'valid',\n source: 'Auth#useConnection,refreshConnectionState,validateConnection,updateConnectionState:ProfileStore#getProfileOrThrow'", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/credentials/auth.test.ts", + "start": 93, + "end": 114, + "startLoc": { + "line": 93, + "column": 10, + "position": 839 + }, + "endLoc": { + "line": 114, + "column": 116, + "position": 961 + } + }, + "secondFile": { + "name": "packages/core/src/test/credentials/auth.test.ts", + "start": 55, + "end": 76, + "startLoc": { + "line": 55, + "column": 2, + "position": 571 + }, + "endLoc": { + "line": 76, + "column": 76, + "position": 693 + } + } + }, + { + "format": "typescript", + "lines": 27, + "fragment": ", undefined)\n assertTelemetry('auth_modifyConnection', [\n {\n action: 'addProfile',\n connectionState: 'unauthenticated',\n source: 'Auth#createConnection:ProfileStore#addProfile',\n },\n {\n action: 'getProfile',\n connectionState: 'unauthenticated',\n source: 'Auth#createConnection,updateConnectionState:ProfileStore#getProfileOrThrow',\n },\n {\n action: 'updateConnectionState',\n connectionState: 'valid',\n source: 'Auth#createConnection,updateConnectionState',\n sessionDuration: undefined,\n },\n {\n action: 'getProfile',\n connectionState: 'valid',\n source: 'Auth#useConnection,refreshConnectionState,validateConnection,updateConnectionState:ProfileStore#getProfileOrThrow',\n },\n {\n action: 'updateConnectionState',\n connectionState: 'invalid',\n source: 'Auth#logout,invalidateConnection,updateConnectionState'", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/credentials/auth.test.ts", + "start": 143, + "end": 169, + "startLoc": { + "line": 143, + "column": 5, + "position": 1235 + }, + "endLoc": { + "line": 169, + "column": 57, + "position": 1388 + } + }, + "secondFile": { + "name": "packages/core/src/test/credentials/auth.test.ts", + "start": 93, + "end": 119, + "startLoc": { + "line": 93, + "column": 17, + "position": 836 + }, + "endLoc": { + "line": 119, + "column": 74, + "position": 989 + } + } + }, + { + "format": "typescript", + "lines": 23, + "fragment": "{\n filePath: 'workspaceFolder/python3.7-plain-sam-app/hello_world/app.py',\n startLine: 1,\n endLine: 1,\n title: 'title',\n description: {\n text: 'text',\n markdown: 'markdown',\n },\n detectorId: 'detectorId',\n detectorName: 'detectorName',\n findingId: 'findingId',\n relatedVulnerabilities: [],\n severity: 'High',\n remediation: {\n recommendation: {\n text: 'text',\n url: 'url',\n },\n suggestedFixes: [],\n },\n codeSnippet: [],\n }", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/codewhisperer/testUtil.ts", + "start": 272, + "end": 294, + "startLoc": { + "line": 272, + "column": 9, + "position": 2151 + }, + "endLoc": { + "line": 294, + "column": 2, + "position": 2292 + } + }, + "secondFile": { + "name": "packages/amazonq/test/unit/codewhisperer/service/securityScanHandler.test.ts", + "start": 27, + "end": 49, + "startLoc": { + "line": 27, + "column": 2, + "position": 167 + }, + "endLoc": { + "line": 49, + "column": 4, + "position": 308 + } + } + }, + { + "format": "typescript", + "lines": 17, + "fragment": ")\n })\n afterEach(function () {\n sinon.restore()\n })\n after(async function () {\n await closeAllEditors()\n })\n\n const openTestFile = async (filePath: string) => {\n const doc = await vscode.workspace.openTextDocument(filePath)\n return await vscode.window.showTextDocument(doc, {\n selection: new vscode.Range(new vscode.Position(0, 0), new vscode.Position(0, 1)),\n })\n }\n\n it", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/codewhisperer/startSecurityScan.test.ts", + "start": 51, + "end": 67, + "startLoc": { + "line": 51, + "column": 8, + "position": 465 + }, + "endLoc": { + "line": 67, + "column": 3, + "position": 616 + } + }, + "secondFile": { + "name": "packages/core/src/testInteg/perf/startSecurityScan.test.ts", + "start": 53, + "end": 71, + "startLoc": { + "line": 53, + "column": 8, + "position": 472 + }, + "endLoc": { + "line": 71, + "column": 16, + "position": 625 + } + } + }, + { + "format": "typescript", + "lines": 20, + "fragment": ")\n }\n })\n model.codeScanState.setToRunning()\n const scanPromise = startSecurityScan.startSecurityScan(\n mockSecurityPanelViewProvider,\n editor,\n createClient(),\n extensionContext,\n CodeAnalysisScope.PROJECT,\n false\n )\n await startSecurityScan.confirmStopSecurityScan(\n model.codeScanState,\n false,\n CodeAnalysisScope.PROJECT,\n undefined\n )\n await scanPromise\n assert.ok(securityScanRenderSpy.calledOnce", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/codewhisperer/startSecurityScan.test.ts", + "start": 166, + "end": 185, + "startLoc": { + "line": 166, + "column": 7, + "position": 1561 + }, + "endLoc": { + "line": 185, + "column": 11, + "position": 1663 + } + }, + "secondFile": { + "name": "packages/core/src/test/codewhisperer/startSecurityScan.test.ts", + "start": 134, + "end": 153, + "startLoc": { + "line": 134, + "column": 15, + "position": 1272 + }, + "endLoc": { + "line": 153, + "column": 10, + "position": 1374 + } + } + }, + { + "format": "typescript", + "lines": 14, + "fragment": ", () => {\n provider.issues = [\n {\n filePath: testFilePath,\n issues: [\n createCodeScanIssue({ findingId: 'qca-1', detectorName: 'QCA-detector' }),\n createCodeScanIssue({ findingId: 'display-1', detectorName: displayFindingsDetectorName }),\n ],\n },\n ]\n\n const newIssues: AggregatedCodeScanIssue = {\n filePath: testFilePath,\n issues: [createCodeScanIssue({ findingId: 'new-display-1'", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/codewhisperer/mergeIssuesDisplayFindings.test.ts", + "start": 62, + "end": 75, + "startLoc": { + "line": 62, + "column": 49, + "position": 541 + }, + "endLoc": { + "line": 75, + "column": 16, + "position": 658 + } + }, + "secondFile": { + "name": "packages/core/src/test/codewhisperer/mergeIssuesDisplayFindings.test.ts", + "start": 35, + "end": 48, + "startLoc": { + "line": 35, + "column": 51, + "position": 281 + }, + "endLoc": { + "line": 48, + "column": 12, + "position": 398 + } + } + }, + { + "format": "typescript", + "lines": 11, + "fragment": ", async function () {\n const devfilePath = vscode.Uri.parse('/projects/WebApplication/devfile.yaml').fsPath\n sandbox.stub(fileSystemUtils, 'fileExists').callsFake(async function (p: string) {\n return p === devfilePath\n })\n const client = mockClient('devfile.yaml')\n const location = await getDevfileLocation(client, vscode.Uri.parse('/projects/WebApplication'))\n assert.strictEqual(location.toString(), 'file:///projects/WebApplication/devfile.yaml')\n })\n\n it('checks project root for devfile when location isnt specified'", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/codecatalyst/devfileLocation.test.ts", + "start": 85, + "end": 95, + "startLoc": { + "line": 85, + "column": 74, + "position": 866 + }, + "endLoc": { + "line": 95, + "column": 63, + "position": 993 + } + }, + "secondFile": { + "name": "packages/core/src/test/codecatalyst/devfileLocation.test.ts", + "start": 48, + "end": 58, + "startLoc": { + "line": 48, + "column": 47, + "position": 394 + }, + "endLoc": { + "line": 58, + "column": 39, + "position": 521 + } + } + }, + { + "format": "typescript", + "lines": 14, + "fragment": ", async function () {\n Sinon.stub(codecatalystAuth, 'isConnectionOnboarded').resolves(true)\n const connectToEnterpriseSso = Sinon.spy(codecatalystAuth, 'connectToEnterpriseSso')\n\n getTestWindow().onDidShowQuickPick(async (picker) => {\n await picker.untilReady()\n picker.acceptItem(picker.items[1])\n })\n\n await codecatalystAuth.connectToEnterpriseSso(enterpriseSsoStartUrl, 'us-east-1')\n let conn = codecatalystAuth.activeConnection\n assert.strictEqual(conn?.type, 'sso')\n assert.strictEqual(conn.label, 'IAM Identity Center (enterprise)')\n assert", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/test/codecatalyst/auth.test.ts", + "start": 142, + "end": 155, + "startLoc": { + "line": 142, + "column": 39, + "position": 1308 + }, + "endLoc": { + "line": 155, + "column": 7, + "position": 1449 + } + }, + "secondFile": { + "name": "packages/core/src/test/codecatalyst/auth.test.ts", + "start": 120, + "end": 134, + "startLoc": { + "line": 120, + "column": 52, + "position": 1082 + }, + "endLoc": { + "line": 134, + "column": 6, + "position": 1224 + } + } + }, + { + "format": "typescript", + "lines": 11, + "fragment": "] }\n\n // If the extension is launch in debug mode the debug server options are use\n // Otherwise the run options are used\n const serverOptions: ServerOptions = {\n run: { module: serverModule, transport: TransportKind.ipc },\n debug: { module: serverModule, transport: TransportKind.ipc, options: debugOptions },\n }\n\n const documentSelector = [\n { schema: 'file', language: 'ssm-json'", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/ssmDocument/ssm/ssmClient.ts", + "start": 67, + "end": 77, + "startLoc": { + "line": 67, + "column": 2, + "position": 469 + }, + "endLoc": { + "line": 77, + "column": 11, + "position": 567 + } + }, + "secondFile": { + "name": "packages/core/src/stepFunctions/asl/client.ts", + "start": 71, + "end": 81, + "startLoc": { + "line": 71, + "column": 22, + "position": 367 + }, + "endLoc": { + "line": 81, + "column": 9, + "position": 465 + } + } + }, + { + "format": "typescript", + "lines": 36, + "fragment": "}\n\nasync function promptUserforDocumentVersion(versions: SSM.Types.DocumentVersionInfo[]): Promise {\n // Prompt user to pick document version\n const quickPickItems: vscode.QuickPickItem[] = []\n for (const version of versions) {\n if (version.DocumentVersion) {\n quickPickItems.push({\n label: version.DocumentVersion,\n description: `${version.IsDefaultVersion ? 'Default' : ''}`,\n })\n }\n }\n\n if (quickPickItems.length > 1) {\n const versionPick = picker.createQuickPick({\n options: {\n ignoreFocusOut: true,\n title: localize(\n 'AWS.message.prompt.selectSsmDocumentVersion.placeholder',\n 'Select a document version to download'\n ),\n },\n items: quickPickItems,\n })\n\n const versionChoices = await picker.promptUser({\n picker: versionPick,\n })\n\n const versionSelection = picker.verifySinglePickerOutput(versionChoices)\n\n // User pressed escape and didn't select a template\n return versionSelection?.label\n }\n}", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/ssmDocument/commands/openDocumentItem.ts", + "start": 66, + "end": 101, + "startLoc": { + "line": 66, + "column": 1, + "position": 564 + }, + "endLoc": { + "line": 101, + "column": 2, + "position": 821 + } + }, + "secondFile": { + "name": "packages/core/src/ssmDocument/commands/updateDocumentVersion.ts", + "start": 77, + "end": 111, + "startLoc": { + "line": 77, + "column": 1, + "position": 546 + }, + "endLoc": { + "line": 111, + "column": 5, + "position": 803 + } + } + }, + { + "format": "typescript", + "lines": 15, + "fragment": "(const item of items) {\n const key = keySelector(item)\n if (key) {\n if (result.has(key)) {\n throw new Error(`Conflict: Multiple items have the key '${key}'`)\n }\n\n result.set(key, item)\n }\n }\n\n return result\n}\n\nexport function updateInPlace", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/shared/utilities/collectionUtils.ts", + "start": 90, + "end": 104, + "startLoc": { + "line": 90, + "column": 2, + "position": 891 + }, + "endLoc": { + "line": 104, + "column": 14, + "position": 986 + } + }, + "secondFile": { + "name": "packages/core/src/shared/utilities/collectionUtils.ts", + "start": 60, + "end": 74, + "startLoc": { + "line": 60, + "column": 2, + "position": 597 + }, + "endLoc": { + "line": 74, + "column": 9, + "position": 692 + } + } + }, + { + "format": "typescript", + "lines": 13, + "fragment": "),\n {\n showWhen: async ({ template }) => {\n const samTemplateParameters = await getParameters(template!.uri)\n return !!samTemplateParameters && samTemplateParameters.size > 0\n },\n }\n )\n\n this.form.projectRoot.setDefault(({ template }) => getProjectRoot(template))\n\n this.form.paramsSource.bindPrompter(async ({ projectRoot }) =>\n createDeployParamsSourcePrompter", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/shared/sam/deploy.ts", + "start": 99, + "end": 111, + "startLoc": { + "line": 99, + "column": 17, + "position": 853 + }, + "endLoc": { + "line": 111, + "column": 33, + "position": 970 + } + }, + "secondFile": { + "name": "packages/core/src/shared/sam/sync.ts", + "start": 197, + "end": 208, + "startLoc": { + "line": 197, + "column": 17, + "position": 1625 + }, + "endLoc": { + "line": 208, + "column": 2, + "position": 1741 + } + } + }, + { + "format": "typescript", + "lines": 48, + "fragment": "= [\n {\n label: 'Beta features',\n data: '--beta-features',\n description: 'Enable beta features',\n },\n {\n label: 'Build in source',\n data: '--build-in-source',\n description: 'Opts in to build project in the source folder',\n },\n {\n label: 'Cached',\n data: '--cached',\n description: 'Reuse build artifacts that have not changed from previous builds',\n },\n {\n label: 'Debug',\n data: '--debug',\n description: 'Turn on debug logging to print debug messages and display timestamps',\n },\n {\n label: 'Parallel',\n data: '--parallel',\n description: 'Enable parallel builds for AWS SAM template functions and layers',\n },\n {\n label: 'Skip prepare infra',\n data: '--skip-prepare-infra',\n description: 'Skip preparation stage when there are no infrastructure changes',\n },\n {\n label: 'Skip pull image',\n data: '--skip-pull-image',\n description: 'Skip pulling down the latest Docker image for Lambda runtime',\n },\n {\n label: 'Use container',\n data: '--use-container',\n description: 'Build functions with an AWS Lambda-like container',\n },\n {\n label: 'Save parameters',\n data: '--save-params',\n description: 'Save to samconfig.toml as default parameters',\n },\n]\nexport", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/shared/sam/build.ts", + "start": 77, + "end": 124, + "startLoc": { + "line": 77, + "column": 2, + "position": 561 + }, + "endLoc": { + "line": 124, + "column": 7, + "position": 819 + } + }, + "secondFile": { + "name": "packages/core/src/test/shared/sam/build.test.ts", + "start": 100, + "end": 147, + "startLoc": { + "line": 100, + "column": 2, + "position": 1005 + }, + "endLoc": { + "line": 147, + "column": 2, + "position": 1265 + } + } + }, + { + "format": "typescript", + "lines": 11, + "fragment": "}\n\n private logText(): string {\n return this.params.showUrl ? this.url : (this.params.friendlyName ?? 'resource from URL')\n }\n\n private logCancellation(event: CancelEvent) {\n getLogger().debug(`Download for \"${this.logText()}\" ${event.agent === 'user' ? 'cancelled' : 'timed out'}`)\n }\n\n private", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/shared/resourcefetcher/httpResourceFetcher.ts", + "start": 95, + "end": 105, + "startLoc": { + "line": 95, + "column": 5, + "position": 709 + }, + "endLoc": { + "line": 105, + "column": 8, + "position": 811 + } + }, + "secondFile": { + "name": "packages/core/src/shared/resourcefetcher/node/httpResourceFetcher.ts", + "start": 79, + "end": 89, + "startLoc": { + "line": 79, + "column": 5, + "position": 522 + }, + "endLoc": { + "line": 89, + "column": 40, + "position": 624 + } + } + }, + { + "format": "typescript", + "lines": 15, + "fragment": "getResolvedShellEnv(env)\n // resolve failed or doesn't need to resolve\n if (!shellEnv) {\n return env\n }\n try {\n const envPaths: string[] = env.PATH ? env.PATH.split(path.delimiter) : []\n const resolvedPaths: string[] = shellEnv.PATH ? shellEnv.PATH.split(path.delimiter) : []\n const envReturn = { ...env }\n // merge, dedup, join\n envReturn.PATH = [...new Set(envPaths.concat(resolvedPaths))].join(path.delimiter)\n\n return envReturn\n } catch (err) {\n getLogger", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/shared/env/resolveEnv.ts", + "start": 115, + "end": 129, + "startLoc": { + "line": 115, + "column": 2, + "position": 800 + }, + "endLoc": { + "line": 129, + "column": 10, + "position": 963 + } + }, + "secondFile": { + "name": "packages/core/src/test/shared/env/resolveEnv.test.ts", + "start": 27, + "end": 41, + "startLoc": { + "line": 27, + "column": 2, + "position": 169 + }, + "endLoc": { + "line": 41, + "column": 7, + "position": 332 + } + } + }, + { + "format": "typescript", + "lines": 35, + "fragment": ")\n }\n\n return false\n}\n\n/**\n * Returns whether or not a method is a valid Lambda handler\n * @param document VS Code document\n * @param symbol VS Code DocumentSymbol to evaluate\n */\nexport function isValidLambdaHandler(\n document: Pick,\n symbol: vscode.DocumentSymbol\n): boolean {\n if (symbol.kind === vscode.SymbolKind.Method) {\n // from \"public async Task foo()\" pull \"public async Task \"\n const signatureBeforeMethodNameRange = new vscode.Range(symbol.range.start, symbol.selectionRange.start)\n const signatureBeforeMethodName: string = document.getText(signatureBeforeMethodNameRange)\n\n if (regexpReservedWordPublic.test(signatureBeforeMethodName)) {\n return isValidMethodSignature(symbol)\n }\n }\n\n return false\n}\n\n/**\n * Returns whether or not a VS Code DocumentSymbol is a method that could be a Lambda handler\n * * has one or more parameters\n * * if there is more than one parameter, the second parameter is an ILambdaContext object\n * * does not check for extension/implementation of ILambdaContext\n * @param symbol VS Code DocumentSymbol to analyze\n */", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/shared/codelens/csharpCodeLensProvider.ts", + "start": 123, + "end": 157, + "startLoc": { + "line": 123, + "column": 27, + "position": 1078 + }, + "endLoc": { + "line": 157, + "column": 4, + "position": 1235 + } + }, + "secondFile": { + "name": "packages/core/src/shared/codelens/javaCodeLensProvider.ts", + "start": 102, + "end": 137, + "startLoc": { + "line": 102, + "column": 9, + "position": 835 + }, + "endLoc": { + "line": 137, + "column": 4, + "position": 992 + } + } + }, + { + "format": "typescript", + "lines": 11, + "fragment": "{\n return {\n provideCodeLenses: async (\n document: vscode.TextDocument,\n token: vscode.CancellationToken,\n forceProvide?: boolean\n ): Promise => {\n if (!forceProvide && !configuration.get('enableCodeLenses', false)) {\n return []\n }\n const handlers =", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/shared/codelens/codeLensUtils.ts", + "start": 357, + "end": 367, + "startLoc": { + "line": 357, + "column": 2, + "position": 2940 + }, + "endLoc": { + "line": 367, + "column": 2, + "position": 3034 + } + }, + "secondFile": { + "name": "packages/core/src/shared/codelens/codeLensUtils.ts", + "start": 336, + "end": 346, + "startLoc": { + "line": 336, + "column": 2, + "position": 2773 + }, + "endLoc": { + "line": 346, + "column": 2, + "position": 2866 + } + } + }, + { + "format": "typescript", + "lines": 11, + "fragment": "(configuration: SamCliSettings): Promise {\n return {\n provideCodeLenses: async (\n document: vscode.TextDocument,\n token: vscode.CancellationToken,\n forceProvide?: boolean\n ): Promise => {\n if (!forceProvide && !configuration.get('enableCodeLenses', false)) {\n return []\n }\n const handlers = await goCodelens", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/shared/codelens/codeLensUtils.ts", + "start": 378, + "end": 388, + "startLoc": { + "line": 378, + "column": 23, + "position": 3094 + }, + "endLoc": { + "line": 388, + "column": 11, + "position": 3205 + } + }, + "secondFile": { + "name": "packages/core/src/shared/codelens/codeLensUtils.ts", + "start": 336, + "end": 367, + "startLoc": { + "line": 336, + "column": 27, + "position": 2760 + }, + "endLoc": { + "line": 367, + "column": 11, + "position": 3038 + } + } + }, + { + "format": "typescript", + "lines": 11, + "fragment": "(configuration: SamCliSettings): Promise {\n return {\n provideCodeLenses: async (\n document: vscode.TextDocument,\n token: vscode.CancellationToken,\n forceProvide?: boolean\n ): Promise => {\n if (!forceProvide && !configuration.get('enableCodeLenses', false)) {\n return []\n }\n // Try to activate the Java Extension before requesting symbols from a java file", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/shared/codelens/codeLensUtils.ts", + "start": 399, + "end": 409, + "startLoc": { + "line": 399, + "column": 25, + "position": 3261 + }, + "endLoc": { + "line": 409, + "column": 81, + "position": 3364 + } + }, + "secondFile": { + "name": "packages/core/src/shared/codelens/codeLensUtils.ts", + "start": 336, + "end": 319, + "startLoc": { + "line": 336, + "column": 27, + "position": 2760 + }, + "endLoc": { + "line": 319, + "column": 85, + "position": 2655 + } + } + }, + { + "format": "typescript", + "lines": 11, + "fragment": "&& connectionParams.connectionType !== ConnectionType.DatabaseUser\n ? connectionParams.username\n : undefined,\n WorkgroupName: warehouseType === RedshiftWarehouseType.SERVERLESS ? warehouseIdentifier : undefined,\n NextToken: nextToken,\n SecretArn:\n connectionParams.connectionType === ConnectionType.DatabaseUser || connectionParams.secret\n ? connectionParams.secret\n : undefined,\n }\n return redshiftDataClient.listSchemas", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/shared/clients/redshiftClient.ts", + "start": 107, + "end": 117, + "startLoc": { + "line": 107, + "column": 2, + "position": 976 + }, + "endLoc": { + "line": 117, + "column": 12, + "position": 1071 + } + }, + "secondFile": { + "name": "packages/core/src/shared/clients/redshiftClient.ts", + "start": 86, + "end": 97, + "startLoc": { + "line": 86, + "column": 2, + "position": 747 + }, + "endLoc": { + "line": 97, + "column": 14, + "position": 843 + } + } + }, + { + "format": "typescript", + "lines": 11, + "fragment": ", fileName)\n if (type === vscode.FileType.Directory) {\n nodes.push(new LambdaFunctionFolderNode(this, fileName, filePath))\n } else {\n nodes.push(new LambdaFunctionFileNode(this, fileName, filePath))\n }\n }\n\n return nodes\n }\n}", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/lambda/explorer/lambdaFunctionFolderNode.ts", + "start": 50, + "end": 60, + "startLoc": { + "line": 50, + "column": 5, + "position": 459 + }, + "endLoc": { + "line": 60, + "column": 2, + "position": 541 + } + }, + "secondFile": { + "name": "packages/core/src/lambda/explorer/lambdaFunctionNode.ts", + "start": 94, + "end": 104, + "startLoc": { + "line": 94, + "column": 8, + "position": 886 + }, + "endLoc": { + "line": 104, + "column": 2, + "position": 968 + } + } + }, + { + "format": "typescript", + "lines": 13, + "fragment": "}\n\n public override async getChildren(): Promise {\n return await makeChildrenNodes({\n getChildNodes: async () => {\n await this.updateChildren()\n\n return [...this.functionNodes.values()]\n },\n getNoChildrenPlaceholderNode: async () =>\n new PlaceholderNode(\n this,\n localize('AWS.explorerNode.cloudFormation.noFunctions'", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/lambda/explorer/cloudFormationNodes.ts", + "start": 99, + "end": 111, + "startLoc": { + "line": 99, + "column": 5, + "position": 911 + }, + "endLoc": { + "line": 111, + "column": 46, + "position": 1009 + } + }, + "secondFile": { + "name": "packages/core/src/lambda/explorer/lambdaNodes.ts", + "start": 39, + "end": 49, + "startLoc": { + "line": 39, + "column": 5, + "position": 279 + }, + "endLoc": { + "line": 49, + "column": 38, + "position": 374 + } + } + }, + { + "format": "typescript", + "lines": 20, + "fragment": "? recentlyUsed : '',\n })),\n })\n\n const choices = await picker.promptUser({\n picker: quickPick,\n onDidTriggerButton: (button, resolve, reject) => {\n if (button === vscode.QuickInputButtons.Back) {\n resolve(undefined)\n } else if (button === this.helpButton) {\n void openUrl(vscode.Uri.parse(eventBridgeSchemasDocUrl))\n }\n },\n })\n const val = picker.verifySinglePickerOutput(choices)\n\n return val ? (val.label as codeLang.SchemaCodeLangs) : undefined\n }\n\n public async promptUserForLocation", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/eventSchemas/wizards/schemaCodeDownloadWizard.ts", + "start": 109, + "end": 128, + "startLoc": { + "line": 109, + "column": 2, + "position": 964 + }, + "endLoc": { + "line": 128, + "column": 22, + "position": 1139 + } + }, + "secondFile": { + "name": "packages/core/src/eventSchemas/wizards/schemaCodeDownloadWizard.ts", + "start": 71, + "end": 90, + "startLoc": { + "line": 71, + "column": 2, + "position": 589 + }, + "endLoc": { + "line": 90, + "column": 21, + "position": 764 + } + } + }, + { + "format": "typescript", + "lines": 11, + "fragment": "}\n\n public override async getChildren(): Promise {\n return await makeChildrenNodes({\n getChildNodes: async () => {\n await this.updateChildren()\n\n return [...this.registryNodes.values()]\n },\n getNoChildrenPlaceholderNode: async () =>\n new PlaceholderNode(this, localize('AWS.explorerNode.schemas.noRegistry'", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/eventSchemas/explorer/schemasNode.ts", + "start": 27, + "end": 37, + "startLoc": { + "line": 27, + "column": 5, + "position": 234 + }, + "endLoc": { + "line": 37, + "column": 38, + "position": 329 + } + }, + "secondFile": { + "name": "packages/core/src/ssmDocument/explorer/documentTypeNode.ts", + "start": 41, + "end": 53, + "startLoc": { + "line": 41, + "column": 5, + "position": 330 + }, + "endLoc": { + "line": 53, + "column": 42, + "position": 428 + } + } + }, + { + "format": "typescript", + "lines": 12, + "fragment": "> {\n return await vscode.window.withProgress(\n {\n location: vscode.ProgressLocation.Notification,\n cancellable: false,\n },\n async (progress) => {\n const startTime = new globals.clock.Date()\n let result: Result = 'Succeeded'\n try {\n progress.report({\n message: `Updating resource ", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/dynamicResources/commands/saveResource.ts", + "start": 139, + "end": 150, + "startLoc": { + "line": 139, + "column": 8, + "position": 1170 + }, + "endLoc": { + "line": 150, + "column": 20, + "position": 1267 + } + }, + "secondFile": { + "name": "packages/core/src/dynamicResources/commands/saveResource.ts", + "start": 74, + "end": 86, + "startLoc": { + "line": 74, + "column": 10, + "position": 668 + }, + "endLoc": { + "line": 86, + "column": 21, + "position": 766 + } + } + }, + { + "format": "typescript", + "lines": 18, + "fragment": "/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n *\n * This module is run within the webview, and will mount the Vue app.\n */\n\nimport { createApp } from 'vue'\nimport component from './root.vue'\n\nconst create = () => createApp(component)\nconst app = create()\n\napp.mount('#vue-app')\nwindow.addEventListener('remount', () => {\n app.unmount()\n create().mount('#vue-app')\n})", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/codewhisperer/vue/index.ts", + "start": 1, + "end": 18, + "startLoc": { + "line": 1, + "column": 1, + "position": 0 + }, + "endLoc": { + "line": 18, + "column": 2, + "position": 90 + } + }, + "secondFile": { + "name": "packages/core/src/codewhisperer/views/securityIssue/vue/index.ts", + "start": 1, + "end": 18, + "startLoc": { + "line": 1, + "column": 1, + "position": 0 + }, + "endLoc": { + "line": 18, + "column": 2, + "position": 90 + } + } + }, + { + "format": "typescript", + "lines": 11, + "fragment": "),\n viewColumn: vscode.ViewColumn.Active,\n })\n\n if (!subscriptions) {\n subscriptions = [\n webview.onDidDispose(() => {\n vscode.Disposable.from(...(subscriptions ?? [])).dispose()\n activePanel = undefined\n subscriptions = undefined\n }", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/codewhisperer/vue/backend.ts", + "start": 149, + "end": 159, + "startLoc": { + "line": 149, + "column": 17, + "position": 1271 + }, + "endLoc": { + "line": 159, + "column": 2, + "position": 1357 + } + }, + "secondFile": { + "name": "packages/core/src/codecatalyst/vue/create/backend.ts", + "start": 268, + "end": 278, + "startLoc": { + "line": 268, + "column": 40, + "position": 2105 + }, + "endLoc": { + "line": 278, + "column": 14, + "position": 2191 + } + } + }, + { + "format": "typescript", + "lines": 44, + "fragment": ")\n case ManualtriggerState.id:\n return new ManualtriggerState()\n case TryMoreExState.id:\n return new TryMoreExState()\n case EndState.id:\n return new EndState()\n case InlineChatState.id:\n return new InlineChatState()\n default:\n return undefined\n }\n}\n\ninterface AnnotationState {\n id: string\n suppressWhileRunning: boolean\n decorationRenderOptions?: vscode.ThemableDecorationAttachmentRenderOptions\n\n text: () => string\n updateState(changeSource: AnnotationChangeSource, force: boolean): AnnotationState | undefined\n isNextState(state: AnnotationState | undefined): boolean\n}\n\n/**\n * case 1: How Cwspr triggers\n * Trigger Criteria:\n * User opens an editor file &&\n * CW is not providing a suggestion &&\n * User has not accepted any suggestion\n *\n * Exit criteria:\n * User accepts 1 suggestion\n *\n */\nexport class AutotriggerState implements AnnotationState {\n static id = 'codewhisperer_learnmore_case_1'\n id = AutotriggerState.id\n\n suppressWhileRunning = true\n text = () => 'Amazon Q Tip 1/3: Start typing to get suggestions ([ESC] to exit)'\n static acceptedCount = 0\n\n updateState", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/codewhisperer/views/lineAnnotationController.ts", + "start": 29, + "end": 72, + "startLoc": { + "line": 29, + "column": 2, + "position": 252 + }, + "endLoc": { + "line": 72, + "column": 12, + "position": 480 + } + }, + "secondFile": { + "name": "packages/amazonq/src/app/inline/tutorials/inlineTutorialAnnotation.ts", + "start": 24, + "end": 67, + "startLoc": { + "line": 24, + "column": 15, + "position": 225 + }, + "endLoc": { + "line": 67, + "column": 12, + "position": 453 + } + } + }, + { + "format": "typescript", + "lines": 78, + "fragment": ").updateState(changeSource, force)\n }\n\n isNextState(state: AnnotationState | undefined): boolean {\n return state instanceof ManualtriggerState\n }\n}\n\n/**\n * case 2: Manual trigger\n * Trigger Criteria:\n * User exists case 1 &&\n * User navigates to a new line\n *\n * Exit criteria:\n * User inokes manual trigger shortcut\n */\nexport class ManualtriggerState implements AnnotationState {\n static id = 'codewhisperer_learnmore_case_2'\n id = ManualtriggerState.id\n\n suppressWhileRunning = true\n\n text = () => {\n if (os.platform() === 'win32') {\n return 'Amazon Q Tip 2/3: Invoke suggestions with [Alt] + [C] ([ESC] to exit)'\n }\n\n return 'Amazon Q Tip 2/3: Invoke suggestions with [Option] + [C] ([ESC] to exit)'\n }\n hasManualTrigger: boolean = false\n hasValidResponse: boolean = false\n\n updateState(changeSource: AnnotationChangeSource, force: boolean): AnnotationState | undefined {\n if (this.hasManualTrigger && this.hasValidResponse) {\n if (changeSource !== 'codewhisperer') {\n return new TryMoreExState()\n } else {\n return undefined\n }\n } else {\n return this\n }\n }\n\n isNextState(state: AnnotationState | undefined): boolean {\n return state instanceof TryMoreExState\n }\n}\n\n/**\n * case 3: Learn more\n * Trigger Criteria:\n * User exists case 2 &&\n * User navigates to a new line\n *\n * Exit criteria:\n * User accepts or rejects the suggestion\n */\nexport class TryMoreExState implements AnnotationState {\n static id = 'codewhisperer_learnmore_case_3'\n id = TryMoreExState.id\n\n suppressWhileRunning = true\n\n text = () => 'Amazon Q Tip 3/3: For settings, open the Amazon Q menu from the status bar ([ESC] to exit)'\n updateState(changeSource: AnnotationChangeSource, force: boolean): AnnotationState {\n if (force) {\n return new EndState()\n }\n return this\n }\n\n isNextState(state: AnnotationState | undefined): boolean {\n return state instanceof EndState\n }\n\n static triggerCount", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/codewhisperer/views/lineAnnotationController.ts", + "start": 99, + "end": 176, + "startLoc": { + "line": 99, + "column": 2, + "position": 630 + }, + "endLoc": { + "line": 176, + "column": 13, + "position": 1052 + } + }, + "secondFile": { + "name": "packages/amazonq/src/app/inline/tutorials/inlineTutorialAnnotation.ts", + "start": 104, + "end": 181, + "startLoc": { + "line": 104, + "column": 15, + "position": 715 + }, + "endLoc": { + "line": 181, + "column": 14, + "position": 1137 + } + } + }, + { + "format": "typescript", + "lines": 48, + "fragment": "static learnmoeCount: number = 0\n}\n\nexport class EndState implements AnnotationState {\n static id = 'codewhisperer_learnmore_end'\n id = EndState.id\n\n suppressWhileRunning = true\n text = () => ''\n updateState(changeSource: AnnotationChangeSource, force: boolean): AnnotationState {\n return this\n }\n isNextState(state: AnnotationState): boolean {\n return false\n }\n}\n\nexport class InlineChatState implements AnnotationState {\n static id = 'amazonq_annotation_inline_chat'\n id = InlineChatState.id\n suppressWhileRunning = false\n\n text = () => {\n if (os.platform() === 'darwin') {\n return 'Amazon Q: Edit \\u2318I'\n }\n return 'Amazon Q: Edit (Ctrl+I)'\n }\n updateState(_changeSource: AnnotationChangeSource, _force: boolean): AnnotationState {\n return this\n }\n isNextState(_state: AnnotationState | undefined): boolean {\n return false\n }\n}\n\n/**\n * There are\n * - existing users\n * - new users\n * -- new users who has not seen tutorial\n * -- new users who has seen tutorial\n *\n * \"existing users\" should have the context key \"CODEWHISPERER_AUTO_TRIGGER_ENABLED\"\n * \"new users who has seen tutorial\" should have the context key \"inlineKey\" and \"CODEWHISPERER_AUTO_TRIGGER_ENABLED\"\n * the remaining grouop of users should belong to \"new users who has not seen tutorial\"\n */\nexport class LineAnnotationController", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/codewhisperer/views/lineAnnotationController.ts", + "start": 177, + "end": 224, + "startLoc": { + "line": 177, + "column": 5, + "position": 1062 + }, + "endLoc": { + "line": 224, + "column": 25, + "position": 1325 + } + }, + "secondFile": { + "name": "packages/amazonq/src/app/inline/tutorials/inlineTutorialAnnotation.ts", + "start": 181, + "end": 228, + "startLoc": { + "line": 181, + "column": 5, + "position": 1135 + }, + "endLoc": { + "line": 228, + "column": 25, + "position": 1398 + } + } + }, + { + "format": "typescript", + "lines": 18, + "fragment": "implements vscode.Disposable {\n private readonly _disposable: vscode.Disposable\n private _editor: vscode.TextEditor | undefined\n\n private _currentState: AnnotationState\n\n private readonly cwLineHintDecoration: vscode.TextEditorDecorationType =\n vscode.window.createTextEditorDecorationType({\n after: {\n margin: '0 0 0 3em',\n // \"borderRadius\" and \"padding\" are not available on \"after\" type of decoration, this is a hack to inject these css prop to \"after\" content. Refer to https://github.com/microsoft/vscode/issues/68845\n textDecoration: ';border-radius:0.25rem;padding:0rem 0.5rem;',\n width: 'fit-content',\n },\n rangeBehavior: vscode.DecorationRangeBehavior.OpenOpen,\n })\n\n constructor(private readonly container", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/codewhisperer/views/lineAnnotationController.ts", + "start": 224, + "end": 241, + "startLoc": { + "line": 224, + "column": 2, + "position": 1327 + }, + "endLoc": { + "line": 241, + "column": 10, + "position": 1451 + } + }, + "secondFile": { + "name": "packages/amazonq/src/app/inline/tutorials/inlineTutorialAnnotation.ts", + "start": 228, + "end": 246, + "startLoc": { + "line": 228, + "column": 2, + "position": 1400 + }, + "endLoc": { + "line": 246, + "column": 12, + "position": 1526 + } + } + }, + { + "format": "typescript", + "lines": 11, + "fragment": ")\n getLogger().debug(\n `codewhisperer: new user login, activating inline tutorial. (autotriggerEnabled=${cachedAutotriggerEnabled}; inlineState=${cachedState?.id})`\n )\n } else {\n this._currentState = new EndState()\n getLogger().debug(`codewhisperer: existing user login, disabling inline tutorial.`)\n }\n\n this._disposable = vscode.Disposable.from(\n subscribeOnce", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/codewhisperer/views/lineAnnotationController.ts", + "start": 247, + "end": 257, + "startLoc": { + "line": 247, + "column": 2, + "position": 1541 + }, + "endLoc": { + "line": 257, + "column": 14, + "position": 1617 + } + }, + "secondFile": { + "name": "packages/amazonq/src/app/inline/tutorials/inlineTutorialAnnotation.ts", + "start": 254, + "end": 264, + "startLoc": { + "line": 254, + "column": 15, + "position": 1635 + }, + "endLoc": { + "line": 264, + "column": 16, + "position": 1711 + } + } + }, + { + "format": "typescript", + "lines": 18, + "fragment": ".secondaryAuth.onDidChangeActiveConnection(async () => {\n await this.refresh(vscode.window.activeTextEditor, 'editor')\n })\n )\n }\n\n dispose() {\n this._disposable.dispose()\n }\n\n private _isReady: boolean = false\n\n private async onReady(): Promise {\n this._isReady = !(this._currentState instanceof EndState)\n await this._refresh(vscode.window.activeTextEditor, 'editor')\n }\n\n isTutorialDone", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/codewhisperer/views/lineAnnotationController.ts", + "start": 268, + "end": 285, + "startLoc": { + "line": 268, + "column": 5, + "position": 1753 + }, + "endLoc": { + "line": 285, + "column": 15, + "position": 1885 + } + }, + "secondFile": { + "name": "packages/amazonq/src/app/inline/tutorials/inlineTutorialAnnotation.ts", + "start": 275, + "end": 292, + "startLoc": { + "line": 275, + "column": 9, + "position": 1841 + }, + "endLoc": { + "line": 292, + "column": 6, + "position": 1973 + } + } + }, + { + "format": "typescript", + "lines": 83, + "fragment": "}\n\n isTutorialDone(): boolean {\n return this._currentState.id === new EndState().id\n }\n\n isInlineChatHint(): boolean {\n return this._currentState.id === new InlineChatState().id\n }\n\n async dismissTutorial() {\n this._currentState = new EndState()\n await setContext('aws.codewhisperer.tutorial.workInProgress', false)\n await globals.globalState.update(inlinehintKey, this._currentState.id)\n }\n\n /**\n * Trys to show the inline hint, if the tutorial is not finished it will not be shown\n */\n async tryShowInlineHint(): Promise {\n if (this.isTutorialDone()) {\n this._isReady = true\n this._currentState = new InlineChatState()\n return true\n }\n return false\n }\n\n async tryHideInlineHint(): Promise {\n if (this._currentState instanceof InlineChatState) {\n this._currentState = new EndState()\n return true\n }\n return false\n }\n\n private async onActiveLinesChanged(e: LinesChangeEvent) {\n if (!this._isReady) {\n return\n }\n\n this.clear()\n\n await this.refresh(e.editor, e.reason)\n }\n\n clear() {\n this._editor?.setDecorations(this.cwLineHintDecoration, [])\n }\n\n async refresh(editor: vscode.TextEditor | undefined, source: AnnotationChangeSource, force?: boolean) {\n if (force) {\n this.refreshDebounced.cancel()\n await this._refresh(editor, source, true)\n } else {\n await this.refreshDebounced.promise(editor, source)\n }\n }\n\n private readonly refreshDebounced = cancellableDebounce(\n async (editor: vscode.TextEditor | undefined, source: AnnotationChangeSource, force?: boolean) => {\n await this._refresh(editor, source, force)\n },\n 250\n )\n\n private async _refresh(editor: vscode.TextEditor | undefined, source: AnnotationChangeSource, force?: boolean) {\n if (!this._isReady) {\n this.clear()\n return\n }\n\n if (this.isTutorialDone()) {\n this.clear()\n return\n }\n\n if (editor === undefined && this._editor === undefined) {\n this.clear()\n return\n }\n\n const selections = this.container", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/codewhisperer/views/lineAnnotationController.ts", + "start": 283, + "end": 365, + "startLoc": { + "line": 283, + "column": 5, + "position": 1881 + }, + "endLoc": { + "line": 365, + "column": 10, + "position": 2527 + } + }, + "secondFile": { + "name": "packages/amazonq/src/app/inline/tutorials/inlineTutorialAnnotation.ts", + "start": 314, + "end": 396, + "startLoc": { + "line": 314, + "column": 5, + "position": 2057 + }, + "endLoc": { + "line": 396, + "column": 12, + "position": 2703 + } + } + }, + { + "format": "typescript", + "lines": 61, + "fragment": ".isConnectionValid()) {\n this.clear()\n return\n }\n\n // Disable Tips when language is not supported by Amazon Q.\n if (!runtimeLanguageContext.isLanguageSupported(editor.document)) {\n return\n }\n\n await this.updateDecorations(editor, selections, source, force)\n }\n\n private async updateDecorations(\n editor: vscode.TextEditor,\n lines: LineSelection[],\n source: AnnotationChangeSource,\n force?: boolean\n ) {\n const range = editor.document.validateRange(\n new vscode.Range(lines[0].active, maxSmallIntegerV8, lines[0].active, maxSmallIntegerV8)\n )\n\n const decorationOptions = this.getInlineDecoration(editor, lines, source, force) as\n | vscode.DecorationOptions\n | undefined\n\n if (decorationOptions === undefined) {\n this.clear()\n await setContext('aws.codewhisperer.tutorial.workInProgress', false)\n return\n } else if (this.isTutorialDone()) {\n // special case\n // Endstate is meaningless and doesnt need to be rendered\n this.clear()\n await this.dismissTutorial()\n return\n } else if (decorationOptions.renderOptions?.after?.contentText === new TryMoreExState().text()) {\n // special case\n // case 3 exit criteria is to fade away in 30s\n setTimeout(async () => {\n await this.refresh(editor, source, true)\n }, case3TimeWindow)\n }\n\n decorationOptions.range = range\n\n await globals.globalState.update(inlinehintKey, this._currentState.id)\n if (!this.isInlineChatHint()) {\n await setContext('aws.codewhisperer.tutorial.workInProgress', true)\n }\n editor.setDecorations(this.cwLineHintDecoration, [decorationOptions])\n }\n\n getInlineDecoration(\n editor: vscode.TextEditor,\n lines: LineSelection[],\n source: AnnotationChangeSource,\n force?: boolean\n ): Partial | undefined {\n const isCWRunning = true", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/codewhisperer/views/lineAnnotationController.ts", + "start": 383, + "end": 443, + "startLoc": { + "line": 383, + "column": 5, + "position": 2670 + }, + "endLoc": { + "line": 443, + "column": 5, + "position": 3162 + } + }, + "secondFile": { + "name": "packages/amazonq/src/app/inline/tutorials/inlineTutorialAnnotation.ts", + "start": 414, + "end": 474, + "startLoc": { + "line": 414, + "column": 9, + "position": 2842 + }, + "endLoc": { + "line": 474, + "column": 5, + "position": 3334 + } + } + }, + { + "format": "typescript", + "lines": 32, + "fragment": "const textOptions: vscode.ThemableDecorationAttachmentRenderOptions = {\n contentText: '',\n fontWeight: 'normal',\n fontStyle: 'normal',\n textDecoration: 'none',\n color: 'var(--vscode-editor-background)',\n backgroundColor: 'var(--vscode-foreground)',\n }\n\n if (isCWRunning && this._currentState.suppressWhileRunning) {\n return undefined\n }\n\n const updatedState: AnnotationState | undefined = this._currentState.updateState(source, force ?? false)\n\n if (updatedState === undefined) {\n return undefined\n }\n\n if (this._currentState.isNextState(updatedState)) {\n // special case because PressTabState is part of case_1 (1a) which possibly jumps directly from case_1a to case_2 and miss case_1\n if (this._currentState instanceof PressTabState) {\n telemetry.ui_click.emit({ elementId: AutotriggerState.id, passive: true })\n }\n telemetry.ui_click.emit({ elementId: this._currentState.id, passive: true })\n }\n\n // update state\n this._currentState = updatedState\n\n // take snapshot of accepted session so that we can compre if there is delta -> users accept 1 suggestion after seeing this state\n AutotriggerState.acceptedCount = 0", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/codewhisperer/views/lineAnnotationController.ts", + "start": 445, + "end": 476, + "startLoc": { + "line": 445, + "column": 9, + "position": 3166 + }, + "endLoc": { + "line": 476, + "column": 2, + "position": 3421 + } + }, + "secondFile": { + "name": "packages/amazonq/src/app/inline/tutorials/inlineTutorialAnnotation.ts", + "start": 476, + "end": 507, + "startLoc": { + "line": 476, + "column": 9, + "position": 3352 + }, + "endLoc": { + "line": 507, + "column": 5, + "position": 3607 + } + } + }, + { + "format": "typescript", + "lines": 18, + "fragment": ",\n onStdout: (text) => {\n diffContent += text\n getLogger().verbose(removeAnsi(text))\n },\n onStderr: (text) => {\n getLogger().error(removeAnsi(text))\n },\n spawnOptions: {\n cwd: projectPath,\n },\n }\n\n try {\n await childProcess.run(runOptions)\n return diffContent\n } catch (err) {\n getLogger().warn(`Failed to run command \\`", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/codewhisperer/util/zipUtil.ts", + "start": 334, + "end": 351, + "startLoc": { + "line": 334, + "column": 5, + "position": 2808 + }, + "endLoc": { + "line": 351, + "column": 26, + "position": 2934 + } + }, + "secondFile": { + "name": "packages/core/src/codewhisperer/util/zipUtil.ts", + "start": 297, + "end": 314, + "startLoc": { + "line": 297, + "column": 6, + "position": 2522 + }, + "endLoc": { + "line": 314, + "column": 30, + "position": 2648 + } + } + }, + { + "format": "typescript", + "lines": 14, + "fragment": ",\n codewhispererSupplementalContextIsUtg: supplementalContextMetadata?.isUtg,\n codewhispererSupplementalContextLength: supplementalContextMetadata?.contentsLength,\n // eslint-disable-next-line id-length\n codewhispererSupplementalContextStrategyId: supplementalContextMetadata?.strategy,\n codewhispererSupplementalContextTimeout: supplementalContextMetadata?.isProcessTimeout,\n codewhispererTimeSinceLastDocumentChange: this.timeSinceLastModification\n ? this.timeSinceLastModification\n : undefined,\n codewhispererTimeSinceLastUserDecision: this.lastTriggerDecisionTime\n ? performance.now() - this.lastTriggerDecisionTime\n : undefined,\n codewhispererTimeToFirstRecommendation: session.timeToFirstRecommendation,\n codewhispererTriggerCharacter", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/codewhisperer/util/telemetryHelper.ts", + "start": 348, + "end": 361, + "startLoc": { + "line": 348, + "column": 26, + "position": 2947 + }, + "endLoc": { + "line": 361, + "column": 30, + "position": 3052 + } + }, + "secondFile": { + "name": "packages/core/src/codewhisperer/util/telemetryHelper.ts", + "start": 134, + "end": 147, + "startLoc": { + "line": 134, + "column": 8, + "position": 1134 + }, + "endLoc": { + "line": 147, + "column": 25, + "position": 1239 + } + } + }, + { + "format": "typescript", + "lines": 14, + "fragment": ",\n },\n },\n profileArn: AuthUtil.instance.regionProfileManager.activeRegionProfile?.arn,\n })\n .then()\n .catch((error) => {\n let requestId: string | undefined\n if (isAwsError(error)) {\n requestId = error.requestId\n }\n\n getLogger().debug(\n `Failed to sendTelemetryEvent for code scan success, requestId: ", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/codewhisperer/util/telemetryHelper.ts", + "start": 661, + "end": 674, + "startLoc": { + "line": 661, + "column": 10, + "position": 5546 + }, + "endLoc": { + "line": 674, + "column": 65, + "position": 5640 + } + }, + "secondFile": { + "name": "packages/core/src/codewhisperer/util/telemetryHelper.ts", + "start": 625, + "end": 638, + "startLoc": { + "line": 625, + "column": 2, + "position": 5291 + }, + "endLoc": { + "line": 638, + "column": 59, + "position": 5385 + } + } + }, + { + "format": "typescript", + "lines": 14, + "fragment": ",\n timestamp: new Date(Date.now()),\n },\n },\n profileArn: AuthUtil.instance.regionProfileManager.activeRegionProfile?.arn,\n })\n .then()\n .catch((error) => {\n let requestId: string | undefined\n if (isAwsError(error)) {\n requestId = error.requestId\n }\n getLogger().debug(\n `Failed to sendTelemetryEvent for code scan failure, requestId: ", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/codewhisperer/util/telemetryHelper.ts", + "start": 690, + "end": 703, + "startLoc": { + "line": 690, + "column": 10, + "position": 5765 + }, + "endLoc": { + "line": 703, + "column": 65, + "position": 5874 + } + }, + "secondFile": { + "name": "packages/core/src/codewhisperer/util/telemetryHelper.ts", + "start": 624, + "end": 638, + "startLoc": { + "line": 624, + "column": 6, + "position": 5275 + }, + "endLoc": { + "line": 638, + "column": 59, + "position": 5385 + } + } + }, + { + "format": "typescript", + "lines": 13, + "fragment": ",\n },\n },\n profileArn: AuthUtil.instance.regionProfileManager.activeRegionProfile?.arn,\n })\n .then()\n .catch((error) => {\n let requestId: string | undefined\n if (isAwsError(error)) {\n requestId = error.requestId\n }\n getLogger().debug(\n `Failed to sendTelemetryEvent for code fix generation, requestId: ", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/codewhisperer/util/telemetryHelper.ts", + "start": 729, + "end": 741, + "startLoc": { + "line": 729, + "column": 21, + "position": 6023 + }, + "endLoc": { + "line": 741, + "column": 67, + "position": 6116 + } + }, + "secondFile": { + "name": "packages/core/src/codewhisperer/util/telemetryHelper.ts", + "start": 625, + "end": 638, + "startLoc": { + "line": 625, + "column": 2, + "position": 5291 + }, + "endLoc": { + "line": 638, + "column": 59, + "position": 5385 + } + } + }, + { + "format": "typescript", + "lines": 13, + "fragment": ",\n },\n },\n profileArn: AuthUtil.instance.regionProfileManager.activeRegionProfile?.arn,\n })\n .then()\n .catch((error) => {\n let requestId: string | undefined\n if (isAwsError(error)) {\n requestId = error.requestId\n }\n getLogger().debug(\n `Failed to sendTelemetryEvent for code fix acceptance, requestId: ", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/codewhisperer/util/telemetryHelper.ts", + "start": 767, + "end": 779, + "startLoc": { + "line": 767, + "column": 20, + "position": 6265 + }, + "endLoc": { + "line": 779, + "column": 67, + "position": 6358 + } + }, + "secondFile": { + "name": "packages/core/src/codewhisperer/util/telemetryHelper.ts", + "start": 625, + "end": 638, + "startLoc": { + "line": 625, + "column": 2, + "position": 5291 + }, + "endLoc": { + "line": 638, + "column": 59, + "position": 5385 + } + } + }, + { + "format": "typescript", + "lines": 14, + "fragment": ",\n timestamp: new Date(Date.now()),\n },\n },\n profileArn: AuthUtil.instance.regionProfileManager.activeRegionProfile?.arn,\n })\n .then()\n .catch((error) => {\n let requestId: string | undefined\n if (isAwsError(error)) {\n requestId = error.requestId\n }\n getLogger().debug(\n `Failed to sendTelemetryEvent for test generation, requestId: ", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/codewhisperer/util/telemetryHelper.ts", + "start": 812, + "end": 825, + "startLoc": { + "line": 812, + "column": 20, + "position": 6549 + }, + "endLoc": { + "line": 825, + "column": 63, + "position": 6658 + } + }, + "secondFile": { + "name": "packages/core/src/codewhisperer/util/telemetryHelper.ts", + "start": 624, + "end": 638, + "startLoc": { + "line": 624, + "column": 6, + "position": 5275 + }, + "endLoc": { + "line": 638, + "column": 59, + "position": 5385 + } + } + }, + { + "format": "typescript", + "lines": 14, + "fragment": ",\n timestamp: new Date(Date.now()),\n },\n },\n profileArn: AuthUtil.instance.regionProfileManager.activeRegionProfile?.arn,\n })\n .then()\n .catch((error) => {\n let requestId: string | undefined\n if (isAwsError(error)) {\n requestId = error.requestId\n }\n getLogger().debug(\n `Failed to sendCodeScanRemediationsEvent to CodeWhisperer, requestId: ", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/codewhisperer/util/telemetryHelper.ts", + "start": 861, + "end": 874, + "startLoc": { + "line": 861, + "column": 12, + "position": 6882 + }, + "endLoc": { + "line": 874, + "column": 71, + "position": 6991 + } + }, + "secondFile": { + "name": "packages/core/src/codewhisperer/util/telemetryHelper.ts", + "start": 624, + "end": 638, + "startLoc": { + "line": 624, + "column": 6, + "position": 5275 + }, + "endLoc": { + "line": 638, + "column": 59, + "position": 5385 + } + } + }, + { + "format": "typescript", + "lines": 15, + "fragment": ",\n yaml: 'yaml',\n yml: 'yaml',\n sv: 'systemVerilog',\n svh: 'systemVerilog',\n vh: 'systemVerilog',\n dart: 'dart',\n lua: 'lua',\n wlua: 'lua',\n swift: 'swift',\n vue: 'vue',\n ps1: 'powershell',\n psm1: 'powershell',\n r: 'r',\n // Add more mappings if needed", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/codewhisperer/util/runtimeLanguageContext.ts", + "start": 261, + "end": 275, + "startLoc": { + "line": 261, + "column": 7, + "position": 1607 + }, + "endLoc": { + "line": 275, + "column": 31, + "position": 1701 + } + }, + "secondFile": { + "name": "packages/core/src/codewhisperer/util/runtimeLanguageContext.ts", + "start": 141, + "end": 155, + "startLoc": { + "line": 141, + "column": 13, + "position": 842 + }, + "endLoc": { + "line": 155, + "column": 5, + "position": 936 + } + } + }, + { + "format": "typescript", + "lines": 13, + "fragment": "amazonQScopes))\n } else if (!isValidAmazonQConnection(conn)) {\n conn = await this.secondaryAuth.addScopes(conn, amazonQScopes)\n }\n\n if (this.auth.getConnectionState(conn) === 'invalid') {\n conn = await this.auth.reauthenticate(conn)\n }\n\n return (await this.secondaryAuth.useNewConnection(conn)) as SsoConnection\n }\n\n public", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/codewhisperer/util/authUtil.ts", + "start": 231, + "end": 243, + "startLoc": { + "line": 231, + "column": 2, + "position": 2041 + }, + "endLoc": { + "line": 243, + "column": 7, + "position": 2150 + } + }, + "secondFile": { + "name": "packages/core/src/codewhisperer/util/authUtil.ts", + "start": 211, + "end": 223, + "startLoc": { + "line": 211, + "column": 2, + "position": 1791 + }, + "endLoc": { + "line": 223, + "column": 2, + "position": 1900 + } + } + }, + { + "format": "typescript", + "lines": 89, + "fragment": "export interface LineSelection {\n anchor: number\n active: number\n}\n\nexport interface LinesChangeEvent {\n readonly editor: vscode.TextEditor | undefined\n readonly selections: LineSelection[] | undefined\n\n readonly reason: 'editor' | 'selection' | 'content'\n}\n\n/**\n * This class providees a single interface to manage and access users' \"line\" selections\n * Callers could use it by subscribing onDidChangeActiveLines to do UI updates or logic needed to be executed when line selections get changed\n */\nexport class LineTracker implements vscode.Disposable {\n private _onDidChangeActiveLines = new vscode.EventEmitter()\n get onDidChangeActiveLines(): vscode.Event {\n return this._onDidChangeActiveLines.event\n }\n\n private _editor: vscode.TextEditor | undefined\n private _disposable: vscode.Disposable | undefined\n\n private _selections: LineSelection[] | undefined\n get selections(): LineSelection[] | undefined {\n return this._selections\n }\n\n private _onReady: vscode.EventEmitter = new vscode.EventEmitter()\n get onReady(): vscode.Event {\n return this._onReady.event\n }\n\n private _ready: boolean = false\n get isReady() {\n return this._ready\n }\n\n constructor() {\n this._disposable = vscode.Disposable.from(\n vscode.window.onDidChangeActiveTextEditor(async (e) => {\n await this.onActiveTextEditorChanged(e)\n }),\n vscode.window.onDidChangeTextEditorSelection(async (e) => {\n await this.onTextEditorSelectionChanged(e)\n }),\n vscode.workspace.onDidChangeTextDocument((e) => {\n this.onContentChanged(e)\n })\n )\n\n queueMicrotask(async () => await this.onActiveTextEditorChanged(vscode.window.activeTextEditor))\n }\n\n dispose() {\n this._disposable?.dispose()\n }\n\n ready() {\n if (this._ready) {\n throw new Error('Linetracker is already activated')\n }\n\n this._ready = true\n queueMicrotask(() => this._onReady.fire())\n }\n\n // @VisibleForTesting\n async onActiveTextEditorChanged(editor: vscode.TextEditor | undefined) {\n if (editor === this._editor) {\n return\n }\n\n this._editor = editor\n this._selections = toLineSelections(editor?.selections)\n if (this._selections && this._selections[0]) {\n const s = this._selections.map((item) => item.active + 1)\n await setContext('codewhisperer.activeLine', s)\n }\n\n this.notifyLinesChanged('editor')\n }\n\n // @VisibleForTesting\n async onTextEditorSelectionChanged(e: vscode.TextEditorSelectionChangeEvent) {\n // If this isn't for our cached editor and its not a real editor -- kick out\n if (this._editor !== e.textEditor && !isTextEditor", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/codewhisperer/tracker/lineTracker.ts", + "start": 10, + "end": 98, + "startLoc": { + "line": 10, + "column": 1, + "position": 40 + }, + "endLoc": { + "line": 98, + "column": 13, + "position": 751 + } + }, + "secondFile": { + "name": "packages/amazonq/src/app/inline/stateTracker/lineTracker.ts", + "start": 9, + "end": 97, + "startLoc": { + "line": 9, + "column": 1, + "position": 31 + }, + "endLoc": { + "line": 97, + "column": 16, + "position": 742 + } + } + }, + { + "format": "typescript", + "lines": 23, + "fragment": "isTextEditor(e.textEditor)) {\n return\n }\n\n const selections = toLineSelections(e.selections)\n if (this._editor === e.textEditor && this.includes(selections)) {\n return\n }\n\n this._editor = e.textEditor\n this._selections = selections\n if (this._selections && this._selections[0]) {\n const s = this._selections.map((item) => item.active + 1)\n await setContext('codewhisperer.activeLine', s)\n }\n\n this.notifyLinesChanged('selection')\n }\n\n // @VisibleForTesting\n onContentChanged(e: vscode.TextDocumentChangeEvent) {\n const editor = vscode.window.activeTextEditor\n if (e.document === editor?.document && e.contentChanges.length > 0 && isTextEditor", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/codewhisperer/tracker/lineTracker.ts", + "start": 98, + "end": 120, + "startLoc": { + "line": 98, + "column": 2, + "position": 751 + }, + "endLoc": { + "line": 120, + "column": 13, + "position": 968 + } + }, + "secondFile": { + "name": "packages/amazonq/src/app/inline/stateTracker/lineTracker.ts", + "start": 97, + "end": 119, + "startLoc": { + "line": 97, + "column": 2, + "position": 744 + }, + "endLoc": { + "line": 119, + "column": 16, + "position": 961 + } + } + }, + { + "format": "typescript", + "lines": 60, + "fragment": "isTextEditor(editor)) {\n this._editor = editor\n this._selections = toLineSelections(this._editor?.selections)\n\n this.notifyLinesChanged('content')\n }\n }\n\n notifyLinesChanged(reason: 'editor' | 'selection' | 'content') {\n const e: LinesChangeEvent = { editor: this._editor, selections: this.selections, reason: reason }\n this._onDidChangeActiveLines.fire(e)\n }\n\n includes(selections: LineSelection[]): boolean\n includes(line: number, options?: { activeOnly: boolean }): boolean\n includes(lineOrSelections: number | LineSelection[], options?: { activeOnly: boolean }): boolean {\n if (typeof lineOrSelections !== 'number') {\n return isIncluded(lineOrSelections, this._selections)\n }\n\n if (this._selections === undefined || this._selections.length === 0) {\n return false\n }\n\n const line = lineOrSelections\n const activeOnly = options?.activeOnly ?? true\n\n for (const selection of this._selections) {\n if (\n line === selection.active ||\n (!activeOnly &&\n ((selection.anchor >= line && line >= selection.active) ||\n (selection.active >= line && line >= selection.anchor)))\n ) {\n return true\n }\n }\n return false\n }\n}\n\nfunction isIncluded(selections: LineSelection[] | undefined, within: LineSelection[] | undefined): boolean {\n if (selections === undefined && within === undefined) {\n return true\n }\n if (selections === undefined || within === undefined || selections.length !== within.length) {\n return false\n }\n\n return selections.every((s, i) => {\n const match = within[i]\n return s.active === match.active && s.anchor === match.anchor\n })\n}\n\nfunction toLineSelections(selections: readonly vscode.Selection[]): LineSelection[]\nfunction toLineSelections(selections: readonly vscode.Selection[] | undefined): LineSelection[] | undefined\nfunction toLineSelections(selections: readonly vscode.Selection[] | undefined) {\n return selections?.map((s) => ({ active: s.active.line, anchor: s.anchor.line }))\n}", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/codewhisperer/tracker/lineTracker.ts", + "start": 120, + "end": 179, + "startLoc": { + "line": 120, + "column": 2, + "position": 968 + }, + "endLoc": { + "line": 179, + "column": 2, + "position": 1647 + } + }, + "secondFile": { + "name": "packages/amazonq/src/app/inline/stateTracker/lineTracker.ts", + "start": 119, + "end": 178, + "startLoc": { + "line": 119, + "column": 2, + "position": 963 + }, + "endLoc": { + "line": 178, + "column": 2, + "position": 1642 + } + } + }, + { + "format": "typescript", + "lines": 14, + "fragment": "),\n },\n },\n profileArn: AuthUtil.instance.regionProfileManager.activeRegionProfile?.arn,\n })\n .then()\n .catch((error) => {\n let requestId: string | undefined\n if (isAwsError(error)) {\n requestId = error.requestId\n }\n\n getLogger().debug(\n `Failed to send UserModificationEvent to CodeWhisperer, requestId: ", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/codewhisperer/tracker/codewhispererTracker.ts", + "start": 161, + "end": 174, + "startLoc": { + "line": 161, + "column": 33, + "position": 1290 + }, + "endLoc": { + "line": 174, + "column": 68, + "position": 1385 + } + }, + "secondFile": { + "name": "packages/core/src/codewhisperer/util/telemetryHelper.ts", + "start": 625, + "end": 638, + "startLoc": { + "line": 625, + "column": 2, + "position": 5290 + }, + "endLoc": { + "line": 638, + "column": 59, + "position": 5385 + } + } + }, + { + "format": "typescript", + "lines": 14, + "fragment": ") {\n const existingGroup = this._issues.find((group) => group.filePath === newIssues.filePath)\n if (!existingGroup) {\n this._issues.push(newIssues)\n return\n }\n\n this._issues = this._issues.map((group) =>\n group.filePath !== newIssues.filePath\n ? group\n : {\n ...group,\n issues: [\n ...group.issues.", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/codewhisperer/service/securityIssueProvider.ts", + "start": 165, + "end": 178, + "startLoc": { + "line": 165, + "column": 8, + "position": 1475 + }, + "endLoc": { + "line": 178, + "column": 2, + "position": 1592 + } + }, + "secondFile": { + "name": "packages/core/src/codewhisperer/service/securityIssueProvider.ts", + "start": 145, + "end": 158, + "startLoc": { + "line": 145, + "column": 24, + "position": 1298 + }, + "endLoc": { + "line": 158, + "column": 2, + "position": 1415 + } + } + }, + { + "format": "typescript", + "lines": 12, + "fragment": "[] = []\n\n for (const group of this.issueProvider.issues) {\n if (document.fileName !== group.filePath) {\n continue\n }\n\n for (const issue of group.issues) {\n if (!issue.visible) {\n continue\n }\n const issueRange", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/codewhisperer/service/securityIssueCodeActionProvider.ts", + "start": 26, + "end": 37, + "startLoc": { + "line": 26, + "column": 11, + "position": 202 + }, + "endLoc": { + "line": 37, + "column": 11, + "position": 292 + } + }, + "secondFile": { + "name": "packages/core/src/codewhisperer/service/securityIssueHoverProvider.ts", + "start": 27, + "end": 38, + "startLoc": { + "line": 27, + "column": 15, + "position": 215 + }, + "endLoc": { + "line": 38, + "column": 6, + "position": 305 + } + } + }, + { + "format": "typescript", + "lines": 16, + "fragment": "const items: DataQuickPickItem[] = [\n {\n label: 'Sync',\n data: 'sync',\n detail: 'Speed up your development and testing experience in the AWS Cloud. With the --watch parameter, sync will build, deploy and watch for local changes',\n description: 'Development environments',\n },\n {\n label: 'Deploy',\n data: 'deploy',\n detail: 'Deploys your template through CloudFormation',\n description: 'Production environments',\n },\n ]\n\n const", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/awsService/appBuilder/utils.ts", + "start": 651, + "end": 666, + "startLoc": { + "line": 651, + "column": 5, + "position": 4968 + }, + "endLoc": { + "line": 666, + "column": 6, + "position": 5059 + } + }, + "secondFile": { + "name": "packages/core/src/awsService/appBuilder/wizards/deployTypeWizard.ts", + "start": 26, + "end": 40, + "startLoc": { + "line": 26, + "column": 9, + "position": 213 + }, + "endLoc": { + "line": 40, + "column": 5, + "position": 303 + } + } + }, + { + "format": "typescript", + "lines": 12, + "fragment": "}\n\n public getHashCode(): string {\n return getStringHash(this.getProviderType() + `-${this.createTime}`)\n }\n\n public async canAutoConnect(): Promise {\n return true\n }\n\n public async getCredentials(): Promise {\n return fromInstanceMetadata", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/auth/providers/ec2CredentialsProvider.ts", + "start": 80, + "end": 91, + "startLoc": { + "line": 80, + "column": 5, + "position": 629 + }, + "endLoc": { + "line": 91, + "column": 21, + "position": 716 + } + }, + "secondFile": { + "name": "packages/core/src/auth/providers/ecsCredentialsProvider.ts", + "start": 73, + "end": 84, + "startLoc": { + "line": 73, + "column": 5, + "position": 547 + }, + "endLoc": { + "line": 84, + "column": 5, + "position": 634 + } + } + }, + { + "format": "typescript", + "lines": 12, + "fragment": ".fire(webviewView.visible)\n })\n\n const dist = Uri.joinPath(this.extensionContext.extensionUri, 'dist')\n const resources = Uri.joinPath(this.extensionContext.extensionUri, 'resources')\n webviewView.webview.options = {\n enableScripts: true,\n enableCommandUris: true,\n localResourceRoots: [dist, resources],\n }\n\n dispatchWebViewMessagesToApps", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/amazonq/webview/webView.ts", + "start": 56, + "end": 67, + "startLoc": { + "line": 56, + "column": 29, + "position": 397 + }, + "endLoc": { + "line": 67, + "column": 30, + "position": 494 + } + }, + "secondFile": { + "name": "packages/core/src/login/webview/commonAuthViewProvider.ts", + "start": 126, + "end": 136, + "startLoc": { + "line": 126, + "column": 2, + "position": 845 + }, + "endLoc": { + "line": 136, + "column": 31, + "position": 941 + } + } + }, + { + "format": "typescript", + "lines": 20, + "fragment": "describe('crypto', function () {\n describe('randomUUID()', function () {\n const uuidPattern = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i\n\n it('functions as normal', async function () {\n const result1 = randomUUID()\n const result2 = randomUUID()\n const result3 = randomUUID()\n assert(uuidPattern.test(result1))\n assert(uuidPattern.test(result2))\n assert(uuidPattern.test(result3))\n assert(result1 !== result2)\n assert(result2 !== result3)\n })\n\n it('test pattern fails on non-uuid', function () {\n assert(uuidPattern.test('not-a-uuid') === false)\n })\n })\n}", + "tokens": 0, + "firstFile": { + "name": "packages/amazonq/test/web/shared/crypto.test.ts", + "start": 9, + "end": 28, + "startLoc": { + "line": 9, + "column": 1, + "position": 24 + }, + "endLoc": { + "line": 28, + "column": 2, + "position": 201 + } + }, + "secondFile": { + "name": "packages/core/src/test/shared/crypto.test.ts", + "start": 9, + "end": 29, + "startLoc": { + "line": 9, + "column": 1, + "position": 30 + }, + "endLoc": { + "line": 29, + "column": 9, + "position": 209 + } + } + }, + { + "format": "typescript", + "lines": 16, + "fragment": ": TransformationStep[] = [\n {\n id: 'fake-step-id-1',\n name: 'Building Code',\n description: 'Building dependencies',\n status: 'COMPLETED',\n progressUpdates: [\n {\n name: 'Status step',\n status: 'FAILED',\n description: 'This step should be hil identifier',\n startTime: new Date(),\n endTime: new Date(),\n downloadArtifacts: [\n {\n downloadArtifactId,", + "tokens": 0, + "firstFile": { + "name": "packages/amazonq/test/unit/amazonqGumby/transformApiHandler.test.ts", + "start": 42, + "end": 57, + "startLoc": { + "line": 42, + "column": 27, + "position": 278 + }, + "endLoc": { + "line": 57, + "column": 2, + "position": 382 + } + }, + "secondFile": { + "name": "packages/amazonq/test/unit/amazonqGumby/resources/mocks/transformFixtures.ts", + "start": 9, + "end": 24, + "startLoc": { + "line": 9, + "column": 41, + "position": 40 + }, + "endLoc": { + "line": 24, + "column": 2, + "position": 144 + } + } + }, + { + "format": "typescript", + "lines": 14, + "fragment": "const transformationStepsFixture: TransformationStep[] = [\n {\n id: 'fake-step-id-1',\n name: 'Building Code',\n description: 'Building dependencies',\n status: 'COMPLETED',\n progressUpdates: [\n {\n name: 'Status step',\n status: 'FAILED',\n description: 'This step should be hil identifier',\n startTime: new Date(),\n endTime: new Date(),\n downloadArtifacts: undefined", + "tokens": 0, + "firstFile": { + "name": "packages/amazonq/test/unit/amazonqGumby/transformApiHandler.test.ts", + "start": 73, + "end": 86, + "startLoc": { + "line": 73, + "column": 13, + "position": 506 + }, + "endLoc": { + "line": 86, + "column": 10, + "position": 606 + } + }, + "secondFile": { + "name": "packages/amazonq/test/unit/amazonqGumby/transformApiHandler.test.ts", + "start": 42, + "end": 22, + "startLoc": { + "line": 42, + "column": 13, + "position": 275 + }, + "endLoc": { + "line": 22, + "column": 2, + "position": 137 + } + } + }, + { + "format": "typescript", + "lines": 31, + "fragment": ", async () => {\n sinon.stub(startTransformByQ, 'getValidSQLConversionCandidateProjects').resolves([\n {\n name: 'OracleExample',\n path: '/Users/alias/Desktop/OracleExample',\n JDKVersion: JDKVersion.JDK17,\n },\n ])\n sinon.stub(startTransformByQ, 'getValidLanguageUpgradeCandidateProjects').resolves([\n {\n name: 'qct-sample-java-8-app-main',\n path: '/Users/alias/Desktop/qct-sample-java-8-app-main',\n JDKVersion: JDKVersion.JDK8,\n },\n ])\n\n tab.addChatMessage({ command: '/transform' })\n\n // wait for /transform to respond with some intro messages and a prompt asking user what they want to do\n await tab.waitForEvent(() => tab.getChatItems().length > 2, {\n waitTimeoutInMs: 5000,\n waitIntervalInMs: 1000,\n })\n const prompt = tab.getChatItems().pop()\n assert.strictEqual(\n prompt?.body?.includes('You can enter \"language upgrade\" or \"sql conversion\"') ?? undefined,\n true\n )\n\n // 3 additional chat messages get sent after user enters a choice; wait for all of them\n tab.addChatMessage({ prompt: 'sql conversion'", + "tokens": 0, + "firstFile": { + "name": "packages/amazonq/test/e2e/amazonq/transformByQ.test.ts", + "start": 299, + "end": 329, + "startLoc": { + "line": 299, + "column": 82, + "position": 2562 + }, + "endLoc": { + "line": 329, + "column": 17, + "position": 2797 + } + }, + "secondFile": { + "name": "packages/amazonq/test/e2e/amazonq/transformByQ.test.ts", + "start": 260, + "end": 290, + "startLoc": { + "line": 260, + "column": 84, + "position": 2224 + }, + "endLoc": { + "line": 290, + "column": 19, + "position": 2459 + } + } + }, + { + "format": "typescript", + "lines": 18, + "fragment": ")\n await vscode.window.showTextDocument(document)\n\n tab.clickButton(ScanAction.RUN_FILE_SCAN)\n\n await waitForChatItems(6)\n const scanningInProgressMessage = tab.getChatItems()[6]\n assert.deepStrictEqual(\n scanningInProgressMessage.body,\n scanProgressMessage(SecurityScanStep.CREATE_SCAN_JOB, CodeAnalysisScope.FILE_ON_DEMAND, fileName)\n )\n\n const scanResultBody = await waitForReviewResults(tab)\n\n const issues = extractAndValidateIssues(scanResultBody)\n\n assert.deepStrictEqual(\n issues.Critical +", + "tokens": 0, + "firstFile": { + "name": "packages/amazonq/test/e2e/amazonq/review.test.ts", + "start": 506, + "end": 523, + "startLoc": { + "line": 506, + "column": 9, + "position": 4234 + }, + "endLoc": { + "line": 523, + "column": 2, + "position": 4355 + } + }, + "secondFile": { + "name": "packages/amazonq/test/e2e/amazonq/review.test.ts", + "start": 185, + "end": 201, + "startLoc": { + "line": 185, + "column": 2, + "position": 1593 + }, + "endLoc": { + "line": 201, + "column": 3, + "position": 1713 + } + } + }, + { + "format": "typescript", + "lines": 11, + "fragment": ")\n\n document = await vscode.workspace.openTextDocument(filePath)\n await vscode.window.showTextDocument(document)\n\n const editor = vscode.window.activeTextEditor\n\n if (editor) {\n const position = new vscode.Position(20, 0)\n await editor.edit((editBuilder) => {\n editBuilder.insert(position, '\\n'", + "tokens": 0, + "firstFile": { + "name": "packages/amazonq/test/e2e/amazonq/review.test.ts", + "start": 553, + "end": 563, + "startLoc": { + "line": 553, + "column": 2, + "position": 4708 + }, + "endLoc": { + "line": 563, + "column": 5, + "position": 4805 + } + }, + "secondFile": { + "name": "packages/amazonq/test/e2e/amazonq/review.test.ts", + "start": 414, + "end": 424, + "startLoc": { + "line": 414, + "column": 2, + "position": 3568 + }, + "endLoc": { + "line": 424, + "column": 32, + "position": 3665 + } + } + }, + { + "format": "typescript", + "lines": 21, + "fragment": ")\n )\n\n const scanResultBody = await waitForReviewResults(tab)\n\n const issues = extractAndValidateIssues(scanResultBody)\n\n assert.deepStrictEqual(\n issues.Critical + issues.High + issues.Medium + issues.Low + issues.Info >= 1,\n true,\n `There are no issues detected when there should be at least 1`\n )\n\n const uri = vscode.Uri.file(filePath)\n const securityDiagnostics: vscode.Diagnostic[] = vscode.languages\n .getDiagnostics(uri)\n .filter((diagnostic) => diagnostic.source === codewhispererDiagnosticSourceLabel)\n\n assertAtLeastOneLLMFindings(securityDiagnostics)\n\n const", + "tokens": 0, + "firstFile": { + "name": "packages/amazonq/test/e2e/amazonq/review.test.ts", + "start": 576, + "end": 596, + "startLoc": { + "line": 576, + "column": 8, + "position": 4889 + }, + "endLoc": { + "line": 596, + "column": 6, + "position": 5043 + } + }, + "secondFile": { + "name": "packages/amazonq/test/e2e/amazonq/review.test.ts", + "start": 515, + "end": 534, + "startLoc": { + "line": 515, + "column": 9, + "position": 4310 + }, + "endLoc": { + "line": 534, + "column": 2, + "position": 4463 + } + } + }, + { + "format": "typescript", + "lines": 14, + "fragment": "(task = this.task, userInvoked: boolean): Promise {\n if (!task) {\n return\n }\n const editor = vscode.window.visibleTextEditors.find(\n (editor) => editor.document.uri.toString() === task.document.uri.toString()\n )\n if (!editor) {\n return\n }\n if (userInvoked) {\n this.inlineChatProvider.sendTelemetryEvent(\n {\n userDecision: 'REJECT'", + "tokens": 0, + "firstFile": { + "name": "packages/amazonq/src/inlineChat/controller/inlineChatController.ts", + "start": 102, + "end": 115, + "startLoc": { + "line": 102, + "column": 17, + "position": 917 + }, + "endLoc": { + "line": 115, + "column": 9, + "position": 1045 + } + }, + "secondFile": { + "name": "packages/amazonq/src/inlineChat/controller/inlineChatController.ts", + "start": 66, + "end": 79, + "startLoc": { + "line": 66, + "column": 17, + "position": 583 + }, + "endLoc": { + "line": 79, + "column": 9, + "position": 711 + } + } + }, + { + "format": "typescript", + "lines": 12, + "fragment": ".range)\n }\n },\n { undoStopAfter: false, undoStopBefore: false }\n )\n task.diff = []\n task.updateDecorations()\n this.decorator.applyDecorations(task)\n await this.updateTaskAndLenses(task)\n this.referenceLogController.addReferenceLog(task.codeReferences, task.replacement ? task.replacement : '')\n await this.reset()\n }", + "tokens": 0, + "firstFile": { + "name": "packages/amazonq/src/inlineChat/controller/inlineChatController.ts", + "start": 124, + "end": 135, + "startLoc": { + "line": 124, + "column": 10, + "position": 1129 + }, + "endLoc": { + "line": 135, + "column": 2, + "position": 1233 + } + }, + "secondFile": { + "name": "packages/amazonq/src/inlineChat/controller/inlineChatController.ts", + "start": 88, + "end": 99, + "startLoc": { + "line": 88, + "column": 9, + "position": 795 + }, + "endLoc": { + "line": 99, + "column": 23, + "position": 899 + } + } + }, + { + "format": "typescript", + "lines": 17, + "fragment": "(query: string) {\n if (!this.task) {\n return\n }\n\n await this.updateTaskAndLenses(this.task, TaskState.InProgress)\n getLogger().info(`inline chat query:\\n${query}`)\n const uuid = randomUUID()\n const message: PromptMessage = {\n message: query,\n messageId: uuid,\n command: undefined,\n userIntent: undefined,\n tabID: uuid,\n }\n\n const requestStart", + "tokens": 0, + "firstFile": { + "name": "packages/amazonq/src/inlineChat/controller/inlineChatController.ts", + "start": 271, + "end": 287, + "startLoc": { + "line": 271, + "column": 34, + "position": 2400 + }, + "endLoc": { + "line": 287, + "column": 13, + "position": 2524 + } + }, + "secondFile": { + "name": "packages/amazonq/src/inlineChat/controller/inlineChatController.ts", + "start": 232, + "end": 248, + "startLoc": { + "line": 232, + "column": 32, + "position": 2081 + }, + "endLoc": { + "line": 248, + "column": 9, + "position": 2205 + } + } + }, + { + "format": "typescript", + "lines": 14, + "fragment": ") {\n const params: LogInlineCompletionSessionResultsParams = {\n sessionId: session.sessionId,\n completionSessionResult: {\n [itemId]: {\n seen: false,\n accepted: false,\n discarded: true,\n },\n },\n }\n this.languageClient.sendNotification(this.logSessionResultMessageName, params)\n this.sessionManager.clear()\n logstr += `- suggestion does not match user typeahead from insertion position. Discarding suggestion...`", + "tokens": 0, + "firstFile": { + "name": "packages/amazonq/src/app/inline/completion.ts", + "start": 517, + "end": 530, + "startLoc": { + "line": 517, + "column": 2, + "position": 3950 + }, + "endLoc": { + "line": 530, + "column": 95, + "position": 4050 + } + }, + "secondFile": { + "name": "packages/amazonq/src/app/inline/completion.ts", + "start": 450, + "end": 463, + "startLoc": { + "line": 450, + "column": 2, + "position": 3421 + }, + "endLoc": { + "line": 463, + "column": 78, + "position": 3521 + } + } + }, + { + "format": "typescript", + "lines": 13, + "fragment": "public constructor(\n protected readonly context: vscode.ExtensionContext,\n ...args: ConstructorParameters\n ) {\n this.instance = new target(...args) as InstanceType\n\n for (const [prop, val] of Object.entries(this.instance)) {\n if (val instanceof vscode.EventEmitter) {\n Object.assign(this.instance.protocol, { [prop]: val })\n }\n }\n\n this", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/webviews/main.ts", + "start": 344, + "end": 356, + "startLoc": { + "line": 344, + "column": 13, + "position": 1928 + }, + "endLoc": { + "line": 356, + "column": 5, + "position": 2058 + } + }, + "secondFile": { + "name": "packages/core/src/webviews/main.ts", + "start": 244, + "end": 255, + "startLoc": { + "line": 244, + "column": 13, + "position": 1055 + }, + "endLoc": { + "line": 255, + "column": 2, + "position": 1184 + } + } + }, + { + "format": "typescript", + "lines": 14, + "fragment": "this.webviewHtml = ''\n }\n\n /**\n * Fetches the webview HTML from the CDN or local server.\n * @private\n */\n private async fetchWebviewHtml() {\n const source = isLocalDev ? localhost : cdn\n const response = await request.fetch('GET', `${source}/index.html`).response\n this.webviewHtml = await response.text()\n\n for (const visualization of this.managedVisualizations.values()) {\n await visualization.refreshPanel(this", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/threatComposer/threatComposerEditorProvider.ts", + "start": 58, + "end": 71, + "startLoc": { + "line": 58, + "column": 9, + "position": 387 + }, + "endLoc": { + "line": 71, + "column": 5, + "position": 499 + } + }, + "secondFile": { + "name": "packages/core/src/stepFunctions/workflowStudio/workflowStudioEditorProvider.ts", + "start": 99, + "end": 112, + "startLoc": { + "line": 99, + "column": 9, + "position": 666 + }, + "endLoc": { + "line": 112, + "column": 2, + "position": 778 + } + } + }, + { + "format": "typescript", + "lines": 18, + "fragment": ")\n }\n\n public get onVisualizationDisposeEvent(): vscode.Event {\n return this.onVisualizationDisposeEmitter.event\n }\n\n public getPanel(): vscode.WebviewPanel | undefined {\n if (!this.isPanelDisposed) {\n return this.webviewPanel\n }\n }\n\n public showPanel(): void {\n this.getPanel()?.reveal()\n }\n\n public async refreshPanel(context", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/threatComposer/threatComposerEditor.ts", + "start": 60, + "end": 77, + "startLoc": { + "line": 60, + "column": 8, + "position": 477 + }, + "endLoc": { + "line": 77, + "column": 8, + "position": 594 + } + }, + "secondFile": { + "name": "packages/core/src/stepFunctions/workflowStudio/workflowStudioEditor.ts", + "start": 63, + "end": 79, + "startLoc": { + "line": 63, + "column": 13, + "position": 511 + }, + "endLoc": { + "line": 79, + "column": 2, + "position": 627 + } + } + }, + { + "format": "typescript", + "lines": 12, + "fragment": ") {\n const documentUri = textDocument.uri\n\n const contextObject: WebviewContext = {\n panel: this.webviewPanel,\n textDocument: textDocument,\n disposables: this.disposables,\n workSpacePath: this.workSpacePath,\n defaultTemplatePath: this.defaultTemplatePath,\n defaultTemplateName: this.defaultTemplateName,\n fileStates: this.fileStates,\n autoSaveFileState", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/threatComposer/threatComposerEditor.ts", + "start": 97, + "end": 108, + "startLoc": { + "line": 97, + "column": 17, + "position": 716 + }, + "endLoc": { + "line": 108, + "column": 18, + "position": 806 + } + }, + "secondFile": { + "name": "packages/core/src/stepFunctions/workflowStudio/workflowStudioEditor.ts", + "start": 98, + "end": 109, + "startLoc": { + "line": 98, + "column": 13, + "position": 732 + }, + "endLoc": { + "line": 109, + "column": 19, + "position": 822 + } + } + }, + { + "format": "typescript", + "lines": 23, + "fragment": "),\n input.onDidHide(() => {\n ;(async () => {\n reject(\n shouldResume && (await shouldResume()) ? InputFlowAction.resume : InputFlowAction.cancel\n )\n })().catch(reject)\n })\n )\n if (this.current) {\n this.current.dispose()\n }\n this.current = input\n this.current.show()\n })\n } finally {\n for (const d of disposables) {\n d.dispose() as void\n }\n }\n }\n\n private", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/shared/multiStepInputFlowController.ts", + "start": 153, + "end": 175, + "startLoc": { + "line": 153, + "column": 2, + "position": 1410 + }, + "endLoc": { + "line": 175, + "column": 8, + "position": 1576 + } + }, + "secondFile": { + "name": "packages/core/src/shared/multiStepInputFlowController.ts", + "start": 78, + "end": 100, + "startLoc": { + "line": 78, + "column": 2, + "position": 675 + }, + "endLoc": { + "line": 100, + "column": 7, + "position": 841 + } + } + }, + { + "format": "typescript", + "lines": 18, + "fragment": "{\n additionalContextLengths: {\n fileContextLength: 0,\n promptContextLength: 0,\n ruleContextLength: 0,\n },\n truncatedAdditionalContextLengths: {\n fileContextLength: 0,\n promptContextLength: 0,\n ruleContextLength: 0,\n },\n workspaceContextLength: 0,\n truncatedWorkspaceContextLength: 0,\n userInputContextLength: 0,\n truncatedUserInputContextLength: 0,\n focusFileContextLength: 0,\n truncatedFocusFileContextLength: 0,\n}", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/codewhispererChat/constants.ts", + "start": 25, + "end": 42, + "startLoc": { + "line": 25, + "column": 2, + "position": 147 + }, + "endLoc": { + "line": 42, + "column": 2, + "position": 253 + } + }, + "secondFile": { + "name": "packages/amazonq/src/inlineChat/provider/inlineChatProvider.ts", + "start": 116, + "end": 133, + "startLoc": { + "line": 116, + "column": 2, + "position": 1003 + }, + "endLoc": { + "line": 133, + "column": 2, + "position": 1110 + } + } + }, + { + "format": "typescript", + "lines": 13, + "fragment": "): void {\n this.managedVisualizations.set(key, visualization)\n\n const visualizationDisposable = visualization.onVisualizationDisposeEvent(() => {\n this.managedVisualizations.delete(key)\n })\n this.pushToExtensionContextSubscriptions(visualizationDisposable)\n }\n\n protected pushToExtensionContextSubscriptions(visualizationDisposable: vscode.Disposable): void {\n this.extensionContext.subscriptions.push(visualizationDisposable)\n }\n}", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/applicationcomposer/webviewManager.ts", + "start": 130, + "end": 142, + "startLoc": { + "line": 130, + "column": 20, + "position": 1131 + }, + "endLoc": { + "line": 142, + "column": 2, + "position": 1229 + } + }, + "secondFile": { + "name": "packages/core/src/threatComposer/threatComposerEditorProvider.ts", + "start": 170, + "end": 183, + "startLoc": { + "line": 170, + "column": 21, + "position": 1308 + }, + "endLoc": { + "line": 183, + "column": 10, + "position": 1408 + } + } + }, + { + "format": "typescript", + "lines": 19, + "fragment": "fileContents: string\n}\n\nexport interface AddFileWatchRequestMessage extends Message {\n eventId: string\n fileName: string\n}\n\nexport interface NotifyUserRequestMessage extends Message {\n eventId?: string\n notification: string\n notificationType: 'INFO' | 'WARNING' | 'ERROR'\n}\n\nexport interface LogMessage extends Message {\n eventId?: string\n logMessage: string\n logType: 'INFO' | 'WARNING' | 'ERROR'\n}", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/applicationcomposer/types.ts", + "start": 117, + "end": 135, + "startLoc": { + "line": 117, + "column": 5, + "position": 647 + }, + "endLoc": { + "line": 135, + "column": 2, + "position": 763 + } + }, + "secondFile": { + "name": "packages/core/src/threatComposer/types.ts", + "start": 99, + "end": 117, + "startLoc": { + "line": 99, + "column": 5, + "position": 607 + }, + "endLoc": { + "line": 117, + "column": 17, + "position": 724 + } + } + }, + { + "format": "typescript", + "lines": 21, + "fragment": "}\n\n public get onVisualizationDisposeEvent(): vscode.Event {\n return this.onVisualizationDisposeEmitter.event\n }\n\n public getPanel(): vscode.WebviewPanel | undefined {\n if (!this.isPanelDisposed) {\n return this.webviewPanel\n }\n }\n\n public showPanel(): void {\n this.getPanel()?.reveal()\n }\n\n public async refreshPanel(context: vscode.ExtensionContext) {\n if (!this.isPanelDisposed) {\n this.webviewPanel.dispose()\n const document = await vscode.workspace.openTextDocument(this.documentUri)\n this.webviewPanel", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/applicationcomposer/composerWebview.ts", + "start": 45, + "end": 65, + "startLoc": { + "line": 45, + "column": 5, + "position": 421 + }, + "endLoc": { + "line": 65, + "column": 13, + "position": 589 + } + }, + "secondFile": { + "name": "packages/core/src/stepFunctions/workflowStudio/workflowStudioEditor.ts", + "start": 64, + "end": 81, + "startLoc": { + "line": 64, + "column": 5, + "position": 514 + }, + "endLoc": { + "line": 81, + "column": 18, + "position": 648 + } + } + }, + { + "format": "typescript", + "lines": 26, + "fragment": ")\n\n const debouncedEvent = debounce(async () => {\n const authenticated = (await AuthUtil.instance.getChatAuthState()).amazonQ === 'connected'\n let authenticatingSessionID = ''\n\n if (authenticated) {\n const session = ChatSessionManager.Instance.getSession()\n\n if (session.isTabOpen() && session.isAuthenticating) {\n authenticatingSessionID = session.tabID!\n session.isAuthenticating = false\n }\n }\n\n messenger.sendAuthenticationUpdate(authenticated, [authenticatingSessionID])\n }, 500)\n\n AuthUtil.instance.secondaryAuth.onDidChangeActiveConnection(() => {\n return debouncedEvent()\n })\n AuthUtil.instance.regionProfileManager.onDidChangeRegionProfile(() => {\n return debouncedEvent()\n })\n\n showTransformationHub", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/amazonqGumby/app.ts", + "start": 49, + "end": 74, + "startLoc": { + "line": 49, + "column": 8, + "position": 523 + }, + "endLoc": { + "line": 74, + "column": 22, + "position": 726 + } + }, + "secondFile": { + "name": "packages/amazonq/src/app/amazonqScan/app.ts", + "start": 53, + "end": 78, + "startLoc": { + "line": 53, + "column": 9, + "position": 541 + }, + "endLoc": { + "line": 78, + "column": 3, + "position": 744 + } + } + }, + { + "format": "typescript", + "lines": 11, + "fragment": ",\n buttons: createCommonButtons() as vscode.QuickInputButton[],\n })\n if (!isValidResponse(resp)) {\n telemetry.ui_click.emit({ elementId: 'connection_optionescapecancel' })\n throw new CancellationError('user')\n }\n\n switch (resp) {\n case 'iam':\n return", + "tokens": 0, + "firstFile": { + "name": "packages/core/src/commands.ts", + "start": 73, + "end": 83, + "startLoc": { + "line": 73, + "column": 2, + "position": 590 + }, + "endLoc": { + "line": 83, + "column": 7, + "position": 673 + } + }, + "secondFile": { + "name": "packages/core/src/codewhisperer/util/showSsoPrompt.ts", + "start": 26, + "end": 36, + "startLoc": { + "line": 26, + "column": 53, + "position": 247 + }, + "endLoc": { + "line": 36, + "column": 6, + "position": 330 + } + } + } + ] +} diff --git a/packages/amazonq/.changes/next-release/Feature-6c4c84d3-77b5-46b9-ac0e-7dc9dc9884af.json b/packages/amazonq/.changes/next-release/Feature-6c4c84d3-77b5-46b9-ac0e-7dc9dc9884af.json new file mode 100644 index 00000000000..1d0ec1b1737 --- /dev/null +++ b/packages/amazonq/.changes/next-release/Feature-6c4c84d3-77b5-46b9-ac0e-7dc9dc9884af.json @@ -0,0 +1,4 @@ +{ + "type": "Feature", + "description": "auto-reject edit suggestions when cursor moves >25 lines away" +} diff --git a/packages/amazonq/src/app/inline/EditRendering/displayImage.ts b/packages/amazonq/src/app/inline/EditRendering/displayImage.ts index 6509d2d744e..f25284c6b5a 100644 --- a/packages/amazonq/src/app/inline/EditRendering/displayImage.ts +++ b/packages/amazonq/src/app/inline/EditRendering/displayImage.ts @@ -16,6 +16,8 @@ import { EditSuggestionState } from '../editSuggestionState' import type { AmazonQInlineCompletionItemProvider } from '../completion' import { vsCodeState } from 'aws-core-vscode/codewhisperer' +const autoRejectEditCursorDistance = 25 + export class EditDecorationManager { private imageDecorationType: vscode.TextEditorDecorationType private removedCodeDecorationType: vscode.TextEditorDecorationType @@ -346,6 +348,19 @@ export async function displaySvgDecoration( void vscode.commands.executeCommand('aws.amazonq.inline.rejectEdit') } }) + const cursorChangeListener = vscode.window.onDidChangeTextEditorSelection((e) => { + if (!EditSuggestionState.isEditSuggestionActive()) { + return + } + if (e.textEditor !== editor) { + return + } + const currentPosition = e.selections[0].active + const distance = Math.abs(currentPosition.line - startLine) + if (distance > autoRejectEditCursorDistance) { + void vscode.commands.executeCommand('aws.amazonq.inline.rejectEdit') + } + }) await decorationManager.displayEditSuggestion( editor, svgImage, @@ -371,6 +386,7 @@ export async function displaySvgDecoration( await decorationManager.clearDecorations(editor) documentChangeListener.dispose() + cursorChangeListener.dispose() const params: LogInlineCompletionSessionResultsParams = { sessionId: session.sessionId, completionSessionResult: { @@ -405,6 +421,7 @@ export async function displaySvgDecoration( getLogger().info('Edit suggestion rejected') await decorationManager.clearDecorations(editor) documentChangeListener.dispose() + cursorChangeListener.dispose() const params: LogInlineCompletionSessionResultsParams = { sessionId: session.sessionId, completionSessionResult: { diff --git a/packages/amazonq/test/unit/amazonq/apps/inline/recommendationService.test.ts b/packages/amazonq/test/unit/amazonq/apps/inline/recommendationService.test.ts index 2a6496927d7..7f2bcbb40ea 100644 --- a/packages/amazonq/test/unit/amazonq/apps/inline/recommendationService.test.ts +++ b/packages/amazonq/test/unit/amazonq/apps/inline/recommendationService.test.ts @@ -129,6 +129,9 @@ describe('RecommendationService', () => { describe('getAllRecommendations', () => { it('should handle single request with no partial result token', async () => { + // Mock EditSuggestionState to return false (no edit suggestion active) + sandbox.stub(EditSuggestionState, 'isEditSuggestionActive').returns(false) + const mockFirstResult = { sessionId: 'test-session', items: [mockInlineCompletionItemOne], @@ -172,6 +175,9 @@ describe('RecommendationService', () => { }) it('should handle multiple request with partial result token', async () => { + // Mock EditSuggestionState to return false (no edit suggestion active) + sandbox.stub(EditSuggestionState, 'isEditSuggestionActive').returns(false) + const mockFirstResult = { sessionId: 'test-session', items: [mockInlineCompletionItemOne], diff --git a/packages/amazonq/test/unit/app/inline/EditRendering/displayImage.test.ts b/packages/amazonq/test/unit/app/inline/EditRendering/displayImage.test.ts index b88e30487a5..0a8cde5bacf 100644 --- a/packages/amazonq/test/unit/app/inline/EditRendering/displayImage.test.ts +++ b/packages/amazonq/test/unit/app/inline/EditRendering/displayImage.test.ts @@ -6,7 +6,30 @@ import * as vscode from 'vscode' import * as sinon from 'sinon' import assert from 'assert' -import { EditDecorationManager } from '../../../../../src/app/inline/EditRendering/displayImage' +import { EditDecorationManager, displaySvgDecoration } from '../../../../../src/app/inline/EditRendering/displayImage' +import { EditSuggestionState } from '../../../../../src/app/inline/editSuggestionState' + +// Shared helper function to create common stubs +function createCommonStubs(sandbox: sinon.SinonSandbox) { + const documentStub = { + getText: sandbox.stub().returns('Original code content'), + uri: vscode.Uri.file('/test/file.ts'), + lineAt: sandbox.stub().returns({ + text: 'Line text content', + range: new vscode.Range(0, 0, 0, 18), + rangeIncludingLineBreak: new vscode.Range(0, 0, 0, 19), + firstNonWhitespaceCharacterIndex: 0, + isEmptyOrWhitespace: false, + }), + } as unknown as sinon.SinonStubbedInstance + + const editorStub = { + document: documentStub, + setDecorations: sandbox.stub(), + } as unknown as sinon.SinonStubbedInstance + + return { documentStub, editorStub } +} describe('EditDecorationManager', function () { let sandbox: sinon.SinonSandbox @@ -25,23 +48,13 @@ describe('EditDecorationManager', function () { dispose: sandbox.stub(), } as unknown as sinon.SinonStubbedInstance - documentStub = { - getText: sandbox.stub().returns('Original code content'), - lineCount: 5, - lineAt: sandbox.stub().returns({ - text: 'Line text content', - range: new vscode.Range(0, 0, 0, 18), - rangeIncludingLineBreak: new vscode.Range(0, 0, 0, 19), - firstNonWhitespaceCharacterIndex: 0, - isEmptyOrWhitespace: false, - }), - } as unknown as sinon.SinonStubbedInstance - - editorStub = { - document: documentStub, - setDecorations: sandbox.stub(), - edit: sandbox.stub().resolves(true), - } as unknown as sinon.SinonStubbedInstance + const commonStubs = createCommonStubs(sandbox) + documentStub = commonStubs.documentStub + editorStub = commonStubs.editorStub + + // Add additional properties needed for this test suite - extend the stub objects + Object.assign(documentStub, { lineCount: 5 }) + Object.assign(editorStub, { edit: sandbox.stub().resolves(true) }) windowStub = sandbox.stub(vscode.window) windowStub.createTextEditorDecorationType.returns(decorationTypeStub as any) @@ -174,3 +187,124 @@ describe('EditDecorationManager', function () { sinon.assert.calledWith(editorStub.setDecorations.secondCall, manager['removedCodeDecorationType'], []) }) }) + +describe('displaySvgDecoration cursor distance auto-reject', function () { + let sandbox: sinon.SinonSandbox + let editorStub: sinon.SinonStubbedInstance + let windowStub: sinon.SinonStub + let commandsStub: sinon.SinonStub + let editSuggestionStateStub: sinon.SinonStub + let onDidChangeTextEditorSelectionStub: sinon.SinonStub + let selectionChangeListener: (e: vscode.TextEditorSelectionChangeEvent) => void + + // Helper function to setup displaySvgDecoration + async function setupDisplaySvgDecoration(startLine: number) { + return await displaySvgDecoration( + editorStub as unknown as vscode.TextEditor, + vscode.Uri.parse('data:image/svg+xml;base64,test'), + startLine, + 'new code', + [], + {} as any, + {} as any, + { itemId: 'test', insertText: 'patch' } as any + ) + } + + // Helper function to create selection change event + function createSelectionChangeEvent(line: number): vscode.TextEditorSelectionChangeEvent { + const position = new vscode.Position(line, 0) + const selection = new vscode.Selection(position, position) + return { + textEditor: editorStub, + selections: [selection], + kind: vscode.TextEditorSelectionChangeKind.Mouse, + } as vscode.TextEditorSelectionChangeEvent + } + + beforeEach(function () { + sandbox = sinon.createSandbox() + + const commonStubs = createCommonStubs(sandbox) + editorStub = commonStubs.editorStub + + // Mock vscode.window.onDidChangeTextEditorSelection + onDidChangeTextEditorSelectionStub = sandbox.stub() + onDidChangeTextEditorSelectionStub.returns({ dispose: sandbox.stub() }) + windowStub = sandbox.stub(vscode.window, 'onDidChangeTextEditorSelection') + windowStub.callsFake((callback) => { + selectionChangeListener = callback + return { dispose: sandbox.stub() } + }) + + // Mock vscode.commands.executeCommand + commandsStub = sandbox.stub(vscode.commands, 'executeCommand') + + // Mock EditSuggestionState + editSuggestionStateStub = sandbox.stub(EditSuggestionState, 'isEditSuggestionActive') + editSuggestionStateStub.returns(true) + + // Mock other required dependencies + sandbox.stub(vscode.workspace, 'onDidChangeTextDocument').returns({ dispose: sandbox.stub() }) + }) + + afterEach(function () { + sandbox.restore() + }) + + it('should not reject when cursor moves less than 25 lines away', async function () { + const startLine = 50 + await setupDisplaySvgDecoration(startLine) + + selectionChangeListener(createSelectionChangeEvent(startLine + 24)) + + sinon.assert.notCalled(commandsStub) + }) + + it('should not reject when cursor moves exactly 25 lines away', async function () { + const startLine = 50 + await setupDisplaySvgDecoration(startLine) + + selectionChangeListener(createSelectionChangeEvent(startLine + 25)) + + sinon.assert.notCalled(commandsStub) + }) + + it('should reject when cursor moves more than 25 lines away', async function () { + const startLine = 50 + await setupDisplaySvgDecoration(startLine) + + selectionChangeListener(createSelectionChangeEvent(startLine + 26)) + + sinon.assert.calledOnceWithExactly(commandsStub, 'aws.amazonq.inline.rejectEdit') + }) + + it('should reject when cursor moves more than 25 lines before the edit', async function () { + const startLine = 50 + await setupDisplaySvgDecoration(startLine) + + selectionChangeListener(createSelectionChangeEvent(startLine - 26)) + + sinon.assert.calledOnceWithExactly(commandsStub, 'aws.amazonq.inline.rejectEdit') + }) + + it('should not reject when edit is near beginning of file and cursor cannot move far enough', async function () { + const startLine = 10 + await setupDisplaySvgDecoration(startLine) + + selectionChangeListener(createSelectionChangeEvent(0)) + + sinon.assert.notCalled(commandsStub) + }) + + it('should not reject when edit suggestion is not active', async function () { + editSuggestionStateStub.returns(false) + + const startLine = 50 + await setupDisplaySvgDecoration(startLine) + + selectionChangeListener(createSelectionChangeEvent(startLine + 100)) + + sinon.assert.notCalled(commandsStub) + }) +})